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

Catalyst/PSGIに入門。

遅まきながら、perlの必修項目としてCatalystとPSGIに入門することにした。 まずはcpanで以下をインストール。 Plack DBIx::Class Template Catalyst Catalyst::Devel Catalyst::Engine::PSGI したらworkspaceで $ catalyst.pl MyAppこれで原型ができる。 次…

bashのパス補完で.svnを無視する。

bashのTabによるパス補完。 もうこれなしでは生きていけないんだけど、たまーに不便に思うときがある。 それはsvnのworking copyをcdで潜っていくときのこと。 /home/shellcat/repos/workspaceにリポジトリをチェックアウトしたとして、 workspace/perl/FooB…

expectスクリプトまつがい。

#!/bin/bash set timeout 20 spawn ssh hogehoge.com expect "password :" send "fizzbuzz" interactこうやって書いたら「spawn not found」とか言われた。確かにspawnってコマンドはインストールされてないな・・・ とか思ってたwwwwwwwwwwwwwwwwwww spawn…

Android端末とのファイル同期。

Xperiaとの同期を取るのに、メールとかケーブル繋いでとかがめんどかった。 今日とてもいいものを見つけたのでメモ。 ServersManというアプリで、要はhttp(というかWebDAV)経由でファイル操作をしちゃおうという。 端末にアプリをインストールしたら、あと…

next, lastの裏芸。

うわ、こんなことできたんだ。 my $res = 0; { if (scalar(@ARGV) == 0) { $res = 1; last; } if ($ARGV[0] == 1) { $res = 2; next; } $res = 3; } print $res . "\n"; これをtest.plとする。 $ perl test.pl 1 $ perl test.pl 1 2 $ perl test.pl foo 3 驚…

Xperia OSアップデート。

なんか17時くらいから盛り上がってたような盛り上がってないような。 unbound版のSkypeアプリが2.1から使えるっぽかったので、 兄貴を人柱にしつつXperiaをアップデート。 (こういうとき"BraveHeart"が脳内で流れる) ・Sony Ericson Update Serviceをサイ…

隠れ職人芸。

いや、なんか、すごいなぁって思うんだけど。 コンビニでお釣りをキレーに渡してくれる店員。 レジから小銭をチャリンチャリン片手に放り込んでたと思ったのに、 それを渡されるときには親指と人差し指でキッチリ挟んでる。小銭の額が順番に並んでるし、重な…

Androidマーケットからダウンロードできなくなったとき。

なんか気がついたらマーケットからのダウンロードが毎回失敗するようになってた。 「ダウンロードを開始中」でしばらく止まったあと、「ダウンロードできませんでした」となる。 いろいろぐぐって解決したのでメモ。 設定>アプリケーション>アプリケーショ…

.cgiにて、

#!/usr/bin/perl -d:DProf と、インタプリタの指定にオプションを付けて、 cgiファイルの存在するディレクトリをApacheから書き込み可能にする。 そうすると、アクセス時にプロファイル結果のファイル(tmon.out)ができているので、 同じディレクトリでdpro…

CGIプロファイリング。

うおー、超久しぶりにPerlネタ。 perlプロファイリングのお供、Devel::DProf。 これをCGIで使うTips。

relationのないテーブルをleft joinする。

最近symfony絡みのバッドノウハウばっかりだな・・・ 海外サイトでもソリューションが見つからなかったけど良く考えたらできたのでメモ。 keyword: doctrine left join without relation symfony/doctrineでleftJoinを使うには、テーブル間にrelationが必要になる…

知識不足。

SQL

inner joinとouter joinの違いが分かってなかった。joinしないに越したことはないんだろうけど、 クエリ2本よりはマシ・・・かなぁ。 SQL自体もちゃんと勉強しないと。

symfonyで複数のアプリケーションを作るとき。

symfonyはモジュールのネストができないため、 機能ごとに分類したくなったときはアプリケーション単位で分けることになる。 そのときに困るのが、「URLがダサい」こと。 メインのアプリケーションを除いて、「front.php」とかフロントコントローラ名がURLに…

UbuntuからWindows共有フォルダを使う。

忘れないようにメモ。samba, smbfsを入れた状態で。 共有サーバーのホスト:server 共有サービス名:service ユーザー名:hoge パスワード:fuga ローカルのマウントポイント:/mnt/smb として、 $ sudo mount -t cifs -o username=hoge,password=fuga,iocha…

sfFormのヘンな実装。

