« 2007年9月 | トップページ | 2007年11月 »

2007年10月の15件の記事

2007/10/30

自作FrameworkとphpMyAdminの文字化け

自作Frameworkで更新したデータをphpMyAdminで表示させようとすると、なぜか文字化けしています。
とは言え、phpMyAdminで入力した日本語もmysqlで表示させると文字化けします。
うーん、放っておいても別に良いんだけど、「問題だと認識していながら放置してはいけない」と散々言ってきているので、きちんと調べてみました。

まず、環境は以下です。
PC : Pen3 1GHz, RAM 256RAM, HDD 40GB
OS : Fedora6(MySQLとRubyは標準で入っているものを使用)

調べてみると、MySQLではサーバーとクライアントで使用している文字コードが違うと、内部で変換して表示するらしい。ということで、これらの使用する文字コードを強制してみます。

# sudo vi /etc/my.cnf
...中略...
[mysqld]
default-character-set=utf8
...中略...
[mysql]
default-character-set=utf8
[mysqldump]
default-character-set=utf8
# sudo /sbin/service mysqld restart

おぉ、自作Frameworkで入力した日本語が全部文字化けしてる...
ということで、データを移行しなくてはなりません。以下のコマンドでバックアップデータを作成します。
* 表示上、改行してありますが一つのコマンドです。

# mysqldump -u [username] --default-character-set=utf8
   [databasename] > output.sql

バックアップデータを開いて、

