Techの最近のブログ記事

ちょっと前の記事ですが。
computerworld.comの記事"The top 10 dead (or dying) computer skills"によると
終わってる(終わりつつある)コンピュータ技術ベスト10はこんな感じ。

1.COBOL
2.非リレーショナルDBMS(Nonrelational DBMS)
3.非IPネットワーク(Non-IP network)
4.cc:Mail
5.ColdFusion
6.C言語(C programming)
7.PowerBuilder
8.認定NetWare技術者(Certified NetWare engineers)
9.PCネットワーク管理者(PC network administrators)
10.OS/2


COBOLを始め、どれもさもありなんといった感じですが、
個人的に思い出深いのがPowerBuilder。
前いたプロジェクトで思いっきり使ってました^^;

PowerBuilderについてよく言われるのが「データウィドウはいいんだけどねー」ってやつ。
私も同感で、あのデータウィンドウはデータベースへのアクセスやコントロールを
格段に楽にできるので魅力的なんですがねぇ。
埋め込みSQLを書けるのも魅力でしたが、それも含めてクラサバ時代の遺物でしょう。
逆にそういう形態(非Web型)のシステムならまだ使い道もあるのでしょうが、
いかんせんマイナーなのと、それゆえに言語/IDE自体のバグが終息しないのが致命的ですね。

しかしこんなランクにインする程度にはメジャーなんだな^^


一位のCOBOLは威風堂々といった感すらありますが、
まだまだ現役で動いているシステムが多いのも事実。
まだしばらくの間は現役でしょうね。
しかし文字列に全角/半角の混在ができないところや
GOTO多用でたやすくスパゲッティコードになるところなんかは
早くなんとかして欲しいところ。
(後者は言語仕様のせいではありませんが)


ところでこのランクで納得いかないのが6位の"C言語"!

確かにJavaやC++等のオブジェクト指向言語や
Perl,Python,Rubyといったスクリプト言語に押されてはいますが、
制御や組み込み、OS開発にはC(とアセンブラ)は欠かせませんし、
SIの現場でも、ちょっとしたツールをつくるのに役に立ちます。


技術の進展が速いこの世界、
10年後にはJava,C++,C#,PerlやPHP、オブジェクト指向という設計技法自体も
時代遅れになっているかもしれませんが(RDBMSは既にそんな感じだし)、
いつの世も大事なのは基本。

言語の流行り廃りは移り変わっても、
コンピュータが0と1との組み合わせで動く限り、
設計/プログラミングの基本は変わらないでしょう。
(その意味で量子コンピュータが実用化されたらどうなんだろう?)

変わらぬ基本をしっかりと身につけつつ、
常に新しい技術もキャッチアップしていけるスキルこそが、
IT技術者に必要なスキルなのでしょう。

twitter をコマンドラインからも使おうと思ったら
一番早いのは公式にもあるようにcurlを使う事だ。

これなら(少なくともOSX.5では)何もインストールする必要はない。
しかし結果が全てXMLで表示される(というかRSSを表示してるだけ)
のでターミナルだと見づらい。
シェルスクリプト書いXMLパーサかますとかやってもいいけど面倒くさい。
後々の使い道は広そうだけど・・・。

そういうのはその内やるとして、もう少し手軽に使えて結果が見やすいのがいい、
と思って探したら perl で書かれたものが見つかったので使ってみる。

準備としてまずNet::Twitterモジュールをインストールする。

$ sudo perl -MCPAN -e shell
CPAN> install Net::Twitter 




次に$HOMEに.twitterというファイルを作り、
YAML形式でユーザ名とパスワードを記述する。
パーミッションは0600にする。
スクリプトを適当なディレクトリに配置したら実行。

$ twitter.pl public_timeline
RSS_AFP: Obama calls for urgent action on economic crisis http:\/\/tinyurl.com\/5zcdpq
でちゅのば: ホッティーおちつくわー
ドジっこmine: @quoggenzockerおお、お疲れ様ですー。
Chris Daniel: Awake. Trying to decide what to do today.
ユッキラキラ☆: @pgo 8つあります。
jordimolinera: Ei... bon dia!
kanatam: 帰宅して晩御飯中。今日はお惣菜。コロッケ買ってきたら、黒豆コロッケだった・・・豆いらねー!甘い。



 







これだと表示されるのがユーザ名と発言内容だけなので見やすい。
勿論ポストもできる。

ただし日本語等の非英語文字が化ける。
調べてみると私の環境には JSON 関係がインストールされていなかった。
なので JSON(と JSON::PP と JSON::XS)を CPAN でインストールする。

$ sudo perl -MCPAN -e shell
CPAN> install JSON
CPAN> install JSON::PP
CPAN> install JSON::XS






モジュールをインストールしたら再び実行。

