月別アーカイブ: 2014年5月

Chikuwa 青空文庫検索

全文検索エンジン Chikuwa を用いた簡単なサンプルシステムを構築しました。

青空文庫収蔵 9795作品中に収められたテキストデータ 271MB から瞬時にキーワード検索を行うというものです。

http://toshiya.org/aozora/chikuwa/

Chikuwa 青空文庫検索 for mobile の操作画面は以下の通りです。

1.トップ画面で青空文庫収蔵の作品中に含まれると想定されるキーワードを入力して、「送信」ボタンを押下します。
10155796_270319369811469_1749260070_n

2.検索キーワードを含む作品のリストが表示されます。(100件以上のヒットがあった場合はヒットスコア上位100件まで表示されます。)
10013721_270319403144799_1254874241_n

3.結果リストのアイテムを押下すると、実際の作品の文章が表示されます。(但し、キーワードをハイライトする機能は未実装です。)
1743658_270319439811462_1120735509_n

4.結果リスト、本文ページ左上の「Back」ボタンを押下すると直前のページに戻ります。

Share Button

CJKV の発展と課題

皆さんは CJKV という言葉をご存知でしょうか?

これは、コンピュータ用語ではありますが、中国語(Chinese)、日本語(Japanese)、韓国(朝鮮)語(Korean)、ベトナム語(Vietnamese)の4言語の頭文字を連ねたものであり、コンピュータ業界でのテキスト処理におけるアジア圏を代表する4言語の呼称です。

ふと、この4つのアルファベットをご覧になって気がつくことはありませんか?

それは、この4カ国の間では、かなり多くの外交問題が起きているということです。

僕はいつも思うのですが、この一番の原因というのは、やはり国と国の間の「言葉の壁」が非常に大きいと思うのです。

コンピュータ業界のテキスト処理においても扱いが特殊とされるこの4言語ですから、それは尚更のことです。

そんな中、実は台湾(中華民国)国内においては親日が多数派であるという現実があります。

この最たる要因としては、台湾の国内には日本語や日本文化を理解できる人が多く存在することにあると思っています。

今、我が国の義務教育における外国語教育は英語だけですが、これからのアジア圏の平和と協調を思うのであれば、子供たちに対して、英語に加えてアジア圏の言語を1カ国でも選択で勉強出来るようにしても良いのではないでしょうか?

産業においてもグローバル化が進む現代、これからのアジア圏の平和を願うばかりです。

Share Button

ICT は社会のために

僕が学校を卒業して初めて社会人になったのは、1989年(平成元年)のことです。

実は、この当時の僕はIT技術者ではなく、総務人事の新人として事務方の仕事をしていました。

その頃の僕の先輩社員の中には「ワープロ」を非常に得意としている女性がわずかながら数人おり、彼女達には上司が頭を下げて仕事をお願いするという、ちょっとした特別待遇でした。

当時のワープロのスキルというのは大変貴重な技能であり、ワープロが打てる人というのはかなり「デキる」社員だったのです。

ただ、面白いことに現在の世の中においてはもう、ワープロなんて誰もが当たり前のように打てる時代になりました。

きっと「ワープロ検定1級」なんて資格を持っていたとしても、普通の会社の中では何の自慢にもなりません。

現代は、「ワープロが打てること」ではなく、「ワープロで打つべき文章がキチンと作成できること」に重きが置かれることでしょう。

もう、オジサンの上司が手書きの原稿をワープロ担当の女性に清書してもらう時代は終わったのです。

僕は同じようなことが、きっとこれから英語などの語学にも起きると思っています。

諸外国を相手に仕事をするためには、その国の人に伝える「何か」というものを自分で考え、それを自らの手で翻訳をしていくのがこれからの職業人のあり方であり、これが出来ない人(翻訳が出来ない人、翻訳しかできない人)同士の連携では仕事は成り立たなくなるでしょう。

では、ICT(情報コミュニケーション技術)はどうでしょう?

僕の勝手な持論かも知れませんが、 ICT とは結局、言語と同じように単なる「コミュニケーション技術」です。

きっとこれからの世の中、「ICTしか知らない人」と「ICTを知らない人」との連携で仕事をしてゆくスタイルは終わると思っています。

