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

LZO/Ruby

http://storehouse.sakura.ne.jp/viewvc/viewvc.cgi/lzoruby/?root=svn 一応、完成。RubyForgeに申請済み。他言語のバインディングに習って、元のサイズをヘッダに格納するようにした。 規格が文書化されてないような気がするけど、公式のバインディングだし…

検索結果を縦に表示

全然知らなかった… mysql> select * from user where host = '%' and user = 'root' \G *************************** 1. row *************************** Host: % User: root Password: Select_priv: Y ・ ・ ・ (以下省略)

LZF/Rubyを作ろう…

http://www.goof.com/pcg/marc/liblzf.html とりあえず…。 (mini)LZO/Rubyはどうすっかな、RubyForgeに登録すっかな。

LZO: decompressするときのバッファのサイズ

PerlとかLuaのバインディングを読んでみると、圧縮データの先頭に元のサイズがあるっぽい。 あとで調べてみよう。

TextEffect

http://storehouse.sakura.ne.jp/viewvc/viewvc.cgi/text-effect/?root=svnTextEffecttというライブラリを作りました。 時間があればRubyForgeに登録するかも。 これはなに? ANSIエスケープシーケンスを使って、テキストに色付けするライブラリです。 ANSI…

LZO/Ruby

http://lzoruby.rubyforge.org/ http://www.oberhumer.com/opensource/lzo/ http://storehouse.sakura.ne.jp/viewvc/viewvc.cgi/lzoruby/?root=svn 「mixi Engineers’ Blog » 圧縮データベースを使おう」を読んで、面白そうだったので作ってみた。 以前はラ…

LZO/Ruby: 圧縮してみる

