write ahead log

ロールフォワード用

golang

golangでビデオアルバムアプリを作った

golangで小さいツールはいろいろ書いてみたけどWebアプリも書いてみようということで作ってみた. github.com 正直途中から飽きてきて,やっつけで作った感が否めない. ある程度機能作って書き直していこうと思っていたけど,ある程度の機能さえ作っていない. …

golangでプログラムをデーモン化する(ように見せる)

golang標準ではデーモンを作れないという話を聞いたことがありましたが, デーモン化対応は続いているみたいです. さて、困った.標準でやりたかったなー.と思っていたのですが,とりあえず作成したプログラム単体でできるように以下の方法を取りました. os.Arg…

golangでWindows10上でSQLite3を使う

golangでSQLite3を使う情報は多いのだけれど, Windowsで使うとなると一気に情報が減ってしまう. 事前準備 ちょっと面倒ですが,まずはgccが必要です. 以下からダウンロードします. tdm-gcc msys2なんかでよく使うMinGWではダメっぽいです. (msys2使ってるので…

golangでExcelファイルを読みだす

Excelファイルの読み出しというのは業務アプリを作る際には避けられません. (そもそも業務アプリをgolangで作成できる会社なんてあるのかわかりませんが) ということでExcelファイルを読みだしてみます. 利用パッケージ 以下のパッケージを使わせてもらいま…

net/httpのhttp.HandlerFuncをラップするテクニック

golangでnet/httpを使うと下記のようなコードを書くことになる. func main() { http.HandleFunc("/foo", fooHandler) http.HandleFunc("/bar", barHandler) http.ListenAndServe(":8080", nil) } ここで全てのハンドラの前に認証を追加したいなどと考えると,…

golangでファイル・ディレクトリを操作する

ちょっとしたツールを作るのにも, DBを使うのが面倒な時にもファイル操作は便利. サンプルコードの実行にはosパッケージをインポートしてください. (Printしてるものには当然fmtも) import ( "os" "path/filepath" //ファイルパス操作の時は ) ディレクトリ…

goでコマンドラインツールを作る時にflagパッケージを使う

go言語(golang)はマルチプラットフォームでバイナリを吐けるのでコマンドラインツールを作るにはちょうどいい言語だと思います. 標準パッケージも充実していて,オプションやメッセージを出力するパッケージが標準で準備されています. 当初ググると以下が人気…

golangの日付フォーマット指定が面白い

百聞は一見に如かずということでとりあえずサンプルを. package main import ( "fmt" "time" ) const ( DATE_TIME_FORMAT = "2006/01/02/15:04:05" ) func main() { now := time.Now().Format(DATE_TIME_FORMAT) fmt.Println(now) } 実行結果 $ ./sample.exe…

golangでJSONをパースする

いろいろな所に書かれているけど,ハマってしまったので書き残しておく. golangでJSONをパースするにはencoding/jsonを利用すれば良い. 静的言語だけあってちょっと面倒なところがあって,JSONの構造に合わせて前もってstructを定義しておく必要がある. 基本 …

golangでhttptestを使ってテストする

ちょっとしたコマンドとか作る時にWebAPIを触ろうとすると, net/httpをよく使うことになる. テストについてはちょっと調べたんだけどhttp経由のものはやったことがなかった. net/httpはテストについてもnet/http/httptestがサポートしてくれているのでこれを…

GitHubのReleaseのダウンロード数を調べるコマンドを作った

別にcurl叩けばわかるんだけど,面白そうだし作った. github.com 使い方 ここからバイナリをダウンロードしてください. GitHubにアクセスして, Home -> Setting -> Personal access tokens -> Generate new tokenからアクセストークンを取得してください. 環…

golangで色々なOSのバイナリを作る

前も調べたけど記録してなかったので忘れた.今度はメモっとく. golangで他のプラットフォーム向けにクロスコンパイルするには環境変数を指定してbuildすれば良いらしい. 環境変数は GOOS GOARCH があってそれぞれOSとCPUアーキテクチャを表している. Linux環…

golangではてなブログに投稿するCUIクライアントを作った

はてなブログにコマンドラインから投稿できるクライアントアプリを作りました. golangで作ったので多分どこでも動きます. というか動かないと困るなぁ. この記事もviでMarkdownで書いて以下のコマンドで投稿してます. (プレビューと公開は子供に引きずられな…

golangで最低限のテストを書きたい

golangは触り始めたばかりで右も左もわからない状況なんだけれど,テストの書き方ぐらいは知っておこうかなと思う. とはいえあんまり頑張ると途方もないので最低限に絞る. テストされる側のプログラム package main func english() string { return "Hello, w…

Ubuntuにgo-langを入れる

多少古くてもバージョンが気にならない方は以下で. $ sudo apt-get install golang 若い言語だし,一応最新で試してみたかったので公式のバイナリを入れた. 1.公式からダウンロード 2.展開して配置 $ sudo tar -C /usr/local -xzf go1.6.linux-amd64.tar.gz 3…