メッセージ。 - diary

2008-02-08

# 分散バージョン管理システムMercurialを使ってみた

ぼくは昔からバージョン管理システムが好きで、定期的に新しいのを試したくなる。ただまぁ、使ってみてもすぐ飽きて長続きしないのだけど……。ここ最近はdarcsを使っていたが、なにやらMercurialの評判がよいみたいなので使ってみた。

ちょっと試してみた感じではけっこう使用感がいい。Mercurialの仕組みについては下記の文章を読むとどういうものか分かる。

リモートリポジトリ
http://www.lares.dti.ne.jp/~foozy/fujiguruma/scm/mercurial-remote.html

読み下すとこういう感じ。
(1)分散バージョン管理システムなので、n対n型でリポジトリが存在する
(2)リポジトリ間の同期は、pull(先方のデータを手元にマージ)とpush(手元のデータを先方にマージ)で行う
(3)基本的に選択的マージをしない。pullやpushをすると、先方と手元のあいだの差分がすべてマージされる。「先方のコードは欲しいけどこの部分だけマージしたくない」と思ってもそれをサポートする機能がない
(4)ただし、pushやpullは明示的にどこかのリポジトリを指定して行う(デフォルトでは直接の親がpullやpushの対象となる)ので、「リポジトリAからばかりpullする」みたいなことが起こり親子関係、上流・下流の関係ができる。

(3)の特徴によって、分散リポジトリ全体で1つのコードを作るというエネルギーが発生する。一方で(4)の特徴を使えば、あるノードを中心としてブランチコードをもっぱら開発することができる。収縮と発散の仕組みがうまくシステムに取り込まれていて面白い。

ところで(でくるで)、こういうツールのことを勉強するのって楽しい。なんかこう、ドラゴンボールで修行して強くなるとか、北斗の拳で新しい技を覚えるのとか、そういうのに似てる。新しい道具を使いこなせるようになると、自分が強くなるような気がしてそういうのが楽しいんじゃないかなと思った。
2008-02-08 09:29:41 / ふじさわ / Comment: 0 / Trackback: 0

2008-02-07

# Titchy Linuxで16GB CFを動かすカーネル

1月30日の日記で書いたように、Titchy Linux用のカーネルをサーバーに置きました。もしかして欲しい人がいるかもしれないと思って(まぁ半分は自分が後で必要になったときとかに)。

http://pikapika.to/~yf/download/zImage
http://pikapika.to/~yf/download/System.map
http://pikapika.to/~yf/download/2.6.20.tar.gz

zImageとシャープで配ってるupdater.shをSDカードに入れ、OKボタンを押しながら電源ON。これでカーネルが入れ替わります。起動してプロンプトが出たら、System.mapを/bootに置いて、次に2.6.20.tar.gz を/lib/modules/の下に展開。 depmod -ae -F /boot/System.mapしたほうがよいのかな? あ、これは後でカーネルだけ入れ替える場合の話。このカーネルを使ってTitchy自体をインストールするのは試していないのだけど、zImage.binにリネームすればインストールにも使えるんじゃないかなぁ。
2008-02-07 09:54:23 / ふじさわ / Comment: 0 / Trackback: 0

2008-02-05

# 日記

新山さんは面白いなぁ。Arcについて、書こうと思って*scratch*に書きはじめて、結局公開できなかったメモが手元にある。

 --

結局のところこういうことだと思う。つまり、プログラミングを学習するのには10年かかる。分かったつもりになっても、10年やってみないと見えてこないものがある。PHPがどういう言語かは、10年がすぎてから振り返ればよい。

 --

誰かが書いてた。PHPはBASICとC言語のあいだをとったような言語だって。面白いし同意だけど、個人的には、PHPはシェルスクリプトに似た言語だなと感じる。ビルディングブロックの直交性が低いので、プログラミングに大変気を遣うのだ。個々の関数や機能としてはそれなりなんだろうけど、どうにもそれらを組み合わせるのが難しい。PHPでは、なにが真実(True)でなにが真実でない(False)か理解するのが難しい。

 --

大学でコンピュータサイエンスを勉強したことは、無駄にはならない。ただ、たいていの学生は、そこでの学習経験が10年には足りない。だから会社に入ってからも、足りない部分を含めいろいろ学んでもらう必要がある。

それと、残念ながらコンピュータを用いた仕事の多くは、実際にはサイエンスというよりは工学か、悪くすればサービス業だ。サービス業にはサービス業のやりかたがあって、良くも悪くも、新人さんはその業態と会社について知っておいたほうがよい。

向き不向きや会社の善し悪しはあるけど、それは必ずしも悪い経験ではない。
2008-02-05 23:43:42 / ふじさわ / Comment: 0 / Trackback: 0

2008-01-31

# pxa27x_udc

Titchyのサイトからダウンロードしてきたソースには、pxa27x_udcのコードが入っていないみたい。パッチをあてなきゃだめっぽいぞ。

パッチhttp://pdaxrom.svn.sourceforge.net/viewvc/*checkout*/pdaxrom/trunk/patches-local/linux-2.6.21/armv5tel/151_usb_pxa27x_udc-r4.patch?revision=210

情報源
【ZERO3】リザぽん化プロジェクト 002【Linux】
http://pc11.2ch.net/test/read.cgi/linux/1185862665/101-200

