開発

jQuery 1.7.1 ajax で Component returned failure code: 0x805e0006 エラー

jQuery で Cross-Origin な ajax リクエスト(CORS)をしようとしたところ、 エラーハンドラ(error / function)の errorThrown に Component returned failure code: 0x805e0006 が上がってくる。 結論から言うと Firefox に NoScript の類を入れていたらた…

JavaとXMLと名前空間

XML を DOM で扱う場合、 DocumentBuilderFactory#setNamespaceAware(true) で名前空間が有効になる DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); factory.setNamespaceAware(true); DocumentBuilder builder = factory.newDocu…

HTML5 File API の挙動メモ

ちょっとさわってみた HTML5 File API の挙動メモ chrome だと file:// スキームで開くと FileReader が動作しない。 error.code == 24が返るらしい。 HTML5で使えるFileReaderでファイルを読み込もうと思ったらChromeで失敗したけどhttpでアクセスしてなか…

Jetty8で作るWebSocketチャット(実行編)

最後は実行編です。まず、サーバを立ち上げます(classpathは先に通しておいてください)。 > java WebSocketTest 2011-10-18 18:29:04.406:INFO:oejs.Server:jetty-8.0.3.v20111011 2011-10-18 18:29:04.517:INFO:oejs.AbstractConnector:Started SelectCha…

Jetty8で作るWebSocketチャット(ブラウザ側編)

前エントリに続いてブラウザ側の実装について。こちらは単純ですね。 WebSocket の有無を確認して、使えるなら WebSocket の URL を指定してコネクションを開く。 後は、メッセージが届いたら div ブロックを追加してメッセージ表示。送信ボタンが押されたら…

Jetty8で作るWebSocketチャット(サーバ側編)

