タグ

Goとgoに関するtaka222のブックマーク (16)

  • GoのSinatra風フレームワーク(?)web.goでハローワールド+α - Go towards a Word-Progress

    12月に入ってから、開発が続けられているGolangのSinatra風フレームワーク(?)web.go。 http://github.com/hoisie/web.go ビルドには、最新版のgolangが必要。特徴は、バイナリにコンパイルして実行するから高速とのこと。クリスマスイブの夜に、VPSでいきなり80番開放してテストしてみる。 今晩はハローワールドのみ。 package main import ( "fmt" "web" ) func hello(val string) string { return fmt.Sprintf("こんにちは、世界 %s", val) } func main() { web.Get("/(.*)", hello) web.Run("0.0.0.0:80") } キモは、「web.Get(“/(.*)”, hello)」のところで、関数helloにur

  • Go言語 (Go lang)の並列プログラミングは超かんたん。 - このブログは証明できない。

    Googleが作ったプログラミング言語「Go」。シンプル、速い、うまい。吉野家の牛丼のようですが(かつての)、吉野家のようにひとりで入るにはハードルが高そうです。今日は思い切って、ひとりで突入してみました。ちなみに、公式サイトのキャラクターの名前は、「Hiromi」だと信じています。「Hiromi Go」です。間違いありません。 The Go Programming Language 人気プログラミングランキングGo langは13位にランクイン。 no title 最初は公式サイトのチュートリアルだけ見ていたのですが、サンプルコードが付属してくるようなので、処理系をインストールしてみました。Macなので、こちらの記事を参考に。 no title 私はLeopardなので、「export GOARCH=386」で動きました。それから、$GOROOT/binをmkdirしておく必要がありま

  • Shibuya.pm テクニカルトーク #12 で発表してきました - moriyoshiの日記

    果たしてPHPPythonの人が行っていいのかどうか、しかも発表はGoの話でPerl関係ないしって感じで、微妙なアウェイ感でした。というか最近どこで喋ってもアウェイ感があるわけですが。 GoでKVSを書けるのかView more documents from ... .... ※実際に作ってみたサーバのソースコードはこれです: http://d.hatena.ne.jp/moriyoshi/20091111/1257929640 Go の知識がある程度あることを前提にスライドを作ってしまったので、「Goroutineって何?」「チャネルって何?」というように意味不明だったところはあるかと思いますが時間の都合です。勘弁を。 オーガナイザの id:TAKESAKO さん、会場のリクルートさんどうもありがとうございました。 2次会で、id:gfx や id:tokuhirom と Perl

    Shibuya.pm テクニカルトーク #12 で発表してきました - moriyoshiの日記
    taka222
    taka222 2009/12/07
  • なんか Go で書くのが流行ってるみたいなので - moriyoshiの日記

    追記:「kzk's blog」の「Writing TokyoCabinet wrapper for Go language」で紹介御礼。この記事は cgo を使った TokyoCabinet のラッパーの書き方を解説しているので、下記のコードと組み合わせて当に tc が backend になっている KVS を書いてみるのもよいかも。 『早速 Go 言語を試してみる!』とか。 『Go で無駄にチャンネルを使ってクイックソートのようなものを書いてみた』とか。 こちらはというと、試しに memcache バイナリプロトコルで通信する KVS もどきを書いた。 サーバのイベントループで go すれば全部済むのが楽ちんですね。 追記: HandleConn() の中で、backend_ch を backend との送信と受信両方に使っていたのだけど、ここにあるように、まったく誤りだということが分

    なんか Go で書くのが流行ってるみたいなので - moriyoshiの日記
  • GoでY Combinatorとか不動点関数とかmemoizeとかできたよー - 枕を欹てて聴く

    Y Combinatorとは何かという人は, この記事がわかりやすいです. Y コンビネータって何? - IT戦記 JSでは関数の型とかがいらないので, とてもシンプルにY Combinatorが書けます. var Y = function(f){ return (function(g){ return function(m){ return f(g(g))(m); } })(function(g){ return function(m){ return f(g(g))(m); } }); } しかし, Goでは関数の返り値, 引数の型を指定しなければいけません. すると, 上の例に当たるgの引数が再帰的に展開されてしまい, 純粋な関数では書くことが出来ません. そこで, いったん他のを探すと, の手法ならすぐにいけました. package main import "fmt"; type

    GoでY Combinatorとか不動点関数とかmemoizeとかできたよー - 枕を欹てて聴く
  • tokuhirom blog

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

  • Go で http アプリケーションサーバ - 酒日記 はてな支店

    デフォルトで付いてくるパッケージで、httpd (アプリケーション) が簡単に作れます。 import . "http" とすると、http. の前置なしで http パッケージの関数が使えるので、見た目も結構すっきり。 HandlerFunc(func(c *Conn, req *Request) { が繰り返されるのはちょっとうるさい感じですが。 # あとはテンプレートエンジンがあれば…… 付属してました → Go でテンプレートエンジン (json template) - 酒日記 はてな支店 http://gist.github.com/236088 package main import ( . "http"; // http パッケージの関数を http. prefix なしで使えるように "io"; "fmt"; ) func main() { gourl := "http:/

    Go で http アプリケーションサーバ - 酒日記 はてな支店
  • 限界を打ち破るはScalaかGoogleのGoか (「Scala入門」に勝手流追記その2) - Weblog towards a Word-Progress

    Scala入門 勝手流追記 その2。元記事が大上段なので、こちらも大上段に。 Scalaで実サービスをリリースしている著者らのJavaの限界を超えて実用化を目指す新開発言語「Scala」のメリットとは~前編(codezine誌) 今回は、codezine、1位と2位の記事がScalaGoであること(11/12時点)にちなんで両者を比較しつつ、元記事に一点だけ突っ込む。 JRuby/Jythonなどスクリプト言語由来の言語と異なり、Javaと同様の静的コンパイル言語であるScalaは、Javaバーチャルマシンの主流言語の座をめぐり、Javaに挑む挑戦者に位置づけられる。 その試みが成就するのは、早くとも数年後であろうが、Javaの袋小路を打ち破る方向性をScalaは示したといえる。 Javaに対するScalaの利点は、以下の3つであろう。 不変性(val)の上手な導入による容易な並列処

  • Go言語は良い言語です - Yet Another Ranha

    http://atnd.org/events/2115 というイベントがありました。11月14日に、Google渋谷オフィスでありました。 まずはじめに、Googleさんには場所を提供してもらった上にGoogleの中の人にも参加してもらって結果盛り上がったので当にありがとうございましたとしか。ありがとうございました。 で、次に、Go言語のマスコットキャラクターの名前は一部の賛同を得て勝手に「たわしくん(TAWASHI-KUN)」という事にしておきました。ダメだと思います。でもなんという名前なんでしょう。 今調べると、ちゃんと名前があったので、駄目です。 (http://japan.cnet.com/special/story/0,2000056049,20403390,00.htm) 取りあえずgoコンパイラ(8g)が落とせたかどうかですけどまぁ落とせませんでした。 どういう方向で攻めた

    Go言語は良い言語です - Yet Another Ranha
  • PHPにメッセージキューとそれを扱う糖衣構文を実装してみた (「PHPのすべらない話 #3」) - moriyoshiの日記

    Goにできて、PHPにできないはずはない!というわけでやってしまいました。まあ、これにメッセージキューとメッセージスロットを足しただけなんですが。 <?php function sub($i, $ch) { for (;;) { $a = <- [$ch]; printf("%d:", $i); var_dump($a); } } $ch = thread_message_queue_create(); for ($i = 0; $i < 10; $i++) { thread_create('sub', $i, $ch); } $i = 0; for (;;) { [$ch] <- $i++; usleep(50000); } ?> 見て分かるように、 [$ch] <- $i++;こんな感じにメッセージの送信を、 $msg = <- [$ch];こんな感じにメッセージの受信を書くことができ

    PHPにメッセージキューとそれを扱う糖衣構文を実装してみた (「PHPのすべらない話 #3」) - moriyoshiの日記
  • 「10〜30分で何となく分かるGo」という資料 - moriyoshiの日記

    Python Hack-a-thon #2 のために作りました。単なるまとめなので、間違いがあったらぜひ指摘してください。 10〜30分で何となく分かるGoView more documents from ... .... 追記: サンプルコードの zip はこちら

    「10〜30分で何となく分かるGo」という資料 - moriyoshiの日記
  • Matzにっき(2009-11-13) - [言語] The Go Programming Language

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

  • tokuhirom blog

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

  • 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のオフィシャルサイトは

  • inforno :: 個人的Go雑感&amp;メモ

    GoogleGoという新しいプログラミング言語 を出したようで。早速、インストールして軽くドキュメントを流し読みしてみました。 英語なんて読みたくないよ、という人もいるかもしれないし、誰かの役に立つかもしれないので自分用メモおいときます。完全に自分用なんである程度他の言語の知識がある人向けな上、ざっくり流し読みなんで間違ってるかも。 どんな言語? ネイティブコードを吐く、コンパイル型。 速度はCレベル。 GC搭載。ポインタはあるけど、ポインタ演算はできません。 各種アーキに最適化された、それぞれのコンパイラセットを持ちます。例: 6g, 6l : amd64 8g, 8l : i386 linux, mac, naclに対応。 動的型言語と静的型言語のおいしいとこどり。 concurrent処理が組み込まれてます。 個人的雑感 こんな言語設計思想かなあと感じたり とにかく、シンプルな言

  • 1