Today アクセスカウンター Yesterday アクセスカウンター

ホワット・ア・ワンダフル・ワールド

私は知識に何ものかを付け加え,また他の人々がより多くのものを付け加える手助けをした --- G.H.ハーディ

全記事一覧 << 2008/07 12345678910111213141516171819202122232425262728293031 2008/09 >>

プロフィール

あろは (alohakun)

  • Author:あろは (alohakun)
  • 若槻俊宏 (WAKATSUKI toshihiro)

    連絡先 : alohakun ___at___ gmail.com
    mixi : http://mixi.jp/show_friend.pl?id=182927
    twitter : http://twitter.com/alohakun

    abstract

    プログラミングという人間の知的行為を体系化し,単なる職人芸ではなく,サイエンスにするための研究をしています.

    具体的には,等価変換計算モデルに基づいた,仕様記述からのプログラム合成の研究をしています.

    もっと噛み砕くと,プログラムの正しさをどのように定式化し,どのような枠組みで,どのように変換を進めていけば,正しさを保証したまま,効率的なプログラムを手に入れることができるのか,ということについて研究しています.

    キーワード : equivalent transformation, computation model, programming paradigm, formal specification, program synthesis













    あわせて読みたい


    この日記のはてなブックマーク数


    スカウター : ホワット・ア・ワンダフル・ワールド


    Map









    FC2 BLOG RANKING

FC2カウンター

ブロとも申請フォーム

この人とブロともになる

andLinux 素晴らしい

2008/08/11(月) 20:58:28

windows 上で Linux 環境を使いたい場合,ユーザーモード OS として Linux kernel を Windows 上で実行できる coLinux が便利そう,というのは前から知っていたのですが.どうも coLinux は設定が面倒そうというイメージがあり,導入をためらっていました.

しかし,andLinux というのを知ったので試してみました.これは素晴らしいですね.ダウンロードしてインストーラを起動するだけでインストール終わりです.

日本語が使えないという意見がチラホラ見えますが,以下のサイトの通りにするだけで普通に使えました (要するに Ubuntu の初期設定と同じ ? Ubuntu は使ったことが無いのでよくわからないのですが)

ひゃまだのテキストで行こう - andLinuxのメモ

個人的にちょっと引っかかったのは,apt-get update した時に gpg エラーが出たことだけです.source.list に書いてあるのと同じようにして,エラーが出た時に出てくるキーを承認してあげればよいみたいです.

# gpg --keyserver subkeys.pgp.net --recv 認証したいキー
# gpg --export --armor 認証したいキー | apt-key add -

Start andLinux の他にも,Terminal のショートカットとかを作っておいた方が便利そうです.私は最初 vmware のように,箱庭環境 (?) の中でアプリを実行するものだと勘違いしていたので,どうせターミナルだけ上がれば良いやと思っていたのですが.

普通に,Windows の DOS 窓みたいに,いきなりターミナルが立ち上がります.そして,普通にターミナルから firefox を上げて Windows のネイティブアプリと同じようにシームレスに Linux アプリが全て使えます.Windows ⇔ Linux アプリ間でコピペも普通にできます (もちろん Windows と Linux では操作の作法は違いますが) Linux の方に Windows のファイルシステムがマウントされてるので,ファイル共有も簡単です.

とりあえずこれをインストールすれば,Windows 上に細々とした UNIX ツールを入れる必要性は少なくなりそうですね.apt でアプリがインストールできて,普通に Windows アプリとして使えるのはかなり大きいです.
UNIX/LinuxTB:0CM:1 このエントリーを含むはてなブックマーク | livedoorクリップ livedoorクリップ BuzzurlにブックマークBuzzurlにブックマーク newsing it!

Damnsmall Linux 4.2 をインストールする

2008/03/28(金) 01:37:40

昨日 eco linux をインストールしたばかりですが,atptitude の罠によってうっかり大量のパッケージが削除されてしまったので,再びインストール.

eco は ubuntu ベースということで,微妙に debian と体系が異なりますし,けっこう重い気がしました.というわけで,今度は最軽量と名高い Damnsmall Linux を試してみます.

とりあえず,ライブ CD の部屋から Damnsmall Linux 4.2 日本語版 を持ってきて CD に焼きます.

$ du -h dsl-4.2-jp.iso
126M dsl-4.2-jp.iso

$ cat dsl-4.2-jp.iso.md5
f4f55a87140d0161c9832776dd622e9c

$ md5sum dsl-4.2-jp.iso
f4f55a87140d0161c9832776dd622e9c dsl-4.2-jp.iso

