2007-04-01から1ヶ月間の記事一覧

テーブルそのものの操作方法(テーブル名変更・列の増減など)

一般的なデータベースでは、テーブルの列を増やしたりテーブル名を変更する時にはALTER TABLE文を使います。 ALTER TABLE table ADD ( new_column INT(10) ) ALTER TABLE文はサブコマンドに次のようなものがあります。 ADD 列の追加 MODIFY 列の名前やデータ…

ActiveRecordの複数形処理

ActiveRecordは要素クラスの名前を複数形に変えてテーブル名としてくれるのですが、なんだか不思議な感じがします。 # Users テーブルへアクセス class User < ActiveRecord::Base end # People テーブルへアクセス class Person < ActiveRecord::Base end U…

ActiveRecordはrequireに時間がかかる?

重い腰をあげてActiveRecordを実際にいじってみたのですが、これがずいぶん重たい。ちょっとした実験コードでも数秒固まります。 簡単に時間を計ってみると、mswin32でのrequireに8秒ちょっと(ActiveSupport 約5秒、ActiveRecord本体 約3秒)かかってるよう…

PHP4 + SQLite3の基本的な使い方

SQLite2とSQLite3、PHP4とPHP5の組み合わせでごちゃごちゃしていて利用方法を探すに手間取ってしまいましたが、シンプルに利用することができました。 ここではPHP4とSQLite3の組み合わせを取り上げます。 これを実行して、./test.db が作成されれば OK で…

HTMLエスケープしたHTMLタグがRSSリーダでHTMLエレメントになる

改行記法って不思議。のエントリではこのように記述してHTMLタグを表示させました。 ただインライン要素である&lt;br&gt;がブロック要素の&lt;p&gt;の外にぽつんとあるのは しかしFirefoxのRSSプレビューやLivedoor Readerでは、このように表示されています…

改行記法って不思議。

第一段落 二行目 第二段落 第三段落と書くと、こんなHTMLになる。 <p>第一段落</p> <p>二行目</p> <p>第二段落</p> <br> <p>第三段落</p> 期待するのはこんな感じ。 <p>第一段落<br> 二行目</p> <p>第二段落</p> <p>第三段落</p> (あれ、改行記法が行方不明に…)互換性の問題で現在の仕様があるのでしょうけど、ただイ…

net/httpの例外捕捉方法(2)

先日のNet::HTTPの例外補足方法、 rescue Timeout::Error だけではエラーを捕捉しきれませんでした。*1たしかErrnoの何かかEOFErrorだったはずなのですが、うっかりエラーメッセージを記録しわすれてしまったうえに、サーバの調子が悪い時にしかお目にかから…

relative_time

Twitter Fan Wiki / RelativeTimeScriptsにあるスクリプトのRuby版です。 引数は文字列のままでもTimeオブジェクトでも受け付けます。 いつからかtwitterの表示が変わってしまったので*1完全再現できるものではありませんが、雰囲気は出ます。:-) *1:1分以内…

キーバインドの決め方

xyzzy Part14にちょうどありました。 「C-c tをユーザ自身に設定してもらう」というスタイルだから、いちおうこれに沿っている…のかな?言い訳っぽいけれども(笑)。

うっかりスペース入れ忘れて投稿に失敗したら。

慌てず騒がず入力欄でCtrl+Zを押してみましょう。

スペースを入れる位置のおすすめ

手書きの時 書き始める前にまず文頭に。最後だと、書いたことに満足してそのままうっかりポストしてしまう。 API 末尾に追加。 ただ先頭や末尾のホワイトスペースは投稿後には消えて違いがなくなるので、やりやすいほうで問題ありません。 追記 google talk…

日本語で半角スペースが必要な理由を考える

abcdefghijkl は登録されても abcdefghijklm では無視される。 日常的な単語は12文字以内に収まる それ以上の長さを持つ文章は二単語以上になるため、必ずホワイトスペースが挟まる だから「スペースがないなんて文章としてはおかしい!SPAMだ!」ということ…

twitter-update

xyzzyから手早くtwitterの更新をします。末尾のソースを twitter-update.l の名前で保存して、site-lispに配置。その後.xyzzyに次のように記述してください。 (require "twitter-update") (global-set-key '(#\C-c #\t) 'twitter-update) (setf *twitter-use…

JavascriptのUnicodeをescape/unescape

Unicode エスケープシーケンスをRubyで扱う方法。 module Unicode def escape(str) ary = str.unpack("U*").map!{|i| "\\u#{i.to_s(16)}"} ary.join end UNESCAPE_WORKER_ARRAY = [] def unescape(str) str.gsub(/\\u([0-9a-f]{4})/) { UNESCAPE_WORKER_ARRA…