オブジェクト指向でコードを書く作業

オブジェクト指向プログラミングのメリットといえば・・・

・作業効率の最適化
・生産性の向上
・バグを減らす
・コードの再利用
・コードの管理をしやすくする

といったところか。

現場で開発をやっていて日頃感じるのは、どちらかといったら、オブジェクト思考プログラミングは、コードの管理(可視性・見通し)を高めるための道具に過ぎないように思える。この管理というのがミソでコードだけではなくプロジェクトの管理や人員の管理などの一連の管理を行いやすくするための思考であるというように思えている。

一時期はオブジェクト思考万歳!みたいな風潮があったけど、定着してきているのか、それともオブジェクト指向の限界が見えてきたのか、最近は良かれというような風には余り言われていないように思える。

とはいえ、従来の手続き型?のプログラミングではバグがわんさか生成されることがあり、そのデバッグではかなり苦労する。また、他人が作ったこのようなコードでは、本人しかわからないようなコーディングとなっていることがよくあり、再利用といった観点からはほど遠い。

なので「どっちもどっち」なんですよ。いろんなプロジェクトを仕上げることが多いので、使い分けが必要になってくる。

ただ、開発をやっていて思うのは、オブジェクト思考でプロジェクトを進めると、事務的作業が膨大になった。その反面でコーディングの時間がかなり短縮されたように感じる。テストや評価も比較的やりやすいし、従来のとにかく使ってみてバグがあったら直し、また使ってみて直す、みたいな突貫工事的なことは少なくなる。ま、会社の規模が大きくなるほど、またプロジェクトの規模が大きくなるほど、オブジェクト指向方式は必須になるということ。

視覚障害者がオブジェクト指向プログラミングを行うには、実際のところはコードを書く作業よりも、その事務的な作業で大変なことがある。オブジェクト指向は可視性を高めるという概念があるので、概念そのものを取り入れた開発プロジェクトでは、このようなビジュアルな書類を作成するのが困難かもしれない。支援技術を使いこなせる人や、XMLで直接モデル図を記述できるレベルの視覚障害者であれば、まあどうにでもなるのかもしれないけど、普通のプログラマーだったらちょっと苦労してしまうだろう。

・オブジェクト指向の現実
www.aerith.net/design/demerit-merit-j.html

Windows Installer による MSI パッケージの多言語化

Windows Installer による MSI パッケージの多言語化

<参考にしたサイト>
・ぷりんすの開発メモ 単一msiで多言語に対応したインストーラを作成してみる
prins-note.blogspot.com/2010/02/msi.html
・How To Localize the Setup GUI and Deliver Localized Files Using a MST
www.contactez.net/support/MSITransformLocalization.html
・Orca(msiファイルの編集ツール)をインストールする方法
pasofaq.jp/development/visualbasic/orca.htm

上記のサイト群を何回か読み直してテストコーディングをするとわかってくるのだけど、ちょっと不親切なので、自分のためのメモとしてここでまとめておきます。

Windows Installer では多言語に対応したインストーラが作成できない。
多言語対応とは日本語OSで動いているときには日本語でメッセージを表示し、英語OSであれば英語でメッセージを表示するといった具合。
InstallSield(インストールシールド)では多言語対応インストーラの作成が容易にできるらしいのだけれど、自分の手元にないので、MSIパッケージとして配布可能なWindows Installerでチャレンジ!

1.Microsoft Platform SDK / ORCA の入手
pasofaq.jp/development/visualbasic/orca.htm で説明されている通りに行う。さほど苦労っしない。

2.作業用フォルダの作成
どこでもよいので作業用フォルダを作成する。
たとえば C:temp など。

3.MSIパッケージの準備
MSIパッケージを予めVisual Studioで作成しておく。
このとき Localization プロパティを変更して、対応したい言語をそれぞれ準備する。
たとえば、英語と日本語に対応したければ Localization で English でビルド Japanese でビルドをそれぞれ行い、各パッケージを適当なフォルダ(C:temp)にコピーしておく。

4.スクリプトの準備
以下のVBSを用意する。1で説明した「1.Microsoft Platform SDK / ORCA」がインストールされていること。

C:Program FilesMicrosoft Platform SDKSamplesSysMgmtMsiScripts
WiGenXfm.vbs
WiSubStg.vbs
WiLangId.vbs

自分で作成
ADDSUMINFO4MST.vbs
このファイルは
・How To Localize the Setup GUI and Deliver Localized Files Using a MST
www.contactez.net/support/MSITransformLocalization.html
で照会されていた物。そのまま転用する。

‘Sum.vbs. Argument(0) is the original database. Argument(1) is the
‘ customized database. Argument(2) is the transform file.
Option Explicit

