OpenAPI(Swagger)でいい感じに自動テストさせるためのベンダー拡張を考えてみた。

定義するのは下記の二つ Path Item Object の x-create-operation Parameter Object の x-found-in x-create-operationはそのリソースを作成するための操作のoperationIdを指定する x-found-inはパラメーターを取得するためのoperationとパラメーターがレス…

続フレームワークの責務とセキュリティ

先日のエントリに対してさまざまな反応を戴きました。ありがとうございます。 今回はその中からいくつかを取り上げていきたいと思います。 window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (…

フレームワークの責務とセキュリティ

お久しぶりです。 夜中にモツ煮込み作りながら書いてます。 さて、今回はフレームワークの責務とセキュリティについて思うところがあって久しぶりにエントリを書くことにしました。 背景 まず、背景としてBEAR.Sundayの一部であるBEAR.Packageにサンプルとし…

今あるJSONベースのHypermediaフォーマット仕様まとめ

RESTful Web APIs: Services for a Changing World (English Edition)をよんだりなんだりして、JSONベースのHypermediaフォーマットに興味が出たので調べてみました。 ここで紹介するフォーマットは2013年10月6日現在どれも策定段階です。リスト化するに当た…

株式会社VOYAGE GROUPを退職し、ウェブニウム株式会社を設立しました。

お久しぶりです。アドベントカレンダー以来の投稿となりますね。さて、この度、3月31日付でVOYAGE GROUPを退職しました。PHPカンファレンス2011の翌日の2011年9月12日に株式会社ECナビに入社し、翌10月に株式会社VOYAGE GROUPに社名変更、その後MBOを行いIPO…

PHPerのMVCの一体どこが間違っていたのか

メリークリスマス! PHP Advent Calendarもいよいよ24日目に突入です。 昨日はxhprofについてでしたね。僕もパフォーマンスチューニングの際に使っています。手軽に利用できるのでお勧めです。さて、このエントリーでは表題の通りMVCについて書かせていただ…

VOYAGE GROUPで新卒エンジニアを生暖かく見守ったお話 #vgadvent2012

※この記事はVOYAGE GROUP エンジニアブログ : Advent Calendar 2012の13日目の記事として書かれています。 ご無沙汰しております、あるいははじめまして。 ここ1年強、VOYAGE GROUPでPHPerのトレンドを社内に伝える仕事をしています。ついでにシステムも作っ…

CentOS用textsearch_jaのRPMを作ってみた。

CentOS用にtextsearch_jaのRPMを作ったので、思ったところを書いておきます。 下準備 textsearch_jaはMeCabに依存しているのでとりあえずインストールします。MeCabのCentOS用rpmの作り方はMeCabをyumでインストール@CentOS - yokkunsの日記がわかりやすいで…

アップル嫌いですがMacBook Airを買いました

私はアップルが嫌いです。何年もそういい続けてきました。ちょっとしたトラブルがあったんですよ過去に。 けれど、昨日MacBook Airを買ってしまいました。 かなり昔から使っていたThinkPad X31のバッテリの寿命が、1年半ほど前に尽きてしまいコンセントつな…

VirtualBoxを使って開発するときに知っておくと便利なこと

バックグラウンドで起動する VirtualBoxで開発用サーバーを起動する場合にはバーチャルコンソールやらマネージャウインドウやらは不要ですよね。コンソールはputtyやらpoderosaやらからつないだ方がクリップボードとか便利ですし。 そこで便利なのがVBoxHead…

CentOS6をVirtualBoxの仮想環境にインストールしてみた

やっとリリースされたCentOS6をVirtualBoxの仮想環境にインストールしたので流れを残しておきます。 CentOS6のダウンロード 今回はCentOS-6.0-x86_64-bin-DVDをBitTorrentでダウンロードしました。 CentOS-6.0-x86_64-bin-DVD1.iso,CentOS-6.0-x86_64-bin-DV…

携帯向けAgavi拡張の設計

社内では携帯向けAgavi拡張(KtaiAgavi/非公開)を作って利用しているけども、どうも使いにくいので設計を見直してみたい。折角なので公の場で開発しようかと思う。 キャリア判定 KtaiAgaviではキャリア判定をRequest初期化時にUserAgentを元に行っている。け…

HTML5対応:意味と機能をマークアップ

HTML5が迫ってきました。そんな中「HTML5対応:divで乗り切れ: 万象酔歩」というエントリがあると聞き閲覧してみたところとても黙ってはいられずこのエントリを書き始めました。釣りなんじゃないかという疑念もありますが。まぁ釣られてみます。 それはHTML3…

アイアンマン2試写会行ってきました

Oracle提供のアイアンマン2試写会に行ってきました。 オラクルとアイアンマン2は今回タイアップしていて、UNIVERSAL-FRAGMENTSというサイトを立ち上げてるそうです。このサイトの左っかわにあるVisit Oracle at Stark Expoから見れるコンテンツは、アイア…

セッションIDの構成文字

PHP

PHPがデフォルトで生成するセッションIDの構成文字は何だろう。 マニュアルにはsession_id関数で指定できるセッションIDに制限があることは記述されています。 セッションハンドラによっては、セッション ID として使用できる文字に 制限がある場合がありま…

Doctrineのモデルクラス接頭辞に"_"を入れると面倒

Doctrineでは、managerやconnectionの属性としてDoctrine_Core::ATTR_MODEL_CLASS_PREFIXに接頭辞を設定することができます。 また、Doctrine_CLIでyamlからモデルクラスを生成する場合は$config['generate_models_options']['classPrefix']を設定することで…

お名前.com 共用サーバSDでSPFレコードを追加してみた。

5月に一人暮らしははじめようとしているんですが、この機会に今まで自宅サーバにあったメールサーバを以前から放置していたお名前.comの共用サーバに移すことにしました。せっかくなのでSPFレコードを設定することにしました。実際にこの共用サーバのsmtpを…

第51回PHP勉強会に行ってきました。

PHP

100回へ向けた折り返しとなる第51回PHP勉強会@関東に参加してきました。 前回の大盛況と打って変わって今回は大量のキャンセルなどにより8名分枠が余っていました。もったいない。 感想と突っ込み CodeIgniterのUnit_testクラスとHMVC (nekogetさん) CodeIgn…

HTML_Emojiを読んでみた。

昨日の続きで今日はHTML_Emojiを読んでみました。 処理は単純でUTF-8に変換したものをpreg_replace_callback使って絵文字っぽい私的領域を抜き出して連想配列のマップで置き換えるだけ! また、ソース読んだだけでも分かりますが、作者のベンチマークによる…

Text_Pictogram_Mobileを読んでみた。

なんとなくXdebugでプロファイルをとってみたら、絵文字変換に半分以上持っていかれていたので絵文字変換を高速化したいなと思い動きだしました。 現在はMobilePictogramConverterをPHP5対応させたものを使っているのですが、他のライブラリも見ておこうと思…

第49回PHP勉強会@関東に参加してきました。

PHP

第49回PHP勉強会@関東に参加してきました。今回も遅刻しました。すみません。準備を終えて出発しようとノートパソコンをシャットダウンしようとしたらWindows Updateがあると言われてて「まぁ平気だろ」と軽いノリで実行したら32件も有って家を出られません…

HTML_CSS_Mobileのバグフィックスを投稿しましたよ

PHP

CSSをインライン展開してくれるライブラリのHTML_CSS_MobileのバグフィックスをCodeReposに投稿しました。 直したバグは二つありそれぞれ別ブランチを切ってコミットしてあります。そのうちopenpear版にも取り入れられるかと思いますが、必要な方はCodeRepos…

utterramblingsのphp-pgsql+php-pdoでPostgreSQL8.4にアクセスするとSegmentaion Fault

PHP

表題のような現象が起こった。仕方がないのでphp-5.2.11のソースを持ってきてpdo_pgsqlディレクトリでphpize;./configure;makeして出来上がったpdo_pgsql.soを/usr/lib/php/modules/pdo_pgsql-8.4.so*1にコピーして、/etc/php.d/pdo_pgsql.iniの参照先を変更…

RHEL5でyum-prioritiesを使う

RHEL5でyum-prioritiesを使おうとした場合にはすんなりいきません。今回はたぶんうまく動かすことができたので報告します。ただし、きっちりとテストしたわけではないので実際に利用する際は自己責任でお願いします。 yum-prioritiesのインストール まず、RH…

続・ドコモでJavaScriptが解禁されたので試してみた。

masa様より document.write()の無限ループ とのコメントをいただきましたので実験してみました。 <html> <head> </head> <body> <script> while(1) document.write('a'); </script> </body> </html> 開いてみるとずっと読み込み中表示になります。多少重いくらいです。中止ボタンは効きませんが、メニューは開けてまた…

ドコモでJavaScriptが解禁されたので試してみた。

まずは while(1); 眺めの読み込み中の後しばらくすると戻ってくる。jQueryが動くかなーとjQueryのテストを動かそうとしたけど無反応でした。ただ、jQueryUIを使ったサイトを表示したら一部は動いていたので動くこともあるらしい。次はwasserで急募したらid:h…

単純ベイズ分類器がほしい

PHPで使える単純ベイズ分類器(Navie Bayesian Classifier)がほしいと思ったので具体的な仕様をメモしておきます。将来的に造ろうと考えている人(含む自分自身)は是非ともこのメモを読んで希望をかなえてください! PEAR、openpear*1などpearチャネルからの配…

とあるコミュニティサイト運営者として

実は、僕はプライベートでとあるネット上での雑談を目的としたコミュニティサイトを運営している。利用規約ではもちろん出会い行為を禁止しているけど、これを行うものが後を絶たない。 チャットの書き込みは削除とか無意味だし、掲示板にしたって削除しても…

Phar拡張のストリームラッパーでtar.gzファイルを開く

PHP

PHP5.3.0から標準で組み込まれるようになったPhar拡張ですが、こいつはPharアーカイブを扱うだけではなくtarやtar.gzも扱えます。また、それらを扱うためのストリームラッパーを提供しています。 ということで、ホントにPhar拡張を使ってtar.gzファイルを展…

HTTP_Request2でハマった

PHP

Net_CicindelaでHTTP_Request2を利用してるんですが、なぜかAgavi-0.10から呼び出すとNet_CicindelaがアクセスするURLのクエリ部分の&が&amp;になってしまう現象が起きました。 半日かけて調べた結果、HTTP_Request2が利用しているNet_URL2でデフォルトのク…