また、まさに現代は、一般の人達がコンピュータを使いこなすスキルを物凄いスピードで習得しつつあります。

そういう状況を考えると、 「ICTしか知らない技術者」はもう要らない時代が徐々に近づいているのです。

更に言うと、ICTとは、「社会を動かすため」のものであり、ICT技術者が社会を考えられなければ、きっと良い仕事はできないと思うのです。

これからの コンピュータプログラマは、「このプログラムがどんな風に社会に影響するのか」と言うことを常に考えられなければ、きっと時代に取り残されて行くことでしょう。

これは僕の杞憂でしょうか? きっとそんな事はないと思っています。

Share Button

Twitterの神々

本書が出版されたのは今から遡ること3年半の2010年12月です。

当時はまだ民主党の鳩山氏が総理大臣を努め、東日本大震災も起きていない状況でした。

この本を読んでいると、このたった3年半の間にも、我が国の情勢は大きく動いていることを強く感じました。

当時は我が国には Facebook はまだそれほど浸透しておらず、国内では芸能人や政治家などの有名人を軸にした Twitterブームであったような気がします。

僕自身、この1年前の2009年に横浜市内でこの Twitter のイベントに参加し、某ジャーナリストが Twitter を過大評価しては「Twitter の可能性は無限大で、これからは Twitter がOSにもなる」などと言うワケの分からない話などを苦笑しながら聞いておりました。

しかしながら昨今は、この Twitter の役割は現在、確実に Facebook に移りつつあり、Twitter は徐々に収束に向かうと僕は思っています。

この最たる要因は、140文字という制限の中では発信者のメッセージが伝えきれず、徐々に「誘導ツール」に移りつつあること、また、価値のないつぶやきの氾濫の中から、価値ある情報を見つけ出す難しさにあったのではないかと思います。

本書の中で田原総一郎氏は、Twitter を題材に様々な有名人と会話をしているのですが、Twitter について語っているのは、前半だけであり、後半は「ITと政治の話」に主が置かれています。

これはこれで非常に参考になり、特に楽天株式会社々長の三木谷浩史氏との対談の中での三木谷氏のIT力=国力という言葉はまさに同感でした。

早く国政の場にこのような考えをしっかりと持った人物が登場しないものかと思っていますが、残念ながらこの3年半、そこだけは我が国に劇的な変化は無い様に思われました。

Share Button

はじめての Ruby プログラム ~Hello Ruby~

Ruby をインストールしたら、早速、プログラミングを始めましょう。

まず、Windows の「スタート」メニューから、
「すべてのプログラム」→「Ruby x.x.x-pxxx-xxx」→「Ruby コマンドプロンプトを開く」
で、Ruby プログラミング用コマンドプロンプトウィンドウを開きます。

※「Ruby x.x.x-pxxx-xxx」の x の部分はインストールしたRubyのバージョンに読み替えて下さい。

Ruby用コマンドプロンプトウィンドウ

Ruby用コマンドプロンプトウィンドウ

ここで、テキストエディタの「メモ帳」を開くために、以下のコマンドを実行しましょう。

>notepad HelloRuby.rb

このコマンドの notepad は、メモ帳を開くためのコマンドで、この後に続く HelloRuby.rb は、notepad コマンドの引数(ひきすう)であり、
「HelloRuby.rb というプログラムを書くためにメモ帳を開きなさい」と、Windowsに命令をしているのです。

Enterキーを押下すると、真っ白いメモ帳の画面が開き、画面上に以下のダイアログが表示されますが、そのまま「はい」をクリックして閉じて下さい。

2014-05-24 18.00.19

ダイアログを閉じたら、メモ帳に以下のプログラムコードを記述します。(※先頭の数字「1」はプログラムの行数を分かりやすくするためのものですので、メモ帳には記述しません。)

puts "Hello Ruby"
メモ帳にプログラムを記述する

メモ帳にプログラムを記述する

メモ帳のウインドウメニューから「ファイル」→「上書き保存」をクリックしてプログラムをファイルに保存した後、メモ帳を終了させて下さい。

再び、コマンドプロンプトウィンドウに戻り、以下のコマンドをを実行して下さい。

>ruby HelloRuby.rb

