タグ

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

  • プログラミングErlang 読了 - higepon blog

    プログラミングErlang を読み終えた。読んだきっかけは、rui さんによる Erlang のすすめだったと思う。 java.util.concurrent に感動して、Shibuya.lisp の宴会で、同じくJava並行処理プログラミングを読んだ ruiさんと「あれすごいよねー。という話に」。 Mosh のスレッド対応は java.util.concurrent のようなものにしたいと考えていると話したところ、「 それならば、まずその前に Erlang のプロセスモデルを勉強した方がいいよ」と教えてくださったのだ。 期待値がとても高かったのだが、それを上回って当にすばらしいと言語だった。一時期皆を熱くさせた理由もよく分かる。 Erlang は関数言語なのもあって、万人向けのではないが、自分が作るものには大きな影響を与えることは間違いない。 特にメッセージパッシングスタイルを採用

    プログラミングErlang 読了 - higepon blog
  • OSX - 既存のドライバモデルを調べよう - higepon blog

    Mona のドライバモデルをきちんと決めるべく既存の OS のドライバモデルを調べていこう。 前回までの調査 Windows - 既存のドライバモデルを調べよう BeOS - 既存のドライバモデルを調べよう FreeBSD - 既存のドライバモデルを調べよう I/O キット Apple が提供するドライバ開発フレムワーク。 カーネルレベルで動くドライバ アプリケーションレベルで動くドライバ のどちらも対応。オブジェクト指向である。 I/O レジストリ。インスタンス化されたドライバの情報を保持。 I/O カタログ。システムで利用可能な Class のデータベース。 ユーザー空間で動いているアプリがドライバと通信可能なインターフェースの提供。 カメラ、プリンタのサポートが弱い。 FreeBSD のドライバモデルを採用しなかった理由 FreeBSD ドライバモデルには 自動コンフィギュレーション

  • 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
  • 自由人生活79日間のまとめ - ひげぽん OSとか作っちゃうかMona-

    明日から社会人復帰なので、退職してから今日までの79日を振り返る。 背景 もしも仕事を辞めることがあったら試したいことがあった。自分の人生から「仕事」が無くなったときに 自分は何をするのか? 自分は Mona のコードを今までどおりに書き続けるのか? 自分はどこまで気コーディングを続けられるのか? 自分の能力のリミットは? などを知ること。 これらを早い段階できちんと知っておかないと、今後の人生の分岐点で核心を持って正しいと思える判断ができない。 自分に甘い楽観的な予測であれば立てられるが、それが合っている保証はない。試してみるほかない。 例えば、最悪想定の悲観的なシナリオでは 仕事の反動や課外活動としてしか Mona をやれない 気づけば毎日ダラダラしているだけ 自分は自分が失望するほど能力がない という可能性があるわけ。 結果 概ね満足できる結果だった。 Mona のコードを書きつづ

    自由人生活79日間のまとめ - ひげぽん OSとか作っちゃうかMona-
  • Gauche でテスト作成支援 gca.el - ひげぽん OSとか作っちゃうかMona-

    昨日、「test* に与えるテスト名の命名が面倒だ」と書いた所、naotoさんから gca.el という koguroさん作の Emacs Lisp を教えていただきました。 これは便利。 gca.el テストケース作成支援のためのツールを作りました(拙作のEmacs用のユーティリティに含めてあります gca-20060903.tar.gz)。 単体テストをきちんと書くのは面倒ですが、通常コードを書くときは、無意識のうちにgosh上で動作確認をしつつコードを書き進めているかと思います。この動作確認の結果を基に単体テストを作成してしまおうというのがこのツールです。 デモ 実際に動作しているデモムービーを見るとわかりやすいです。(GaucheFest:koguroにあります) デモムービー(mov形式) 4.8MB デモムービー(wmv形式) 2.4MB インストール gca.el の先頭に書

    Gauche でテスト作成支援 gca.el - ひげぽん OSとか作っちゃうかMona-
  • ひげぽん OSとか作っちゃうかMona- - Subversionの話

    Subversion を使うようになって数年が経ちますが、最近 svn diff/status/log/merge などのコマンドに熟達してきた。 気軽に ブランチを作る マージする コードを元のバージョンに戻す 問題となるコードを diff で調べる などができるようになって、作業効率が上がったり、こまめにコミットさえしておけば、あとからどうにでもなるので精神的にもかなり楽になった。 この「気軽に」ってのがとても重要。 以前だって、マージの概念やいつでも好きなバージョンに戻せること、diff を表示することが出来るのは知っていたし、たまに使っていたりもした。 ただ使う場合は コマンドをWebで調べる おそるおそる試してみる 失敗して check out しなおしで時間をロス などがありストレスがたまりがちで、結果的にこれら有用な機能を使うのを無意識に避けていたなと、振り返ってみると気づく

    ひげぽん OSとか作っちゃうかMona- - Subversionの話
  • Re:マシン語を知らない子ども達 - higepon blog

    マシン語を知らない子ども達 完全に乗り遅れたけどなんとなく。 いちおうLLと呼ばれる上の方からOSの下の方までコードを書いたことがあるけど、マシン語を特別扱いはせず ソートのアルゴリズムを知っている PHPでWebアプリが書ける と同列くらいの選択肢のひとつとして見る、くらいで良いのではないだろうか。 知らなくて損することはもちろんあるかもしれないが必須というほどでもない感じ。 まあそうは言っても、マシン語や簡単な回路を理解するとまだ浅いコンピュータの歴史の中で人類がいろいろと工夫を積み重ねてきたものが見えて面白いので、興味のある人はCPUの創りかたをあたりをとっかかりに読むと良いかも。 あとは以前よく2chでインテルのマニュアルを嫁とか言われたのですが、今ならその価値が分かる。 はじめて読む486あたりを読んだら次は、インテルのマニュアルを印刷して暇なとき眺めると吉。 日語だしインテル

    Re:マシン語を知らない子ども達 - higepon blog
  • ひげぽん OSとか作っちゃうかMona- - 末尾再帰

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

  • Linux kernel-2.6 付属 ドキュメントの日本語訳 - higepon blog

    JF: Linux Kernel 2.6 Documentation: Index あたりから辿れるドキュメント。 どれを読んでも感じるところや学べるところがある。 Linux の内部I/Fが変更される理由 完全なるパッチ なぜ Reiser4は Linux カーネルに含まれていないのか Linux カーネルのマネージメントスタイル Linux カーネル コーディング規約

    Linux kernel-2.6 付属 ドキュメントの日本語訳 - higepon blog
  • Mona 0.3.0 alpha9 リリース - higepon blog

    Mona 0.3.0 alpha9 をリリースしました。 ダウンロードは http://www.monaos.org/ からどうぞ。 リリースは実験的に Scheme ベースのシェルを導入したリリースです。 Scheme シェルを利用することで今までよりも、柔軟に Mona OS の機能をシェルから利用することが出来ます。 Scheme シェルでは シェルスクリプト call-process/start-process(同期/非同期プロセス起動) call-with-current-continuation(call/cc) lambda式など、Schemeの言語仕様(R5RS)で定められたほとんどの機能 ( の入力補助 Emacsライクなキーバインド(C-a/C-e/C-f/C-b/C-k). などが利用可能です。 また以下のような大きな機能追加や改善がなされています。 libcの実装

    Mona 0.3.0 alpha9 リリース - higepon blog
  • 25才-30才 - higepon blog

    25才-30才の間に何をやっていたかは、後々とても効いてくる。 他の期間も同様だけど特に。

    25才-30才 - higepon blog
  • httpd.confの編集を vi でやっているとストレスがたまる、Emacs好きな人は jed を使いましょう

    同僚のスーパーハカーのid:onishiに教えてもらったエディタ jed を紹介します。 皆さんは Linux でちょいちょいと httpd.conf とか *.conf系の設定ファイルを編集するときに vi を使っていませんか? そして独特のキー操作を誤って謎のヘルプが開いたり、微妙な編集をしてしまい泣く泣く q! で終了して編集しなおしていませんか? 確かにLinuxに滅法強い人に言わせれば vi は大体どんな環境でもインストールされているので覚えておいて損はないのですが、自宅サーバや開発サーバなど自分でどうにでもいじれる環境であえて vi だけを使う理由は特にありません。 なので Emacs 使いの人たちは jed をおすすめします。 jed (http://www.jedsoft.org/jed/)は 起動が速い・軽い Emacsキーバインド という素晴らしいエディタです。 起動の

    httpd.confの編集を vi でやっているとストレスがたまる、Emacs好きな人は jed を使いましょう
    takkan_m
    takkan_m 2006/05/05
    id:secondlifeさんによるvi資料期待
  • Emacsできれいな日本語フォントを使いたい【解決編】

    多くの人のサポートがあり、ついに解決しました。アドバイスを下さった皆様ありがとうございました。 結局ひげぽんがXやフォント周りの仕組みを一切理解していなかったことが原因ではまっていたというオチでした。 ただ同じようにはまる人はいると思うのでできるだけ詳しく書いておこうと思います。 実現したかったことと経緯 coLinuxのubuntuをセットアップしてcygwinのXWin.exeでデスクトップ環境の利用をはじめた。 その際にemacsの日フォントがとても不恰好でどうにかしたいと思った。 そこで以下のようにフォントをインストールした。 apt-get install ttf-sazanami-gothic apt-get install ipafont apt-get install xfonts-shinonome で、.Xdefaultsに使用するフォントを書けばよいらしいというこ

    Emacsできれいな日本語フォントを使いたい【解決編】
  • .Xdefaults - higepon blog

    takkan_m
    takkan_m 2006/03/07
    Xdefaultsの設定で、キーバインドをemacs風に
  • 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
  • ひげぽん OSとか作っちゃうかMona- - RawSocketで簡単なパケットモニタを作る方法

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

    ひげぽん OSとか作っちゃうかMona- - RawSocketで簡単なパケットモニタを作る方法
  • 空前のEmacsブーム(遅 - higepon blog

    id:naoya:20050905:1125928702にもある通り、はてな社内はEmacsブームです。 私は以前からEmacsを使っているのですが、独学だったので基機能を使いこなせていないことに気づきました。 BSキーや矢印キーを使うヤシはxxx!!。とかid:naoyaが言うので。 ↓のようにBSキーを押さないようにしています。 しかし C-sやC-r中に、C-dを押すとメインバッファのほうが消えてしまうのは何とかならないのだろうか・・・。 いろいろ試したのだがMeadowの挙動?。

    空前のEmacsブーム(遅 - higepon blog
    takkan_m
    takkan_m 2005/09/12
    コメントのあたりが有用
  • 1