2014-01-01から1ヶ月間の記事一覧

MacでMercurialのHTTPS認証のパスワードをキーチェーンに保存する

いちいちuser/passを入力するのが面倒。一つの方法として~/.hgrcにuser/passを書いてしまう手がある。 [auth] er.prefix = https://example.repository.com er.username = {username} er.password = {password}ただし平文でパスワードを書くことになる 別の…

Go言語の練習 - container/list 2回目

今日もなんとなくcontainer/listをいじってて、ついでに単方向連結リストを書いてみた。 package main import ( "container/list" "fmt" ) type SinglyLinkedListNode struct { next *SinglyLinkedListNode Value interface{} } func (node *SinglyLinkedLis…

Go言語の練習 - container/list

container/listは双方向連結リストが実装されている。 以下は重複する要素を削除するコード。 package main import ( "container/list" "fmt" ) // mapを使うパターン func uniquify(l *list.List) { table := make(map[interface{}]bool) element := l.Fron…

Go言語のRest Framework 「Sleepy」を触ってみた

dougblack/sleepy コードが100行ちょっとくらいなので読みやすい。作りとしてはstructが{Method}Supportedインターフェースを実装していれば、そのメソッドを呼び出せるようになる感じ。例えばPOSTをサポートするめにはPostSupportedインターフェースを実装…

IntelliJのDartプラグインを試す

DartEditorのemacsキーバインド - brainstorm jetbrainsのDartプラグインがあったはずなので、今度それも試してみる PycharmにDartプラグイン入れて試してみた。 settingsでdart-sdkのパスを指定する dartファイルがシンタックスハイライトされる。 importで…

Go言語でCodeEvalのCOMPRESSED SEQUENCE

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…

DartEditorのemacsキーバインド

そういえばDartって最近どうなのかなと思って、チュートリアルをやってみていた。EclipseベースのDartEditorなるものが用意されているので使ったんだけどキーバインドの設定がxmlをexportして、自分で編集してimportする方式。これで自分好みのキーバインド…

Go言語の練習〜Benchmark

昨日書いたGoで文字列を適当に圧縮する関数のベンチマークを取ってみた。 package main import "testing" func BenchmarkCompressBadStrA(b *testing.B) { for i := 0; i < b.N; i += 1 { CompressBad(strA) } } func BenchmarkCompressBetterStrA(b *testin…

Go言語の練習 〜 文字列の基本的な圧縮

"aaaabbbbcccc"を"a4b4c4"にする処理。マルチバイト文字でもいける。rune、bytes.Bufferの扱いとかにちょっと慣れた。

Go言語でCodeEvalのString Permutations

CodeEval 文字列のpangramすべてを取得してソートして表示input hat abc Zu6output aht,ath,hat,hta,tah,tha abc,acb,bac,bca,cab,cba 6Zu,6uZ,Z6u,Zu6,u6Z,uZ6

Go言語でスライスの順列を取得する

とりあえず書いてみて動いたのでメモしておく。 package main import "fmt" // リストからidx番目の要素を抜かしたものを取得 func delete(idx int, L []interface{}) (result []interface{}) { result = append(result, L[:idx]...) result = append(result…

Go言語で構造体をjsonに変換するSnippet

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…

Genymotion起動時に「could not obtain an IP Address」エラーが出る場合

ホストオンリーネットワークの設定を確認する。 以下の設定に修正したらちゃんと動いた。

GenymotionでKindleをインストールしたときのメモ

「**** With Apps」となっているvirtual deviceをインストールすればGoogle Playが最初から入っている、というエントリをよく見るけどリストに出てこない。Genymotionのバージョンによるものらしい。 どうにかしてGoogle Playを入れて、Kindleを使いたいと思…

Go言語で構造体をXMLに変換するsnippet

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…

Djangoのテストで実行されたsqlを確認する

# 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があるとエラー

Pycharmの起動構成からdjangoのtestを実行する場合、unittest.skipにunicode文字列を渡しているとエラーになるみたいなのでメモしておく。 # coding=utf-8 from django.test import TestCase from django.utils import unittest class TestSample(TestCase):…

Go言語のwebフレームワーク「martini」アプリにBasic認証をかける

martini-contribにauthパッケージが用意されているのでそれを使う。 Basic認証をかける機能しかない。 $ go get github.com/codegangsta/martini-contrib/auth 使い方 package main import ( "github.com/codegangsta/martini" "github.com/codegangsta/mart…

Go言語の構造体にunderscore.js風のメソッドを追加する「gen」を試す

clipperhouse/gen インストール $ go get github.com/clipperhouse/gen コマンドラインツール「gen」 コマンドラインツール「gen」がインストールされる $ gen Usage: gen [[*]package.TypeName] [-[*]all] [-exported] *package.TypeName # generate funcs …

goのimportを自動的に追加/削除してくれる「goimports」を試してみた

bradfitz/goimportsgofmtでファイル保存するときに自動的にフォーマットするようにしてるのだが、使っていないimportの削除は行われない。goimportsをgofmtのかわりに使うと、importのfixまでやってくれるようになる。 インストール go get code.google.com/…

Go言語でコンソールにプログレスバーを表示するライブラリ「pb」

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-linqを試してみた

Goで.NETのLINQのようなことができるgo-linqというライブラリを試してみた。 quickstartを写経しただけだけど便利にそう。とりあえずrubyでいうcollectみたいなのが1行で書けるのが嬉しい。 それ以外にもいろんなことができて面白い。 ahmetalpbalkan/go-linq

Go言語でランダムな文字列を取得する

martini-congrib/sessionsでセッションIDを取得するあたりのコードを読んでいて見つけたのでメモ。だいたいこんな感じ。 io.ReadFull(rand.Reader, b)でランダムなバイト配列を取得できる。 package main import ( "crypto/rand" "encoding/base32" "fmt" "i…

Go言語でCodeEvalのMorse Code

CodeEvalinput.txt .- ...- ..--- .-- .... .. . -.-. -..- ....- ..... -... .... ...--output AV2WHIECX 45 BH3参考 : モールス符号 - Wikipedia

Go言語でCodeEvalのRoad Trip

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,…

Go言語でCodeEvalのHidden Digits

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…

Go言語のWebフレームワーク「Revel」でゲストブックアプリケーションを作ってみた

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…

Go言語のwebフレームワーク「martini」でゲストブックアプリケーションを作ってみた

このあいだ「Beego」を使って作ったゲストブックアプリケーションをそのまま「Martini」でも作ってみた。Martini - Classy web development in Go. インストール $ go get github.com/codegangsta/martini とりあえず動かす Beegoよりも更にシンプルな感じ。…

Beegoアプリをherokuにアップする

昨日作ったbeegoを使ったゲストブックアプリケーションをherokuにアップしてみた。Beego GuestBook 以下のエントリを参考にした。 Getting Started with Go on Heroku 適当にやったことをメモする 依存パッケージの管理のためにgodepを入れる。 godeps save…

Go言語のWebアプリケーションフレームワーク「Beego」でゲストブックアプリケーションを作ってみた

Goのwebアプリケーションフレームワーク「Beego」でPythonプロフェッショナルプログラミングの2章のゲストブックアプリケーションを作ってみた。 (こちらのエントリの真似) インストール $ go get github.com/astaxie/beego $ go get github.com/beego/beebe…