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

2007年8月の11件の記事

2007/08/31

ガントチャートforOOoチェコ語版

以前の記事で書いたようにチェコ共和国に在住されている方からガントチャートforOOoをチェコ語に翻訳したいという連絡があり、その手順を返信していました。そして昨日、完成した旨の連絡とともにチェコ語版のファイルが送られてきました。

こういうのは嬉しいですね。しかも、チェコ語版のOpenOffice.orgサイトに投稿しておきますとかいう連絡まであったりして、これからもっと利用者が増えるのかなとか、誰かがソースを見直してもっと処理速度を上げてくれるのかなとかまで期待してしまいます。

ここで、ちょっと翻訳の手順を書いてみたりして...

1. シート名を変更

2. mdlMain内のInitialize_En関数をそのままコピーして、関数名を言語に合わせて変更する。
  [例]チェコ語版ならInitialize_Cz、日本語版ならInitialize_Jaとしてます。

3. 各設定の表示を対象の言語に変更する。ただし、以下のプロパティは1のシート名に合わせます。
  PropertySheetName
  CategorySheetName
  ItemSheetName
  ScheduleSheetName
  PersonSheetName
  HolidaySheetName

4. mdlMain内のInitialize関数で言語設定をしている部分を修正
  [例] 英語版からチェコ語版なら  Initialize_En --> Initialize_Cz

5. プロパティシートのSheet Type行の名称をシート名に合わせる

以上で他の言語に対応したバージョンが出来上がるはずです。とか書くと他の言語版も出来上がったりしないかなぁ...

ということで、チェコ語版を公開しておきます。また必要な方がおられれば利用してみて下さい。ちょっと目的は違うかもしれませんが、チェコ語を学んでいる人の参考にもなるかもしれません。
ただし簡単な説明書きのHTMLはチェコ語になってないし、僕には翻訳できないので公開できませんので、あしからず。

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

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

2007/08/30

第11回オープンソースサロン

しまねOSS協議会主催のオープンソースサロンが開催されました。
前回は参加できませんでしたが、今回からまた参加させてもらいました。

テーマは「Railsカンファレンスの報告」です。
今年の5月に行われたRuby on Railsのイベント(RailsConf 2007)に参加された方が、会場の様子や出席者の紹介、その他を報告されていました。報告自体は30分程度で終わり質疑応答が繰り返されたのですが、何だかほとんど報告とは関係ない質問ばかり...ついつい僕も便乗して関係ない質問を繰り返してしまいました...反省。

また、サロン終了後にはいつもの懇親会。
井上社長からは「宿題は?」の一言。結局、正解は出せず、また色々なお土産を頂いてきました。
ただ、「幸せの定義は」ということについて社長が「共感だ」と言われていました。笑いや喜びが幸せなのではなくて、苦しい中でも周りが共感をして心を同じにできることで幸せを感じるものなのだということだそうで、NaClではそういう組織を目指しているのだとのことでした。「みんなが相手を思って助け合う」そんな組織が実現すれば素晴らしいですね。
他にも社長とお父さんは孤独だとか、都会ではテレビドラマのような生活がいつまでも続くと考える独身が多いとかいう話をされていて、大変興味深く聞かせて頂きました。

後は、NaClにインターンシップに来ている学生がいて、またいつものように偉そうに話していたらなまさんに「また語ってるよ」と突っ込みを頂き、確かにもう少し突っ込みが遅かったら語りモードから自慢モードに移るところでした。なまさん、多謝。

次回はなんと9月3日。5日後の開催だそうです。
出席できない可能性が高そうですが、次回も参加できるよう頑張りますのでよろしくお願いします。

関係者各位
ちなみに、トイレから出てきたのは女性一人だけでした。
面白い話ができなくて残念...

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

2007/08/26

僕の行動指針

忙しさを理由に全く更新してこなかったこのブログですが、仕事が忙しいということがどれほど多くの犠牲を伴うものなのかということを改めて実感させられます。
まだ忙しいのは終わったわけではないですが、これからの自分のためにも今まで自分が偉そうに主張してきた事を整理し、自戒を行いたいと思います。

まずは行動指針について、「夢が無い」とか「やりたいことが無い」という人にこれまで言ってきた言葉があります。

それは、「今やらなくてはならないと思う事を今する」です。
多くの人は「これはした方が良い」というものは持っているのですが、諸々の事情から着手していないようです。しかし、その諸々の事情のひとつが「なんとなく」とか「やる気が...」というものであれば、即やらなくてはならないことを始めるのです。
大きな事がいきなり明日実現するなんてことはあり得ないので、やるべき事をきちんと実践し、夢を見つける自分になれるよう自分を育てる必要があるのではないでしょうか。

