Golangでmapからquerystringを生成する

キーでソートして、値はエスケープする package main import ( "fmt" "net/url" "sort" "strings" ) type SortedQuery struct { _map map[string]string keys []string } func (sq *SortedQuery) Len() int { return len(sq._map) } func (sq *SortedQuery) …

Python2とGolangでHMAC方式のハッシュ値を生成する

HMACでハッシュ値を生成してbase64エンコードしてurlエスケープする。 amazon product apiでsignatureとして使われる値。python2 import hmac import urllib from hashlib import sha256 from base64 import b64encode key = "key" data = "data" digest = h…

UTCをフォーマット(YYYY-MM-DDThh:mm:ssZ)

python time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime()) golangのフォーマット指定はちょっと変わってるgolang package main import ( "fmt" "time" ) func main() { now := time.Now().UTC() fmt.Println(now.Format("2006-01-02T15:04:05Z")) } time…

golangで2つの日付間の月数を取得する

関連:Python2で2つの日付間の月数を取得する - brainstormgoでも書いてみた。 Duration使ってもできそう package main import ( "fmt" "time" ) // get months between two dates. func MonthDiff(d1, d2 time.Time) int { if d2.After(d1) { d1, d2 = d2, …

Python2で2つの日付間の月数を取得する

def diff_month(d1, d2): """ get months between two dates. >>> from datetime import date >>> diff_month(date(2012, 12, 1), date(2013, 3, 1)) 3 """ if d1 > d2: d1, d2 = d2, d1 return (d2.year - d1.year)*12 + d2.month - d1.month datetime - Be…

Go言語でスライスをn個ずつに分割する

