kumama go言語とかgolangとかGAEとかネットサービスとかその他色々・・・

27Nov/09Off

さすがあるのね・・・その2

sqlite
gosqlite3

Filed under: golang Comments Off
25Nov/09Off

goのhttpでproxy, oauth

httpパッケージのソース見れば解かるけど直接接続しかサポートしてない。

パッチ書こうかと思ってたけど。
流石、既に有るのね。

Issue 154042: Add rudamentary HTTP Proxy support to the http pkg.

twitterのOAuth用のパッケージも有ったりw
montsamu's go-twitter-oauth

example は 実行しておいて ポート:8080 にブラウザでアクセスするんだけど、
sessions/ tokens/ static/ っていうディレクトリが無いと落ちるので要注意。

Filed under: golang Comments Off
17Nov/09Off

「早速 Go言語を試してみる!」をgoで書き直してみた

まぁ、あれだけどこんな感じ。
amachangのところで書かれていたTwitterのpublic timeline拾ってくるサンプル。
早速 Go 言語を試してみる!
jsonもUnmarshalでxmlと同じように拾ってこれる。
とか、かなりgoっぽく書き直してみた。
Unmarshalは必要な要素だけでOKっぽいので使いやすい。

Linux/386, osx10.6.2/386で動作確認済み。

package main
 
import (
    "json";
    "http";
    "io";
)
 
type User struct {
    Screen_name string;
}
 
type Tweet struct {
    User User;
    Text string;
}
 
type Tweets struct {
    Tweet []Tweet;
}
 
func main() {
 
    if r, _, err := http.Get("http://twitter.com/statuses/public_timeline.json"); err == nil {
        if b, err := io.ReadAll(r.Body); err == nil {
            var tweets Tweets;
            json.Unmarshal( "{ "tweet": " + string(b) + "}", &tweets );
            for _, tweet := range tweets.Tweet {
                print( tweet.User.Screen_name + " : " + tweet.Text + "
" );
            }
        }
    }
}
Filed under: golang Continue reading
17Nov/09Off

google goで不要な戻り値は

google goで不要な戻り値は"_"(アンダースコア)で受ければいいらしい。

                for _, p := range result.Patch {

とか。

16Nov/09Off

google go::xmlの読込み

っていうか思いっきり間違ってるかもだけど。

<?xml version="1.0" encoding="UTF-8"?>
<binchg version="1.0">
         <target></target>
         <patch>
                 <name>cpumodel is always 0x0e i386</name>
                 <org>0fb60569958700 83e80d 3c21</org>
                 <mod>0fb60569958700 31c040 3c21</mod>
         </patch>
         <patch>
                 <name>cpumodel is always 0x0f x86_64</name>
                 <org>0fb60566e24900</org>
                 <mod>b80f0000009090</mod>
         </patch>
 </binchg>

なxmlをgoで読み込みたい場合、

type Patch struct {
        Name string;
        Org string;
        Mod string;
}

type Binchg struct {
        Target string;
        Patch []Patch;
}

と、定義しておいて、

        var result Binchg;
        xml.Unmarshal( patch_file, &result ) ;

で、OKっぽい。type定義の変数名を大文字で始める事でpublic扱いになって、
同名のタグを読んでくれる模様。

と、いう事でバイナリパッチ君のソースosx用バイナリ

Filed under: golang Continue reading