2009年07月17日

結城浩著:Javaプログラミングレッスンを使って勉強会

以前、結城浩先生(*)の著書についてエントリを書いたら、その私が書いたエントリの事が結城先生の日記に書いてあって、ちょっと嬉しかったので、今回も、あえてブログの方に書いてみる。

今、職場の仲間とJava言語を最初から学習するための勉強会を実施している。

うちの会社では、業務として開発案件を請け負っていない事もあり、プログラミング言語の習得にあまり時間を割いていない。しかし、Oracle関連の製品、特にウェブアプリケーション・サーバ製品のサポートをする上でJavaの知識は必要不可欠な状況になっている。

そんなわけで、みんなJavaやプログラミング言語全般に関する知識を自学・自習しているわけだけれども、どうしても「仕事に必要な部分だけ」の習得に偏って、付け焼刃というか、片手落ちな状態のスキルになってしまう。

そこで今、職場の仲間とJava言語を最初から学習するための勉強会を実施している。

そして、この勉強会の教科書として「Javaプログラミングレッスン」を選んだ。

この書籍、非常によくできている。1章ずつが、ちょうど授業の1コマのようになっていて、勉強会の教科書にはジャストサイズだし、本当の初歩から一切、端折る事無く必要な事がわかり易く書かれている。文章からは、結城先生の優しい人柄がにじみ出ているようにさえ思える。

実際の勉強会でも、1回90分で1章ずつ進めている。最初の2回(0章~2章)は私が全て講師を担当したけれど、今後は参加者で1章ずつ持ち回りで講師をやる予定だ。

講師を担当といっても、何も難しい事はない。教科書が非常に良くできているので、プロジェクタで投影するスライドには、各項目のタイトルと要点だけを記述して、あとは、参加者と、講師で書籍に書かれている内容を読み合わせしていくだけで、ほとんどクリアできてしまう。

その上で書籍の内容に疑問があれば、講師と参加者で議論したりして、確認していけばよい。もし、疑問が晴れなければ、それは講師役の人と質問した人の次回までの宿題となる。

この勉強会、一番最初は、教科書の該当部分の抜き刷りを作って参加者に提供したのだけれど、2回目からは、教科書を購入して参加してくれる参加者が出てきた。尊敬する結城先生の売り上げに多少なりとも貢献できて嬉しい限りだ。

まだ、始まったばかりの勉強会で下巻の最後までやり切れるかわからないけれど、とにかく行けるところまでやってみようと思う。

*(私は敬意を表して「先生」とお呼びしている。面識が無いので心の中でだけど。)

投稿者 abiru : 22:16 | コメント (0) | トラックバック

2008年10月23日

人に見せられる成果物

以前、大学時代の同期と呑んだ時に仕事のハナシになった。彼は大手家電メーカで組み込み系の開発をしているので、「今度発売のプラズマテレビのプログラムを開発した。」とか、そんなハナシを聞く事ができて、正直、「羨ましい。」と思った。サポセンの仕事って、社外の人たちに「ホラ、これが私がやった仕事の成果だよ。」という形でアピールできるネタは無いのだ。トラブルシューティングや、顧客対応は、とっても貴重なスキルだけど、やっぱ成果物としてアピールできるネタがあるのって、自慢できちゃったりするし、カッコイイなあ、とか感じるわけですよ。


あ、そういえば、外部に公開されている数少ない成果物があるぢゃないかーっ!!!

以下、私が作った技術資料一覧

■Oracle JDBCドライバのログを取得する方法
ftp://ftp.ashisuto.co.jp/pub/standard/vol88/jdbctrace.pdf

■Oracle Application Server環境におけるRDAの導入と使用方法
- Unixプラットフォーム編 -
ftp://ftp.ashisuto.co.jp/pub/standard/vol86/rda_as_unix.pdf

■Oracle Application Server 環境におけるRDAの導入と使用方法
- Windowsプラットフォーム編 -
ftp://ftp.ashisuto.co.jp/pub/standard/vol86/rda_as_win.pdf

■Javaストアドプロシージャの利用
ftp://ftp.ashisuto.co.jp/pub/standard/vol79/java_stored_procedure.pdf

■DBMS_OBFUSCATION_TOOLKITによる表データの暗号化
ftp://ftp.ashisuto.co.jp/pub/standard/vol77/obfuscation.pdf

■JDBCドライバのバージョンを確認するJSPアプリケーション
ftp://ftp.ashisuto.co.jp/pub/standard/vol76/jdbc_vercheck_jsp.pdf

■Oracle RDBMSにおける和暦の利用
ftp://ftp.ashisuto.co.jp/pub/standard/vol73/japaneseimperial.pdf

■mod_plsqlによるWebアプリケーション開発
ftp://ftp.ashisuto.co.jp/pub/standard/vol72/mod_plsql.pdf

■Oracle JDBC 再入門
ftp://ftp.ashisuto.co.jp/pub/standard/vol69/jdbc.pdf

う~ん、こうやって並べてみたら以外とあるなあ。
「内容がマニアックすぎるっ!」というツッコミは、ご勘弁下さい。

投稿者 abiru : 19:04 | コメント (3) | トラックバック

2008年09月25日

メモリ増設

先日より実戦投入されたThinkpad T60(1951-G2J)ですが、デフォルト状態では512MBしかRAMが搭載されていない。別にこのままでも動作するのだが、Gnomeがバリバリ動いたりするUbuntuでOpenOffice.orgなどを起動して色々作業しているとやっぱ、スワップが発生しているのか遅延が発生すする!

そこで、メモリも以前のマシンから移植する事を考えたが、形式が異なっており、移植不能な事が判明し、新規に購入する事にした。まずはLenovoのサイトで対応するメモリの形式を確認して同型メモリの最安値をkakaku.comで調査すると・・・。

SODIMM DDR2 1GB PC5300がナント1780円!ノーブランド品とはいえ、1GBが1800円を切っているなんて、いい時代になったもんですね。迷わず2枚発注しました。

到着後、すぐに搭載して使用してますが、今のところ全く問題ありません。

スバラシイ。

投稿者 abiru : 18:35 | コメント (0) | トラックバック

2008年09月20日

Thinkpad T60(1951-G2J)

今日、オリックス・レンテックに発注していたThinkpad T60(1951-G2J)が到着!!
MS-Windows XPは、一度も起動することなくUbuntu8.04をインストール開始、途中、ビックカメラに2.5インチHDD用のUSB外付けケースを買いに行って、現在、以前のThinkpad(2887-7MJ)からデータを復旧、現在も作業継続中

しかし、

CPU : Core2 Duo プロセッサ T5600
RAM : 512MB
HDD : 80GB
CRT : TFT液晶 14.1 inch SXGA+

このスペックで73000円ですのよ、奥さん!
まぁ〜、パソコンもお安くなったものですわねぇ〜、ホントにイイ時代になったもんですわねぇ。

投稿者 abiru : 15:05 | コメント (0) | トラックバック

2008年09月14日

Thinkpad R51逝去