きちんと圧縮できてるか不安だったので、ちょっと動作確認。 require 'lzoruby' open('index.html', 'rb') do |fin| open('index.html.lzo', 'wb') do |fout| fout << LZO.compress(fin.read) end end open('index.html.lzo', 'rb') do |fin| open('index.ht…

VC: dllを作る・使う

mydll.c __declspec(dllexport) void foo(); #include <stdio.h> void foo() { puts("foo()"); } 暗黙的リンク インポートライブラリ「mydll.lib」*1をリンクする。 関数の場合「__declspec(dllimport)」は必須でないみたい。 __declspec(dllimport) void foo(); int </stdio.h>…

Cygwin: dllを作る・使う

http://www.nslabs.jp/cygwin-dll.rhtml foo.c 「__declspec(dllexport)」は不要…と。 #include <stdio.h> void foo() { puts("foo()"); } 「-fPIC」は不要…と。 ~/work$ gcc -c foo.c ~/work$ gcc -shared foo.o -o foo.dll 暗黙的リンク void foo(); int main() { f</stdio.h>…

link: Linux の共有ライブラリを作るとき PIC でコンパイルするのはなぜか

http://0xcc.net/blog/archives/000107.html ふむふむ。

AES Code

http://fp.gladman.plus.com/AES/index.htm サンプル少ないなー。 「uses C source code only」だと、次のソースコードでビルドできた。(VCの場合) aes.h aes_mode.c aes_via_ace.h aescrypt.c aeskey.c aesopt.h aestab.c aestab.h brg_endian.h brg_type…

AES/Ruby

http://storehouse.sakura.ne.jp/viewvc/viewvc.cgi/aesruby/?root=svn ECBとCBCを実装したところで気力が尽きた。 誰か残りを実装してください。*1 require 'aesruby' enc = AES.ecb_encrypt("123456", "dd") p enc puts AES.ecb_decrypt("123456", enc); e…

共有ライブラリを作る

http://www.linux.or.jp/JF/JFdocs/Program-Library-HOWTO/shared-libraries.html http://www.hi-ho.ne.jp/babaq/linux/libtips.html foo.c #include <stdio.h> void foo() { puts("foo()"); } foo.h void foo(); ビルド ~/work$ gcc -fPIC -g -c foo.c ~/work$ gcc -</stdio.h>…

ZIP AES

一応、メモだけ。 AES Encryption Information: Encryption Specification AE-1 and AE-2 AES and Combined Encryption/Authentication Modes AES 暗号化 ZIP 書庫 の評価

階乗

Cで、結果が大きな数値になる階乗を計算する例がいくつかあった。 階乗 n! の計算 factorial 階乗の計算を行う(C言語) しばらくにらめっこして、自分なりに書き直してみる。 #include <stdio.h> #include <stdlib.h> #define SUPREMUM 10000 void multi_bignum(int *bignum, int</stdlib.h></stdio.h>…

憂鬱な勇者.c

http://d.hatena.ne.jp/hrkt0115311/20080527/1211891558 今ごろ…。 #include <stdio.h> #include <stdlib.h> #include <time.h> #ifdef _WIN32 #include <windows.h> #define sleep(s) Sleep((s) * 1000) #define snprintf(s, n, f, ...) sprintf_s((s), (n), (f), __VA_ARGS__) #else #include <unistd.h> #</unistd.h></windows.h></time.h></stdlib.h></stdio.h>…

気になること

気になるのであとで調べる。 StringValurPtr()をRSTRING_PTR()に置き換えたほうがいいかも 型チェックはしてるんだし ベンチマークを取ってみたい RSTRING()->lenはRSTRING_LEN()にした方がいいか #ifndef RSTRING_LENを忘れないこと ActiveScriptRuby 1.8.7…

ColorDiff

http://colordiff.sourceforge.net/ メモメモ。

unified形式のdiffに色付けする

Rubyのワンライナーで書いてみた。 $_.gsub!(/^[-+@]/) {|m| "\x1b[1;%sm#{m}" % {"-" => 31, "+" => 34, "@" => 35 }[m] } こんな感じ。 svn diff -c147 svn+ssh://winebarrel@rubyforge.org/var/svn/zipruby/ | ruby -p -e '$_.gsub!(/^[-+@]/) {|m| "\x1b…

uniq -c

uniqって件数を出力できるんだ。知らなかった。 ~$ uniq -c <<EOS > foo > foo > bar > bar > bar > EOS 2 foo 3 bar</eos>

Modern C++ Design

あとで買う。Modern C++ Design―ジェネリック・プログラミングおよびデザイン・パターンを利用するための究極のテンプレート活用術 (C++ In‐Depth Series)作者: アンドレイアレキサンドレスク,Andrei Alexandrescu,村上雅章出版社/メーカー: ピアソンエデュ…

今日の戦果

かげふみさんの1巻が売ってない。 3軒ほど回って、売っているのは2巻だけ。なーぜー… それはさておき。 作品集がこんなに面白い漫画家も珍しい気がする。 小路啓之の作品のテーマは一貫して「現実を見ろよ!いいこともあるよ!ま、いいことばかりじゃない…

getElementsByClassName

FirterがFirefox3で動いていなかったので調査。 「...getElementsByClassName('...').each(...」とかで落ちてた。 そういえばFirefox3でネイティブのgetElementsByClassNameが追加されたんだっけ…ということで、次のように修正。 「$A(...getElementsByClass…

asset id

javascriptタグとかにasset id*1がついていなかったので調査。 urlにプリフィックスがついているとrelative_url_rootを設定しても、ファイルの更新日時を取得できないらしい。*2 とりあえず以下のコードをenvironment.rbに追加。 ENV['RAILS_ASSET_ID'] = Ti…

opender

Cygwinでビルド。d_offとかがなかった。 #include <stdio.h> #include <sys/types.h> #include <dirent.h> #include <errno.h> int main() { DIR *dir; struct dirent *entry; if ((dir = opendir("/usr/bin")) == NULL) { perror("opendir"); exit(1); } entry = readdir(dir); while (entry) { print</errno.h></dirent.h></sys/types.h></stdio.h>…

opendir・readdir・closedirをエミュレートする

空のディレクトリの動作が違いそうな…。 #include <stdio.h> #include <errno.h> #include "dirent.h" int main() { DIR *dir; struct dirent *entry; if ((dir = opendir("/usr/local")) == NULL) { perror("opendir(3)"); exit(1); } entry = readdir(dir); while (entry) { </errno.h></stdio.h>…

glob.cのコントリビューター

libtarのglob.cは、元はOpenBSDのものらしい。 で、何となくヘッダのコメントを見ていたら「This code is derived from software contributed to Berkeley by Guido van Rossum」とか書いてあった。 へーへーへー。Wikipediaにもちゃんと載ってる。

glob

libtarのWindowsへの移植を始めたが、早速glob(3)でつまずいた。 libtarは自前でglobを用意しているけど、Windowsには移植しにくい感じ…。 RubyやGaucheは自前で実装しているみたい。 Windows用のglobってどっかにないかなぁ。

ThinkPad X61s

X40のHDD容量に限界を感じてきたので、衝動買い。安かったから、まいっか〜。 X40にはLinuxでも入れるかな。

最近の戦果

ブレーメンIIって文庫版ないかなぁ。