2015/08/23


最近、俳句が流行ってますよね。

どうしても golang から簡単に俳句を検出する必要があったので、作ってみました。
mattn/go-haiku · GitHub
https://github.com/mattn/go-haiku

インストールは以下の様に簡単。ただし kagome という形態素解析ライブラリを使っており辞書を static にリンクするのでコンパイルは凄く遅いです。

$ go get github.com/mattn/go-haiku/cmd/haiku

使い方としてはまず引数

$ haiku あぁ柿くへば鐘が鳴るなり法隆寺
柿くへば 鐘が鳴るなり 法隆寺

そして標準入力

$ cat README.md | haiku
古池や 蛙飛び込む 水の音

さらに URL から

$ haiku -u "https://ja.wikipedia.org/wiki/ハノイの塔"
中央に 穴の開いた 大きさの
円盤の 上に大きな 円盤を
有効な 問題として 有名で
円盤を 移動させると すると次
一回り 大きい物の 右隣
一回り 大きい物の 右隣
円盤を 対応付けた とき数字
円盤を 動かすことで 解答が
円盤を 別の柱に 移し替え

さらにパターンを変える事出来て

$ haiku -r 5,7,5,7,7 -u "https://ja.wikipedia.org/wiki/フクロウ"
フクロウが 鳴くと明日は 晴れるので 洗濯物を 干せという意味

と短歌を検出する事も出来ます。超便利!よろしければお使い下さい。ライブラリとしても使える様になっています。


2015/08/20


こんにちわ。Vim 使ってますか?使ってない?使いましょう。

2015年になっても Vim 使ってる人いるの?なんて人もいますが、よく考えて下さい。Vim だけで出版物が何冊もあるんですよ?Vim script は GitHub 上だと Go や R と同じくらい人気のあるプログラミング言語なんですよ?(出展: The RedMonk Programming Language Rankings: June 2015 – tecosystems)

新しいテキストエディタがどんどん出てきて、イケてないテキストエディタはどんどん消えるのに、Vim は未だに人気があるエディタなんですよ?Vim がそんなに根強いのには理由があると思いませんか?使うの難しくて Vim やめてしまったけど、もういちどチャレンジしたいと思いませんか?普段使ってる Vim をもっと便利にしたいと思いませんか?

今も尚進化し続けるテキストエディタ Vim の最新事情をもっと知りたいと思いませんか?

そんな皆さんの声にお答えするべく、技術評論社様の Software Design にて Vim の連載を開始させて頂ける事になりました。

Software Design|gihyo.jp … 技術評論社
http://gihyo.jp/magazine/SD

連載タイトルは

Vimの細道

となります。10月号からの連載となります。いやー力強いですねー。力こそパワーですね。

第1回目は Vim の歴史から Vim の人気の秘密を紐解き、なぜ Vim がそこまで人気のあるテキストエディタなのかをご紹介します。以降は Vim の最新事情や上級者テクニックを惜しげもなく紹介し、新しいプラグインの紹介等も行っていきたいと思います。つたない文章になるかもしれませんが、どうぞよろしくお願い致します。



golang 1.5 がリリースされました。

Go 1.5 is released - The Go Blog

Go 1.5 is released 19 August 2015 Today the Go project is proud to release Go 1.5, the sixth major s...

https://blog.golang.org/go1.5

内容かなり盛りだくさんです。その中でも目を引くのが internal パッケージです。

golang ではパッケージ内のシンボルを外部から参照可能にする為に名称の先頭を大文字にする必要があります。しかしながら、そうしてしまうと無関係のパッケージからも参照可能になってしまう問題がありました。

ライブラリパッケージを作っていて内部の共通関数を切り出したい、しかしながらライブラリ以外の物からは使わせたくない、そういう場合に internal を使います。

mattn/go15internal · GitHub
https://github.com/mattn/go15internal

このライブラリパッケージは、foo および bar からそれぞれ internal/hello にある Hello を呼び出していますが、これを外部から呼び出そうとすると以下の様にエラーとして扱ってくれます。

c:\dev\go\src\github.com\mattn\go15internal_main>go build -x
WORK=C:\Users\mattn\AppData\Local\Temp\go-build408769714
package github.com/mattn/go15internal_main
        imports github.com/mattn/go15internal/internal/hello: use of internal package not allowed

どんどん使っていきましょう。