2009/01/29

Ethna 2.5.0 preview3 announced

http://ml.ethna.jp/pipermail/users/2009-January/001096.html

前回のリリースから3ヶ月半あまり。本当は焼肉会議を踏まえた機能も含めたかったのだけれども、それをやっていたらリリース間隔が滅茶苦茶に開いてしまうので一旦区切ることにした。

11月後半から12月終わりまで全くコミットできず、かつ Overwork で体をおかしくしたりもした。それにもかかわらずここまで来れたのは、新しいコミッタ maru_cc, sotarok や、IRCで雑談してくれたり提案をくれたりした人達のお陰である。特に id:syachi5150 さんには、今回のリリースの目玉となった多次元配列コードを提供して頂いた

このリリースに関わった人達、また、見守ってくれた人達、全てに心からお礼を言いたい。ありがとう!

----

俺はある人に次のように語ったことがある。「今の Ethna は荒地のようなものだ。それを畑にするまではメンテを続ける」と。まだ畑とはいかないが、ペンペン草も生えなかった当時の状態よりは、大分マシな土地になってきた気がする。

今回、DBレイヤの抽象化には結局手がつかなかったが、preview4 では必ず先鞭を付けなければならない。他の人達の力もうまく取り込みつつ、よりよりモノを目指そうと思う。

Konversation KDE4 port Mock

(argnel) and so a roughly 119000 line diff
2009/01/29 08:32:44 *argnel topic : Yes, the KDE 4 port is in the works // No, there's nothing to use or see yet its in /braches/work/konvi-kde4, and it doesn't run)

----

ついにktkr! だけどまだ動きません。モックですから。早速ビルドしてみないとな。

2009/01/28

Ethna Yakiniku-Con(2)

http://ethna.jp/ethna-yakiniku-meeting-20090125.html
http://d.hatena.ne.jp/ichii386/20090126/1232911256

Ethna 焼肉会議が実際に開催された。コミッタ4人、ユーザ2人のこじんまりとした会議ながら、4時間以上に渡ってほぼ Ethna のことばかり話していた。参加した皆様、本当にお疲れ様でした。

中身のことを話せば、上記にある話はいずれも濃いものばかりだったけど、やはり「過去」を知るいちいさんが参加してくれたのが一番大きかったと思う。プラグイン、URLHandler の話では、いずれも「どういう思い、経緯で今のコードに至っているか」という根拠を踏まえた濃い話をすることが出来た。集まった人それぞれにモチベーションはあると思うのだけれども、コミッタの間で意識が共有できたのは決して無駄にならないはずだ。

その上でメタな話をすれば、やっぱり Ethna をこうしたいああしたいという「意思」を強く感じた会だったと思う。問題意識と言い換えてもいいだろう。それがある限り、プロジェクトが終わることはまずない。参加する前はいったいどういう会になるんだろうと思っていたが、それは全くの杞憂だったようだ。

まずは DBインターフェイスの抽象化をささっとやるべきである、と (*´~`)

[memo] arping(8)

IPアドレスの重複が疑われたら Linux では arping -D を使うとよい。Debian 系なら aptitude install arping でインストール可能だ。-D (DAD) mode でこのコマンドを使って返事が返ってくれば、重複していると判断してよい。

----

$ man 8 arping


NAME
arping - send ARP REQUEST to a neighbour host

SYNOPSIS
arping [ -AbDfhqUV] [ -c count] [ -w deadline] [ -s source] -I interface destination

DESCRIPTION
Ping destination on device interface by ARP packets, using source address source.

OPTIONS
... (snip)
-D Duplicate address detection mode (DAD). See RFC2131, 4.4.1. Returns 0, if DAD
succeeded i.e. no replies are received

2009/01/25

what is Japanese translation of "fork" ?(2)

http://www.producingoss.com/en/forks.html

まだ "fork" の訳には悩んでいる。

できうる限りカタカナの「フォーク」にはしたくない。geek にはカタカナのフォーク一語で済むのかもしれないが、俺や高木さんが相手にしているのは geek ばかりではない。職業的な開発者だって当然ありうるし、*nix のシステムコールを知らない開発者だってあり得るからである。

俺の中で一番しっくりくるのは「派生」または「分裂」、及び「分家」を可能な限り使い分けることである。そして、「フォーク」という用語しか当てはまらない場合は可能な限り別の言葉を選ぶか、「競合プロジェクトを立ち上げる」のように直接説明することである。

----

たとえば、 「code's fork」と言った場合、コードの「派生」はしっくりくるが、「分裂」は明らかに違う。fork はソフトウェアのコピーを持って新しいプロジェクトを立ち上げることであって、コードが真っ二つに割れるわけではないからだ。

一方で「project's fork」と言った場合は、開発者やリソースがわかれてしまうわけだから「分裂」がしっくりくる。人やリソースがコピーされるわけではないから「派生」ではない。

また、fork には、友好的なものもある。プロジェクトの進む方向性に対して相容れない部分が増えたために友好的にプロジェクトが「分かれる」こともある。

上記のリンクでは、「どちらが本家か、forkか」、という議論も行っている。たとえば、以下のような文だ。

since ultimately a project—or a fork—is an entity that exists only in people's minds anyway.(なぜなら、どちらが本家で - どちらが分家(fork)か - は最終的に人々の心の中に存在するものだからである)

この場合は「分家」がしっくりくる。もうこうなったら文脈に応じて訳し分けるしかないという気がする。

2009/01/19

Flickr

http://www.flickr.com/photos/mumumuorg/

Flickr を比較的真面目に使い始めた。

picasalivedoor picshatena photolife など写真共有サービスが数多く存在するなかで、Flickr はスーパー天邪鬼な俺が本来選ばないサービスだ。だが、friendship 的に(友達のみ公開の写真を使っている人が多いという意味で)使った方が都合がよいので選択した、という消極的な理由がある。

まあ、こうして写真をUploadし始めると写真撮りたくなってしまう不思議 (´ー`; )