‘ Check arguments
If WScript.Arguments.Count < 2 Then WScript.Echo "Usage is sum.vbs [original database] [customized database] [transform]" WScript.Quit(1) End If ' Connect to Windows Installer object On Error Resume Next Dim installer : Set installer = Nothing Set installer = Wscript.CreateObject("WindowsInstaller.Installer") ' Open databases and transform Dim database1 : Set database1 = installer.OpenDatabase(Wscript.Arguments(0), 0) Dim database2 : Set database2 = installer.OpenDatabase(Wscript.Arguments(1), 0) Dim transform : transform = Wscript.Arguments(2) ' Create and add Summary Information Dim transinfo : transinfo = Database2.CreateTransformSummaryInfo(Database1, transform,0,0) 5.スクリプトの実行 「ファイル名を指定して実行」よいので cmd する。 コマンドプロンプト上で 下記の一連のコマンドを実行。 WiGenXfm.vbs setup.msi setupJpn.msi 1041.mst ADDSUMINFO4MST.vbs "setup.msi" "setupJpn.msi" 1041.mst WiSubStg.vbs setup.msi 1041.mst 1041 WiLangId.vbs setup.msi Package 1033,1041 少し説明。 WiGenXfm.vbs setup.msi setupJpn.msi 1041.mst これは言葉で説明すると、英語用のsetup.msiを使って、日本語用のsetupJpn.msiに対して、異なる部分を1041.mstとして作成するというコマンドになる。そもそもmstはパッケージの差分として使用することが多いそうなのだけれど、このトランスポートを使用して多言語にも対応しようという形式らしい。なお setup.msi と setupJpn.msi はセットアップのビルドで作成したビルドのファイル名である。 ADDSUMINFO4MST.vbs "setup.msi" "setupJpn.msi" 1041.mst これは、setup.msiに1041.mstのカスタム情報を、たぶん埋め込むことかと。 WiSubStg.vbs setup.msi 1041.mst 1041 WiLangId.vbs setup.msi Package 1033,1041 msiのデータテーブルに言語コードを埋め込みパッケージ化。 6.動作確認 ・手動による方法 msiexec.exe /i setup.msi TRANSFORMS=1041.mst (日本語インストーラテスト) ・自動 地域と言語の設定を英語などにして動作確認。 ちょっと駆け足でしたが・・・。 これを読むような人は たぶん professional だと思うので。

古本売った費用で視覚障害者向けの本を スタバが活動

視覚に障害のある人が本を読もうとした場合、
現状では、いったん、一般の本屋で売られている書籍を何らかの
代替となる形式にする必要がある。

代替の形式というのは、それを
・誰かに音読してもらったり、
・点字という文字に変換したり、
・触る絵本にしたり、
または
・画面読み上げソフトで聞き取れるような電子データにしたり
である。

音読に関しては、最近は、Daisyという電子形式のデータが普及してきており、
全国各地にある展示図書館では、主にボランティアによって本を読み上げて録音し、
Daisyという形式にのっとった形式でCDにする。

Daisyというのは、章単位、段落単位、文章単位といった見出し語とのジャンプや、
再生速度を速くしたり遅くしたりといった機能など、
本の要所要所の強調すべき部分をマークアップして、
音読されたデータ(主にmp3やwavデータ)を、アクセスしやすくする規格(アクセシビリティ)の一つである。
詳細はググればいろいろとヒットします。

従来は視覚に障害のある人はカセットテープなどに本の内容をボランティアに朗読してもらって録音していた。
この方法では録音されたカセットテープでは、自分の読みたい箇所を探すのが大変だった。

この記事ではおそらくDaisyを作成するための経費への寄付活動と思われるけれど、
ほんとにありがたい!ありがとうございます!

私自身、読みたい本は、学生の頃は対面朗読という形で、
毎週のように図書館に通って、専用の部屋でボランティアさんに対面で読んでもらっていた。
今は電子データで手に入りそうなものであれば、出版社に問い合わせしたり、
直接著者に連絡したりもしている。
出版社に問い合わせした場合は、ほとんどの場合、著作権云々でNGである。
本を購入しても読めなかったということはときどきある。
そのときの悔しさといったら。

そういったなかでのこのような寄付活動に、心より感謝したい。

皆様、ありがとうございます!

・古本売った費用で視覚障害者向けの本を スタバが活動
www.asahi.com/national/update/1211/NGY201012110012.html
2010年 12月 12日(日曜) 17時 40分

記事一部抜粋。

 大手コーヒーチェーン「スターバックスコーヒージャパン」(東京都)が今月、店で古本を集め、売ったお金を視覚障害者の本づくりのために寄付する活動を展開している。

 注文したカフェラテを受け取りにカウンターへ。そこに置かれた赤のカードが目に留まる。

(snip)

 日本点字図書館には、録音図書が約15万2千部あるが、製作費用は1冊約10万円かかる。