タグ

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

  • 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
  • B+-Tree in Practice - Database Management Systems - higepon blog

    Database Management Systemsの10章。 マインドマップから再構成したまとめ Bulk loading 複数のデータから B+-Tree を 1 から構築するとき。 通常の insert アルゴリズムだと root から 1 データずつ insert。効率悪い ある程度まとめてデータを insert する方法が Bulk loading データを key でソートしてからまとめて insert していく B+-Tree の prefix key compression が面白かった。商用のDBではほぼ実装されているらしい。 Prefix key compression B+-Tree は木の高さが低い方が良い I/Oが少なくなるから。 木の高さはデータ数と、1ページあたりのindex entry 数に比例 つまり1ページに index entry をたくさん詰め込め

    B+-Tree in Practice - Database Management Systems - higepon blog
    Wacky
    Wacky 2009/01/07
  • Database の中身を実装できるほど知りたい - higepon blog

    Database の中身を実装できるほど知りたいのだけど良いはないだろうか。当に初歩の初歩から学びたい。 mumurikさんのおすすめの↓はなのだが Amazon では売り切れだ。 Database Management Systems: Raghu Ramakrishnan, Johannes Gehrke http://www.amazon.co.jp/Database-Management-Systems-Raghu-Ramakrishnan/dp/0071151109 和書・洋書問わず良いがあったらぜひ教えてください。

    Database の中身を実装できるほど知りたい - higepon blog
    Wacky
    Wacky 2008/11/05
  • オンラインで動画・音声・教科書を無料で公開している大学の講義・授業まとめ - ひげぽん OSとか作っちゃうかMona-

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

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

    flex & bison をやめて re2c & bison にしたらパーサが速くなった。re2c は UTF32 の入力に対応しているので非常にすっきり書けるし設計も歪まない。 re2c is a tool for writing very fast and very flexible scanners. Unlike any other such tool, re2c focuses on generating high efficient code for regular expression matching. re2c は flex とは互換がなく独自のマクロなどを定義しなくてはいけないので注意。サンプルとドキュメントの少ないのもマイナスポイント。 それこそ UTF32 を利用している例なんて見つけられなかった。 re2c で多分難しいのは YYFILL (flex でいうところ

    もう flex 使わない、これからは re2c - ひげぽん OSとか作っちゃうかMona-
    Wacky
    Wacky 2008/09/19
    flex & bison をやめて re2c & bison にしたらパーサが速くなった。re2c は UTF32 の入力に対応しているので非常にすっきり書けるし設計も歪まない。
  • 勉強方法を勉強して分かった僕に足りなかった3つのこと - ひげぽん OSとか作っちゃうかMona-

    勉強方法を勉強して分かった僕に足りなかった3つのこと。 それは 時間割 マインドマップ 復習 の3つ。 1.時間割 勉強をコンスタントに長期的に続けるならば時間割は大変有用。 時間割を作り実践してみて分かったが「次に何をやるべきか」に迷う時間は振り返ればとてももったいなかった。 時間割を作ればほぼ迷わない。迷うとすれば超イレギュラーな事が起きたときだけ。 時間も節約できるしペースもつかめる。 また時間割を家族と共有していれば「20:00になったから勉強してくる」と言うだけで理解してもらえるようになる。 ただし時間割は時が経ち「見慣れて目に入らなくなる」「実態に合わなくなる」事があるので注意が必要。 僕は毎週手書きで描き直している。 時間割の有用性についてはレバレッジ勉強法が詳しい。 2.マインドマップ 正直 マインドマップ を馬鹿にしていた。何で皆あのようなものに踊らされているのかと。それ

    勉強方法を勉強して分かった僕に足りなかった3つのこと - ひげぽん OSとか作っちゃうかMona-
    Wacky
    Wacky 2008/08/12
  • Scheme 処理系 「Mosh 0.0.1」 をリリースしました - ひげぽん OSとか作っちゃうかMona-

    インタプリタの名前を変更しました サイボウズ・ラボのブログでも告知しましたがこちらでも。 これは何か? R6RSという Scheme の新しい言語仕様に準拠することを目指している高速な Scheme インタプリタです。 何が出来るの? PerlRuby で行っているような実用的なプログラミングができます。(現時点ではもちろん機能は限られますが) 例えばサンプルとして Mosh で書かれた Wiki が動いています。 なぜ Scheme なの? Scheme という言語が柔軟で素晴らしい言語だからです。 Scheme について知りたい方は、計算機プログラムの構造と解釈やプログラミングGaucheなどを読まれると良いでしょう。 ダウンロードとインストール Google Code からソースコードをダウンロードして下さい。 ソースコードのビルドにはGauche が必要です。 ./confi

    Wacky
    Wacky 2008/05/14
  • gcc の -Wall 以外の警告オプション - ひげぽん OSとか作っちゃうかMona-

    以前同僚の光成さんが、以下の warning オプションを使っていると書かれていたのが気になったので調べてみました。 -Wall -W -Wformat=2 -Wcast-qual -Wcast-align -Wwrite-strings -Wconversion -Wfloat-equal -Wpointer-arith もし上記以外にも良さげなオプションがありましたら教えてください<(_ _)> 情報源 man と info と http://sugarpot.sakura.ne.jp/yuno/?gcc%2Fwarning 。 最初は日語版の man だけを見ていたのですが、id:kazuhooku に info を見るべしと教わりました。 man も info もそうですが、日語版は情報が少なかったりするので注意。 LANG=C man gccなどとしましょう。 -Wforma

    gcc の -Wall 以外の警告オプション - ひげぽん OSとか作っちゃうかMona-
    Wacky
    Wacky 2008/04/30
  • Arcで書かれたポールグレアムの News.YC がオープンソース化 - higepon blog

    Arc Forum | Arc2.tarからダウンロードできます。 実際に実行することも出来て僕の環境であれば mzscheme を apt でインストールしておいて arc を起動し (nsv) と入力。 % mzscheme -f as.scm Welcome to MzScheme version 360, Copyright (c) 2004-2006 PLT Scheme Inc. Use (quit) to quit, (tl) to return here after an interrupt. arc> (nsv) これで http://localhost:8080/ にアクセスすると動きます。 ちなみに Linux の場合 arc.arc:1216 の date -u -r を date -u -r @ とすると良いと書かれています。(かなり怪しいですが) 実際に動く小さ

    Arcで書かれたポールグレアムの News.YC がオープンソース化 - higepon blog
    Wacky
    Wacky 2008/02/25
  • Gauche(Scheme) でデバッグをする4つの方法 - higepon blog

    Gauche でコードを書いているときにコードが意図どおりに動かないことがあります。そのような場合にデバッグする方法を4つ紹介します。 前提 まず Gauche はリリースされている最新版を使った方が良いでしょう。Linuxのディストリビューションによってはパッケージが古い場合あります。 またScheme は関数型言語なので、デバッグの単位は関数(手続き)ごとに行うことが多いです。一つ一つの手続きが意図どおり動いているのか?を調べながら進めるのが基になります。 方法1 print デバッグ Gauche には今のところデバッガがありませんから基的には print デバッグがメインとなります。単純な print デバッグから見ていきましょう。 以下のような sum という手続きで print デバッグしてみましょう。 (define (sum n) (if (= n 1) 1 (+ n

    Gauche(Scheme) でデバッグをする4つの方法 - higepon blog
    Wacky
    Wacky 2008/02/15
  • 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
    Wacky
    Wacky 2008/02/03
  • Scheme関連ブログリンク集 - ひげぽん OSとか作っちゃうかMona-

    読むと勉強になる Scheme 関連ブログを集めようと思います。日語/英語/自薦/他薦 問わずおすすめがありましたらぜひ教えてください。ここに追記していきます。 Shiro Gauche の作者 shiro さんのブログ 00000078 id:scinfaxi さんのブログ。Schemeのコンパイラを実装中のようです。 わだばLisperになる - cadrグループ Scheme ではないですが、Lisp の貴重な情報がたくさん書かれています。 programming: what's new online Reddit家。英語ですが Scheme の話題がよく上がります。 ディスカッション - comp.lang.scheme | Google グループ 同じく英語ですが面白いです。 PLT Scheme Blog id:sumiiiさんありがとうございます。 http://sche

    Scheme関連ブログリンク集 - ひげぽん OSとか作っちゃうかMona-
  • [life] プログラマのための退職に伴う年金・保険証・住民税の手続きメモ - higepon blog

    金曜日に退職し、すぐに働き始める訳ではないので、年金・保険証・住民税の手続きをやってきました。 忘れたり先延ばしにすると色々と面倒なのですぐにやってしまうのが良いです。 年金 会社に所属している間は厚生年金に加入していて「厚生年金保険」という項目で給与から年金の積立(?)が行われていました。 退職したので自分で払わなければいけません。 用意するもの以下の通り。 年金手帳(自分との両方) 退職証明書(勤め先が発行してくれたもの) これを持って区役所の年金コーナーへ。 係の人に事情を説明すると 夫婦揃ってこれからは国民年金に加入 手続き時点では厚生年金が加入中の扱いだったので退職証明書のコピーをとって手続きしてもらう 後日、年金の納付書が送付されるので支払いをすれば OK。 再就職した場合は 夫婦の年金手帳を次の職場に提出し手続きをしてもらう 夫は厚生年金に加入 は3号被保険者に変更 保険

    [life] プログラマのための退職に伴う年金・保険証・住民税の手続きメモ - higepon blog
    Wacky
    Wacky 2007/10/24
  • ld --Map のリンクマップに eip が? - higepon blog

    Wacky
    Wacky 2007/10/06
  • autotoolsを開発中に使うのは不便な事に気づいた - higepon blog

    Wacky
    Wacky 2007/02/03
  • GCあれこれ - higepon blog

    GCに関してWebの資料やら、「情報処理学会誌94年11月号」を読み漁っていて大分詳しくなりました。 適当なメモは→Scheme/B.GC調査/02.GC概要 - Mona PJ Wikiに書いてあります。 ひとつまだ分からないことがあって迷っています。 GCを持たないAという言語で、GCを持つインタプリタBを実装するとき、Bのオブジェクトは管理テーブルでタイプや構造を管理して、GCに使います。 つまりAでB用のGCを実装することになります。 では、GCを持つCという言語で、GCを持つインタプリタBを実装するとき、Bのオブジェクトを解放するGCはB用のGCでしょうか。 それとも、C用のGCでしょうか。 個人的にはどちらの可能性もありそうだなと思っているんですが、実際の言語処理系ではどうなんだろう。 C++とBoehm GCでSchemeインタプリタを書いたら、GCの事は考えなくても良いのか

    GCあれこれ - higepon blog
    Wacky
    Wacky 2006/12/30
    GCに関してWebの資料やら、「情報処理学会誌94年11月号」を読み漁っていて大分詳しくなりました。
  • ひげぽん OSとか作っちゃうかMona- - Google Code Searchに自分のコードをクロールしてもらう方法

    Google Code Searchはとても便利ですが、自分の公開しているあのコードが検索に引っかからない!ということを経験しました。 調べたところGoogle Code Search - Help Google Code Search find your codeのページから tar.gz,zipなどのArchiveファイルのURL CVSリポジトリ Subversionリポジトリ を登録すればクロールしてくれるようです。 Please note that we do not add all submitted code to our index, and we cannot make any predictions or guarantees about when or if it will appear. と書いてあるので全部クロールされるとは限らないですが、やってみる価値はあるので

    ひげぽん OSとか作っちゃうかMona- - Google Code Searchに自分のコードをクロールしてもらう方法
    Wacky
    Wacky 2006/11/10
    Subversionリポジトリ,を登録すればクロールしてくれるようです。
  • ちょwww Higeponは出世した - higepon blog

    8/16ビットマイクロコントローラ向け TCP/IPスタック - uIP 1.0登場 (MYCOMジャーナル) uIP Embedded TCP/IP Stackのは全部合わせてもきわめてサイズが小さい。ソースコードはコメントが行き届いており、組み込み用途のみならずTCP/IPスタックの実装を学ぶうえでも興味深い教材といえる。配布物には組み込みではなく、FreeBSDやLinuxのユーザランドで動作させるためのコードも同梱されている。 uIP Embedded TCP/IP StackはすでにContiki、FreeRTOS、Pumpkin、TinyOS、Higepon、Nu Horizons、Rowley Associates、ASIX Tawian、Aurion Tech、xmk、microVNC、uLunar、emWareなど多くのプロジェクトや団体で採用されている。 Higepon

    ちょwww Higeponは出世した - higepon blog
    Wacky
    Wacky 2006/06/17
    8/16ビットマイクロコントローラ向け TCP/IPスタック - uIP 1.0登場 (MYCOMジャーナル)
  • SICP関数型言語の勉強に「計算機プログラムの構造と解釈」を読もう - ひげぽん OSとか作っちゃうかMona-

    計算機プログラムの構造と解釈posted with amazlet on 06.04.15 Gerald Jay Sussman Julie Sussman Harold Abelson 和田 英一 ピアソンエデュケーション (2000/02) 売り上げランキング: 56,404 Amazon.co.jp で詳細を見る 自分が「計算機プログラムの構造と解釈」というを勉強していった過程をまとめています。 この質は、翻訳の悪さでも難しい数学でもないです。 なんと伝えたらよいのだろうか。 全部読み終えたときにまとめたいと思います。 →読み終わったのでまとめました。「「計算機プログラムの構造と解釈(SICP)」を読み終えて」 読み終えたら次のステップとしてはOn Lispなどがおすすめです。 目次 関数型言語の勉強にSICPを読もう - (1) SICPを読み始めた理由 関数型言語の勉強に

    SICP関数型言語の勉強に「計算機プログラムの構造と解釈」を読もう - ひげぽん OSとか作っちゃうかMona-
  • 誰がどのファイルを開いているか調べる方法 - higepon blog

    誰がどのファイルを開いているかを調べる方法を2つ紹介します。 openfiles Windows XPには openfilesというツールがあって誰がどのファイルを開いているか列挙することができます。 まず cmd.exe で openfiles /local onとして、ファイルのトレースができるようにします。(再起動が必要です)。 その後 openfilesと打ち込むと ローカルで開いているファイル: --------------------- ID プロセス名 開いているファイル (パス\実行可能ファイル) ===== ==================== ================================================== C:\..6595b64144ccf1df_6.0.2600.2180_x-ww_a84f1ff9 64 wscntfy.e

    誰がどのファイルを開いているか調べる方法 - higepon blog
    Wacky
    Wacky 2006/05/02
    Windows XPには openfilesというツールがあって誰がどのファイルを開いているか列挙することができます。FilemonはGUIで状況を確認できます。