itochin2の日記(仮)

主に備忘録。Perl、MySQL、Unity、開発管理などについて情報を残していきたい。

perl

Module::Spyでテンプレートに渡したパラメータのテストをする

概要 JSONを返すAPIのテストなら、スキーマの確認がやりやすいのだけど テンプレを返すコントローラってどうやってやろうか、という課題。テンプレを表示して目視する作戦は効率悪いし、絶対漏れるし 継続的にするの無理だし、プログラムのテストとテンプレ…

ajaxでクロスドメインのAPIを叩く時にやったこと

アプリのweb viiewから、ajaxでクロスドメインのAPIを実行しようとして とても大変な思いをしたので備忘録。 概要 APIサーバーから、アプリのWebViewで表示するHTML(文字列)を取得する HTMLの中で別サーバーのJSを読み込む。 JSからXMLHttpRequestでAPIを実…

クロスドメインで調べた事メモ

ajaxでクロスドメインだと動かない件で、ググったことが多かったのでメモ。 そもそもクロスドメイン制約って? Ajaxでは同一生成元ポリシーにもとづくセキュリティ上の制約がある。 以下の1つでも違うとアクセスできない。 ・ホストが違う ・プロトコルが違…

user-agentでOSとか判定するのは辛かった

user-agentを使用して、OSとかブラウザとか判定する実装した。 ようは、動作環境を満たすかチェックしたかったので。 吐きそうなくらい辛かった気持ちを忘れないためにメモを残す。 要件 Windows、OSX、Android、iOSの4つを判定し、バージョンも取る。 ブラ…

perlの文字列をバイト数で切り取るヤツ

APIに渡す文字列は25文字(50byte)でよろしく、 という要件に対応するサブルーチンを実装した時のメモ。サブルーチンでは以下の3つを考慮する。 ・文字数制限を満たす ・バイト数制限を満たす ・文字列として成立する(単純にバイト数でぶった切ると、文字列が…

HTTP::Session2でexpiresを設定する

自動ログイン機能を実装していて、最後のログインから1ヶ月間有効っていうのをやりたかった。 フレームワークにAmon2を使っていて、セッションの保存先はmemcacheを指定。http://search.cpan.org/~tokuhirom/HTTP-Session2/ http://search.cpan.org/~kazebur…

Test::Stubを使ってみた

第23回 Perlアプリケーションのテストと高速なCI環境構築術(1):Perl Hackers Hub|gihyo.jp … 技術評論社 この記事みて、Test::Stub、これは便利そうだ!と思ったので使ってみた。ためしたサンプル 指定したURLに応じて結果を変えることができるから 複数…

localhost:6000で「このウェブページにアクセスできません」

plackupをいろいろ試してて、ポート指定を6,000番にしたら 突然ページが出なくなってハマった。Chromeの詳細には↓が出てた。 エラー コード: ERR_UNSAFE_PORT ERR_UNSAFE_PORT is 何? Chromeは、セキュリティリスクのあるポートへの接続を許可しない。 つま…

List::MoreUtilsモジュールは便利

hashの配列とかから、ある要素が全てhogeかどうかを調べるロジック。List::MoreUtils::allを使うと便利だった。 http://search.cpan.org/~vparseval/List-MoreUtils-0.22/lib/List/MoreUtils.pmベンチマークを取ったところ、foreachで頑張るより約25%早いし…

合法ラーメンbotをモジュール化した

去年思いつきで「本年度の合法ラーメンは全て終了しました」って スクリプトを書き換えたら、戻すのを忘れて 年明けでも表示されてしまうという悲劇的なバグがあった。相変わらず自分のmacで動かしているので、これを期にいろいろ修正した。 やりたかったこ…

perlの単体テストでスタブ作るお仕事

get_hoge的なサブルーチンの戻り値を見て、 なんか色々やるサブルーチンのテストを書く時、 get_hogeのシンボルテーブルを上書きしてやれば、テスト項目も自由自在。 no warnings 'redefine'; # 再定義をお許しください宣言 local *Hoge::Model::get_hoge = …

YAPC::Asia Tokyo 2013の感想

初参加でボランティアもやって、盛り盛りの3日間。 ボランティアとしてやったこと YAPCのボランティアってどんなだろうっていう、 割りと単純な興味から応募してみた。会場の設営とか、ノベルティの準備とか、トーク会場の運営をやった。 提灯飾ったり、掛け…

Tengで採番テーブルを実装

LAST_INSERT_IDを使った採番テーブルを作った時のメモ。ココらへんをパクリ参考にさせて頂きました。 http://blog.livedoor.jp/sasata299/lite/archives/51280681.html http://engineer.dena.jp/2010/11/mysql-for-socialgame.htmlupdateした時のLAST_INSERT…

perlのNet::Twitterでアイコン変更する

「木曜日はラーメンの日」って話をしてたら 「木曜日になったらtwitterのアイコンをラーメンに変えようぜ」 って言われたのでperlで作った。Net::Twitterを使うと、恐ろしく簡単に実装できる。 OAuth認証を通すために必要な"consumer_key"とかは、アプリケー…

perlbrew availableでERROR

mac(10.8.2)にperlbrewインストールした時にハマったこと。availableを叩いた時に、こんなエラーが出た。 itochin$ perlbrew available ERROR: Unable to retrieve the list of perls.Perlのリストが表示できません、と。できないのは分かった。 みんな出来…