at kaneshin

Free space for me.

golang の channel を使って Dispatcher-Worker を作り goroutine 爆発させないようにする

golang で処理の高速化をするために goroutine/channel を使って並行処理にし、待ち時間を無駄にしないようにするのは言葉で表すのは簡単ですが、実際にパターンとして落としこむためには経験が必要だなと思うので、今回 Dispatcher-Worker として Job Queue…

Golangの標準入力をインタラクティブかパイプで入力を受け取る

Go言語でコマンドラインツールを作るときに入力を受け取るインターフェースでオプションや標準入力で受け付けることはあると思いますが、パイプで渡すことも考慮されているとクールなツールになるなと思っています。 標準入力の受け取り それぞれの実装方法…

Ansible: "unsupported parameter for module: gather_subset"

Ansible 2.1を動かしたところ、下記のようなエラーが発生… [kaneshin@casper-01] ~/local/src/github.com/kaneshin/kamimai (master) ( ^o^) < ansible-playbook -C misc/playbook/localhost.yml PLAY [127.0.0.1] ****************************************…

GopherCon@Denver 2016に参戦する

DenverにてGopherCon 2016が7/11~7/13の三日間で開催されるのに行く予定です。 ほぼ一ヶ月後には本場(?)のGopherたちと濃い期間を過ごすと思うと非常に楽しみ。 ただ、飛行機代とホテル代でかなりの銭が飛んだので、見合った成果を持ち帰りたいなと思って…

Go言語で構造体の関数を動的に変更する

Go言語の構造体に関数を定義したあとに、動的に処理を変更することはreflectを使わない限りできないです。 ただ、スタブやモックとして関数の挿げ替えを行いたい場合や、実装を動的に変更したいという特質な要件を持つ人もたまにはいるでしょう。 そんなとき…

Golang で書いた Web アプリケーションを UNIX ドメインソケットで公開

