アーカイブ
-
less/lvでソースコードに色をつける on OSX
lessでソースコードに色をつける 筆者は試していないが、GNU Source-highlightはMacでも利用できるんじゃないかと思うので、Mac方面の人もぜひ試して頂きたいと思う。 これは便利そうだってことで、osxで試す。 brewでinstall 自分はlessじゃなくてlvを常用しているけど、とりあえずlessでお試し 問題なく色づけされてる 俺はlv常用なのでこんな感じに起動して確認。 んー、LESSOPEN相当が見当たらない、、 幸いにして俺もvimでwombat使ってるのでcolor schemeも使わせて貰おう。(人-)
-
Services_OAuthUploader改めServices_Twitter_Uploader
以前書いたServices_OAuthUploaderっていうパッケージ。 Pearにproposalして色々やりとりした結果、名前も改めてやっと出せそうな感じ。 途中でいわゆるkiddyに絡まれてやる気無くしたりもしたけど、tillってメンテナがsupportしてくれたおかげでやっとリリースにこぎつけられそう。
-
google data api で google calendar でカレンダーの新規作成が出来ない
ircでkaepapaがgoogle calendarの新規作成がどうの言ってたので、試してみたら色々はまったのでメモ。 とりあえずprotocol仕様書を眺めながら、自分でphpでcurlを使って実装してみたけど、カレンダーの一覧の取得は出来るけど、新規作成は出来ない(zfの実装も一緒) ちなみにgoogle data apiはv1、v2が有り、zfの実装はv1。 動かした観想的にv1は色々動かない部分が出てきてるっぽい(新規作成周りとか)。 ドキュメント見ながらやってても限界を感じたので、googleのjava clientを落としてきて、リファレンスをコピペして作って実行=>問題なく毎回作れる。 実行時には google collectionsが必要になるけど、jar無いみたいなので作ったのを置いておきます。 google-collect-snapshot_20110101.jar 仕方ないので、ncを nc -l -p 8080 とかして、リクエスト先を変えてrequestをdumpしてみる。 dumpした結果を見ると、xmlのフォーマットがprotocol仕様書に書いているのと若干違う(仕様書は2005の所がリクエストは2007とか。 取りあえずリクエスト内容とか、cache周りのヘッダとかも全部揃えて送ってみると、返事待つ状態になって無応答で、curlが * Empty reply from server と吐いてプログラムが終了する。(パラメータが不正な場合はエラー画面が帰ってきてました、Content-lengthが無いとか、認証が不正とかはちゃんとエラー画面が返る) この状態でCookie送るようにしたりとか、色々試しても動作しなかったので、picasaのアルバム作成を作って試してみると問題なく作成完了。 この辺からhttp clientの実装を疑いだして、HTTP_Request2で実装しなおしてみると、無応答では無くカレンダー一覧が帰ってきて終了するようになる(Endpointが一緒なので、リクエストが不正か何かで処理が一覧取得になっちゃうような気がする) ここで試しに commons-httpclient3を使ってためしに実装してみると、新規作成完了・・・ Location周りが上手く動作してくれないので、自分でレスポンス解析してリクエスト投げてます。 って事で最終的にphpで動いてませんが、まとめ。 クライアントの実装の問題っぽい(サーバが一度Location返してくるからそのfollowとか、partical response,request辺りとか?) v2を使った方が良いです ドキュメントは信用しない方が良さそう phpで動かせてません(picasaは動いてるんだけど、同じ実装でcalendarは動かない) コード一覧 php curlを使ったgoogle calendar 新規作成の実装 php http_request2を使ったgoogle calendar 新規作成の実装 php curlを使ったpicasaのアルバム作成の実装 commons-httpclient3 を使ったgoogle calendar新規作成の実装
-
jquery使ってcallback関数を利用時のthisへのアクセス
文章にするのは難しかったので、とりあえずソース do1で上手くいかなくて、$.ajaxの場合はcontextで指定、$.getの場合はjQuery.proxyで指定出来るらしいのでdo2で実現。 ってかこんな面倒なの?って思うんだけど、どーなんだろ、javascriptに詳しい人ヘルプ。 他に思いつくのは、無名関数でラップして引数として渡すとか、ダサイ。 @mumoshu からの助言で do3 を追加、何か適当な予約変数に突っ込んでくれりゃいいのに・・・ これ、jqueryに限ったわけじゃなく、クロージャ使ったときのthisの参照先の問題か。 まぁタイトルはそのままで。
-
javaのjsonライブラリのデコーダのベンチマーク
メジャーそうなライブラリのベンチマークを取ってみました。 jsonorg(twitter4j.internal 2.1.9 snapshot) jsonic gson jackson maven経由で取れる最新版で試してます(jsonicは無いので、1.2.5を突っ込んで動かしてます) 対象となるデータはTwitterのpublictimelineから拾ってきたデータ(20件の配列で中身連想配列) コードはgithubに置きました。 jsonorgはPOJOに変換とか便利な機能は付いてなかったです(json-libは付いてるみたいだけど)。 JSONエンコーダのインスタンスを作るものに関しては、一度生成した物を使いまわしています。 自分のマシンだと結構早い方だと思うので、sakuraのvpsで動かしました。 計測結果サマリ ライブラリ 1回目 1000のアベレージ jsonic 440 2.1835 gson 184 4.2541 jackson 313 0.7926 jsonorg 37 1.7359 @shin1ogawa経由で見つけた計測同様、jacksonがぶっちぎり。 jsonorgの1回目がやたら早いけど、内部実装がどうなってるかまでは追いかけて無いからgetHogeしたときに具体的な事してるとかだったらどうしよ・・・w 計測結果ベタ
-
mod_proxyでHTTP_HOSTの値がローカルアドレス(バランシング先に設定したURL)で困る件
よく巷で見かける設定だとこんな感じで これだと $_SERVER['HTTP_HOST'] が 192.168.0.10 になっちゃうので、場合によっては困っちゃう。 自作の場合は気をつければいいんだけど、他人のを動かすと結構はまる(xoops, wordpress)どーすっかなーと思ったらコレを追加するだけでよかった。
-
各種PHPのWebFramework上でhello worldベンチ(apcもあるよ)。
表題のまんま。 対象フレームワーク CodeIgniter 1.7.3 ZendFramework 1.11.1 CakePHP 1.3.6 KohanaPHP 3.0.8 って取り終えてからsymfony抜けてるのに気付いた・・・まぁいいや。 ソース とりあえずgithubにおいてみた https://github.com/withgod/php_framework_benchmark cakephpはやたらファイルが多いのでいったん保留。 git add したときに空のフォルダがすっ飛んでるのでそのままじゃ動かないかも。 実行環境 vmware上のdebian lenny(2.6.26-2-amd64) 多すぎても実際に動かすサーバとの差異が出そうなので、コア2個、メモリ2G(ホストはCorei7,Mem8G) PHP 5.2.16-0.dotdeb.0 Apache 2.2.9-10+lenny8 計測側は 別マシン(GigaBaseLan経由)のdebian sidからabでポチっと。 計測に使ったコードも一応晒すかと思ったんだけど、CakePHPがappsだけうまく切り離すのが面倒で良く解らなかったので止めた。 テンプレートは全部で使ってません。 #zfはzf createして出来たコードに iniでresources.frontController.noViewRenderer = 1 して Controllerで echo ‘helloworld’みたいな感じ。 計測方法 こんなシェル回すだけ、、、つって最初はかなり適当にやってたんだけど、値がおかしいので設定をもう少しつめました。 具体的には下記のような感じ。 apache 接続数が足りてなくてスループット出ないので変更、評価アプリが単純なのと相まって凄いスループット出てる・・・w 最初から全部400とか立ち上げるとSwapOut発生しまくりだったのでとりあえずこんな感じで。 再起動時にワーニング出るんだけど(gracefullだと駄目です、ちゃんとstop/start出来るコマンドで。してもWarningで照るんだけどね・・・)、ps axf | grep -c ‘apache2′するとちゃんと立ち上がってるみたいなので気にしない。 ulimit file descriptors [...]
-
intellij IDEA 9をwin7上で64bitで動かす
とある縁から intellij IDEA の ultimate license を貰えたので、ためしに使ってみることに。 インストール時に (x86)に入るので残念だなあ、って事で調べてみたら64bitで使う方法があったので共有。 ここからファイルを貰ってくる。 C:\Program Files (x86)\JetBrains\IntelliJ IDEA 9.0.4\bin に配置。 同じディレクトリにあるidea.exe.vmoptionsを idea64.exe.vmoptions とコピーして、値を増やす(64bit環境だと32bitと同じMaxPermSizeだと動かなかったです) 取り合えず俺はこんな感じ。 -Xms512m -Xmx2g -XX:MaxPermSize=1280m -ea 環境変数 IDEA_JDKに64bit JDK_HOME を追加。 後はidea64.exe を起動するだけでOK。 しかしIDEAは全然日本語の情報が無いのが困るな。
-
認証を掛けた状態でのhudsonのリモートビルド
svnでhookしてbuildしたくて、ググったりして出てくる方法とか、公式の日本語ドキュメント参考にしても上手くいかなかった。 出てくるのはこの方法。 http://あなたのホスト/hudson/job/プロジェクト名/build?token=認証キー 認証掛けてない場合はtokenいらない、認証かけたらtoken発行してやってね、って書いてる。 だけど、これでやっても403が出る。 Authenticating scripted clients って記事を見つけたので。 autobuildユーザを作って、こんな感じにしてみた。 wget -O /dev/null –auth-no-challenge –http-user=autobuild –http-password=password ‘http://example.net/hudson/job/test/build?token=foobar’
-
tombloo で youtube が投稿できない件への対応
ちょっと前にyoutubeのページ構成が変わってから、tomblooでreblog出来なくなってたので修正してみた。 authorが取れなくなってたので、ちょこっとxpathを書き換えただけ。 取り合えず動くことは確認できたけど、tumblr以外に投げたことが無く、authorを使った投稿先が解らないからそこまでは試してない・・・ #testの動かし方がよーわからん・・・ 取り合えずtumblrでは使えてるので良いや。 tombloo/xpi/chrome/content/library/31_Tombloo.Service.extractors.js にpatchあててantでbuldすればおk テストとか全然してないし、plugin作成とかxpathとか不慣れなのでpullはしないでいいや・・・ #ってかこれぐらいなら誰か治すでしょ。 ##編集のテスト
最近のコメント