2012-01-01から1年間の記事一覧

Play2.0で日付入力部品を作る

"Play 2.0"もとい"Playframewok 2.0"もとい"Play framework 2.0"で*1、既存のコンポーネントを組み合わせて、新しいコンポーネントを作りたい。 例えば、日付を入力するのに、セレクトボックスで「年」「月」「日」を選んで入力するフォームを考える。 こう…

Play2.0でセレクトボックスにEnumを貼れるようにする

スタプラわー!(挨拶) 第8回全国戦優勝者です(本当) 携帯ゲームって初めてやったけど運営が伏せたルールをプレイヤーが当てる遊び的な感じですね。 折角攻略法見つけても「あれ不具合だから修正しました」て言われる恐ろしい展開もある。 閑話休題、"Play 2.…

Play2.0でURLに一律でパラメータを付ける

"Play 2.0"もとい"Playframewok 2.0"もとい"Play framework 2.0"です。検索しにくいんだよksg。 使ったバージョンは2.0.3です。 あまり良いやり方じゃない気がするので、良いやり方があれば教えて下さい。 目的 Play 2.0でHTMLテンプレート上でアクションを…

Re: nil に対するメッセージ送信が例外にならない

お題: ・nil に対するメッセージ送信が例外にならないこの仕様って、Objective-C以外でほとんど見かけたことがないのだけど、メリットに比べてデメリットが大き過ぎると思う。オブジェクトのメソッドチェインでこの仕様がたまに便利なことはあるけど、ほとん…

Javaで状態モナド

そろそろモナド変換子のことを覚えたいなーと思ったものの、見つけたサンプルが状態モナドを例にとっていたので、学習の準備としてひとまず状態モナドの実装を写経してみることにした。Javaで。参考にするページ: 状態モナド遊び - あどけない話 Stateモナド…

「JavaScriptでの非同期関数合成」を継続モナドで

お題: 複数個の関数があって、関数を呼び出した結果を使って関数を呼び出して…っていうのを1個の関数にします。 JavaScriptでの非同期関数合成 - monjudoh’s diary 関数の形を見てみます。 // 1を足す function add1(callback,arg){ callback(arg+1); } コー…

Z会三年生中学受験コース5月のてんさく問題を Scala で解いてみた

Scalaの練習です。お題: 4けたの数について、それぞれの位の数字を大きいじゅんにならべた数から小さいじゅんにならべた数をひくという計算を行います。 1974 について、この計算を 100 回行った答えを書きなさい。 Z会三年生中学受験コース5月のてんさく問…

ListとStreamの両方でheadとtailにmatchさせる

Listを扱うプログラムを書く時に、match式で::を使ってheadとtailを取り出すことが良くあると思う。 例えば、「二つのList a, bがあり、bがaに前方一致するならaからbを取り除いた残りを戻す」というような処理をmatchを使って書くと*1、こんな風になるかと…

Apache2.2でリモートアドレスベースでの制限 "または" SSLクライアント証明書による認証を行う

現行でリモートアドレスベースでのアクセス制限を行っているサーバがあるんだけど、新たにSSLクライアント証明書をインストールした端末にもアクセスを許可したいという話があった。ちょっとトリッキーだけどなんかうまくいったので記録。むしろ情報求む。 …

文字列テンプレートを型安全にする

パーサとテンプレートエンジンって丁度動きが逆だよなあと前から思ってたんだけど、てことはパーサコンビネータっぽい感じで文字列テンプレート書けないかと思った。 一応見た感じそれっぽく出来たけど、なんか格好悪い実装になってしまった。真性のScalaユ…

Blocksをメソッドとして追加する

imp_implementationWithBlock()という、BlockからIMPを作り出す関数がiOS 4.3 or Lionから使えるようになったみたいなので、これを使って実行時にインスタンスメソッドを追加する実験例えば、モーダルウィンドウをクローズした時に自動的にstopModalするコー…

『一般意思2.0』読んだ

話題になってたので読んだよ。この本(や「一般意思2.0」という言葉)についてはいろいろな人が言及していて、とりもなおさずそれはこの本が良い本だっていう証拠だと思う。それを聴いたり読んだりした人が、自分も何かを語らずには居られなくなるような言葉に…

使用しているファイルの一覧を取得する

iOS

プロセスが使用しているファイルの一覧を取得する。 「c - on iOS/iPhone: "Too many open files": need to list open files (like lsof) - Stack Overflow」によると、fcntlでfdを舐めてパスを取れば良いっぽい。 #include <sys/param.h> #include <sys/fcntl.h> void show_openfiles(</sys/fcntl.h></sys/param.h>…

ファイルの一覧を取得する

iOS

NSFileManagerの-enumeratorAtPath:を呼ぶと、特定ディレクトリの下を深さ優先でトラバースするNSDirectoryEnumeratorオブジェクトを返してくれるので、それで全ファイルエントリを取得出来るようだ。但し、iTunesで買ったアプリなどは見えない*1。他にも見…

プロセスの引数を取得する

iOS

前回の続き。KERN_PROCARGS2で引数の情報も取得出来た。但し自分(mobile)がオーナーのプロセスのみ。rootで動ければ全部取れるかも。KERN_PROCARGSの方も試してみたけどiOS上ではうまく動かない(エミュレータなら環境変数まで取れたけど。)KERN_PROCARGS2は…

プロセスの一覧を取得する

iOS

前に書いたOS X用のプログラムがiOSでも普通に動いたわ。 さすがUNIXマシン。 #include <sys/sysctl.h> #include <pwd.h> #define MIB_NAMELEN 4 void show_processes() { int mibname[MIB_NAMELEN] = { CTL_KERN, KERN_PROC, KERN_PROC_ALL, 0}; // all processes struct kinfo_p</pwd.h></sys/sysctl.h>…

アプリケーションが使用しているデフォルトキーを調べる

一般的なCocoaアプリケーションでは、各アプリケーションのメニューの「環境設定」で設定した値は、ユーザーデフォルトデータベースに格納され、次回起動時にはその値を読み込んで使用することで、アプリケーションの挙動をユーザ毎に変更できるようにしてい…

iTunes上の曲のアルバムアーティストを設定する

今までCDのリッピングの際に曲ごとの「アルバムアーティスト」という項目をあんまりちゃんと設定しておらず、「ジャンル」>「アーティスト」>「アルバム」>「曲」みたいなフォルダ階層で管理していたんだけど、この前買ったiPod Touchにはフォルダ階層と…

mp3ファイルからID3タグを読み込むサンプル

今度はAVFoundation Frameworkを使ってみた。 試したOSバージョンは10.7.2(Lion) #import <Foundation/Foundation.h> #import <AVFoundation/AVFoundation.h> #import "AVMetadataItemAdditions.h" int main (int argc, const char * argv[]) { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; NSURL </avfoundation/avfoundation.h></foundation/foundation.h>…

mp3ファイルからID3タグを読み込むサンプル

多分合ってる。試したOSバージョンは10.7.2(Lion) // gcc -Wall -framework AudioToolbox -framework CoreServices -o main main.c #import <AudioToolbox/AudioToolbox.h> int main (int argc, const char * argv[]) { const char* inputFile = "sample.mp3"; AudioFileID audioFile; CFU</audiotoolbox/audiotoolbox.h>…