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

Date クラスの直感的なインタフェース

Date クラスに直感的な (流れるような) インタフェースを実装してみた (ソースコード)。元ネタはこの一枚。 実行サンプルはこんな感じ。 var d = new Date(); => Wed Apr 30 2008 00:00:00 GMT+0900 (JST) d.tomorrow(); => Thu May 01 2008 00:00:00 GMT+09…

explorer.exe が終了した際の対処法

explorer.exe が終了し、タスクバーやデスクトップが消えてしまった際の対処法。 Ctrl + Shift + Esc でタスクマネージャを立ち上げる。 ファイル -> 新しいタスクの実行。 explorer.exe を入力して OK を押す。 これで explorer.exe が起動して、タスクバー…

HTML のスペシャルキャラクタをエスケープする Vim スクリプトを書いた

Vim

HTML のスペシャルキャラクタをエスケープする Vim スクリプトを書いた。 :[range]call EscapeHTMLSpecialChars() として使う。 <p>hoge & foo</p> をエスケープすると &lt;p&gt;hoge &amp; foo&lt;/p&gt; となる。関数の内容は以下のとおり。初めて Vim スクリプト…

Ruby で掲示板の CGI を作る #2

前回作った掲示板をリファクタリングした。主な改善点は BBS クラスと Post クラスに分けた。 ActiveRecord を使った。 設定ファイルを作った。 bbs.rb #!/usr/bin/ruby -Ku require 'rubygems' require 'erb' require 'cgi' require 'config' require 'lib/…

ターミナルの Vim にクリップボードの内容をペーストしたい

Vim

ターミナルの Vim にクリップボードのテキストをペーストするには、 :a! を入力して Alt + v などでペーストしてから <Esc> を押すか . を入力する (参考)。 ここで悩ましいのが :a と :a! の使い分けだが、ヘルプを見ると、 Adding [!] toggles 'autoindent' for</esc>…

編集中の Ruby スクリプトをその場で実行する

Vim で編集中の Ruby スクリプトを、即時実行できるように設定した。 Vim で Ruby スクリプトの実行と結果のプレビュー表示 Tip #1244: preview interpreter's output 上記サイトを参考に、.vimrc に追記。 function! Ruby_eval_vsplit() range let src = te…

ターミナルでは C-CR のマッピングが有効にならない

Vim

C-CR のマッピングは、ターミナルエミュレータ越しでは動かないらしい。少なくとも Poderosa では駄目だった。 nnoremap <C-CR> :echo "hoge"<CR></cr></c-cr>

jQuery の $() の戻り値は jQuery オブジェクト

Prototype.js の感覚で jQuery の $() を使ったら詰まった。 SWFObject で貼り付けた SWF のメソッドを ExternalInterface で呼び出そうとして、 $("flashMovie").doSomething(); と書いたら、$("flashMovie") には doSomething が無いと言われる。 それもそ…

文章を皮肉っぽくするブックマークレットを作った

文章を皮肉っぽくするブックマークレットを作った。 javascript:(function(){document.body.innerHTML=document.body.innerHTML.replace(/([、。])/g,'(笑)$1');})(); このブログを皮肉っぽくする google で検索したら、これよりも高機能なものを見つけた。

CentOS 5 で Vim 7.1 をビルドする

CentOS 5 の Vim に autocomplpop.vim を入れたら、 Sorry, Autocomplpop doesn't support this version of Vim. と言われて使えなかった。autocomplpop.vim (2.3.1) の中身を見ると、対応バージョンが 7.1 と書いてある。vim.org の情報が間違っているよう…

カレントバッファのファイルパスを表示する

Vim

カレントバッファのファイルパスを表示する方法。意外に手間がかかる。 :!echo %:p または :echo expand("%:p")

Ruby で掲示板の CGI を作る

サーバサイドのプログラミング能力が貧弱なので、勉強の第一歩として掲示板を作ってみた。ついでに Ruby も覚えてしまおうということで、Ruby で。 要件 名前と本文を投稿できる。 Ruby で動く。 データベースに MySQL を使う。 ビューに ERB を使う。 mod_r…

任意の単語の数を調べる

Vim

vim で単語数や行数を数える方法が便利。 :%s/function/&/gn で、ファイル内に function がいくつあるか表示される。 キモは 置換フラグの n。これを指定すると置換は行われずにマッチの数を表示する。he :s で、 [n] Report the number of matches, do not …

フォールトトレラント設計 のための try..catch 節

JavaScript のランタイムエラーは、起こると処理がそこで停止してしまう。たとえば initModuleA();//エラーが起こる可能性のあるモジュール initModuleB(); initModuleC(); alert("done"); このコードで initModuleA でエラーが起こると、以降、initModuleB …

Helma の文字コードを UTF-8 にする

Helma のデフォルト文字コードは ISO-8859-1 なので、UTF-8 にしたい。結論から言うと app.properties に charset = UTF-8 を書くだけでよい。 アドホックだと感じつつも、hac ファイル全てに res.charset = "UTF8" を追加した上で db.properties に hoge.us…

if 文のワンライナー化

とあるコードにこのような行があった。 isHoge() && isFoo() && alert("ok"); やっていることは if (isHoge() && isFoo()) { alert("ok"); } なのだが、なるほどと思った。

jQuery の解説動画を見た

Dmitri Gaskin による jQuery の解説動画を見た。jQuery の API を一通り解説している。英語も聞き取りやすく勉強になった。 ひとつ驚いたのが、この子が 12 歳だということ。 Dmitri Gaskin drinks code with his cereal for breakfast every morning. He's…

ターミナルの Vim のテキストをクリップボードにコピーする

ターミナルの Vim に書いたテキストをクリップボードにコピーしたく、"vim・mac間でクリップボードを介してやり取りする方法 完結編" を参考にやってみた。 nkf が入っていない nkf が入っていなかったので、MacPorts で入れようとしたら MacPorts も入って…

仕事の哲学

『仕事の哲学』を読んだ。14 のカテゴリにわたって、ドラッカーの名言が引用されている。どのページを開いても心を揺さぶる言葉が書いてある。 成長 成果能力 貢献 強み 進むべき道 知識労働者 起業家精神 チームワーク コミュニケーション リーダーシップ …

FlashPlayer 7 以下では fscommand を使う

Adobe - デベロッパーセンター : 外部APIを使用したFlashとJavaScriptの接続 FlashPlayer 7 以下では ExternalInterface が使えないので、Flash -> JavaScript の接続には getURL fscommand を使う。getURL はコードが単純になるが、IE でクリック音が鳴って…

Helma を触ってみた

TrimPath Junction を落として NextAction をちょっと触った。が、 NextAction よりも、Junction に付属している Helma に興味がわいたのでそちらを追ってみた。 仕組みもよくわからない状態で、チュートリアル (邦訳) をそのままトレースしてアドレスブック…