2005年12月にオリックスレンテックさんから購入した中古のThinkpad R51(2887-7MJ)が、本日、突然、起動しなくなりました。渋谷のルノアールでLivedoor Wirelessに接続して作業している最中に突然、電源が落ち、それ以降、二度と正常に起動する事はありませんでした。その直前まで作業していた2時間あまりの作業結果は、すべて失われました。(泣

障害発生時にHDDのLEDが点灯したままだったのでHDDの故障かなと考えて、ノートパソコン用のUltra ATAのHDDを購入して換装してみましたが、症状に変化はなく、UbuntuのLive CDからOSを起動させたところ、一旦は正常起動するものの、数分で突然電源が落ちる現象が再現しました。

この結果から、Thinkpadのシステムボード自体に何らかの問題が発生しているものと考えられます。

Yahoo!オークションなどでシステムボードが正常なものを入手して修理する事も不可能ではありませんが、修理できる保障がないことと、システムボードの換装となると、とんでもない作業量になるので、新しいThinkpadを購入しようと考えています。

5万円で買ってから2年9ヶ月余り・・・。まぁ、元は取ったんじゃないかと思います。今回は故障の予兆もなく突然死だったので、動揺しましたが、質実剛健たるThinkpadらしい最期であったともいえましょう(笑

苦楽を共にしたマシンも別れは常に突然です。

TurboLinux→Ununtuと私のオープンソースライフを支えてくれた最期の「IBM Thinkpad」に感謝しつつ、新しいマシンの選定を開始したいと思います。(次は、Lenovoになっていることでしょう。)

投稿者 abiru : 23:30 | コメント (0) | トラックバック

2008年09月08日

Google Chromeに対する所感

いまさらだが、Google Chromeに関して書いておこうと思う。

■なんでいまさら、Googleが「ウェブブラウザ」をリリースしたのか?

Firefoxでも、Safariでもブラウザはいくらでもある。今更「車輪の再発見」的な作業にリソースを投入するのは、何かそれなりに意味や狙いがあるのだろうけれど。この点に関する考えは、後半の所感で。


■IT系情報サイトでの「速い!速い!」の大合唱について

ブラウザのレンダリング速度ってそんなに重要か?個人的にはネットワークやアプリの応答時間の方が遥かに長くてレンダリング速度なんて処理時間全体にとっては微々たるものでしかなく、レンダリング速度を褒めたり、競争してもあまりユーザにとってのメリットはないように思うのですが・・・。もしかしてAjaxばりばりのサイトとか使ってると、レンダリング速度やJavascriptの処理速度が致命的な影響を与える可能性もあるのかな。IT系情報サイトの中の人たちは、Google Chromeが目指す本質を見誤ってないか?


■なぜ、Google Toolbarに相当する機能が搭載されていないのか?

同じ会社で開発してるんだし、Google Chromeが「ウェブブラウザ」だっていうなら、デフォルトでGoogle Toolbarに相当する機能が搭載されていていいはずだ。なのに無い。だからGoogle Toolbarが(特にカスタム検索機能が)大好きなあびるは、Google Chromeを試使用だけして、以後、使っていない。これには、あえてウェブブラウザとして高機能化させていない意図が存在するように思う。


■Google Chromeに対するあびるの所感

Googleは、全てのアプリが完全にWeb化され、シンクライアント化された、完全なるクラウドコンピューティングの世界を目指しているのだと思う。

しかし、それを一気に実装しても世の中の大多数の人は、そのシステムの利点を理解できないし、利用形態の変化についてこれないし、大きな犠牲を払ってまで移行もしたくないものだ。

だから、Googleは、あえて、ちょっとずつ、世の中の多くの人がギリギリ理解したり、なんとかついて来れるぐらいの速度でイノベーションの結果をリリースしているのだと思う。

だから、Google Chromeも単なるマイルストーンというか、時代の過渡期に一瞬だけ咲いたあだ花のような存在になるはずだ。

現段階でGoogle Chromeに与えられた使命は、まず、ユーザが「ウェブブラウザというアプリを起動する」という行為を意識しないようにする事ではないだろうか。

でも、一足飛びに「Google Chromeを入れれば、もうブラウザは不要です♪」なんてアナウンスしても、世の中の人たちは「ハァ!?」となってしまうので、あえて、みんなにわかりやすい「ウェブブラウザ」という姿を借りてGoogle Chromeはリリースされたのだと思う。

ぜひ、Google Chromeの今後の進歩を見守って欲しい。きっと徐々にウェブブラウザ存在感を薄くしながら、Google Chrome自体を意識する機会が少なく、でもGoogle Chromeが無いとウェブアプリが快適に利用できない方向へと舵が切られていくはずだ。

Google Chromeは、Googleが目指す理想のコンピューティング環境へと世の中の人々を連れて行くための長い階段の一段に過ぎないと思う。

投稿者 abiru : 13:01 | コメント (0) | トラックバック

2008年08月31日

サマースクールの無い8月は空虚

毎度、おなじみblogの長期休載をしてました。べつに超個人的なブログなんで、定期投稿の義務があるわけでもなし、まぁ、今後もゆる~くやっていく予定です。

で、今更ながら8月の話題です。しかも一言だけ。

やっぱ、サマースクールの無い8月は、空虚です。こんなのは夏じゃありません。やっぱし、夏は、wakhokでゴリゴリ、ガリガリ、ワイワイしないとね・・・。wakhokの方でも学長先生が交代したりと、色々あったみたいだけど、サマースクールの存続・継続を強く希望します。

投稿者 abiru : 17:34 | コメント (0) | トラックバック

2008年07月17日

たこしゃぶ&サマースクール

先日、新宿の某店で「たこしゃぶ」を食べた。旨かった。。。遂に東京で、旨いたこしゃぶを食べる事ができた。店長によれば、複数人で一週間前までに予約してくれれば「お取り寄せ」で対応してくれるとのことでした。

「たこしゃぶ」のキーワードに反応した一部の関係者の方々、ご連絡をお待ちしております。。。


さて、今年は、サマースクールも開催されない様子、10年以上に渡って多くの技術者に愛された夏のイベントが開催されないのは、さびしい限りです。

サマースクールは、私にとってのフジロックフェスティバル!いや、ウッドストック?とにかく毎年待ち遠しいイベントだったのです。

また、サマースクールで得られる最新のノウハウも技術者として生活する私にとっては、生きる糧、商売道具(スキル)の仕入れ元だったわけで、もし、今後開催されないというような事になれば、仕入れ元を新たに探さなければなりません。

しかし、稚内北星学園大学ほど、鮮度が良くて高品質なネタを提供してくれるところは、そうそうないわけで、私にとっては、今後の対策が急務ですね。

一部の関係者にしか、わからない書き方でごめんなさい。

投稿者 abiru : 23:59 | コメント (1) | トラックバック

2007年10月27日

Firefox版mixiツールバー

Firefox用mixiツールバーがリリースされたというので、早速入れてみました。一応、mixiのページには、WindowsXPとMacOSのみに対応と記載されているけれど、ダメモトでインストールしてみたらUbuntuの環境で動作しているFirefoxでも動作した。このへんは、きっとMozillaで作っているXULとかいうレイヤがマルチプラットフォーム化されている所以でしょうかね。詳しくはわからんけど。

投稿者 abiru : 23:43 | コメント (0) | トラックバック

2007年10月19日

コマンドラインのSNS

mixiのデザインがリニューアルされ賛否両論になっているのを見ながら考えた。テキストベースでコマンドラインから操作できるSNSがあってもいいのではないかと・・・。


(30秒経過)


あ・・・・・。
テキストベースでコマンドラインから操作できるSNS・・・。
それは、SNSではなく「パソコン通信(BBS)システム」と呼ぶのが正しいのではないか!?
こう考えると、往年のNiftyがただのプロバイダに成り下がってしまった事が悔やまれてならない。なぜ、WebベースのSNSに移行しなかったのか?と・・・・・。

投稿者 abiru : 21:03 | コメント (0) | トラックバック

2007年09月10日

人類をつなげる普遍的な分かちあいの絆を信じる

ソフトウェアの付属ドキュメントを読んでいてこれほどの感銘を受けた事は、いまだかつてない。
以下の文章は、Ubuntu Linuxの名前の由来を説明しているものです。

---------

Ubuntu は人間同士の信頼や、お互いの関わりについての南アフリカの倫理的な概念です。この言葉はズールー族の、そしてコサ族の言語からきています。Ubuntu (「oo-BOON-too "ぅぉー ぶーん つぅー"」と発音します)は伝統的なアフリカの概念で、南アフリカ共和国の創設原理のひとつと見なされ、アフリカのルネサンスについてのアイデアに繋がっています。

Ubuntuの根本原理を大まかに訳すと、「他者への思いやり」です。別に翻訳してみると、「すべての人類をつなげる普遍的な分かちあいの絆を信じること」といえるでしょう。

「Ubuntu な人とは、オープンな性格で他人に貢献する気持ちがあって、自分以外を肯定的に捉えられる人のことです。Ubuntu な人は自分が大きな世界につながっているという確信から生まれる適度な自信をもっているために、他人の能力や親切をねたみません。他人が馬鹿にされたり落ち込んだりしたときには共に落ち込み、他人が苦しんでいるときにはその気持ちを共にします」

Desmond Tutu 大司教

Linuxベースのプラットフォームとして、Ubuntuオペレーティングシステムはソフトウェアの世界にubuntuの精神をもたらします。

---------

投稿者 abiru : 01:37 | コメント (3) | トラックバック

2007年09月07日

Ubuntu Linuxへ移行

暫くお世話になっていたTurboLinuxがマンネリ化してきたので、最近、巷で話題のUbuntu Linuxに思い切って移行してみた。数日前に会社の仲間からインストールメディアを貰っていたのだ。まだ使い始めて数時間だが、第一印象は「完成度が高いな。」という感じだ。

とにかく初心者にも易しいというのを第一目標にしているようで、インストールは超簡単だった。Turbolinuxでは苦戦した無線LANの認識もGUIで数回クリックしただけで完了してしまった。その後は、ホームディレクトリをリストアして、いくつかのアプリを追加インストールして、設定を移行前のホームディレクトリから移してくれば、以前とほぼ変わらない使用感が得られるところまできた。

Debian系のディストリビューションが初体験ということと、rootユーザをあまり意識しないように設計されているようでるという点で若干の違和感があるものの、慣れの問題と言いきれるレベルだ。あとは、ATOKが動作するか否かという大問題が残っているが、これもチャレンジする予定。

今後使い込んでいく中で不満も出てくるとは思うが、現時点での感想としては、「なんでこんな良いOSがあるのに、みんなは高いお金を出してVistaを買うのだろうか?」という感じだ。

Linuxが、こんなにも手軽に簡単に使えるようになったなんて、本当に良い時代になったもんだ。。。

追記:
ATOK for Linuxは以下のページに記載されている方法で動作するようになった。
http://old.ubuntulinux.jp/wiki/IchitaroForLinux/

投稿者 abiru : 01:06 | コメント (0) | トラックバック

2007年08月13日

あびる姓に関するサイトリニューアル

大学生の時に作って、そのまま放置プレイだったサイトをWikiで再構成してみた。
http://abiru.jp/wwa/wiki.cgi?page=FrontPage

ケータイの方、見られません。ごめんなさい。

投稿者 abiru : 02:28 | コメント (0) | トラックバック

2007年08月12日

Ruby on Rails入門を受講し終えて

最近のRuby on Rails入門の講座に関する投稿を読んだITとは全く無関係の知人から、講習を受けた事が私にとって、どのような意味があったかを専門家でない人にもわかる言葉で3行以内で語ってみよ。という発題を受けました。以下は、その回答です。

-----------------------------------------------------------------------
講習はネットで書籍検索をするようなシステムを簡単に作る方法を学ぶものです。
無論、書籍検索以外にも応用可能な知識です。既存の知識の比較対象を得る
事で新しい理解を促進するものでした。
-----------------------------------------------------------------------

話を簡単にするために大胆な割愛をしていますので、IT関連の方には。「ハァ。?」な内容ですが、非IT系の方には、このへんが限界かと。。。。

個人的には、Railsというフレームワークを勉強した事よりもRubyという言語に触れられた事に価値があったと感じています。RubyもRailsも今後の更なる発展に期待したいです。

投稿者 abiru : 23:08 | コメント (0) | トラックバック

2007年08月10日

Ruby on Rails入門3日目

■今日の妄言

(関連性のある複数テーブルをJOINする場合のModelクラスの設計に
ついて説明されて)

なんでムリしてO/Rマッピングせにゃあ、いかんの?
ResultSetでぐるぐる繰り返し処理をする事がそんなに罪なんかい!?

なんか、この妄言は一昨年も稚内で口走った気がするなあ。。。

2007年8月10日(金) wakhokサマースクール2007


■Railsの動作環境

以下の2つの組み合わせによる動作環境が一般的

Lightty + FastCGI + Apache
Mongrel + Pound + Apache

現在は、後者のものが急速に普及している。
なぜ、Apacheを直接使わないのか疑問
複数のRailsプロジェクトのアプリを同時に使用したい時には
ポート番号を分けてmongrelを複数起動して対応する。
ポート番号の違いを吸収するためにPoundを使う。


■Validator

Modelのクラスに記述する。

============================================================
class Book < ActiveRecord::Base
validates_presence_of :title, :author
validates_uniqueness_of :isbn
validates_format_of :isbn, :with => /[0-9xX\-]+/
end
============================================================


■JRuby

JavaによるRubyの実装

Sunの専任担当者が開発しており、JVMのHotSpotなどを活用している
ので、動作速度は非常に速い。今後、有力になっていく可能性がある。
JRubyであればOC4JなどのJ2EEコンテナで利用する事ができ、BEA等の
大手ベンダが自社のJava実行環境でJRubyをサポートする可能性がある
既存のJavaオブジェクトとの連携も可能であるという利点がある。
※Ruby開発環境としてはSunのNetBeansが最有力である。


■アプリケーションの国際化

Ruby Gettext Package を使うことでRubyのアプリケーションを
国際化する事ができる。Gettextは、アプリケーションを国際化
するためのUnix由来のフレームワーク


■国際化の実習の注意点

テキストの手順通りにやるとSubversionとGTKが無くてエラーに
なるらしい。Unix系の環境でこれらのものが入っていれば問題
ないが、Windows環境だと、これらを用意しないと動かないらしい。
この実習については、私は未実施です。

http://subversion.tigris.org/files/documents/15/38369/svn-1.4.4-setup.exe
http://prdownloads.sourceforge.net/ruby-gnome2/ruby-gnome2-0.16.0-1-i386-mswin32.exe?download


■Restfulなサービス

RESTとは

・すべてのリソースをURIで表現できる
・すべてのリソースにHTTPなど特定のプロトコルでアクセスできる
・ステートレスである
・XMLでリソースを扱うことが多い

自分の理解

・全てのレコードにURIでアクセスできる
・CRUDの全てをURIから実行できる。処理対象のレコードもURIで
指定できる。


資料:
http://www.wakhok.ac.jp/~tomoharu/rails-summer2007/08/rails-REST.pdf

XMLの送受信はできたけれど。。。だんだんこの辺から落ちこぼれ始める。

C:\work\summer2007\restful>irb
irb(main):001:0> require 'net/http'
irb(main):002:0> http = Net::HTTP.start('localhost',3000)
irb(main):006:0> p http.get('/books.xml').body
irb(main):008:0> p http.post('/books.xml', 'book[title]=Ruby').body

RESTサービスの動作検証のためにRubyの対話的インターフェース
であるirbを利用


■AJAXの利用

Railsの開発者の一人がAJAXのライブラリの開発者であるため、Rails
とAJAXの親和性は高い。rhtmlに記述を少し追加するだけでAJAXの機能
を活用したユーザインターフェースが作成可能になる。自分でAJAXの
記述をする事もできるが、あえてしなくてもAJAXを利用する事ができる

投稿者 abiru : 19:00 | コメント (0) | トラックバック

2007年08月09日

Ruby on Rails入門2日目

Railsよ、オマエもか・・・・。
アプリを開発するのは新規プロジェクトばかりぢゃないんだよおぉぉ。。。(泣

2007年8月9日(木) wakhokサマースクール2007

■ViewとControllerの実習

テキストボックスに入力した値をオウム返しする、いわゆる挨拶
アプリをRailsを使って作成する実習
この実習ではデータベースへのアクセス(Modelの利用)はない。

■プロジェクトの作成

挨拶アプリ用のRailsのプロジェクトを作成するコマンドは以下の
通り。

C:\work\summer2007>rails hello

■Controllerの作成

C:\work\summer2007>cd hello
C:\work\summer2007\hello>ruby script/generate controller hello input greeting

上記コマンドでは、helloというControllerを作成するとともに
inputとgreetingというアクションを作成している。


■作成されたControllerを確認

作成された以下のファイルを確認する。

C:\work\summer2007\hello\app\controllers\hello_controller.rb

============================================================
class HelloController < ApplicationController

def input
end

def greeting
end
end
============================================================
コントローラ名は + "Controller"


■URLとコントローラの対応付け

http://localhost:3000/hello/input
http://localhost:3000/hello/greeting
hello がコントローラ名であり、inputとgreetingはアクション名
である。
※これはあくまでもデフォルトであってRoutingを変更すれば
変更可能である。


■Railsアプリケーションの動作

・DispatcherがRequestを受け取る (HTTP)
・コントローラとアクションを決定
・コントローラ中のアクションが処理
・ビューを処理

※仮想パス以下がどのような値でリクエストされても全てのリクエスト
をDispatcherが受け取って処理するようにHTTPサーバに設定してある。


■サーバ(Webrick)の起動

C:\work\summer2007\hello>ruby script/server

http://localhost:3000/hello/greeting
http://localhost:3000/hello/input


■View(input)のカスタマイズ

input.rhtmlを以下のように変更
============================================================

お名前を入力


<% form_tag :action => :greeting do %>
<%= text_field :input, :name %>
<%= submit_tag 'OK' %>
<% end %>
============================================================


■Controllerのカスタマイズ

hello_controller.rbのgreetingメソッドへ以下の記述を追加

============================================================
@str = @params.inspect
============================================================

inspectメソッドはJavaでいうtoString()メソッドである


■View(greeting)のカスタマイズ

greeting.rhtmlの中で以下のような処理を実施する

============================================================
<%= @str %>
============================================================

アクション(greetingメソッド)で作成(定義)されたインスタンス
変数はビューの中から参照(利用)する事が可能できる


■実行結果

============================================================
{"action"=>"greeting", "controller"=>"hello", "input"=>{"name"=>"あびる"}}
============================================================

この場合は上記のようにハッシュの内容がそのまま表示される


■課題1

greetingで入力された名前を表示する


■controllerのカスタマイズ

hello_controller.rbのgreetingメソッドを以下の通り変更

============================================================
def greeting
@name = @params[:input][:name]
end
============================================================


■View(greeting)のカスタマイズ

greeting.rhtmlの中を以下のように変更する

============================================================

ごあいさつ


<%= "こんにちは、#{@name}さん" %>
<% form_tag :action => :input do %>
<%= submit_tag '戻る' %>
<% end %>
============================================================


■クロスサイトスクリプティング(XSS)対策

<%= "こんにちは、#{@name}さん" %>

上記の記述だとXSS対策は一切なしの無防備状態になる。

<%=h "こんにちは、#{@name}さん" %>

上記のようにhを一文字加えるだけで最低限にXSS対策がされる。
このhもメソッドである。このメソッドのコードを確認することで
XSS対策の詳細を確認出来るのではないか、また、必要があれば
このメソッドをオーバライドすることでXSS対策に処理を追加
できるのではないかと思われる。(具体的なオーバライドの方法は
まだ、わからないけど。)


■課題2

時刻を表示するアクションとビューを追加する。

input.rhtmlに以下の記述を追加

============================================================
<% form_tag :action => :time do %>
<%= submit_tag '時刻表示' %>
<% end %>
============================================================


以下の内容でtime.rhtmlを作成

============================================================

現在時刻表示


<%= @timestamp %>
<% form_tag :action => :input do %>
<%= submit_tag '戻る' %>
<% end %>
============================================================


hello_controller.rbに以下のようなメソッドを追加

============================================================
def time
@timestamp = Time.new
end
============================================================


■Routing

アプリケーションにアクセスするためのURLパターンをデフォルトの
形式ではなく、変更したい時には、config/routes.rbを編集する。


■Modelの利用

============================================================
Class HelloModel
attr_accessor :name
end
============================================================

Rubyでは上記のように記載することでJavaのプロパティに相当する
インスタンス変数を確保出来る。setterやgetterメソッドを用意
する必要はない。(以前バージョンのRubyには、この省略表記が
なかった。)

HelloModelを記述するファイル名はhello_model.rb


■実習:書籍管理アプリの作成

書籍を管理するウェブアプリケーションをRailsで作成する。
基本的には昨日デモされたものと同じ


■database.ymlの修正

開発、テスト、本番の各DBに以下の2行を追加する。

password: password
encoding: utf8


■MySQLへrootスキーマで接続

C:\work\summer2007>C:\work\summer2007\mysql-5.0.45-win32\bin\mysql.exe
--user=root --password=password --socket=C:/work/summer2007/
mysql-5.0.45-win32/data/mysql.sock


■データベースの作成
以下のコマンドでMySQLの中にデータベースを作成する

============================================================
mysql> create database books_development;
mysql> create database books_test;
mysql> create database books_production;
============================================================

MySQLにおける「Database」という単位はOracleの表領域に近い
ようだが、それとも少し違う。少なくともOracleでいうデータベース
インスタンスとは意味が異なるので注意!


■Modelの作成

以下のコマンドでModelを作成

============================================================
C:\work\summer2007\books>ruby script/generate model book
title:string author:string publisher:string isbn:string
published_on:date
============================================================


■Modelの構成をDBに反映(移行:Migrate)する

以下の処理を実行することでDBオブジェクトが作成される

============================================================
C:\work\summer2007\books>rake db:migrate
============================================================


■データベースの情報を元にControllerやViewを作成する

これが、一大ブームを巻き起こしたという噂のアイツ(scaffold)だ!

============================================================
C:\work\summer2007\books>ruby script/generate scaffold Book
============================================================

scaffoldとは「(建築用の)足場を組む」というような意味がある
らしい。ようするにWebアプリのたたき台になる雛形を自動生成
してくれる処理である。


■サーバの起動

WEBrickを起動します。

============================================================
C:\work\summer2007> cd books
C:\work\summer2007\books> ruby script/server
============================================================


■Active Record

Railsでは、データベースへアクセスし、処理する際の手法として
Active Recordと呼ばれる設計パターンが用いられている。

Active Recordでは、データを保持する機能と、そのデータに対する
処理(振る舞い)の機能の両方を持っているオブジェクトを使って実現
する設計パターンのこと。データに対するアクセスはCreate、Read、
Update、Delete(CRUD)の4つに集約される。

※余談:
Railsでは、SQL文を直接ゴリゴリ書いて対処する方法も用意されて
いるらしい。SQLを自分で書かなきゃ安心できない人もこれで安心だ。


■books_controller.rbのもっともイヤラシイ記述

============================================================
def list
@book_pages, @books = paginate :books, :per_page => 10
end
============================================================

paginateメソッドは、:booksというシンボルの引数と:per_page
というハッシュの引数の計2つを取る。戻り値は配列型であり、
0番目の要素を@book_pagesへ代入し、1番目の要素を@booksに
代入している。


■rhtmlにおけるコードとデザインの分離問題

デザイナーとプログラマの共同作業と棲み分けをどうやって実現
するのか?

「デザイナとの共存なんて簡単だぞー。全部、キーワードに
しちゃえば、しちゃえばいいんだ!」

参考文献:キーワード型 rhtml
http://wota.jp/ac/?date=20070801


■既存のテーブルからModelを作成できるか?

結論:できないらしい。

そのほかにも主キーのカラムがIDという列名でなかったり、自動採番
のカラムでなかったりすると色々と面倒くさい事になるようだ。
う~ん、既存のテーブルをちょこっといじくるだけの簡単なアプリを
Railsで作ろうとする事は、おもったよりも困難な様子だ。

社員番号なんかの入力項目を主キーにしている場合って結構多そう
だから、この辺りの問題を簡単に解決してくれる手法がRailsの中に
組み込まれれば、もっと使いやすくなるんじゃなかろうか。


■フレームワークの有効性について

mixiの方のコメントでRailsの使い方を覚えた方が早いか、それとも
最初から自作した方が早いか、微妙なところではないかという意見
を頂きましたが、自作の場合、作成者の力量によって出来映えや
保守性、堅牢性などにバラツキが出る可能性があります。しかし、
フレームワークを有効活用すれば、そのフレームワークが到達して
いるレベルでの品質は最低限、確保する事ができます。こういった
意味では、ある程度時間を掛けてフレームワークを学習する価値は
あるのではないと考えます。

要するに腕の悪い料理人でも半調理品の食材を組み合わせて料理を
すれば、よっぽどの事をやらかさない限りそこそこの味のもんが
作れるというわけです。無論この場合、一流シェフの味には、負け
ますが、世間のお客様全てが一流シェフの味を求めているわけでは
ないので、こういったアプローチもアリだと思うわけですよ。(笑

投稿者 abiru : 19:05 | コメント (0) | トラックバック

2007年08月08日

Ruby on Rails入門1日目

1日目終了!
だめだ、脳ミソ、オーバーフロー。。。。

2007年8月8日(水) wakhokサマースクール2007
稚内北星学園東京サテライト校 4F
講師:安藤友晴先生

------------------------------------------------------------------------------

■Railsは難しいか。

フレームワークの構造・設計としては複雑な部類に入る。
その分、ユーザがコーディングする分量は非常に少なくて済む
しかし、少し複雑な処理を実装しようとするとフレームワーク
自体の持つ複雑さが全面に出てくる場合がある。


■教材・サイト

http://www.wakhok.ac.jp/~tomoharu/rails-summer2007/


■Ruby on Railsとは何か

Rubyを利用して作られているMVCアーキテクチャによる
フルスタックWebアプリケーションフレームワーク

■フルスタックとは

Java/J2EEのフレームワークはフルスタックではない。
Web(UI)側とDB側で別々のフレームワークが必要になり、
各フレームワークごとの相性や組み合わせに起因する
問題が発生する。これがJava/J2EEのフレームワークの
難しさに繋がっているともいえる。

Railsであればフルスタックフレームワークなのでこの
問題を会費する事はできる。

DB周りだけや、Web周りだけというような部分的なRailsの
使い方も不可能ではないが、フルスタックで使う事で真価
を発揮する。


■Rails諸元

David Heinemeier Hansson(略してDHH)が作成した。
現在の最新バージョンは、1.2.3
今年の3月にリリースされた1.2になった時の変更が
非常に大きい。現在、市販の書籍は1.2に対応していない
場合が多くサンプルが記述されている通りでは動作しない
ので注意が必要である。かつてJava1.1~1.2の時代に起こった
ような変革期がRailsに起こっているとも言える。日本語化
されている1.2対応済の書籍は、まだ少ない。時期バージョンは
2.0になる予定で変更内容も大きい予定だが、ほぼ1.2で変更点は
出尽くした感がある。
1.2からJavaのDeprecatedと同様の概念が導入されたが、将来の
バージョンで切り落とされる可能性があるので注意する必要がある
Javaと比較するとドキュメンテーションの整備状況が充分ではない
と言える


■Railsのデモ

安藤先生によるRailsのデモが行われる。NetBeans等を使用するのでは
なく、コマンド操作でのRailsのデモのようです。ちなみにRailsの
プロジェクトを新規作成するためのコマンドはrailsだった。

J2EEではXMLの設定ファイルを記述する機会が多いが、Railsではほとんど
設定ファイを記述する機会がない。唯一例外が.ymlファイル(YAML形式)の
記述である。database.yml

database.ymlは接続先DBの定義を記述するファイルであるが、開発用、
テスト用、本番用の設定を分けて記述することができるように予め設計
されている。

RailsはUTF-8が必須である。一応、UTF-8以外もサポートされる事に
なっているが、実際問題、UTF-8以外では正常に動作しないと思った方が
いい。PC用のブラウザであれば問題にならないがケータイ向けのコンテンツ
をRailsで開発しようとする時には問題になる可能性が高い。
基本的には、UIからDBまで全てをUTF-8で統一した方がよいであろう。

モデル名をbookで宣言すると、テーブル名はbooksという風に複数形になる
childとchildrenのような変則形にも対応できる。

bookは1レコードに対応し、booksはDBのテーブルに対応する。
rakeコマンドでDB側にテーブルを作成する。

Railsのアプリケーションは変更後もサーバを再起動する必要はない。
開発用、テスト用のフェーズであればHotデプロイ可能


■Railsの考え方

・Convention over Configuration(CoC)「設定よりも規約」
設定ファイルを記述するのではなく、徹底的に規約で拘束するという考え方
J2EEなどでは、どのファイルがどこにあって、オブジェクト名などがどのような
名前であっても、それらの対応付けを設定ファイルに記載すれば対応できる
という考え方だが、Railsは逆で規約で様々なものを拘束する。
例えば、オブジェクト名の複数形がテーブル名になり、主キーのカラム名は
常にIDという列名になる。

・Don't Repeat Yourself(DRY)「同じ事を二度書かせない。」


DOA(Data Oriented Approach)が基本なので、最初にテーブルの設計が
ないとアプリケーション開発が始まらないとも言える。この点はOOPの
視点から見たときにRailsが批判される点である。現在主流のオブジェクト
指向設計とは逆行している。しかし、DBが既に存在するという状況は
実際の開発の現場では良くある状況であり、現実に即した設計と言うことも
できる。


■DSL(Domain Specific Language)特定用途言語

RailsはRubyでWebアプリケーションを開発するためのDSLであるとも言える。
Rubyを理解していてもRailsの文法を理解できない場合もある。
Rails特有の文法もある。
Rubyは動的言語である。


■環境構築

Windowsなら One-Click Ruby Installer を利用すると楽
http://rubyforge.org/projects/rubyinstaller/

RubyGemsはRubyのパッケージ管理システム
One-Click Ruby Installer を使っていれば既にインストールされている
そうでない人は下記サイトからダウンロード
Railsを入れる場合もRubyGemsから入れる事が一般的
http://rubyforge.org/projects/rubygems/


■Ruby

Rubyでは、すべてがオブジェクト


■クラス定義とメソッド定義

============================================================
class A

def plus(a, b)
@result = a + b
end
============================================================

@からはじまる変数はインスタンス変数になる。
メソッドの戻り値は最後に評価した値が返り値になる
この場合は @resultの値を返す


■return文を使った戻り値の戻し方
============================================================
def times(a)
return @result * a
end
============================================================

明示的にreturn文を使ってもよい
ifの途中でreturnする場合など、メソッドの最後以外の箇所で
戻り値を戻す場合などに利用する。


■インスタンスの作成

============================================================
a = A.new
b = B.new
c = C.new
d = D.new
============================================================
クラス名.new でインスタンスを生成できる
コンストラクタはinitializeメソッドに記述する

■+記号(演算子)もメソッドである
============================================================
3+2
3.+(2)
============================================================
上記の2つの式は等価である。3もオブジェクトであり、+はメソッド
2は引数である。RubyはこのようなSyntax Sugerが多い言語である。

Rubyは括弧記号の使用が省略出来るなど、非常に文法に幅があり
ゆるやかである。「一つの事をやるのにも複数の方法があっていい。」
という考えがあるようで、Javaとは対局を成す考え方である。


■動的言語

============================================================
a = A.new
puts a.plus(2, 3)
a = C.new
puts a.getName
============================================================
変数には型はない。ポインタとしての役割のみもつ
従って上記例のように同じaという名前でその名前が参照する
オブジェクトを切り替えることができる。


■インターフェースの代用

============================================================
class A
def getName
"class A"
end
#クラスA,B,CともにgetNameメソッドの定義は同一
a = A.new
puts d.doSomething(a)
puts d.doSomething(b)
puts d.doSomething(c)
============================================================
Rubyにはインタフェースはないが、こんなことができる

============================================================
methodName = "getName"
puts c.send(methodName)
============================================================
sendメソッドはObjectクラスのメソッドである。
Reflectionのようなもの??

※if文のブロックでメソッドの定義を括ってしまいある条件が成立した
場合にのみ存在するメソッドを定義することができる。
(初心者はさわるな危険!)


■StringとSymbol

============================================================
s1 = 'wakhok'
s2 = 'wakhok'
s3 = :wakhok
s4 = :wakhok

puts s1.object_id
puts s2.object_id
puts s3.object_id
puts s4.object_id
============================================================
s3とs4はオブジェクトIDが同じになる
Symbolは「単なる名前」を表すときに使われる
SymbolはオブジェクトIDの同一性を確保するために使用される事が
多く、ハッシュの添え字として多用される


■配列

============================================================
a = ['りんご', 'みかん', [1, 2, 3], 'なし']
============================================================
数値オブジェクトと文字列オブジェクトを混在させる事が可能
a[0][0]とすれば'り'が返される


■ハッシュ

============================================================
h = {:name => 'tomoharu', :address => '北海道稚内市'}
puts h[:name]
============================================================
配列は添え字が数値だったが、ハッシュ要素に対応する添え字が
オブジェクトである。


■ブロック

============================================================
a = [1, 2, 3, 4, 5]
a.each do |n|
puts(n)
end
============================================================
eachはメソッドである。doからendまでがブロックであり、ブロック
自体がeachの引数であるともいえる。Rubyのコードでは上記のような
ブロックが多用される。
eachメソッドを利用することで配列の各要素を対象にして、ある一定
の処理(ブロック)を実行できる。

投稿者 abiru : 18:25 | コメント (2) | トラックバック

2007年08月07日

Oracle10g XE

Oracle Database 10g Express Edition を自宅のTurbolinux環境にインストールしてみた。無論、Turbolinuxは
正式にサポートが表明されているディストリビューションでは無いので、動作しなくても文句は言えないし、何かトラブルがあっても誰かに助けを求められない。しかし、元々フリーな製品だし、サポートも元々ないし、DBとして実用する予定も無いので、とりあえず入れてみたら、入ったし、とりあえずは動いているようだ。

しかし、このExpress Editionという製品、評価・検証用にしておくにはもったいないコンセプトの製品である。

私がExpress Editionをイイ!と思った。ポイントは以下の通り。

・rpmで一発インストール!
・事前に要件チェックが実行され、メモリやスワップ不足が指摘される
・基本的な管理作業は全てAPEXのインターフェース経由で行う。
・KDEメニューにDBの起動/停止など基本的なアイコンが用意される

特にrpmで一発インストールには感動すら覚えた。インストール作業に苦戦してサポートに問い合わせて来るお客様が多い中で、なぜ正式な製品版もこのようにしないのだろうかと疑問さえ感じた。無論、rpmで一発インストールにしてしまうことで、また別の問題が発生する事は理解しているけれど、そのサーバで他のOracle製品は動作させるつもりはないというような環境の場合に限って、実運用環境でのrpm採用も検討してみる価値はあると思う。

いっそ、Express Editionという製品をStandard Edition Oneに継ぐ低価格化製品として販売してしまってもいいのではないだろうか。ただし、サポートはWebのみ、10:00〜17:00の平日限定とかにして・・・。少なくともMS-AccessやSQL Serverのライトなユーザにはイイかもしれない。

逆にExpress Editionを実運用という側面で考えると以下のような問題点が考えられる。

・ORACLE_HOMEのパスが固定で変更できない。
・Oracleユーザ名がoracleのみで変更できない。(複数の製品が同居できない)
・SID名も固定
・キャラクタセットは日本語を使う場合、UTF-8に固定
・データ量の上限が4GB

でもお客様の求めるレベルと予算と使い方がマッチするなら充分に製品として選択する事も可能なのではないだろうか。上記に挙げた問題点だって技術的にクリアしようと思えば可能なハズだし。

後は、PSRや個別パッチを自動的にダウンロードして適用までやってくれるOracle updatesとでも言うべき機能が実装されれば、最高なんだけどな。


以下は自分のturbolinux環境でテストした際の作業メモ
[root@ibmtpr51 ~]# rpm -ivh /home/abiru/work/oracle-xe-univ-10.2.0.1-1.0.i386.rpm
準備中... ########################################### [100%]
This system does not meet the minimum requirements for swap space. Based on
the amount of physical memory available on the system, Oracle Database 10g
Express Edition requires 990 MB of swap space. This system has 466 MB
of swap space. Configure more swap space on the system and retry the installati
on.
エラー: %pre(oracle-xe-univ-10.2.0.1-1.0.i386) スクリプトの実行に失敗しました。
終了ステータス 1
エラー: install: スクリプト %pre の実行に失敗しました (2)。oracle-xe-univ-10.2
.0.1-1.0 をスキップします。


[root@ibmtpr51 ~]# dd if=/dev/zero of=/swapfile2 bs=1024 count=1048576
読み込んだブロック数は 1048576+0
書き込んだブロック数は 1048576+0
[root@ibmtpr51 ~]# mkswap /swapfile2
Setting up swapspace version 1, size = 1073737 kB
[root@ibmtpr51 ~]# swapon /swapfile2
[root@ibmtpr51 ~]# cat /proc/swaps
Filename Type Size Used Priority
/swapfile file 1048568 565232 -1
/swapfile2 file 1048568 0 -2
[root@ibmtpr51 ~]# vi /etc/fstab
[root@ibmtpr51 ~]# rpm -ivh /home/abiru/work/oracle-xe-univ-10.2.0.1-1.0.i386.rpm
準備中... ########################################### [100%]
1:oracle-xe-univ ########################################### [100%]
Executing Post-install steps...
You must run '/etc/init.d/oracle-xe configure' as the root user to
configure the database.

You have new mail in /var/spool/mail/root
[root@ibmtpr51 ~]# /etc/init.d/oracle-xe configure

Oracle Database 10g Express Edition Configuration
-------------------------------------------------
This will configure on-boot properties of Oracle Database 10g Express
Edition. The following questions will determine whether the database should
be starting upon system boot, the ports it will use, and the passwords that
will be used for database accounts. Press to accept the defaults.
Ctrl-C will abort.

Specify the HTTP port that will be used for Oracle Application Express [8080]:

Specify a port that will be used for the database listener [1521]:

Specify a password to be used for database accounts. Note that the same
password will be used for SYS and SYSTEM. Oracle recommends the use of
different passwords for each database account. This can be done after
initial configuration:
Confirm the password:

Passwords do not match. Enter the password:
Confirm the password:

Do you want Oracle Database 10g Express Edition to be started on boot (y/n) [y]: n

Starting Oracle Net Listener...Done
Configuring Database...Done
Starting Oracle Database 10g Express Edition Instance...Done
Installation Completed Successfully.
To access the Database Home Page go to "http://127.0.0.1:8080/apex"

投稿者 abiru : 11:19 | コメント (0) | トラックバック

2007年08月05日

60歳のLinuxユーザ(2)

私が愛用していたThinkpad s30につづいて、母が愛用しているThinkpadが2週間ほど前、壊れました。動作中にブルースクリーンを表示してダウンします。元々中古7万円で購入したものが7〜8年頑張ってくれたので、充分でしょう。

後継機は、オリックスレンテックさんに中古・良品のThinkpadを発注済み。でも到着までは、だいぶ掛かりそう。その間、母は、ゲームもできずメールも読めないので、手持ちぶさたの様子です・・・・。

そこで、今日、私が使っているTurbolinuxのマシンに母親用のアカウントを作成して使わせてみた。

ハッキリ言って母は、パソコンやOSに関する知識は皆無なので、Yahoo!ゲームが出来て、メールが読み書きできれば問題ない。おそらくきっとWindowsというものについても理解していないだろう。なので、Turbolinuxの環境でも問題なく使えるらしい。多分本人は「デザインが違うなあ。」ぐらいにしか思っていないはず。

母は、Winbiffを愛用していたので、Thunderbirdの画面を見たときに「ゆーびん屋さんがいないぢゃないっ!」と文句は言っていたが、「パソコンが違うのだから、デザインはちょっとぐらい変わるものだ。基本的な使い方は一緒だよ。」という私の超アバウトな説明に2秒で納得の様子。

今日、ここに60歳のLinuxユーザが誕生す。

多少、OSに関する知識があると「Linux=難解」というようなステレオタイプがあり、拒否反応を示すが、ウチの母のように「Yahoo!ゲームとメールをする機械=ぱそこん」という理解レベルだと、全く問題にならない事が今日、証明された。

これは、よく言われる事だが、ユーザはOSが使いたいのではなく、パソコンを使うことで得られるサービスを受けたいだけなのだ。今日の出来事で、それを改めて実感した。今回の母のような成功事例を実現させるには、OSの違いやOSの機能を意識させることなく、ユーザが安心してサービスを享受する事に専念できる環境を整備し、使用や運用をバックアップしてあげられる体制が必要なのだと思う。

末端のパソコン・ユーザの満足度を向上させるには、街の電気屋さん的な「ITコンシェルジュ」の存在が不可欠なんだなあと、改めて痛感した。

新しく来るマシンはWindowsXPの予定であるが、こっそりLinuxに入れ替えてしまおうかな。。。。

投稿者 abiru : 22:11 | コメント (0) | トラックバック

2007年07月07日

Linux環境でNetbeans Ruby Pack

外出時に愛用していたThinkpad s30が入院中なので、現在、自宅で使っているThinkpad R51(Turbolinux FUJI)の環境にNetbeans Ruby Packをダウンロード中です。。。。デケェよ。さて、我が愛用のLinuxでも無事に動きますやら?(理論上は動くはず。)

投稿者 abiru : 23:53 | コメント (0) | トラックバック

オラのThinkpadがぁぁ!!!

7月2日のこと、新入社員の時、ボーナスで衝動買いし、以降、要所、要所で重用してきたIBM Thinkpad s30(2639-42J)が故障しました。正確には、液晶の右4分の1程が映らなくなりました。色とりどりの縦線が走っています。明らかに液晶パネル周辺での故障です。数年前にも液晶のバックライトが点灯しなくなった事があるので、通算2度目の故障です。どうも、このマシンは、液晶周りに持病があるようです。

最近になって、またこのマシンを多用している時期だっただけに影響が大きいです。ひとまず今度の木曜日のナイトセミナーが大問題です。その他作成中のドキュメント等はUSBメモリを使用して待避させました。

実家(IBM)へ入院させると修理費用が高くなる事は判っていたので、それ以外で修理を請け負ってくれる業者を探しました。現在、業者に発送し、結果待ちです。さて、どうなることやら。

投稿者 abiru : 23:36 | コメント (0) | トラックバック

2007年07月01日

Berkeley DBをサポートして下さい。

自分のブログで使っているMovable Typeの最新版 Movable Type 4 Beta4がリリースされていたので、使ってみようと思い早速、自分が借りているレンタルサーバにインストールした。

で、セットアップウィザードを開始したら、データベースの選択肢にBerkeley DBが無いじゃありませんか、さっそくGoogle先生に問い合わせしたところ、「Berkeley DBはサポートされていない。」という情報が!!

これがBetaだけで、正式リリースされる製品版ではサポートされるのかは全くの不明だが、Movable Type 4が非常に高機能化している事を考えると、もはやBerkeley DBでは役不足なのだろうか。そうだとすれば、製品版でもサポートされない可能性が高い。

こまった。。。私が契約しているさくらインターネットのライトプランでは、Perl+Berkeley DBの組み合わせでしかMovableTypeが使えないのに・・・。スタンダードプランにすればMySQLもいけるハズだが、値段が上がるしなあ。。。MovableTypeのためだけにレンタルサーバを移行するのも気が引けるなあ。。。

お願いしますよ!シックス・アパートさん!!!

投稿者 abiru : 03:15 | コメント (0) | トラックバック

2007年06月30日

Googleデスクトップ

Linux用「Google Desktop」のベータ版が公開されたというニュースを見つけたので、さっそく入れてみた。

サポートするLinuxのディストリビューションとバージョンは、Debian 4.0、Fedora Core 6、Ubuntu 6.10、Novell SUSE 10.1、Red Flag 5だけということだったけど、自宅のTurbolinux FUJIに入れてみたら、ひとまず動作している模様です。スタートメニューには登録されなかったけどね。未だにKDEのスタートメニューの設定/管理方法が理解できません。Windowsのようにショートカットを作成すれば良いというわけではなさそうだ。今、OSを再起動したらタスクトレイに常駐して索引を頑張って作成している模様です。さて、どうなることやら。。。。


実は、Googleデスクトップは最初にリリースされた頃から興味を持っていたんだけど、どんな構造とか仕組みなのかがイマイチ理解できず、なんだかGoogleにHDDの中身を覗かれるようでいやだったのでずっと、保留してました。その後、Googleデスクトップに関する色々なセキュリティ上のアドバイザリが出たりして余計に慎重になっていたのです。

じゃあ、なんで今になってインストールするの?っていうことになるんだけど、その後、Googleデスクトップのせいで大きな事故が起こったというニュースも聞かないし、使っている人もたくさんいるみたいだし、バージョンアップも繰り返されているので、そろそろ大丈夫かなあ・・・。という、あまり理論的理由が存在しない状態なわけです。技術者としては、ダメですな。。。

まぁ、Googleデスクトップのせいで私がPCの中に溜め込んでいる恥ずかしいデータが外部に漏出するような事件が発生したら、みなさん、手を叩いて笑ってやってください(w

投稿者 abiru : 12:39 | コメント (0) | トラックバック

2007年06月28日

wakhokナイトセミナー第1回目

18時きっかりに退社して、一路、秋葉原へ・・・。といっても別にジャンク屋巡りをしに行ったんじゃありません。ましてメイドさんを愛でに行ったわけでもございません。

wakhokナイトセミナー
NetBeans Ruby Packで学ぶRubyアプリケーション開発(全4回)

↑というのに参加していたんでございますわ。

今まで仕事でJavaばかりやっていたんですが、少し食傷気味でしたので、目先を変えて別のオブジェクト指向型言語を勉強すれば、また何か違った視野が開けるかなぁと考えて参加しました。

やはり、自分の知らない新しい事を勉強するのは、楽しいですね。無論、経験の無い言語を学ぶわけですから、脳ミソは疲れますが、今まで正しいと思い込んでいた知識を少しずつ訂正していく作業はなかなか面白いです。

今まで私は、「オブジェクト指向=Java」と理解していましたが、Javaの世界のお約束がオブジェクト指向の世界から来ているお約束なのか、それともJava特有のお約束なのかを区別していませんでした。今後、Ruby(Java以外のオブジェクト指向型言語)を勉強することで両者の共通点と相違点を正しく区別できるようになれればと思います。

投稿者 abiru : 23:34 | コメント (0) | トラックバック

2007年04月27日

mixiSyncを使用したテスト投稿

これがうまくいけば、自分のブログとmixiに同じエントリを投稿できる!!!

投稿者 abiru : 12:34 | コメント (0) | トラックバック

2007年04月25日

mixiと外部ブログの併用

私は外部ブログを書いていてmixiでもそのブログへリンクする形にしていますが、ここ最近、マイミクの複数の人から「携帯からmixiやってるから日記が見られない~!」という意見をいただきました。このエントリは、その対策テスト用です。

でもって、肝心のマルチポストのテスト
  generated by feedpath Rabbit

投稿者 abiru : 20:27 | コメント (0) | トラックバック

2007年04月13日

How do you like Japanese?

Feedpathのリニューアルに伴ってカテゴリ単位での新着情報をナナメ読みすることができなくなった。これまでは新着記事のタイトルだけをざあっと、流し読みして気になるタイトルのものだけを読んだりできたが、これが仕様変更でできなくなった。これが意外とストレスが溜まる。そこらじゅうのブログやサイトで同様の不満が挙がっているので、いずれ仕様変更がされると思うが、待ちきれないのでGoogle Readerを使ってみることにした。

OPMLで移行したのだが、どうやらカテゴリ名(フォルダ名)にマルチバイト文字を使用していると、Googleでは無視される。

かくして60以上のFeedが最上位の階層に全て一列に並ぶ事態となり、げんなりしていた。

しかし、ウェブ上で同様にFeedpathからGoogle Readerに移行した人のブログを読んだところ、カテゴリ名がアルファベットであればカテゴリ分けもそのままの状態で移行できるらしい。

さっそくFeedpath上で全てのカテゴリ名をローマ字表記に変更後、OPMLを再作成、Google Readerへ再登録したところ、期待した通りにカテゴリ分けがされた。

Google Readerでもカテゴリ単位での新着情報をナナメ読みすることができるのかは現時点では不明だが、こっちも使ってみようと思う。

Google先生!カテゴリ名に日本語通るようになりませんかね?

投稿者 abiru : 12:31 | コメント (2) | トラックバック

2007年04月11日

feedpath.jpのRSSリーダ

feedpath.jpのRSSリーダがリニューアルしたとたんに使いにくくなったと、そこらじゅうのサイトやブログで文句を言われている。開発に携わった方々のご苦労は察するにあまりあるが、たしかに使いにくい・・・。これも多数のサイトで言われている事だがフォルダごとに新着のフィードを一括で読める機能が削除されたのイタイ。。。やはり、こういう無数のユーザを抱えているサービスでは、あかじめ新バージョンをβで公開しつつ、以前のバージョンとの並行利用期間を用意してユーザの反応を見ながら修正を実施して、やんわりと移行して行くのが良いのではないだろうか。

初心者がとっつきやすくすることと、コアなユーザの満足を両立させるための設計やさじ加減の難しさを改めて痛感した。

投稿者 abiru : 12:35 | コメント (0) | トラックバック

2007年02月20日

富士通 FM-77AV40EX

小学5年生になり、お受験戦争が開戦されクラスメイトの間に殺伐とした空気が流れはじめた頃、お受験予定がない私は早々に戦線離脱した。以後、学校は給食を食べに行く場所になった。

下校すると自分用のフロッピーディスクを持って一目散にこどもの城へ行き、パソコンをやりに行く日々で、通っていた小学生パソコン教室は、初級・中級・上級の全てを修了した。

その後、小学生パソコン教室修了者が参加できるパソコンクラブというものに所属した。

この時使用していたのが、富士通 FM-77AV40EXだった。FM-77シリーズの後継機で640x400の高解像モードや26万色モードが利用できるハイエンドマシンだった。でも、相変わらず、そのマシンを使ってやっている事は、FM-Logoだった。やがて先輩たちにF-BASICを教わって使うようになり、今考えると、超くだらないプログラムを量産していた。

特に下らなかったのは「BABEL」という赤文字を永久ループで表示するプログラムだった。このプログラムの意図が判る方は是非、コメントして頂きたい。

この頃から「パソコンでゲームをやる」という悪の道を先輩たちに教えられ、信長の野望やら、A列車で行こう、など様々ゲームで遊ぶようになった。

やがて、こどもの城だけでは飽き足らなくなり、親を説得、これまで親が貯めておいてくれたお年玉貯金を全て使って富士通 FM-77AV40EXを購入した。確か当時の店頭価格が12万5500円だったと思う。今考えると、今までに購入したPCで、これが最も高額なPCではないかと思う。

私は小学校に友達が全くいなかった。クラスメイトと一緒に野球をやったり、鬼ごっこに参加できない身体なので、友達をうまく作る事ができなかった。

しかし、パソコンクラブは学校の教室とは全く違った。パソコンという共通テーマがあり、それに参加できれば仲間に入る事ができた。しかも年齢幅が小学生から高校生までと広かったので、先輩たちが色々教えてくれた。パソコンに関する事も、それ以外の悪い事も。。。

パソコン少年といえば、家にこもってパソコンを一人で触っているというイメージがあるが、私の場合は逆でパソコンに出会う事で多くの友人に出会い、様々な経験をする事ができた。この当時の仲間と今でも飲み会を開催する事があるが、本当に良い仲間に出会えたと思う。

私に新しい遊び場と仲間を与えてくれたパソコン、それが富士通 FM-77AV40EXであった。

投稿者 abiru : 19:16 | コメント (4) | トラックバック

2007年02月19日

富士通FM-77

またもや社内SNSに書いた日記の転載です。(汗

富士通FM-77

MSXでコンピュータとの衝撃的なファーストコンタクトを果たしたものの長続きはしなかった。大人向けのリファレンスマニュアルを読んでBASICを学ぶのは、遊びたい盛りの小学生には、あまりにも過酷だった。

しかし、目の前にはとってもスゴイことができそうな「パソコン」という機械が存在していた。「なんとかコイツを使いこなせるようになりたい」「スゴイことがしたい。」という思いは日々強くなって行く一方だった。

今では、どうやってその情報を入手したのかも判らないが、ある日、渋谷にある「こどもの城」に「小学生パソコン教室」というものが存在する事を知った。私は両親に月謝を払ってもらって、その講座に通い始めた。

その講座で使用したのが「富士通 FM-77」だった。講座内容はFM-Logoというプログラミング言語を学ぶものだった。Logo言語はタートルグラフィックスという手法の言語で画面上に表示されたタートル(亀)へ「fd 100(「前へ100歩あるけ」の意)」というような形式で命令を出し、亀が歩いた軌跡に線が引かれる事で簡単なグラフィックスを描画するというものだ。

今考えれば、単なる図形描画処理だが、コンピュータが次々と私の命令を実行し次第に画面上に四角形や三角形や、様々な幾何学模様が描き上げられて行くのが楽しくて仕方なかった。

Logo言語は子供向けの教育用言語だったので、教材やマニュアルも小学生向けに作成されており、飽きやすい子供だった私でも難なく習得することができた。

ここで、私はコンピュータがやみつきになった。講座は毎週日曜日のみの開催だったが、平日も学校が終わると自分のフロッピーディスクを持ってこどもの城に通ってひたすらLogoで遊んでいた。ほぼ毎日。。。学校の勉強そっちのけで。。。

ちなみにこのFM-77というパソコン、8bitマシンでFDDを2つ搭載、色数はたしか8色だった。きっとファミコンと同等かそれ以下の性能だ。今考えるとキーボードのストロークが今使っているThinkpadよりも、うんと深くてキータッチは重たかった。リターンキーも小学生にとっては巨大で重く、スペースキーに至っては「スペースバー」と呼ぶほど長く、そして重かったかった。だから力を込めて打鍵しないとキーが反応しなかった。

それを私は小学生の小さな手で毎日のように

がちゃがちゃがちゃ・・・がっちゃ・・がっちゃ・・・
(文字キーの音)
ばしーん!(スペースバーの音)
がちーん!(リターンキーの音)

という具合に力一杯に打って遊んでいた。

三つ子の魂百までというけれど、この頃のキーの叩き方の癖が今でも抜けない。だから、オフィスで「あびるさんのキーの打鍵音がうるさすぎです。」という苦情を貰ったのも一度や二度では無い。あまりに強く打鍵しすぎて壊れてしまったキーボードもある。

職場の皆様、お許し下さい。これは私の幼少期にの体験と習得によるもので、簡単には矯正出来ないのです。

その後、このFM-77から始まる多くの出会いと様々な出来事が、私の人生を大きく方向付けて行く事になるのだが、それは次回、記載することとする。

投稿者 abiru : 01:56 | コメント (2) | トラックバック

2007年02月16日

YAMAHA MSX

以下、社内SNSに書いた日記の転載

「YAMAHA MSX」(詳細・型番不明)

これが、私が生涯で初めて触れたコンピュータというもの。詳細な型番は失念してしまった。親類の方が不要になったものを譲り受けたものだった。MSXにはファミコンのカセットのようなカートリッジが装備されていて差し込むだけでゲームができた。たしか今から考えると恐ろしくしょぼいサッカーのゲームに熱中していたっけ。

MSX-BASICも搭載されていたが、アホ小学生の私に使えるわけがなかった。それでも「コンピュータは何か凄い事ができる機械のハズだ。」と信じリファレンスマニュアルを1ページ目から読んでは何度も挫折した。

当時、リファレンスマニュアルの1番最初には「ABS関数」の項があった。ABS関数の説明文の最初には確かこう書いてあった「ABS関数は絶対値を演算します。」と。。。「関数」「絶対値」「演算」いずれも小学校4年生には読めず、しかも理解不能で宇宙からの言葉のようだった。

そんなある日、リファレンスマニュアルをペラペラめくっていると、次のような記述が目に入った。

PRINT 1+1

たしかダイレクト・ステートメントに関する項だったと思う。何気なくこのコマンドをマネして入力してみた。どうやってReturnキーを押す事を知ったかは今では定かではない。しかし、私はEnterキーを間違いなく
押した。すると目の前のテレビの画面は以下のように変化していた!

PRINT 1+1
2
OK

1+1=2これなら小学生の私にも理解できた!しかもコンピュータはご丁寧にも私に対して「OK」と返答までしてきた!次の瞬間、私はW杯でGOALを決めたサッカー選手の如くガッツポーズで天を仰ぎ絶叫した。脳内では生まれて初めてコンピュータという複雑怪奇な機械に命令し、それに従わせた事を祝うファンファーレが鳴り響いていた。ように感じる。

ともかくこれが私とコンピュータというものの、ファーストコンタクトだった。今でもこの日の感動を昨日のように鮮明に覚えている。

その後、とりつかれたように様々な数字の組み合わせで四則演算を繰り返し、何度も何度も、実行してそれが間違いなく計算をしている事を確認した。

この日から私のコンピュータ・ヲタな人生が幕を開けたと言っても過言ではない。ヘンタイと言われてもいい、この日私はコンピュータに一目惚れした。

今でもコンパイルが通った時、意図した通りの処理結果が得られた時、「おっしゃあぁぁ~!」とガッツポーズを決める瞬間にあの日の事を思い出す。

仕事が辛くてじけそうな時にも、目を閉じてあの日の感動を反芻する。

大人になった今も、あの日と同じ感動を求めてPCの前に座る自分がいる。

これが私の出発点・・・。

投稿者 abiru : 23:33 | コメント (1) | トラックバック

2006年09月21日

feedpath.jpのブログエディタは私には不要でした。

暫く使ってみたfeedpath.jpのブログエディタですが、正直言って私には不要でした。今はMovableTypeの標準UIから投稿しています。

エントリを書く際、文字修飾は殆どしないし、複数のブログに同一内容のエントリをマルチポストするような使い方もしないし、あまりfeedpath.jpのブログエディタを使う事の利点を見いだす事ができなかったのが、主な理由です。

feedpath.jpのブログエディタ自体は、非常に意欲的で興味深いサービスなのですが、私のブログの使い方では、その魅力を発揮する機会が無かったようです。

なんか、こう、ブログの全く異なる使い方を提供してくれるサービスだったらもっとハマったのかもしれません。

一方、後発で使用し始めたFeedリーダは非常に便利に利用しています。なんといってもRSSを提供していないサイトも登録できる事がありがたい。今まではMyRSS.jpというサイトのサービスを中継利用することで問題解決していたけど、Feedリーダであればこういった手間が省ける。

RSSというものが完全に普及していない現状ではこのような補完的機能を提供するサービスが必要なのかもしれない。

自分のウェブページの「新着情報」のページを元にRSSの生成を代行してくれるサービスとかがあれば、もっとRSSの利用が推進されるのではないですかね。とか考えてみた。

え!?MyRSS.jpでもうできる?

投稿者 abiru : 23:28 | コメント (0) | トラックバック

2006年08月27日

GMailの迷惑メールフィルタがスゴイ!

GMailの迷惑メールフィルタがスゴイ!

今までThunderbirdに付属しているベイジアンフィルタや、さくらインターネットの会員向けウェブメールの迷惑メールフィルタを使ってきたけれど、いままでのどのフィルタよりも精度が高いです。しかも学習一切なしの初回から非常に高い命中率で迷惑メールをブロックしてくれます。もっとも、100%というのは不可能なので1回だけ日本語のスパムをブロックできなかったけど、今までのフィルタと比較しても、今のところは良い成績だと思う。

これで、迷惑メールとおさらば出来る生活ができるかも!

さっそくレンタルしているサーバに届くメールを全てGMailに転送するように変更し、自宅PCのThunderbirdのPOP3/SMTPの接続をGMailに変更した。多少、メールの配送に遅延が発生するかもしれんが、まあ、実用上は問題の無いレベルでしょう。

  generated by feedpath

やはり、こういった学習型のフィルタは分母が大きいほど制度が上がるのでしょうね。GMailは正確な会員数を公表していないようですが、数百万人オーダーの会員がいるようですのでフィルタの学習量がケタ違いなのかもしれません。

feedpathでブログを書いてGMailでメールを読み書き・・・。なんともWeb2.0的と言っておきましょう。

投稿者 abiru : 23:21 | コメント (0) | トラックバック

2006年08月21日

GMailに招待して下さいませんか?

GMailのアカウントが欲しいのですが、どなたか、私をGMailに招待して下さいませんか?

このサービスがGoogleでスタートしてから既に2年近くが経過しているでしょうか。今頃になって触ってみたくなりました。どなたかGMailの招待状を持っておられる方で、私、阿蛭栄一(あびるえいいち)に招待状を送ってやっても良いよ。という心の広いお方がいらっしゃいましたら、ご一報ください。

投稿者 abiru : 11:41 | コメント (5) | トラックバック

2006年07月17日

Movable Type 3.31にアップグレード

このブログで使用している Movable Type を最新版の3.31-jaにアップグレードしました。

もっとも、このブログを読んでいる人にはなんの変化もありません。ただブログを書く私の方が色々楽になるなど、恩恵に預かる事が出来るわけです。ちなみにこのエントリは新しいバージョンの動作テストも兼ねております。このバージョンからデフォルトのプラグインの中にStyleCatcherが入っているので、頻繁にデザインを変更するようになるかもしれません。だんだんMovable Type のインストールやアップグレードが簡単になってきました。いいことです。

投稿者 abiru : 21:06 | コメント (0) | トラックバック

2006年06月12日

今年はサマースクールには行きません。

突然ですが、ご報告です。

「今年はサマースクール(稚内)には行きません。」

別に特別な理由はありません。ただ今年の講義内容に私の興味をそそるものが無かったのと、私には内容が高度過ぎてついて行けそうにないものだったからです。毎年お世話になっている稚内北星学園大学の皆様、本当にごめんなさい。稚内少年自然の家稚内温泉や、たこしゃぶには未練があるのも事実ですが、本来の目的に興味が無いのに参加するのは、ちょっと失礼かなと・・・。

せめてもの罪ほろぼしにリンクを張って宣伝です。

サマースクール2006 in 稚内

ちなみに私が参加しない理由は以下の通りです。

・システム管理入門コース
・ルーティングとネットワーク管理
 →UNIXやネットワーク管理系の知識は今の職場では直接活用できない

・IPv6コース
 →既に前回受講した。職場の担当製品がIPv6未対応

・Service Component Architecture(SCA)
 →先進的過ぎて理解できる自身なし。今後職場で活用可能かも現段階では不明

・ EJB 3.0コース
 →既に前回受講した。職場の担当製品が対応しているが問い合わせ等が発生した実績全く無し

・JSFとAJAXコース
 →JSFは既に前回受講した。AJAXは個人的に「?」だし職場での活用も全く未知数


んじゃあ、どんなコースがあれば参加するのよ!?と言われそうだが・・・・。私は昨今のJ2EEやJava関連テクノロジの拡大路線に疑問を感じているので、思い切って以下のようなコースがあれば参加してみたい。

・Ruby & RoRによるWebアプリケーション開発
・PHPによるWebアプリケーション開発
・Perlプログラミング再入門

いずれもwakhokでは取り扱うことのなさそうな内容だけど・・・。ちょっとJ2EE/Javaに食傷気味なのでたまには別のジャンルも味わいたいものです。

投稿者 abiru : 01:32 | コメント (4) | トラックバック

2006年02月05日

六十の手習い

今、私がこのエントリを書いている目の前で母が自分のPCを操作しながら、Yahoo! Japan IDを登録しようとしています。これまで、メールの読み書きと自分のPCにあらかじめインストールされているゲーム以外では決してPCを触らなかった母ですが、さすがに5年以上も同じゲームをやっていたので、飽きてきたのでしょうか。たまたま表示されたYahoo!のトップページに「ゲーム」というリンクを発見!どうやらブロキシーをやりたいらしく、Yahoo!JapanIDの登録に悪戦苦闘しております。

はてさて、うちの母がYahoo!ゲームで遊べる日は来るのでしょうか。

しかし、人間の欲求とはすごいものです。これまで、私が何度かYahoo!のゲームを紹介しても興味を示さなかったのに自分で「やりたい」と思えば、ここまで勝手にやってのけるのです。ここまで私がアドバイスした事は、「Yahoo!でゲームをやるには会員登録してYahoo! Japan IDというものが必要なんだよ。」という大前提と、「秘密の質問と答え」というものがなぜ必要なのか?という2問だけです。

なかなか、順調か・・・・・・・・。

MyHomeThinkpad.jpg

ちなみにこれが、現在の我が家のダイニングテーブルの様子です。我が家のIT関連製品に関する選択権は、ほぼ息子の私が掌握しております。従って私のThinkpad好きが色濃く反映され、母と私がダイニングで同時にPCを使うと企業のミーティングルームのように真っ黒なThinkpadが並びます。ちょっと一般家庭には無い光景かも・・・・。


と書いている最中に母がID登録に失敗したようです。

「なんだが良くわかんないエラーが出たから登録を初めからやり直す。」

と言っています。2回目に挑戦中です・・・・。

おっ!やっと、IDの登録ができたらしい!おもしろいから、口出しせずにほっとこう(笑

おぉ!ブロキシーで遊んでるよ。すげ〜。

投稿者 abiru : 22:29 | コメント (0) | トラックバック

2006年01月15日

Turbolinux FUJI

突然ですが、自宅PCのLinuxをTurbolinux FUJI Basic に移行しました。FedoraCore2から開始したLinux環境ですが、これで通算3種類目のディストリビューションです。ソースネクストから発売されたTurbolinux Multimedia以来、商用ディストリビューションのお手軽さが気に入ってしまい、すっかりTurbolinux社の戦略に乗せられております。

メインのマシンをThinkpadへ変更して以来、サスペンドやハイバネーションといったACPI関連の機能が正常動作しない事にイラついていました。Web上の情報からカーネル2.6.10以降ならThinkpad用のACPIドライバがデフォルトで入っているというような情報を目にしてバージョンアップを考えていたのですが、カーネルのバージョンアップが思いのほか大変そうなのと関連するコンポーネントのバージョンアップが必要になり、バージョンアップしなければならないコンポーネントがドミノ倒し的に波及するという事実の前に挫折していました。

そんな時に見つけたのがFUJIでした。カーネルは2.6.13です。価格もBasicなら5000円程度とお手ごろです。早速新宿のヨドバシへ行って購入してきました。まだThinkpadのACPIは正常動作していませんが、設定項目を見る限り、ちゃんと設定してやれば動きそうです。

インターフェースもどんどん洗練さえれているし、今後のTurbolinuxの動向が楽しみです。

追記:ぐは!いつのまにかファイル名のエンコーディングがEUC-JPからUTF8に変更されている~!
焦るな!convmvで日本語ファイル名を変換だ!

投稿者 abiru : 23:24 | コメント (1) | トラックバック

2005年12月10日

PCとボロディスプレイが欲しい人は連絡を下さい。

会社で使っているPCはすべてオリックスレンテック社のレンタル品なのだが、先月そのオリックスさんからレンタルアップの中古ノートPCを格安販売するので買いませんか?という告知メールが来た。価格が5万円代とお手頃だったので、即決!
Thinkpad R51を購入した。

そのマシンが土曜日の午前中に到着したので、さっそくTurbolinuxをインストールして移行作業を開始した。インストール時にinstall_acpiを選択する以外は特に変更点はなし。順調にインストールできた。

しかし、無線LANを認識させるところで大苦戦した。3回ぐらいOS再インストールしたがダメで、結局はメーカのサイトにちゃんとナレッジがあった。「灯台もと暗し」とは、まさにこのこと・・・・。

■Atheros 社製チップセットを搭載した無線LANカードの設定
http://www.turbolinux.co.jp/knowledge/public/616.html

その後、ホームディレクトリのデータ等を移行し、メールとウェブは問題なく動作するところまできた。しかし、OS起動時に無線LANが有効にならないという大問題が残ったままである。どうやら modprobe ath_pci に相当する処理がOS起動時に実行されていないようである。ちゃんとメーカのナレッジに従ってmodules.confにも記述を追加したのに・・・・。なんでじゃあ・・・。

追記:depmod -a を実行する必要があるようです。コマンド実行後はOS起動時も正常に動作しました。

今後は、デスクトップPCと巨大なディスプレイを処分して、このノートPCだけを使うつもりだ。どちらもオンボロだがほしい方がいれば連絡してほしい。

PC本体:Dell Optiplex GX-150
ディスプレイ:三菱 Diamondtron flat RDF19H

投稿者 abiru : 03:09 | コメント (1) | トラックバック

2005年09月26日

手間暇かけてwineをmakeした。

どうしてもWWWCを使いたかったので、TurboLinuxの環境でwineをソースからビルドする事に挑戦した。RedHat用のRPMで代用しようかと考えたが、予想通り依存パッケージの関連で導入できなかった。もしかしたら方法はあるのかもしれないけど、ソースからビルドした方が早そうだと思った・・・。だけども・・・。

ハマッたポイントは以下の通り

・make中にbisonがcore吐いて落ちる。
 これはbisonのバージョンを上げてやる事で対処できた。bisonのBugかな。

・構造体の定義が足りない
 さすが!Yahoo!で探せばなんでもあるね!ここのドキュメントで解決

っていうか、ヘッダファイルに構造体定義が足りないという結構痛いミスなのになぜ修正されてない。もしかして当たり前すぎて誰もパッチ作成や修正をしないのか!?だとしたらOSSの落とし穴だね。

・make installが一般ユーザでできない。ld.so.cacheに書けない。
 作業が終ってから思ったけど、これってLD_LIBRARY_PATHに書けばよかっただけ?

・TurboLinuxって不便?
やっぱし、マイナーなディストリビューションなのか?情報やRPMの絶対数が少ないよね。もっともRedHatと比較するのがいけないか・・・。

・Redhat用のRPMが動くけど問題ない?
 当初は、問題無いと思ってRedHat用のRPMを入れたけど、アップデート機能に影響が出る事が判明した。パッケージのバージョンを下げようとする。致命的ではないけれど、なかなか面倒くさいっす。

投稿者 abiru : 02:18 | コメント (0) | トラックバック

2005年09月05日

TurboLinuxへ移行

これまで自宅ではFedoraCore2を使ってきましたが、このたびTurboLinuxへ移行しました。

turbolinux.jpg

TurboLinux Multimedia 「StarSuite7」パーソナルパック付き 初回限定版

最初は単にWMP互換のメディアプレーヤーが付いているというのと、価格の安さで興味を持ったのですが、実際に使用してみると、これがなかなか素晴らしい。KDEが良くできているせいもあるのでしょうけれど、殆んどMS-Windowsと変わらない操作感、その証拠に上手くGUIのメニューを使っていけばコマンドコンソールを起動しなくても多くの作業ができそうです。あと一番びっくりしたのがUSBメモリを挿したときに自動で認識されてマウントまでできていたこと。
いやあ、本当に素晴らしい。

投稿者 abiru : 23:00 | コメント (0) | トラックバック

2005年07月21日

電脳土方(でんのうどかた)

今、自分が一番なりたくないと思っていた電脳土方に身を落としている。エンジニアなどと呼べるご大層な者ではない体力勝負の肉体労働者だ。これも全て自分の仕事の仕方が悪いのだそうだ。もっと仕事を効率的にこなせば楽に仕事ができると言われている。私にはよく判らない。とりあえず私にできることは睡眠時間を削って仕事するぐらいだ。

効率化ってなんだ。
スーパーマンにはなれない。
限界がどこにあるかはわからない。
「できません」とは言いたくない。

まだ倒れたり、死ぬまでにはだいぶ余裕がありそうだから、大丈夫だろう。

投稿者 abiru : 00:40 | コメント (4) | トラックバック

2005年06月13日

MovableType 3.17-jaにバージョンアップ

MovableType 3.17-jaにバージョンアップしました。これでコメントの通知メールが来ないという不具合も解消しました。(動作確認済)といってもスパムぐらいしか来ないんだけどね。

そりゃあ来ないよね。こんな個人の独り言を垂れ流しているようなブログ・・・・。ごく限られた知人・友人への近況報告ぐらいにしかなんねーもん。

最近は新宿歌舞伎町のはずれにあるゴールデン街で酒を呑むというスリル満点の遊び方を発見しました。これについては、そのうちゆっくりエントリを書きます。

投稿者 abiru : 19:33 | コメント (0) | トラックバック

2005年05月24日

Java言語と今後の10年

ITmedia エンタープライズ:10歳の誕生日を祝うJava

私が1995年8月に初めてJavaアプレットを見てから、もうそんなに時間が経過したのですね・・・。あの時は単なるブラウザ上でアニメーションを実現するための言語だったのに今ではエンタープライズシステムを開発する際の主要な選択肢としての地位を確立しているようです。10年掛けて成長し、巨大化していったJavaという存在。もはや、単なる言語としてのみ語る事はできなくなっています。この急速に成長しつづけ、拡大しつづけているJavaという怪物に私はいつまでついて行く事ができるでしょうか・・・。これから先の10年に注目です。

投稿者 abiru : 23:00 | コメント (0) | トラックバック

2005年05月14日

CJ DATEのデータベースシステム概論

ついにゲットしたぜ!CJ DATEのデータベースシステム概論!
db_gairon.jpg
ヤフオクで5500円でした。新品を買うと18000円なんで良いお買い物をしました。

ま、買って書棚に並べるだけの自己満足なんですけどね・・・。

投稿者 abiru : 01:59

2005年02月13日

FedoraCore2でATOK17 for Linuxが動いた!

AtokScreenShot.jpg

最初に断っておくとATOK17 for Linuxの動作環境としてFedoraCore2サポートされていません。でも、参考情報として公開されているFedoraCore3用のインストール手順RedHat9用の設定ファイルの記述を元に作業を使えば、ひとまずは動作するみたいです。今このブログのエントリもATOKで書いています。もっとも、たった今使い始めたばかりなので今後何らかの問題にぶち当たる可能性も否定できませんが・・・・。でも、昔から手に馴染んでいる日本語入力環境は使っていても非常に快適だね♪最近、あんまり良い話題が無いジャストシステムさんですが、こういった優れた製品を提供できている限りは大丈夫だろうなという安心感を感じました。がんばれ!ジャストシステム!松下電器さんが何と言おうと俺はジャストを応援してるぞ!!

サポートFAQ [ATOK for Linux]:Fedora Core 3でのインストール方法(参考情報)
サポートFAQ [ATOK for Linux]:Red Hat Linux 9 設定例

しかし、いくら参考情報であると断っているとはいえサポート対象ではないOSへのインストール方法についての情報を自社のサイトへ掲載するとは、随分思い切った対応に出ましたね。その潔さが好きです。

あと、人名(姓)の変換候補に「阿蛭:あびる」を追加してくれてありがとう。こういうきめ細かい対応には尊敬します。

投稿者 abiru : 05:38 | コメント (0) | トラックバック

2005年01月27日

Oracle BPEL Process Manager

26日・27日の2日間、稚内北星学園大学日本オラクルが共同で開催した「Oracle BPEL Process Manager」という新技術に関するセミナーを受講してきました。どうやらBPELというのは、業務システムの各機能と業務フロー(ビジネスプロセス)を切り離すことで、常に変化し続ける業務内容と作業フローの変化に対して柔軟かつ迅速に対応できるシステムを開発しようというもののようです。当然このBPELの大前提として存在しなければならないのは、SOAの考え方に基づくシステム設計であり、それに基づいて設計されたWebServicesなわけです。

一方、私がお仕事で出会う多くのお客様は、ほとんどがまだHTMLベースの従来からある「ウェブアプリケーション」を採用しています。XML/SOAP/WSDLといったテクノロジを応用してWebServiceが運用される段階までにはまだ時間が必要だとおもいます。

しかし、IT業界全体がSOAとWebServiceに向かっている事は間違い無く、BPELが大多数の人に必要とされる日がいずれやってくるでしょう。その日までにどれだけ知識を蓄え、経験を積み、爪を研いでおけるかが勝負になるとおもいます。

SOA/WebServiceはビジネスアプリケーションの世界における「セマンティックWeb化」なのかもれません。

投稿者 abiru : 22:38 | コメント (3) | トラックバック

2005年01月16日

mt.cfgが見え過ぎちゃって困るのぉ〜。

http://www.abiru.jp/blog/mt.cfgというURLにアクセスすると私のMovableTypeの設定ファイルが丸見えになっている事に気が付き、慌ててサーチエンジンで対処策を探したところ結構FAQな内容らしく、そこらじゅうに同様の情報があって一発で対処できました。情報を公開してくださっていた皆様に深く感謝致します。

ということで、このエントリでは対処策に関する情報を参考にさせて頂いたブログのエントリにトラックバックしてます。(実はこれが初トラックバック送信!)どきどき・・・♪

投稿者 abiru : 18:06 | コメント (0) | トラックバック

2005年01月07日

Wiki/blogではじまるSemanticWeb

窓の杜 - 【NEWS】“Wiki”を利用したWebページ作成を学習したいときに便利な「ひとりWiki」

このソフトはなかなか興味深いですね。
このページで使っているMovableTypeをはじめとするblogツールに
並んでこのWikiも最近流行ってますよね。もはやエディタでコツコツ
とHTMLを手入力してウェブサイトをデザインしたり構築したりする
時代は終ったということでしょうか。はじめてHTMLを学んだ1995年の
頃からすると隔世の感がありますね。

MovableTypeやWikiのようなコンテンツを簡易に作成・管理ができて
ウェブページを自動的に生成してくれるツールが普及すると、その先
に来るものはなんでしょうか。私が現段階でこれらのツールに残って
いる課題として認識しているのは、次の2つです。

・各ツール間でのXMLデータの標準化
・blogやWikiで生成されたページを統合するPortalツール

まず1つ目は、現段階では各blogツール毎にデータを内部で保持する
ために使っているXMLの形式に互換性が無いようですので、W3C等が
主導権を取って標準化に取り組む事が望まれます。

そしてXMLデータが標準化されたら、2つ目の各ページを統合する
Portalツールが必然的に必要になります。ウェブ上のコンテンツ
の大多数がblogやWikiで記述されるようになれば完全にデザイン
と文書構造が切り離された状態が実現できます。
しかも、文書構造は前述の通り標準化されたXMLスキーマによって
共通化されている状態ですから、これを利用しない手はありません。
共通化/標準化されたコンテンツを網羅的に収集しインデックス化
したり、カテゴライズして必要なコンテンツに効率的にアクセス
するための手法やツールが必要になるはずです。この時に必要に
なるのが、blogやWikiのXMLデータを解釈可能なPortalツールです。

おそらく今後、blogやWiki専門の検索エンジンが登場するでしょう
間違いなく、テクノロジの方向性は「セマンティックWeb」に向か
って進んでいるようです。

投稿者 abiru : 11:26 | コメント (4) | トラックバック

2005年01月04日

IBM Websphere

友人に頼まれて渋谷まで作業をしに行った。Redhat9のインストールや
Oracleの試使用版等はあっさりインストールできたが、さすがに
Websphereは、さっぱりわからんかった。なんとかインストールは
終らせたが、起動方法やら設定方法その他の使用法の大半が全く持って
わからん。まぁ、全く経験の無いソフトをマニュアルも無しで使おうと
しているので当然の結果だな。

渋谷から幕張本郷へ帰宅する際、新宿駅で酔客の線路内侵入があった
ようで山手線がストップしてた。一瞬、幕張へ帰宅できない事態も
考えたのですが無事帰宅できました。

投稿者 abiru : 03:00 | コメント (1) | トラックバック