Groongaの対話モードをラップするgrnwrap

Groongaには素敵なWebベースの管理画面が付属していますが、ターミナルから対話モードで動作を確かめたいことも(私は)けっこうあります。 がしかし、この対話モードでは履歴呼び出しやカーソル移動が使えません。それと結果のJSONが一行なのでたいへん見づ…

TopCoder SRM 502

Div2 Easy: TheProgrammingContestDivTwo 時間内に複数のタスクをこなさなければならない。順序は任意。一つのタスクをこなすと、そのタスクが終わった時点での経過時間がペナルティとして加算される。制限時間Tと各タスクの必要時間requiredTimeが与えられ…

Google Code Jam勉強会 第一回

Google Code Jam(GCJ)の勉強会に参加しました。講師はおなじみ id:chokudai 先生。 簡単な説明の後で、二問実習し、問題の後にchokudaiさんのライブコーディング、という流れ。 ちなみに二回目が4/19 18:30〜に予定されていますよ。 説明と方針 以下、chok…

TopCoder SRM 501

Div2 Easy: FoxProgression(Java) 与えられた数列に追加すると、その数列が等差数列または等比数列になるような数は何種類あるか、という問題。 先頭に入れるのもありかと思って時間がかかったが、後ろにappendする場合だけを考慮すればいいらしい。 publi…

ここまでできた

地震で動揺していましたが、この週末から開発を再開しました。 手番、アゲハマの記録、コウの判定あたりが実装できました。まだまだ途中ですが、GAEで動かしています。 つい碁また、GitHubでソースを公開しています。 michisu/twitigo - GitHubぬるぬると、…

というわけでgoban.py最新版

とりあえずこれで対局を進められる。勝敗判定はできません。。 次はいよいよこれをGAE上で動かす。 # -*- coding: utf-8 -*- import sys import codecs class Untouchable(Exception): pass class Goban(object): empty = 0 black = 1 white = 2 invalid = 3…

動機とか仕様

