2009年2月4日水曜日

Pythonが手軽でとっても面白いです


プレイステーション3は、Linuxをインストールすると、立派にパソコンとして使えるようになります、って話は、このブログではくどいくらい書いていますが、もちろん、パソコンの楽しみであるプログラミングもきっちり楽しめます

プログラミング言語は沢山ありますが、あのGoogleでも使っているという、Python(パイソン)をやってみたところ、これがまた非常に手軽でとっても面白く感じています。

Pythonの話は、以前もこのブログに書きましたが、その時は、対話型の画面で使えるため超高機能電卓として利用しているよ、という内容でした。

私もまだまだ勉強し始めたばかりなので、あまりPythonを知らないのですが、超高機能電卓ばっかりの利用からちょっとだけ発展させて、プログラミングを組んでみました。

とりあえず、作ってみたのは、バーコード(JANコード)のチェックデジット数字を求める関数です。

JANコードってご存知ですか。
バーコードの一種なんですが、8桁か13桁の数字をバーコード化したものです。
しかし、単に数字を並べただけでは、バーコードとしては機能しないように出来ています。肝心のバーコードリーダーで読み取る事が出来ないようになっているんです。
JANコードは、最後の一桁の数字が、それ以外の数列から求めたチェックデジットという暗号になっているからです。

私のプログラムは、任意の数列を入力することによって、その数列のチェックデジットを求めるものとなっています。

具体的には、あらかじめ、moritool.pyというファイルにcheckdigit()という関数を書いておきました。それがチェックデジットを求めるプログラムというわけです。


Pythonは、対話型で使えるので、電卓を利用する感覚で今回のプログラムを利用出来るようになっており、この手軽さがうれしいですね。

実際に作った関数がちゃんと動くかどうか、ガンダム無双のソフトのパッケージに付いているバーコードで試してみました。

バーコードは4582224941513です。
つまり、チェックデジットは3です。

だから、プログラムは、moritool.checkdigit(458222494151)と入力して、この結果として3が求まればokなわけです。

ほっ・・・。ちゃんと求まりました。

しかし、moritool.pyファイルを作ると言いますが、ファイルを作る時にちょっと引っかかってしまいました。

ファイルは、私、もりもりの権限が及ばない、root権限という特別な権限を持ったユーザーのみが書き込み出来る場所(/usr/lib/python2.5/ディレクトリ)に書き込まないとならないんです。

プログラムの記述は、どうしても、ウィンドウアプリケーションのテキストエディタを使いたいんですけど、権限は無いのでダメ、とファイルの書き込みは拒否されてしまいました。

こういう場合は、Linuxらしく(?)コマンドウィンドウを起動して、コマンドでの作業になっちゃいますね。

具体的な手順を書いてみます。まず・・・
sudo touch moritool.py
この、sudoコマンドを使うと、一時的にroot権限を取得できるんです。
これで、一旦、moritool.pyを空のファイルとして作ってしまいます。

しかし、作ったは良いのですけど、まだmoritool.pyは、root権限を持ったユーザーしか書き込み、実行が出来ない状態のままですね。
つまり、このウィンドウの外に出てしまったら、元のもりもりの権限に戻るわけで、やっぱりファイルに書き込みは出来ないまんまです。

そこで、sudoコマンド連発出来る今のうちに、権限を変更するchmodコマンドを使って、root以外のユーザーでも大丈夫なようにしてしまえー。

sudo chmod o+rwx moritool.py
こうすることにより、root権限以外の権限のユーザーでも、moritool.pyに読み・書き・実行全部可能となりました。
これで、もりもりの権限でも大丈夫です。

遠回りしましたが、これでようやくウィンドウアプリケーションのテキストエディタに戻ります。
さっき作った空のファイルmoritool.pyを開いて、その中にプログラムを書き込み、無事に保存まで辿り着きました。

ちょっとだけプログラムを組んでみただけですけど、Pythonは、手軽さと高機能さの両方が混在していて、好きになれそうですよ。
それに何より、私が今愛用しているPS3 Linuxのubuntu 8.10には、最初からPythonがインストール済みなので、その敷居の低さもありがたいです。

さて、そのPS3 Linuxのubuntu 8.10ですが、今のところ非常に安定しています
前まで使っていたXubuntu 7.10は、ブラウザのFirefox2がいきなり異常終了したり、サウンドが鳴らなかったり、なかなか厳しい部分が多かったのですが、ubuntu 8.10は、快適です。

処理速度は、やっぱりCore2 Duo搭載のWindows XPマシンと比べたら、遅めではあります
メモリが256MBしか搭載されていないという弱みも消せません。
けれど、個人的には、実用的と言える速度は出してくれています。
プレイステーション3とubuntu 8.10の相性は、良いと言っていいのではないでしょうか。

くどいついでに、大好きなプレイステーション3をパソコンとして使う事、それ自体が楽しいですよ。