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 )…
ポータビリティのあるMakefileを生成するconfigure(shell script)を生成する ツール郡(説明長)。とてもじゃないけど使いやすいとは思えない。 ディレクトリ構造だけでも何とかならないかな。 autogen.sh というシェルスクリプトを使うと雛型生成 => コマンド…
WWW::Mechanizeは、LWP::UserAgentを継承しているので、 LWP::UserAgentと同じ方法でBasic or Digest認証が出来ます。リクエスト発生からの処理の流れは、 LWP::UserAgent::get LWP::UserAgent::request LWP::Authen::[Basic|Digest]::authenticate LWP::Use…
#define debug_print(...) \ printf("debug: " __VA_ARGS__)
"attrs" methods is now "attr_" attribute which contains attributes. the sample x extension module code here does not work with 0.1.0.
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は、LWP::UserAgent + HTML::TokeParser 相当の働きをしてくれるモジュール。(LWP::UserAgentのsubclass) 簡易ブラウザのシミュレートっぽいことが出来るので、WebTestUnit代わりに使える。WWW::Mechanizeのインストールでは、 make testの為…
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の仕様。非公式な文書だけど。公式な仕様書は、実際にプログラムを実装するに当たっては少しわかり難くく、不…
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は厳密には違うらしいけど、似たような動作をするものという事で。 ここでの利点は、リストの生成を遅らせる事で一時的なメモリの使用量を抑える…
packがArrayのメソッドだから。 bitfield.pack("B*")みたいなの期待したけど、無理だった。 [bitfield.join].pack("B*") bitfield.join.to_a.pack("B*") そういえば、packやprintfの書式も独自のルールもっているよな。packの拡張って出来るかな。TODO
前にRubyで手続で書いたけど、改良。 foo = "...適当に長い文字列..." foo.scan(/.{1,#{n}}/) 例を上げると。 foo = "foobarhoge" p foo.scan(/.{1,3}/) ["foo","bar","hog","e"] ところで、これは正規表現にマッチしたものを リストで返しているのだと思う…
QComboBoxの件はバグだったらしく、cvsではfixされている。 cvsで最新版(HEAD)をダウンロードした。 QComboBoxは表示されたが、Itemが表示ない。 開発者の人にリポートしようとメール書いてたら、 いつの間にか、最新のCVS版では直ってる。(THX) #/usr/bin/e…
コンパイルするには、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…
#include の代わりに #import #import は、Cのヘッダでは必須のマクロ。 #ifndef __foo_h ... #endif // __foo_h の代用になるらしい。なんてICQで友達が話してた。 折角、GCCをフルインストールしたので試してみる。 #import int main(int argc, char **arg…
古いpod2htmlでは、=begin html 内のHTMLもエスケープしてしまう。 5.8.2 の pod2html を使うと問題なし。 でも、preタグ内で # 前後の改行が無視される。
インストールした。 $ mcs HelloWorld.cs で、C#のソースをコンパイル。 $ mono HelloWorld.exe で実行。 DLLを作るには、コンパイルオプションに -target:library を設定。 ライブラリのパスは、-lib:PATH1,PATH2 で追加設定し、 アセンブリ・リファレンス…
kjscmd --exec でGUIのコンソールを起動できた。 kjscmd --console はエラー。kjscmd --exec --console は OK。 kjscmd --exec --nogui は、反応なし。
KDEのメーリングリストで、 qtを-qt-git付きでりビルドしてもkonquerorでGIFが表示されないとの投稿を読む。 まだqtのりビルドしてないけど、同じ症状かもしれない。
ImageMagick-6.0.6 Aspell fontconfig wv2 libgsf configure / compile libgsf は *-configファイルがなかったので、*/lib/pkgconfig/*.pcファイルを /usr/lib/pkgconfigにコピー。 fontconfigも/usr/local/bin/fontconfig-configシェルスクリプトを削除し、…
KMailでメーリングリストのフィルタを登録。
正確には、GUIを生成する命令がコンソール上で機能しないらしい。 スタートメニューからは起動できる。 コンソールに出力するスクリプトは実行できた。 *.uiファイルを読み込んでGUIを表示する事は出来る。 メーリングリストなどを調べたが、同様の報告は、 …
Kommander Editor ... QSA - Qt Script for Application ... コンパイル失敗した
まずは、KOrganizerを起動し、オブジェクトの名前を調べる。 kdcopで korganizerのツリーを調べる。 # Journal のパネルを表示 dcop korganizer "KOrganizer MainWindow" activateAction view_journal # 今日の日付へ dcop korganizer "KOrganizer MainWindo…
コンソール上で使えるコマンドを適当にchoice。dcop の object の部分は、アプリケーション名-プロセスID KMAIL=`dcopstart kmail`の様にして値を得る。 もしくは、kdcopやdcopコマンドで確認。 (dcopの引数を省略するとリストを表示する。) # メール送信 dc…
そういえば、 ParrotとJakoのHelloWorldプログラムを載せていなかった。Parrot print "Hello, world\n" end こっちはJako. use sys; sys::print("Hello, world\n"); .... HelloWorldって処理系が動くがどうか確かめる為のモノで、 言語の概観を紹介するのに…
久しぶりに、はまったのでメモ。 size_t i; for (i = 10; i >= 0; --i) { do_something(); } i > 0 だと正常に動作するけど、 i >= 0 だと無限ループ。 size_t が unsigned な処理系は注意。