2014-01-01から1ヶ月間の記事一覧
いちいちuser/passを入力するのが面倒。一つの方法として~/.hgrcにuser/passを書いてしまう手がある。 [auth] er.prefix = https://example.repository.com er.username = {username} er.password = {password}ただし平文でパスワードを書くことになる 別の…
今日もなんとなくcontainer/listをいじってて、ついでに単方向連結リストを書いてみた。 package main import ( "container/list" "fmt" ) type SinglyLinkedListNode struct { next *SinglyLinkedListNode Value interface{} } func (node *SinglyLinkedLis…
container/listは双方向連結リストが実装されている。 以下は重複する要素を削除するコード。 package main import ( "container/list" "fmt" ) // mapを使うパターン func uniquify(l *list.List) { table := make(map[interface{}]bool) element := l.Fron…
dougblack/sleepy コードが100行ちょっとくらいなので読みやすい。作りとしてはstructが{Method}Supportedインターフェースを実装していれば、そのメソッドを呼び出せるようになる感じ。例えばPOSTをサポートするめにはPostSupportedインターフェースを実装…
DartEditorのemacsキーバインド - brainstorm jetbrainsのDartプラグインがあったはずなので、今度それも試してみる PycharmにDartプラグイン入れて試してみた。 settingsでdart-sdkのパスを指定する dartファイルがシンタックスハイライトされる。 importで…
CodeEval数字が並んだファイルを与えられるので、1行毎に、「要素が続いた数」+「要素」の並びに変換して出力する。input 40 40 40 40 29 29 29 29 29 29 29 29 57 57 92 92 92 92 92 86 86 86 86 86 86 86 86 86 86 73 73 73 73 41 41 41 41 41 41 41 41 41…
そういえばDartって最近どうなのかなと思って、チュートリアルをやってみていた。EclipseベースのDartEditorなるものが用意されているので使ったんだけどキーバインドの設定がxmlをexportして、自分で編集してimportする方式。これで自分好みのキーバインド…
昨日書いたGoで文字列を適当に圧縮する関数のベンチマークを取ってみた。 package main import "testing" func BenchmarkCompressBadStrA(b *testing.B) { for i := 0; i < b.N; i += 1 { CompressBad(strA) } } func BenchmarkCompressBetterStrA(b *testin…
"aaaabbbbcccc"を"a4b4c4"にする処理。マルチバイト文字でもいける。rune、bytes.Bufferの扱いとかにちょっと慣れた。
CodeEval 文字列のpangramすべてを取得してソートして表示input hat abc Zu6output aht,ath,hat,hta,tah,tha abc,acb,bac,bca,cab,cba 6Zu,6uZ,Z6u,Zu6,u6Z,uZ6
とりあえず書いてみて動いたのでメモしておく。 package main import "fmt" // リストからidx番目の要素を抜かしたものを取得 func delete(idx int, L []interface{}) (result []interface{}) { result = append(result, L[:idx]...) result = append(result…
package main import ( "bytes" "encoding/json" ) type Person struct { Name string Age int Friend *Person } func main() { friend := Person{"john", 40, nil} person := Person{"paul", 71, &friend} var buf bytes.Buffer b, _ := json.Marshal(perso…
ホストオンリーネットワークの設定を確認する。 以下の設定に修正したらちゃんと動いた。
「**** With Apps」となっているvirtual deviceをインストールすればGoogle Playが最初から入っている、というエントリをよく見るけどリストに出てこない。Genymotionのバージョンによるものらしい。 どうにかしてGoogle Playを入れて、Kindleを使いたいと思…
package main import ( "bytes" "encoding/xml" ) type Person struct { Name string Age int Friend *Person } func main() { friend := Person{"john", 40, nil} person := Person{"paul", 71, &friend} var buf bytes.Buffer buf.Write([]byte(xml.Header…
# coding=utf-8 from django.test import TestCase from django.db import connection from apps.models import Person class TestSample(TestCase): def test_sample(self): connection.use_debug_cursor = True connection.queries = [] # do something Pe…
Pycharmの起動構成からdjangoのtestを実行する場合、unittest.skipにunicode文字列を渡しているとエラーになるみたいなのでメモしておく。 # coding=utf-8 from django.test import TestCase from django.utils import unittest class TestSample(TestCase):…
martini-contribにauthパッケージが用意されているのでそれを使う。 Basic認証をかける機能しかない。 $ go get github.com/codegangsta/martini-contrib/auth 使い方 package main import ( "github.com/codegangsta/martini" "github.com/codegangsta/mart…
clipperhouse/gen インストール $ go get github.com/clipperhouse/gen コマンドラインツール「gen」 コマンドラインツール「gen」がインストールされる $ gen Usage: gen [[*]package.TypeName] [-[*]all] [-exported] *package.TypeName # generate funcs …
bradfitz/goimportsgofmtでファイル保存するときに自動的にフォーマットするようにしてるのだが、使っていないimportの削除は行われない。goimportsをgofmtのかわりに使うと、importのfixまでやってくれるようになる。 インストール go get code.google.com/…
cheggaaa/pb package main import ( "github.com/cheggaaa/pb" "time" ) func main() { count := 100000 bar := pb.StartNew(count) for i := 0; i < count; i++ { bar.Increment() time.Sleep(time.Millisecond) } bar.FinishPrint("The End!") } exampleに…
Goで.NETのLINQのようなことができるgo-linqというライブラリを試してみた。 quickstartを写経しただけだけど便利にそう。とりあえずrubyでいうcollectみたいなのが1行で書けるのが嬉しい。 それ以外にもいろんなことができて面白い。 ahmetalpbalkan/go-linq
martini-congrib/sessionsでセッションIDを取得するあたりのコードを読んでいて見つけたのでメモ。だいたいこんな感じ。 io.ReadFull(rand.Reader, b)でランダムなバイト配列を取得できる。 package main import ( "crypto/rand" "encoding/base32" "fmt" "i…
CodeEvalinput.txt .- ...- ..--- .-- .... .. . -.-. -..- ....- ..... -... .... ...--output AV2WHIECX 45 BH3参考 : モールス符号 - Wikipedia
CodeEval input.txt Rkbs,5453; Wdqiz,1245; Rwds,3890; Ujma,5589; Tbzmo,1303; Vgdfz,70; Mgknxpi,3958; Nsptghk,2626; Wuzp,2559; Jcdwi,3761; Yvnzjwk,5363; Pkabj,5999; Xznvb,3584; Jfksvx,1240; Inwm,5720; Ramytdb,2683; Voclqmb,5236; output 1245,…
CodeEvalaからjまでのアルファベットは0-9に置き換える 見えている数字はそのまま それ以外の文字は全て無視 数字が1文字も残らなかった場合はNONEを返すinput.txt abcdefghik Xa,}A#5N}{xOBwYBHIlH,#W (ABW>'yy^'M{X-K}q, 6240488 output 012345678 05 NONE…
The Revel Web Framework for Go インストール $ go get github.com/robfig/revel/revel コマンドラインツール $ revel ~ ~ revel! http://robfig.github.com/revel ~ usage: revel command [arguments] The commands are: new create a skeleton Revel appl…
このあいだ「Beego」を使って作ったゲストブックアプリケーションをそのまま「Martini」でも作ってみた。Martini - Classy web development in Go. インストール $ go get github.com/codegangsta/martini とりあえず動かす Beegoよりも更にシンプルな感じ。…
昨日作ったbeegoを使ったゲストブックアプリケーションをherokuにアップしてみた。Beego GuestBook 以下のエントリを参考にした。 Getting Started with Go on Heroku 適当にやったことをメモする 依存パッケージの管理のためにgodepを入れる。 godeps save…
Goのwebアプリケーションフレームワーク「Beego」でPythonプロフェッショナルプログラミングの2章のゲストブックアプリケーションを作ってみた。 (こちらのエントリの真似) インストール $ go get github.com/astaxie/beego $ go get github.com/beego/beebe…