golang の struct のレシーバーを struct への ポインタ型にした場合とか、エンベッドしたときにポインタ型にした場合とかの挙動の違いがいまいち把握できてなかったのですが、ポインタとはなんぞや、を思い出して納得しました。 メモリアローケーションされ…
github.com fresh というとても素敵なツールがありまして、大変お世話になっております。 でも、ちょっとこうしたいな、とか、これはちょっとみたいなのがあって、その辺機能追加されてるやつないかって探したわけです。 すると、なにしろ fork が 88 とかあ…
golang で db あつかうときスキーマを struct で用意するじゃないですか。 で、sql はあるのでそっから struct つくりたかったんですが、見つからなかったので mysql に接続して情報を取得して struct を吐いてくれるやつを使いました。 github.com 結果てき…
shasum ってコマンドがあって、それ使ってたんですが、perl のコマンドだったのを今知って、go に劣化移植しました。 github.com $go get github.com/sheercat/goshasum $goshasum .gitconfig .bashrc 92c725e0c0c425ec6b46c66bf5a67cef1b567bed .gitconfig …
あけまして。happy go year 2016 go (golang ) の書籍が増えてきましたので、ちょっと紹介します。 改訂2版 基礎からわかる Go言語作者: 古川昇出版社/メーカー: シーアンドアール研究所発売日: 2015/07/17メディア: 単行本(ソフトカバー)この商品を含むブ…
golang の regexp には go1.3 以降から onepass っていう処理がはいって、never need backtracking な regexp は onepass として高速に処理されるらしい。 具体的にはどんなものが onepass になるのか、なれないのか。 それは onepass_test.go をみるのがて…
最近 regexp 系をいろいろさわってました。 golang の regexp が c, ruby, perl などと比べて遅いというのはググったらいろいろ情報出てくるんですねー。 さて、regexp 処理がメインの perl モジュールを go に移植したんですが、チューニングしても 3倍以上…
golang の場合、2つのスライスを連結して1つにするには package main import "fmt" func main() { a := []byte("hoge") b := []byte("hage") c := append(a, b...) fmt.Println(string(c)) } このようにする。では、3つは? package main import "fmt" fu…
revel 見ると言ってたが、ありゃ半分うそになった。すまん。 ということで、わけあって別言語プロダクトの移植をすることにしました。 その過程で思ったんですが my $mar = "mar"; my $hoge = "$mar + $mar = $mar$mar"; みたいに文字列リテラル中に変数いれ…
さて、 github.com ですが、main.go routes.go をつくったあとは、go build してます。 で、build してエラーになったとき、その原因が package get が足りてないからだろうと思われる場合、勝手に go get してもってきてくれて、また build するというルー…
harness.Build 続き tmp routes にあるソースがクリーンされ、もともとある main.go routes.go がなくなり const で埋め込んである MAIN, ROUTES テンプレをつかって新しい main.go routes.go がつくられる。 このテンプレは text/tempalte フォーマット。 m…
revel は いわゆる rails てきに scafold してもこっとテンプレを作ってくれる。 # revel new github.com/sheercat/anyweb みたいに。 これの本体は github.com で、$GOPATH 以下に引数の名前でプロジェクトをつくり、conf とかもいきなり動く形で作成される…
Welcome to Revel, the Web Framework for Go! を使うことに。選んだ理由としては、 「gin goji negroni など、軽量を必要に応じて使うか、net/http で十分だ」論が多すぎて、逆に「重量級のキャッチアップから逃げない勇気が必要なんじゃ?」って思ったから…
TL;DR なしmattn.kaoriya.netとても参考になる記事です。さて、この記事を見て、改めて golang を書きながら思っていることが明確になって来ました。タイトルのまんまですがgo を go らしく書こうとすると C で書くようなソースコードになるということです。…
golang 書いてると、import "fmt" で fmt.Println デバッグとかして、デバッグおわって fmt.Println 消すと、 imported and not used: "fmt" ってめちゃくちゃ怒られて、でもまぁしょうがないので、 impot "fmt" を消すか import ( _ "fmt" ) みたいに _ の…
最近いくつかの社内のツールを(irc や slack に常駐する系のやつ)go で書きなおしたんですが、その際に思ったことを書きます。 一番出るコンパイルエラーは、「この変数、このパッケージはつかってないよ」(とくに pp 様で) 一番ランタイム落ちしたのが…
文字列を n 文字で分割ってどの言語でもつねにやりたくなる場面があって、go でもやりたくなったのでやりました。楽したい脳でつくったのが split0 で、qiita でコメもらったのがソレ以外の2つです gist.github.comで、ベンチ gist.github.comぜんぜん違う…
go の := の挙動の1つに、どっちかでも新変数であればおkというのがありまして これはエラーじゃない。
go にはいろいろ template エンジンが移植、開発されてますが、標準で用意されてる html/template を使ってみました。 gist.github.comなんかこんな感じで ラッパーである layout.html と変数宣言する define.html をいれて index.html が本体だとして gist.…
goenv (or anyenv) で 1.5beta2 をインストールするには、sheercat/goenvgithub.comを使えばYOI fix for 1.5beta? · sheercat/goenv@5c73722github.comこんだけですがね。
github.com/disintegration/gift というライブラリdisintegration/giftgithub.comと、公式の image、image/png をつかって、左右反転画像のgooglesearchをするgyazoをつくった gist.github.com反転部分はこんな感じだった。はげしく楽だった。はげしく大変だ…
go で書いた web アプリを aws の preconfigured docker for go にのせて elastic beanstalk をつかってデプロイしたんですが、docker の手前に nginx がリバースプロキシーとして存在してて、go 自体は 3000 ポートを開いておくと、そこに全リクエストが来…
仕事で簡単な web アプリを書く必要があり、perl で書いても良かったんだけど、最近 go づいてるので、go で書きました。まずはWAFだということ、kocha, martini, goji, gin, revel, kami, beego, negroni などいろいろ調べて、結局勉強なんだから net/http …
goenv にはいろいろあります。github にあるもの、bitbucket にあるもの、github にも fork されてるのが大量に。 基本は wfarr/goenv · GitHub こちらだと思うんですが、これだと curl のオプションがあれでうまく動きません。 なので、わたしも fork して…
basic 認証 goproxy で。 <a href="https://github.com/sheercat/yaproxy/blob/master/main.go" data-mce-href="https://github.com/sheercat/yaproxy/blob/master/main.go">sheercat/yaproxy</a>github.com net/http のみで。 sheercat/attogithub.com
golang は net/http でいともかんたんに http server を起動できるので、ちょっとだけ便利にしたのを作った。 sheercat/attogithub.com 起動すると起動したディレクトリ配下を serve するだけのものです。 ?upload をつけると、file upload フォームを出せる…
WAFをずっとさがしてたんだけど、なんかどれがメジャーかもよくわからんので、net/http をつかってみることにした。 まず作ったのは私家版 gyazo 。 package main import ( "fmt" "io" "net/http" "os" "path" "strconv" "time" _ "github.com/k0kubun/pp" )…
golang はじめることになったので、ブログもはじめました。 https://daichkr.hatelabo.jp/antenna/960679194078228900 とりあえず大アンテナをつくることから。