メメメモモ

プログラミング、筋トレ、ゲーム、etc

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

Mojoliciousでダンプ

日本語もちゃんと表示したい場合、以下のように定義した。 { package D; sub dump { require Data::Dumper; require Data::Recursive::Encode; my $text = Data::Dumper::Dumper(Data::Recursive::Encode->encode('utf8', $_[1])); die Encode::decode_utf8(…

jqueryでformのsubmitをする

triggerメソッドを使う。 $("form:first").trigger('submit'); jQuery日本語リファレンス

emacs-w3mを使うまでの設定

gcをインストール w3mでgcがないとエラーが出るのであらかじめインストールしておきます。 以下のリンクからソースを取ってきてコンパイルとインストールをします。 Index of /personal/Hans_Boehm/gc/gc_source w3mをインストール 以下のリンクからソースを…

PHPUnitでデータベースありのテストを行うための設定メモ

第8章 データベースのテスト インストール PHPUnitのインストールは以下のコマンドで行う。 # pear config-set auto_discover 1 # pear install pear.phpunit.de/PHPUnitauto_discoverでインストールがうまくいかない場合は。 # pear channel-discover pear.…

Mojo::EventEmitter

emitは「放出する」という単語。 eventをemitだから、イベントを放出するモジュール。 例えば以下のように、イベントに対してコールバックを設定して使用するようなモジュールを作成できる。 my $tiger = Cat->new; $tiger->on( roar => sub { my ($tiger, $…

YAPCに行ってきた&LTソンで発表してきた

YAPCに行って来ました。 ブログ書くまでがYAPCということなのと、 LINEのぬいぐるみが欲しいので、ブログを書きます。 LTソン 「YAPCでLTやってみたいけど、ステージに上がって発表するとかハードル高杉」 という自分にとって、夢のような企画でした。 とい…

Kyoto.pm Tech Talks 02に行ってきました

行ってきました。 あとLTもさせていただきました。 CPANモジュールをPHPに移植してみた話 from memememomo

最近入れた拡張など

chrome Chrome ウェブストア - AutoPager Chrome Chrome ウェブストア - Session Manager emacs zencoding zencoding + emacs - tototoshiの日記 perldoc-m EmacsでPerl開発する上で必須な設定 #3 - perldoc-m - antipop perldoc [http://d.hatena.ne.jp/IMA…

emacsの記号

いつも忘れるのでメモ。 M Metaキー。ESCかCtrl+[ C コントロールキー。Ctrl 参考 Emacs

ハッシュをparamメソッドがあるオブジェクトに変換する

ハッシュに入ってる値をFormValidator::Liteでバリデーションしたい時とかに、 CGI.pmに変換してやってます。 use FormValidator::Lite; use CGI; my $hash = {name => 'aaaa'}; my $req = CGI->new($hash); my $validator = FormValidator::Lite->new($req)…

「Test_mysqldというものができたけど、まだ問題があって悩んでいる件」が解決されてた

php

下記の件で悩んでたもの。 Test_mysqldというものができたけど、まだ問題があって悩んでいる件 - メメメモモ対応されていました。 taiyoh/Test_mysqld-phpregister_shutdown_function()というものがあったのですね。 PHP: register_shutdown_function - Manu…

perlのデコードとエンコードについて(1)

デコードする ある文字列が何文字あるのかを求めるプログラムを書くとします。 perlにはlengthという関数があるので、これを使って以下の様なプログラムを書きました。 # UTF-8で保存したファイル use strict; use warnings; my $str = 'ハローワールド'; my…

DKIMの導入手順

公開鍵と秘密鍵を作成 DKIMで使用する公開鍵と秘密鍵は、OpenDKIMというツールを使って作成します。 debianでは、以下の様なコマンドでOpenDKIMをインストール。 $ sudo apt-get install opendkimOpenDKIMをインストールすると、dkim-genkeyというコマンドが…

カーソルの縦方向固定

なんかたまにカーソルが変な動きするなぁと思ってたら、次のコマンドを打ってしまっていたらしい。 C-x C-n このコマンドを打つと、カーソルを上下に動かすたびに、自動的に◯◯カラム目の文字にカーソルが行くようになる。 次の行に行くのが「C-n」だから、た…

make_database_yaml.plで、AUTO_INCREMENTの指定を外す

以下のようにして、単純にsedで取り除くだけ。 make_database_yaml.pl -d 'dbi:mysql:dbname' -u root -p xxx | sed -e "s/AUTO_INCREMENT=\d+//g;"

ダミーの氏名

こちらのページから名前をいただくとよさそう。 http://www.namaejiten.com/h01/name01.html use strict; use warnings; use Mojo::ByteStream 'b'; use Mojo::UserAgent; my $ua = Mojo::UserAgent->new; my $tx = $ua->get('gttp://www.namaejiten.com/h01…

判別関係

Mail::Address::MobileJp メールアドレスからキャリアを判別するモジュール。 Mail::Address::MobileJp - search.cpan.org HTTP::MobileAgent HTTP_USER_AGENTからキャリアを判別するモジュール。HTTP::MobileAgent - search.cpan.org HTTP::BrowserDetect H…

$1の挙動でハマった

my $text = 'abcde'; # (1) $text =~ m/(bc)/; warn $1; # -> bc # (2) $text =~ m/(ce)/; my $tmp = $1; warn $tmp; # -> bc # (3) if ( $tmp ) { # do something for $tmp } (1)では、正規表現がマッチするので$1には"bc"が入ります。(2)では、正規表現が…

リモートリポジトリのコミットを取り消す

git

概要 リモートリポジトリにあるmasterブランチのコミットを取り消す場合を考えます。 手順としては以下のような感じになります。 リモートリポジトリからmasterをpullしておく リモートリポジトリにバックアップとしてmaster_bakブランチを作成する(オプショ…

Test::Mojoでformの値を取得する

submitボタンを大体エミュレートしてpost_form_okに値を渡したい時に、以下のようにした。 $t->get_ok('/form'); my $res = $t->tx->res; my $first = $res->dom->find('form')->first; my %values; $first->find('input')->each( sub { my ($e) = @_; if ( …

Test::Mojoのpost_form_okで、チェックボックスの値を渡す方法

要するに、同じ名前のフィールドに複数の値を設定する場合は、以下のように配列リファレンスで渡す。 $t->post_form_ok('/', { chkbox => ['1', '2'] });

qpsmptdのインストールと設定

qpsmtpd qpsmptdとは、perlで書かれたsmtpサーバです。 qpsmtpdユーザーを作成 qpsmtpd用にユーザーを作成します。 # adduser smtpd インストール smtpdユーザにログインして、qpsmtpdで使うモジュールをインストールします。 $ cpanm Net::DNS $ cpanm MIME…

DB_Fileモジュールをインストールする

Berkeley DBが入っていないとエラーになるのでインストールする。 apt-getでは、以下の様な感じ。 $ sudo apt-cache search libdb $ sudo apt-get install libdb-dev あとはcpanmなどで普通にインストールできる。 もし「db.hがない」というエラーが出たら、…

Mojo::JSONのエンコードについて

Mojo::JSON::decode()には、デコードされていない文字列を渡す。 返ってくる値は、デコードされた状態になる。 Mojo::JSON::encode()には、デコードされている状態の値を渡す。 返ってくるJSON文字列は、デコードされていない状態になる。 つまり、Mojo::JSO…

Email::MIME::MobileJP::Parserでパースした時のヘッダ部を取得する

以下の様な感じ。 # メールをパース my $mail = Email::MIME::MobileJP::Parser->new($mail_str); my %headers = @{ $mail->mail->{header}->{headers} };

Email::Senderでのテスト

Email::Senderでメール送信しているアプリをテストするときは以下の様な感じで行う。 use Test::More; use Encode; # 環境変数を設定 BEGIN { $ENV{EMAIL_SENDER_TRANSPORT} = 'Test' } use YourCode; YourCode->run; my @deliveries = Email::Sender::Simpl…

モードを切り替える

.htaccessに以下の設定を加えるとPRODUCTIONモードになる。 SetEnv FUEL_ENV production

ガラケー用に文字コード変換

まだ実機チェックとかしてない。 Controller_Templateを使っているときは、afterメソッドで以下のようなロジックを書くことになりそう。 class Controller_Hoge extends Controller_Template { public function after($response) { $response = parent::afte…

アップロード処理をする

Uploadクラスを使う。 処理順は以下の通り。 アップロード設定を行う $_FILESから情報取得 正常に行えたか確認 正常に行なえたら、設定に従ってセーブして、ファイル情報を表示 異常があったらエラーメッセージを表示する // 1. 設定 $config = array( // 保…

postかgetか判別する

Input::method()を使う。 Input - Classes - FuelPHP Documentation