nmtysh.log

Tech系のネタや日々の独り言などを書いています。

プログラミング

session.use_trans_sid を使わずに CakePHP 2.3 でURLにセッションIDを付与する方法

Cookie が使えないブラウザではURLにセッションIDを付与してセッションを引き回します。 PHP だと session.use_trans_sid を1にすることで、 PHP が透過的にセッションIDの付与を行ってくれます。 ですが、付与のタイミングが問題で以前書いたようにブラウザ…

CakePHP と Content-Length と imodeブラウザ(未解決)

携帯電話(いわゆるFP:フィーチャーフォン)向けの、Webサイトを構築中な訳だが、Cookieが使えない下位端末への対応に悪戦苦闘中。 Cookieが使えない場合はセッション情報を引き継ぐ手段としてURLにセッションIDを付与するわけだが、このセッションIDの付与処…

beforeSave() でDBを切り替える

Master/Slave なレプリケーションをしている場合、更新系は MasterDB に変更します。 CakePHP だと $this->useDbConfig を書き換える必要があります。 今までだと Model.php の save($data, $validate, $fieldList) をオーバーライドする必要がありました。 …

モジュールで定義したAPI(DLL)呼び出す関数を使う時の落とし穴?

HSPで久々に嵌りました。 外部DLLの命令を使う関数群をモジュール化して使っていたのですが、 プログラムを修正した時に急に命令が実行できなくなりました。 エラーの内容は「error 2 : 文法が間違っています」ですが、エラー箇所はいじってないんですよね。…

Ubuntu 12.04 に Sun Java をインストールする

Ubuntu 12.04 に Sun(Oracle) の Java(JDK) をインストールします。 1. Java SE Downloads から Java SE Development Kit 6 Update 35 をダウンロードします。(例: jdk-6u35-linux-i586.bin をダウンロードしたものとします) 2. ダウンロードしたファイルを…

Ricty フォントをビルドする

プログラミングに最適な Ricty(リクティ) というフォントがあります。 以前は、配布元でフォントが配布されていましたが、現在はライセンスの関係で自分でビルドする必要があります。 しかし、シェルスクリプトが配布されているため簡単にビルドすることがで…

Ubuntu 11.04 に Eclipse 3.7 をインストールする

Ubuntu 11.04 に Eclipse 3.7 をインストールします。 1. eclipse 3.7(Indigo) をまずはダウンロードします。 ダウンロードページの右のDownload Links から Linux 32-bit を選び、ダウンロードします。 私は ~/Downloads/eclipse-java-indigo-SR2-linux-gtk…

iosched を読む 3 AndroidManifest.xml

AndroidManifest.xml <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.google.android.apps.iosched" android:versionCode="16" android:versionName="0.16" android:installLocation="auto"> <uses-sdk android:minSdkVersion="7" android:targetSdkVersion="11" /> Android API Leve…</uses-sdk></manifest>

iosched を読む 2 Eclipse にインポートする

ダウンロードした iosched のソースを Eclipse にインポートします。 1. Eclipse の[ファイル]->[新規]->[Androidプロジェクト]を選択します。 2. "外部のソースからプロジェクトを作成"を選択します。 3. Location にioschedのフォルダにあるandroidフォル…

iosched を読む 1 ソースを入手する

iosched のソースを読みたいと思います。まずは、ソースを入手するところから始めます。 iosched の Source Checkout ページを見ると、 hg clone https://code.google.com/p/iosched/ とありますので、その通りに実行します。 hg コマンドは Mercurial のコ…

rails generate に失敗する