関連 : python2でリストをn個ずつのサブリストに分割する - brainstorm package main import "fmt" func Chunks(l []int, n int) chan []int { ch := make(chan []int) go func() { for i := 0; i < len(l); i += n { from_idx := i to_idx := i + n if to_i…

python2でリストをn個ずつのサブリストに分割する

codeevalのsudokuやったときに調べたのでメモ。 結局使わなかったけど。Python2でCodeEvalのSUDOKU - brainstorm # coding=utf-8 size = 4 digits = [1, 4, 2, 3, 2, 3, 1, 4, 4, 2, 3, 1, 3, 1, 4, 2] # リスト内包表記 print [digits[x:x + size] for x in…

Go言語でCodeEvalのSUDOKU

関連 : Python2でCodeEvalのSUDOKU - brainstorm

Python2でCodeEvalのSUDOKU

CodeEvalサイズと数列が渡される。サイズは4か9である。 4の場合は4*4=16、9の場合は9*9=81の数字がサイズに続けて渡される。渡された数字の並びが数独の答えとして成立しているかどうかをTrue or Falseで出力するinput 4;1,4,2,3,2,3,1,4,4,2,3,1,3,1,4,2 4…

django shellで実行されるsqlを表示する

QuerySetでちょっと複雑な条件を書いてるときとか、sqlがどうなってるのか確認したい場合がある。 そんなときはdjango-extensionsのshell_plusの--print-sqlオプションを使うと便利。 モデルもpreloadしてくれるのでいちいちimportしなくていい python manag…

Go言語でCodeEvalのSUM TO ZERO

関連 : Python2でCodeEvalのSUM TO ZERO - brainstorm CodeEval 各行にカンマ区切りで、いくつか数字が渡される。 4つずつの組み合わせを作成し、そのうち和が0になる組み合わせの数を出力する。input 2,3,1,0,-4,-1 0,-1,3,-2output 2 1

Python2でCodeEvalのSUM TO ZERO

CodeEval 各行にカンマ区切りで、いくつか数字が渡される。 4つずつの組み合わせを作成し、そのうち和が0になる組み合わせの数を出力する。input 2,3,1,0,-4,-1 0,-1,3,-2output 2 1

Go言語でCodeEvalのCountint Primes

関連 : Python2でCodeEvalのCounting Primes - brainstorm

Python2でCodeEvalのCounting Primes

CodeEval2つの数字が与えられるので、間に素数がいくつあるかをカウントするinput 2,10 20,30output 4 2

Go言語でCodeEvalのVALID PARENTHESES

関連 : Python2でCodeEvalのVALID PARENTHESES - brainstorm goでも書いてみた。

Python2でCodeEvalのVALID PARENTHESES

CodeEval 行ごとにカッコの整合性がとれているかどうかを判定してTrue、Falseを出力する。 (){}[]以外の文字は渡されない。input () ([)]output True False

Go言語でCodeEvalのRacing Chars

関連 : Python2でCodeEvalのRacing Chars - brainstorm

文字の出現箇所をすべて返すcode snippet

str.findとかstr.indexだと文字が最初に出現するindexしか返さないので、すべての出現箇所のindexを取得したい場合の書き方を調べてた。 def find(s, ch): return (i for i, ltr in enumerate(s) if ltr == ch) 参考 : python - find char in string - can I…

Python2でCodeEvalのRacing Chars

easyにChallengeが1つ増えてた。CodeEval '_'がgateで、'C'がcheckpoint。'#'は通れない checkpointがあればそちらの道を、なければgateを通る。 通った道を'|'か'/'か'\'に置き換えていくこんな感じ input #########_## ########C_## #######_#### ######_#…

Ruby1.9でCodeEvalのSum Of Primes

Ruby1.9でCodeEvalのPrime Palindrome

1000未満の、「素数かつ回文数」の最大値を出力する

Go言語でCodeEvalのFizzBuzz

CodeEval

Ruby1.9でCodeEvalのFizz Buzz

CodeEvalinput 3 5 10 2 7 15output 1 2 F 4 B F 7 8 F B 1 F 3 F 5 F B F 9 F 11 F 13 FB 15

DjangoでAbstractUerを使ったときのエラーをメモ

見慣れないエラーを出したのでメモしておく。django.contrib.auth.models.AbstractUserを継承したモデルを作成設定ファイルのミスなどでAUTH_USER_MODELを指定していない場合以下のエラーがでる。ないとGroupやUserPermissionとUserの関連テーブルが重複する…

Go言語でXMLRPCクライアント

関連 : Go言語でXMLRPCサーバーのメモ - brainstorm昨日書いてみたXMLRPCのサーバーにgolangからアクセスするコード package main import ( "bytes" "fmt" "log" "net/http" "time" "github.com/divan/gorilla-xmlrpc/xml" ) type TimeArgs struct { } type …

Go言語でXMLRPCサーバーのメモ

関連 : Pythonでxmlrpc - brainstorm 以前pythonで書いたのと同じ、日付けを返すだけのサーバーをgoで書いてみる。divan/gorilla-xmlrpcを使用 package main import ( "log" "net/http" "time" "github.com/divan/gorilla-xmlrpc/xml" "github.com/gorilla/r…

Django 1.7aのForm.add_errorを使ってみる

Djangoのformで複数フィールドにまたがるバリデーションをかけたい場合は、cleanメソッドに処理を書く。 例 # coding=utf-8 from django import forms from django.core.exceptions import ValidationError class PasswordConfirmForm(forms.Form): password…

Go言語でCodeEvalのEmail Validation

関連 : Python2でCodeEvalのEmail Validation - brainstorm net/mailパッケージにアドレスをパースする関数が用意されている package main import ( "bufio" "flag" "fmt" "io" "net/mail" "os" ) func isValidMailAddress(address string) bool { _, err :=…

Python2でCodeEvalのEmail Validation

input.txt foo@bar.com this is not an email id admin#codeeval.com good123@bad.comoutput true false false true

Go言語でutf8のbomを削除する

関連 : Python2でutf8のbomを削除する - brainstorm TrimPrefixが使える package main import ( "bytes" "flag" "fmt" "io/ioutil" "os" ) var UTF8_BOM = []byte{239, 187, 191} func hasBOM(in []byte) bool { return bytes.HasPrefix(in, UTF8_BOM) } fun…