moqでinterfaceのMockを作る

この記事は Go3 Advent Calendar 2017の18日目の記事です。 moqでMockを作る Goでアプリケーションを書いているとinterfaceにMockを投げ込みたくなる瞬間があると思います。 たとえば、以下のようなコードのテストを書きたい場合ですね。 Userを取りに行く処…

Golang.tokyo#11でLTしてきた

「アドベントカレンダーとLT同じ時期だし同じネタでやったろw」って思ってたら完全にネタがかぶったので、アドベントカレンダーとは別記事で公開。 LTしてきました。 ベストスピーカー賞頂けました。ありがとうございます。 頂いたGolang.tokyo仕様モバイル…

GocCon2017感想とか

行ったので書く(VimConfの記録は出遅れたのであとでこっそり)。 パネルディスカッション VimConfに続きmattnさんを招待しての他セッション。 聞きながら取ったメモを貼り付けておきます。抜け漏れは許容していただけると。 ▶クリックで展開 どういう風にGoを…

golang.tokyo #5 感想

4月27日に開催されたGolang.tokyo#5に行ってきた。 GCPUG Tokyoとの共同開催ということで30分枠はGAEでGo言語を使ったお話。 直前に人数を見たら珍しく定員割れをしてましたそれでも100人超えてるあたりGoの注目度の高さが伺える。 GO *GAE 株式会社カブクさ…

fish-shellのpecoプラグインをforkした

最近fishに乗り換えた。 pluginはfishermanで管理することにしたが、そうなるとoh-my-fish/plugin-pecoの以下の点が気に食わなかった。 fish_user_key_bindingsに自分でbind設定を書く必要がある pecoのlayoutがbottom-up fishermanを使っているのであればfi…

Go言語でのDispatcher-Workerパターン実装メモ

最近Dispatcher-Workerパターンをよく書くので、パターンとして書き残しメモ。 gist510b34bb8963615e88da847b833c05f7

JAWS DAYS 2017行ってきた

OSCも捨てがたかったけど最近業務でAWSを触っていたのもあって、JAWS DYASに参加してきた。 完全に遅刻気味だけどとりあえず自分が見たセッションについてスライドと内容をまとめてみる。

社内でGo言語勉強会をやった

社内で別チームがGo言語を採用するかも、とのことで、自分たちのチームがGoの知見0から開発をして、先に知っておけばよかったこととか、別言語経験者がハマりそうなところとかをスライドにして話しました。 間違っているところとか、これから始める人にこの…

pkg/erorsを使ったGo言語でのエラーハンドリング

tl;dr エラーを返すときにはpkg/errorsのerrors.Wrapでラップして返すとエラーの原因を返せる エラーを受け取るときにはpkg/errorsのerrors.Causeで原因を見れる 前置き 以前の記事の 「エラーをチェックするだけでなく、それらを正常に処理しなさい」の項目…

Go Proverbsを勉強がてら和訳して少し解説した

Go (その3) Advent Calendar 2016 11日目の記事です。 Go言語の生みの親、Rob Pikeが2015年のGopherfestのセッションで 言っていた、Go Proverbsを自分の勉強がてら和訳してちょっと解説してみる。 後半に行くに連れて集中力が切れたり、いろいろ調査不足の…

Go言語LT大会! 「最近、Go言語始めました」の会でLTしました

Go言語LT大会でLTしてきました。 資料です。 見る人が見ればわかっちゃうんですが、Rob Pikeの発表を丸パクリLT用に焼き直して、デザインパターンとか絡めたものです。 もっと詳しく知りたい方は、Concurrency is not Parallelismとか Concurrency is not pa…

VimConf2016行ってきました

VimConf2016に行ってきました。 発表資料のまとめと軽く所感をば書いてみます。 Introduction to Vim 8.0 Introduction to Vim 8.0 from k-takata 2016年9月にリリースされたVim8.0の新機能紹介とVimの歴史についてのスライドでした。 Vimのコントリビュータ…

vimで折りたたみの状態を保存する方法

vimを使ってそれなりに経つのに、最近になって設定したのでメモ。 vimにはmkviewという、現在の折りたたみの状態を保存するコマンドと、 loadviewという保存した折りたたみ状態を読み込むコマンドがある。 もちろん自分でコマンドを入力するのはめんどくさい…

機械学習の環境をDIGITSとDockerを使って簡単に整える話

機械学習が何をやっているのか全くわかっていなくても 簡単に画像処理の機械学習を行える環境を整えた話。 この記事の目標は、何もわからなくてもとりあえず画像を機械に学習させる、です。 (細かい部分が全くわからないことの言い訳) 今回は、Digitsという…

hubotをSlackと連携してデーモン化するまでの手順

Hubotをデーモン化してSlackと連携させた時のメモ。 以下のツールは導入してあること前提。 apt nodejs npm npm hubot pm2 hubotとSlackの初期設定 まず、以下のコマンドでhubotを準備。 $ mkdir nametake-bot $ cd nametake-bot $ yo hubot _______________…

VimでOpenCVのneocompleteの補完が落ちる問題の解決

pyenvのanacondaで、condaで入れたopencvの補完をしようとすると、 Vim: Caught deadly signal SEGV Vim: Finished. と出て、落ちる問題の解決方法。 環境はOSX10.10。brewでopencvが導入済み。 使用しているエディタはvimで、補完はneocomplete + jedi-vim…

プロパティについて理解したのでまとめる

プロパティについて 研究室で質問されたのでPythonのプロパティについて解説しようと思う。 最初にプロパティとはなにかをIT用語辞典で引いていみると、 プロパティとは、オブジェクト指向プログラミングで使用される オブジェクトが保持している、そのオブ…

デコレータの基本について理解したのでまとめる

Pythonのデコレータに関して、理解していることをまとめてみる。 @を使ったデコレータの書き方はただのシンタックスシュガー (読み書きのしやすさのために導入される構文)。 それでは、何に対するシンタックスシュガーなのか。 まず、以下のようなプログラム…

Webサーバをapacheからnginxに移行

今までapacheで動かしていたWebサーバをnginxにようやく切り替えた。 その中でしたnginxの設定とか詰まったところとかメモ。 nginxの設定 全体に関わる設定 http://www.nametake.infoのように、特に設定をしていないサブドメインに アクセスがあっても、全部…

.gitignoreの範囲の指定方法

過去に書いた記事をそのまま移行します。 前提 $HOMEディレクトリ上でドットファイルをgitを管理している。 .gitignoreはホワイトリスト方式で記述している。 やりたかったこと $HOME └── .vim ├── bundle ├── snippet ├── syntax ├── template └── userauto…

はてブロに移行しました

自鯖でWordpressは面倒だったのでブログ移行しました.