$ cdrecord dev=ATAPI -scanbus
WARNING: the ATAPI: method is considered deprecated on modern kernels!
Mapping device specification to ATA: method now.
To force the old ATAPI: method, replace ATAPI: with OLDATAPI:
scsibus0:
0,0,0 0) *
0,1,0 1) *
0,2,0 2) 'COMBO ' 'IDE4816CO ' '0037' Removable CD-ROM
0,3,0 3) *
0,4,0 4) *
0,5,0 5) *
0,6,0 6) *
0,7,0 7) *
$ cdrecord dev=ATAPI:0,2,0 -v -eject dsl-4.2-jp.iso

そして昨日と同じように Thinkpad A21e に突っ込んで,F1 押して BIOS を CD ブートにして起動.

起動速っ !! 鬼のように速いです.これ,CD で常用できるんじゃないの ?

壁紙がカッコいいですね.シェルも透明だ.メモリを 50 M/256 M ぐらいしか使ってない.すごい.

とりあえずメニューから [DSL] > [アプリケーション] > [ツール] > [ハードディスクへインストール]

ここらへんを参考に.昨日 eco linux で作ったパーティションにそのまま Write して Quit.質問には全部 yes で OK.

5 分ぐらいでインストール完了 → reboot

root と dsl というユーザのパスワードを入力.dsl でログイン.

すごい,20 M ぐらいしか使ってない.su - して X の設定などする.

------------------- ここからは DSL 側でブログ書く (ルータ持って無いので…) ------------------

Knuppix ベースなのでハードウェア認識力が高く、設定ゼロで usb マウスが動き pppoeconf で普通にネットにつなげて、UIM + Anthy で日本語が読み書きできます (Ctrl+Space の他にも全角/半角キーでも切り替わる)。素晴らしい。firefox を立ち上げても 80 M 程度の消費で収まってます。eco で fc2 のブログエディタを使っていると、かなり遅延が酷くて、文字を打って変換する過程がスローモーションのようだったのですが、DSL は非常に軽いですね。最高です。これは良い。

とりあえず,句読点とスペースの設定.こんな感じの Scheme コードを置いておくと,句読点が,.になり,常に半角スペースを使用するようになります.


$ cat ~/.uim
(require-module "anthy")
(define ja-rk-rule
 (append '((((",") . ()) ("," "," ","))
 (((".") . ()) ("." "." "."))) ja-rk-rule))