$ twitter.pl public_timeline
moi: 这些东西,这些被认定为真实的东西真的存在(或存在过)吗?几十亿人,几百年,真有几个人真就去调查了解过了?还不是传扬出来的么?但是人人皆信了。
Dawn News: Eight killed, 10 injured in India blast: 
Saturday, 08 Nov, LUCKNOW: At least eight people were killed .. http://twurl.nl/heefm2
OnYourWeb_net: http://OnYourWeb.net Drug & Alcohol Recovery Club. Relapse Prevention & Sober L.. http://bit.ly/Wu2x
lpggass: BOP 頑張ってるなぁ、パーレィはいらんけどデロリアンは触ってみたいのぅ。
k_rion: アニメ見るたびに入江がかっこよくなっているのは何故?











文字化けは直った。
これならシェルで色々やってる時にちょっとTL見たりポストしたりできる。
いちいちブラウザに切り替えなくても済むのも楽。

先のcurlもそうだけど、使い方次第で色々応用が効きそうだ。

Mozilla Prism を試してみた。
現在Windows版のみ。

リンク先サイトの"Download Prism for Windows"をクリックすると
ダウンロード・インストールできる。

試しに Google Docs のURLを登録してみる。
アプリケーション登録時にアイコンをデスクトップや
スタートメニュー・クイックランチャーに登録することができる。

googleDocsIcon.JPG


アイコンをWクリックするとアプリケーションが起動する。

googleDocsLogin.JPG

Google Docs の場合はログイン要求画面が表示される。

googleDocsMain.JPG

ログインしたら通常通り Google Docs が利用できる。

使用感は通常ブラウザで利用しているのと大差ない。
プロセスもブラウザとは別プロセスのようだ。

もうひとつ、Amazonも試してみる。

amazon.JPG

ちゃんと使える。

ネットワークさえ繋がってれば、デスクトップとの垣根がなくなるなぁ。
Mac版カモーン!














Windows + Cygwin 環境でsshクライアントを使用するため
OpenSSH をインストール・セットアップしたので忙備録として。

作業にあたっては guro chan さんの日記 を参考にさせて頂いた。
Vista環境ではコマンドプロンプトを起動する際「管理者として実行」することを忘れずに。

まずは cygwin のインストーラで openssh と diffutils をインストールする。
インストールしたら一応 cygcheck コマンドで確認。

$ cygcheck -c openssh
Cygwin Package Information
Package              Version        Status
openssh              5.1p1-3        OK

$ cygcheck -c diffutils
Cygwin Package Information
Package              Version        Status
diffutils            2.8.7-1        OK










確認したら ssh-host-config コマンドを実行。

$ ssh-host-config



そうすると次の確認メッセージが表示される。

*** Query: Should privilege separation be used? (yes/no)



先の参考サイトに従って yes を応答する。
すると私の環境ではボリュームマウントエラーとなった。

*** Warning: The SYSTEM user cannot access the mount point /usr/bin.
*** Warning: Please run the following command to add a system mount point:
*** Warning:    mount -f -s -b "[DOS path to Cygwin]/bin" "/usr/bin"
*** Warning: where [DOS path to Cygwin] is something like c:/cygwin.
*** Warning:
*** Warning: For more information, run 'mount -m' and 'mount -h'
*** Warning: The SYSTEM user cannot access the mount point /usr/lib.
*** Warning: Please run the following command to add a system mount point:
*** Warning:    mount -f -s -b "[DOS path to Cygwin]/lib" "/usr/lib"
*** Warning: where [DOS path to Cygwin] is something like c:/cygwin.
*** Warning:
*** Warning: For more information, run 'mount -m' and 'mount -h'
*** Warning: The SYSTEM user cannot access the mount point /.
*** Warning: Please run the following command to add a system mount point:
*** Warning:    mount -f -s -b "[DOS path to Cygwin]/" "/"
*** Warning: where [DOS path to Cygwin] is something like c:/cygwin.
*** Warning:
*** Warning: For more information, run 'mount -m' and 'mount -h'
*** Warning: It appears that you have user mode mounts ("Just me" chosen
*** Warning: during install.)  Any daemons installed as services will fail
*** Warning: to function unless system mounts are used.  To change this,
*** Warning: re-run setup.exe and choose "All users".
*** Warning:
*** Warning: For more information, see http://cygwin.com/faq/faq0.html#TOC33
*** ERROR: Problem with mount points. Exiting

























画面に従ってディレクトリをマウントする。

$ mount -f -s -b "c:\cygwin\bin" "/usr/bin"
$ mount -f -s -b "c:\cygwin\lib" "/usr/lib"
$ mount -f -s -b "c:\cygwin" "/"





再び ssh-host-config コマンドを実行。
先程の "Should privilege 〜" のメッセージに引き続き、パーミッションエラーが出た。

*** Warning: The file /etc/passwd is not readable by all.
*** Warning: Please run 'chmod +r /etc/passwd'.
*** Warning: The file /etc/group is not readable by all.
*** Warning: Please run 'chmod +r /etc/group'.
*** ERROR: Problem with LocalSystem or Adminstrator IDs






メッセージに従い粛々とパーミッションを変更する。

$ chmod +r /etc/passwd
$ chmod +r /etc/group




三度 ssh-host-config を実行。
今度は /var のパーミッションで弾かれた。

