Exchangeable Image File Format

I had noticed PHP HAD the function after I made that library. I was careless to search it =/PHP print_r(read_exif_data($filename, "TAG_ALL")); Pike Stdio.File file = Stdio.File(filename); mapping exif = Standards.EXIF.get_propaties( file )…

Gnu autotools 他

ポータビリティのあるMakefileを生成するconfigure(shell script)を生成する ツール郡(説明長)。とてもじゃないけど使いやすいとは思えない。 ディレクトリ構造だけでも何とかならないかな。 autogen.sh というシェルスクリプトを使うと雛型生成 => コマンド…

[Perl] WWW::MechanizeでBasic/Digest認証で保護されたページを読む

WWW::Mechanizeは、LWP::UserAgentを継承しているので、 LWP::UserAgentと同じ方法でBasic or Digest認証が出来ます。リクエスト発生からの処理の流れは、 LWP::UserAgent::get LWP::UserAgent::request LWP::Authen::[Basic|Digest]::authenticate LWP::Use…

[C言語][Preprocess]

#define debug_print(...) \ printf("debug: " __VA_ARGS__)

Prothon - changes note 0.1.0 to 0.1.1

"attrs" methods is now "attr_" attribute which contains attributes. the sample x extension module code here does not work with 0.1.0.

[Prothon] C extension

Mini.c /* Minimum extension module */ #include "prothon/prothon_dll.h" MODULE_DECLARE(Mini); MODULE_START(Mini) { Mini_OBJ = NEW_OBJ(NULL); MODULE_SET_DOC(Mini, "Sample module"); MODULE_ADD_TO_BASE(Mini); } DEF(Mini, sayHello, NULL) { retu…

WWW::Mechanize

WWW::Mechanizeは、LWP::UserAgent + HTML::TokeParser 相当の働きをしてくれるモジュール。(LWP::UserAgentのsubclass) 簡易ブラウザのシミュレートっぽいことが出来るので、WebTestUnit代わりに使える。WWW::Mechanizeのインストールでは、 make testの為…

Mixiの新着メッセージをチェックするスクリプト

biffって言う新着メールのチェックをするプログラムのMixi版。 使い方は、以下の perl script をシェルで適当に sleep 入れてループで回す。 #!/usr/bin/env perl use strict; use warnings; use WWW::Mechanize; my ($count, $agent); my ($email, $passwor…

欠陥ピースをチェックする方法。

ファイルの "piece length"バイト分のSHA hash値と、メタ情報ファイル(.torrent)に含まれる metainfo["info"]["pieces"] の 20 bytesを比較するとチェックできるらしい。BEncodingのソースは以前載せたので、.torrentのデコードにはそれを利用して。 require…

開発者向けリンク集

http://bitconjurer.org/BitTorrent/ http://btfaq.com/ http://wiki.theory.org/index.php/BitTorrentFAQ BitTorrentSpecification がBitTorrentの仕様。非公式な文書だけど。公式な仕様書は、実際にプログラムを実装するに当たっては少しわかり難くく、不…

Lazy programming in Eager language

http://www.bagley.org/~doug/ocaml/Notes/lazy.shtml OCamlでの遅延評価。Lazy Stream。Lazy to do Lazy programing in Eager lang. Lazyモジュールは、Schemeのdelay/forceみたいなもの。

HaskellのHumorのリンク http://www.haskell.org/humor/The Evolution of a Haskell Programmer factorial関数をいろんな方法で宣言。僕はSenior Haskell programmerに該当した。 http://www.willamette.edu/~fruehr/haskell/evolution.html let fac n = fol…

遅延リスト

Haskell [0..10] ++ [20..30] Python import itertools ietrtools.chain(xrange(0,11), xrange(20,31)) xrangeは厳密には違うらしいけど、似たような動作をするものという事で。 ここでの利点は、リストの生成を遅らせる事で一時的なメモリの使用量を抑える…

Ruby ビットフィールドをpack

packがArrayのメソッドだから。 bitfield.pack("B*")みたいなの期待したけど、無理だった。 [bitfield.join].pack("B*") bitfield.join.to_a.pack("B*") そういえば、packやprintfの書式も独自のルールもっているよな。packの拡張って出来るかな。TODO

文字列を n バイト毎に分割

