2012-01-01から1年間の記事一覧

Pythonでメモリを食い過ぎた時に見直すポイント

ちょっと複雑なアルゴリズムをPythonで実装してみて、自分の予想以上にメモリを食ってしまったので何が原因なのかプロファイルしてみた。 辞書を大量に使ってはいけない 指摘されてみれば当たり前のことなんだけども、辞書はハッシュテーブルなのでメモリを…

Re: プログラマの実力は〜

プログラマの実力は経験だけであがらないことがレベル格差につながる - きしだのはてな要約して「Xを学ぶべきだ」になる主張は、その主張が正しいかどうか聞き手が判断できない。Xについて知らないのだから、判断できるはずがない。話し手も正しく判断できて…

Rubyの文字列がエンコード情報を持っている話

Rubyの文字列はエンコード情報を持っているという話。 struct RString { struct RBasic basic; union { struct { long len; char *ptr; union { long capa; VALUE shared; } aux; } heap; char ary[RSTRING_EMBED_LEN_MAX + 1]; } as; }; あれ?持ってないぞ…

PRMLを読むのに掛かる時間

naoya_t さんの始めた初代 PRML 読書会は、当初は演習問題を全部解くんだ! と意気込んでいたようだが、初回で挫折。演習問題は必要に応じて適宜解くことにして、月1回、各回6〜9時間(!)を費やして、14ヶ月で全14章を読み通した。 一方、サイボウズ・ラボで…

素数を計算するオートマトンを実装してみた

先日のWEB+DB PRESS Vol.70で和田先生が紹介されていた素数を計算するオートマトン、面白そうだったので僕も実装してみた。まずは出力結果から。一番左端が空白(状態0)であるとき、それは素数。最初は0〜Fを使っていたんだけどもアスキーアート的にした方が…

SamurAI Codingのゲームルールを勝手に解説

SamurAI Codingは情報処理学会主催で行われる国際プログラミングコンテスト。9月28日にシンガポール予選、10月11日にシリコンバレー予選、24日に日本予選が行われる。 公式サイト: https://samuraicoding.org/ゲームは簡潔に言えば「サムライと犬を動かして…

情報科学若手の会2012に参加してきました

情報科学若手の会2012に参加してきました。今年の招待講演はプロフェッショナルコネクターの勝屋久さんと、さくらインターネット代表取締役社長の田中邦裕さんでした。どちらもとても面白かったです。 勝屋さんの講演の「受けとめること」は、ごく最近「考え…

任天堂のCode Puzzleが面白い

友だちに教えてもらったので解いてみたが、なかなか面白い。http://cp1.nintendo.co.jp/index.html1問目は10行くらいで解けた。 2問目は48行ぐらい。 3問目は「you may use this table :-)」のおかげで楽ちん、デコーダは実装しなかった。38行。 4問目は「解…

ブラウザ上で動くEDSACシミュレータを公開しました

EDSACは1949年頃のコンピュータです。EDSAC - Wikipedia。 機械語の命令の種類が18個ととてもシンプルです。今のx86の命令セットは膨大で全部を把握できなくなってしまって、教育上良くないのではないかと思っています。そこでシンプルなコンピュータであるE…

「Pythonで記号なしプログラミング」(未完)