Jettyをサーバに使ったWebSocketベースのチャットサンプルのようなものを作ってみた。ターゲットは Jetty 8 と Firefox7, Chrome14。 WebSocket のバージョンは draft-ietf-hybi-thewebsocketprotocol-10 になるはず。 (WebSocket(Wikipedia) の実装状況参…

Firefox6,7でWebSocketを使うには

Firefox6,7でのWebSocketは仕様がまだ変わる可能性があるのでWebSocketではなく、MozWebSocketと言う名前で実装されています。なので、WebSocketを使う場合は、 var ws = new WebSocket(hogehoge);を var ws = new MozWebSocket(hogehoge);と読み替えればよ…

Yahoo Map API でオリジナルLayerを作るには

Yahoo Map API で Google Maps API のカスタムオーバーレイと同じようなことをやる方法。おおまかな手順は次の通り。 Layer を派生させて drawLayer を実装する 派生させた Layer を Y.Map に addLayer する 実際に Canvas 製の Layer を Yahoo Map に載っけ…

MessagePack-RPC Java binding の Server の止め方

MessagePack-RPC Java版の Server が終了してくれないトラブルで20分ほどはまったのでメモ。Server をデフォルトコンストラクタで起こして使ってると、close() を読んで止めたつもりでもスレッドが残ってプロセスが止まってくれません。残ってるスレッドの正…

msysgit の設定ファイルについて調べてみた

msysgit の設定ファイルがどこにあって、優先度どうなってるの?と疑問になったので調べた。まず設定ファイルの在処。 は msysgit のインストールフォルダ、 はユーザフォルダ(例:C:\User\naga_sawa)、 は clone 先フォルダ。 \etc\gitconfig \.gitconfig \…

正規表現を使ったコマンドラインのパース

試験用とかデモ用とかでコマンドラインインタプリタもどきを作る場合、コマンドラインのパースがちと面倒です。 >cmd opt1 opt2 opt3 opt4 >cmd >opt1 >opt2 >opt3 >opt4 このように単純な場合はスペースで分割、でいいのですが、 >cmd opt1 opt2 "opt 3" o"…

ローカル svn リポジトリを git svn clone する

ローカルドライブ上の file:/// でアクセスしている svn リポジトリを git svn で吸い上げようとしてエラーにぶつかったこと、ありませんか? 「FS format が想定外」とか言われ、えー('A`) みたいな。 C:\work>git svn clone -s file:///c:/repos/proj Init…

git svn での switch のやりかた

最初は /trunk だった svn リポジトリが、プロジェクトが進んでいくと、「やっぱりモジュール分割した方がいいよね」ってことで //trunk みたいにリポジトリの階層構造が変わることってありますよね。そんなときに、普通に svn でやっていた場合は > svn swi…

Eclipse のエディタの色設定などを別ワークスペースに共有するには

Eclipse はワークスペース毎にエディタの色設定やフォント設定を持っているのでワークスペースごとに独立した設定ができます。 が、逆に言うとワークスペース毎に設定をしなければいけないということで、プロジェクト毎に複数のワークスペースを使っているよ…

Servlet の doXXX が呼ばれるタイミング on Jetty6

Jetty6 において、Servlet の doXXXX 系ハンドラメソッドがHTTPリクエストのどのタイミングで呼ばれるのかをちょっと調べてみた。結果:HTTP リクエストヘッダが全て届いた時点でハンドラメソッドが呼びだされる。リクエストのボディは未着なことがある。要…

git でメールアドレスやら名前やらを間違えて commit してしまったときの修正方法

ネット上で複数のアカウントやら人格やらを使い分けてる git 使いの方必見。 git でメールアドレスやら名前やらを間違えて commit してしまったときの修正のやり方。 きげんよく開発&コミットをしてきてふとコミットログを確認すると、 D:\ToaruGitNoReposi…

Java で Thrift を使ってみて

Java で Thrift を試してみて得た know-how(あくまで独自研究なので注意) マルチスレッドと Thrift IDL から起こした Thrift.Client クラスはインスタンスのスレッド間で共有できない。 より正確に言うと、Thrift.Client 1つが1コネクションに対応してい…

msysgit でファイルを変更していないはずなのに merge できない場合の対処

msysgit を使っていて、管理下のファイルを何も変更していないはずなのに merge や pull するときに、「変更されている」とエラーになる場合。そして reset --hard をしてもそのエラーが消せない場合。 この場合、ファイル本体に変更はなくても msys から見…

SQLiteで外部キー制約を使えるようにする

いまさらですが、SQLiteの3.6.19から外部キーが使えるようになったそうです。 ただ、互換性の都合でデフォルトでは外部キー制約は無効になっているので、DBにつなぐ度に PRAGMA foreign_keys = ON; を実行してやる必要があります。 (将来的にデフォルトで有…

エラー: a is null → クロスドメイン参照をやらかしてないかを疑う。

こんな感じで HTML + google hosted jQuery で開発してたときにであったミス。 <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> Firefox のエラーコンソールには エラー: a is null ソースファイル…

git svn clone でfile::///なリポジトリからのcloneに失敗したらsvn://を試してみよう

git svn で svn リポジトリを clone しようとしたら↓みたいなエラーになった。日本語資料が見あたらなかったので、やった回避策のメモ。 C:\GitRepos>git svn clone --prefix svn/ file:///C:/SVNRepos/hoge hoge.git Initialized empty Git repository in C…

C# のジェネリクスの型パラメータを参照型に制約する

C# のジェネリクスの型パラメータを参照型に制約する方法 答え→ where T : class 以下言い訳。 キャッシュなクラスを書いててハマった。むしろMSDNの日本語訳に釣られたヽ(`д´)ノC# のジェネリクスの型パラメータの制約一覧は↓のページに公式としてまとま…

HTTP 100-continue

HTTP 100-continue とは POST 時にサーバがデータを受け入れ可能か確認するための一時応答。 クライアント→サーバに送る HTTP リクエストヘッダ に Except: 100-continue が含まれていて、なおかつサーバが対応していれば使用可能。 その場合、クライアント…

Thrift で null を返すには?

Thrift では C++との相互運用の都合で RPC の応答に null を返すことができない模様。(呼ばれた側で return null; ができない)*1厳密には return null; できるわけですが、その場合クライアント側で TApplicationException: getFoo failed: unknown result a…

Java で Thrift ってみる on Windows その2

その1で環境が整ったので実際に RPC コードを作ってみる。 IDL ファイルの作成 RPC のメソッド定義にあたる IDL ファイルを作る。 お試しと言うことで単純な物を。 見ての通り String hello(String arg); 相当 Hello.thrift service Hello { string hello(1…

Java で Thrift ってみる on Windows その1

Java で使える高速な RPC ミドルを探して Thrift を試してみたのでメモ いるもの Apache Thrift これがなけりゃはじまらない Thriftコンパイラのバイナリパッケージ Thrift IDL から言語毎のコード生成するのに必要。Linuxだと簡単にビルドできるけど、Windo…

C#でTwitterAPI 叩こうとしてOAuthのURLエンコードではまった

C#(≒ .NET Framework)でTwitterAPI叩こうとしてOAuthが401エラー返してくれて困ってたのでメモっておく。 こちらにあるTwitterのOAuthを叩くコードを使おうとしたところまではよしとして、URLエンコードを自前でやっていたので何も考えずに Framework の Sys…

Git リポジトリを WebDAV で扱う

Git に挑戦して悪戦苦闘の末に WebDAV 経由で使えるようになったのでメモっとく。メインリポジトリを置くサーバは CentOS 5.4 に git-1.5.2.1-1.el5.rf クライアントは Win7 + msysGit git version 1.6.5.1.1367.gcd48 Apache の WebDAV 設定 /var/www/gitre…

Visual Studio 2008 ファイル保存が異様に遅い問題

いまさらながら Visual Studio 2008 を使ってみたら、CTRL+S でのファイル保存が異様に重い。 たかだか 10 行かそこらのソースファイルなのに CTRL+S を押してから保存し終わるまで体感 10 秒ぐらい待たされる。 ちょっと書いては CTRL+S が癖になっているの…

Windows7 のタスクバーをなんとかして裏側に回したい

Windows7 になって、タスクバーがいろいろと強化されたのはいいけれど、常に最前面に表示されるようになってしまって画面が狭くなってしまった。XPでいうところの「常に手前に表示」を解除できない状態。 「タスクバーを自動的に隠す」を使うとカーソルが画…