そして、「別に特別な事をする必要は無い」です。
勉強だったり、掃除だったりと日常にありふれたことで良いのです。例えば、英語の勉強とかパソコンの勉強、通学・通勤路のゴミ拾いなど犯罪や他人の迷惑になる行為でなければ、何でも良い。ただし、継続させなくてはいけません。

最後に、「できることが増えたら人のためになる事を考える」です。
実践を継続すればできることが自然と増え、生活の関係ない部分でも時間や心に余裕ができるようになります。そうして出来た時間をまたやらなくてはならないと思う事のために使うのはもちろんですが、「すること」の優先順位に「人のためになること」という要素を加えます。
これを加える事により、継続する事に楽しみが生まれます。不思議に思われるかもしれませんが、自分ができることを自分一人で楽しもうと思ってもなかなか楽しみは見つからないものです。「自分のできることは人のために役立てる」というのはとても重要だと思います。

そして、やらなくてはならないことが決まれば、また最初からの繰り返しです。
こうして日々を積み重ねて行けば、最後には誰でも大きなことを実現できるようになっているはずです。

では、僕の現状はどうでしょう。
忙しさを理由にやらなくてはならないことをきちんとしていない日々が続いています。怠けているつもりはないのですが、他の人から見ればただの言い訳にしかならないのだから、せめてブログで「やる」と公言した事はきちんとするようにしないとだめですね。

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

2007/08/11

チェコ共和国から

ガントチャートforOOoをチェコ語に翻訳したいのでやり方を教えて欲しいという連絡がありました。
ずいぶん長い間放置していたし、OOo2になってから処理が多少遅くなってしまい全然実用に耐えない速度で動作するから、もう誰も使ってないのかと思っていました。
こうして連絡が来るのであれば、これに返事を書くとともにもう少し触るようにしないといけないかな。

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

2007/08/09

データベース接続用クラス DBConnect

最近PHPからRubyへの移行を進めているのですが、流行物があまり好きではない僕としてはRuby on Railsにどうしても馴染めなくて、PHPで作っていた自分用クラスをRubyに移植する作業を行っています。

その一つとしてデータベースに接続するためのクラスにDBConnectというのがあり、とりあえず動作させることができる程度にはなったので、ここで公開してみようと思います。ちなみにMySQL版とAccess(mdb)版があり、どちらでも同じクラスで利用できるようになっています。

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

クラス名 DBConnect

メソッド

initialize(host, user, pass, database) 初期化処理用
open(host, user, pass, database) データベースを開く(初期化時に実行される)
close() データベースを閉じる
query(sql) SQLを実行(配列の戻り値あり)
exec(sql) SQLを実行(戻り値無し)
sql2array(sql) query実行時に実行され、実行結果を配列に変換
list_fields(table) 指定したテーブルの列名を配列で返す
escape_string(str) 文字列のエスケープ処理

非常に機能不足だと感じられるかもしれませんが、とりあえず動作させることはできます。
使用例は

#!/usr/bin/ruby
 
dbtype = "mysql"
#dbtype = "mdb"
 
case dbtype
when "mysql"
  require 'mysql'
  require dbconnect_mysql.rb
when "mdb"
  require 'win32ole'
  require dbconnect_mdb.rb
end
 
host = "localhost"
user = "test"
pass = "test"
database = "sample"
if dbtype=="mdb" then
  database += ".mdb"
end
 
db = DBConnect.new(host, user, pass, database)
 
sql = "SELECT * FROM test_table"
rs = db.query(sql)
 
i = 0
rs.each do |row|
  print "#{i}¥n"
  row.each do |key, val|
    print "#{key} = #{val}¥n"
  end
  i += 1
end
 
db.close()

ソースを見てもらえばわかりますが、Access(mdb)版はかなり適当です。
またMySQL版にはMySQL/Rubyが必要です。

Ruby初心者なのもので、もし何か意見やアドバイスなどがあれば教えて頂けると助かります。

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

2007/08/08

mod_rubyとWEBrickの比較

それほど違いがある訳ではないようですが、使ってみていくつか違いがあったので、書いてみます。 この記事は気がつく度に更新していきたいと思います。

1. 出力

WEBrick
きちんと出力形式を指定する必要がある。

print "Content-type: text/html\n\n"

mod_ruby
HTML出力が標準。指定したい場合は下記。

r = Apache.request
r.content_type = "text/html"
r.send_http_header()
Apacheクラスには他にもstatus_lineやheaders_out[]などがある。

2. インクルードファイルの読み込み

WEBrick
「require」を使用。

mod_ruby
「require」を使用したファイルはキャッシュされるので、開発中は「load」を使用。 * 前回の記事でHTMLのソースが出力されるという問題は「require」を「load」に変更したら直りました。...これが直った直接の原因ではありませんでした。嘘みたいな話ですが、