#なんか相方が俺の裸体写真をこっそり撮っていた上にそれをうpしろと五月蝿い件

2009/01/18

Seagate Drive fails?

http://calves.jugem.jp/?eid=500
http://seagate.custkb.com/seagate/crm/selfservice/search.jsp?DocId=207931&Hilite=

Welcome, Seagate hard drive owners. A number of Seagate hard drives from the following families may fail when the host system is powered on:

Barracuda 7200.11
DiamondMax 22
Barracuda ES.2 SATA
SV35

Once a drive has failed, the data is inaccessible to users. Seagate has isolated this issue to a firmware bug affecting drives from these families manufactured through December 2008.

----

PCをパワーオンしたとたんに、ファームウェアのバグのために2008年12月までに製造されたSeagate製HDDの型番によっては、HDDが認識されなくなる可能性があるとのこと。該当する型番は上記リンクを参照のこと。

俺は割と Seagate ばかり選んで買っていたのだけれども。ただ、最近HDDを買ってなかったし、持っているのは2、3年前(もっと古い?)のモデルばかりだったのですべて難を逃れていた。。(´ー`; )

2009/01/17

Brahms: Hungarian Dance No.6

http://jp.youtube.com/watch?v=xCBsR4lO730

ベタかもしれないが、「ハンガリー舞曲 第6番」は大好きである。夜中に聞いて眠れなくなっても僕は知りませんからね!(2行独白)

※上記の動画には5番も含まれている。6番だけを聞きたい人は 3:05 あたりから聞くとよい。

Ethna Yakiniku-Con

http://d.hatena.ne.jp/sotarok/20090110/1231587632

Ethna 焼肉会議というのが sotarok によって発案された。別にカンファレンスってわけじゃないけど、Ethna を弄る意欲が[ある|あった]人 であれば誰でも歓迎されると思う次第れす (*´〜`)

OSS には新たな血液を常に入れつづけなければならない。一人の発想だけでメンテナンスしていたのでは必ずいつか進歩が止まる。それを避けるためには、意欲ある人をどんどん入れていくのが多分今の Ethna プロジェクトには最適だと思う。それが、 maru_cc や sotarok をコミッタにした狙いの一つでもある。その意味で、モチベーションがある人たちが一同に会することは意義があることじゃないかと思う。

----

とりあえず、現在思い描いている TODO をベースにして、
  • DB まわりの改善
  • 動的フォームAPI
  • URLハンドラ
については少なくとも話して来たいな、と思ったり。

Broadband router broken

ついに自宅のブロードバンドルータがイカれてしまった。外からサーバにアクセスすると一切応答しなくなったので、リンク切れか? と思って戻ってみると、以下の現象が。
  • DIAGランプが赤々と点灯していた(写真)
  • ローカルからWeb経由で操作しようとするとWebサーバが落ちる
  • 説明書によると「フラッシュメモリが読み込めない」状態
もうこれはダメだ、、と思い、無線LANの親機としても機能するブロードバンドルータを買ってきて置き換えた。いろいろと設定を元に戻し、無線LANも有効にしてそれなりのセキュリティ設定をするのに1時間半はかかった。。(´ー`; )

まあ、上記のやつは6年もってくれたわけだ。サーバを自前で持つノウハウを学ぶことを裏でずっと支えてくれた。ありがとう! と心から言いたい。

Overwork

2009年の初仕事を終えたあと、どうも体の調子がおかしい。PCに触ることがいろいろな意味でできなくなった。IRCができなくなった時点で俺はエンジニア人生終わりだと思っている(嘘)ので、医者に行ってみると「過労」と診断された。現在は処方された薬を飲みながら、フルパワー時のパフォーマンスの4割くらいで仕事をしている。

先月確かに普通じゃない働き方をしたのは確かだが、「心が壊れなければおk。心が壊れなければ体は壊れない」的な思考でいた。それが間違いだと気付いたのは、明らかな変調を来してからである。

「体はいいけど心がついてこない」、という人間は俺の業界に浴びるほどいる。自分はそうはならない、と思って来たのだが、逆の意味(体が壊れたという意味)でツケがまわってきたのは意外だった。これもひとつの教訓だろう。そう、酒の限界を知るときのように(違

----

こうしてブログが書けるということは、ちょっとは回復したということだろう。

情熱(モチベーション)は失ってはいない。但し、気負ってはいけない。
それが、一番大事なこと。

2009/01/09

[memo] Ethna Dynamic Form API implementation

超個人的なメモでつ(*´〜`)

