2007-01-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…

「閉じる」ボタン

大量のバッファを閉じるときに、タブブラウザのように操作したくなったので。 (defun close-buffer-tool-bar () (create-tool-bar 'close-buffer-tool-bar (merge-pathnames "toolbar.bmp" (etc-path)) '(("buffer を閉じる" 6 (lambda () (interactive) (ki…

Net::HTTPの例外補足方法

Net::HTTPは内部でTimeoutを利用しているけども、これのエラー補足までの面倒は見てくれない。 なので必ずrescueで補足してあげる必要がある。 begin Net::HTTP.get(url) rescue puts "exception on HTTP: #{$!}" end ・・・と安直にやりたいところだけれど…

自分のプロセスの優先度を変える

require 'win32ole' module Win32 NORMAL_PRIORITY_CLASS = 0x00000020 IDLE_PRIORITY_CLASS = 0x00000040 HIGH_PRIORITY_CLASS = 0x00000080 REALTIME_PRIORITY_CLASS = 0x00000100 BELOW_NORMAL_PRIORITY_CLASS = 0x00004000 ABOVE_NORMAL_PRIORITY_CLASS …

O/RマッピングとActiveRecord

るびま で Object-RDB mapping というものがあると知る。 SQL文組み立てっておもしろいけど手間だもんねぇ。 多くはRuby/DBIを利用しているけれども、このうちActiveRecordは違うような。 RoRのコンポーネントだし、RoR + SQLiteという話は何度か見かけた記…

Ruby/DBI + DBD::SQLite は要コンパイル。

バックエンドの差を埋めてくれるDBIに慣れておいた方がいいのかな、と思ったけれども、DBD::SQLiteは拡張ライブラリしかなかった。 gemやバイナリ配布もなし。 いまはVCが入ってないから、そのままじゃインストールができません…。 mingw版はmswin32版と拡張…

sqlite3-rubyがおもしろい

手軽にDBが使えるSQLite。インストールまで手軽になってました。mswin32でもラクラク。 導入の仕方を覚え書き。

privateなメソッドはサブクラスから呼べるのか?

呼べました。 class Foo private def priv end end Foo.new.priv # => NoMethodError: private method `priv' called for #<Foo:0x28da3f4> class Bar < Foo def call_priv priv end end Bar.new.call_priv #=> nil なるほど、レシーバなしで呼べるからOKなんだね。 private</foo:0x28da3f4>…

未定義の変数の参照はエラー

Javascriptでは未定義のプロパティを参照するとnullが返ってくる。 他のLL言語の場合は大抵、未定義の変数の参照もnullになる。 if(!globalVar) globalVar = document.createElement('div'); その延長でグローバル変数への初期化を図ろうとしたら、ifの部分…

overt memo

o・vert ━━ a. 明白な; 公然の. 「overt」で始まる言葉1ページ目 - goo辞書 英和和英 「いまさら言うこともないことをおおっぴらに記したメモ書き」 辞書めくったときに目についた単語を使ってみただけ(笑)。 文語らしいだけあって、あんまり使用例を見な…

ひさびさのblog

最後に書いたのはいつだろう。2004年ぐらい? 昔ははてなダイアリーというと「夜になるとひたすら重い」なんて印象もあったけど、最近はそんなことを感じない。 よく話題になるページもはてなダイアリーを使っていることも多いし*1、お試しがてらに使ってみ…