作成者別アーカイブ: toshiya

はじめての 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

小さな「バル」のはじめ方

僕自身、バルを開くつもりはないのですが、この本を読んだ理由は、この本が素晴らしいマーケティング教材であると感じられた為です。

一通り内容に目を通したところ、
出店にあたってのコンセプトづくりから開店スケジューリング、資金集めから開業後の集客の企画まで…

「バル開店」という事例を題材に中小企業経営のノウハウが非常に良くまとまった一冊。

飲食業に関わらない企画担当者の方にも是非ともオススメしたい本です!(o≧▽゜)o

Share Button

IT立国エストニア

6年前に出版された本ですが、北欧の一国が驚くべきIT先進国である事実を綴った1冊。

これを読むと、改めて我が国は ITの活用が進んでいないことを思い知らされます。

この阻害要因としては、我が国には国民あげて IT先進国を作ろうとする意欲がないことと、また、政治的な問題が多すぎるのではないかと思いました。

この国が成功した要因は、国民総人口 135万人というコンパクトな国家規模であること、また、スゥエーデンやロシアに長い間支配されてきた経験から、「自分たちの手で国をつくる」という国民の前向きな意識にあるのではないでしょうか?

2007年から電子選挙を実現したこの国の、ITにかける情熱はすさまじく、特に「法整備」の部分には我が国も沢山見習うべきところがあると感じられました。

Share Button

「証拠がない」ことを証明するのは不可能!

PC遠隔操作事件の片山祐輔容疑者がようやく逮捕されました。

事件としては、これはこれで一段落ではあるのですが、僕自身、この事件には大変な問題が未解決のまま残ってると感じます。

それは、今回の捜査では、「コンピュータの通信記録から一連の犯行を立証できなかった」ということです。

容疑者逮捕の決め手は河川敷にスマートフォンを埋めている姿が確認されていること、そしてそのスマートフォンから容疑者のDNAが検出されたことであり、あくまでも片山容疑者の行動による物的証拠であるということです。

きっと彼が最後に、「あ、真犯人です…」のメールを送信するための工作を行わなければきっと、今回の事件は無罪判決となっていた可能性が非常に高かったでしょう。

今回、何よりも巧みであったのは、彼が「自分もPCを遠隔操作された」との主張を続けたことでした。

この主張は何よりも検察当局を苦しめたことに違いありません。

なぜならこの場合、検察は「容疑者のPCは遠隔操作をされなかった」ということを立証する必要があるのです。

しかし、「PCを遠隔操作された証拠を見つけるのは簡単なこと」ですが、「PCを遠隔操作されなかったことを証明するのは不可能」ということがハッキリした感があります。

僕も学生時代に法学で刑法を学びましたが、刑事裁判には「疑わしきは被告人の利益に」という原則があるのです。

片山容疑者のPCを遠隔操作された疑いは最後まで残ります。

その場合は、片山容疑者に有利なように判決は動かざるを得ないのです。

今考えると、本当に恐ろしい事件でした。

片山容疑者が蛇足を加えてくれて本当に良かったと思います。

昨今、PCにおけるセキュリティーが重要視され、通信経路も暗号化されることで、通信内容も他人から傍受されるリスクが少なくなりつつある一方、これを逆手にとった犯罪の可能性だって十分考えられると思います。

例えば産業スパイがスマートフォンを用いて企業の重要機密を写真に撮ったとしても、その写真データをデバイスに残さず暗号化通信の上、セキュアなクラウドサービスにアップしていたとしたら、例えその場で犯人を確保したとしても肝心な「証拠」が無いため、犯罪を立証することはできないでしょう。

実際にそんな機能をもつスマートフォンアプリを作るのは難しいことではありません。

ましてやカメラもスマートフォンのものでなく、Google Glassやコンタクトレンズ埋め込み型のカメラであった場合、その撮影の行為さえ、いつ行われているのか分からず、ますます犯罪の立証は難しいことになると思われます。

結局、世の中が便利になり、セキュリティーも強化されるほど、ネット犯罪は巧みさを増して行くものと思われます。

Share Button

Apache Tika について

http://tika.apache.org/

これは「コンテンツ解析アプリケーション」とのことで、ファイルを入力することにより、そのファイルのMIMEタイプを調べたり、PDFやWordなどのファイルからテキストデータを抜き出すことが出来るというものです。

これ、Namazu の頃は、MIMEの判別は Perl の File::Magic が担当していて、PDFからの テキストの抜き出しは xpdf の pdftotext が行っていたりしました。

随分と世の中には便利なものが出てきたものだと思います。

そんなわけで、現時点での最新版 tika-app-1.4.jar をダウンロードして色々と遊んでみました。

http://tika.apache.org/1.4/gettingstarted.html のページによると、

$ java -jar tika-app-1.4.jar –text hogehoge.pdf

を実行することで、hogehoge.pdf 内のテキストデータを抜き出すことが出来ました。

PDFなので、行とか列なんかに多少の狂いが発生することがあるけれども、 まぁ、使えると思います。

$ java -jar tika-app-1.4.jar –gui &

と、することで Java GUI アプリケーションとして動かすことも可能。 ユーザーインターフェースはイマイチだけど、必要最低限のことは出来る感じです。

ApacheTika

いろいろ使えそうだからもうちょっといじってみようと思います。

Share Button