CREATE TABLE `books` (
  `id` int(11) NOT NULL,
  `name` varchar(256) NOT NULL,
  `writer` varchar(256) NOT NULL,
  `category` varchar(256) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
上記の赤い部分を修正。
# mysql -u [username]
mysql> drop database [databasename]
mysql> ¥q
# mysql -u [username] [databasename] < output.sql
これで、phpMyAdminの文字化けは修正完了。嘘でした。これだけではだめです。
mysqldumpで出力したものはMySQL用の情報が埋め込まれていて、そこに文字コードを保存しているようで、テーブルの宣言部分とデータ部分だけを取り除いて、加工したものを使ってリストアする必要がありました。

今度は自作Frameworkです。
MySQLでは使用する文字コードをあらかじめ宣言する必要があるらしいので、データベースと接続するとすぐに文字コードをUTF-8と指定する事にします。
「dbconnect_mysql.rb」を以下のように改造。

...略...
  def open(host, user, pass, database)
    
    @db = Mysql.new(host, user, pass, database)
    @db.query("set names utf8")
    
  end
...略...

これで修正完了。きちんと文字化けしないで使えるようになりました。
他にも「削除の確認画面追加」や「SELECTフォームの整列方法追加」など、小さな改造を加えてあります。また、Webrickでもmod_rubyでもスクリプトに変更を加えないで使用できるようにもなりました。

ということで、興味のある方は下記リンクよりダウンロードしてみて下さい。

「framework4.zip」をダウンロード

また、おかしなところがあればご指摘頂けると幸いです。

| | コメント (0) | トラックバック (0)

2007/10/29

弟が亡くなって3年が経ちました

本当に早いものです。
それが3年前だったとは今でもにわかに信じられません。それはつい最近のことだったというようなものではなく、そんな事は無かったような気がするのです。普段から会う機会が少なかったので、最近長く会っていないだけという気がしてならない。

おかしなものです。
3年前、泣くのに疲れ果てるほど泣き、お葬式も納骨も全部終わったのに、まだどこかにいるような気がします。

そんなものなのでしょうか。

昨日は、家族でお墓参りに行きました。
その後、三年祭を家族で行い、食事をして行事は終わり。

以前、弟に「後悔しない人生を送らなければならない」などと説教したことがありましたが、後悔しないよう精一杯生きれば生きるほど、それを中断させられたら後悔する事柄ばかりではないかと思ったりして、病気の弟に無責任なことを言ったものだと反省させられます。
弟の遺影を見る度に、草葉の陰で「なんだお兄ちゃん、偉そうなこと言ってたけど自分だってできてないじゃん」と言われているような気がしてなりません。

さてさて、今日も一日頑張るかな。

| | コメント (2) | トラックバック (1)

2007/10/28

class_exists on Ruby

PHPには、class_existsというクラスの有無を確認する関数があります。
いくつかの動作環境でスクリプトを実行する際に、特定のクラスがあるか無いかを判断してスクリプトを切り替えるのにとても役立ちます。

では、同じ事をRubyでやろうと思ったら...見つかりません。多分、僕の探し方が悪いせいだと思うのですが、わかりませんでした。そんな中、一昨日のRuby認定試験対策に参加して、rescueという構文を知ったのでこれを使って早速作ってみる事にしました。rescueはJAVAでいうTry .. cach文になるのかな。

begin
  実行したいスクリプト
rescue
  エラーが発生した場合に実行するスクリプト
end
という使い方になります。
簡単な例を示すと、
begin
  tmp = CGI.new()
  flg = true
rescue
  flg = false
end
  
if flg then
  print "CGIクラスはあります"
end
となります。では、class_existsの構文は
class_exists(クラス名)
なので、これに合わせて作ってみると、
def class_exists(name)
  begin
    eval "tmp = #{name}.new"
    flg = true
  rescue
    flg = false
  end
  return flg
end
という感じですね。 ただ、evalを使用するのには多少不安を感じるので、何か対策が必要かもしれません。とりあえず、";"は何か別の文字に置き換えるか、";"があったらfalseを返すとかした方が良いかもしれません。

ということで、

name.gsub!(/;/,'')
を追加しましょう。完成形は以下となります。
def class_exists(name)
  name.gsub!(/;/,'')
  begin
    eval "tmp = #{name}.new"
    flg = true
  rescue
    flg = false
  end
  return flg
end
「こんなの当たり前だろ」という声が聞こえてきそうですが、あえて恥をさらしてみました。誰かの役に立ちますでしょうか。

で、僕はこれを何に使うかというと、作っているWebフレームワークでWebrickとmod_rubyのどちらかを判断して実行できるようにするために使用します。
明日には他の問題も修正したバージョンを公開したいと思っています。

| | コメント (2) | トラックバック (0)

2007/10/27

RubyとPHPの優劣

昨日、Ruby認定資格試験の直前対策に参加してみて、いろいろと勉強になりました。
結構知らない事があり、試験対策問題の正答率はおよそ4割強という感じです。
今日の試験は受けないけど、次の機会は是非挑戦してみたいと思います。

ここから本題。
現在、職場で使うツールをRubyで作ったりしていますが、これを一過性のものではなく、きちんと定着させたいと思った時いくつかの障害がちらほら浮かんできます。僕がやっていることのレベルが低いせいでもあるのですが、どうしてもPHPと比較した時にRubyの優位点が見えてこない。もちろん、PHPがRubyより優れているということも感じない。

こんなことをずっと考えていると、ついついこれを本家本元の関係者にぶつけてみたくなったりして...言ってはいけないことなのかもしれないけど、頭より先に口が動く悪い癖が...
すると、

人によって"おいしい"のレベルがあって、ある程度を超えた部分でおいしさを比較すれば料理の差がわかるのかもしれないけど、舌が肥えていない人はある線を越えたらすべて"おいしい"となる。それが良いか悪いかという議論ではなく、その先を目指しているのなら"みんな同じ"ではいけない

とのことでした。結局差がわからないのは僕の実力が無いからということであって、その差がわかりたいなら差をわかるようになるしか無いということでしょう。いろいろいじりながら、ツールとしてどう使うかを模索しているレベルなのに、そのツールを作っている人達に交じってみようという試みは僕には無理があったかな?なんて考えてしまったりもして...
自分自身が自分のレベルが低いと知っていながら、批判するようなことを言っているのもおかしいし、わかっていないことを自分で突き詰めようとする努力を怠って、知っていそうな人にその答えを求めるというのもまたおかしな話。

オープンソースの自己責任性を痛感するとともに、職場でこれを利用しようとしたときのリスクを改めて考えさせられるような思いです。それもひとえに「自分の実力が無いから」ということなのでしょうけど...

でも、それ以前に「口を慎む」とか「きちんと考えてものを言う」ということを学ぶべきなのかもしれない。
あぁ、成長したいなぁ。

| | コメント (0) | トラックバック (0)

2007/10/26

昇級審査会が近づいてきました

明日出勤のため、今日はお休みでした。
ということで、ちょっと僕の休日を少し暴露してみます。

新しい職場になってからインターネットの利用がある程度制約されているため、休み時間にメールの処理をするということができず、最近返事が停滞気味だったのを午前中で一気に返事を書きました。
ちょっとメールの一部を紹介すると、来年1月に出版される本でガントチャートforExcelを、来月出版される本でガントチャートforOOoをそれぞれ紹介していただけるようです。
また出版されたらその本をブログで紹介したいと思いますので、「きむらしのぶ」という名前を本屋さんで探してみてください。
関係無いけど、ここ連日SafariでHotmailにアクセスしようとすると毎回失敗する。FireFoxでは問題無いのに...何かの作意を感じる。

妻は健康診断に行かなくてはならなかったので、10時頃から末っ子を連れて銀行へお金を下ろしに行って、帰りに子供の遊戯施設でしばらく時間を過ごしました。

お昼ご飯は妻特製のキムチチャーハンを食べ、午後からは長女の小学校で「学習発表会」があり、それを見に行きました。
今、それが終わって家に帰ったところです。

これから18時頃に家を出発して、「第一回Ruby 資格認定試験直前対策勉強会」に参加する予定。ちなみに僕は今回のRuby資格認定試験は申し込んでいなかったりして...最近Rubyをよく触っているから、後学のためにも参加してみようかなといった感じです。

おっと、タイトルと全然関係ない内容が続いてしまいました(意図的...)。

空手の昇級審査会が11月23日に行われます。僕も申し込む予定なのですが、久しぶりに教室へ参加してみると型が少し変わっていて覚えるのに一苦労。そんな中、ちょうど良いサイトを発見したのでメモしておきます。

空手道 型 一覧

早速見ながら勉強、勉強。「抜塞大」と「慈恩」は大好きな型だったのに今ではすっかり忘却の彼方にあったのですが、このサイトを見たらニューロンに程よい刺激が加わり、現在ものすごい勢いで記憶が戻りつつあります。

知り合いに同じく子供が空手を習っている人がいて、「型を覚えるのが大変」と言っていたのでこのサイトを紹介してみようと思います。

前の職場の先輩に「ブログでは一つの記事に多くの事を詰め込みすぎない」というのが鉄則だと言われましたが、たまにはこんな記事があっても良いかな。

| | コメント (0) | トラックバック (2)

2007/10/25

今週末に納車です

今まで全く車の記事を書いてこなかったのに、突然ではありますが、車を購入しました。

事の発端は、使っている軽自動車は走行中に変な音がすることと製造から10年経って燃費が悪いというものでした。ガソリンはどんどん値上げされ、これからもまた値上がりは続きそう。
そんなこんなで、最近めっぽう出る機会の多くなった妻のために車を更新する事になったのです。

購入した車は「ムーヴ メモリアルエディション」。

DAIHATSU

最近うわさのCVTエンジンで、試乗した感じはとても良く、力もありそう。まぁ、10年落ちのライフと比べたら現行のどの車種でもよく見えるわなと思いつつ、他にも車内が比べ物にならないほど広かったりして、うちら家族の用途にはぴったりな感じがします。
他の車もいくつか見たのですが、メモリアルエディションだとちょっと安めにCVT車が手に入るのとキーレスでエンジンをかけられるという面白さからこれに決めました。燃費を気にする我が家では、エアコンがオートでないというのも決め手の一つだったりもします。

10年落ちのライフは3万円で引き取ってもらえました。最終的な値段はスノータイヤや車検までのメンテナンス料先払い、その他諸々を付けてもらって、乗り出し130万ちょっとです。高いか安いかは人それぞれの判断。

これ以外にも色々あって、半年で退職金をほとんど使ってしまいました。
この半年で色々なことしたなぁ...満足と反省と後悔が入り交じる複雑な心境ですが、まぁ良いでしょう。10数年同じところに勤めたって、10年ぐらいではこの程度の退職金しか入らないということなのかな。ということは、今度の職場を定年まで勤めてもそれほどの退職金ということ...やっぱ、ヘッドハンティングとかでない限り、転職は金銭的デメリットが大きいなぁ。ま、それを承知で転職したので、仕方ないですけどね。

閑話休題。
本日、車検証の写しを手に入れたので保険の変更手続きをしようと思います。

| | コメント (2) | トラックバック (0)

2007/10/21

nl2br on Ruby

PHPには「nl2br」というたいそう便利な関数があります。
Webアプリケーションを作成するには欠かせない、僕の大好きな関数ですが、残念なことにRubyにはこの関数が無いみたい。

無いものは「作る」もしくは「探す」しかありません。ということで、またまたGoogle先生が大活躍。
ちょこっと調べてみると以下のコードが見つかりました。

mystring.gsub!(/\n/, '<br />')

あっ、これなら知ってる。ではでは、早速nl2brを作ります。

def nl2br(txt)
  return txt.gsub(/\n/,'<br />')
end

これで、安心してWebアプリケーションが作れます。
良かった、良かった、

でも、良くないこともありました。
このブログが久しく更新されていなかったにも関わらず、ここ数日は毎日更新されている...今日の試験結果は容易に推測できることでしょう。来年また頑張ろうかな...でも、ちょっと合格しているかもしれないなどと期待していたりして...マークシートはまぐれで受かることもあるからなぁ。

| | コメント (0) | トラックバック (0)

2007/10/20

Ruby FPDF...あなどれない

RubyでPDFを出力という記事を書いて、これまでの経験から日本語は無理でしょうなどと軽々しく書いてしまいましたが、意外と簡単にできてしまいました。

標準のRuby FPDFには中国語サポートはあるようでしたが、日本語のサポートは無さそうだったので、上記のような気分になっていたのですが、やっぱり調べてみるもので、いろいろと歩いて回ったらもうきちんと実現されていました。
以下に顛末をメモしておきます。

片っ端からGoogle先生に聞きまくってみたところ、RailsにはRFPDFプラグインなるものが存在し、これを使うとPDFで日本語が表示されるらしい。
RoR Wiki 翻訳 Wiki Rfpdf

リンク先から早速rfpdfをダウンロードしようと試みるものの、ファイルが無いとのこと....ということで、またGoogle先生に「rfpdf」について聞きまくってみると、上記プラグインはRedmineとやらで使用されている様子。(参考:バリケンのRuby日記)

早速、Redmineのサイトからソースコードをダウンロード、フォルダを片っ端から調べてみると、「redmine/vendor/plugins/rfpdf」というフォルダがあり、それっぽかったのでこのフォルダをサーバーにアップロード。

ファイルの読み込み先を「load '../rfpdf/lib/rfpdf.rb'」に変更し、上記参考元にあるスクリプトを参考にコードを変更すべく、下記を追記。

pdf.extend(PDF_Japanese)
pdf.AddSJISFont

完成したサンプルはこちらです。できてしまうと、あっという間でちょっと物足りないかな...なんて言ってみたりして。

ふぅ、一段落、一段落。次はこれを使って何ができるか考えてみようと思います。

あっ、明日は試験だった!(注:情報処理関係じゃないよ)
やばい、やばい。今晩はタケボン氏の誘いがあって出かけるから一夜漬けはできないので、昼間に勉強しようと思っていたのについつい夢中になってしまった...恐るべし、Ruby FPDF。

追記 (2007/10/21)
WindowsにてAcrobatReader5.xで表示しようと思ったら、うまく表示されないみたい。AdobeReader8.xにしたら問題なく表示されるようになりました。Macではわからなかったけど、動作確認をきちんとしないと予期せぬ動作があるみたい...Linuxではどうなんだろう。

| | コメント (0) | トラックバック (0)

2007/10/19

mod_ruby + Ruby FPDF

Rubyで動的にPDFを作成してWeb上に表示したいと思い、いろいろと探してみたのですがなかなか「これだ!」とすぐに使えるものが無く、試行錯誤してみました。

調べてみるといくつか選択肢はあるようですが、PHPで使い慣れたFPDFをRubyに移植したRuby FPDFを今回は利用することにしました。

Ruby FPDF

上記のページの下にダウンロードリンクがあるので、ダウンロードしたものを解凍して、適当なフォルダーに置いてみます。

まず、ローカルできちんと動くかどうかを確認してみるために、examplesフォルダの中にあるexample1.rbを実行してみます。

$ ruby example1.rb

...エラーです。そこで、「require 'fpdf'」の部分を「require '../fpdf'」と書き換えて、もういちど試すとexample1.pdfというファイルがきちんと作られました。

しかし、WebでPDFを生成させようかと思ったらちょっとうまく行かない。サーバの適当な場所にFPDFをアップロードして、example1.rbを実行してもエラーになります。
ある意味当然と言えば当然なのに気がつくまでにはちょっと時間がかかってしまいました。ここで、一番大きなポイントは

print pdf.Output()
です。

改造後のexample1.rbは以下となります。赤字の部分が変更箇所です。

#!/usr/local/bin/ruby
 
# This example, when run, will generate a PDF file called example.pdf.
# This is based directly on the first tutorial example given on the
# FPDF website (http://www.fpdf.org).
 
#require 'class/fpdf/fpdf'
load '../fpdf.rb'
 
print "Content-type: application/pdf¥n¥n"
 
pdf=FPDF.new
pdf.AddPage
pdf.SetFont('Arial','B',16)
pdf.Cell(40,10,'Hello World!')
pdf.Close()
#pdf.Output('example1.pdf')
print pdf.Output()

動作確認ページはこちらです。
でも、これはmod_rubyではないので、mod_rubyの場合は、

print "Content-type: application/pdf¥n¥n"
の部分を
r = Apache.request
r.content_type = "application/pdf"
r.send_http_header()
と書き換えて使用します。

何かの役には立ちますでしょうか。もし他にも良い方法をご存知の方がおられれば、教えていただけると助かります。

後は日本語がきちんと使えるかどうかを確認してみたいけど、未確認なのではっきりとは言えませんが、僕の経験上だめだと思う...でも、僕の経験上きっと時間が解決してくれるはず(他力本願)。そのためには、利用者が増えないといけないので、その一助になれるよう今後も面白そうなネタがあれば公開してみようと思います。

Ruby on Railsと一緒にPDFを表示する方法はいろいろと紹介されていて、簡単に見つかりますね。ものすごい誘惑を感じますが、絶対そんなの使わないぞ!

| | コメント (0) | トラックバック (0)

2007/10/15

お客様への請求にはなりませんでした。

あれから一週間。
15日になっても連絡が無いから、どうなってるのかな?と思っていたら、20:00頃に電話がありました。

きちんと手続きが済んで、ソフトバンク側で料金を負担してくれることになったようです。
請求される予定だった金額もほぼ計算通りでしたが、僕に請求が来ないとなればそれはどうでも良い事。

よかった、よかった。

ご心配をおかけしたブログ読者の皆様に、無事をお伝えすることができて何よりです。

しかーし!先週から週末にかけて、色々と精神的、身体的にトラブルがあり、疲労困憊の月曜日。
いつもよりとっても短いですが、今日の記事はこれまで。
お風呂に入って、もう寝ようと思います。

勘違いや思い違い、自惚れや自意識過剰な自分にそうとう自己嫌悪中です。あぁ、早く時間が解決してくれないかなぁ。

| | コメント (2) | トラックバック (0)

2007/10/08

お客様への請求になります。

僕 「あれ、初期化したって言ってましたけど、どうしてこれがインストールされているんですか?」
店員 「メールをするのに必要なので、ダウンロードしました。」
僕 「パケット使ったんですか?」
店員 「はい。」
僕 「えー、僕はパケ放題に入ってないんですよ。請求は誰に行くんですか?」
店員 「お客様への請求になります。」

今日、SoftBankのショップでの僕と店員の会話です。
僕の携帯はX01HTなのですが、諸事情からS!メール(MMS)を使用できないような契約にしていて、同時にインターネットへの3G回線を用いた接続ができないようにしていました。しかし、諸事情からやっぱりインターネットに接続し、メールも使えるようにするために契約を変更したのです。
が、何度やってもメールが受信できない。そればかりかWiFi以外の方法でインターネットへの接続もできないので、お店に問い合わせたところ本体の初期化が必要とのこと。

そこで、本体を持ってお店に行って、初期化と設定変更をしてもらったのです。

設定変更って、おいおいSoftBankメール(メールクライアント)をダウンロードするのは違うでしょ。しかも、何故僕の携帯のパケット通信でダウンロードするのか?!

SoftBankメールは約3MB、パケット代は0.21円/パケット(128バイト)なので、単純計算で
0.21 x 3,000,000 / 128 = 4,921.875円
これにサイトへの接続も含まれるので、確実に5,000円を超えます...ちなみに僕の通常の請求金額は3,000円程度...おいおいおいおいおいおいおい、なぜインターネット接続をするための設定に5,000円も払わないといけないんですか!

僕 「どうしてダウンロードする前に聞かなかったの?」
店員 「その機種については不慣れなもので...」
僕 「でも、パケット通信したらお金かかるでしょ?」
店員 「はい...」

手が震えて、声が震えて...
ということで、店員さんに「私がダウンロードしました」と一筆書いてもらい、15日までにどうするかの対応について連絡をいただけるという話を聞いて退散しました。

さてさて、いったいこれからどうなることやら。過大な賠償を要求するつもりは無いので、せめて店員さんが勝手に使った代金の請求が無いことを祈るばかりです。

僕もたくさん失敗するので、店員さんの気持ちはわからないでもないです。やってしまったことはちょっときついけど、その後の対応は悪くなかったですよ。多分、新人さんだったのかなと思われますが、これに懲りずきちんと勉強して、商品知識を身につけて頑張ってください。15日の報告をお待ちしております。

| | コメント (3) | トラックバック (0)

2007/10/07

オープンソースの逆襲

今回は一昨日(10/4)届いた「オープンソースの逆襲」という本を紹介します。

「オープンソース」という言葉はある一部の人にはとても耳慣れた言葉ではあるものの、世間一般にはそれほど認知されているものでは無いかもしれません。
「ソース」と言っても、料理の話ではありません。コンピュータのプログラムに関する本です。でも、料理の話もあるかも...

この本の対象は、ある程度コンピュータを使った経験のある社会人または学生で、プログラミングの経験有無はあまり関係ないけどネットからソフトをダウンロードして使用するというを日常的に行っている人が丁度良いのではないかと思います。

本の紹介の前に「オープンソース」についていくらか説明しておきます。
プログラムは人間が判読可能な状態で編集するソースコードとコンピュータが判読可能な状態で実行するオブジェクトコードに大別できます。ソースコードを持っていても、それでプログラムを実行する事はできないので、ソースコードをコンパイルしてオブジェクトコードに変換する必要があります。
電器屋さんなどで売られているソフトウェアパッケージはオブジェクトコードの状態で、ソースコードで販売されている物は少ないです。またソースコードはそのソフトウェアの設計書なので、これが他人の手に渡ると、全く同じ物やちょこっと改変したものを作成できてしまうため、企業で作成したプログラムの多くはソースコードを公開されていません。
ところが、「オープンソース」ではこのソースコードが公開されているプログラムであり、誰でもその設計書を読み、機能の成り立ちを確認する事ができるプログラムなのです。
なんでそんなことするの?と思われる人もおられるでしょうし、昔はみんなそうだったと蘊蓄を語りたくなる人もおられるでしょう。
ここで紹介する本は、そんな「オープンソース」についての本です。

本の流れは、歴史、事例・ノウハウ、まとめという構成です。

歴史の中では、最近流行のものでオープンソースになっているものやUNIX、Microsoftを通じたオープンソースでないプログラムの生い立ちなどと関連してオープンソースのこれまでを約半分程度かけて解説してあります。
大変良くまとまっているので、これまで聞いた事の無い人にはとてもわかりやすいのではないかと思います。ただ、その分知っている人にはちょっと物足りないかもしれないですが、対象としている人が「一般の社会人」とあらかじめ書かれているので、仕方ないかな。僕には「オープンソースの復習」になりました。

事例の中では、教育現場とビジネスの現場でどのようにオープンソースが利用されているかを紹介されています。どちらかと言うと教育現場での利用についての方が熱が入っていて、その事例も非常に有為な成果を上げているのがわかる紹介で、生徒と教師双方にメリットがあることがよくわかります。
しかし、ビジネスの方はどうかと言うと、歴史の方でMicrosoft社の批判をしていた部分とちょっとやっていることがかぶっているのではないかな?と感じたりする部分もあったりして、全てにうなずく事はできない気分的な部分はありましたが、「それがオープンソースビジネスの実際なのだろう」という参考になります。ビジネスに関してはページ数も少ないですし、歴史の中で見てきたオープンソースの成り立ちからも、教育現場がより適していることは明白なので、教育現場でしっかりと利用される基盤ができつつあるというのはとても良い事だと思います。

まとめでは、現状への警鐘が書かれていて、きっと誰もが確かにそうだと思うところがあることでしょう。これからどうすべきかをきちんと考えながら現代を生きる必要があるなと考えさせられます。
まとめの中の言葉は「オープンソース」に限ったことでは無いような気もします。ある物の供給元が一つしか無いまたはほぼ独占状態だと色々な弊害が出るものですから、そういう状態にしない、なってもきちんとした抵抗力を身につけておくというのが大事ですよ。オール電化とかいう言葉が広告を賑わせてると、好んで統制下に入りたがる人もいるのだから、「オープンソース」が日本で一般化するのは前途多難な道があることでしょうが、これからも普及に向けて頑張ってもらいたいし、自分も何かの一助になれればと思います。

最後に、文章全体から著者の熱意が伝わってきて、とても読みやすい文章でした。著者は大学の准教授とのことですが、この文章を書かれる方ならわかりやすい講義をされるのではないかと感じます。

追伸
P.211 表5-2 GunPGについて「実装」の誤りでは?

2007/10/15追記
著者のサイトで、ブログが紹介されていました。リンクありがとうございます。

2007/10/26追記
読み終わった本を僕の部屋で眠らせておくのも勿体ないので、より広く読んでもらえるようにするため、オープンソースサロンの開かれる松江オープンソースラボの書棚に寄贈させていただきました。

| | コメント (0) | トラックバック (1)

2007/10/04

サイトの更新

サイトの更新をしました。とは言え、自分のサイトではありません。
どこのサイトを更新したかと言うと、現在の職場のサイトを更新しました。

4月に転職してから、ちょこちょことサイトのデザインをし、内容を移行させて、9月に完成。サイトを印刷して稟議書を回覧し、決済の後10月に公開という流れでした。

今まで無数にサイトを作成してきて、中には企業のサイトもありましたが、今ほど規模の大きな団体のサイトを作るのは初めてなのでちょっとわくわく。
公開はFTPソフトでファイルをドラッグ&ドロップするだけですが、ちょっとどきどきしながらアップロードの状況を見ていました。

で、公開してみると、改めてワンパターンな自分のデザインを痛感させられてしまいます。
うーん、「修行が足りん!(By KAGE)」という感じですね。

でもって、家に帰ってからMacで見てみると...うーん、職場ではブラウザはIEという指定があるから、他での動作確認を全然していなかったのは敗因です。
とは言え、情報セキュリティ関係で職場のデータを持ち出すわけにもいかないし、Macがあるわけでもない。
普通にパソコンを仕事で使い始めた人が、IEのみ対応のサイトをがしがし生産してしまう理由がちょっとわかるような気がします。
それでも良いとは言えないけど、ちょっと仕方ないかな。
でも、それで組織の評価がある程度決まったり、実状がばれたりする要因の一つでもあったりするのも忘れてはいけません。

とまぁ、たかだかサイト更新一つで色々と思うわけですよ。

みんなにサイトを暴露はできませんが、お知り合いの方は覗いてみて感想とか聞かせてもらえると嬉しいです。

| | コメント (2) | トラックバック (0)

2007/10/03

100 BOOKLEs for "Education for All"

以前の記事で紹介した僕の処女作ですが、その後何の音沙汰も無いまま既に半年が経過してしまいました。

半分忘れかけていたような今日この頃でしたが、本日マイブックルよりメールが届きました。内容は表参道ヒルズ内にある「イデアフレイムス」にて自作本の展示会が開催されるので、そこへ僕の自作本を出品したいというものでした。(詳細は下記参照)

100 BOOKLEs for "Education for All"

僕の場合は販売代金=製本費用なので何冊売れても僕の懐具合には全く関係ないけど、少しでも多くの人の目にふれる機会があるというのは悪くないですよね。

開催期間は10月16日から29日までだそうです。もし、興味のある方がおられましたら期間中に表参道ヒルズのイデアフレイムまで足を運んで頂ければ製本された僕の本が見れる予定です。
もし見られた方などがおられましたら、感想などを聞かせて頂けると感激します。

ガントチャートを作って学ぶExcelVBA

...でも僕はそのためだけに東京まで行く事などできるはずもなく、自作本の晴れ舞台には参加できないのが残念です。

関東圏にいる知人各位

デジカメの画像をお待ちしております。

| | コメント (0) | トラックバック (0)

2007/10/01

他のテーブルを読み込んでリストボックスから選択できるようにする

今回もまた自作Web用フレームワークの解説です。前回予告した、「データのリンク」の前にちょっとやっておく事として思いついたので、今回はそれをテーマに書いておきます。

データの編集において、定型の入力項目は選択式にしておきたいと誰もが思うものです。しかし、Webにおいて、その選択項目をHTMLで書いたのでは頻繁な追加・変更・削除があまり簡単ではありません。

ここで使用するのが「html.rb」内にある

make_select_form_without_key(name, values, default)
です。 これは、nameにSELECフォームの名前、valuesに配列、defaultに初期選択項目の値を入れておくと、SELECTフォーム用のHTMLを返してくれるというものなので、データベースから必要な項目を読み込んで、この関数に入れてあげれば、選択フォームの完成というわけです。

ということで、Controlクラスに下記のメソッドを追加しました。

  def get_select_from_by_field(name, default)
    
    values = @mdl.get_column("name")
    html = make_select_form_without_key(name, values, default)
    return html
    
  end

そして、Booksクラスでcustomize_edit_valuesメソッドを上書きし、SELECTフォームを表示するよう指定します。

  def customize_edit_values(values)
    ctg = BookCategorys.new()
    tmp = values["category"]["val"]
    values["category"] = {
      "type" => "select", 
      "val" => ctg.get_select_from_by_field("category", tmp) }
    return values
  end

以上で、選択フォームが表示されるようになるはずです。

実はこれらの作業の前に、データベースのbooksテーブルへ分類を記録するためのテーブルとして「category」という名前のフィールドを一つ追加しておく必要があります。説明が遅れましたが、追加していなくても選択項目は表示されるし、きちんと動くでしょう。ただ、設定しても記録されないだけ...なはずです。

しかし、実はこの操作で選択フォームを表示できるようにするには、内部で大幅な変更がありました。「紹介していない部分だからいいかな」と判断したのですが、意外とクラス作成の胆になる部分だったかもしれない...

また、全ソースコードをダウンロードできるようにしておくので、興味のある方は覗いてみて下さい。
「きちんとそれぞれのクラスを解説してくれ!」とかいう要望があれば、そういう方向で記事を書いてみようと思いますが、まだそういう要望は無いようなので、しばらく自作Webフレームワークの利用方法を解説していきたいと思います。

「framework3.zip」をダウンロード

上記で紹介したコードのサンプルサイトです。

書籍

| | コメント (0) | トラックバック (0)

« 2007年9月 | トップページ | 2007年11月 »