=begin
<html>
=end
という行を始めの行に追加したらきちんと動作するようです。ちなみに僕は以前の記事で紹介したようにHTMLをソースコード内に書かないよう心がけているので、その書き方が影響しているのかなと思ったりもしています(未確認)。いずれにせよ、きちんと動作すればそれでO.K.!

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

2007/08/07

mod_rubyのインストール

ちょっと時間ができてきたので、早速Rubyを再開します。
Windowsでの簡易環境としてWEBrickを使用してきましたが、自宅のサーバーはLinuxで既にApacheが動作しているのでWEBrickの使用はちょっと避けたいところ。以前Ruby on Railsを試した時にFastCGIを設置はしたものの、RoRではきちんとRubyが動作するのに任意のRubyスクリプトでは全然まともに動いてくれない。

ということで、代替案を探していたところmod_rubyが見つかったので早速試してみる。
下記サイトからソースをダウンロードする。

modruby.net

下記コマンドでインストール。

$ tar zxvf mod_ruby-1.2.6.tar.gz
$ cd mod_ruby-1.2.6
$ ./configure.rb --enable-eruby --with-apxs=/usr/sbin/apxs
$ make
$ sudo make install

Apacheの設定を行うため、以下のコマンドでファイルを作成。

$ sudo vi /etc/http/conf.d/ruby.conf

ファイルの内容は下記。

LoadModule ruby_module modules/mod_ruby.so
AddHandler ruby-script .rb
 
<IFModule mod_ruby.c>
  RubyRequire apache/ruby-run
  <Files *.rb>
    SetHandler ruby-object
    RubyHandler Apache::RubyRun.instance
  </Files>
</IFModule>

Apacheの再起動。

$ sudo /sbin/service httpd restart

ところが、ここできちんと動作しない。で、色々と調べてみると実行権限が付与されていなかったことが判明。Windowsに慣れすぎるとだんだん常識を忘れてしまうものですね。

$ chmod a+x sample.rb

としてみるときちんと動作させることができました。
後、注意する事はWEBrickでは

print "Content-type: text/html¥n¥n"

と明示的に出力形式を指定しなくてはならなかったのですが、mod_rubyでは必要無いみたい。

概ね動作は良好なのですが、自作のWebアプリケーションを動かしていると初めは調子良く動くのにしばらくしたらきちんとHTMLが表示されないでHTMLのソースが表示されるようになってしまいます。Webサーバーを再起動するとまたきちんと表示されるところを見ると、多分余計なことろでテキストを出力しているせいなのかと思われるので、これからデバッグをしてみよう。

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

2007/08/05

水郷祭2日目

今日もまたお祭りです。
朝からとても暑くてどうなることかと心配していましたが、夕方には涼しくなり、一安心。

昨日はとても早く出たので今日はちょっと時間を遅らせてみたのですが、これが大失敗。今日の方が人出が多くて、駐車場がいっぱいに...そんな中、一つ空いたと思ったら一人のおっさんがそこに歩いて行って場所の確保。携帯で誰かに連絡しながら、そのスペースに入ろうとする車に対し身振り手振りで「だめだめ」と合図をしているではないですか。おいおい、そこは公共の場所であって、あなたの土地ではないのですよ。「最近の若い人は...」という言葉をよく聞きますが、最近の若い人の文句を言う前に同じ世代にいる、そういう若い人を育てた人に文句を言ってもらいたいものです。

花火の会場についてみると、もういっぱいビニールシートが張り巡らされていて、歩く場所も無いくらい...うーん、昨日に今日の時間で今日は昨日の時間に出るべきだったか...失敗。

でも、花火は素晴らしい。総打上数6,000発の花火が夜を彩り、夏の暑さを吹き飛ばしてくれます。
子供は途中で寝てしまいましたが...やっぱり二日連続はちょっときつかったかな。

ただ、残念だったのは後ろに座った人のタバコです。たった、一時間の花火の間も我慢できないものなのでしょうか。周囲には小さな子供もいるのに、全然やめる気配はなく、風の向きが悪いとこちらが煙でいっぱいになります。偉そうに世間や政治を語っていましたが、こんなおじさんが育てた最近の若い人に文句を言う前に自分達自身を恥じてもらいたいものです。

帰りの道はゴミの山...
花火の綺麗さがこの対極的なものを余計に強く浮かび上がらせてしまいます。コンビニのゴミ箱もゴミ袋で一杯になってました。
自分が出したゴミは自分で持ち帰ろうね。

またまた愚痴ばかりになってしまいましたが、花火の素晴らしさはこれら全てに勝ります。もし、この時期に松江に来る事が出来る人がいれば、水郷祭の花火を見物されてみてはいかがでしょうか。

0708052030

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

2007/08/04

