CentOS 5.4 x86_64にmecabを入れようとしたら、yumリポジトリにrpmが用意されていない模様。
なので、ソースからrpmを作って入れることにしたのでそのメモ。
と思ったら先人の知恵(MeCabをyumでインストール@CentOS)を発見。
ビルドしたrpmをインストールしようとしたら、当然ながらGPG署名がされてないと怒られた。ので、RPMに署名する方法。
実は、一番の難所は、GPGの鍵を作るための、長〜いパスフレーズを作ることだったりする。作るためだけなら問題ないんだが、署名をRPMパッケージに追加するたびに入力を求められるので、簡単に、再入力できる必要がある。これが難しい。なんかいいフレーズはないものか。
あと、パスフレーズを入力した後に、暗号化を行うのだが、ここで暗号化のシードが必要になる。これがくせ者で、結局、コンソールからキーボードをかちゃかちゃやって鍵を生成した。ウラででかいファイルをダウンロードするとか、ある程度の時間にわたり、ディスクアクセスが発生するような作業をしていればいい、という話もあるが、こういう乱数のための種を生成する方法はなんとかならんもんか。
PHPの上で動いている、synfonyというフレームワークの上で動いているアプリケーションで、ウェブブラウザ上のFlexとサーバ側をおしゃべりさせたくて、SabreAMFという両者をつなぐAMFというプロトコルをしゃべるためのライブラリをsynfonyプラグイン化した、sfAmfPluginというものを使おうとして、つながらなくて四苦八苦してたんだけど、結局、sfAmfPluginのコードに見つけたバグを直したら動いたので、そのパッチを備忘録として。
$ diff plugins/sfAmfPlugin/lib/sfAmfGateway.class.php.old plugins/sfAmfPlugin/lib/sfAmfGateway.class.php 74c74 < $service_path = str_replace(".", "/", $service_name).".php"; --- > $service_path = str_replace(".", "/", $service_name).".class.php"; 84c84 < if(!class_exists(array_pop(explode(".", $service_path)))) { --- > if(!class_exists(array_pop(explode(".", $service_name)))) {
これでようやく先に進められる。
なぜか、PHP5.2上で動く、symfonyというフレームワーク上で作られた、OpenPNEというオープンソースなSNSをベースに、ちょっとしたものを作ってます。
で、このsymfonyというフレームワークは、propelというORマッパがデフォルトで採用されているんだけど、これ、インタフェース悪すぎ。
だって、ORマッパってことは、内部でSQLに変換してくれるためのもののはずなのに、propel経由でデータアクセスするためにSQLを考えて、それをpropel用コードに変換することを前提としてるっぽい。(symfony徹底攻略という解説本がそうなってるだけなのかもしれんが)
これじゃ本末転倒やんけ。
つーか、SQLで考えるんなら、そのままSQLで書かしてくれりゃいいのに。つか、RDBMSを隠蔽してくれるんなら、もっと気合い入れて隠さんかい。RDB屋さんがORマッパ作っちゃいかん、つーか。
これだからORマッパは嫌いだ。
ほんと、まじめに、ウェブアプリ用ODBラッパが作りたくなる。(そんな時間はない。)
それとも、doctrineだと、もっとちゃんとマッパしてくれるのか?
とある案件に絡んで、OpenPNE3環境の構築をここのところ、何度かやってるので、備忘録を兼ねて、構築手順をば。なお、MacOSX上でも構築はしたんだが、こっちは、プレインストールされているPHPのバージョンが古いのと、portsで配ってるバイナリパッケージはビルドオプションが腐ってるので、PHP5をソースから再インストールの必要あり。なので、とてもめんどくさい。普通に、PHP動かす分には問題ないんだろうけど.。でも、GDすら使えないPHPを配ってなんの意味があるんだ?と思わなくもない。でも、いちおう、MacOS上でOpenPNE3を動かすことはできたので、ベースとなるPHP5の再インストール以外がこのままのインストール手順で大丈夫です。
とりあえず、CentOSをターゲットとする。
僕の場合は、Mac上で動く、VirtualBoxにCentOS5.2をインストールした環境で確認している。
◎PHP5のバージョンアップ
CentOSでデフォルトで入ってる、なおかつ、デフォルトのyumで入手できる最新版は5.1.6、つまり5.1系であり、OP3で要求する5.2系が入らない。なので、yum-repoの設定から。
これで、少なくともPHP5.2系がインストールされたはず。
次に、PHPのパッケージマネージャである、PEARをセットアップする。
# pear upgrade PEAR
でもって、symfonyの配布元チャンネルを登録する。
# pear channel-discover pear.symfony-project.com
symfony をインストール
# pear install symfony/symfony
これで、symfonyが依存する別パッケージ(propelとか)も同時にインストールされるはず。
コマンドラインからsymfonyコマンドを叩いて、symfonyから使えるコマンドの一覧が表示されたら、インストール成功。
続いて、OpenPNE3をインストール。
いちおう、ここに、インストール方法が書いてあるので、この通りにすればいいんだが。
とりあえず、ここからzipパッケージを落としてきて、それを適当なディレクトリで展開する。
# unzip OpenPNE-3.0.2
# cd OpenPNE-3.0.2
ここで、インストールコマンドを走らせるんだけど、その前に、データベースに、openpne3用の入れ物を用意しておく必要がある。ここでは、mysqlを使ってるが、symfonyはデータベースを問わないので、postgreSQLでも、Oracleでも、好きなものを使ってかまわない。
# mysql -u root -p
mysql> create database openpne default character set utf8:
mysql> exit
あとで、OpenPNE3のインストーラで聞いてくれるので、データベース名はなんでもいい。
とにかく、OpenPNE関連のデータを格納するための器を用意する。テーブルも作る必要なし。インストーラがやってくれる。
これでデータベースを用意できたので、OpenPNEのインストーラを起動する。
先ほどの OpenPNE-3.0.2 ディレクトリに移動する。そのディレクトリに、symfonyというコマンドが用意されていることを確認した上で、
# ./symfony openpne:install
すると、データベースの種類とか、データベースにアクセスするためのアカウント情報とかホスト名、データベース名を聞いてくれるので、それに従って入力。
うまくいけば、テーブル生成とか、ごちゃごちゃ処理をして正常終了するはず。
次に、Apacheの設定。
外部からウェブアクセスした時に、Apacheで、ちゃんとURL通りにアクセスできるように、設定してあげる。なお、symfonyでは、mod_rewrite使いまくりなので、mod_rewriteがちゃんと動くように設定してあげればよい。
とりあえず、
# ln -s /home/username/OpenPNE-3.0.2/web /var/www/html/openpne
で、http://localhost/openpne/ でopenpne本体にアクセスできるようにリンクを張る。
続いて、httpd.confを編集する。
デフォルトでは、
AllowOrverride None
と設定の上書きが禁止されている。これを許可する。
AllowOverride FileInfo Options
これで、OpenPNEがあがるはずなので、あとは、ユーザをばんばん追加するなり、ソースコードをべろべろなめ回すなり、ガリガリ設定ファイルをいじるなりご自由に。
Linuxにオラクルをインストールしたので、備忘録を兼ねてメモ。
●まずインストーラをだますためのおまじない
Oracle for Linux(10g)がサポートしているLinuxのディストリビューションは、redhat-3, SuSE-9, redhat-4, UnitedLinux-1.0, asianux-1, asianux-2
/etc/redhat-releaseを書き換える
Red Hat Enterprise Linux AS release 4 (Nahant update 4)
ちなみに、インストール先は、CentOS5.2
●インストールDVDを自動マウントすると、noexecモードでマウントされるので、インストーラが実行不可能。よって、DVDの中身をローカルのディスクへコピーする。
本来であれば、autofsの設定ファイルを調べて、noexecフラグがたたないようにするのが筋なんだろうけど。
●libXpをインストール
これで、インストールが動く(はず)。
引き続き、PHP5のビルド。
% ./configure --prefix=/usr/local/php5 \
--with-apxs2=/usr/local/apache2.2/bin/apxs \
--enable-mbstring \
--with-zlib \
--with-openssl \
--enable-bcmath \
--with-bz2 \
--enable-calendar \
--with-curl \
--enable-dba \
--with-db4 \
--enable-ftp \
--with-gd \
--with-ttf \
--with-freetype-dir=/usr \
--enable-gd-native-ttf \
--enable-gd-jis-conv \
--with-gettext \
--with-jpeg-dir=/usr \
--with-png-dir=/usr \
--with-ldap \
--with-mcrypt \
--with-mhash \
--with-mysql \
--with-mysql-sock \
--with-ncurses \
--with-pdo-mysql \
--with-pgsql \
--with-pspell \
--with-readline \
--with-snmp \
--enable-ucd-snmp-hack \
--enable-soap \
--enable-sqlite-utf8 \
--enable-wddx \
--with-xsl \
--with-mysql
% make
% make check
# make install
諸般の事情により、Apache httpd 2.2をビルドしたので、そのメモ。
Apache本体をビルドする前に、APR(Apache Portable Runtime)をインストールする。
apr-1.3.3.tar.gz
% ./configure
% make
# make install → /usr/local/apr配下へ
% configure --with-apr=/usr/local/apr
% make
# make install
setenv LD_LIBRARY_PATH /usr/local/apr/lib:$LD_LIBRARY_PATH
と思ったが、結局、Apache2.2同梱のAPRライブラリを使えばOK。
結論としては、下記のとおり。
% ./configure --prefix=/usr/local/apache2.2/ \
--with-included-apr \
--with-ldap \
--enable-authnz-ldap=shared \
--enable-ldap=shared \
--enable-so \
--enable-maintainer-mode \
--enable-pie \
--enable-authn-dbm=shared \
--enable-authn-anon=shared \
--enable-authn-dbd=shared \
--enable-authn-alias=shared \
--enable-authz-dbm=shared \
--enable-auth-digest=shared \
--enable-isapi=shared \
--enable-file-cache=shared \
--enable-cache=shared \
--enable-disk-cache=shared \
--enable-mem-cache=shared \
--enable-dbd=shared \
--enable-bucketeer=shared \
--enable-dumpio=shared \
--enable-echo=shared \
--enable-example=shared \
--enable-case-filter=shared \
--enable-case-filter-in=shared \
--enable-ext-filter=shared \
--enable-substitute=shared \
--enable-charset-lite=shared \
--enable-deflate=shared \
--enable-log-forensic=shared \
--enable-logio=shared \
--enable-mime-magic=shared \
--enable-cern-meta=shared \
--enable-expires=shared \
--enable-headers=shared \
--enable-ident=shared \
--enable-usertrack=shared \
--enable-unique-id=shared \
--enable-version=shared \
--enable-proxy=shared \
--enable-proxy-ftp=shared \
--enable-proxy-connect=shared \
--enable-proxy-http=shared \
--enable-proxy-ajp=shared \
--enable-proxy-balancer=shared \
--enable-ssl=shared \
--enable-distcache \
--enable-optional-hook-export=shared \
--enable-optional-hook-import=shared \
--enable-optional-fn-import=shared \
--enable-optional-fn-export=shared \
--enable-static-support=shared \
--enable-static-htpasswd=shared \
--enable-static-htdigest=shared \
--enable-static-rotagelogs=shared \
--enable-static-htdbm=shared \
--enable-static-ab=shared" \
--enable-static-checkgid=shared \
--enable-static-htcacheclean=shared \
--enable-static-httxt2dbm=shared \
--enable-http \
--enable-dav=shared \
--enable-info=shared \
--enable-suexec=shared \
--enable-cgi=shared \
--enable-cgid=shared \
--enable-dav-fs=shared \
--enable-dav-lock=shared \
--enable-vhost-alias=shared \
--enable-imagemap=shared \
--enable-speling=shared \
--enable-rewrite=shared
途中、APRからのLDAPライブラリへ参照できない、とかのエラーが出たが、-enable-soのオプションが抜けてたのを追加するとOKになった。
あと、それぞれのプラグインを有効にする際に、上記のように、=sharedをつけないと、静的にApache本体にリンクされるので、必要以上にバイナリサイズが大きくなってしまう(ことをすっかり忘れてたのでメモ)。
汎用連想計算エンジンGETAのインストールメモ。
なお、最新は、GETA3で、これは、全文検索エンジンでいう、転置ファイルに相当するものを複数のマシンに分散して配置できる、つまり、1台で賄えないような巨大な転置ファイルを扱うことができるという、すばらしいものではあるが、動きが怪しいし、とりあえず、分散化の予定がないので、GETA2を採用。
% ./configure --prefix=/usr/local/geta --with-gmake
--with-gmakeのオプションを設定しないと、デフォルトでpmake用のMakefileを生成してしまう。(今となっては、デフォルトがpmakeってどうなのよ、とは思うが。)なので、GNU make用のMakefileを生成するために、このオプションを設定する。
○testsuite/tst.c のコンパイルでこける。
これは、ヘッダファイル、varargs.h をインクルードしているのが原因。最近のバージョンのgccだと、varargs.hはサポートしていなくて、stdarg.hをインクルードする。なので、このインクルードのファイル名を変更する。
○make installしても、ci.confがインストールされない。(Makefileのバグ?)
tutorial/wam/ci.confから/usr/local/geta/etcにコピーする。
○そのままじゃ、Perlバインディングのライブラリがインストールされないみたい。
% cd ext/wam
% perl Makefile.PL
% make
% make test
# make install
以上でたぶん、おっけー。
ちなみに、GETAを動かすには、解析ターゲットとなる文書群に対し、自前で形態素解析をして、上記でいう、転置ファイルを生成するためのデータ(単語出現頻度ファイル)を作らないといけないんだけど、形態素解析には、 mecab+Perlインタフェースを用いた。
また、ターゲット文書は今後増加の一途をたどることになっているので、ターゲットファイルごとに、独立に、頻度ファイルを生成しておいて、それを全て連結する形にした。
さらに、ちなみに、形態素解析による頻度ファイルの生成については、名詞のみ、かつ1文字名詞は省略。
MeCab用辞書データの自動更新の仕組み作りについては、別の機会に。
典型的な
○別途プロパティファイル
modules.list=真木よう子,大橋未歩,瀬戸朝香,黒木瞳,小西真奈美
○build.xml
........XXXXターゲットの処理本体......
]]>
大橋未歩は女優じゃない!という突っ込みはなしで。
あと、本当に、リストに多バイト文字列が入ったときに、ちゃんと動くのかどうかは未確認。
とりあえず、既存のソースツリーをgitで管理し、共有するためのリポジトリ作成手順。
まずはローカルに個人用リポジトリを作る。
1. リポジトリの器を作る。
% mkdir YokoMaki
% cd YokoMaki
% git init
2. ソースコードをそこへ展開する。
% tar zxvf YokoMaki.tar.gz
3. git管理下へ
% git add .
% git commit -m "Yoko Maki First Commit."
4. ローカルのリポジトリを別の場所に複製する。
# cd /var/gitrepo
# git clone --bare /personal/local/repos/YokoMaki YokoMaki.git
5. gitデーモンに公開用であることを知らせる
# touch YokoMaki.git/git-daemon-export-ok
6. 公開場所へ移動
# mv YokoMaki.git /var/www/html/.
7. サーバ情報を更新
# cd /var/www/html/YokoMaki.git
# git --bare update-server-info
# chmod a+x hooks/post-update
これで、HTTP経由でアクセスできる。
あとは、ローカルの別マシンでも、同じマシンからでも、クローンして持ってくればいい。
% git clone http://server.address/YokoMaki.git
これで、別のローカルにも、gitリポジトリが生成された。
まぁ、分散リポジトリだし、全てのクローンがあくまで対等(つまり、ピア)である、というのが、gitのウリの1つではあるんだが、やはり、マスターサーバはこれ、って決めておいて、あとは、バックアップがいっぱいあるから、サーバ死んでも平気、ぐらいが扱いやすいような気がする。
ってことで、下記は備忘録。
| Pragmatic Version Control Using Git | |
![]() | Travis Swicegood Pragmatic Bookshelf 2008-12 売り上げランキング : 81023 Amazonで詳しく見る by G-Tools |
| Pro Git (Pro) | |
![]() | Mario Danic Apress 2009-02 売り上げランキング : Amazonで詳しく見る by G-Tools |
すごすぎる。軽すぎ。グーグルサービスの起動速すぎ。もう、レッサーパンダ、すて(かも)。
ソフトウェアのアーキテクチャとして、どかっと1プロセスで数百メガのメモリを(結果として)取っちゃうこれまでのブラウザより、小さいプロセスごと数メガレベルのメモリを確保して、OSのプロセススケジューラに任せちゃう、って方が実は安全で軽い、ってことなのかも。
苦労してスレッドプログラミングしても。。。。。ってことなのか。
そんなことも考えてしまう、衝撃なのである。
さっさと、Linux版リリースしやがれ。
取り急ぎ。
なんか、あちこちで、明日、グーグルがウェブブラウザをリリースする、って話が出てますが、グーグルクロム? なんだクロムか。ってことは、Mozillaなり、Firefoxなりのベースはそのまま、クロム部分だけオリジナルに差し替えたもの、ってことなんじゃないの?
まぁ、確かに、わざわざゼロベースで新しいブラウザ作んないよな、いまさら。
あー、でも、クロム入れ替えたら、見た目には、全く新しいブラウザってことになるのか、一般的には。
個人的には、ブラウザ丸ごとリリースするのか、それとも、クロム(つまり、XULファイル群)だけをパッケージしたものをリリースして、Firefoxなりにアドオンして使うようになるのかってあたりにすごく興味があるが。。。
この、クロムのパーツが流通するのって、当初のXULが目指してたもんじゃなかったっけか?
僕がかつて、Mozilla関係のドキュメントをせっせと翻訳したり、某雑誌にMozillaのGUIをいじって(見た目)オリジナルブラウザを作っちゃえ、なんて記事を書いたりしてたころ(まだミレニアム前だったはず)。あのころは、まだWebベースの業務システム開発の黎明期。そんな業務用ウェブアプリケーションの開発の中で、「自由にページを戻ったり、リロードしたり、ってことをさせたくない。なんとかなんねぇ?」みたいな要求仕様があったりした。自由にさせたくなければ、ブラウザ使わずに、専用GUI作ればいいじゃん、って話もあったんだけど、そのころに、クロムをいじった専用ブラウザを用意して、しかもそのクロムをオンラインでダウンロードさせて、それをクライアントにすりゃいいんじゃね?みたいなことを友人M氏と議論したことあるんだけど、思えばここまでくるのに、長かったねぇ。XULばんざーい。
とまぁ、昨晩は憶測でいろいろ書いたんだけど、その後いろいろ情報を集めてみると、やっぱり、自前でブラウザを作りこんだみたいね。安定性を求めて、タブ=スレッドな今のアーキテクチャをやめて、タブ=プロセスだとか。
まぁ、グーグルの立場としては、Gmailとか、Googleカレンダーとか、Google Docsとか、基本的に立ち上げっぱなしなタブが必要なので、いちいち、他のスレッドの不具合で巻き添えを食らってブラウザまるごとダウンに付き合ってられるか、ってことなんだろうけど。
タブがプロセスになるってことは、プロセス間通信が多発して、今よりメモリ食うってことじゃん。
無駄を省いた、きびきび動くクールな実装を期待。
どうせ、グーグル(Mail, カレンダー,Reader,Docs)に依存してしまっている以上、クロムでないと、ってことになるんだろうから。
XUL部分とかスキンとか、あとJavascriptも、Firefox互換だとみんなうれしいよね。
上記のCult of Macの記事によると、ベータ版だからそこそこバグはあるものの、速くていいよ、みたいな論調みたい。
なので、ためしにインストールして見ました。
が。
WindowsXPをインストールした、Thinkpad X31で試したのですが、スクロールボタンが効かない。なので、私的には、パフォーマンス云々以前に、使えませんでした。
つーか、レンダリングにも、メニューにも日本語でねぇじゃねーか。>アップル
とある用途のために、某サイトから自動でコンテンツを引っ張ってきて処理をするプログラムを書いている。
概要が、以下のとおり。
対象サイト:Windows上で動くウェブサーバ
当然ながら、コンテンツの記述は、"Shift_JIS"
処理プラットフォーム:CentOS(当然ながら、UTF-8環境)
開発言語:Perl 5.8.X
やりたいことは、対象サイトからコンテンツを引っ張ってきて、URLを切り出し、アンカーテキストとペアで、ローカルのDB(MySQL)に突っ込んで、あとから使いまわす、というよくある話。
問題は、URLに2バイトコードが入り込むこと。
まず、LWPでUserAgentを作ってコンテンツを引っ張ってくる。、当然、持ってきたものはUTF-8に変換する。
で、必要なテキストを切り刻んで、取り分ける。URLは、一旦SJISに戻して、URLエンコーディングして処理。アンカーテキストは、そのままUTF8として処理。
すると、生成された、「URLエンコーディングされたURL文字列」は、上記とは別に、該当サイトへウェブブラウザ上でアクセスする際に自動変換されて生成された「URLエンコーディングされた文字列」と差異が生じる。
結果、404エラーが返される。
ん?
URLエンコーディングするには、
SJIS文字列→URLエンコーディング文字列
UTF−8文字列→URLエンコーディング文字列
の2パターンがあるとして、得られるURLエンコーディング文字列は別物のはず。
でも、URLを指定するのに、そのサイトで用いられているエンコーディングを意識しないといけない、というのは、やっぱり正しくないような気がする。
うーん、わけわからん。
どっかに、スマートなソリューションないかな。
あと、巷でよくある、URLエンコーディングを行うためのコードとして、
$str =~ s/([^\w ])/'%' . unpack('H2',$1)/eg;
$str =~ tr/ /+/;
$str =~ s/([^\w \(\*\-\.\@\_\)])/'%' . unpack('H2',$1)/eg;
・ config/environment.rb
ENV['RAILS_ENV'] ||= 'production'
のコメントをはずす
・ XXXX/public/index.html にアクセスしたときに呼び出すコントローラを指定する
・ config/routers.rb
map.connect '', controller => "*******"
・httpd.conf の修正
Alias /XXXX/ "/var/www/html/*****/public/"
Alias /XXXX "/var/www/html/*****/public/"
Options ExecCGI FollowSymLinks
AllowOverride all
Order allow, deny
Allow from all
これで、ようやく動いた。
忘れないようにメモ。(CentOSってなんでrubyが古いの?)
・rubyの最新(V.1.8.4)を入れる
(略)
・gemsを入れる
(略)
・ railsを入れる
# gem install rails --include-dependencies
・入ってなかったら、httpd-devel パッケージを入れる
(略)
・ FastCGI Development kit を入れる
(略)
・ mod_fastcgiを入れる
# tar zxvf mod_fastcgi-2.4.2.tar.gz
# cp Makefile.AP2 Makefile
# vi Makefile (<- apacheのインストールディレクトリの設定)
# make
# make install
・ ruby-fcgiを入れる。これは、なぜかgemではインストールできなかったのでマニュアルで。
# tar zxvf ruby-fcgi-0.8.6.tar.gz
# ruby install.rb config
# ruby install.rb setup
# ruby install.rb install
・ /etc/httpd/conf/httpd.conf に追記
LoadModule fastcgi_module modules/mod_fastcgi.so
<IfModule mod_fastcgi.c>
FastCgiIpcDir /tmp/fcgi_ipc/
AddHandler fastcgi-script .fcgi
</IfModule>
・ Apacheを再起動
# /usr/sbin/apachectl restart
リリースされたみたいなので早速インストール。
コントロールキー連打で、検索窓アップが気持ちいい。
こうやって、グーグルがないとやっていけないカラダになっていくのよねぇ。
でも、Google Newsのイベント通知はちとウザイ。
それにしても、インデックス作成が終わらん・・・
〜 via オレンジニュース(2006/3/20) 〜
OWASP(The Open Web Application Security Project)日本語訳「安全なWeb アプリケーション構築の手引き」(PDF)
Yahoo!ニュース - +D Mobile - ドコモ、iモードをギネスブックに申請──1時間で7千万通のメールに対応
確か、ドコモのiモードセンタが1日に処理するメールの量が、9億通で、そのうちスパムをはじいて実際に送信されるのが1億5000万通とか、って数字を昔どっかで見たような気がするんだが。
その当時から比べても処理量を増強したってことですかね。
一説には、「流通しているメールの8割以上が『迷惑メール』」、米調査という話だから、実際には、この4倍のメールを捨てるという処理をしてるってことなんでは?
Prefix Delegationが必要なので、DHCPv6を構築してるんだが、(WIDEのdhcp6)
設定ファイルの書き方がわからん。いろいろサンプルとかmanとかはあるんだが、ちょろっと書いたとたんSYNTAX ERROR。
設定ファイルの書き方を調べるために、ソースコードのYacc記述を追いかけるのって間違ってるような気はするんだが。。。
ターゲットは、FreeBSD-5.4-RELEASE
ドライバはデフォルトで入ってる模様。USBメモリを突き刺すと自動で認識し、
Jan 19 hh:mm:ss uuuuu kernel: umass0: Neodio Technologies Corp. Neodio USB Storage Device, rev 1.10/1.00, addr 2
Jan 19 hh:mm:ss uuuuu kernel: da0 at umass-sim0 bus 0 target 0 lun 0
Jan 19 hh:mm:ss uuuuu kernel: da0: 1.000MB/s transfers
Jan 19 hh:mm:ss uuuuu kernel: da0: 125MB (256001 512 byte sectors: 64H 32/T 125C)
% su
# mkdir /mnt/usbmem/
# /sbin/mount_msdosfs /dev/da0 /mnt/usbmem/
(ごにょごにょする。)
# umount /mnt/usbmem/
ニュース番組によると、1日当り、450万取引がシステム上の上限であり、今日430万取引を超えた時点で停止したとのこと。
普通、システム上限というなら、秒間X取引が性能限界という表現をしてくれんとよくわからん。さらに売買注文は処理できても、約定が処理できん、とか。あ、そっか、売買注文は、リアルタイム処理だけど、その後ろの約定処理が、バッチで処理してる、ということか。そのバッチ処理が一晩で処理しきれるのが、450万取引が限界、ということなのかな。
なーるほど。
まぁ、どっちにせよ、律速段階は、DBへの書き込みなんだろうけど。
Sun Java System Application Serverをいじり中。
ウェブからマウスでクリクリいじると使った気になれるらしい。
(デプロイなんて退屈な作業、スクリプト1発でコンピュータにやらせようよ。。。)
どなたか、ドメイン起動/停止に伴うロックファイルのありかをご存知ありませんか?
起動しようとすると、「そのドメインはすでに動いてるよ」、停止させようとすると、「そんなドメインは動いてないよ」と怒られます。なので、ロックファイルの残骸が悪さしてるんじゃないか、と。
最近、Web2.0回りの話題がとっても活発。
ずばりな名前の会社もできたみたいだし、いろんな動きもある。
でも、なんかもともとの話とずれてきてるような気もする。
もともとは、ティム・バーナーズ・リー卿が提唱した、セマンティックWebのことだと思ってたんだが、なんか最近の論調だとWebサービスとの違いがよくわからないような、そんな感じ。
ちゃんと、調べなきゃ。
IPv6style:KAME プロジェクトの歴史と成果
〜 via 無印吉澤
おもしろい!
ぜひとも、プロジェクトX(あ、もう終わりやんか)、もしくは、あのコードラッシュ の第2弾として是非、ドキュメンタリー化してほしいなぁ。 次代のプログラマのためにも、情報化社会(くさっ)を支える戦士たちを称える番組がほしい。
ソフトウェアの開発がいとも簡単に人さえ大量に投入すればできるような風潮をひっくり返すようなものを。
おじさんたちが昔を懐かしむ番組もいいけど、今現場で現実に起こっているドラマを伝える努力をしてもいいんじゃないかと。> 某国営放送。
って、今、中国で大流行なのかしら?
最近、いきなり話しかけてくる中国人がとても多い。たいていは、日本語勉強してますというパターン。
なので、中国語で会話することはなくて、日本語と英語でコミュニケーションは取れるので、特に問題はないのだが。
最悪は、インフォシークの日中翻訳を使えば、なんとかなる。
Google社謹製のインスタントメッセージ。これ以上、IMソフトを増やしたくはないんだが。。。
ってことで、いつものように反応は鈍いですが、tkaneda@gmail.comまでご遠慮なくどうぞ。
あとは、移動機ネイティブなSkypeバイナリを配っちゃうと、音声通話最小限、パケホーダイ契約でOKってことになっちゃったりするのでは。。。でもそうなると、今度は、HTTPつなぎっぱなしで、バッテリーが持たんなぁ。となるとSkype待ち受けプロキシ兼プレゼンスサービスってこと?
次のFireFoxとなる「Deer Park」の最初のアルファ版が公開 (MYCOM PC WEB)
とりあえず、これまで使ってた最新のFirefox(1.0.4)と比較しても全く違和感なく使えてます。つーか、見た目的には区別つかねぇ。。。アルファ版とは言え、安定してるっぽいです。つーか、全く落ちてませぬ。まぁ、しばらく常用してみます。
本日の日経新聞7面に「OSに互換性 マイクロソフト サン提携第1弾」っつー見出しがあって、WindowsとSolarisで互換性を持たせるらしいことが書いてあるんだけど、これ何?ご存知の方、教えたもれ。何を持って互換性と言ってるのやら。。。
Apacheにmod_auth_ldapを組み込めば、認証にLDAPを使うことができるようになる。
が、これで対応しているのはBasic認証のみ。Digest認証で認証情報のリポジトリにLDAPを使うようなモジュールってないの? ないとすれば、なぜ?
初めてFedoraを入れてみた。なかなかいいんじゃないでしょうか?とりあえず、リモートからtelnetしたら手元のクライアントがUTF-8に対応できてなかったこと以外は問題はまだ発生せず。
へぇ、テキストチャット同時に50人OKですか。。。業務用にIRCサーバ立てる必要ないなぁ。あとは、ボイスチャットの同時接続数が増えれば、テレカンファレンスに使えるので、うちのような蛸足多拠点企業にはとても便利なんだが。
各CPUの独自エクステンションを考慮した最適化コンパイルが施された非公式ビルド版。公式版とは速さの違いが体感できるレベルまで最適化されています。今のところ問題なくさくさく動いてます。
JSF, Spring, ORマッピングによるJ2EE Webアプリケーション開発の手引書
〜via オレンジニュース 2005/01/04〜
JSF, Spring, ORマッピングによる
J2EE Webアプリケーション開発の手引書
Subversionをいじりだした。
Apache Portable Runtime(APR)を入れて、Berkeley DBを入れて、Subversionをインストール。リポジトリ作成まではうまくいくものの、いざソースのツリーをインポートしようとすると、
svn: Berkeley DB error while fetching string length for filesystem /var/svnrep/db:
DB_BUFFER_SMALL: User memory too small for return value
Berkeley DBのバージョンを最新の4.3.21だったのを4.2.Xに戻してsubversionを作り直したら、うまくいってるみたいです。
〜via kdmsnr@mixi 〜
MSDN TV
Software Factories: Assembling Applications Using Models, Patterns, Frameworks and Tools
なんか、これまでのRCとかそれ以前に比べても、1.0ってクオリティが低いような気がするのは気のせいですか? 動作が安定しない、というか、マウスのクリックイベント拾えないというか。なんか、動作が変なんだよねぇ。HTMLのレンダリングのパフォーマンスがすばらしいものに仕上がってるだけにもったいない。残念!
GmailがPOP3サポート、ウイルス対策も提供へ GoogleはPOP3サポートに加え、ウイルススキャンもGmailに追加する準備を進めている。JavaScirpt未搭載のブラウザでも利用可能にする計画もある。(IDG)いや、欲しいのはそうじゃなくって、POP3 over HTTP、SMTP over HTTPなんですけど。。。 ただのPOP3だったら、社内からアクセスできんから意味ないでしょうが。。。
↑ は、FireFox1.0のデフォルトホームページ。
さて、1.0が予告どおりでました。
が、 1.0RC1,RC2と比べてもHTMLのレンダリングが速くなってるような気がするのは気のせいですか?
昨日から、使ってますが、
とりあえず、GoogleBarが使えなくなったのが痛い。あと、クリックが効かない。何で?(右クリック→新しいタブで開く だとOK)
それと、終了してもプロセスが残ってしまうので、再起動すると、プロファイルのロックに引っかかる。
いまいち。。。
高校生が学校のPCを使ってクラスタシステムを組んじゃったらしい。
果たして、我が社のエンジニアたち(自分も含めて)は、この高校生と比べて、対価を得るだけの付加価値を提供できているのだろうか。
久しぶりに、5人、inviteできるようになりました。
ご希望の方は、オンライン、オフライン問わず、tkaneda@gmail.comまでお問い合わせください。
希望者多数でご要望に添えられない場合は、ごめんなさい。
あー、私のお知り合いかどうかは問いません。これを機会にお知り合いになりましょう。
Skype
kazaaが技術的ベースになっているらしい、P2P音声チャット。
あちこちで見かけたので、気になって入れてみました。
どれぐらいの音質なのか楽しみ。これがかなり使えるとなれば、それこそ、電話いらないですな。
まぁ、オンラインで生活が閉じるわけではないので、社会生活上、いらんとは言い切れませんが。
で、これなんて読むんでしょう? すかいぷ?すかいぺ?すきゅーぷ?
多数のご応募、ありがとうございました。当選者の方は、こちらからご連絡を差し上げています。残念ながら、こちらからご連絡を差し上げていない方、ご希望に添えなくて申し訳ございませんでした。また、機会がございましたら、宜しくお願いします。
最近、あちこちでGMailのinviteの話をよく見かけるようになったなぁ、と思ってた。確かに僕のアカウントでも、ここ数ヶ月、inviteができるようになってたんだけど、人数制限があるのを知らなかったので、なんだ、もう事実上、誰でも使えるのか、ぐらいに思っていたら、実はinviteできる人数に制限があることがわかった。ってことでどうやらあと4人の方をご招待できるようです。ご希望の方いらっしゃいますか? 欲しい人、オンライン、オフライン問わず連絡ください。なお、申し込み者多数の場合は、抽選とさせていただきます。当選者の発表は、メールの発送をもって替えさせていただきます。
人名用漢字追加 「苺ちゃん」「牙君」などOKに
MySQLはやはり手軽だ。システムとしてシンプルだし何より軽い。これが、Webアプリケーションの後ろで手軽に動かすのに好都合(現場の部門等でとりあえずデータベースサーバでっち上げちゃえという場合、マシンパワーが貧弱なものしかない、というのが現実だ。え?うちの会社だけ?)、というのがMySQLに目を向けさせる一番の理由だろう。でも、MySQLって最近のバージョンだと、トランザクションサポートしたんだっけ?今までは、これがネックで僕はRDBが必要になった場合は、PostgreSQL派でした。トランザクションが実装されたのであれば一考の価値ありだと思います。
あなたが最初にインストールする10のプログラムは何? コメント、トラックバックどうぞ。
面白い!順不同ですが。
1. Lhasa (Archiver)
2. Firefox (Browser)
3. cygwin (shell)
4. Meadow (Editor)
5. JRE (Java Runtime)
6. smartdoc (Document Formatter)
7. AltIME(キーボードカスタマイズ)
8. Acrobat Reader (PDF Viewer)
9. MSN / Yahoo Messagner( IM )
10. FFFTP (FTPクライアント)
-----------------------------------
番外編:
11. SSH(SSH, SFTPクライアント)
12. DiCE(Dynamic DNSクライアント)
13. TeX関係、WinShell(Document Formatter)
ってな感じかな?偏りすぎてるな。改めてこうしてみると、エンジニアじゃなくなってるな...つーか、Windows上ではコードは書かない主義なので(と、逃げておく)。
あ、あと最近だと、iTunes はジュークボックスとして必須。
Spring Frameworkのリファレンスを眺めてたら、「Dependency Injection」という言葉か結構使われている。元々Springって「Inversion of Control(IoC)」という言葉を使ってたはずで、これをオレはそれを「Dependency Injection」と呼ぶねと言ったのはマーチンファウラーだったはず。 ひょっとしてロッド・ジョンソンもこのファウラーのアーティクルを読んで、呼び方を変えたんだろうか?
と思ったら、ちゃんとこのリファレンスに、マーチンと話して、名前を変えることにした、みたいなことが書いてあった。 やっぱり皆さん、仕事が早い。
仕様書の是非がテーマ。なんか、僕からしたら仕様書というものに対して真面目に取り組みすぎてるような気がする。もちろん、仕様書というものをないがしろにしろ、と言ってるわけではない。あくまでも仕様書は仕様書でしかない、ということだ。
この人は、かなりプログラミング技術に長けたいわば職人的なタイプなんだろう。仕様書作成が無駄だと言い切り、社内会議をくだらないと切り捨てる。こういう人はおそらくプロジェクトとしてはお荷物なんだよね。仕様書とか会議の本質が、コミュニケーションにある、ということが理解できていない。もちろん、これを作れば完璧です、なんて仕様書なんてありえないし、そういった仕様書を作ることも不可能だ。別に100%の完璧な仕様書なんてものを目指す必要はない。所詮、仕様なんてころころ変わるんだ。8割方できてれば十分なんではないだろうか。その辺の「いい塩梅」具合を調整するのが腕ってもんでしょう。(前略)それになにより、無駄な仕様書作成やらくだらない社内会議などは貴重な時間を浪費させ「楽しいものづくり」を楽しくないものにしている。これらは無能な管理職が、自分が仕事をしたつもりになって自己満足に浸るだけの道具に過ぎず、本来は必要のないもの。
この人もおそらくモノを作る側の立場にたったkとがないからこんなノンキなことを言ってられるのでしょう。本題からそれますが、「無駄な仕様書」など存在しません。無駄だと思うのは、仕様書としての機能を満たしていないからではないでしょうか。仕様書を作成することではなく、「仕様書作成の仕方」に問題があるように思われます。
さて、仕様書というとすごくあいまい(だと思う)ので、分けて考えたい。まずは、発注者側のウィルを書いたもの、これをここでは「要求記述」と呼ぼう。 それに対し、その要求記述に記述されたものをさらに具体化、限定化し、「何を作るか」を記述したもの。これを「ゴール記述」と呼ぼう。 おそらく発注者が「こんなん作って欲しいんやけど〜?」というものを「要求記述」に書き、それを受けて開発側が、「つまり、これを作ればいいんですな」という回答を「ゴール記述」として書く。世の中の「仕様書」と読んでいるものはおそらくこの両方が様々な粒度がごちゃ混ぜに一つのドキュメントとして記述されてあるものだと思う(僕の経験上からも)。例えば、Webアプリのようなもので考えると、「要求記述」には、「24時間365日連続運転」というものが記述され、それに対し、「ゴール記述」には、「MTBF**分、稼動率99.9%を確保する」みたいなものが書かれるようなイメージ。
この2つのドキュメントをやり取りすることで、お互いの「求めるもの」と「その求めたものに対しての応え」が取り交わされる。まず、ここをはっきりさせずに先に進捗を進めようとするからあいまいになってしまう。つまり、発注、受注というものを2つのシステムとして考え、それらの間をいわゆる「仕様書」というプロトコルでネゴシエーションを取るようなイメージ。以前にも「仕様書」というものをインタフェースとする「発注者」「受注者」というアクターを考えた。ここでの議論のネックは、「ビジネス」という観点における、「リスクヘッジ」と「責任の所在」であった。つまり、現状の「仕様書」という1つのドキュメントをやり取りすることで、発注者は、この「仕様書」を最大限に拡大解釈したがるものだし、受注者は、その反対に限定的にその意味を捉えようとする。つまり、これは、「仕様書」という1つのドキュメントで合意を取ろうとするからこそ発生する問題だ。であれば、その仕様書を2つに分ければいい。
ってなところで、続きはまたの機会に。
そして、次の言葉も的を得ていると思った。
[dgcr.com]デジクリバックナンバー
見えないものや、
手に取れないものだがお金を支払うというケースは、労働の対価であることが
ほとんどだ。デザインや情報の内容・質自体には、どんどん値段が付かなくな
っている一方、労働には確かな値付けがなされるようになってきている。
Sun releases tutorial for J2EE 1.4
PDF版で1500ページだそうです。多すぎです。このボリュームでは辞書代わりにしか使えません。将来のJ2EEチュートリアルは200ページ*1くらいで書けるように簡単にならないといけないです。
でも、今までのチュートリアルも、確か800ページ強あったしな。
PCでテレビ番組を録画した後の処理手順のメモ。
1. MPEG2ファイルをDVD2AVIに読み込ませ、メニューから[File]→[Save Project]を選択して適当なファイル名で保存。
〇[File]→[Save AVI]でないのがポイント。何の設定もしてないがここはMPEG2対応のための処理なのでこれだけ。
〇仮に、「嘉門達夫ライブ.m2p」を処理したとすると、「嘉門達夫ライブ.d2v」(プロジェクトファイル)と「嘉門達夫ライブ MPA T01 DELAY -66ms.mpa」(音声ファイル)ができる。
2. TMPGEncで映像ソースに「.d2v」を、音声ソースに「.mpa」をドラッグ&ドロップして設定ボタンクリック。
〇ビデオタブ:
サイズ: 704×480 に。元の映像は720×480だが、大抵左右の端に黒い部分があるのでそれを除去する。
レート調整モード: 自動可変レート(CQ_VBR)
品質: 100
最大ビットレート: 100000 kbit/sec
最大ビットレート: 10000 kbit/sec
動き検索精度: 最高画質(最低速)
〇ビデオ詳細タブ:
画像配置方法: 画面全体に表示(アスペクト比保持)
ソースの範囲: CMカットなどこまめに
インターレース解除: 偶数・奇数フィールド(フィールド・適応)
〇GOP構造タブ:
編集用ビットストリームを出力する(Closed GOP): チェック付与
〇オーディオタブ:
ストリーム形式: MPEG-1 Audio Layer II
サンプリング周波数: 48000 Hz
チャンネルモード: ステレオ
ビットレート: 384 kbit/sec
音声加工: チェック付与
ボリューム変更: チェック付与
正規化ボタンで100に正規化
全て設定が完了したら、メニュー[ファイル]→[プロジェクトの保存]で適当な名前をつけて保存 →「嘉門達夫ライブ.tpr」ができる。
3 VFAPIconvに「.tpr」をドラッグ&ドロップして、実行ボタンクリック →「嘉門達夫ライブ_tpr_vfapi.avi」ができる。
4. VirtualDubに「.avi」をドラッグ&ドロップして、
(4-1)メニュー[Video]→[Compression]を選択し、一覧から「DivX Pro 5.0.5 Codec」を選びConfigureボタンクリック
〇profilesタブ:
1-Choose your profile: チェック付与
High Definitionを選択
〇MPEG4 Tools:
Use Bidirectional Encording: チェック付与
〇Bitrate Controlタブ:
Variable bitrate mode: Multipass, 1st pass
Encoding bitrate: 1500 kbps
Multipass encoding files: divx.logファイルをどこでもいいので設定
Write MV file: mvinfo.binファイルをどこでもいいので設定
〇General Parametersタブ:
Enable Resize:チェック付与
width: 528
height: 360
Bilinear (very soft)を選択
※ここの設定が出来上がりの動画の表示サイズになる。
Keyframe: 900 frames
Perfoemance/quality: Slowest
Source Interlace: Encode as prograssive
全てOKを選択してウィンドウを閉じる
(4-2)メニュー[Audio]→[Full processing mode]を選択したうえで、再度[Audio]→[Compression]を選択し、一覧から「Lame MP3」と「48000Hz, 128 kbps CBR, Stereo」の組み合わせを選択
(4-3)メニュー[File]→[Save as AVI]を選択して適当な名前をつけて保存。
※「Don't run this job now; add it to job control so I can run it in batch mode.」にチェックを入れる
(4-4)メニュー[Video]→[Compression]を選択し、一覧から「DivX Pro 5.0.5 Codec」を選びConfigureボタンクリック
〇Bitrate Controlタブ:
Variable bitrate mode: Multipass, nth pass
Encoding bitrate: 1500 kbps
※ここのレートが画質とファイルサイズに直接影響する。
(4-5)メニュー[File]→[Save as AVI]を選択して適当な名前をつけて保存。
※「Don't run this job now; add it to job control so I can run it in batch mode.」にチェックを入れる
(4-6)メニュー[File]→[Job control]を選択すると2つのjobがエントリされたウィンドウが開くので、Startボタンをクリック
うーん、これでなんでパフォーマンスがあがるのか、よくわからん。Sparse Multidimensional Arrayってのもよくわからん(これ、シグネチャ―インデックスの派生かな? >シグネチャ―インデックスのエライ人)し、この説明に使ってるクラス階層の絵もなんの階層だかよくわからん。(普通クラス階層といえば、クラス図の継承関係の階層か、包含関係の階層のことを言うと思うんだけどこれはそのどちらでもなさそう。) それにOODBでわざわざSQLインタフェースを用意することが重要だとも思えない(だったら、RDBを使えばいいんだし)し、このOODBが目指すものがよくわからないや、やっぱり。
Becky! Ver.2(以下、Becky!)でSPAMを自動的に振り分けするプラグインです。Rubyで書かれていて、Becky!でRubyスクリプトを走らせるプラグインであるBeckrbの上で走ります。
重い腰を上げてベイジアンフィルタを導入してみた。これは、ベッキーのプラグイン形式になってて、実際には、ベッキーのrubyスクリプトプラグイン上で走るrubyスクリプトになっている。これで、少しはSPAMが減ればいいのだが。。。
FireFoxの0.8が出たのを機に入れてみた。
「Operaよりも軽い!」
はい、移行決定。おまけに、RSS Feedもいれて、これで、動きが重くてなんとかしたかったSharpReaderもステ。(.Netフレームワークを使ってるから重いのか?)
ブックマークの移行も、BookSyncにて問題なく完了。SharpReaderのRSS関連も以降が済んで全く問題なく動いている模様。惜しむらくは、右上のGoogle検索窓がU.S.Googleを向いてることぐらいか?これをJP.Googleに向ける方法、わかる方教えたもれ。
(って、昔、モジラのスキンネタで雑誌記事を書いた奴とは思えない発言。。。)
これから徐々に育てていきます。
「継承より委譲を」を読んでふと思った。オブジェクト指向言語を語る際、「継承」という概念を真っ先に教えるということが多いと思われる。C++の解説書なんかだと、生物の進化みたいな樹形図を見せられて、「これが継承だ=」ってな感じ。こういう教え方をされると、継承を使わないとオブジェクト指向じゃない、みたいなイメージが作られちゃって、無理やりにでも継承を使ったちぐはぐなプログラムになっちゃいがち。僕は、昔から継承という機能を疑問視してて、(もちろん、便利なこともあるけど)どちらかと言うと弊害の方が多いのではないか、と。 例えば、多重継承はJavaでは禁止されちゃった(でもインタフェースの多重継承は残ってる)けど、多重継承なんてものはなくてもかまわないぐらいだと思う。現に、去年、とある仕事で作ったコーディング規約では、多重継承は禁止した。僕自身、オブジェクト指向プログラマ稼業を10年近くやってるけど、多重継承が必要になったことはない。全部デリゲーションで済んじゃうんだ。また、今年度の頭に、会社の新人相手にやった、「オブジェクト指向講座」でも「継承」は一切教えなかった。その前に、「オブジェクト指向」ってどういうふうに考えればいいんだ?ってところを教えてあげる方がよっぽど親切だろうと思う。継承はオブジェクト指向の本質でもなんでもなくって、あくまでも副産物。本質はあくまでも「抽象データ型とメッセージパッシング」なのである。
予想通りというか、意外というか。こんなにIEユーザっているのね、というのと、意外とMozilla奮闘してるんじゃない? ってのと、Operaって意外と人気ないねぇ、というのが正直なところ。 みんなIEの反応の遅さに我慢できる、というのが信じられん。確かに、IEじゃなきゃダメなサイト(例えば、うちの会社の勤務表データ投入アプリとか)もあるからまるっきりアンインストールってのは無理だけど、もうIEは常用できません。唯一不便な点としては、Googleバーがつかえないので、検索キーワードによるハイライト機能がない、ということぐらいか。
howm - 一人お手軽Wikiもどき とまぁふざけた名前みたいだけど、emacs使い向けメモアプリケーション。 Windowsでいう、付箋紙のような機能を提供する。四六時中emacsを立ち上げていることに抵抗ない向きにはけっこう使いやすいと思う。僕はオフィスのマシン(Windows2000 + cygwin + Meadow)の環境に導入したけど全く問題なし。でも、xemacsでのインストールがまだ成功していない。xemacsの.emacs周りの扱いが分かってないのが原因なんだけど。
何も考えずに~/.xemacs/init.el に設定を書いたらあっさりOK。宗教的にいいかどうかはさておき。
面白そうなソフトが出てきた。年越す前に知って、そのときはまだダウンロードできなくなってたのが、ようやく再開された模様。 こういうものが出てくると、必ず危険だから配布するな、とかって話になるんだけど、「脅迫電話が増える可能性があるから電話はダメだ」「殺人が増える可能性があるから包丁は売るな」って言ってるのと同じってことがわからないんだろうか?まぁ、自分が理解できないものに対して必要以上に畏怖の念を抱くのが人の常ではありますが。
さて、いろいろ面白いことができそうだ。会社がSOCKSのポートを閉じたから家のサーバへのアクセス手段を探してたんだよね。でも、実現してしまうあたりがすごいです。何もうちの大学に来なくてもそのまんま仕事すればいいのに。彼以上に技術力あるやつなんて、うちの会社にはきっといません。あ、世の中の技術力の低さに失望して日本から飛び出してしまうか。。。
ARの起動が早くなる、ってんで試しに入れてみた。なるほど、なにやら起動時にいっぱい読み込んでるプラグインを読まなくするのね。とりあえず、ちょっぱやに設定。そのうち必要なプラグインがなくて困るまではこのままいくことにする。
先日、Googleバー使わないでやっていけるの?みたいな話題を書いた(なんとかとハサミは...参照)。舌も乾かないうちになんですが、もう、Googleバーいらないかも。Windowsにしか対応してないのと、まだ日本語版がリリースされていないのが難といえば難ではありますが、けっこう便利。お勧めです。
何も考えないでgoto文を使う奴、これ最悪。
何も考えないで、goto文はいけないと盲目的に信じてる奴、これ、エンジニア全体の98%。
goto文は乱用するとダメだが、goto文を使うことによってかえってプログラムが読みやすく場合があると分かってて節度をわきまえて使う奴、これが正しい姿。
ちなみに、以前某社に常駐してた際に、その会社用に、コーディング規約の制定をしましたが、あえて、盲目的にgoto文を禁ずるような規約は外しました。弊社内の同じようなソースコードの品質チェックサービスをやってるような部署に応援頼んで、僕が書いた規約ドラフトをベースに作ってもらいましたが、同じように「goto文はいけないんだぞー。」ってコメントと共に規約が追加されてましたので、当然却下しました。
個人的には、エラー処理をまとめる場合の他に、オートマトンとか状態遷移図の実装の際には重宝すると考えておりますです。
まぁ、ダメな理由を追求してみると、分からんと禁じてることが露呈できて面白い、かと。
ここでアクセスログをちまちま手でサマライズしてますが、やはりいいかげん面倒なので自動化したいなぁと主って探してたところ見つけたのがこのページ。なぜかC++で書いてるってあたりに硬派さを感じ、ダウンロードしてみました。 が、コンパイルが通らない。ってことで最低限コンパイルが通るレベルに修正して、作者の方にパッチを贈呈しました。そのうち反映してくれると期待して。 まだ活用してませんが、徐々に活かしていきたいなぁと思った次第。
Windowsのデスクトップを3D化するソフト。単に、Windowに奥行きを持たせる窓立て2とは違って、デスクトップを「机上」というメタファーから「部屋」というメタファーに進化させている。(本当に進化か?)
で、試してみた。。。。。重い。
Pentium4 2.4C(2.4GHz,HyperThreading),512M搭載マシンでもマシンパワーとしては全然足りません。デスクトップの3D化は性能的にも、使い勝手という意味でもこれからでしょう。「部屋」というメタファーも最適かというと、これもこれからじっくりもまれて行く必要がありそう。今後に期待、ということで、レジストするのもいいかも知れない。(3500円ほど)
なお、このソフトには、アドオンと称して、いろんなバラエティが用意されています。(部屋のインテリアを替えるようなイメージ?)ソフトウェアのスキンというコンセプトを発展させたものとしては、なかなか面白い。
昔、一時期流行った(本当か?)、IEに追加するホットバーを思い出しました。
しかし、口で言うのは簡単だが、マイクロソフトは相当な技術リソースを継ぎこまないとトロン(T-Engine)上で .Net フレームワークを準備することは難しいし、アメリカ本社がそこまでトロンを重視するかは疑問だ。 そして、.Net フレームワークそのものもこの1,2年で大きく変わる可能性がある。 今回は具体的にどこまでやるかをコミットしているわけではないはずだ。 もし、できたとしてもライセンス料が高いため ".Net 抜き" というライセンスが一般的になると思う。元組み込み系エンジニアの言葉は説得力があります。このニュースを聞いて、誰もが、「つーか、何やりたいの?」と思ったはず。TRONが流行ってるのは安いからというのはあるだろうけど、そもそも研究開発費かかってないからねぇ。動作が軽いってのもあるんでは?WindowsのカーネルとしてTRONを組み込むってのも、TRON上で.NETフレームワークを構築するってのも、ちょっと現実的じゃないような。。。
僕も、「結局、この提携は何も生み出さない」に一票。
そういや、坂村さんとこの学校、日本で数少ないWindowsNTのソースコードライセンスを持ってる学校じゃなかったかな?
そういや、うちの会社は、結局TRONフォーラムに入会したのか?
先日からしこしこと遅々としながらも続けてきたGNU archに関するチュートリアルの和訳ですが、拙作よりも優れた和訳を見つけてしまいました。
ARCH チュートリアル
また、日本語オリジナルなチュートリアルについてもこちらに、用意されています。つーことで、私の和訳作業はここで止めますた。
Continuing the discussion...
TrackBack URL for this entry:
http://andore.com/cgi-bin/mt/mt-tb.cgi/128
Listed below are links to weblogs that reference 'オンラインプレゼンテーション例(Flash Communication Server)' from klog.
アクセスしたらブラウザが落ちる。
Opera 7.20B7 でございます。なんでかなぁ。。。
archって実は、GNU プロジェクトだったのね。GNU関連の翻訳許可ってどうすりゃいいんだろ?
というわけで、遅々として進めてますが、ようやく第8章まで進みました。まだまだ先は長いです。
でも、BLOGのドキュメントって検索エンジンには引っかからないんじゃ?って気もしなくもない。。。
今、ソフトウェア開発におけるリビジョン管理システムといえばCVSを入れて、閲覧用に、cvswebというCGIスクリプトを入れてWebブラウザでリポジトリをつらつら眺めるというのが一般的だと思う。もちろん、お金のあるプロジェクトだとClearCaseのようなものを使うかもしれんけど、中身は似たようなもんでしょう。
さて、CVSは内部的にRCSを叩いてるので、所詮、RCSの複数ファイル対応したインタフェースに過ぎない。したがって変更履歴としてはもちろんファイル単位の更新差分を記録することでリビジョン管理を行っている。で、実際のプロジェクトだと、ディレクトリ構成の変更とかって結構あるんだけど、それに対応できないんで運用上あまりよろしくない。そうすると、やっぱりこの辺のまずいところをわかってる人がやっぱりいて、archという新しいリビジョン管理システムのプロジェクトを見つけました。ことの発端は、Xouvertという次世代のX Window Systemのサイトで見つけたから。で、いろいろ探したんだけど、日本語ドキュメントがまだ世の中にないので、とりあえず、マニュアルの翻訳をはじめました。訳のクオリティよりも速報性を重視してます(笑)。コメントとか誤訳とかあったら、こちらにでもなんなりとご指摘いただけると幸いです。
最近、オープンソースの話題が多い。九州の某自治体が自分たちで開発したシステムをオープンソースにするとかいいながら九州以外からはライセンス料取るよ、とか言ってみたり、電子政府関連でもオープンソースをもてはやす発言がお役人から飛び出したり、と本当に話題には事欠かない。でも、なんか変。ライセンス料とっちゃオープンソースじゃないだろう? 政府がオープンソースであるかどうかの認定をしてどうするよ?やっぱりなんか理解されていないような気がする。まぁ、自分たちが関わってるプロジェクトや仕事、団体あるいは自分自身その他が得すりゃいいやと思ってる輩にはオープンソースは理解できないでしょう。また、開発工数が削れるという理由でオープンソースなソフトを採用する企業にもオープンソースに貢献する意思なんてないもんね。そういう意味でオープンソースの使い方がうまいのはIBMなんだけど、他の企業も、もっとオープンソースなプロジェクトを育てる、という視点に立ってくれると、少しはましなんじゃないかな?
政府も「国産のオープンソースソフトウェアが少ない」などとピントはずれなことを言うのではなく(オープンソースに国境はありませぬ)、例えばPublicなサーバファームを用意して自由に使わせる(図書館のように、身分証明付で認証させて会員は自由にCPUパワーを利用できるような仕組み)とか、もう一歩踏み込んだ貢献をしてくれると面白い動きが出てくるんじゃないかな。
未踏プロジェクトで稀有な才能を探し出すのもいいんだけど。
ってなことをIT Pro Java Raderなるメルマがのコラムを読んでふと思ったさ。
メリルリンチの偉いさんなら、単に自社の経費を削減したいだけだろうからある程度は信用できる話なのかもしれんが、でもこのコメントだけで、なんでもかんでもLinuxでやった方が安い、ということにはならないはずで、これを真に受けて、Linuxでやったら安いんだろ?ってディスカウントを強要してくるバカが出てきそうでいやだな。
最近、Webサイトデザインに関する書物を本屋で多く見かけるようになった。事の発端は、Webユーザビリティを書いたヤコブニールセンだが、Webデザイナとプログラマの責任分岐点ってまだまだあいまいなのよね。いちおう、JSP,サーブレットとか明確に分かれつつあるとは言えるけど。でも、こういうツールでさくさくデザインできるようになると、本当の意味でGUIデザイナとシステムエンジニアの分業が進むんでは?という予感が感じられる。このDENIMは、バークレーで研究されているGUIデザイナらしい。実際にダウンロードできるし、使ってる様子の動画も見ることができる。まだまだできることはたいしたことないみたいだけど今後が楽しみである。