[技術cakephpで国際化するとsafariだけ日本語の判別をミスる

cakephpで国際化するとsafariだけ日本語の判別をミスるので、ちょっと調べたメモ。

CakePHP1.2での国際化は、GNUプロジェクトのgettextを使用しています。

ソースはl10n.phpですが、HTTP_ACCEPT_LANGUAGEで言語の判別しています。

IE, FF3等は、日本語環境の場合、HTTP_ACCEPT_LANGUAGEには[ja]が入ってくるのですが、何故かsafariだけ[ja-jp]になります。これが原因で、safariのみ国際化されず英語表記になってしまっていました。

l10n.phpに手を加えると、cakephp本体のバージョンアップ時に大変なので、appフォルダにコピーしているapp_controller.phpに手を加える事にしました。
HTTP_ACCEPT_LANGUAGEに関する詳しい説明がなかなか見つからないのですが(仕様をしっている方がいたら教えて欲しいです)、どうやら「言語コード-国コード」になっているようですので、app_controller.phpのコンストラクタで、HTTP_ACCEPT_LANGUAGEの言語コードのみを使用するようにしてとりあえず解決。


ただこの問題の根源なんだろう?
少なくともCakePHPの実装は怪しいが、
HTTP_ACCEPT_LANGUAGEの仕様不明確?
Appleは?


CakePHPガイドブック

CakePHPガイドブック

著者:安藤 祐介 新原 雅司 堂園 俊郎
出版社:毎日コミュニケーションズ
出版日:2007-10-25
Amazon.co.jp で詳細を見る
a4t.jpで見る

Popularity: 14% [?]

[技術curlのSSLを有効にする(MacPorts)

Amazon S3へのアップロード時に、

Protocol https not supported or disabled in libcurl

というエラーが発生。

これは、MacPortsでインストールしたcurlがwithout-sslになっていた事が原因でした。

$ sudo port uninstall curl
$ sudo port edit curl
にて編集モードにしてから
configure.argsの
–without-ssl

–with-ssl
に変更します。

$ sudo port install curl
これで、完了となるところですが、
php5やら、gimpやら、gitやらが依存してたので、この機会にそれらもアップデートしました。

Apacheの再起動で完了。

Popularity: 16% [?]

[技術Emacsで文字コードを指定してファイルを読み込み直す

Emacsは,文字コードの自動判別をしてくれますが、稀に自動判別出来ない時に、これをいつも忘れてしまうので、メモ。

文字コードを指定
M-x universal-coding-system-argument (C-x RET c)

読み直し
M-x find-alternate-file (C-x C-v)




Emacs 辞典 (DESKTOP REFERENCE)

Emacs 辞典 (DESKTOP REFERENCE)

著者:佐藤 竜一
出版社:翔泳社
出版日:2006-05-11
Amazon.co.jp で詳細を見る
a4t.jpで見る

Popularity: 4% [?]

[mac, 技術MacPortsでgitをインストール

リーナス・トーバルズによって開発された分散レポジトリバージョン管理システムGitをMacにインストールしました。

MacPortsでのインストールなので、取り立てて説明する程、つまる所も無かったです。

まずは、MacPortsから検索。

$ port search git
cogito devel/cogito 0.18.2 Git core and cogito tools to provide a fully-distributed SCM
git-core devel/git-core 1.5.5.3 The stupid content tracker.
stgit devel/stgit 0.14.1 Push/pop utility on top of GIT
cgit www/cgit 0.7.1 A fast web interface for the git source code management system


git-coreをインストール。
その前に、オプション確認。

$ port variants git-core
git-core has the variants:
universal
doc: Install HTML and plaintext documentation
gitweb: Install gitweb.cgi
svn: Bi-directional subversion repository support
bash_completion: Bash completion support


インストール実行。
$ sudo port install git-core +gitweb +svn
・・・・・
---> Cleaning git-core


よりユーザフレンドリな操作性を提供するらしい、cogitoというツールも併せてインストール。こちらは、オプションは特になし。
$ sudo port install cogito
・・・・
---> Cleaning cogito


確認。
$ git --version
git version 1.5.5.3



[TODO]
リモートレポジトリを作成
github.comの利用

Popularity: 12% [?]

[技術AppleとGoogleのオープン性について

AppleがiPhone3Gの発表を行った朝(日本時間)、興奮で頭の中iPhone一色のままGoogle Developer Day2008に行って来たわけですが、やはりGoogleの魅力・パワーにも圧倒されつつも、自分自身のやりたい事が脳内で渦巻き、暫しカオスってました。

それを整理する意味でもAppleとGoogleのオープン性に関して考察しようかなと思ってます。

オープン性の前に、まず各社のリリースについてですが、
Googleは、Google Developer Dayの各セッションの合間に流しているスライドを見ているだけでも、日々重要なリリースを繰り返している事が分かります。
(あのスライドは、相当な恐怖感を感じざるを得ませんでしたが、その件に関してここでは省略。)

それに対し、Appleは、神プレゼンと共に大きな花火を打ち上げる様な戦略を取っています。

もちろんこれは基本的にソフト中心のGoogleと、ソフト+ハードのAppleの違いも関係していますし、Steve Jobsの存在も大きく影響しているでしょう。


GoogleとAppleは基本的には補完しあえる関係だと思っていますが、一番被る所は、やはりiPhoneとAndroidですね。
まずAndroidですが、Open Handset Allianceが中心となり完全にOpenSourceで進められています。
Googleだからこそ納得は出来る事ですが、こんな事は通常あり得ないです。
Androidには、ミドルウェア・インタフェース・アプリケーションが含まれ、デベロッパーはこれらをいじる事も可能です。(Apacheライセンスのもとで)
このGoogleのAndroidに関するオープン性は、完全にオープンと言っても過言ではありません。
また、Androidからは離れますが、OpenSocialに関してもOpenSocial Foundationがあり、Androidと同様のオープン性と言えます。

それに対しiPhoneですが、こちらはiPhone上で動くアプリを作る事は可能になってますし、そのSDK・開発環境も提供されています。また、App Store経由でダウンロード・購入する事が出来ます。
(出来ますというよりは、App Storeに制限されてます。)
iPhoneの方のオープンは、どちらかというと一部開放というイメージです。

これらを対比させると、明らかにAndroidの方がオープンであり、iPhoneは極めてクローズドだと言えます。

但し、Androidの方は(現状では)情報が不足している(Googleはコミュニティでそれを補完しようとしている)に対し、iPhoneは限られた部分しか公開しない分、情報量が多く、開発環境も充実しており、これもまた一長一短があると言えます。

しかし結局のところそれらは、ビジネスモデルの違いに過ぎないのでしょう。

Googleは、明確にあらゆる情報のハブになろうとしている。
つまり、オープンにする事により、情報を自分に集める事が重要

Appleは、Computerが消えたことからも、ライフスタイルの提供に重きを置いている。
つまり、完全にコントロール可能な状態で一部オープンにする事により、最高のおもてなしを提供する事が重要

そして、両社とも重要な部分(Googleの検索アルゴリズム・Google AdWordsなど/AppleのiPhoneOS及び、ソフトとハードの技術で統合化されたデバイスの製造プロセス)に関してはブラックボックスのままであるし、今後もブラックボックスのままだろう。

Popularity: 4% [?]

Blog Widget by LinkWithin