![Testing go projects docker](https://cdn-ak-scissors.b.st-hatena.com/image/square/e64ede238628fdd2c4afa9c2ec626d27fac2da67/height=288;version=1;width=512/http%3A%2F%2Fassets.tumblr.com%2Fimages%2Fog%2Ffb_landscape_share.png)
いまや高速パターン検索といえばag(The Silver Searcher)ですが、検索対象がUTF-8のテキストを前提としているため、EUC-JPやShift-JISといったファイルを検索するのに課題があります。 これまで、それらの日本語文字セットを検索できるようにするため、色々とagの改造、公開を行っていました。 ag(The Silver Searcher)でEUC-JP/Shift-JISのファイルも検索できるようにしてみた 日本語圏特化型ag -白金- の配備が完了しました しかし、特定の国の文字コードだけに特化した修正というのをmasterに取り込んでもらうわけにもいかず、派生ブランチとして追随するのも、やはり面倒… そこで年始にGo言語を触ったのをきっかけに、Go言語でパターン検索ツールをつくってみました。 せっかくなのでポストagを目指して、プラチナサーチャー(The Pl
この記事は Go Advent Calendar 2013 の 18 日目の投稿です。 はじめに今年もいろいろと行われていますAdvent Calendarですが、初めて参加させて頂きます。プログラミング界隈のプロフェッショナルな方々の中で書くというのは、ただ1人で家で書いてるだけなのに、ちょっと緊張しちゃってます(^^ゞ 簡単にGo歴を。2012年1月に勉強会に参加してから、シンプルで守備範囲が広そうで強力で、なにより楽しいと感じ、それから自分で勉強したりして発表させて頂いたりしました(slideshare)。神戸からGoCon Springに参加したり、神戸から名古屋の勉強会に参加したりしました。 そんな中、今年の10月に、マッチングサイトを作ってほしいという話があり、言語は何でもいいとのことだったので、担当者に”Goはキマスよ”と訴え続け、Goで作らせて頂きました。 そこで、よく「G
history 13/3/31 Tag について追加 intro Go を触ってて interface を用いた設計がまだまだよくわかってなかったので、一旦まとめることにしました。 Go には明示的な継承の機能は無く、 interface も例えば Java のそれとはかなり毛色が違うので、(Class ではなく) Struct の設計に結構癖があると感じます。 Go の interface は言語設計的にもかなり尖っていて、 Go という言語を強く特徴付けていると同時に、 Go 言語自体の開発者たちもこの機能をかなり重要視しています。 例えば、 Go の開発者の一人である Russ Cox 氏によれば Go's interfaces―static, checked at compile time, dynamic when asked for―are, for me, the most
go言語の勉強に、motemenさんが作ったhtmlcat(標準入力をブラウザで tail -f できる htmlcat というのを書いた - NaN days - subtech)をgoで実装してみました。この記事ではhtmlcatgoの紹介と実装の見どころについて解説します。 htmlcatgoの紹介 htmlcatgo は、標準入力をブラウザ上でtail -fできるソフトウェアです。元祖htmlcatの使い方とほぼ一緒です。 $ tail -f /var/log/messages | htmlcatgo のように実行すると、 2013/12/16 08:15:02 htmlcatgo: http://localhost:45273のようにURLが表示されます。これをブラウザで表示すると、画面にtail -fの結果がリアルタイムで流れてきます。元祖htmlcatにある --execオプ
元ネタ あるプログラミング言語で実際にWebAppを開発できるようになるまで、何が必要だろうか。言語仕様の習得は終えているとしよう。おそらく、最低限以下のような知識が必要だと思われる。とりあえずGo言語について知っていることを書いた。 パッケージマネージャ 標準でついてるgoツールを使おう。必要なライブラリはリポジトリから、go getで取ってこよう。 http://golang.org/cmd/go/#hdr-Download_and_install_packages_and_dependencies アプリケーションサーバ 標準パッケージのnet/httpパッケージを使えばhttpサーバを動かすことができる。apacheやnginxで動かしたかったら、標準パッケージのnet/http/cgiパッケージやnet/http/fcgiパッケージを使えばいい。 http://golang.or
Go を使うとサーバーとアプリケーションの境界が無くなり、アプリケーションサーバーを書けるようになります。 それは良いことなのですが、アプリケーションを書く人が、従来サーバーを書く人が設計していた機能を理解して実現できないと、運用できないサーバーができあがる結果になってしまいます。 例えば Apache は、 master, worker プロセスが分離していて、設定変更を反映させるときなどは新しい worker を作ってから古い worker を殺すことで、サービスを一瞬も止めずに worker を再起動していました。これを graceful restart と呼びます。 Go で 1024 以下のポートを Listen するアプリを作る で触れたとおり、 Go はプロセス管理システムを作るのには少し向いていない面がありますし、せっかくアプリケーションプログラマーが簡単にサーバーを書ける
Googleが Goという新しいプログラミング言語 を出したようで。早速、インストールして軽くドキュメントを流し読みしてみました。 英語なんて読みたくないよ、という人もいるかもしれないし、誰かの役に立つかもしれないので自分用メモおいときます。完全に自分用なんである程度他の言語の知識がある人向けな上、ざっくり流し読みなんで間違ってるかも。 どんな言語? ネイティブコードを吐く、コンパイル型。 速度はCレベル。 GC搭載。ポインタはあるけど、ポインタ演算はできません。 各種アーキに最適化された、それぞれのコンパイラセットを持ちます。例: 6g, 6l : amd64 8g, 8l : i386 linux, mac, naclに対応。 動的型言語と静的型言語のおいしいとこどり。 concurrent処理が組み込まれてます。 個人的雑感 こんな言語設計思想かなあと感じたり とにかく、シンプルな言
I gave a presentation about lightweight REST API Server by Go, and performance comparison with Go, Perl and Ruby at GoCon 2013 autumn. The slide about benchmarking result is as follows. This shows milliseconds per request with 10,000 sequential requests at various conditions, which are go/perl/ruby, messagepack/json, and mysql SQL query/innodb memcached plugin. "direct memcached (innodb)" is direc
10/5 に ISUCON 3 の予選に Go 言語で参戦していました。 とりあえずレポートは会社のブログに書いたので、 Go 言語で go-sql-driver/mysql を使って MySQL を使う時に知っておくと良い点をまとめておきます。 ちなみに MySQL ドライバにはもうひとつ MyMySQL というものがあり、 まだ試していませんが、 MyMySQL の方が落とし穴が少なそうな気がします。 sql.Open() が返す DB オブジェクトはコネクションプールをしてくれる なので、自前で DB オブジェクトを使いまわしてコネクションプールを実装しても意味は無いです。 DB.SetMaxIdleConn() で、使い終わってもクローズしないコネクションの数を設定できます。 デフォルトだと使い終わったコネクションを閉じてしまうので、 DB オブジェクト自体をプールしても コネクシ
Go is an open source programming language designed for building scalable, secure and reliable software. Please read the official documentation to learn more. Go by Example is a hands-on introduction to Go using annotated example programs. Check out the first example or browse the full list below. Unless stated otherwise, examples here assume the latest major release Go. Hello World Values Variable
« Software Design 2013年10月号「生産性を向上させるVimのTips」を書かせて頂きました。 | Main | Go言語でインタフェースの変更がそれ程問題にならない理由 » golang - Go言語でWebAppの開発に必要なN個のこと - Qiita [キータ] http://golang.org/cmd/go/#hdr-Download_and_install_packages_and_dependencies アプリケーションサーバ 標準パッケージの ne... http://qiita.com/tenntenn/items/b8b27e32c28f7569f41a tenntenn さんに開発版を書いて貰ったので運用編を書こうかと思った。 なお、以下のプロダクトは全て golang で書かれているが、ruby や perl のアプリケーションを運用する際にも
etcd って何と聞かれた場合、一言で言ってしまえば zookeeper なんだけど Documentation · CoreOS etcd etcd is a highly-available key value store for shared configuration and service discovery. http://coreos.com/docs/etcd/ coreos/etcd - GitHub https://github.com/coreos/etcd etcd の良い所は curl で使える様な簡単な API SSL Cert 認証もオプションとして使える ベンチマークで 1000s of writes/s per instance を出せるくらい速い Raft を使って正確に、確実に分散する という感じらしい。作ってるのは CoreOS。 etcd はキーを
最近 Go を書きたくなったので挑戦してみました。お題は、stdin を受け取って stdout に結果を出すタスクを、全部ファイルベースで行いたい、というもの。stdin となるものをファイルに書き込んでおくと、それを読み込んで実行プロセスの stdin に渡してくれて、stdout を受け取ったらそれをまたファイルに書き込むようなイメージです。実行時には env var を設定したりできたり、stderr も別に書き出したりしたいですね。 riywo/proctask というわけで作りました。README 参照。ついでだったので、bash -l的な感じで実行ユーザの profile も読み込んで実行してみたので、PATH とかがログインした時と同じ感じで使えると思います、多分。 なお、使い道はこれから考えます。たとえばこんがらがった cron の記述を簡単にできるかも。 あと副産物で、
翻訳プロジェクトについて¶ この翻訳は Sphinx を使って以下のサイトで共同で行っています。翻訳に参加ご希望の方は、 yoshiki at shibu.jp までご連絡ください。 http://bitbucket.org/shibu/golang-docjp/ 翻訳ルール¶ まずはBitbucketのアカウントを作ってご連絡ください。書き込み権限を設定します。 翻訳したいものがある方は上記のBitbucketのサイト上でチケットを発行してください。Issueタブです。大項目単位です。 翻訳は読みやすさを考えて「です・ます」調で統一します。 Sphinxディレクティブを使った相互リンクは暇なときに設定します。もしくは書き込み権限のある方は設定してもらっても構いません。 Mercurialでcloneして翻訳してからcommit、pushしてください。commit前にpull&update
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く