フォームの描画フォーマットをカスタムしようとしてほげほげやったら 原因の掴みづらいエラーが出まくって疲れた。 やったことといえば sfWidgetFormSchemaFormatterを継承したフォーマッターを作る(フォーマット文字列をspanにしただけ) sfFormを継承した…

なぜかよくやるミス。

var foo = new foo(); 先にfooが宣言されるから 「foo is not a constructor.」で怒られる。 そもそもクラス定義壊しちゃダメだろww var foo = new Foo(); クラス名と(文脈的にはレキシカルな)変数名の命名規則を守りましょうって話。

やったー、require.jsできたよー!

論よりコード。 (function() { if (!window.XMLHttpRequest) { alert('no xhr'); XMLHttpRequest = function() { try { return new ActiveXObject("Msxml2.XMLHTTP.6.0"); } catch(e) {} try { return new ActiveXObject("Msxml2.XMLHTTP.3.0"); } catch(e) …

忘れないように。

yield diferred ちゃんと勉強しなきゃ。

メモる。

@TODO = qw/Catalyst Sledge Lightning/; var todo = ['use', 'canvas', 'comet'];

遅延ロードっていうか。

こういうことをJavaScriptでしたい。 use lib '../lib'; use Foo; use Bar; my $foo = Foo->new(); Bar::static_method($foo); 要するに、jsファイル中で依存するjsファイルをロードして、 ファイル中の処理は読み込み後に実行したい。 uselib('../js'); use…

GUI構想の続き。

canvasで文字列描画が(まだ)できないのでどうしようか考え中。 現在のアプローチとしては、・座標が負のdivにtextを付けてcaptureする ・フォント画像をdata uri化してなんとかするの2つを考えてる。 今日バイブル(IT戦記)を読んでたらlocalStorageって…

canvasかstyleか。

JavaScriptでリッチGUIアプリケーションを構築するにあたって、 どうやってレンダリングするかという問題がある。 今のところアプローチとして、 ・タグを使用する ・styleや属性を操作するエンジンを組む(gameQueryのような) の2つがあるようだ。 とりあ…

小ネタ。

Java系(Servlet, JSP, JavaScript)だけでネトゲが作れるか。唐突に思い付いたけどいつかやってみたい気がする。

待ってましたあああああああああああああ

ノートパソコン対応外付けバッテリー「XP8000」 http://www.jtt.ne.jp/products/original/xp8000/index.html 愛機VAIO type P最大のネック。 それは電池がもたないこと。 基本的にPocket WiFi(D25HW)と無線LANで接続していることもあり、 バッテリー駆動で2…

「お約束」をまとめてみる。

Webアプリケーションを作るにあたって冗長だなーと思う部分をメモ。 あとはLightningが現状苦手としている部分とか。 その辺を解決すれば開発効率も上がるんじゃないかなっと。 認証 BasicとかDigestはどうしてもHTTPサーバーに依存してしまうので、 まずは…

辿り着いた結論。

VAIO type P with Ubuntu 9.04 in USB-microSDHC これが私のメイン環境で、SSD内のWindows 7と比較してパフォーマンスが良くないと感じていた。 主にブラウジングでload averageが跳ね上がり、GIGAZINEなどのサイトを開くと 操作可能になるまでに1, 2分かか…

Perlの紛らわしいこと。

自分じゃなくてもたまにハマったりしそうだなぁという。 正規表現のキャプチャパターンで my $a = 'hogehoge' =~ m|^(hoge)|; # $a = 1 my ($b) = 'hogehoge' =~ m|^(hoge)|; # $b = 'hoge' マッチ演算子はスカラーコンテキストでマッチした数、 リストコン…

やりたいこと。

なんか脳内がごっちゃになってきたので整理。 例のアレ これはやりたいことっていうかやること。 もうやると決めたのであとはやり尽くすのみ。 当然これが最優先。 GMOほげほげ http://app-yarouze.com/なんかこんなの。 でも法人格が半必須みたいなとこある…

Chromeにサイドバー。

ChromeはFireFoxとかのサイドバーがどうもないらしい。 かといって縦解像度の低いtype Pで上部のバーはできれば消したい。 というわけでExtension作ることにした。 JavaScript自体の勉強と、あと何かひとつjsも武器が欲しいなと思って、JQuery。 DOM操作とエ…

あ、これは便利。

$ sudo apt-get install terminator VAIO type Pは画面が横にでかくて表示領域がもったいない。 terminatorは横分割もできるので、ちょうど正方形のディスプレイが2つある感じに使える。 分割したタブの行き来がCtrl + Tabなのも嬉しいところ。