*** Warning: The permissions on the directory /var are not correct.
*** Warning: They must match the regexp d..x..x..[xt]
*** ERROR: Problem with /var directory. Exiting.




ので、大人しくパーミッション変更。

$ chmod 111 /var



四度目の正直。ssh-host-config が漸く通過。
sshdアカウントを作成するか聞いてくるが、今回はsshサーバを建てる訳ではないので no を返す。
sshdをサービスとして実行するか聞いてくるので、これも no。

*** Query: Do you want to install sshd as a service?
*** Query: (Say "no" if it is already installed as a service) (yes/no)



すると・・・

*** Info: Host configuration finished. Have fun!



漸く OpenSSH のセットアップが完了。
早速 ssh コマンドで目的のサーバにリモートログインしてみると、
見事接続できた。パチパチ。

guro chanさんに感謝。

MacBookにVMwareFusionを入れてみた。

とりあえず30日間評価版をダウンロードしてインストール。
ゲストOSとしてWindowsVistaBusinessをインストール。

vmf01.png

VistaのDVDは元々Let'sNoteY5を買ったときの
アップグレードキャンペーンに申し込んで購入したものだが、
XPをVistaに上げる気がどうしてもしないので放置していたもの。
丁度いいので今回MacBookに入れる事にした。
今のところ問題なく動作する。
(アクティベーションはまだだけど)

インストールの所要時間は裸のVistaを入れるだけなら1h程度か。
OSX上でシームレスにWindowsを操作できるのでなかなか便利。

WindowsUpdateをすると60個のアップデートが。
しょうがないのでアップデート実行。

vmf03.png


VMはデフォルトで作成したが、メモリは1GB、HDDは8GB程度割り当てられている。
実メモリは2GBなので半分割り当てるのかな?
HDDも8GBじゃ足りねぇだろ、Vistaには。
視覚効果Aeroをフルに生かすにはちょっと足りない。
実際動作ももっさり遅い。

システムの評価(エクスペリエンス・インデックス)も1.0と低評価なので
全ての視覚効果を切る事にする。
見た目はダサいが、これならまずまずの動作速度。

VMwareは以前フリーのServerをWindows上で利用していたが、
それから比べると大分洗練された感がある。
VMwareToolも自動的にインストールされてマウスもスムーズに使える。
特にFusionはMac上でWindowsを走らせることを前提としているからか、
McAFeeのアンチウィルスソフトもインストールできる。


メモリやHDD割当をチューニングして、そのうち開発環境もこちらへ引っ越そうかしら。

ちょっと前に嫁さんが最新型MacBook(現時点)を買った。

サクサク使えててよさげなのだが、問題がある。
嫁さんは元々G4Mac使いで、AdobeのPhotoshopだのIllistratorだのが使えないと困るんだが、
最新型MacBookにプリインストされてるOSX.5(Leopard)では
Adobe製品の一部がきちんと動作しないらしい。
(俺自身はそういうの全然使わないんでよくわからないのだが)

で、一つ前のOSX.4(Tiger)ならそういう問題はなさそうなんだが、
いかんせんIntelMac用Tigerは既にパッケージ販売されていない模様。
しかしなんとかして嫁さんのMacBookにTigerをぶちこみたい。

幸か不幸か俺が使ってるMacBook(一世代前)はプリインストOSがTigerだったんで、
まずは付属のDVDからインスコを試みるが、これはまあ予想通りNG。

で、次にとったのが以下の方法。

1.俺のMacBookに新規パーティションを作成し、Tigerをインストールする
2.ディスクユーティリティでTigerのディスクイメージファイル(.dmg)を作成する
3.作成したdmgファイルをLAN上の共用フォルダ(今回はTimeCapsule上)に保存する
4.嫁さんのMacBookにTiger用の新規パーティションを作成し、ディスクユーティリティで3.のdmgファイルからディスクイメージを復元する

結果、このやり方ならとりあえず嫁さんのMacBookにTigerをインスコし、
TigerもLeopardも起動することはできるようになった。

だがしかし問題がある。

嫁さんは元々G4MacでPhotoshopなんかを使ってる関係で
ディスプレイにEIZOのデカい液晶モニタを使っているのだが、
MacBook(Tiger)からこのディスプレイに出力しようとしても
外部モニタとして認識されない。

それどころか、MacBook本体のモニタも「不明なディスプレイ」として
正常に認識されていないらしい(表示自体は問題ないが)。
これがLeopardからだと本体モニタも外部ディスプレイもそれぞれきちんと認識されるのだが。

俺のMacBookと嫁さんのとではチップセットがIntel GMA950からX3100へと変更されているんで、
おそらくオンボードビデオドライバが合ってないからではないかと踏んでいるのだが・・・。

Intelのサイトからドライバをダウンロードできないかと思って探してみるが、
OSX用のドライバはダウンロード提供されてない。
ダメもとでLeopardのディスプレイドライバファイル(System/Libraly/Extensions/AppleIntel*.kext関係)をTiger側にコピーしてみたが、やっぱりダメだった。


やはり、素直に最新版を買えというAppleとAdobeの陰謀か。