タグ

ブックマーク / blog.monochromegane.com (4)

  • 初めて海外カンファレンス登壇するためにやったこと

    7/24から27にかけてアメリカ、サンディエゴで開催されたGopherCon 2019で人生初となる海外カンファレンスに登壇してきました(発表の様子はこちらにまとめました)。 GopherConはGo関連で最大級の国際カンファレンスです。 6年目となる今年は世界中から1,800名のGopherが参加し、200名以上の応募の中から選ばれた36名がスピーカーとして登壇しました。 その中で、僕は「Optimization for Number of goroutines Using Feedback Control」というタイトルで45分のチュートリアルセッションを務めました。 これまで海外カンファレンス登壇経験はなく、英語にも不慣れであるものの、現在の自分にとって非常に重要な位置付けのイベントであり、1月のCfPから7月の発表に至るまでの長丁場を非常に高い優先度で取り組んできました。 これらの

    初めて海外カンファレンス登壇するためにやったこと
  • 野良バイナリになっても大丈夫。Goのバイナリにソースコードを添付するツールをつくった。

    サーバーにあるGoのバイナリのバージョン管理は気を使います。どのバージョンで動いているのかわからなくならないよう、バージョンやリビジョンを埋め込む方法がありますが、そもそもリポジトリもわからないバイナリがあったら…そんなときに備えて、ソースコード自体をバイナリに埋め込んでおくというツールをつくってみました。 go-bincodeは内部でgo-bindataを使い、goのソースコードをバイナリに埋め込みます。また、埋め込んだソースコードを参照/リストアするための各種オプションを提供します。 利用方法 以下、様子です。 使い方は、ソースコードを埋め込みたい対象のリポジトリで go-bincode コマンドを叩くだけです。必要に応じてpkgオプションでパッケージ名を指定してください。 go-bincode.gogo-bincoder.goが生成され、ソースコードの参照/リストアを行うためのオプ

    野良バイナリになっても大丈夫。Goのバイナリにソースコードを添付するツールをつくった。
  • pecoでVagrant操作を便利にする

    開発環境で利用するVagrantのVMの数が増えてきたのでpecoでVM選んで起動や停止をできるようにしてみました。 vagrant-peco こんな感じで利用します。 うれしさ pecoでVMを選択できる。Vagrantfileのあるディレクトリに移動しなくてよい VMを複数選択して一括で起動・停止できる 通常のvagrant global-statusよりも高速に表示 direnvとの連携 インストール Vagrant1.6以降でつくったVMとvagrant-peco、vagrant-global-statusが必要です。 # vagrant-global-statusをインストール $ go get github.com/monochromegane/vagrant-global-status/... # vagrant-pecoをインストール $ cd [PATH] # PATHの

    pecoでVagrant操作を便利にする
    oinume
    oinume 2015/08/11
    vagrant global-status知らなかった
  • Go言語での構造体実装パターン

    Go言語での構造体実装は、埋込や独自コンセプトのインターフェースといったGo言語独自の機能を理解して行う必要があります。 今年からGo言語を始めましたが理解が曖昧なままだと実装に迷うことが何度かありました。今回よい機会なので、Go言語での構造体実装パターンとしてまとめてみることにしました。 構造体実装パターン 実装パターンの洗い出しとして、GoFデザインパターンをGo言語で実装する手法をとりました。 その中で繰り返し現れる実装をGo言語での構造体実装パターンとしてまとめてみました。 コンストラクタ関数 エクスポートによるアクセス許可 インターフェースによるポリモフィズム 構造体によるポリモフィズム 構造体によるサブクラス・レスポンシビリティ 構造体による移譲 関数による移譲 以下、それぞれのパターンを解説していきます。 コンストラクタ関数 Go言語には構造体のコンストラクタがないため、構造

    Go言語での構造体実装パターン
  • 1