メモ

日本語ってすばらしい

プログラミングGaucheを読んでいて思ったんだけど日本語はすばらしい。 例えば、「クラス」という非常にややこしい言葉を簡単に伝えられる。 あと、コルーチンの動作例の one いち two に tree さん one し two ごー!! ...がとても読みやすい。ちなみに英語…

正規表現すごい

プログラミングGaucheより。 Gaucheの正規表現拡張がすごい。 (rxmatch #/h+/ "hoge") と (#/h+/ "hoge") が等価だったり、 ; (define m (#/h+/ "hoge")) (rxmatch-substring m) (rxmatch-before m) (rxmatch-after m) と (m) (m 'before) (m 'after) が等価…

Google Gearsスタートガイド

Google Gearsスタートガイド作者: 白石俊平出版社/メーカー: 技術評論社発売日: 2007/12/06メディア: 単行本(ソフトカバー)購入: 1人 クリック: 41回この商品を含むブログ (15件) を見る読み終わった。キレイにまとまっていい本だと思う。ありがとう、id:s…

Schemeの評価戦略

プログラミングGaucheを読んでいたら、 Schemeでは作用順序評価という方法を採用しています。 (中略) 作用順序評価は、手続き適用式の手続き引数を順に評価してから、手続きを評価するモデルです。 と書いてあった。 Schemeって最左最内評価で、一番左の手続…

Google Gearでチャネル通信

最近、Google Gearsスタートガイドを読んでいる。で、普通にチャネル通信ができるみたいで驚いた。 Google GearはオフラインWebアプリケーションを実現できるように、Javascriptにいくつかの機能を追加している。追加された機能に、マルチスレッドを実現する…

Firefox3は速い

http://www.mozilla-japan.org/products/firefox/all-beta.htmlすげー。めちゃくちゃ速いー。

Smartyの必要な理由が分からない

Smartyが便利な理由がよく分らない。普通、テンプレートエンジンはHTMLに似た形でデザインできるのが嬉しいのだと思う。 でも、PHPはもう十分HTMLに似ているじゃん。要するに、 の代りに {$hoge} と書けるようになると、何がうれしいのか分からない。

自動化しやすいプログラム

hmxが画像処理プログラムを書いたので、それのインタフェースをRubyで作ってみた。せっかくなので、プログラムから呼び出しやすいプログラムについてまとめてみる。『Unixという考え方(asin:4274064069)』にもっと詳しいことが書いてあった気がする。 標準出…

SWFAddressすごい

SWFAddressというライブラリがすごい。 AjaxやFlashでもページ遷移時にURLを書き換えれる。しかも、ちゃんとブラウザの戻るボタンも効く。デモページざっとソースを見たところ、location.replaceなどを使ってURLを書き換えているみたい。ブラウザに合せて、a…

カレンダーの計算がよく分からない

ガウディ本(asin:4798113468)より。 次に月初めの1より前の格子の空白部分の個数を計算する。 SD=(((7-(T.mDay mod 7))+T.wDay) mod 7) このときTは今日の日付。T.mDayは日(1から31)、T.wDayは曜日(0から6で0が日曜)。 これでなんで計算できるかと、そもそも…

BluePrint CSS使ってみた

Blueprint CSSを使ってみた。CSSフレームワークという概念そのものが熱すぎる。あと、CSSのくせにtestsやpluginとかいうディレクトリをもっているあたりも素敵。 グリッドレイアウトするために使ったんだけど、なかなか便利。 英語/日本語を含めてドキュメン…

caseの書き方

Rubyコーディング規約 caseを使用できる場合は、caseを使用する。 やっぱりどう考えても、このcaseの使い方は変だろう。 case path.basename.exist? when true name = alt_name(Pathname.new("."),path.basename(".*"),path.extname) FileUtils.mv(path,name…

ping

id:mallowlabsに教えてもらった。Rubyでpingは2行で書ける。 require 'ping' puts Ping.pingecho('localhsot') http://www.ruby-lang.org/ja/man/html/ping.htmlすげー。

CometがOperaで動かない

Rails2.0.2にShootingStar 3.2.6をいれてみたけど、Opera9.5でうまく動かない。Controllerではforkを使って、表示してから3秒後にalertを出すようにしている。 def foo fork{ sleep 3 Meteor.shoot 'shoot','alert("hoge")' } end Viewでは単純にShootingSta…

Tclの正規表現は最速

>> id:syd_syd:20080209:p3その話は、詳説 正規表現 第2版で読んだことがあります。曰く、 正規表現エンジンにはDFA型とNFA型がある DFA型は高速だが能力が低い。NFA型は低速だが能力が高い。たしかDFAはキャプチャができなかった気がする でも、Tclのエンジ…

VPS

VPS(Virtual private server)なるものを使うと、root権限付きのサーバが借りられるらしいですよ。 さくらの専用サーバと比べて、それほどお得感がないですけど。

アイコン格好いい

gawkの最初に画像入れているのが格好いい。 CreativeCommonsな画像を探してマネするかもしれない。

Operaメモ

Operaに関するメモ。主にJavascript関連。 shortcuts.jsを使う場合、デフォルトのkeydownよりもkeypressのほうがいい。keydownだとブラウザデフォルトの動作を殺せない"こと"がある Windows版のOperaでテキストエリアを編集すると、改行コードが"\r\n"になる

CPSっぽいAjax

Ajaxでこんな感じのコードを書いた。 api.edit({ onSuccess: function(){ api.get({ onSuccess: function(){ // .... }, onFailure: fail_handle('取得失敗!') }) }, onFailure: fail_handle('送信失敗!')}); 後続の処理を渡すあたりがなんかCPSっぽい。じゃ…

登録件数の確認用URL

各サービスの登録件数を確認するためのURL。スクラッピングの練習もかねてたので、APIを公開してても無視してる。 はてなブックマーク http://b.hatena.ne.jp/entry/http://example.com はてなRSS /http://r.hatena.ne.jp/feed/http://example.com はてなア…

オンラインストレージ

バックアップ用としてオンラインストレージが使いたくなったので、調べてみた。 結局、いいのは見つかってない。有料サービスも視野にいれるか・・・。 GMail系 GMailをオンラインストレージとして使おう、というソフトたち。結局、WindowsとMacで互換性のあ…

Maven2感想

アルバイトでJavaを使うので、Maven2を試してみました。結構気にいった。MavenはAntに替わるJavaのビルドツール。ただAntと違って、デフォルトのフォルダ構成などが決められているので、がりがり設定を書く必要ないところがいい。Convention over Configurat…

cracklib

MacPortsのcracklibだとヘッダファイルなどがはいらない ワードファイルは別途ダウンロードが必要。ダウンロード後creat-cracklib-dictコマンドで辞書を作る /usr/local/sbin/にcracklib-*等がインストールされる

form#serialize

http://www.imgsrc.co.jp/~kuriyama/prototype/prototype.js.htmlを眺めてて気がついたけど、form#serializeがちょっとおもしろい。 フィールド名とその値のリストをURLエンコードして返す。 例:'field1=value1&field2=value2&field3=value3' これは、昔id:G…

関数呼び出しの失敗

hmxの手伝いでPHPのデバッグ。なぜか関数呼び出しに失敗する。で、JITデバッガが起動する。セグメンテンションフォールトかな? より具体的には、特定の関数呼び出しを第二引数に持つ関数が失敗する。要するにこんな感じのコード。 f(10,something_wrong_func…

はてなグループキーワード

明日院試なので、今日の30分プログラムはお休みです。時間はあるけど、心にあまり余裕がないので。そのかわり、前から気になっていたはてなグループを試してみる。はてなダイアリーも設定すればはてなグループのキーワードに自動でリンクを貼れるようにでき…

それPra

id:mzp:20070717:ftp id:mzp:20070722:ftp で、FTPのリストを作る方法を書いていたんだけど、Praggerで実現したほうがいい気がしてきた。そもそも、やりたいのは、 FTPにログイン 更新されたファイルを調べる(ログ解析とかファイル一覧作成とか) そのデータ…

w3mでタブブラウズ

External Browserでscreen w3mを指定すると、タブブラウザっぽく使える。

_(アンダーバー)

るびマ出張版より。_という変数名を使うと、関数型言語の人には分りやすくなりますよ、という話。たとえば、連想リストから検索するコードはこう書いてた。 array = [['foo','bar'],['hoge','hage']] p array.find{|a,b| # bは使わない a == 'hoge' } でも、…

ユーザ切り替え

サブアカウントへの切り替え方。 <form action="/<自分のユーザ名>/config/account.switch" method="POST"> <input value="<your rkm>" name="rkm" type="hidden" /> <input value="<切り替え先>" name="name" type="hidden" /> <input value="切替" class="submit" type="submit" /> </form>