Ubuntu 11.04 で rails generate したときにこんなエラーが表示されました。 ${HOME}/.rvm/gems/ruby-1.9.3-p194/gems/execjs-1.3.2/lib/execjs/runtimes.rb:50:in `autodetect': Could not find a JavaScript runtime. See https://github.com/sstephenson/…

Timer で関数が実行されない。

Flash Builder 4.6 にて、こう書くと何故か実行されない。 var timer:Timer = new Timer(400, 1); timer.addEventListener(TimerEvent.TIMER, hogehoge); timer.start(); protected function hogehoge():void { // hogehoge } なので、無名関数を一段かませ…

Dropbox の Cache 削除用シェルスクリプト(改2)

Dropbox の Cache 削除用シェルスクリプト(改) のスクリプトだと上手くいかない様なので修正。 旧:(8~12行目) # キャッシュフォルダのパスを取得 dropbox_folder=$(sqlite3 "${HOME}/.dropbox/config.db" "select value from config where key = 'dropbox_p…

Flex 4.5: TextInput と IME ON での入力(バグっぽい)

Adobe Flash Builder(以下、Flash Builder) 4.5 でコンパイルした swf な TextInput に IME を ON の状態にして入力すると、最後に確定した文字列が TextInput に入力されない。 表示上は入力されているように見えるのだが、 textInput.text には入力されて…

pg_query_params() で boolean を扱う

pg_query_params() で boolean な変数を渡すとエラーになるのでその対策。 pg_query_params($query, array(($flag ? 'TRUE' : 'FALSE'))); boolean の代わりに 'TRUE'("TRUE") / 'FALSE'("FALSE") を渡してあげる。 これバグな気がするんだが… おまけ: Postg…

Ubuntu 11.04 に Sun Java をインストールする

手動で Ubuntu 11.04 に Sun(Oracle) の Java(JDK) をインストールします。 1. Java SE Downloads から Java SE Development Kit 6 Update 30 をダウンロードします。(例: jdk-6u30-linux-i586.bin をダウンロードしたものとします) 2. ダウンロードしたファ…

Flash Builder メモ

名前の変更は鬼門。 ファイル名の変更のつもりが、変数も一緒に変更されたり、逆もしかり。 リファクタリング機能が微妙。

Androidメモ: リソース名

string.xml やら layout やら当たり前だけど、 Java の予約語は使えない。と言うことを忘れてた。 何でエラーが出るのか、しばらく悩んだのだけれど、import.xml とか <string name="import">~~</string> これ思いっきり予約語だった。そりゃ、エラーが出るよね。 エラーのメッセージから…

Androidメモ: 通話中かどうかを取得する

TelephonyManager.getCallState() を使用して通話中かどうかを判定する。 .getCallState() にはパーミッションは不要。 TelephonyManager tManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); switch (tManager.getCallSta…

PHPメモ: シングルクオートとダブルクオート

シングルクオート(')で文字列を指定すると円記号(\)などがエスケープされてしまうようだ。 ダブルクオート(")だとエスケープされない。 Linux での扱いと同じ感じ。 echo 'aaa\nbbb' <- 改行されない echo "aaa\nbbb" <- 改行される

Android: Ringtone のメモ書き

Ringtone の取得 Ringtone ringtone = RingtoneManager.getRingtone(context, Uri.parse(uri)); 通知音量の設定で再生する ringtone.setStreamType(AudioManager.STREAM_NOTIFICATION); ringtone.play();

PHP: 文字エンコーディングは UTF-8(BOMなし) で保存すること!

.php なファイルを UTF-8(BOM) で保存すると IE なんかで BOM が認識されない事がありデータ内にゴミとして残る場合があるので、 UTF-8(BOMなし) で保存すること。 require や include すると UTF-8(BOM) の場合は、それぞれのファイル先頭に付いている BOM …

Android: マナーモードの判定をする

マナーモードにすると着信音は鳴りませんが、アプリなどの音(メディア)は再生されてしまいます。 自作アプリ内で音を鳴らすときにマナーモードかどうかをチェックしておくと、親切なアプリになるでしょう。 AudioManager audioManager = (AudioManager)Conte…

Java: RecursiveTask

Java 7 の RecursiveTask でフィボナッチ数列なサンプル。 import java.util.concurrent.RecursiveTask; import java.util.concurrent.ForkJoinTask; import java.util.concurrent.ForkJoinPool; import java.util.concurrent.ExecutionException; public cl…

Ubuntu 10.10 に Java 7 をインストールする

先日 Java 7 が公開されました。 ので、早速 Ubuntu 10.10 にインストールしてみました。 1. まずダウンロードサイトから 「Linux x86 - Compressed Binary 92.17 MB jdk-7-linux-i586.tar.gz」をダウンロードします。 ~/Downloads/jdk-7-linux-i586.tar.gz …

Java: JSP の Taglibs のダウンロード先

JSP のタグライブラリを使うことにしたのですが、 jar ファイルをどこからダウンロードしたらよいのかさんざん迷ったので、備忘録なメモ。 Apache Taglibs - Apache Taglibs がプロジェクトのページですが、404エラーばっかで上手くたどり着けません。 結果…

Ubuntu 10.10 に Eclipse 3.6.2 をインストールする

Ubuntu 10.10 のリポジトリに登録されている Eclipse は 3.5(Galileo) です。 本家で Eclipse 3.7 もリリースされたことですし、 3.6.2 にバージョンアップすることにしました。 1. eclipse 3.6.2(Helios) をまずはダウンロードします。 ダウンロードページ…

CSS3 でフォルダツリーみたいに見せる

CSS3 対応ブラウザ限定 <ul> の <li> 要素の前に"├"や"└"を付けてフォルダツリーみたいにしてみる。 ul.dir li:before { content: "├"; margin: 0px 4px 0px 0px; } ul.dir li:last-child:before { content: "└"; margin: 0px 4px 0px 0px; } こんな感じ A B a b c C</li></ul>…

JIT を無効化する

Android 2.2 以降は JIT(Just In Time)コンパイラが有効になっています。 基本的には、有効にしておくと処理の高速化が期待できます。 しかし、意図的にJITを無効化したい場合があります。 そういった場合は AndroidManifest.xml の Application要素に andro…

Java: 3桁区切りにする

Java でカンマ区切りな文字列にする。 NumberFormat format = NumberFormat.getCurrencyInstance(); Sysout.println(format.format(数値)); で、 "\12,345" NumberFormat format = NumberFormat.getNumberInstance(); Sysout.println(format.format(数値)); …