Goの勉強のためまずHello worldとEmacsの環境を構築をしたので、その記録。 この記事のゴール homebrewでGoのインストール godocによるドキュメントの表示 Hello worldを表示する Emacsの環境構築 go-autocompleteで保管 M-x godocでドキュメント表示 goflaymakeで構文チェックなど godefで定義ジャンプ goをhomebrewでインストールする $ brew install goインストールされているか確認 $ go version go version go1.2 darwin/amd64 Hello worldを書いてみる 適当な場所で以下のファイル(hello.go)を作成 package main import "fmt" func main() { fmt.Println("Hello World!") }
Webのお仕事をやってると、Webサーバのインスタンスと同時にワーカープロセスを起動する事も結構多く、ジョブキューサーバも含めて一括で起動したくなったりします。 ruby 製の foreman という物を使うと Procfile というファイルに書かれた内容でプロセスを起動して、個別に上げたり落としたり出来る様になります。ただしwindowsでは重くて使えない(windows上のrubyどうにかしてる)し、kazeburoさんが作ってるperl製のProcletはParallel::Preforkがwindowsで動かないので困ってました。 ここまで来たら自分で書くしかないかなーとか考えながら、C言語で書くの面倒臭いと思ったのでGo言語で書きました。 mattn/goreman - GitHub foreman clone written in go language https://gi
Go弱の会に行ってきました。今回はnitrous.ioの話、revelの話、Dartの話がありました。 僕も少しだけしゃべったので、その話を含めてやったことをまとめます。 僕が話した内容 Go弱っぽく、Webアプリを作成し、そのベンチマークを取ってみました。 作ったアプリ angularjs と goweb(RestFul server) と mgo (mongo driver) でツイッターっぽいアプリを作ってみました。 Goweb製(heroku) : http://goweb-angular.herokuapp.com/app/#/ githubはここでアップしてます。 GitHub : https://github.com/yosuke-furukawa/goweb-sample ちなみに比較対象のkoa製の方もherokuにアップされてます。 Koa製 (heroku): htt
Go言語の名前の由来について、デマを思いついたGo言語の名前の由来について、デマを思いついたので、ちょっと面白いと思った人は広めてほしい。 Go言語の名前の由来って知ってる? あれは日本語の数字の5(ゴー)から来てるんだよ。 5は4(シー)、つまりC言語の次だから。 つまりC++やC#と同じ由来なのね。 あ、C#はC++++なんだよ。知ってた?(注:これは本当) こんな感じで。 Go言語はブレイク寸前であり、かなりの関心を集めているが、まだ詳しく知られてはいないので、デマを広めるには今が絶好と思う。 なんでロブ・パイクやケン・トンプソンが日本語を知ってるんだ、ともっともな指摘を受けた場合こんな感じで返していただきたい。 ロブ・パイクやケン・トンプソンがUTF-8の考案者だということは知ってる?(注:これは本当) で、彼らがそれを考案するきっかけは、慶應の村井純先生が、ベル研で「日本語」につ
二日間ほど集中してgo言語でコード書いたので、その間に感じたことをまとめてみます。普段はだいたいPerlやJavaScriptでWebアプリケーションを書いています。 まとめの要約 go言語良い Webアプリケーション書くならPerlとかRubyが良い PerlとかRuby書ける人がミドルウェア書くならgo言語良い 気に入ったところ コンパイルエラーが親切 たとえば気楽な気持ちで以下のようなコードを書くと package main import ("fmt"; "net/http"; "log") func main() { resp := http.Get("http://hatenablog.com/") fmt.Println(math.Pi) } 以下のように丁寧に問題箇所を教えてくれます。 ./hoge.go:6: imported and not used: "log" ./h
http://matt-welsh.blogspot.com.au/2013/08/rewriting-large-production-system-in-go.html Go言語の4周年をテーマにしたgolang.orgのブログで紹介されていた、GoogleのMobile Web Performanceチームに所属するMatt Welshのブログです。大規模な本番システムの作り直しにGo言語を採用した経験を語っています。 1) 背景 C++のオリジナルのコードベースは問題なく作動していたが、何年も複数の目的の違うプロジェクトで共有されていたため、スピーディーに改修するのが難しくなっていた。(何のシステムなのか具体的に書いてないのは残念。。) イメージフォーマットをトランスコードするライブラリはC++で完璧に動作していたので、そのまま残し、それ以外を全てGo言語で書き直した。 元のコード
Docker and Go: why did we decide to write Docker in Go? Docker is currently one of the most popular Go projects. After a (quick) Docker intro, we will discuss why we picked Go, and how it turned out for us. We tried to list all the drawbacks and minor inconveniences that we met while developing Docker; not to complain about Go, but to give the audience an idea of what to expect. Depending on your
GoCon 2013 autumnの後、yuroyoroなどとと飲んでいて 「Goのエラーを戻り値で引き回すのがどうも冗長」 「Haskellのエラーモナドみたいな何かがあればいいのに」 「型パラメータがサポートされればそういうのが書きやすくなるのに」 という話をしていて、クロージャーで関数呼び出しを囲えば今の言語仕様でもいいんじゃないかなと思ってその場で書いてみたものの話。 monad というのがインターフェイスになっていて、次のメソッドを定義している。 Do(what func () (interface {}, error)) monad 戻り値であるmonadに対して次にDoもしくはEndが呼ばれたときに呼ぶべき関数を受け取り、その関数への参照を保持するmonadを生成して返す DoIt() (interface{], error) monadの保持している参照先の関数を呼ぶ。内部
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く