単位認定試験と水郷祭

今日は放送大学の単位認定試験に行ってまいりました。

今回選択した3科目のうち、2科目は僕の専門分野だからほとんど勉強せずにのぞみ、残りの専門外1科目に的を絞って行きました。でも、今の職場ではその専門外がとても重要なので、結構真剣に勉強してみたつもりだったのですが、独学って難しいものだと改めて感じました。

単位認定試験を受けて思うのですが、問題はそれほど難しくはありません。しかし、社会人になってから時間とお金を作って授業のビデオまたはラジオを視聴し、試験を受けるという行為をする人が、ただ試験に受かるためだけの勉強をするとは思えない。
僕もその専門外の1科目は受かっているかもしれないけど、落ちているかもしれない。そういう状況だった自分を恥じて、これかも継続的にその分野をきちんと勉強していかなくてはならないなと考えさせられました...それなりに高いしね...

試験が終わってから、職場に置き忘れた本を数冊取りに行って、家に帰ったら家族を連れてお祭りに行ってきました。それは水の都にふさわしい名前で、夜の花火が市内の湖を彩る僕の一番好きな祭りです。
今まで県外にいたのでこの時期に里帰りができるわけもなく、家族を連れて行くのが小さな望みの一つだったのですが、それが今日やっとかないました。

人が多くてちょっと大変でしたが、花火は相変わらず綺麗で、子供も妻も喜んでくれて僕もとても嬉しいし、またこの町にいることを誇らしく感じました。明日も花火を見に来る予定ですが、子供や妻の疲労がちょっと心配です。

また、花火の前に飲み物を買いに歩いていたらあるIT会社にお勤めのなまさんに会いました。先日、しまねOSS協議会のオープンソースサロンに参加できなかったことについて話をしていて、次回も難しそうだけど何とか参加してみようかなという気になりました。宿題もあることだし、頑張ってみようかな。

0708041824

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

2007/08/03

Windows+RubyでWebアプリケーション

僕が好むと好まざるとは関係無しに、職場ではWindowsの利用を強制されています。
色々とツール作りの好きな者としては、やっぱり何か作りたい。とは言え、ASPとかASP.Netでの開発というのも芸が無いと感じたり、Excelのマクロは今でも使っているけどそれだけでは物足りない。
とういことで、Rubyをダウンロードして色々試していますが、RDMSをインストールするには多少手続きが面倒なのでなかなか面白い所まで手が届かない。
そこで、RubyからADOを使ってAccessのファイルをいじる方法をお試し中。

require 'win32ole'
 
file = "sample.mdb"
sql = "SELECT * FROM test"
 
print "Content-type: text/html\n\n"
 
cn = WIN32OLE.new("ADODB.Connection")
cn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=#{file}")
 
rs = WIN32OLE.new("ADODB.Recordset")
rs.Open(sql, cn)
 
until rs.EOF
 
  0.upto rs.Fields.Count-1 do |j|
    print "#rs.Fields(j).Name} = #{rs.Fields(j).Value}<br />\n"
  end
  print "<br />\n"
 
  rs.MoveNext()
 
end
 
rs.Close()
cn.Close()

とすればテーブルの内容を一覧表示できるみたい。

しかし、Ruby/MySQLには文字列のエスケープをする関数などが備わっていたけど、ADOには無いので自作しなくてはならないのかな。正規表現とか使えばすぐなのかもしれないけど、実は僕は正規表現を良く理解していなかったりして...明日には放送大学の単位認定試験が終わるので、また来学期が始まるまでの間に勉強してみようかな。

とりあえず、Ruby/MySQL用に作った俺様ラッパークラスをMDBファイル用に書き換える作業をしてみます。

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

2007/08/01

やりたくてもなかなかできない

何だかわけがわからないまま時間がどんどん過ぎて行く毎日ですが、日に日にやることが増えてきて、どんどん時間が少なくなってきています。

ガントチャート他のマクロ開発、RubyやPHPのサイト構築、LinuxPC配布プロジェクト、放送大学の勉強などなど、やりかけていてできていないことがたくさんありますし、今まで参加してきたしまねOSS協議会のオープンソースサロンにも参加できなくなってきたし、実はまだ引越の後片付けも終わっていない...

土曜日は単位認定試験だから、当面はこれに的を絞って勉強するにしても、今後もきちんと優先順位を考えながら対応していかないと何も成さないまま終わってしまいそう。

仕事は頑張って覚えていけば、きっと手も早くなるだろうから時間もできるはず。
転職って大変だ...

前にも記事に書いたような気がするけど、就職も結婚と同じだなぁと改めて思ったりします。就職や結婚はそれを目標として頑張る人が多いけど、それをした後が本当の始まりなのかな。

ああ、時間をお金で買えるなら買いたい!

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

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