net/http パッケージで使用される ListenAndServe 関数は tcp による Listen のため、 UNIX ドメインソケットで Listen するには自前で準備する必要があります。 func (srv *Server) ListenAndServe() error { addr := srv.Addr if addr == "" { addr = ":ht…

Cloud Vision APIを試す

GoogleがCloud Vision APIを使ってみた記事です。 実装したリポジトリはこちらです。 github.com/kaneshin/pigeon 準備 まず、Google Cloud Consoleでプロジェクトを作成し、Cloud Vision APIを有効にしてください。 その後、Service AccountのCredentialsを…

今年の写真 #TYPAC2015

今年 ことしは4年振りにCanonの一眼レフを新調しました。 ボディはEOS 6D、レンズはEF24-70mm F2.8L II USMです。 まだあまり使用していないですが、しっくりきています。 今年の写真 おわりに 来年はたくさん撮影します。

GDBとの付き合い方を話してきました Go Conference 2015 summer

スタッフ枠だったので受付も手伝いました。 登壇内容 GNU Debuggerを使おうよ、Print Debuggingやめようよ、というお話でした。 GDBを使え!という話でしたが、当方、現在Print Debuggingしています。明日から頑張る。 資料は昨日の朝からソラマチの外で作り…

株式会社はてなに入社しました

株式会社はてなに入社しました 株式会社はてなに入社しました - hitode909の日記

【基礎】CodeIgniterでコアクラスを作成する

この記事はCodeIgniter Advent Calendar 2013 の 1 日目の記事です。 今年はPHPについてAdvent Calendarを書きたかったんですよ! そしたらPHP Advent Calendar 2013は全て埋まってたわけで… しょうがないので書きたかったCodeIgniter のAdvent Calendar作っ…

UINavigationBarの曇りガラスと線の消し方

[[UINavigationBar appearance] setBackgroundImage:[[UIImage alloc] init] forBarPosition:UIBarPositionAny barMetrics:UIBarMetricsDefault]; [[UINavigationBar appearance] setShadowImage:[[UIImage alloc] init]];

コードの切り替えを瞬時に行うコード

別にObjective-Cは関係ないけど、Objective-Cでやってます。 //* NSLog(@"foo"); /*/ NSLog(@"bar"); //*/ /* NSLog(@"foo"); /*/ NSLog(@"bar"); //*/ 1行目にスラッシュが1つか2つかだけです。 高度なコードすぎて、エディタによってはうまくシンタックス…

weak self の書き方

こんな感じでかいたりする __weak __typeof(&*self) self_ = self;

git-log単体はムダムダムダ!!

git

会社の日報に開発Tips載せることにしたので、こっちでもそのメモを残すかな。 git-logは単体だと使い物にならないので、オプションをつけた方がいい。 また、コミットを「誰が」「いつ」したかの情報はログをパッと見るとき自分はそこまで重要ではないので--…

MySQLのテーブルをエクスポート

コマンドで SELECT * FROM table INTO OUTFILE "foo.csv" FIELDS TERMINATED BY ',' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\r'

JavaScriptで文字列を反転させる方法

これ以外に楽な方法ってあるのですかね? gistを見てたら見つけた感じです

zshにgitのブランチやステータスを常時表示させる

gitをターミナルで使用してるときに、ブランチをいちいち確認する時間がもったいないので、画像のようにブランチ名を色を変えて表示させてる。 くわしくはkaneshin/dotfilesの .zshrc .shrc.common をみてもらったほうがいいですね。zshrcの中身はエスケープ…

Linkedtube試してみた

LinkedTube

git の補完ができなくなった git-completion.bash

git

homebrewをupgradeかけたら、gitの補完ができなくなった $ git _git:.:26: no such file or directory: /usr/local/share/zsh/site-functions/git-completion.bash (anon):6: command not found: __git_main なので、こうする $ ln -s /usr/local/etc/bash_c…

CtrlPプラグインでの「突然の死」作ったった

vim

本当は、すでに @mattn さんが作っていました。 mattn/ctrlp-sudden-death でも、何か使ってみると文字が変えられないのでモドカしい!! mattn さんちゃんと元ネタ見たんだろうか…。これコード見た限り文字列変更できないような。 github.com/mattn/ctrlp-s…

シンボリックリンクを削除するとき、@が邪魔だった

gcc@ gcc-ar@ gcc-nm@ gcc-ranlib@ x86_64-apple-darwin11.4.0-gcc@ x86_64-apple-darwin11.4.0-gcc-ar@ x86_64-apple-darwin11.4.0-gcc-nm@ x86_64-apple-darwin11.4.0-gcc-ranlib@ x86_64-apple-darwin11.4.0-gcc-tmp@ $ ls | grep --color=none gcc | sed…

UITapGestureRecognizer

// single tap UITapGestureRecognizer* singleTapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTapGesture:)]; [self.view addGestureRecognizer:singleTapGesture]; // double tap UITapGestureRecognize…

NSDataの中身を見てみる

NSDataの中身をみたくなったときは下記を埋め込む // NSData *data const unsigned char *ptr = [data bytes]; unsigned char s[512]; for(int i = 0, n = [data length]; i < n; ++i) { unsigned char c = *ptr++; s[i] = c; NSLog(@"char=%c hex=%x", c, c…

Vimプラグインの拡張機能プラグインを作ってVimをさらに使いやすくしよう

Vim

この記事はVim Advent Calendar 2012 の 31 日目の記事です。 2012年も今日で終わりですね。12月は忙しかったので気付いたら年末でした。 最近はXcodeばかりを使用していたのでVimエディタからは離れていましたが、XcodeをVimライクにするプラグインのXVimを…

Objective-Cで整数でなく小数でスリープ

意図的にスレッドスリープさせたいとき [NSThread sleepForTimeInterval:.3f]; sleep()は整数のみ

UIButtonがdisableで白くならない?

そんなときは [button setEnabled:NO]; [button.titleLabel setAlpha:.5f]; で無理矢理白っぽくする!

Can I get a selected row of cell on Segue?

テーブルのセルの選択したものを知りつつ、セグエを使うとき - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { if ([[segue identifier] isEqualToString:IDENTIFIER]) { // Assume self.view is the table view NSIndexPath *index…

How to get the font size and name on Xcode?

if you wanna get it. Simply code like this NSString *fontName = self.label.font.fontName; CGFloat fontSize = self.label.font.pointSize;

Objective-CのPrefixヘッダー

調べて、自分テイスト風にしてみた。