サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
アメリカ大統領選
sakurai.sumomo.ne.jp
Hiroshi SAKURAIのページ 読みもの 夜でもアッサム(blog) distccの簡単な説明 crunchgenの仕組み C言語のポインタの読み方 Protothreadsの説明 cache coloringの説明 phk mallocの説明 ソフトウェア amazonのwishlistを携帯で見る subversionでcommit時にメールを送る Google Note wiki - GoogleNotebookで、wikiのようにハイパーリンクを張る EasyPgup - FirefoxでPageUp/Downを快適にする w3mで、カーソル移動を快適にするpatch w3mで、ページの内容に応じてキーバインドを変えるためのpatch xzgvで、日本語フォルダ名を表示するpatch kinput2で、ctrl+spaceで入力をON/OFFする ToDoをテキストで管理す
phk mallocとは Poul-Henning Kamp氏が開発したmallocの実装です。 つい最近(2007年ごろ)、*BSDではjemallocを使うようになりましたが、それまで主流だったのがphk mallocです。 このドキュメントは、phk mallocの実装の概要を説明しています。 以下の文章で、mallocライブラリとはphk mallocの事を指します。 OSからメモリを取得するのは、ページ単位 プログラムがOSからメモリをもらう場合、ページと呼ばれる単位でもらいます。 +---------------+ | | | 1 ページ | | | +---------------+ ページのサイズは4KB(※OSやCPUに依存)固定で、この倍数でしかメモリをもらう事はできません。 malloc()では当然4KB以外のサイズのメモリを割り当てる事ができ、ユーザープログラムは
cache coloringとは プログラムの実行速度を上げるためには、CPUが持っているcacheをいかに上手に使うかが重要になってきます。 プログラムで工夫する事によって、cacheのmiss率を下げて、実行速度を上げる事ができます。 cacheのcoloringとは、cacheのmiss率を下げるためのプログラムテクニックです。 cacheの仕組み 前程 話を簡単にするために、 cacheの方式は、direct mapped。 cacheの1ラインのサイズは16bytes。 cacheサイズは1KB。 とします。 cacheの構成 <--16bytes--> +-----------+ index0 | | +-----------+ index1 | | +-----------+ index2 | | +-----------+ index3 | | +-----------+
protothreadsとは 組み込み機器でプログラムを作る方法には、大きく2つの方法があります。 RTOSを使う(スレッド型プログラミング) RTOSを使わない(ポーリング型プログラミング) protothreadsは、後者のRTOSを使わない場合のプログラミングを簡単にするための手法です。 まず、RTOSを使う場合と使わない場合のプログラミング方法の説明をします。 RTOSを使う場合のプログラミング RTOSを使った場合には、複数のスレッドが存在し、それぞれのスレッドは待ちに入る事ができます。 void threadA(void) { MSG msg; for (;;) { msg.key = wait_keyboard_msg(); /* 待ちに入る(キーボード入力待ち) */ send_msg(msg); /* threadBへメッセージを送る */ } } void threa
w3mでページの内容に応じてキーバイントを変えるpatch w3mで、ページの内容に応じてキーバイントを変えるpatchです。 これができると何がうれしいかと言うと、 gmailで、'k'で一つ新しいメール、'j'で一つ古いメールを見る なんて機能を実装する事ができます。 ついでに、HTMLの中身を書き換えてw3mに渡す事も可能です。 ファイル パッチ本体(w3m-0.5.2用) patch-local-hook パッチとともに使うhookファイルのサンプル w3m-hook 仕組み w3mでHTMLページをロードする時に、以下の動作をします。 w3m-hookという名の子プロセスを作る。 子プロセスのstdinに、URLやHTMLの中身を出力する 子プロセスのstdoutから、新しいHTMLの中身を受けとる 子プロセスから、pipe経由でkeymapファイルを受けとる w3m-hook側
Cでのポインタの読み方 Cのポインタの読み方は、ルールを知らないと摩訶不思議です。 ルールを覚えれば、 int (*p[5])[3]; char (*(*fp)(void))(int); なんてのも解読する事ができます。 大事な前程 ポインタを読む際には、「英語で読む」必要があります。 「え~、英語~」 と思う方もいるかもしれませんが、逆に日本語で読む方が大変です。 基本ルール ルール 後置演算子が優先。 関数の() 配列の[] 前置はあとで。 要は、「後ろに何かあったら、後ろが優先」です。 演算子の英語での読み方 * pointer to ... () function returning ... [] array of ... Lesson 1 まず、演算子が単独で出てくる場合です。 Lesson 1-1 pointer to ... int *p; これは、まずpを見ましょう。 i
crunchgenとは *BSDには、複数のプログラム(コンポーネント)を結合して、一つの実行ファイルにするcrunchgenというプログラムがあります。 それぞれのプログラムを別々の実行ファイルにするよりも、トータルのサイズを小さくする事ができます。 要は、Linuxでのbusyboxのような物です。 crunchgenのキモは、各コンポーネントに含まれるシンボルが重ならないように、シンボルの書き換えを行っている点です。 結合されたプログラムの動作概要 例として、catとcpとchmodという3つのコンポーネントを一つの実行ファイルallprogにまとめたとします。 (allprogという名前は、任意ですので、別の名前にする事もできます)。 ファイルシステム上では、cat、cp、chmodから、allprogへリンク(シンボリック、ハードどちらでも可)を張っておきます。 こうすると、ca
distccとは? 本家のサイト プリプロセス後のコンパイル(またはアセンブル)をリモートホストに行わせるプログラム。 プリプロセス、リンク等はローカルで行う。 distccは、ccやgccの代わりに呼ばれるプログラム。 distcc自体が並列ビルドを行うわけではない。 並列ビルドは、make -jの仕事。 使い方 クライアント $ export DISTCC_HOSTS="localhost red green blue" $ distcc -Wall hello.c $ distcc gcc -Wall hello.c $ make -j2 CC=distcc サーバー $ distccd protocol overview C S connect ---------> TCP port 3632へ接続 (disconnect) <-------- IP filterで、はじく事も可
SVV SVVとは? /etc/*などのファイルをバージョン管理するためのソフトウェアです。 /etc/*などのファイルを、root権限なしに管理できます。 ファイルのパーミッションなどの情報も保存されます。 ダウンロード ver 0.1 必要な物 subversion python pysvn(1.5.2で動作確認) 準備 subversionの空のworking directoryが必要です。 環境変数SVV_WORKを、その空のdirectoryにしてください。 例 $ svn mkdir ~/work/newdir $ svn commit ~/work/newdir $ export SVV_WORK=~/work/newdir 例2 $ svnadmin create ~/newrepo $ svn co file://.../newrepo ~/work $ export S
text/todo text/todoは、プレーンテキストでToDoを管理するのを支援するためのスクリプトです。 download text/todo 2007-08-11版 2007-08-08版 開発動機 いろいろなToDo管理ソフトを使ってきましたが、 フォーマットに制限があって、書きたい事が書けない。 ブラウザを使った物(wiki, Remember the milkなど)だと、重くてイライラする。 ビミョーに使い勝手が悪くても、直しようが無い。 という事で、結局はプレーンテキストで書き、そのファイルを自分で管理するのが一番という事に気付きました。 同じようにテキストファイルでToDoを管理するソフトとしてtodo.txtというのもありますが、ToDo以外の付随情報を書く事ができない(ような気がする)ので、自作しました。 準備 todoファイルを置くディレクトリを用意します。このデ
このページを最初にブックマークしてみませんか?
『sakurai.sumomo.ne.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く