2010年9月
« 8月    
 12345
6789101112
13141516171819
20212223242526
27282930  

カテゴリー

Perl, PHP, JavaScriptのちょっとしたTIPS

最近、久々にPerl、PHP、JavaScript、ちょっとだけはまったところのメモ。

意外と下記に言及されているサイトが少なかったんで。

Perl

文字列を区切り文字で分割して配列で受け取る場合について。

@data = split(/\t/ ,$line);

などは、空文字が途中にある場合、空文字以降捨てられてしまいます。

(無視されて切り詰められるのかと思いきや切捨てられるとは。)

最後の引数に-1をつければいいとサイトには書いてありますが、

@data = split(/\t/, $line, -1);

でもダメです。

@data = split(“\t”, $line, -1);

のように正規表現の所を文字列に変えると空文字も配列の1要素として格納されます。

TSVデータを外部から受け取って処理する場合など、配列の全要素の位置が固定のほうがいい場合は上記のコードがおすすめです。

PHP

クッキーの書き込みのタイミング。

setcookieでクッキーを書く場合、HTMLをoutputする前に書かないと書き込まれません。

(クッキーはヘッダー情報なので当然と言えば当然ですが。)

PHPと言うよりHTMLを直接書けるSCRIPT言語共通の仕様だと思います。

処理のあとに、一度にHTMLを吐きだすようなコードだとあまり関係ありませんが、

<%や<?phpなどでHTMLとロジックが混在していて、かつそれが他人のコードだったりすると、

「あれ?クッキー書かれてない。->ブラウザの問題?->セキュリティ設定?」などとあらぬ方向へ迷いこんでしまうこともあります。(ぼくみたいなおっちょこちょい君は特に)

JavaScript

画面表示時にウインドウを最大化する。

<script type=”text/javascript”>

<!–

window.resizeTo(screen.availWidth, screen.availHeight);

window.moveTo(0,0);

//–>

</script>

でウインドウを最大化(正確に言うと、スクリーンとほぼ同じサイズ)出来ますが、このままだとIEでは最大化されません。

IEにも対応させるには、

<script type=”text/javascript”>

<!–

window.moveTo(0,0);

window.resizeTo(screen.availWidth, screen.availHeight);

//–>

</script>

です。

ちなみに、moveToがなくてもダメ。理由は、IEの場合、resizeToが実行されるときに画面からはみ出るように大きくしてくれないから。つまり最初に中央に移動して、延ばせる領域を作ってから拡大するということです。

フリー

社内でクリス・アンダーソン著の「フリー」が回覧され、私も読んだ。現在世の中に起こっていることを同じ角度から切り取って丁寧に考察しており、勉強になる。「安い」と「ただ」では、購買者が持つ意識がまったく違う。ゼロの力学は、これまでのビジネスを根底から覆すパワーを持っている。

テクノロジーは、人間の労働力や時間を、機械やプログラムそしてそれを動かすための電力に換算して数値化する仕組みを創りだすことができる。最初のうちは、人間がやったらこのくらいという人月の呪縛から離れるのは難しいかもしれないが、人手でやらないことが当たり前になると価格は劇的に低下していくだろう。グローバル化の波はそれをさらに加速する。人件費を基準にしても、それは世界で一番安いところをベースに計算されてしまうからである。

弊社の World Wide Navi の文字列外部化機能は、数週間から数カ月分の作業を数時間から数日で終わらせることができる。その作業を1度きり使うだけでも日本での人件費に換算すると数十万から数百万分の価値となるが、一番安い価格だと人件費の数日分にもならない。あれこれ勉強したり調べたりする時間を費やすコストの方が高くつく。試用してみて使えそうなら即購入。そんな流れが作れないかと準備中である。

会社も5期目に入り、国際化の専門企業としてそれなりの信用も得てきた。最近多いのはやはり中国語対応の話である。日本語、英語だけだと力技でできても、中国語が加わると仕組みを作った方が圧倒的に有利である。国際化JPの製品やサービスが今、ちょうど求められているのではないかと思う。国際化JPの製品、サービスをなるべく多くの人に知ってもらい、役立ててもらう、それをこれからやっていかねばならない。そして、もうすぐ自らも海外市場に向けて歩みだす予定である。乞うご期待。

World Wide Navi 1.6 リリース!

本日、1.6が出ました!

http://www.kokusaika.jp/product/wwnavi/download.html

たくさんの機能が追加され、長い道でした。

今年前半に、予定している項目のほとんどが実装される予定です。

今後の情報発信に乞うご期待!

グローバルソーシング

今日、リアルコム社のグローバルソーシングセミナーに参加してきた。彼らの提唱するグローバルソーシングは、現在日本で行われているオフショアへのアウトソーシングとは全く違うものである。リアルコムは、US標準方式のメソドロジーで顧客企業がグローバル化対応可能なチーム を作り上げるのを支援する。コミュニケーションの言語は、英語(きっぱり)。これこそ私が長年良く知っている竹内さん(リアルコムのCTO)だ。でも、日本ドメどっぷりの会社にはちょっと強烈すぎないかな?リアルコムのグローバルソーシングモデルは、国際化JPのビジネスとぴったしの相性である。是非一緒に、多くの日本の内向き企業をグローバルプレーヤーにチェンジする仕事をやってみたいものである。

アーキテクトのセンス

8/21(金)に産業技術大学院大学の Infotalk に参加してきた。友人である小山教授が主催していることもあり、最初の数回参加していたのだが、最近は欠席していたので久しぶりの参加である。

第9回の今回はかつて同じ部門で仕事をしていたマイクロソフトのアーキテクト萩原正義さんが講師の一人ということで、久しぶりに顔を合わせたいと思い足を運んだ。萩原さんについては書籍等でその活躍の様子は知っていたが彼の話を聞くのは初めてであったのだが、とてもいい。

脳細胞のしばらく眠っていた毛細血管に血液を浸み込ませてくれるような、ゆっくりと理路整然とそしてとても深い話をしてくれる。もちろん、深いといっても一般向けの話なのでその入り口を見せてくれる程度なのであるが、普段そういった話を聞く機会はまずない。ましてや、クラウドというそれこそ「雲をつかむような」話だとごまかされておしまいとなる講演・セミナー・技術解説が多い中で、その技術と本質について語れる数少ないアーキテクトの一人と言ってよいだろう。

デーブカトラーの名前や今は無きかつての技術志向の会社が生み出したクラスターアーキテクチャーのコンセプトが生きていると思われるクラウドの基盤技術のくだりは、昔々OSの設計から実装、さらに研究にいたるまでの情報が回りにあふれていた職場環境が懐かしく思い出された。

このところのソフトウェアの世界のアーキテクトというのは、ソフトウェアエンジニアの人口が増えていくにつれ、キャリアパスの上位職種として位置づけられるようになっている。したがって、ある特定分野で一定期間の経験を積むことによってその称号を名刺に刻む人も数多くいることと思う。その分、言葉としては軽くなってきた。私が萩原氏と同じ空気の中で仕事をしていた頃のアーキテクトはそれこそ雲の上の人だった。建築の世界でいうと、一級建築士と建築家の安藤忠雄氏とに歴然とした違いがあるような、そんな感じかもしれない。単なる経験を積むだけでは到達できない、センス、極みがそこにはある。

審美眼を持つアーキテクト萩原正義の息吹に触れた、心地よい金曜の夜であった。(ちょっと褒めすぎ?)