タグ

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

  • オンラインで動画・音声・教科書を無料で公開している大学の講義・授業まとめ - ひげぽん OSとか作っちゃうかMona-

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

    オンラインで動画・音声・教科書を無料で公開している大学の講義・授業まとめ - ひげぽん OSとか作っちゃうかMona-
    tanakaBox
    tanakaBox 2010/05/26
    Open Cource Ware
  • Scheme コードバトンまとめページ - higepon blog

    バトン参加表明中 emasaka さん[done] leque さん[done] Kazuhiro MUSASHI (kazu634)さん[done] naoya_t さん @nkoguro さん(2月ならOK) Scheme id:higepon: 第1回 Scheme コードバトンのお知らせ gist: 273431 - GitHub id:yad-EL さん: Schemeコードバトンに参加しました - ヤドカリデンキ商会(第一倉庫) gist: 273551 - GitHub さっそくバトンの醍醐味であるダイナミックな書き換えが発揮され Gauche 向けに書き換えられました。second -> cadr ですが個人的には first, second が好き。 Gauche なら (use srfi-1) 。入出力のバッファリングは確かにはまるポイントかも。call/cc はわざと

    Scheme コードバトンまとめページ - higepon blog
  • shiro 流 - higepon blog

    map-accum と match-lambda* の組み合わせとか人生で一度も経験ない。 jmp label のために addr という seed を持ち回って評価していくのがきれいだ。 こういう職人芸は盗まねば。 ;; asm :: [Insn] -> [Byte] (define (asm insns) ;; first pass. create [(p,xaddr)] where p :: (Int,[(Symbol,Int)]) -> [Byte] ;; and xaddr is a value of PC after the code is fetched. (receive (abss _) (map-accum (match-lambda* [((? symbol? label) addr) (values (cons label addr) addr)] [(insn a

    shiro 流 - higepon blog
    tanakaBox
    tanakaBox 2009/09/29
    map-accum
  • JIT コンパイルまとめ - higepon blog

    Mosh のパフォーマンスを向上させたいので JIT コンパイル周りを調べてみました。誤りや不足がありましたらご指摘いただけると助かります。 何か? Just in time コンパイルの略。実行時に必要になった時点で動的にコードを生成する仕組み。 VM 型のインタプリタにおいて、実行時に bytecode を native code にコンパイルすることを指すことが多い。 必要になった時点のコンパイルではあるが、Pre-JIT のように起動時にまとめて JIT コンパイルする場合もある。 目的・効果 インタプリタの良いところを維持しつつインタプリタ実行速度を高速化。AOT コンパイラが出力するコードの速度に近づける。 JIT が AOT (Ahead of time)と比較して有利な点 実行時の統計情報を利用できる 実行ホストに最適化されたコードを利用できる JIT コンパイルされる対象

    JIT コンパイルまとめ - higepon blog
  • E - higepon blog

    論文を読んでいると意味が分からない部分の方が圧倒的に多い。頭がヒリヒリしてきて「いーっ」となる。どうしても数式よりもコードを見てしまう。証明部分をスルーしてしまう。スルーすると次の文章が突然飛躍したように見える。ますます理解できなくなる。という負のループ。いつか完全理解できるようになるだろうか。 C言語のポインタが全然分からなかったとき。もっと頭が「いーっ」となって絶望的な気分だったことをよく覚えてる。「ポインタは箱」みたいな図を見せられてもさっぱり分からない。を何度読み返しても分からない。入門書が理解できないってのは自分はかなり頭が悪いのだと再認識させてくれた。 数年前まで sum などの再帰関数をさっと書くことが出来なかった。たった数行のコードなのに思考が停止して冷や汗をかいてしまう。「お前の結果は俺の引数でふんがーっ。ぎゃー」と脳が悲鳴をあげていた。どんどん不安になる。 ギターを買

    E - higepon blog
    tanakaBox
    tanakaBox 2009/07/29
    ひげぽんもポインタで苦しんでた時期があるんだ。
  • Scheme処理系 Gauche の最適化まとめ後編 - higepon blog

    昨日の続きです。クロージャとcallの最適化。 クロージャは lambda、call は手続きの呼び出しのことです。 ((lambda (...) ...) arg ...) 呼び出される手続きが、lambda 式の場合。この呼び出し自体を let に変換する事が出来ます。 ($call ($lambda .. (LVar ...) Body) Arg ...) => ($let (LVar ...) (Arg ...) Body) この lambda がここでしか使われていないことが文脈的に保証されていることが重要です。(ということが後の方のクロージャ最適化を見ると分かります。) ちなみにこの変換が意味をなすのは クロージャ生成コスト + call のコスト > let のコスト という関係が Gauche VM において成り立つからです。 クロージャ最適化 クロージャ最適化の手前の時点

    Scheme処理系 Gauche の最適化まとめ後編 - higepon blog
    tanakaBox
    tanakaBox 2008/02/07
    letのコストが低いというのがポイントらしい。だから変換が必要なのか。
  • A正規形まとめ - Scheme VM を書く - higepon blog

    A正規形についてまとめました。日語の資料があまりに少ないのでまとめたのですが、正直理解できているか不安です。間違いを含んでいる可能性がある点にご注意ください。 間違いのご指摘やツッコミ大歓迎です。 あと念のため書いておきますが題材は、Schemeですが、A正規形自体はLispやSchemeに特化した話ではなく、もっと一般的な話です。 A正規形の論文 The Essence of Compiling with Continuations - Flanagan, Sabry, Duba, Felleisen (ResearchIndex)という論文で解説されています。 この論文を読んで自分なりに理解できたことをここに書いています。 理解の前提 Scheme の let 式が分かっていないと理解が難しいかもしれません。 A正規形は何の役にたちますか? コンパイラのコード生成時の中間表現として使

    A正規形まとめ - Scheme VM を書く - higepon blog
    tanakaBox
    tanakaBox 2008/02/02
    最適化なんていつの日になることやら・・・。
  • Scheme処理系 Gauche の最適化まとめ前編 - higepon blog

    shiro さんが開発されている Scheme 処理系 Gauche 0.8.12 の最適化処理を勉強のためにまとめました。 よく Gauche のコードは宝の山だと聞きますが、その一端を分かってもらえるとうれしいです。 基的にGaucheのコードのコメントをまとめただけです。 Scheme のソースコードと簡単な英語が読める人はこのまとめを読むより src/compile.scm を直接読んだ方が正確に理解できると思います。 前提1 コンパイルと実行の流れ Gauche はスタックマシン型の仮想マシンでコードを実行します。 そのため Scheme のコードはスタックマシンで実行可能なコードにコンパイルされます。 つまり Scheme のコード →(コンパイル) マシンコード →(実行) 結果 という流れでコードが実行されることになります。 今回取り上げる、最適化は上の流れの「コンパイル

    Scheme処理系 Gauche の最適化まとめ前編 - higepon blog
    tanakaBox
    tanakaBox 2008/02/01
    ひげぽんによるGaucheハックまとめ。Gaucheすげぇな・・・。
  • for-eachでtraceって - higepon blog

    tanakaBox
    tanakaBox 2007/12/23
    traceはマクロ。マクロはマクロで解決。
  • はてな退職のお知らせ - ひげぽん OSとか作っちゃうかMona-

    日*1をもちましてはてな退職することになりました。 お世話になったみなさん当にありがとうございました。 僕は、はてなRSSや Rimo などまとまった大きなサービスから、ダイアリーのメール投稿機能など小さな機能まで、はてなのいろいろな部分に関わらせていただきました。 その過程で 実際にサービスを使ってくれるユーザーのみなさん はてなアイデアを通じてアイデア投稿や不具合報告をしてくれるみなさん 告知日記のブックマークコメントで喜んでくれるみなさん 日記で感想や要望を書いてくれるみなさん など、当に多くのユーザーの方といろいろな形でコミュニケーションをとらせていただきました。 そのみなさんとのやりとりが、より良いサービスを作りたいというモチベーションになったり、日々の僕自身の楽しみやはげみになったりと、たくさんの力をいただきました。(当はユーザー id を挙げてお礼が言いたかったので

    tanakaBox
    tanakaBox 2007/10/21
    めちゃくちゃ勉強しまくろうぜ!!
  • ひげぽん OSとか作っちゃうかMona- - 末尾再帰

    最近一部で盛り上がっている「末尾再帰」について自分の理解を確認するのも兼ねて書いてみます。 (そもそも自分がふったのがきっかけっぽいので)。 上級者の方は間違い等に厳しくつっこんでもらえると助かります:-) 背景 自分が末尾再帰を知ったのは多分Schemeの勉強を始めた頃だったと思います。 例えばSICPというでは20ページあたりにこっそりと出てきます。 そのころの理解はかなり浅いもので「ふーん。」程度でした。 さて後日Schemeの処理系を実装することになりR5RSというSchemeの仕様書を読んだところ Scheme の実装は真正に末尾再帰的(properly tail-recursive) であることが要求されている。これは,たとえ繰返し計算が 構文的に再帰的手続きで記述されているときでも,定数空間 でその繰返し計算を実行することを可能にする とあり末尾再帰のことを詳しく知る必要性

    tanakaBox
    tanakaBox 2007/09/10
    末尾再帰の最適化について。どの処理が末尾再帰になるのか判定する必要がある。
  • Three Implementation Models for Scheme by R. Kent Dybvig - higepon blog

    ドラゴンブックを読み終わったあと、実は「Three Implementation Models for Scheme by R. Kent Dybvig」という論文を読んでた。 これは id:yhara さんにすすめられたもので、「Scheme の処理系を3つのモデルで実装する方法」を長所/短所をまじえて説明している論文。 英語で180ページ程あるので苦戦していたのだけど、実家で紙に印刷して冊子上にしたらあれよあれよという間に読み終わった。 PDFより、やっぱり紙だよなと思った。 論文の内容は heap base の Scheme処理系 stack base の Scheme処理系 string base(FFP)の Scheme処理系 を Scheme で作る話。 上記の順序で処理系を作っていく。 単純なものから、よリ効率の良いものへ改善していく内容で超ためになった。 まず VM の作り

    Three Implementation Models for Scheme by R. Kent Dybvig - higepon blog
    tanakaBox
    tanakaBox 2007/09/10
    SICP読んで、OnLisp読んで,処理系作って、コレ。遠い・・・。ひげぽんはどんどん凄い人になってる。
  • Ubuntu Edgy で Windows Key を Alt_L に変更 - higepon blog

    ThinkPad X60 を買ったのですが、Windows Key が邪魔です。 M-x としたつもりが Windows Key を押していて悲しい気分になることがしばしば。 システム - 設定 - キーボード では Windows Key と 左 Alt を同時に Alt_L には割り当てられないので困っていたのですが、id:khiker さんから .Xmodmap に書けば良いことを教えていただきました。 詳細は以下の通り。 Windows key の keycode を調べる xev を起動して、Windows key を押すと keycode が分かります。 KeyRelease event, serial 29, synthetic NO, window 0x3000001, root 0x5d, subw 0x0, time 297062157, (503,181), root

    Ubuntu Edgy で Windows Key を Alt_L に変更 - higepon blog
    tanakaBox
    tanakaBox 2007/04/22
    キーコードの調べかた。% xev
  • ひげぽん OSとか作っちゃうかMona- - ハッカー養成塾:ハッカーへの遠回り

    オープンソースマガジン2007年1月号に向けて書いた記事の元の原稿です。 前回のアルファギーク舘野君から、バトンを渡されたひげぽんです。 Mona OSというオープンソースOSを開発しています。 僕はハッカーと呼ばれるには実力不足ですが、知り合いのスゴ腕ハッカーに少しでも追いつこうと日々実践していることをいくつか紹介します。 ハッカーに学ぶ オンラインでもオフラインでも構いません、自分よりも優れているハッカーを探してお手とすることから始めましょう。 彼(または彼女)が何を勉強し、発言し、考えているかを観察することで多くのことを学べるはずです。 周りにハッカーがいなければ、勉強会・カンファレンスに参加したり、ブログを利用してコミュニケーションをとるのもひとつの方法です。 「ハッカーに交わればハッカーになる」とまではうまくいきませんが、周りは自分より優秀な人ばかりであるという環境を作り上げる

    ひげぽん OSとか作っちゃうかMona- - ハッカー養成塾:ハッカーへの遠回り
    tanakaBox
    tanakaBox 2007/04/06
    あれこれ手を出すのも・・・。とにかく継続あるのみ!!
  • Ubuntu 6.10 Edgy インストール Thinkpad X40 - higepon blog

    経緯 dist-upgrade したら途中で止まって、/dev/nullすら Permission Deniedになったのでubuntu-ja-6.10-desktop-i386.isoをクリーンインストールした。 一部ソースコード消失。 インストール GUIでインストールを淡々と進める。 パーティションは手動で以下のように切る。 /boot 100MB EXT3 swap 1GB /home 18GB ReiserFS / 残り約19GB ReiserFS 無線LAN(Wifi) sudo apt-get install linux-headers-`uname -r` sudo apt-get install sharutils wget http://superb-east.dl.sourceforge.net/sourceforge/madwifi/madwifi-0.9.2.ta

    Ubuntu 6.10 Edgy インストール Thinkpad X40 - higepon blog
    tanakaBox
    tanakaBox 2007/01/31
    Fedoraでも使える設定が多い。さすがひげぽん
  • 1