110 :login:Penguin:2007/08/04(土) 22:36:11 ID:l7zCdX5Y
    >>80 開発乙
    なるほど、幾つか物はあるのか... > USB

    とりあえず漏れも調べた範囲で見つかったのを貼っとくお

    ttp://handhelds.org/cgi-bin/cvsweb.cgi/linux/kernel26/drivers/usb/gadget/pxa27x_udc.c
    handhelds.org の pxa27x_udc driver. 現時点で最終更新は 2007/7/11

    ttp://lists-archives.org/linux-kernel/13188261-pxa27x-udc-driver.html
    LKML に 2007/6/8 に流れた Rodolfo Giometti による 2.6.22-rc3 へのパッチ。

    ttp://lists.arm.linux.org.uk/pipermail/linux-arm-kernel/2006-September/035833.html
    linux-arm-kernel@lists.arm.linux.org.uk に流れた 2006/9 の pxa27x_udc の現状について

    ttp://www.rpsys.net/openzaurus/patches/archive/usb_pxa27x_udc-r0.patch
    2005/12 月の openzaurus の pxa27x_udc patch

    kernel patch が公開されたらこの辺をハックしてみたいにゃー 

143 :login:Penguin:2007/08/07(火) 23:08:48 ID:dKJ9qwit
    >>140 サンクス。こいつだな。
    ttp://pdaxrom.svn.sourceforge.net/viewvc/pdaxrom/trunk/patches-local/linux-2.6.21/armv5tel/151_usb_pxa27x_udc-r4.patch
    中身はざっと見た限りでは、 >>110 の OpenZaurus のやつを更新したやつか。
    いくつかの関数定義が変わっているのと、RNDIS 回りで関数が一つ追加されている。
    パッチの日付は2006/12/16 
2008-01-31 09:30:17 / ふじさわ / Comment: 0 / Trackback: 0

# Titchy Linuxで母艦とUSB接続

書き忘れていたのだけど、Titchy Linux用にカーネルをコンパイルしなおしてみると、母艦とUSB接続ができなくなっていたのだった。g_etherというモジュールをロードしてifconfigをすればつながるはず(元々のTitchy Linuxインストール状態では母艦とつながった実績がある)なので、これについてもカーネルのパラメータを調整する必要があるっぽい。で、今調べているのだけど。とりいそぎ有用そうなリンクが見つかったのでメモ。

まず、/var/log/messageに出るエラーメッセージは以下。

Jan 31 01:29:40 honoka kernel: ether gadget: using random self ethernet address
Jan 31 01:29:40 honoka kernel: ether gadget: using random host ethernet address
Jan 31 01:29:40 honoka kernel: usb0: Ethernet Gadget, version: May Day 2005
Jan 31 01:29:40 honoka kernel: usb0: using dummy_udc, OUT ep-b IN ep-a STATUS ep-c
Jan 31 01:29:40 honoka kernel: usb0: MAC 2e:48:aa:45:97:79
Jan 31 01:29:40 honoka kernel: usb0: HOST MAC 9e:65:cd:67:a2:d4
Jan 31 01:29:40 honoka kernel: usb0: RNDIS ready
Jan 31 01:29:40 honoka kernel: usb 1-1: new high speed USB device using dummy_hc
d and address 3
Jan 31 01:29:41 honoka kernel: usb 1-1: rejected 2 configurations due to insuffi
cient available bus power
Jan 31 01:29:41 honoka kernel: usb 1-1: no configuration chosen from 2 choices
Jan 31 01:29:41 honoka kernel: usb 1-1: 100mA is over 8mA budget for port 1!
Jan 31 01:29:41 honoka kernel: hub 1-0:1.0: 92mA over power budget!

「configurations due to insufficient available bus power」というキーワードをベースに調べてみて見つかったリンク。これはすごい。

Re: [linux-usb-devel] ethernet gadget problem
http://www.mail-archive.com/linux-usb-devel@lists.sourceforge.net/msg51030.html
OESF Forums [Powered by Invision Power Board]
  http://www.oesf.org/forum/index.php?act=Print&client=printer&f=155&t=24589

上記1つ目のリンクによると、Zaurusに搭載されているCPU(XScale PXA 272だっけかな?)用にパラメータを設定して、pxa2xx_udc.koというモジュールを作ってはどう?(そしてg_etherの前にロードしてみよ)ということらしい。たしかに、Titchyで配布しているzaurus-hardare-support.debには、pxa27x_udc.koというモジュールが含まれている。(ちょっとファイル名が違うけどこれだろう。)そしておいらがコンパイルしたカーネルにはこのモジュールができていない! くわっ!

以下はg_etherにかんする基本的な情報。

Titchy Linux/Tips - Wiki
  http://wiki.neilandtheresa.co.uk/Titchy_Linux/Tips
一般的なペーストビン - 無題 - ポスト番号 319910
  http://ja.pastebin.ca/319910
2008-01-31 08:36:34 / ふじさわ / Comment: 0 / Trackback: 0

2008-01-30

# TitchyでAIR-EDGE動くようになった!

カーネルを何度かコンパイルしているうちに、AX420Nが動くようになった! 
カーネルパラメータをいろいろいじったけど、結局のところ原因はカーネルパラメータではないような気がする。「unknown symbol」というエラーメッセージからPCMCIA関連を調べてみて、System.mapファイルが/boot/にインストールされていなかったことが原因なんじゃないかなぁと予想中。今動いているカーネルのソースを夜にでもサーバーに置くこと。>自分
2008-01-30 10:55:38 / ふじさわ / Comment: 0 / Trackback: 0
recent days<< | >>old days