竹迫さんがPerlで記号なしプログラミングの偉業を達成したのは7年前だった。(see ppencode)そしてoxyさんがRubyで記号のみプログラミングを達成した(rrencode)7年前にも「Pythonで記号なしプログラミングできないの?」と言われた。当時若かった(まだ四捨五…

テスト中だけデバッグ出力をONにして内容をテスト

テスト対象の中のprivateな値が期待通りに変化していることをgetterを作って晒したりせずに確認する、というのをやってみた。with構文を使ってテストの間だけ一時的なログハンドラを貼り付けてやってる。doctestに書いてあるように普通にCounter().push()し…

loggingでの出力はdoctestを妨げない

おお、これでlogging.debugのメッセージはコンソールに表示されて、doctestは影響を受けずに成功する。知らなかった。追記:おっと、干渉しないように設計してあるのかと思ったがそういうことじゃなくて単純にlogging.debugが標準エラー出力に出ているだけだ…

Qlobe.py

こちらに種も仕掛けもないPythonのコードがありまして: $ cat qlobe.py C="The Qlobe (c)Yusuke Endoh, 2010. Ported to Python by NISHIO Hirokazu, 2012." v=0000;s="""import zlib,struct ,math,sys,re;d=re.sub('\s+|".*' '"',"", '''^Lcf<LK8,_@7gj* "%.#% :::##" LJ=c5nM)Tp1g0%Xv.,S[<>YoP4 ZojjV)O></lk8,_@7gj*>…

考えない練習

妻が読んでた 「考えない練習」がタイトルからの予想に反してかなり良い本だった。今までのタスク管理とか生産性向上ライフハックとかには、脳に対しての刺激を増やす方向のものが多い。それは結局はストレスとして積み上がってしまう。それでは一時的に生産…

VirtualBox

apt-get系のコマンドで「E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?」だとか「Something wicked happened resolving 'jp.archive.ubuntu.com:http' (-5 - No address associated with hostname)」だとかエラー…

般若心経の構造の可視化

前から般若心経の構造って面白いからうまいことかしかできないかなぁと思っていたのだけども、今までは2次元の画像として可視化することばかり考えていた。眠れなくてぼんやりしていたら唐突に「動画として音と映像を使って表現したほうがいいんじゃないか」…

発表会でFacebookのイベントページを使うことのメリットとデメリット

複数人が発表をするタイプのイベント(勉強会とかカンファレンス)で発表中に聞いている人がコミュニケーションをする場としてFacebookのパブリックイベントページ使うことのTwitterやIRCと比較した場合のメリットとデメリット メリット IRCは自前でサーバを立…

プロシンの注意書きが素晴らしい

2012年夏のプログラミング・シンポジウムの注意書きが素晴らしい。 集合時間以外は,スタッフが鍵を空けることはありません.万が一遅れた場合は,中の知り合いに電話や twitter などで助けを求めて下さい.助けに行く人は発表が聞けなくなります.その点を…

Pythonの__xxx__まとめ

データモデル - 特殊メソッド名 — Python 2.7ja1 documentation 27.11. __future__ — future 文の定義 — Python 2.7ja1 documentation 30.7. runpy — Python モジュールの位置特定と実行 — Python 2.7ja1 documentation 以下がpython2.7.3リポジトリ中のすべ…

Pythonの__xxx__の集計

(追記、まとめはこちら Pythonの__xxx__まとめ)Python2.7.3のコードから__xxx__の形の文字列が何回でてくるかを集計した。まずは*.cと*.hの中を集計したもの。C言語レベルで使われている物もまざっている。__LP64__とか__GNUC__とか。Pythonコードに対する集…

nginxを勉強する日記

前回「Rackhubを試してみた日記」でPython製の自前サーバを起動した際に、Rackhubは8000番のポートとかを塞いであるので自前サーバを80番で動くようにするために色々苦労してたら「それnginxでリバースプロキシすればいいよ」と教えてもらった。 「Rackhub: …

epubを作る

サンプルのepubをunzipして、書き換えてzipしたけども動かなかった。仕様をよく確認してみるとmimetypeってファイルは圧縮してはいけないと書いてある。ほう。 というわけで下記のコマンドでzipしたらちゃんとKoboで閲覧できるepubができた。 $ zip -r -n mi…

創業記念祭でKobo Touchもらった

なんと、あの電子ペーパー付きLinuxガジェットが!!これはハックせよという神様のお達しに違いない!

hexl-modeで16進で入力する方法

Emacsのバイナリエディタモードhexl-modeでバイナリファイルを書き換える際、16進数でFFと入れたようとしてもFを押すとそのバイトにFが入ってしまって、あれれどうするんだろう?と思ったがF1-mしてhexl-modeのヘルプを読んだらC-M-xで16進で入力できるとい…

iTunesでPodcastをSpaced Repetitionする

最近英語のポッドキャストを聞いているんだけど、Podcastってあんまり「一度聞いたものを間隔をおいてもう一度聞き直す」ということを想定して設計されていないので英語の勉強に向いていない気がする。間隔をおいて聞き直すだけでなく、その間隔が徐々に伸び…

発表会でFacebookを使うことのメリットとデメリット

複数人が発表をするタイプのイベント(勉強会とかカンファレンス)で発表中に聞いている人がコミュニケーションをする場としてFacebookのパブリックグループを使うことのメリットとデメリット(追記: パブリックイベントを使うほうが便利だということが判明した…

Vicon Revue よい点・ダメな点

使い始めてまだ1週間のペーペーなのに「どうですか?」と聞かれることが多いのでよい点と悪い点を書くエントリーを用意しておいて思いつき次第ここに書き足すことにする。 悪い点 解像度を2048x1536にしたのはやり過ぎじゃないか。 カメラ撮影結果を記録して…

第18回未踏成果報告会に参加しています

情報処理推進機構:未踏:2011年度:「第18回未踏事業」成果報告会に来ています。今回はFacebookにパブリックグループを作ってあるのですが、これは結構いいですね。Togetterみたいに労力をかけなくても、発表ごとにスレッドができるので後から読む人に優し…

Macのスクリーンショットで1日の作業を記録して動画で振り返り

スクリーンショットを10秒に1回撮影して連番の画像で保存するスクリプトを走らせて1日の作業を記録し、一日の最後にffmpegで動画にして振り返りをしてみた。結構面白いよ。社内掲示板やメーラやエディタで文章がにょきにょき伸びていくのが見えるのも楽しい…

Macのスクリーンショットのファイル名を変更

デフォルトだと"スクリーンショット 2012-07-02 15.50.51.png"とかになってしまって、日本語で始まるからコンソールから扱うのがめんどくさい。defaultsコマンドでプレフィックスを変えることが出来るようだ。 $ defaults write com.apple.screencapture nam…