ブックマーク / higepon.hatenablog.com (19)

  • 良いプログラマを目指すなら「Java並行処理プログラミング」は今すぐ読むべき - higepon blog

    Java並行処理プログラミングを読み終えた。ここ 1 年に読んだ技術書の中でダントツのベスト。(2位はWorking Effectively With Legacy Code) 「Javaだから関係ない」と思った人にこそ読んで欲しい。僕もここ数年 Java のコードなど一切書いていないが、このを読んで得たものは非常に大きかった。 このでは マルチスレッドプログラミングにおける問題と背景、その対処方法 Java が提供している API の設計と実装 を解説している。分かりやすさとレベルの高さを兼ね備えたとても良い。翻訳も最高。 僕はこのを読んで、Java の並行処理プログラミングは、想像を遙かに超えて進化している事に驚きを隠せなかった。何回も twitterJava すげーと叫んだ。 これを読んでしまうと、最近僕が熱心な Scheme も含めて、自分の身の回りにあるプログ

    良いプログラマを目指すなら「Java並行処理プログラミング」は今すぐ読むべき - higepon blog
  • オンラインで動画・音声・教科書を無料で公開している大学の講義・授業まとめ - ひげぽん OSとか作っちゃうかMona-

    オンラインで授業を公開している大学とその講義の一覧のまとめです。 もし他にもご存知の方がいらっしゃれば、コメントやトラックバックなどで教えていただけるとうれしいです。 まとめ 英語ができるならば MIT 最強。国内は東大が比較的がんばっています。 (追記)国内ではWIDEのSOIががんばっているとのご指摘をいただきました。確かに素晴らしい講義がたくさんです。(表に追加しました) 講義はすぐそこに開かれているので、あとは「勉強方法」に従い講義を受けるだけだと思いました。 大学名のリンク先が講義公開 URL になっています。([高等教育シリーズ] 大学で勉強する方法) 大学名 公開形式 講義の例 備考 MIT 動画、講義資料 East Asia in the World、Japan in the Age of the Samurai 1800以上の講義が公開。中国語やポルトガル語に翻訳されてい

    オンラインで動画・音声・教科書を無料で公開している大学の講義・授業まとめ - ひげぽん OSとか作っちゃうかMona-
    yorihito_tanaka
    yorihito_tanaka 2008/10/01
    「学費を払っていない人に見せてよいのか」という話は大学の中で必ず出てくる。MITのOCWの場合は大学にとっての顧客(現役学生ではない、志願者のこと)が多く来てくれたというマーケティング的なデータもあるが…
  • 論文に対するコメント - ひげぽん OSとか作っちゃうかMona-

    自分は学生でも学者でもないのですが論文を読んでいて、その論文に軽い気持ちで突っ込みたいって時はどうされているんでしょう? 「ここの図が間違っているよ」とか「この部分はユニークで好きだ」「ここは理解が難しい」とか。その論文を読んできた全ての人で共有されるようなものがあるのだろうか。 イメージとして論文がブログで、つっこみがコメント的な。 追記 id:y4su0さんからの情報。ありがとうございます。 分野が生物系に偏るけど,PLoS Journals http://www.plos.org/journals/ にはコメント機能があります.あと,CiteULike http://www.citeulike.org/ のメモ機能……はちょっと違うか

    論文に対するコメント - ひげぽん OSとか作っちゃうかMona-
  • サイボウズ・ラボ入社 - higepon blog

    次の職場はどこですか?とよく聞かれるのですが、実はサイボウズ・ラボで働いています。 周りが優秀な人ばかりで刺激をたくさん受けています。 楽しくてみんなが幸せになるようなサービスが作れると良いな。

    サイボウズ・ラボ入社 - higepon blog
  • 天才プログラマ(スーパークリエータ?)に認定されました - higepon blog

    http://www.ipa.go.jp/about/press/20071023.html 2006年度未踏ソフトウェアで「天才プログラマ」に認定されました。 過去に認定をされた方と比べると自分はまだまだ未熟ですが、今後もMona OSと勉強を続け認定に相応しくなるように精進いたします。 Mona OS を応援してくださっている全てのみなさまに感謝です。 ところで「スーパークリエータ」と「天才プログラマ」は違うものみたいですね。 あれやっぱり同じかな?

    天才プログラマ(スーパークリエータ?)に認定されました - higepon blog
    yorihito_tanaka
    yorihito_tanaka 2007/10/23
    Schemeをシェルにする発想が格好よい
  • 全角スペース・タブを目立つように表示する - ひげぽん OSとか作っちゃうかMona-

    定番の.emacsとして全角スペース・タブを目立つようにするという設定があるのですが (defface my-face-b-1 '((t (:background "medium aquamarine"))) nil) (defface my-face-b-2 '((t (:background "gray26"))) nil) (defface my-face-u-1 '((t (:foreground "SteelBlue" :underline t))) nil) (defvar my-face-b-1 'my-face-b-1) (defvar my-face-b-2 'my-face-b-2) (defvar my-face-u-1 'my-face-u-1) (defadvice font-lock-mode (before my-font-lock-mode ()) (fon

    全角スペース・タブを目立つように表示する - ひげぽん OSとか作っちゃうかMona-
    yorihito_tanaka
    yorihito_tanaka 2006/03/11
    全角スペースで戸惑うのは主に初学者
  • はてなは理系の会社? - higepon blog

    今日は、はてなRSSの更新チェック(登録された全フィードを取得して更新があるかをチェックする)を改善しようということで、id:jkondo, id:hideoki, id:onishi, id:aqlと社内合宿@ナポリを開催しました。 フィードを取得してまわる(巡回する)場合、膨大な数のフィードが存在するため一度に全部はチェックすることはできません。 そのため、あるルールに従ってチェックするフィードを決定してフィードを順番に巡回していくのですが、このルールやら仕組みをみんなであれこれ話しながら考えました。 そんな話の中でホワイトボードに図を描きながらあーだこーだ言うわけですが、話の流れでは、「ここはlog(対数)だよね」とか「あれのあれの期待値は」とか「xxの場合で計算すると、誤差の範囲内だよ」というような言葉が飛び交っててとても不思議な感じでした。 特にid:jkondoは紙に向かって黙

    yorihito_tanaka
    yorihito_tanaka 2006/02/23
    ホワイトボードを大きく見たい
  • カーソルの位置にデバッグ用のprintfを挿入 - higepon blog

    printfデバッグをする前にバグを出すな、デバッガを使え等のご意見があるかもしれませんが。。 cppのソースを編集中に、C-c dをすると printf("%s %s:%d\n", __func__, __FILE__, __LINE__); が挿入されます。 ソースを見れば分かると思いますがprintfでなくても何でもできます。 ちなみに手元ではprintfではなくTRACEマクロにしてます。 (defun my-insert-printf-debug () (interactive) (insert-string "printf(\"%s %s:%d\\n\", __func__, __FILE__, __LINE__);") (indent-according-to-mode) ) (add-hook 'c++-mode-hook (function (lambda () (def

    カーソルの位置にデバッグ用のprintfを挿入 - higepon blog
    yorihito_tanaka
    yorihito_tanaka 2006/02/13
    Emacsの話うれしい
  • ひげぽん OSとか作っちゃうかMona- - Emacs + GLOBALでソース読みを快適に

    ネットワークサーバー実装のためにuIPのソースを読もう。 NICドライバの移植のためにFreeBSDのソースを読もう。 ということで以前使っていた etags を使おうと思ったがキーバインド忘れた。 そして etags はなんだかいろいろ不満点があった気がするので GLOBALを使ってみることに。 以前GLOBALは出力をHTMLにして使ったことがあるのだが、最近EmacsにどっぷりなのでEmacsから使ってみることに。 0.GLOBALって何? GNU GLOBAL は、ソースコードに索引付けを行うことで、大規模システムのハックやレビューを効率化するソフトウエアです。 ソースファイル中の指定したシンボルを高速に見つけ出し、素早くその場所に移動することができます。多くのサブディレクトリからなり、#ifdef や main() 関数を沢山含んでいるような、いわゆる巨大なプロジェクトをハックす

    ひげぽん OSとか作っちゃうかMona- - Emacs + GLOBALでソース読みを快適に
  • ValgrindでApacheモジュールのメモリバグを見つけよう - ひげぽん OSとか作っちゃうかMona-

    mod_uploaderの作者さんがまとめている開発Tips(http://acapulco.dyndns.org/mod_uploader/module_dev.htm)にあったデバッグ方法を試してみました。 Valgrind http://valgrind.org/ Valgrindはメモリ周りのバグや、スレッド系のバグを自動的に検出してくれるツールです。 インストールは ./configure make make install で完了です。 a.out(-gオプションでコンパイルしてください)のメモリ周りのチェックを行う場合は valgrind --leak-check=yes a.out とやると、こんな結果が出力されてメモリリークしている場所がずばり表示されます。 ==19182== 40 bytes in 1 blocks are definitely lost in los

    ValgrindでApacheモジュールのメモリバグを見つけよう - ひげぽん OSとか作っちゃうかMona-
    yorihito_tanaka
    yorihito_tanaka 2005/12/29
    メモリリーク個所を見つける
  • ひげぽん OSとか作っちゃうかMona- - プログラマは必読かも 「Joel on Software」

    Joel on Softwareposted with amazlet on 06.04.15Joel Spolsky 青木 靖 オーム社 (2005/12) Amazon.co.jp で詳細を見る id:ryoko_komachi:20051218:1135176719でも絶賛されている。 Joel on Softwareを買って読み始めました。 このが出ることを教えてくれたのは、たしかid:naoyaだったと思うのですが、聞いた時点で買うことを心に決めていました。 というのも「プログラマのためのユーザインタフェースデザイン」で、Joel氏の文章を読んでいて、その経験に裏打ちされた内容がとても勉強になったからです。 というか、影響受けまくりました。 書籍版のJoel on Softwareは、上記のサイトの文章をまとめたものが大部分だそうです。 Joel氏はMicrosoftで働いてい

    ひげぽん OSとか作っちゃうかMona- - プログラマは必読かも 「Joel on Software」
    yorihito_tanaka
    yorihito_tanaka 2005/12/24
    「給料で釣るより最高のツールで釣る」特に計算機環境としての椅子を意識してくれる所なら、自分もおそらく釣られる
  • Firefox拡張 IE Tab - higepon blog

    同僚のid:onishiに(id:onishi:20051201:p2)に教えてもらって、Firefox拡張のIE Tabを入れました。 この拡張をインストールするとFirefoxのタブとして、IEを開くことができます。 FirefoxのステータスバーにIE/Firefoxの切り替えがついていていつでも切り替え可能です。 これが超便利! 僕はFirefoxを常用しているのですが、特定のサイトはIEで見たりしていました。 これがすべてFirefoxの中だけで完結する(しているように見える)のでとてもよい感じです。 IEのウィンドウを単体で開くことがなくなるので快適。

    Firefox拡張 IE Tab - higepon blog
    yorihito_tanaka
    yorihito_tanaka 2005/12/02
    IEはmixi日記用か
  • ひげぽん OSとか作っちゃうかMona- - RawSocketで簡単なパケットモニタを作る方法

    たまにはハッカーっぽく、Binary 2.0っぽい記事を書こう。 Windows 2000/XPでは、RawSocketという仕組みが用意されていて、パケットをかなり自由に受信したり・送信することができます。 RawSocketでは、いわゆる「生パケット」が扱えるのです。 悪い言い方をすると、パケットを覗きみたり、パケットを偽装することも可能ということになります。 以前までは、ドライバレベルでコーディングしないとできなかったようなのですが、WinSock 2.2以降では、これがとても簡単にできます。 今日は、これを利用して簡単なパケットモニタツールを作ってみようと思います。 ビルドは cygwin+mingwです。 大きな流れは以下のとおりです。 Socketの初期化 IPアドレスの取得(必須ではありません) バインド プロミスキャスモードに設定 受信 では1つずつ見ていきましょう 1.S

    ひげぽん OSとか作っちゃうかMona- - RawSocketで簡単なパケットモニタを作る方法
  • はてなダイアリーキーワード抽出・リンクを高速化したい2 - higepon blog

    id:higepon:20050912:1126515546の続き まずは大雑把なベンチマークをということで 現在のキーワード抽出ロジック(巨大な正規表現ではない) AC法*1を用いたキーワード抽出・リンク処理 の2つを比較しました。 結果 Benchmark: timing 100 iterations of hatena, trie... hatena: 243 wallclock secs (239.68 usr + 0.03 sys = 239.71 CPU) @ 0.42/s (n=100) trie: 3 wallclock secs ( 0.00 usr 0.03 sys + 1.13 cusr 1.60 csys = 2.76 CPU) @ 3333.33/s (n=100) 約86倍!!。 体感速度だとキーワード抽出は一瞬。 比較スクリプト sub hatena { ma

    はてなダイアリーキーワード抽出・リンクを高速化したい2 - higepon blog
  • ひげぽん OSとか作っちゃうかMona- - 実践 prototype.js [1]

    今話題(?)の prototype.js を使ってみました。 うれしいこと Class.create(), extendは最高。 ある程度気軽にクラスを作れる。オブジェクト指向に慣れている人は生産性・コードの品質が上がる。(実際コードはコンパクトになったし、仕様追加時にもいい感じだった。) 実はクラス関数も作れて便利(これはprototype.jsの機能ではない) var Hoge { hoge: function() {alert('hoge');}} Hoge.hoge();みたいな。 悲しいこと Ajaxとの組み合わせでちょっと戸惑う。 インスタンス関数を、onreadystatechange ハンドラに登録した場合にいわゆるコールバック関数なので、this.xxx などのプロパティにその関数内からアクセスできるか微妙。(回避策がありアクセスできるがこれでよいのか?仕様的に不安。クロ

    ひげぽん OSとか作っちゃうかMona- - 実践 prototype.js [1]
  • プログラマの皆さんメモに何を使っていますか?

    プログラマの皆さんちょっとしたメモをするとき何を使っていますか? ちょっとしたアイデア todo 複雑なコマンドのメモ ログ などなど、さっとすばやくメモを取る必要がある場合はどういう方法をとっているでしょうか? 私の場合、 図を書く場合は 物理的なメモ帳・ノートなど PC使用時は なんらかのテキストデータ で保存しています。 何らかのテキストデータですが以下のものを試したことがあります。 ・pukiwiki・・・ローカルにpukiwikiを入れて、メモに使います。ブラウザのホームページに設定しておくと嫌というほど目に入るので効果的です。ただしデータが増えてきたときに一覧性が悪くなります。 ・howm・・・断片的なメモを残すだけで、後から簡単に検索できたりtodo管理もできます。実体はテキストファイル&grepなので安心です。Emacs前提。バッファが開きすぎるのが玉に瑕。 ・Change

    プログラマの皆さんメモに何を使っていますか?
  • ひげぽん OSとか作っちゃうかMona- - いまさら人に聞けないAjaxと簡単なサンプル

    入門 Ajaxposted with amazlet on 06.04.22高橋 登史朗 ソフトバンククリエイティブ (2005/11/15) 売り上げランキング: 65,811 Amazon.co.jp で詳細を見る Ajax 実装のための基礎テクニックposted with amazlet on 06.04.22増井 雄一郎 深津 貴之 川崎 有亮 台場 圭一 WINGSプロジェクト 佐藤 真介 技術評論社 (2006/03/23) Amazon.co.jp で詳細を見る JavaScript & DHTMLクックブック―Webエキスパート必携テクニック集 作者: ダニーグッドマン,Danny Goodman,村上列出版社/メーカー: オライリージャパン発売日: 2004/01メディア: 単行購入: 2人 クリック: 36回この商品を含むブログ (63件) を見る Ajaxとは 最近

    ひげぽん OSとか作っちゃうかMona- - いまさら人に聞けないAjaxと簡単なサンプル
  • Windows XPで華麗にAlt-Tabタスク切り替え

    同僚のid:onishiが使っていたのを教えてもらいました。 「うぉー。かっこいい!!」と思ってインストールしてみたので紹介します。 Windows XPのタスク切り替えといえば Alt-Tab ですが、プログラマの方などは結構使っている人も多いんじゃないかと思います。 知らない人はぜひAltキーを押しながら、Tabキーを押してみてください。 このAlt-Tabキーのタスク切り替えをパワーアップして、サムネイルをつけて表示するというツールが、Microsoftから提供されています。 http://www.microsoft.com/windowsxp/downloads/powertoys/xppowertoys.mspx の「Taskswitch.exe」*1 これがかなり便利、タスク(というかウィンドウ)の切り替えがとても快適になります。 ちなみにこのツールの日語化パッチ、個人で提供

    Windows XPで華麗にAlt-Tabタスク切り替え
  • ひげぽん - XMLHttpRequest on Ajaxのあれこれ

    XMLHttpRequestを使用するとサーバに対する非同期リクエストを行うことができます。 最近巷で話題のAjaxで使われている技術の1つです。 自分でAjaxのコードを書いていた時に、いろいろ調べた結果のメモをまとめておきます。 1. XMLHttpRequestのオブジェクトの生成について ブラウザやそのバージョンによってオブジェクト生成方法が違うので http://web.paulownia.jp/script/xmlhttp2.html にあるように、違いを吸収したfunctionを用意すると良い。 2. ReadyStateのハンドリング xmlhttp.readyState == 4 && xmlhttp.status == 200 をもって正常レスポンスと判断している場合が多いようですが、Firefox では後述のバグ?によるエラーが発生します。 なので、xmlhttp.s

    ひげぽん - XMLHttpRequest on Ajaxのあれこれ
  • 1