(require "japanese.scm")
(define ja-direct-rule '((" " " ")))


Ctrl と Swap を入れ換える.

$ cat .xmodmap
remove Lock = Caps_Lock
remove Control = Control_L
keysym Control_L = Caps_Lock
keysym Caps_Lock = Control_L
add Control = Control_L
add Lock = Caps_Lock

$ cat .xinitrc
...
xmodmap -e "keycode 49 = Zenkaku_Hankaku"
xmodmap .xmodmap
...

apt-get をするまえには,[DSL] > [アプリケーション] > [ツール] > [APT 有効化] をしておく必要があるみたいです (これをやっておかないと以下のようなエラーが出る)

# apt-get update
E: Could not open lock file /var/lib/apt/lists/lock - open (2 そのようなファイルやディレクトリはありません)
E: Unable to lock the list directory

わりと DSL はいろいろ設定ツールとかゲームまで入ってる感じ (pppoeconf しなくても,ちゃんと GUI ツールがあったみたい [DSL] > [設定] > [ネットワーク] > [DSL/PPPoE] > [PPPoE 設定]) なので,本気出せばもっと軽量化できそうな気もしますね.

DSL,というか,たぶんライブCDの部屋の人が非常に素晴らしいのだと思いますが,非常に良いですね.JWM も普通に使えます.
UNIX/LinuxTB:0CM:0 このエントリーを含むはてなブックマーク | livedoorクリップ livedoorクリップ BuzzurlにブックマークBuzzurlにブックマーク newsing it!

eco linux から記念カキコ

2008/03/27(木) 02:45:47

Thinkpad A21e (2655-CS5) に eco linux をインストールしてみました。

特に難しいところは何も無く、設定ゼロで X が立ち上がって、USB マウスが使えて、pppoeconf でフレッツ光に繋いで、Firefox を立ち上げて、SCIM + Anthy でいきなり日本語が使えて、ブログが書けます。素晴らしい。

root になれない (全部 sudo でやる) のは、Ubuntu の流儀なんですかね ? apt も vi も入ってないあたりが今風だなぁと。symaptic とか GUI ツールはイマイチ使い方がよくわからないです。まぁ、おいおいカスタマイズしていきます。基本的に Debian ベースなのだから、何とでもなるはず。

# 句読点のスタイルは良いとしても、全角スペースが混ざってしまうのが気持ち悪い… 

なんと作者は現役高校1年生らしいです。すごい。高速道路世代ここに極まれりというか。2 ちゃんねるでの受け答えも堂々たるもので、いやはや、なんとも。

ところで、今年の後半に Debian の lenny が出るらしいんですが、kernel だけ linux から FreeBSD に変更したDebian GNU/kFreeBSD が公式サポートに追加されるそうです。これはかなり面白い上に、GNU プロジェクトが Linux kernel への依存を断ち切りつつあるという意味でも意義深いと思います (もともと FreeBSD の ports を意識したらしい Gentoo の FreeBSD 版、Gentoo GNU/kFreeBSD もあるみたい)。もともと Linux は Hurd の代用品に過ぎなかったわけで。自由で完全な UNIX システムをゼロから作る (GNU is NOT UNIX) という当初のプロジェクトの目的からすれば、UNIX の代用品の代用品なわけです。ユーザにとって、(現在のレベルの kernel では)、kernel 自体はどうでもいい。所詮どのスクリプト言語を選ぶのかといった言語マニアの論争と同レベル。ユーザが使いたいのは GNU Development Tools とその成果物であり、kernel に関係なく全ての自由な環境 (一応 Debian GNU/w32 なんてのもあるそうですが) で GNU ツールが動くようになれば、たいへんけっこうなことだと思います (ある意味では、MS の .NET 構想のような、プログラミング言語のコアとライブラリの関係に近い。言語が変わっても、ライブラリが同じならば移行は容易)。Debian GNU/OpenSolaris なども動きつつあるようですし、ぜひこの調子で、Debian GNU/Plan9 を開発してもらいたい (大変過ぎる)

西田さんが Linux のディレクトリ構成のいいかげんさを批判してましたが、これは Linux というよりもむしろ GNU プロジェクトの問題という気もするのですが。そういう意味では、むしろ kernel だけ linux に変更して、JVM や Linux パッケージやドライバがネイティブに動く (Linux バイナリエミュレータでない) FreeBSD や OpenBSD の方が欲しい気もします (とかうかつな発言をすると、あんな unk○ なカーネルなんて!と BSD の人たちに怒られそう…)

まぁ、Linux はダイナミックである意味では無節操な開発のおかげで、参加のハードルが低くなるためなのか、開発スピードは非常に速い気がするので、難しいところですね。BSD 系は少人数でひたすら正しい道を求めるので、成果物が高品質な反面、ハードルも高まるのでなかなか新機能の開発が進まないイメージがあります(伽藍とバザール)




うっかり aptitude 使ったら,大量のパッケージが remove されて大変なことになった… 削除するときは警告してくれよ.atptitude 怖すぎる.こりゃ,再インストールか,別のをインストールするしかないな.謎過ぎる
UNIX/LinuxTB:0CM:6 このエントリーを含むはてなブックマーク | livedoorクリップ livedoorクリップ BuzzurlにブックマークBuzzurlにブックマーク newsing it!

LinuxでDVD再生するならogle

2007/11/18(日) 06:15:48

とあるDVDを近所の中古屋でゲットし,いざ再生してみたところ,どうにもおかしい.240 分ぐらいあるはずなのに,mplayerで再生すると 8 分しか表示されない.なにやら予告編しかチャプターにも表示されていない.

「ふざけるなよウルァ ! 20アイドル×20コスプレ アイドル制服×完全征服×4 時間ギッシリ詰め込みましたとか,全然詰め込んでないじゃないか !!」 と,普段は温厚な私ですが,さすがにこの仕打ちには梅澤春人の漫画ばりに MK5 (古い) あかんわ山岡はん,なんちゅうことしてくれるんや.これはわいの故郷の四万十川でとれるエロDVDの予告編やないか.こんなん見せられてもうてこれじゃ,蛇の生殺しや.海原はん,かんにんやで.と,人は極限状態になるとなぜ京極さんになってしまうのか.

とかいういつもの前振りはどうでもいいとして,結論だけを述べると,APTでogleをインストールし,無事に全チャプターを再生できました (早) シンプルなインタフェースで良いね.安定してる.

これでDVDを切断した画像をブログに載せて,ネットイナゴホイホイをしたりせずにすみました !めでたしめでたし.
UNIX/LinuxTB:0CM:2 このエントリーを含むはてなブックマーク | livedoorクリップ livedoorクリップ BuzzurlにブックマークBuzzurlにブックマーク newsing it!

イマイチ (2)

2007/11/07(水) 13:26:06


// サキサカさん,前回の放送ですが,微妙に視聴者からの反響があったようですよ
// うれしいね.まじめに記事を書くよりも2chをコピペした方がブクマが付くこんな世の中だから
// それはこのブログの常ですよ.筆者に文才が無いのが悲しいところです.まぁ,もう少しだけ続けてみましょうか
// ギークなネカマにでもなって PHP の記事でも書いた方がコメント付きそうだけどね
// それを言っちゃおしまいですよ.コメント付かなくても気を落とさずにがんばりましょう
struct inode *ramfs_get_inode(struct super_block *sb, int mode, dev_t dev)// さて,iノードを作る関数なんですが
{ // iはinternetじゃなくてindexの略ですからね
struct inode * inode = new_inode(sb); // そういうボケはどうでもいいんだけど
// 「ファイルシステム」って雰囲気は満点だね
if (inode) { // 無事にiノードが確保できたら…
inode->i_mode = mode; // モードとか所有者とか管理情報をセットするんだな
inode->i_uid = current->fsuid; // モードというのはアクセス権 xrw/xrw/xrw の他に…
inode->i_gid = current->fsgid; // ファイルの種類も含むね
inode->i_blksize = PAGE_CACHE_SIZE; // キャッシュサイズと同じ単位でメモリは確保,と
inode->i_blocks = 0; // 今回はブロックとかはないからね.
inode->i_mapping->a_ops = &ramfs_aops; // おっとオペレーション構造体が…
inode->i_mapping->backing_dev_info = &ramfs_backing_dev_info; // これはさっき作ってた構造体だね
inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME; // 作った時間をセットと
switch (mode & S_IFMT) { // S_IFMT で,モードからファイル形式だけを取り出す
default: // S_IFREG(通常ファイル)/S_IFDIR(ディレクトリ)
init_special_inode(inode, mode, dev); // S_IFLNK(シンボリックリンク)とか,そゆやつだ
break; // default が頭にあるってのは,なんか変わってますね
case S_IFREG: // 通常のファイルだったら…
inode->i_op = &ramfs_file_inode_operations; // おっと,またオペレーション構造体が出てきましたよ
inode->i_fop = &ramfs_file_operations; // ramfs_aops もそうだったけど,どこらへんで宣言
break; // されてるんだろうなぁ.internal.h には宣言だけだよ
case S_IFDIR: // ディレクトリの場合は,と
inode->i_op = &ramfs_dir_inode_operations; // ここらへんは先行宣言されてますねぇ
inode->i_fop = &simple_dir_operations; // 後ほど実体が定義されますので,お楽しみですね
// このコメントは…
/* directory inodes start off with i_nlink == 2 (for "." entry) */ // ディレクトリは必ず自分自身 . と親 .. を先頭に含むんだね
inode->i_nlink++; // なるほど,だからリンク数が2から始まると
break; // そそ
case S_IFLNK: // シンボリックリンクの場合は
inode->i_op = &page_symlink_inode_operations; // 専用のオペレーション構造体を登録と
break; // なんとなくパターンが見えてきましたね
} // でも,オペレーション構造体が気になるよね
} // 確かに.
return inode; // iノードも無事に返ったことですし
} // それでは聞いてみましょう,現場のヤブナカさーん ?
/*******************************************************************************************************************/
//*はいはい,ヤブナカです.
//*現在 /usr/src/linux-source-2.6.18/fs/ramfs/file-mmu.c に来ております.
const struct address_space_operations ramfs_aops = { //*ささっ,カメラさんもっとこっち寄って
.readpage = simple_readpage, //*モモナイさん,サキサカさん,見えてますかー ?
.prepare_write = simple_prepare_write, // おお,狙い通り.しっかり
.commit_write = simple_commit_write // 謎だった構造体の定義が見えてますよ !
}; // なるほどね
//*どうやら見た感じ,どれも汎用のオペレーション
const struct file_operations ramfs_file_operations = { //*をそのまま流用している感じですね
.read = generic_file_read, // ほんとだね
.write = generic_file_write, // となるとサキサカさん
.mmap = generic_file_mmap, // 最後まで見てみないとなんともいえないけど
.fsync = simple_sync_file, // 特に変わったことはしてないみたいですね
.sendfile = generic_file_sendfile, // そんな感じだね
.llseek = generic_file_llseek, // ではこれからは
}; // inode.c だけに集中してれば良さそうだね.
// お,そろそろ終わりが見えてきたようですよ
struct inode_operations ramfs_file_inode_operations = { //*ハァハァ,こっちこっち.カメラさん急いで !
.getattr = simple_getattr, //*ふう.どうやらこれで最後見たいですね
}; // ヤブカワさん,お疲れさまでした !
// はい,ありがとうございました.ひとまずスタジオにお返ししま〜す
/*******************************************************************************************************************/
// はい,現場のヤブカワさんでした.
// 落ち着いたところで,いったんCMです
UNIX/LinuxTB:0CM:0 このエントリーを含むはてなブックマーク | livedoorクリップ livedoorクリップ BuzzurlにブックマークBuzzurlにブックマーク newsing it!

最近のコメント

リンク

このブログをリンクに追加する

最近のトラックバック

人生の残り日数

日本人男性の平均寿命は 28700日.

RSSフィード

カテゴリー