前にRubyで手続で書いたけど、改良。 foo = "...適当に長い文字列..." foo.scan(/.{1,#{n}}/) 例を上げると。 foo = "foobarhoge" p foo.scan(/.{1,3}/) ["foo","bar","hog","e"] ところで、これは正規表現にマッチしたものを リストで返しているのだと思う…

KJSEmbed

QComboBoxの件はバグだったらしく、cvsではfixされている。 cvsで最新版(HEAD)をダウンロードした。 QComboBoxは表示されたが、Itemが表示ない。 開発者の人にリポートしようとメール書いてたら、 いつの間にか、最新のCVS版では直ってる。(THX) #/usr/bin/e…

minimum KDE application

コンパイルするには、KDEとQTのincludeを含める。 lkdecore -lkdeui -lqt(-lqt-mt) をリンク。 #include #include int main(int argc, char **argv) { KApplication app(argc, argv, "Hello, world"); KLineEdit *entry = new KLineEdit; entry->setText("He…

Objective C

#include の代わりに #import #import は、Cのヘッダでは必須のマクロ。 #ifndef __foo_h ... #endif // __foo_h の代用になるらしい。なんてICQで友達が話してた。 折角、GCCをフルインストールしたので試してみる。 #import int main(int argc, char **arg…

POD2HTML

古いpod2htmlでは、=begin html 内のHTMLもエスケープしてしまう。 5.8.2 の pod2html を使うと問題なし。 でも、preタグ内で # 前後の改行が無視される。

Mono

インストールした。 $ mcs HelloWorld.cs で、C#のソースをコンパイル。 $ mono HelloWorld.exe で実行。 DLLを作るには、コンパイルオプションに -target:library を設定。 ライブラリのパスは、-lib:PATH1,PATH2 で追加設定し、 アセンブリ・リファレンス…

KJScmd

kjscmd --exec でGUIのコンソールを起動できた。 kjscmd --console はエラー。kjscmd --exec --console は OK。 kjscmd --exec --nogui は、反応なし。

Mailing list

KDEのメーリングリストで、 qtを-qt-git付きでりビルドしてもkonquerorでGIFが表示されないとの投稿を読む。 まだqtのりビルドしてないけど、同じ症状かもしれない。

KOffice の依存ライブラリをインストール(予定)

ImageMagick-6.0.6 Aspell fontconfig wv2 libgsf configure / compile libgsf は *-configファイルがなかったので、*/lib/pkgconfig/*.pcファイルを /usr/lib/pkgconfigにコピー。 fontconfigも/usr/local/bin/fontconfig-configシェルスクリプトを削除し、…

KDE関連のメーリングリストに参加

KMailでメーリングリストのフィルタを登録。

KJSCMDがコンソールで起動しない?

正確には、GUIを生成する命令がコンソール上で機能しないらしい。 スタートメニューからは起動できる。 コンソールに出力するスクリプトは実行できた。 *.uiファイルを読み込んでGUIを表示する事は出来る。 メーリングリストなどを調べたが、同様の報告は、 …

TODO

Kommander Editor ... QSA - Qt Script for Application ... コンパイル失敗した

KOrganizerのJurnal と Hatena diary の同期を取る。

まずは、KOrganizerを起動し、オブジェクトの名前を調べる。 kdcopで korganizerのツリーを調べる。 # Journal のパネルを表示 dcop korganizer "KOrganizer MainWindow" activateAction view_journal # 今日の日付へ dcop korganizer "KOrganizer MainWindo…

Desktop COmmunication Protocol

コンソール上で使えるコマンドを適当にchoice。dcop の object の部分は、アプリケーション名-プロセスID KMAIL=`dcopstart kmail`の様にして値を得る。 もしくは、kdcopやdcopコマンドで確認。 (dcopの引数を省略するとリストを表示する。) # メール送信 dc…

and [Jako]

そういえば、 ParrotとJakoのHelloWorldプログラムを載せていなかった。Parrot print "Hello, world\n" end こっちはJako. use sys; sys::print("Hello, world\n"); .... HelloWorldって処理系が動くがどうか確かめる為のモノで、 言語の概観を紹介するのに…

infinity loop

久しぶりに、はまったのでメモ。 size_t i; for (i = 10; i >= 0; --i) { do_something(); } i > 0 だと正常に動作するけど、 i >= 0 だと無限ループ。 size_t が unsigned な処理系は注意。