タグ

ブックマーク / nishiohirokazu.hatenadiary.org (22)

  • Facebookの全アクティビティログをファイルに書き出すツールを作った - 西尾泰和のはてなダイアリー

    node-webkit便利。 https://github.com/nishio/dumpfb/blob/master/main.js とりあえずアクティビティログのinnerHTMLをそのまま書き出すようにした。僕の目的は自分の過去の発言からの検索なので、イイネした情報とかは捨てても良かったんだけど、JSよりPythonの方が慣れているのでフィルタはPythonで書けばいいかなと。 2008年から今までの7年間で17952件のアクティビティがあって、38MBのファイルが出来た。画像データは含まない。 アクティビティログのページを開いてdumpメニューを押せば毎秒moreリンクをクリックして表示されているアクティビティログを削除しながらファイルに書き出す。よくある実装ではmoreのクリックだけ先にやって全部表示させようとするものがあるが、それはメモリ消費が増えすぎて問題が起こる可能性を懸念

    Facebookの全アクティビティログをファイルに書き出すツールを作った - 西尾泰和のはてなダイアリー
  • Facebookに書き続けることは損失なのではと思い始めた - 西尾泰和のはてなダイアリー

    ブログの更新頻度が落ちてるのは、Facebookに書いた方が有益なフィードバックの頻度が高くて、ついついそっちに書いてしまうから。 そうやってFacebookにばかり書いていると「あれ、この前Facebookに認知心理学が生まれてきた流れについて書いたと思うんだが、あれどこだったかな、参考にしたいのだが…」なんてことが起こるようになってきた。以前であれば、だいたいそういうのは自分のブログに書いているので、Googleに行って「西尾泰和 認知心理学」とかで検索すればすぐ見つかった。しかしFacebookに書いたものはそういうわけにはいかない。 で、発掘するのにすごく時間がかかったり、発掘できなくてあきらめてしまったりする。これってものすごい損失なのではないか?クロールして手元に保存して検索できるようにする必要があるのではないか? そしてそのクロールもまた手軽ではない。エクスポートの機能はある

    Facebookに書き続けることは損失なのではと思い始めた - 西尾泰和のはてなダイアリー
  • 妻に公開鍵暗号を教えてみた - 西尾泰和のはてなダイアリー

    何気なく放送大学をつけていたら公開鍵暗号の話をしていた。 「この話、何度聞いてもわかんないのよね」 僕「え、どこがわからない?どこまではわかってる?」 「平文はわかるけど、鍵を共有するとか秘密にするとか、署名するとかがよくわからない」 僕「あー、鍵に例えているのが逆効果なのか」 「鍵」をNGワードに指定 僕「じゃあ『鍵』という言葉を使わずに説明してみよう。暗号って『平文を暗号文に変換する方法』で伝えたい文章を暗号文に変えて送り、受け取った人はそれに『暗号文を平文に戻す方法』を使って元の文章を得るわけだ。その目的は、途中の通信文が敵に取られたりしても通信の内容がバレないようにするため。」 「うん」 僕「昔の暗号化の方法は、片方の方法がわかるともう片方の方法も分かった。例えば『アルファベットを後ろに1個ずつずらすと平文に戻せます』って教えてもらったら、『なるほど、前に1個ずつずらせば暗号

    妻に公開鍵暗号を教えてみた - 西尾泰和のはてなダイアリー
  • 文字列の解析 - 西尾泰和のはてなダイアリー

    プログラミング言語の処理系は、文字列として与えられたソースコードから意味を汲み取る必要があります。例えば"int x = 1234;"という文字列から、"1234"の部分が整数を意味しているということを理解する必要があります。 どうすればそのようなことができるでしょうか? 最初の一歩として"ab12cd"という文字列を受け取ると"12"を返す関数を作ることを考えてみましょう。 どうすればそのような関数を作れるでしょうか? 素朴に1文字ずつループ まずはやりたいことをもっと明確に言語化してみましょう。やりたいことは「文字列を頭から1文字ずつ見ていって、0〜9の文字が続いている範囲を取り出したい」です 最初の文字が「0〜9の文字」でなかったら?その時は特に何もせずに次の文字を見れば良い。 次の文字も「0〜9の文字」でなかったら?その時も特に何もせずに次の文字を見れば良い。 次の文字が「0〜9の

    文字列の解析 - 西尾泰和のはてなダイアリー
    Nean
    Nean 2013/05/11
  • 光の箱を作った - 西尾泰和のはてなダイアリー

    松村泰三さんの「光の箱」キットを作った。光の向きによって模様や光の線のシャープさが変わったりして面白い。写真では自分の目に見えているように映らないのが残念。 顔認識が時々誤発動するのが面白い。 光るバラの花束というイメージ。 動画もとったんだけどには「なんでカメラを固定しない」って怒られるし、自分でも「なんでカメラ縦にしたし」と思う。 円の縁のエッジがぶれているようにみえる所は、作りが甘くて前面のトレーシングペーパーとミラーフィルムの筒に隙間が空いているところ。黒くなっているのは逆にトレーシングペーパーにミラーフィルムが押し付けられて端がめくれて影を作っているところ。引越し前の片付けで出てきて、危うく作る前に捨てられそうになったので大慌てで作ったのだが、もう一度じっくり作るのもいいなぁと思った。もし親戚の子供でも預かる時があったら2セット買って一緒に作るか。

    光の箱を作った - 西尾泰和のはてなダイアリー
    Nean
    Nean 2013/02/10
  • 妻の素朴な疑問 - 西尾泰和のはてなダイアリー

    の素朴な疑問 出題 昨日の夜、寝室にて。 「建物の高さを測るのに、その建物までの距離と角度とを測る方法ってあるじゃない?」 僕「うん」 「あれが納得がいかない。地球って丸いから地面まっすぐじゃないじゃない?」 僕「あー、たしかに」 「あと目の高さによっても影響がありそう」 僕「それは無視できる程度の差だと思うけども」 「何がなぜ無視していいのかがよくわからない」 僕「なるほどなぁ、一度きっちり計算してみて、概算と大した差がないことを確認したらいいんだろうなぁ。ちなみに概算すると、1キロ先のものを眺めて角度45度でした、って時ならせいぜい10000分の2〜3くらい長い程度だと思うよ」 地球が平らだという思い込みと、現実の丸い地球との差 計算 僕は普段「地球は一周40000キロ」ってのを元に概算するんだけど、概算では納得してもらえなさそうなのでまずは地球の半径を調べる。Wikiped

    妻の素朴な疑問 - 西尾泰和のはてなダイアリー
  • 妻のSqueakのイメージ - 西尾泰和のはてなダイアリー

    「今何書いてるの?」 僕「Squeak」 「チクタクしてんの?」 僕「チクタクしてない」 「えー、チクタクすればいいのにー」 僕「チクタクせずにコンソールから扱いたいんだよ」 「Squeakはチクタクするのがいいところなのにー」 僕「えー」 僕「まあでもそれが正論だよね…」 「そうだよ!チクタクのないSqueakなんてコンソールのないUnixだよ!startxしたくないのにさせられた感じだよ!」 例えが絶妙すぎるww

    妻のSqueakのイメージ - 西尾泰和のはてなダイアリー
  • Squeakをかじる その3 - 西尾泰和のはてなダイアリー

    Squeakをかじる その2の続き。 トレイトを試すコード sumimさんのアドバイスのお陰で、ようやく「全部コードで表現」ができました。 Trait named: #MyTrait uses: {} category: #MyCategory. MyTrait compile: ' hoge ^''T#hoge'' '. Object subclass: #MyClass uses: T instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'MyCategory'. MyClass new hoge "=> 'T#hoge'".しかしこれを試すためには、まだ「1〜3個目の文をそれぞれ選択してDo-itして、最後の文をPrint-itせよ」などという説明が必要になってしまう。 自動化

    Squeakをかじる その3 - 西尾泰和のはてなダイアリー
  • Squeakをかじる その2 - 西尾泰和のはてなダイアリー

    MacにSqueak4.3を入れました。前回入れたのは3.9だったかな。 前回から2年ちょい経っているのでまずはおさらい。壁紙をクリックしたり右クリックしたりするとメニューが出る。 起動直後 全部閉じる。クリックしたら出てくるメニューの上の方に「Browser」「Workspace」「Transcript」が並んでいるのでそれを全部起動する。適当に配置する。 前回、Workspaceのフォントが小さかったり等幅じゃなかったりして困った記憶があるけども、このバージョンでは右クリックで「set font」ってメニューがでるのでそれで設定することにする。知っているフォントを探しても見つからない。BitstreamVeraSansMonoって書いてあるのが名前からしてサンセリフの等幅だと判断。 Workspaceにコードを書いて、選択してCmd+D(Do it)すれば実行される。何も選択してなけれ

    Squeakをかじる その2 - 西尾泰和のはてなダイアリー
  • シェルスクリプトを多重起動しないようにする - 西尾泰和のはてなダイアリー

    最初はこう書いていた。 lockfile build.lock ... rm -f build.lockだけど、lockfileは失敗した時にデフォルトでは無限にリトライをする。ちょっと出来心で$ for i in {1..100}; do ./foo.sh; done;したから100人の待ち行列が出来てしまった。 やりたかったことは「既に起動していたら続行しないで終了」だったので-r 0でリトライ回数を0にした。 lockfile -r 0 build.lock || exit 1 ... rm -f build.lock

    シェルスクリプトを多重起動しないようにする - 西尾泰和のはてなダイアリー
    Nean
    Nean 2012/03/13
  • 他の言語に慣れた人がPythonを使ったときにつまずきがちな10のポイント - 西尾泰和のはてなダイアリー

    今日質問されて、以前Twitterで書いたのを思い出して、そして検索性が悪くて見つけ出すのに苦労した。こちらに転載しておく。詳細は気が向いたときに埋める。 オプション引数の評価タイミング Rubyではオプション引数は関数が呼ばれるたびに評価される。 def foo() print "foo!" end def bar(x=foo()) end bar #=> foo! と出力される bar #=> foo! bar #=> foo! Pythonでは関数の定義時に1回だけ評価される。 def foo(): print "foo!" def bar(x=foo()): pass #=> foo!と出力される bar() #=> 何も出力されない bar() 「引数が省略されたら今の日時」みたいな毎回評価したい場合はデフォルト値をNoneにしておいて「Noneだったら=省略されていたら」のif

    他の言語に慣れた人がPythonを使ったときにつまずきがちな10のポイント - 西尾泰和のはてなダイアリー
    Nean
    Nean 2012/01/26
  • 遺伝子をモチーフにした言語「Genomy」を作りました - 西尾泰和のはてなダイアリー

    最近、3年くらい前に書いた「そろそろ例のプロジェクトについて言及するか」についてTwitterで言及があったので思い出しました。「条件を満たしたものをすべて呼び出す」という設計思想でプログラムが書けてしまうという点について意外とみんなピンと来ないみたいだからコンセプトプルーフを実装してみようと思っていたんでした。 という訳で作りました。https://github.com/nishio/genomy 解説 「遺伝子はタンパク質の設計図」というところまでは教科書などでもよく言及されます。でも、その設計図には「どういう状況になったら作るべきか」「どういう状況では作るべきではないか」という情報も書かれています。 この「作るべきではない」(発現の抑制)がどう実現されているか、ザックリ説明しましょう。体の中にあるタンパク質があると、これがある遺伝子の周辺にへばりつき、その遺伝子からタンパク質を作る過

    遺伝子をモチーフにした言語「Genomy」を作りました - 西尾泰和のはてなダイアリー
    Nean
    Nean 2011/12/27
  • アブダクションと帰納の違い - 西尾泰和のはてなダイアリー

    哲学は詳しくないので、帰納(induction)とアブダクションの違いがよくわからなかった。アブダクションは「観測事実X1, X2, ..., Xnが与えられたときに、仮説Hを仮定すればこれらの観測事実が説明できることから、きっとHだろうと結論すること」で、演繹(deduction)は「仮説Hが正しいものと仮定して、まだ観測してないX{n+1}を導くこと」とすればすんなり理解できるのだけども、じゃあ帰納ってなんなの、と。 例えば「箱からキャンディーを1個取り出したらミントで、もう1個取り出したらまたミントだった」という観測事実から「この箱の中にはミントしか入ってない」と考えるのを機能の例としてあげている文章もあるけど、それって「ミントしか入っていない」という仮説を形成しているんだから明らかにアブダクションだよね。じゃあアブダクションは帰納を含む概念なのか? さすがに僕みたいな哲学の素人がち

    アブダクションと帰納の違い - 西尾泰和のはてなダイアリー
    Nean
    Nean 2011/10/15
    パースとか読んでご覧になっては?
  • 顔認識能力の事例 - 西尾泰和のはてなダイアリー

    1: まずこれを見る(クリックで拡大) 2: 「うわーすごいなー」などと言いながら下まで見る。 3: 一番下の写真を見て「あれ?この人最初の方に出てこなかった?」って思う 4: スクロールして最初に戻って、やっぱり同じ人だと思う。 5: 2番目の人と3番目の人も同じ人だと気付く。 6: 2番目の人の化粧後と3番目の人の化粧後を見比べて「これはわからない!」と騒ぐ 7: 「全員同じ人だよ」と指摘されて衝撃をうける 8: もう一度全員の化粧前を眺めてみて、下から2番目と4番目以外は同じ人であることに納得する。 9: 「下から2番目の人は他の人よりもむしろ谷亮子に似ている」と主張するがそれは反論になってないと言われる 10: 下から2番目と4番目が同じ人であることにイマイチ納得がいかないが、ほくろの位置が同じだからやっぱ同じ人なのかなぁ…とあきらめつつある←いまここ みなさんはどうですか?: h

    顔認識能力の事例 - 西尾泰和のはてなダイアリー
    Nean
    Nean 2011/06/12
    悩む。
  • Emacsで3の倍数の行に色をつける - 西尾泰和のはてなダイアリー

    正確に言えば「行番号が3で割ったときに1と2の時に緑と青の背景にしたい」という目的。http://www.bookshelf.jp/soft/meadow_26.html#SEC314 を参考にしようとしたが結局小手先の修正では目的通りの挙動にならないので色々勉強した。 まずは行だとかエディタの一部に色をつけるのにはOverlays - GNU Emacs Lisp Reference Manualを使う。オーバーレイは始点と終点を指定して作成する。 ; stripes.el (defun stripes-create () "Colors lines in current buffer alternatively. This will not monitor changes of the buffer." (save-excursion (save-restriction (widen)

    Emacsで3の倍数の行に色をつける - 西尾泰和のはてなダイアリー
    Nean
    Nean 2011/06/04
  • 首都圏で引っ越す人が知らないともったいない情報 - 西尾泰和のはてなダイアリー

    「引越れんらく帳」にお客さまのお名前や引越先のご住所などを登録しておけば、電気・水道・ガスなどの引越に関する手続きで何度も同じことを入力する手間が省けます。他にも、NHK、クレジットカード、損害保険等々、主要な企業の住所変更などにも対応しています。 東京電力 引越コンシェルジュ すごい、こんなものがあったなんて。1回住所や電話番号、メールアドレスなどを入力したら、東京ガスや水道局は違うウェブサービスなのにちゃんとデータが引き継がれてさくさく入力できる。12分くらいで電気とガスの手続きを完了した。水道はお客様番号をメモしてこなかったので後でやろう。

    首都圏で引っ越す人が知らないともったいない情報 - 西尾泰和のはてなダイアリー
  • 日本人なら必ず誤訳する英文 - 西尾泰和のはてなダイアリー

    屋で立ち読みしてて「英語を正しく理解しているかどうかを知るには訳してみるしかない。『英語英語のまま理解する』とよく言われるが、それはあくまで最終目標であって、正しく日語に訳せない文章は絶対に理解できていない。」ということが書いてあって、納得したので買ってきた。越前敏弥の日人なら必ず誤訳する英文 このの著者はダヴィンチコードとか訳している人で、十数年英語を教えてきてて、みんながつまづくパターンを集めたらしくてかなり密度が高い。あと、自然言語って冗長性が高いからおおざっぱな理解で問題ないケースも多いんだよね。だから土台がシロアリにわれているのに気付けない。こういうで「ああ、この英文はこうだろ?」と訳してみて「いや、それはよくある間違い」ってつっこまれないと自力で気付くのは難しい。 I bought the book, which I have not read yet. これを間

  • 「女の子牧場」をリリースしました - 西尾泰和のはてなダイアリー

    女の子牧場マトリクス牧場(追記: ネーミングについて問題が多かったので変更しました。「べっ、別に女の子になんか未練ないんだからね!」) 「男の子牧場」でしばらく遊んでみて、マトリックスの共同編集って面白いなと思ったんで作りました。ただ、生身の人間の個人情報で遊ぶのはあんまり品がよろしくないと思ったので、個人情報を投稿するのは利用規約で禁止しておきました。トップページでログインするとマトリックスを新しく作ったりとかアイテムを追加した人の配置したアイテムを「いやー、これはこっちだろー」とか言って移動することができます。 僕的に「男の子牧場」の面白かったポイントが「軸を自分で決めたマトリクスの上にいろんな物を置いて人に見せられる」って所だったのでSNS的な要素とか全然つけてないけど、需要あるかなぁ。まあ、アルファリリースってことで、反応によって今後どうするか決めようっと。 やー、しかしJSとかC

    「女の子牧場」をリリースしました - 西尾泰和のはてなダイアリー
    Nean
    Nean 2009/05/15
    マトリックスがほいほい。
  • 「プログラミング言語を理解するにはどうしたらいい?」という話を聞いて思うこと - 西尾泰和のはてなダイアリー

    「プログラミングとか特定のプログラミング言語とかを習得したくて色々勉強したけど、いまいち理解できた感じがしない、何がいけないのだろう、何を学べばいいんだろう」という話を聞いて思ったこと。 それって、目的が曖昧だから達成感が得られないというだけじゃないのか? 僕の今までの人生の中には「プログラミングを習得した!」と思える瞬間も「Pythonを理解した!」と思える瞬間もなかった。具体的な「Pythonで継続のある言語を実装できた!」とかならある。でも「継続の概念を完全にマスターしましたか」と言われるとそんな気はまったくしない。まだまだ先は長い。しかし僕よりはるかに継続に詳しい人たちが集まって継続に関する議論をしてたりするのを見ると、この道に明確なゴールはないことがわかる。どこまで行っても「まだ先がある」という感じが残るに違いない。 手段が間違っているのではなく、目的が間違っているんだ。「○○を

    「プログラミング言語を理解するにはどうしたらいい?」という話を聞いて思うこと - 西尾泰和のはてなダイアリー
    Nean
    Nean 2009/04/13
    そういう不安があるがゆえの検定試験なんだろうなぁ。
  • そろそろ例のプロジェクトについて言及するか - 西尾泰和のはてなダイアリー

    以前、とあるシステムのソースコードを読む機会があったのだけどあまりにひどかった。あのひどいコードでまあまあまともに動いているというのが逆に信じられない。今日昼ご飯をべながら少し話していたのだけど意外と知られていないようなので、話せる範囲でいかにひどいのか説明してみようと思う。 まず、ソースコードが大雑把に見積もって3750万行あるのだけど、その中でまともに機能しているコードは3%しかない。10分の1程度のソースコードで同程度の機能を実現しているシステムもあるのでほんとあのシステムのコードはゴミだと言っても過言じゃない(*1) プログラマとしてはなんでそのプロジェクトはそんな状態になってしまったのか気になるところだけども、まあ多くのプロジェクト同様、真相を知る人は誰もいない。でもまあ、実際に機能しているコードのコピーみたいなものがあちこちに散らばっていることからしてコピー&ペーストが盛んに

    そろそろ例のプロジェクトについて言及するか - 西尾泰和のはてなダイアリー
    Nean
    Nean 2009/02/01