タグ

ブックマーク / badatmath.hatenablog.com (7)

  • HackerNewsのスクレーパーを書いてみた - I am bad at math

    今話題のKoaについて書こうかとも思ったのですが・・・。 なんとなく最近、HNを中心に見るようになったので、HNスクレーパーを作ってみました。 皆さんは日頃、どのような手段で情報を収集しているのでしょうか?今年はGoogle Readerの終了というこの世の終わりか審判の日かといわんばかりの破壊的なイベントが発生して阿鼻叫喚の地獄を味わった方も多いかもしれません。代替手段はなきにしもあらずなので、「気のせいだった。」とおっしゃる諸兄も多い事でしょう。しかし僕にとってはもう「!!!!!!!」と、声にもならなかった出来事であり、頼みの綱のReederは開発を終了、(その後バージョンアップ)してしまい、自分はただ涙を流して冷たいコンクリートの壁を叩き、泣き崩れる毎日だったのです。そんななか、タイミングよく現れていたGunosy、これぞ救世主とばかりに登録したものの、そもそもの情報ソースが自分の求

    HackerNewsのスクレーパーを書いてみた - I am bad at math
  • Yet Another 白熱授業 - I am bad at math

    みなさま、明けましておめでとうございます! blog の更新が滞ってしまっていて大変申し訳ないのですが、今はちょうど node.js のを執筆しているところでなかなか node ネタを書けないというかここでネタ書くヒマがあったらを書けという心の縛りがありまして・・・。 でも新年明けましてということで今日は書いちゃうのだ。 さて、もう半年以上 CS のカリキュラム紹介をしていなかったんだけど、今日は Harvard 大学の CS50 という授業を紹介。折しも元日ということで学びに関連する記事をあげるのにはいい日だと思って。というか今日明日の夜はサンデル教授の白熱教室、再放送もやってることだし! さて、CS50 はいわゆる CS の入門コース。 どこが白熱なのかというと、まず、やっぱり先生がイイんだよね。彼の名は David J. Malan。彼は Harvard での BA -> CS

    Yet Another 白熱授業 - I am bad at math
    suginoy
    suginoy 2012/05/28
  • I/O待ちを緩和させるのに効果的な Reactor パターン - I am bad at math

    クラウド上で動作するプログラムを組んでいく際、スケールすることを狙って多くのロジックがデカップリングされ、複数のサーバに分散されることと思いますが、そこで顕著になってくるボトルネックの一つがネットワークなどのI/O待ちです。 このI/O待ちを減少させるのに効果的なのが Reactor パターン。 このパターン自体は特に目新しいものでもないのですが、近年のクラウドブームで再び脚光を浴びそうなので自分の備忘録もかねて紹介します。 Reactor パターン http://en.wikipedia.org/wiki/Reactor_pattern この Reactor パターンはどういった場合に使用するかというと 複数のI/O待ちが想定される場合 というのが代表格のようです。今回はネットワークI/Oを想定していますが、データベースへの問い合わせに時間がかかる際にも有用となります。 例としてクローラ

    I/O待ちを緩和させるのに効果的な Reactor パターン - I am bad at math
  • TOEICの点数が上がらない英語勉強法 - I am bad at math

    これは最近よく感じる疑問。普通にきれいな英文を書けているような人でもなぜみんな一様に「もっと英語勉強しなきゃ」って言うのだろうか。もう勉強する必要ないじゃん。 TOEICの勉強している人は今600点だから、700点取らないとと言う。で、700点取ってる人は800点取らないとという。最終的にみんな900点以上を目指す勢い。もちろん何かを勉強することに異論は全然ない。むしろ大賛成だよ。でも「英語学」を勉強している訳じゃなく、その目的は英語を実際に使うことではなかろうか?いや、プロの翻訳家目指していたり比喩や暗喩バリバリの難しい文章を理解できるようにっていうのなら話はまた別だけどね。 英語を学ぶっていうのはつまり、プロトコルを学ぶこと。エンジニア向けに言い換えると「英語を学ぶということはTCP/IPを学ぶようなこと」と言ってもいいかもしれない。そう考えてみると英語を勉強している人っていうのは伝送

    TOEICの点数が上がらない英語勉強法 - I am bad at math
  • Sapporo.jsでJavaScriptの成り立ちについてLTしてきました。 - I am bad at math

    当初はNodeのことを5分で話すつもりでしたが、id:tricknotesの「時間はどのくらいあればいいですか?」という有難い申し出を受けて設定したのが20分。 さすがに手元の資料では足りないのでJavaScript歴史についても話してきました。 そちらについては資料すら作ってなかったのでホワイトボード使いつつ記憶を頼りに延々しゃべっていくという・・・さらに字が汚くて見えづらかったと思います。すみません。 JS history View more presentations from badatmath で、帰ってきてからざざざっと資料を作りました。 まずはECMAのトコまで。 JSってサイドストーリーがとっても多い言語なので突っ込んで調べるといろいろ新しい発見があり、ネタに事欠かない言語でもあります。そういうのを調べて行くとかなりJavaScriptに親近感が湧くようになるのでみなさん

    Sapporo.jsでJavaScriptの成り立ちについてLTしてきました。 - I am bad at math
  • node.js とは何か (2) - I am bad at math

    昨日に引き続き、いざ!part2なのだ。 前回では node.js と v8 の結びつきまでを書いたので、今日は Non-Blocking I/O の話を。 Non-Blocking I/O という言葉からブロックしない I/O をイメージするのはたやすい。でもこれを実現しようとなるといろいろとまあ面倒くさいんだよね。 それを解決する常套手段で言うとファイルディスクリプタ(ネットワークならソケットだね)を開いてそれをselectシステムコールの監視対象に加えておき、selectを呼び出すことで監視するっていう方法がある。こうすると何が嬉しいのかファイルディスクリプタが2つある場合で考えてみよう。 まずAとBというファイルディスクリプタを監視対象とする。 selectシステムコールを呼び出し、そのどちらかが読み出し準備完了となっていないかを確認する。 もしどっちも準備できていなかったらプロセ

    node.js とは何か (2) - I am bad at math
  • node.js とは何か - I am bad at math

    期せずして久々の更新になってしまった。ブログを書く気がなくなったとかそういうのではなくてただ単に忙しかっただけ。その間、まぁ仕事が予期せぬ方向から炎上してみたり、事故をもらって愛車が全損したり(フロントガラスが全面熱線入りなんていう変なオプションなどを諸々付けていたからお気に入りだったのに)と決して良いことばかりで忙しかったわけではないけどね! で、今回は node.js のお話。異様な盛り上がりを見せているものの、じゃぁそれっていったい何かというと「JavaScriptを用いたNon-blocking I/O環境」という非常にシンプルなものだ。 その根底には「うまくスケールできること」と「動作が速いこと」という理念が見受けられる。 まず「うまくスケールできること(多量のアクセスを捌けること)」を解決するにあたり、まずはスレッドモデルか、イベントループかという問題があった。そこで auth

    node.js とは何か - I am bad at math
  • 1