画面上に以下の出力結果が表示されます。

Hello Ruby
実際の実行結果画面

実際の実行結果画面

どうですか? これだけですが、これでもちゃんとした Ruby プログラムなのです。

今回の手順を以下に記述します。

  1. Ruby用コマンドプロンプトを開く
  2. プログラム名を指定してメモ帳を開く
  3. メモ帳にプログラムを記述して保存、終了する
  4. 書いたプログラムを実行する

今後、しばらくの間はこの手順でプログラミングを説明しますので、流れをしっかり覚えて下さいね。

Share Button

75歳からの繰り下げ年金制度について

朝からテレビでは年金75歳繰り下げ支給の話題。

「75歳から受給を始めたら何歳まで生きればモトが取れておトクか?」

などという話に非常に違和感を感じます。

そもそも「モトを取る」という言葉に「年金」というものの本質を見失っている気がするのです。

過去、年金というのは老後のための「積み立て」として制度が開始されましたが、この考えは既に「完全崩壊」しているのです。

今、年金というのは受給者の若い頃の「積み立て」の考え方を改め、現役世代からの「仕送り」として受け取るものであるとの認識を下に、若年層には支払いを命じているはずなのです。

その「仕送り」であるはずの年金で「モト」を取るという考え方で報道していること自体、テレビはどうかしていると思います。

75歳からの繰り下げ受給をして年金が倍になったら、旅行したいとか、食べ歩きをしてみたいとか、「そういう夢があるんだよ」と、テレビに出ているおじいちゃん嬉しそうに話をされていますが、どこか年金というものの本質を忘れて話をしていると思うのです。

いえ、「忘れている」のではなく、「わかっていない」のではないかと…。

社会に出て間もない20代の若者が、当然、何の財産も無く年功序列賃金に起因する低所得の状況で、年金を払わなければ社会から「非常識」と叩かれている世の中、彼らの負担を軽くすることの方を考えるべきではないかと思うのです。

そうしなければ少子化問題なんて解決しないし、我が国はきっと衰える一方であるに違いありません。

Share Button

コンピュータとの出会い

京都の文房具店にて

 小学5 年生の秋のことだった。当時、仲の良かった村井君の家に遊びに行った時のこと。

 彼は鍵っ子で家に行くといつも両親がいない。なんだか自分にとっては羨ましい立場だったが、彼からすればきっと寂しかったんじゃないかとも思う。

 そんな二人が出かけたのは近所の文房具屋。結構大きい店でコクヨの看板の店だった。特に何を買うわけでもなく、店頭に並んでいる文房具を見るのは子供の僕らにとってはなかなか楽しい事だった。そんな二人の目の前にスゴイ機械を発見。

 店の人がお客さんにその機械の説明をしてるのだが、これがなんともレジのお化けみたいなヤツにカセットレコーダーと20 センチ四方くらいのグリーンディスプレイが付いている。で、画面の中では訳の分からぬ英語や数字がどんどん上方にスクロールしていた。

 村井君は「マイコンだよ!」と、僕に声をかける。で、二人で大人達のやりとりをしばし見学する。店の人がなんだかカセットテープを回して次の場面で僕らは最高に驚いた。

 なんとテレビゲームが始まったのだ!テレビゲームと言ってもそれは今からすると本当にお粗末なものだが…。グリーンモニターの中で明らかに人の形をしたキャラクターが手に何かを持っている。このゲームは「カトリセンコウ」というもので、天井から降りてくる蚊に刺される前にキャラクターの持っている蚊取り線香の煙を浴びせて退治するというもの。僕らはなんだか興味深々でその場に釘付けになった。しばらくするとお客は帰ってしまい、店員さんもどこかに行ってしまった。

 驚いたのはなんと、この村井少年は大人達のやりとりを覗き見していただけで、このマシンの操作方法を憶えてしまったのだ。僕はマシンをじっと眺めていたが村井君は「F5 を押せばいいだよ」と、キーイン。すると例の「カトリセンンコウ」が実行されるではないか。二人でものの5 分程遊んだだろうか?すると店の中から店員が慌てて飛んできた。で、いきなり電源を切ってしまったのだ。

 再び電源を投入しようとする村井少年。

 すると怖い顔で店員が彼の手を払って「子供が触るんじゃない!」と、怒って言った。怒られてスゴスゴと店を出る二人。店の前に止めていたお互いの自転車にまたがると、村井君は商店街の回り近所に良く聞こえる大声で「こんな店、もう来てやらへんわい!」と、叫んで自転車を漕ぎ出した。彼の予期せぬ行動に驚いた僕はなんだか焦ってペダルを漕いでその店を後にしたのを覚えている。

 でも、マイコンって凄かったなぁ…。

