関数が定義されているか判断する

特定のモジュールに関数が定義されているかはerlang:function_exported/3という関数で判断できる(正確にはエクスポートされているかどうか). だけどコレ, モジュールがロード済みじゃないと効果ないんだよねー. 今まで"それなら使えないじゃん!"とか思ってい…

PNGEncoderが標準で使えるっぽい

ってけっこう前から? それとも最初から?以前はBitmapDataをPNGにエンコードするためにas3corelib - Google Codeからas3corelibを落として, com.adobe.images.PNGEncoderをインポートして使っていた.でもmx.graphics.codec.PNGEncoderってのがあって, それでP…

シングルクォートとダブルクォート

PerlやRuby, JavaScriptなどでは文字列をシングルクォートで囲もうが, ダブルクォートで囲もうが, どちらも文字列リテラルには変わりないですよね. 当然変数展開などが行われる/行われない, などの差異はありますけども.んで, Erlangでも差がないと思ってい…

Mac OS XにErlyWebをインストール

ErlyWebはErlang用のWebフレームワーク. ちょいと使い心地を試してみたかったのでそのインストールメモ. Mac OS X Leopardにインストールしまうす.参考はKLabさんところ. Erlangのインストール なにはなくともErlangをインストール. Macportsで楽ちんだぜ. $…

心と脳をはっくはく(に)してあげる

最近MIND HACKSを買ったんですよー.Mind Hacks: Tips & Tricks for Using Your Brain作者: Tom Stafford,Matt Webb出版社/メーカー: O'Reilly Media発売日: 2004/12/02メディア: ペーパーバック クリック: 6回この商品を含むブログ (15件) を見るこういう話…

Synergyってのがすごいらしい

以前飲んでいたら, id:golden-eggsさんが"Synergyがすごいいい!"なんて言っていました(飲む前だったかなぁ?).google:synergy話を聞く限りでは複数のディスプレイでひとつの仮想ディスプレイを構築してしまおう, というモノらしい.んで今日読んだMacFanにちょ…

rascutでswfobject.jsが404になる

rascutはActionScript絡みのファイルの変更を検出して, 自動コンパイルをしちゃうもの. さらにCometでコンパイル完了をWebブラウザに通知して, 自動ロードまでしちゃうにくいやつです. id:secondlifeさん++だけどなんか画面が真っ白になるんですよね. Firebu…

ブロック

Perlのブロックってすごいよね. パッと見, 構造っぽいもん. でもevalとかdoとかってブロックが後に続いているだけなんだよね(微妙な認識かも)? @odd_numbers = grep { $_ % 2 } 1..100 となると, 言語自身にtry~catchのような例外の機構を備えていないPerlで…

タブキーを押したときにソフトタブに置き換える

.emacsファイルに以下のように書けばいいみたい. tab-width nのnにはお好みのタブ幅を. (setq-default tab-width 4 indent-tabs-mode nil) ただしコレだとタブ(\t)を入力するコトができなくなっちゃう. まぁどうしてもタブを入力したい! っていうケースもそ…

リストと配列

いまいちリストと配列を分ける意味がわからなかったんだけど, スカラーコンテキストが提供されたときに以下のような違いがあるんだね. $last_value = qw/a b c/; # "c" @values = qw/a b c/; $length = @values; # 3 なんかの役に立つのかなぁ, と思っていた…

自然言語としてのPerl

昨日からプログラミングPerlを読んでいるんだけど, いろいろと味わった気分. まだ1章の中盤だけど.まずコンテキストという概念に感動した. この場合はスカラーを求める(スカラーコンテキスト). またこの場合はリストを求める(リストコンテキスト). たとえ求…

childNodesを使わずに子要素を取得する方法

私的メモ. var options = document.getElementsByTagName('select')[0].options; var rows = document.getElementsByTagName('tbody')[0].rows; var cells = rows[0].cells; childNodesとかとあまり変わらないんだけど, 以下のようなケースでは違う. <select> <option value="hoge">fuga</option> </select> …

こんなコトできるんですね

var rows = document.getElementsByTagName('tbody')[0].rows; 知らんかった.

JSONをエンコード/デコードする

id:Voluntasさんのおかげでhttp:requestは使えるようになった!で, TwitterのAPIを介していろいろ情報を取ろうとしたワケなんですが, レスポンスの形式が大体XMLかJSON. Erlangに標準でXMLのライブラリxmerlがついているようだけど, なんだかイケていないと聞…

httpモジュールでHTTPリクエスト

のつもりだったが, エラーでちゃう. > http:request("http://twitter.com/statuses/show/842308856.xml"). ** exception exit: {noproc, {gen_server,call, [httpc_manager, {request, {request,undefined,<0.39.0>,0,http, {"twitter.com",80}, "/statuses/…

バイナリを数値に変換する

この日記でWAVEファイルのサイズだけ取り出してみた. だけどどう変換してもサイズがおかしいなぁー, ってなった.んで, 調べてみたら上位ビットから順番に格納されているワケじゃないのね. 下位ビットから順番に入っているとのコト. コレLittle Endian. 名前…

WAVEファイルを解析する

はじめに なんとなく音声の波形を取ってみたいと思った! とりあえずWAVEファイルから! 言語はなんでもいいけど, バイナリ扱うのが得意なErlangでやってみようと思う. WAVEファイルのフォーマット バイト数 内容 4 RIFF 4 以降のファイルサイズ(だから全体の…

プロセスを作るとき

コレとコレの違いがわからない. spawn(anymod, anyfunc, [X, Y]). spawn(fun() -> anymod:anyfunc(X, Y) end). プログラミングErlangではほとんど後者で書かれている(全部読んでいないけど).たしか前者が途中でモジュール入れ替えてもちゃんと対応するだった…

ハッシュの表記方法から閃いたくだらないコト

キーと値の間には","の代わりに"=>"が使える ハッシュを見やすくするため, キーと値の間の","の代わりに"=>"が使える. あくまで見やすくするためで実際はカンマと変わらないとのコト(後述するクォーテーション省略を除けば). my %a = ('x', 1, 'y', 2); my %…

ちゃんと平均値を求められていなかった

アホだなー 121ピクセルの色をすべて足して, 100で割っていたようだ. 65,575を超えた値になっていておかしな値になっていただけか……それにしても色の平均ってこうやって求めればいいのかな? もっと効率のいい求め方はないんだろうか.

Flickr APIでごちゃごちゃと

photos * 2みたいな Flickr API(REST)を利用してみたかったからRubyからやってみた. ホントはPerlでやりたかったのだけど, なんかCPANからインストールできなかったのでひとまずRubyで. 後で調べとくか.とりあえずRubyGemsにあるみたいだからそっから入れて…

Dateって比較演算できたんだ

知らなかった 便利便利ー. getTimeなんて呼ばなくてもいいんだね. new Date(2008, 6, 2) < new Date(2008, 6, 2); // false new Date(2008, 6, 2) < new Date(2008, 6, 2, 0, 0, 1); // true