Twitter経由で空き時間にちょっとずつ対局を進められる囲碁サイトをツクリ隊。 噂に聞く郵便碁とかのTwitter版、という構想です。題して「つい碁(仮)」。 やりたいこと オープンなプラットフォーム(Twitter)の上で通知を行う ゲーム中の全ての状態(一手…

着手できる場所のチェックと石を取る処理を追加

ちゃんとテストしていない。 # -*- coding: utf-8 -*- import sys import codecs sys.stdout = codecs.getwriter('utf-8')(sys.stdout) class Untouchable(Exception): pass class Goban(object): invalid = 99 empty = 0 black = 1 white = -1 around_moves…

Pythonで碁盤を表す文字列を生成

なんでこんなものを書いてるか、の説明はあとで。 # -*- coding: utf-8 -*- import sys import codecs sys.stdout = codecs.getwriter('utf-8')(sys.stdout) class Goban(object): empty = 0 black = 1 white = 2 def __init__(self, size): self.size = siz…

TopCoder SRM 498

6回目のSRM参戦。 Div2 Easy: AdditionGame(Java) はいはい。スピード勝負。 public class AdditionGame { public int getMaximumPoints(int A, int B, int C, int N) { int res = 0; for (int i = 0; i < N; i++) { int max = Math.max(Math.max(A, B), C…

TopCoder SRM 496をC#で練習

参加できてなかったので本番のつもりで練習。 Div2 Medium: ColoredStrokes using System; class ColoredStrokes { public int getLeast(string[] picture) { int res = 0; int width = picture[0].Length; int height = picture.Length; for (int i = 0; i …

SRM 497の回答をC#で書き直してみた

id:chokudai先生の真似してC#で参戦できないかなーと思案中。 Parallels上のWindows 7にVisual C# Expressを入れてみました。プロジェクト名がnamespaceになったり余計なusingが入るのって制御できないのかなー。 Div2 Easy: Filtering using System; class …

TopCoder SRM 497

コード貼るならはてなでしょってことで、ひさびさにこちらに書きます。 5回目のTopCoder挑戦です。これまでの記録はこちら。 http://www.topcoder.com/tc?module=MemberProfile&cr=22907785&tab=alg Div2 Easy: Filtering public class Filtering { public i…

名前解決がパフォーマンスに与える影響

http://blog.miraclelinux.com/asianpen/2008/05/python-code-rea.html#more でも実験されていますが、もう少し細かいケースで試してみました。scope_test.py def with_local(num): l = [] l_value = True for i in xrange(num): l.append(l_value) def with…

Python Code Reading 01

5/9 19:00 - 行ってきました。予備知識的な資料をまとめて発表する係、ソースコードリーディングの進行をする係でした。へたくそな進行でしたが、柴田さんはじめ皆さんに色々つっこんでいただいて勉強になりました。資料はこちらに上げてあります。 http://g…

グルーフォ

会社で新しいサービスを始めました。Web集合写真 グルーフォまずページを作ります。背景や参加人数、制限時間を決めます。URLが発行されますので、参加者はそこに行って画像をアップロード。人数がいっぱいになるか時間が来ると、合成されて一枚の画像になる…

tw.forms

数日前に新しいサーバをセットアップしてて気がついたこと。ToscaWidgetsでのフォームの実装twFormsの名前がtw.formsに変わっていた。だもんで easy_install twFormsがこけた。 easy_install tw.formsとしましょう。というだけの話。 ただし最新版では色々モ…

whichコマンド

which コマンドの実装 id:t2y-1979:20080409#1207749772whichはPATHを頭から調べて最初に見つけたものを返すので、 順序を保持しないsetに入れるとまずい ループをbreakしないと最後に見つけたものを出力してしまう と思います。 >>> set(['a', 'b', 'c', 'd…

テストケース生成スクリプト

最近「テスト可能なコードが良いコード」と教わり、そういう観点でコーディングを進めてみようと思ってます。今考えてる進め方はこんな感じです。 まず、実際に使うためのコードを大まかに書きます。この時点では、ほとんどメソッド名だけ。頭の中でなるべく…

Word Stones Log

今年もよろしくお願いします。国語辞書を読むブログ、下の場所でとりあえず始めてみます。 Word Stones Log やってみるとなかなか難しいですね。まともにやると時間が足りない。ちゃんと読むと急いでも3ページで10分ぐらいかかってしまうのですが、それ以上…

国語辞書『大辞泉』を全文読む計画

2864ページありますがこれを1日数ページずつ読んでいこうと思います。 1日3ページ読むと、955日、2.62年かかる計算になります。 なぜ大辞泉 大辞泉は私がまだ和歌山の田舎で高校生をやっていたときに発売された国語辞書です。誕生日になんか買ってやると親が…

Pythonで転置インデックスによる検索システム

山下たつをさんの転置インデックスによる検索システムを作ってみよう!のコードをPythonで真似してみました。Python2.5じゃないと動きません。 ファイルフォーマットや使い方はそのままですが、フォーマット検査をちゃんとやってないです。正規表現のキャプ…

よかった探しリース 2007

ちょっとこちらに書きます。よかった探しリースです。今年のよかったこと。 次男が無事に産まれました。 家族全員、健康に過ごせました。 家族全員で、日光へはじめての小旅行に行くことができました。 新しい会社で、作りたいと思っていたWebアプリケーショ…

Tumblrを普通のブログっぽく使います

まえにPHSからTumblrに投稿すると文字化けする件を書きましたが、今日試してみたらちゃんと動いてました。 なので、家庭や育児の記録もTumblrに書き留めようと思いました。(今までは別のブログに書いてました) あわせて、ここにたまに書いてる日常的な技術…

Marici/ブログ関心マップへの反応

おとといから少し反応が続きましたので、主に技術面でレスポンスしたいと思います。フィードバックありがとうございます。まずMariciについて。Marici の「ブログ関心マップ」など - 傀儡師の館 通常のページを見てみると、「マップを開く」というというリン…

ブログの内容をマインドマップ風に表示する「ブログ関心マップ」

ミニサービスを新しく公開しました。ブログのURLを入力すると、フィードを探してテキストを読み込み、マインドマップ風の「関心マップ」を生成して表示します。要Flash Player 9です。ブログ関心マップ このブログを読み込ませると上のようになります。色分…

twipediajpを削除した

長らく放置していたtwipediajp(DMでWikipedia検索するTwitterのロボットユーザ)をアカウント削除しました。 APIも色々変わってたわけですが、まったく追随できていなかったです。 Twitterは再開してぼちぼちやろうかと思いますので、どなたでも声をかけて…

TurboGearsアプリのロケール設定

TurboGearsのメモ。Mariciは一応英語と日本語の表示に対応している。(一部英語のみの箇所もあったり混乱があるので整備中)TurboGearsはデフォルトでブラウザの言語設定を判別してくれるのだけど、ユーザ設定などでロケールをユーザごとに制御したい場合も…

ユーザ登録方法の変更

当面負荷などは問題なさそうなため、招待コードがなくてもユーザ登録ができるようにいたしました。 登録が簡単に済むようにするための変更です。

Mariciへのリンク

http://d.hatena.ne.jp/textfile/20071012/marici尊敬する結城浩さん(id:hyuki)にリンクしていただきました。幸福です。 ありがとうございます!