SHARP MZ-80
※写真は SHARP MZ-80 (WikiPediaより引用)

Share Button

生涯学習は誰がために

5月16日(金)の16時半ごろ、八王子市の生涯学習センター(クリエイトホール)7階事務所に伺いました。

目的は僕自身が、この生涯学習センターという場所で中高生向けのコンピュータ教育講座を開いてみたいとの想いがあることから、今現在、市民団体で行われている類似教育等の実態を把握するためでした。

受付カウンターで50代半ばくらいの女性に、「現在こちらで行われているパソコン講座について状況を知りたいのですが…」と、尋ねたところ、その女性がファイルを僕の目の前に広げて、いくつかの講座を紹介してくれました。

そこで、ある問題に気がついた僕は、その女性に質問をしました。

「対象者が『シニア向け』という制限のついたものばかりですが、『中高生向け』のものはないのでしょうか?」

と、言うと彼女は

「ここは生涯学習センターですから、高齢者向けのカリキュラムとなっております。」

とキッパリと答えました。

そう言われて、僕は非常に驚きました。 この施設や、ここで行われる講座は老若男女に関わらず、市民全員が活用すべきものであると考えていたからです。

もう一度聞き返してみました。

「生涯学習センターってのは、年輩の方向けのものなんですか?」

すると彼女は、

「ここで行うのは『生涯学習』ですから。 お子様たちは『義務教育』を受けてますので、教育は学校で行うべきですよね。」

と、返すので、僕はしばらくその場に閉口してしまいました。

僕の腑に落ちない様子を見てかその女性は、すぐさま

「違うんですか? 私、ここの正雇用ではないので間違っているかもしれません。 あとで上の者に確認してみます。」

と、言葉を続けました。 僕は彼女の立場も察しつつ、なんとか堪えました。

ただ、僕の気持ちとしては、実際に雇われている形式がどうであれ、受付業務を担当している限り、彼女はその施設の「顔」なのです。

「生涯学習」というものの意義や目的というのはしっかりと認識していて欲しかったというのが正直な心情です。

ただ、このちょっとした短いやり取りの中で、僕らの信頼関係はガラっと崩れてしまい、後は話になりませんでした。

僕が次の言葉を切り出して、

「過去に行っていたパソコン教室の経験を活かして、ここでもやってみたいと思っております。」

と、言ったところ、彼女はさも迷惑そうな表情を浮かべながら、

「ここの施設の講座に利益を望まないで下さい。」

と、何とも失礼極まりないことを言われてしまいました。 お金の話なんて一言もしていないというのに。

ある程度の情報は収集することはできましたが、それ以上会話をすると、更なる関係悪化を招きそうだったので、ここは引き上げることと致しました。

「これからの子供たちにコンピュータを通じて夢を持ってもらいたい」との僕の想いを実現させるには、小さなところから色んなことを解決しないといけないということが分かった気がします。

Share Button

コマンドとしてのRuby

Ruby言語で記述したプログラムは、ruby というコマンドラインアプリケーションを通じてプログラムを動作させます。

ここでは、その ruby コマンドのヘルプメッセージの読み方について解説します。

コマンドプロンプトから次のコマンドを実行してみましょう。

>ruby --help

これは、「”ruby” というコマンドに “–help” というオプションを加えて実行して下さい。」と言う意味です。
まず、”ruby” ですが、Windows ではこのコマンドの実態は “ruby.exe”というファイルで、コマンドプロンプト上では拡張子の “.exe” を省略して呼び出すことができます。
“–help” は、ヘルプ(助けて)、つまり「Rubyの使い方を教えて下さい」という意図を ruby コマンドに伝えるためのオプションなのです。