Ethna は フォーム定義を以下のように固定で書くので、フォーム定義が動的に決まる場合にどこにそれを定義するコードを書けば良いかわからない、という問題が存在する。

var $form = array(
'sample' => array(
'type' => VAR_TYPE_INT,
'name' => 'サンプル',
),
);

現在は、prepare() に書いたり、Ethna_ActionForm の子クラスのコンストラクタに書いたりするしかないのであるが、現在の安定版では DBアクセス等のロジックを Ethna_ActionForm のコンストラクタに書くことができない。なぜなら、Ethna_Backend や Ethna_Session 等の、必要なオブジェクトが初期化されていないからである。

----

現状のtrunkでは、Ethna_ActionForm 初期化後に、DBアクセスのロジックが書けるように既に改造済みだったりする。なので、あとは動的にフォームを定義するフックを書くだけである。

実は、動的にフォームを決めるタイミングは以下のふたつがある。こいつらを一緒のフックにするわけにはいかないので、おそらく setD(ynamic)FormDef_[pre|post]Helper とかを定義するのだろう。なんかわかりやすいAPIの名前はないものか。
  • Ethna_ActionClass にアクセスする前に、Ethna_ActionForm を初期化した直後
  • View と連携するためのフォームヘルパを使うとき、Ethna_ActionForm を初期化した直後

jqModal: Minimalist Modaling with jQuery

http://dev.iceburg.net/jquery/jqModal/

jqModal は、いわゆる(モーダル)ダイアログをクロスブラウザで実現するための jquery plugin である。様々なフックを持ち、CSSによる見た目の改造も容易。かつAjaxにも対応していたりとかして、普通に使い勝手が良いのでメモしておく。

ただ、IE6 には以下の特別な考慮が必要だ。正直 IE6 死ねばいいのに、と思う。
あとは、ドキュメントと、デモにある豊富なコードを参考にすれば問題なく動いた。

2009/01/05

MX was down

MX が正月早々落ちて大変焦った。帰省中なのにリモートからの操作にまったく応答しなくなる。
巻き添えで内部DNSも落ちた。今日帰京してみたらHDDが死んでいた、、(´ー`; )

いつものようにknoppixでデータを救い出し、予備機にデータを移す作業に3時間を費やすハメに。新年早々サーバ管理は暗雲が漂う。440BX とかいう骨董品を騙し騙し使っているのだが、いい加減 MX 用にも新しいマシン組もうかなと思ってしまう。

2009/01/04

in Hiroshima

帰省中。年末年始はのんびりしながらコードを書くなどする。5日に帰京予定。

  • 12月31日 ガキの使いを見つつ年越し。あまり体調が良くなかったんで殆どコードは書けなかった。twitter のタイムラインを見る限りは、紅白を見ていた連中が多かったようだが俺はその中で空気を読まずにガキの使いの話ばかりしていた。
  • 2009年1月1日 帰省は翌日にする予定だったのだが、思うところあってこの日に切符を買って新幹線に飛び乗った。N700系はすこぶる快適で、コードの設計もうまくいく。
  • 1月2日 前日新幹線で考えたことをコードに書く。2、3コミットくらいしたと思う。初夢は見なかったというより記憶にない。
  • 1月3日 親戚廻り。帰宅後コードを書く。2コミットくらいしたと思う ← イマココ

多次元配列の取り込みなど、機能を複数加えたのと複数バグ修正したらもうお腹いっぱいかも。

----

帰省の目的は親に顔を見せるためなのだが、東京とは空気が違うのですこぶる居心地がよろしい。まああんまり長居するところではないのだが (*´〜`)

2009/01/01

New Year 2009

皆様、明けましておめでとうございます。本年もどうぞ宜しくお願い致します。
以下抱負(?)めいたものを。
  • Ethna 2.5.0 を出す
  • 本をちゃんと出す
  • 本業を組み込みにシフトさせる
  • コードを書くモチベーションの引き出しを増やす
----

最初の項目は、割と触っていてやりたいことが右往左往してたりするのだけれども、12月に区切りをつけた仕事で割と固まってきたので、あとは書くのみ。

2番目はまあ半分仕事でもあるので、きちんとやり遂げるだけ。クオリティーをどれだけ高くできるかが問題。Best を尽くすのみ。

3番目は、今のやり方で本業としてWebに関わることをやめる、というだけで、Webを追うことをやめるわけではない。要するに関わり方を変えるだけ。

最後が一番大事なことである。新しい技術を知ったり、試したりすればそのうち見つかるという説もあるが、きちんとコミットできるところまでいくのはそう簡単なことではない。まあ、何事も小さなことから始まるものだ。動かなければ何も始まらない。