タグ

ブックマーク / zenn.dev/mattn (9)

  • Re: Goでcsvを操作するための基本的な知識

    はじめに Println で標準出力してみると以下のように表示されるかと思います。(SHIFT-JIS形式なのでmacでみると文字化けしていますがひとまず置いておきます) 日では一般的に CSV ファイルは Shift_JIS でエンコードされている事が多いです。Go 言語は内部のエンコーディングが UTF-8 なので、Shift_JIS な CSV ファイルを読み込むと文字化けします。 そこで便利なのが エンコーディングの変換は golang.org/x/text/transform が便利です。このパッケージと、golang.org/x/text/encoding/japanese を使う事で、os.Open で開いたファイルがさも初めから UTF-8 であるかの様に扱う事ができます。 どんな風に扱うか japanese パッケージには japanese.ShiftJIS や jap

    Re: Goでcsvを操作するための基本的な知識
    yk5656
    yk5656 2022/04/22
  • vim-lsp-settings に物色インストール画面を作った。

    はじめに この記事は Vim Advent Calendar 2021、25 日目の記事です。みなさん Vim 使ってますか?そうですか、使ってますか。 今年はどうも仕事が忙しく、Vim に殆どコントリビュート出来なかったので反省している mattn です。何も Vim 活動をしていなかったのか、というとそうでもなく、主に vim-lsp-settings で色々な Language Server を使える様にしたり、改善したりしていました。 vim-lsp-settings て何よ 知らない方もおられると思うので、改めて vim-lsp-settings を説明したいと思います。 古くからあるジョークの影響か、一般的な Vim のイメージは 真っ黒な画面 /etc のファイル編集用エディタ 同期処理しかできない 終了できない といった悪いイメージがあるのですが、多くの方が想像している V

    vim-lsp-settings に物色インストール画面を作った。
    yk5656
    yk5656 2021/12/25
  • Go の入力バリデーションパッケージ ozzo-validation を試した。

    はじめに Go のウェブアプリで使う入力バリデーションに関して、ozzo-validation を検討した。 これまでのバリデーション 普段、仕事では labstack/echo という Go のウェブフレームワークを使う事が多いのだけど、バリデーションに関しては labstack/echo のサンプルに合わせて go-playground/validator を使ってきた。 go-playground/validator は機能も豊富で(一応)痒い所に手は届くのだけど、struct にタグを付けて判定させないといけない。これが実に煩わしい。以前 labstack/echo を使ったサンプルを書いたので、それを見て欲しい。 // Comment is a struct to hold unit of request and response. type Comment struct { I

    Go の入力バリデーションパッケージ ozzo-validation を試した。
    yk5656
    yk5656 2021/11/07
  • ls -l はなぜ事故を起こすのか

    はじめに この記事は以下の記事で事故がなぜ起きたかを技術的に理解し筆者のtipsを共有しようと思い書きました。あくまで筆者のtipsですので、これが正しいとは限りません。 やはり、下記のコマンドが原因でした。 [root@foo script]# ls -l | sh 事故そのものは ls コマンドに -l を付けて実行してしまった事で、ls コマンドが出力したシンボリックリンクが以下の様になってしまったという話です。

    ls -l はなぜ事故を起こすのか
  • Go と prisma と lit-html と ky で作るモダンな TODO アプリ

    はじめに 以前から GoORM (Object Relational Mapping) 選定の為に、そこそこ時間を使っています。現状は gorp を使っていますが、満足している訳ではありません。 そんな中で見つけた prisma を試すべく、バックエンドに Go と prisma を使った TODO アプリを作ってみる事にしました。 prisma とは prisma (Next-generation ORM for Node.js and TypeScript)は簡単に言うと 自動生成された型付きのクライアントが付いている マイグレーションが出来る モデル定義から CRUD やインデックスを自動生成できる PostgreSQL, MySQL, SQLite3 等をサポート Prisma Studio という GUI が付いている というモダンな ORM です。Nuxt と TypeS

    Go と prisma と lit-html と ky で作るモダンな TODO アプリ
    yk5656
    yk5656 2021/03/15
  • 無料の SSL 証明書が得られる ZeroSSL を使ってみた

    はじめに 皆さんは ZeroSSL を知っていますか?個人でウェブサイトを運営している皆さんであれば、多くの方は Let's Encrypt を利用されていると思います。 https://letsencrypt.org/ja/ もちろん僕も使っています。僕の様なエンジニアの方であれば SSL の仕組みもおおよそ理解もしているし、コマンドラインの実行方法も知っておられるのでウェブサイトの SSL 証明書を取得する事もそれほど難しい事ではないでしょう。 しかしそれほど詳しくない方が certbot の様なコマンドを使って SSL 証明書を発行するのは割と難しい事です。そこでご紹介したいのが ZeroSSL です。 https://zerossl.com/ ZeroSSL とは ZeroSSL もまだあまり名前が知られていないせいか、Google 検索で「ZeroSSL」を検索すると「ZeroS

    無料の SSL 証明書が得られる ZeroSSL を使ってみた
    yk5656
    yk5656 2020/12/05
  • vimrc の分割管理を上手くやる 2020年版

    筆者の環境について Vim にはプラグインマネージャも沢山あります。その中で僕は vim-plug を使っています。Software Design という雑誌で「Vim の細道」という連載をやっている事もあり、皆さんに一番リーチしやすいプラグインマネージャを選んでいるという事もありますが、基は「トラブルが発生しづらい」という理由で使っているのもあります。 vimrc の分割管理 ところで最近は Vim プラグインが沢山あり、個々に設定が必要な場合もあります。全て vimrc の中に書いてしまうのも良いのですが、そうするとどこからどこまでが、どのプラグインの設定か分からないといった問題が起きてしまいます。僕は vimrc をプラグイン毎に分割して管理しています。 Big Sky :: ぼくがかんがえたさいきょうの Vim のこうせい 2019年 年末版 " Vim 体の機能のデフォルト値

    vimrc の分割管理を上手くやる 2020年版
    yk5656
    yk5656 2020/11/07
  • grep の「バイナリファイル (標準入力) に一致しました」が出る条件を調べていたらそれは長い旅路の始まりだった。

    はじめに 昨今では1行につき、1つの JSON を出力する様なログファイル形式も珍しくはありません。 grep しやすい データベース化しやすい これらの理由で各所で多く使われています。僕も仕事で普通に使っているのですが、ある日突然そのログファイルを集計するスクリプトで以下の様なエラーが出始めました。

    grep の「バイナリファイル (標準入力) に一致しました」が出る条件を調べていたらそれは長い旅路の始まりだった。
    yk5656
    yk5656 2020/10/07
  • Go 言語にやってくる Generics は我々に何をもたらすのか

    2021 年リリース予定の Go 1.17 に、多くの皆さんが待ち望んでいた Generics が導入される予定です。Go が Generics を採用したプロセス、C++Java の Generics とどの様に違うのか、また Go の Generics はどの様に使えるのかをご紹介します。

    Go 言語にやってくる Generics は我々に何をもたらすのか
    yk5656
    yk5656 2020/09/22
  • 1