コマンドを実行すると以下のような結果が出力されます。

Usage: ruby [switches] [--] [programfile] [arguments]
  -0[octal]       specify record separator (\0, if no argument)
  -a              autosplit mode with -n or -p (splits $_ into $F)
  -c              check syntax only
  -Cdirectory     cd to directory before executing your script
  -d, --debug     set debugging flags (set $DEBUG to true)
  -e 'command'    one line of script. Several -e's allowed. Omit [programfile]
  -Eex[:in], --encoding=ex[:in]
                  specify the default external and internal character encodings
  -Fpattern       split() pattern for autosplit (-a)
  -i[extension]   edit ARGV files in place (make backup if extension supplied)
  -Idirectory     specify $LOAD_PATH directory (may be used more than once)
  -l              enable line ending processing
  -n              assume 'while gets(); ... end' loop around your script
  -p              assume loop like -n but print line also like sed
  -rlibrary       require the library before executing your script
  -s              enable some switch parsing for switches after script name
  -S              look for the script using PATH environment variable
  -T[level=1]     turn on tainting checks
  -v, --verbose   print version number, then turn on verbose mode
  -w              turn warnings on for your script
  -W[level=2]     set warning level; 0=silence, 1=medium, 2=verbose
  -x[directory]   strip off text before #!ruby line and perhaps cd to directory
  --copyright     print the copyright
  --enable=feature[,...], --disable=feature[,...]
                  enable or disable features
  --external-encoding=encoding, --internal-encoding=encoding
                  specify the default external or internal character encoding
  --version       print the version
  --help          show this message, -h for short message
Features:
  gems            rubygems (default: enabled)
  rubyopt         RUBYOPT environment variable (default: enabled)

これがrubyコマンドの使い方を表した結果です。何やら英語だらけでワケが分からない感じがしますが、落ち着いて見て行きましょう。
先頭にある構文がもっとも重要なものになります。

Usage: ruby [switches] [--] [programfile] [arguments]

この先頭の「Usage」ですが、これは「ユーセージ」と発音し(「うさげ」ではありません)、「使い方」という意味です。 コマンドラインアプリケーションのヘルプは一般的に、この形式で説明をしているものが殆どですので、覚えておきましょう。

まず角括弧ですが、これは「括弧に囲まれた部分を省略しても良い」という意味で、swhitches, –, programfile, arguments のすべてを省略しても良いということです。

実際に ruby とコマンドを打っただけでも ruby は正常に動作します。(但し、この場合はプログラムファイルの代わりにキーボードから Rubyスクリプトを打ち込み、最後にキーボードからCtrlキーを押しながら Dキーをタイプして Enterキーを押下してコマンドを終了させなければなりませんが…。)

>ruby
puts "Hello"
puts "World"
^D ※Ctrlキーを押しながらDキーをタイプ、Enterキーを押下して終了
Hello
World

続いて switches ですが、これは「オプション」とも呼ばれ、”-” ハイフンから始まる文字列のことです。

ハイフンが1つだけの場合は、「ショート形式のオプション」であり、ハイフンが2つの場合は、「ロング形式のオプション」です。

ショート形式のオプションの場合は、ハイフンに続くアルファベット1文字のみが機能を示すオプションとして認識され、2文字目以降に続く英数字はこの機能に対するパラメータとされます。

ロング形式のオプションの場合は、ハイフン2つ以降に続く文字列が機能名を表します。また、イコール(=)の後に続く英数字はこの機能に対するパラメータです。

先に実行の “ruby –help” の出力結果画面の2行目以降が上記形式で解説されています。
詳しい説明を知りたい方は、Rubyのリファレンスマニュアルを参照して下さい。

Ruby 2.0.0 リファレンスマニュアル > Rubyの起動

[–] は先に解説のようなオプションの指定が終了したことを ruby コマンドに伝えるためのオプションです。

programfile はRuby言語によって記述されたプログラムを収めたテキストファイルを指定します。 一般的に拡張子 .rb をしていたものが使われますが、拡張子が無くてもプログラムは実行されます。

arguments は、「引数(ひきすう)」と呼ばれます。これは Rubyで書かれたプログラムに渡すパラメーターのことであり、スペース区切りでいくつでも指定することが出来ます。

