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

インフルエンザでダウン中

なぜか腰が痛い…

libarchive: *_compression_programにオプションを渡すパッチ

archive_read_support_compression_program("lzop -dc")とかやるためのパッチ。 そのうち投げるかも。 --- filter_fork.c.orig 2008-12-28 15:08:31.000000000 -0500 +++ filter_fork.c 2009-01-30 00:36:13.000000000 -0500 @@ -50,14 +50,22 @@ __FBSDID("…

パイプでcat

#include <stdio.h> #include <errno.h> #include <unistd.h> #define MIN(m, n) ((m) < (n) ? (m) : (n)) #define BUFFER_SIZE 512 static int cat(const char *bufin, int inlen, char *bufout, int outlen) { int pfd_stdin[2]; int pfd_stdout[2]; pid_t pid; size_t len = 0; if (pi</unistd.h></errno.h></stdio.h>…

IgRemote

http://xrowcc.blog.shinobi.jp/Entry/160/ デスクトップ機操作用にインスコ。 ますますコタツから出なくなる…

lsを実行して出力を得る

#include <stdio.h> #include <errno.h> #include <unistd.h> #define BUFFER_SIZE 512 static void ls() { int pfd[2]; pid_t pid; if (pipe(pfd) == -1) { perror("pipe"); exit(1); } pid = fork(); if (pid > 0) { // 親プロセス char buf[BUFFER_SIZE + 1]; int n, status; // 書き</unistd.h></errno.h></stdio.h>…

シェルスクリプトで標準入力を読み込む

要は「echo hoge | ./fuga.sh」とかやりたい…と。 #!/bin/sh DATA=`cat` echo "$DATA" ダブルクォートでで囲っているのは改行対策。 やり方あってるかなぁ… だめだー。変数にバイナリを格納できない…

echoに改行をつけない

echo -n foobarzoo

libarchive: archive_read_support_compression_programがうまく動かない

どうもオプションを渡せないみたいで、"lzop -dc"とかがうまく渡せない… この関数を使ってる人もあんまりいないみたいだし。

link:C99をサポートしないVC++2005

http://www.ttoyota.com/msvcee/msvcee27.php そんなに需要ないかなー? それとも、CだとVC6ばっか使われてるとか…

goosh.org

WEB

http://goosh.org/

AoR2008の副賞をもらいました

おせち、雑煮、初詣

Railsがサーバとして起動しているか判定する

ごく希に、RakeタスクとしてのRailsの処理と、サーバとしてのRailsの処理を分けたいことがあって、以下のように判定している。 if defined?(Mongrel) or defined?(WEBrick) # サーバとしての処理 else # スクリプトとしての処理 end ひじょーに間抜けなコー…

一年戦争

http://ja.wikipedia.org/wiki/%E3%82%B5%E3%82%A4%E3%83%89 Wikipedia読んだら結構大規模な戦争だった > 一年戦争あと「ジオンに兵なし」を初めて読んだけど、ギレンの演説よりこっちの方がいいなー。

簡単なキャッシュ(gcc/andlinux)

C++

typenameの罠に見事に嵌った。VCって意外と賢かったのか… #include <iostream> #include <string> #include <sstream> #include <map> #include <boost/asio.hpp> #include <boost/timer.hpp> using namespace std; template <class I, class O> class Cache { map<I, O> m_; O (*f_)(I x); public: Cache(O (*f)(I x)): f_(f) {} O operator ()(…</i,></class></boost/timer.hpp></boost/asio.hpp></map></sstream></string></iostream>

簡単なキャッシュ

C++

#include <iostream> #include <string> #include <sstream> #include <map> #ifdef _WIN32 #define _WIN32_WINNT 0x0501 #endif #include <boost/asio.hpp> #include <boost/timer.hpp> using namespace std; template <class I, class O> class Cache { map<I, O> m_; O (*f_)(I x); public: Cache(O (*f)(I x)): f_(f) {…</i,></class></boost/timer.hpp></boost/asio.hpp></map></sstream></string></iostream>

30分経ってもboostのビルドが終わらない…

C++

もう寝るか…

関数の返値をパラメータとするテンプレート関数

C++

gcc 3.4だと出来ないと思ってたら出来た。 #include <iostream> #include <string> #include <boost/lexical_cast.hpp> using namespace std; using namespace boost; template <class I, class O> class Foo { O (*f_)(I x); public: Foo(O (*f)(I x)): f_(f) {} O operator ()(I x) { return f_(x); } }; int xstr2int(s</class></boost/lexical_cast.hpp></string></iostream>…

Ruby/DLでSEGV

落ちた。少なくともmswin32版はハンドルしてない…と。 __declspec(dllexport) void foo(); void foo() { *(char *)0 = 1; } require 'dl/import' module Foo extend DL::Importable dlload 'foo.dll' extern "void foo()" end Foo.foo ~$ ruby foo.rb (eval)…

Libarchive/Ruby 0.1.0

http://libarchive.rubyforge.org/ リリースしました。

RubiniusのFFI

http://blog.segment7.net/articles/2008/01/15/rubinius-foreign-function-interface RubiniusのFFIがかっこいいなぁと思ってる。 attach_function "gai_strerror", :gai_strerror, [:int], :string attach_function "getaddrinfo", :getaddrinfo, [:string…

LibArchive/Ruby: だいたいできた

http://storehouse.sakura.ne.jp/viewvc/viewvc.cgi/libarchive/?root=svn あとはメモリリークのチェックして、RubyForgeに申請して…etc。 追記 CodeReposに移しました。 http://coderepos.org/share/browser/lang/ruby/libarchive/trunk/ http://svn.codere…

LibArchive/Ruby: ファイルを追加するところまでできた

http://storehouse.sakura.ne.jp/viewvc/viewvc.cgi/libarchive/?root=svn もう少しシンプルなAPIを追加するべきかなぁ? require 'libarchive' include Archive Writer.open_filename("C:\\foo.tar.gz", COMPRESSION_GZIP, FORMAT_TAR) do |ar| ar.new_entr…

仮想画面マネージャ

http://members3.jcom.home.ne.jp/dodome-juu/vsm/index.html 「いつか理想の仮想デスクトップ環境に出会えるはず!」と信じて、今日も今日とて仮想デスクトップを試用中。 普通の仮想デスクトップ→exposeときて、今回はスクロールするタイプを物色。 360des…

Libarchive 2.6

C

http://people.freebsd.org/~kientzle/libarchive/ いいタイミングでリリースされてた。

Zip/Ruby: バグ報告が一件あった

http://rubyforge.org/tracker/index.php?func=detail&aid=22813&group_id=6124&atid=23732 ありがたいことです。 にしても、トラッカーってモニターできないのかなぁ? ひょっとしてスパムに紛れた?

link: Ruby 1.9.1 RC1 公開とリリース前のプレビューのお願い

http://www.ruby-lang.org/ja/news/2008/12/31/ruby-1-9-1-rc1-released/ 今年はなるべく1.9.1を使うようにしよう。 gemのmsvc用のバイナリって2系統配布できるのかな?