タグ

Goに関するohnishiakiraのブックマーク (10)

  • Big Sky :: 日本語grepが出来るjvgrepというのを作った。

    語を扱っていて困るのがgrep。正規表現パターンにマルチバイト文字を混ぜられなかったり、windowsで動かすと"表"の様に2バイト目にbackslashが混じる文字で動作しなくなったりします。 さらに複数のエンコーディングで書かれたファイルが散らばっていると一度のgrepで検索出来なかったりもします。 vimに限っては、内蔵のvimgrepを使う事で解決出来ますが、見つかったファイルをバッファに開いてしまうという挙動がある為、grepオリジナルの動作を求めている人にとっては都合の悪い物だったりもします。 vimgrepの様に複数のエンコーディングに対応していて、検索パターンにマルチバイト文字を含んだ正規表現が使えて、windowsでもちゃんと動いて、ついでといっちゃあなんだが、"**/*.txt"で再帰検索してくれる様なgrep無いかなぁと思ってたんですが、やっぱり無いので作りました

    Big Sky :: 日本語grepが出来るjvgrepというのを作った。
  • Coro と Go で並列実行数の制御 - 酒日記 はてな支店

    http://d.hatena.ne.jp/tokuhirom/20090710/1247196134 この Coro の例を Go でやってみます。 まず特定数 (ここでは 3) の worker thread を立ち上げておいて、そこにメッセージを送って仕事させるモデル。メッセージのやりとりに Coro::Channel を使います。 use Coro; use Coro::Channel; use Coro::Timer; my $ch = Coro::Channel->new; sub worker { while (1) { my $url = $ch->get; printf("worker(%d): %s\n", $_[0], $url); Coro::Timer::sleep(1); } } my @coros = ( async { worker(1) }, async

    Coro と Go で並列実行数の制御 - 酒日記 はてな支店
  • Go してみたよ - 最速チュパカブラ研究会

    噂の Go をちょっと使ってみました。開発者が興味ないのか、あんまり充実してないグラフィックスまわりにあえて突撃。 こんな感じのpng画像を出力します。ソースは以下の gist に。 main.go canvas.go プログラムの構造は以下のような感じ プログラムの最終的な目標は、標準ライブラリの image.png.Encode 関数を使ってPNGファイルを書き出すこと。 image.png.Encode 関数は io.Writer と image.Image インターフェイスの実装を要求してくるので、必要な関数を実装する(黄色の部分)。 さらに、ファイルを開いたり、画像に描画したりといった独自の動作を実装する(緑色の部分) という流れでプログラムが出来上がっていきます。io.Writer や image.Image はライブラリ集ではなく、インターフェイスだけが定義されている「規約集

    Go してみたよ - 最速チュパカブラ研究会
  • Big Sky :: quickrun.vimでgoのコーディング効率が数倍になった件

    goを弄ってるといちいち8g(5g?)とか8l(5l?)とかでコンパイル、ビルドする手間が必要なんだけど、これってquickrun.vimの設定で便利になるんじゃないか?と思ったので設定した。 thincaさんバージョンのquickrun.vimを入れた後、vimrcで以下の様に記述する。 let g:quickrun_config = { \  'go': { \    'command': '8g', \    'exec': ['8g %s', '8l -o %s:p:r %s:p:r.8', '%s:p:r %a', 'rm -f %s:p:r'] \  } \} 環境によっては8g/8lを書き換える必要があります。 あとは拡張子goのファイルで<leader>r(mapleaderを設定してなければ\r)で、コンパイル、リンク、実行までやってくれて、まるでスクリプト言語を書いてい

    Big Sky :: quickrun.vimでgoのコーディング効率が数倍になった件
  • Matzにっき(2009-11-13) - [言語] The Go Programming Language

    _ [言語] The Go Programming Language もう知っている人は知っているGoogleからのシステムプログラミング新言語Go。 すっかり祭りには乗り遅れた感があるけど、少しだけコメントをつけておこう。 目次 言語仕様 言語実装 技術的でない話 まとめ 言語仕様 総合的に見て、非常にバランスを考えているように思える。 JavaC++のような複雑さを排して、シンプルに徹する一方、 言語好きを刺激するような新しいアイディアをそこかしこに配置している。 特徴である「コンパイルが高速」というのも、 このシンプルな言語仕様が寄与していると思われる。 個人的に、注目したのはオブジェクト指向機能と、並列機能。 interfaceによる、継承のないオブジェクト指向(duck typing)は、かなり私好みである。 昔からこういう言語が欲しかった。interfaceのみ動的結合を許す

  • Go Go!! - 兼雑記

    Goいじめてあそぶということなので行ってきた。大変たのしかった。いつもよくわからん面白イベントをやってくれている、 id:ranha さんにとても感謝。今後もやってください :) http://atnd.org/events/2115 ごにょごにょ遊んだ結果はこのへんに置いてある。 http://github.com/shinh/test/tree/master/go/ まずはゴルフ http://golf.shinh.org/l.rb?go 適当にやった。大変無駄な時間を過ごしたと思う。ゴルフの感覚としては D に近いなぁと思いました。標準入力が手軽に取れなさすぎてだるい。 scanf 欲しいよなぁ。マジメに考えると /usr/include/pcrecpp.h ってのはぐぐるのライブラリとして大好きなインターフェースの一つなのだけど、こいうのがあまりできそうにない言語仕様は残念だな

    Go Go!! - 兼雑記
  • go言語snippetと注意点 - ラシウラ

    以前書いたpythonicなA*関数をままgoで書いてみました。 astar.go: http://gist.github.com/233012 astar_main.go: http://gist.github.com/233013 参考python版: http://gist.github.com/147645 そのとき調査で理解したものを紹介します。 0値 goの0値(初期値を設定しないときのデフォルト値)がどうなるか、そしてどう比較するかの例です。 http://golang.org/doc/go_spec.html#The_zero_value package main import "fmt" type location struct { x, y int } func main() { var v location; fmt.Printf("%v\n", v); //fmt.

    go言語snippetと注意点 - ラシウラ
  • 10〜30分で何となく分かるGo

    Go for the paranoid network programmer, 2nd editionEleanor McHugh

    10〜30分で何となく分かるGo
  • The Go Programming Language

    Tips for writing clear, performant, and idiomatic Go code

    The Go Programming Language
  • グーグル、C/C++に代わる新言語「Go」をOSSで公開 - @IT

    2009/11/11 グーグルは2009年11月10日、Cのようにシステム記述に適したプログラミング言語「Go」をBSDライセンスの下に公開した。C++のようなC言語の拡張ではないが、Cに似た構文が特徴で、ガベージコレクタ(GC)や並列プリミティブ、イテレータ、実行時リフレクションなどを備えた新しい設計が目を引く。Goグーグルの社員7人が「20%の自由時間」を利用して開発した。設計・実装を行っているのが分散OS「Plan 9」の創案者であるロブ・パイク氏や、Unix、Cの生みの親、ケン・トンプソン氏、Google ChromeのV8エンジンを開発したロバート・グリースナー氏など錚々(そうそう)たるメンバーで、こうした点でも注目を集めそうだ。 グーグル社内では、まだGoを使っていないが、今後はWebサーバなどのシステム関連のソフトウェアで実用を検討しているという(Goのオフィシャルサイトは

  • 1