Share Button

Windows環境へのRubyのインストール

Ruby のインストールには様々な方法があります。

今回は初心者向けに Windows のコマンドプロンプト上でRubyプログラムを実行させるという、最もお手軽な方法を実現するためのインストール方法について記述します。

Ruby Installer のダウンロード

Ruby をインストールするための RubyInstaller は以下のサイトから入手することが出来ます。
http://rubyinstaller.org/

RubyInstaller のホームページ

RubyInstaller のホームページ

このページの上部のにある赤い「Download」ボタンをクリックするとダウンロードページに移動します。
http://rubyinstaller.org/downloads/

RubyInstaller のダウンロードページ

RubyInstaller のダウンロードページ

どのインストーラーをダウンロードするか

 ダウンロードページの「RubyInstallers」直下の項目から、最新版のインストーラーをダウンロードします。
 項目名「Ruby *.*.*-p***」のRuby の後に続く数字の大きいものほど新しいバージョンのものです。特に事情が無い限りは最新版をダウンロードして下さい。
 また、お手持ちのPCが64bit マシンであることが分かっている場合は、項目名に(x64) という文字を含むものをダウンロードして構いません。 32bitマシン、あるいは分からない場合は、(x64)という文字が含まれていないものをダウンロードして下さい。
(このページでは、Ruby 2.0.0-p481 (x64) をインストールする操作について説明しています。)

インストーラーを起動する

ダウンロードしたインストーラの実行形式ファイル(*.exe) を実行します。
(筆者の場合は、rubyinstaller-2.0.0-p481-x64.exe)
インストーラーを起動すると「セットアップに使用する言語の選択」ダイアログが表示されます。

スクリーンショット 2014-05-22 07.55.05

「セットアップに使用する言語の選択」ダイアログ


ここは「日本語」のまま、「OK」ボタンをクリックして下さい。

「Ruby 使用許諾契約書の同意」ダイアログが表示されます。

スクリーンショット 2014-05-22 07.55.26

「Ruby 使用許諾契約書の同意」ダイアログ


オプションボタンの「同意」を選択して「次へ」ボタンをクリックすると、「インストール先とオプションの指定」ダイアログが開きます。

スクリーンショット 2014-05-22 08.05.46

「インストール先とオプションの指定」ダイアログ


ダイアログ中の3つのチェックボックス項目についての説明は以下の通りです。内容を読んでチェックボックスのオン/オフを設定して下さい。説明の意味が良くわからない場合はチェックボックスをオンにすることをお勧めします。

  1. Tcl/Tkサポートをインストールします。
    Ruby とともに Tcl/Tk GUI 作成ツールキットをインストールします。 インストールすると、RubyでGUIアプリケーションを作成できます。
  2. Ruby の実行ファイルへ環境変数 PATH を設定する
    どこからでも Ruby を実行できるようにします。
    既に Rubyがインストールされていると競合するかもしれません。
  3. .rb と .rbw ファイルをRubyに関連づける
    ダブルクリックやシェルプロンプトでコマンド名を打つだけで Ruby スクリプトを実行できるようにします。すでに Ruby がインストールされていると競合するかもしれません。

「OK」ボタンをクリックしてインストールを実行するとインストールが開始されます。

スクリーンショット 2014-05-22 08.05.59

「インストール状況」ダイアログ


無事インストールが終了すると「Ruby セットアップウィザードの完了」が表示されます。
スクリーンショット 2014-05-22 08.06.30

「Ruby セットアップウィザードの完了」ダイアログ

ダイアログ内に表示されている参考URLは以下の通りです。

正常にRubyがインストール出来たことの確認

Windowsの「スタート」→「すべてのプログラム」→「アクセサリ」→「コマンドプロンプト」でコマンドプロンプトを起動し、プロンプトウィンドウで以下のコマンドを実行して下さい。

> ruby --version

コマンド実行後、インストールしたバージョンが表示されますので、確認してください。

スクリーンショット 2014-05-22 10.07.01

Rubyコマンド実行画面


ここまでで Ruby のインストールは完了です。 それでは、Ruby言語を利用したプログラミングを始めましょう!!(^o^)/

Share Button