quicklisp on windows上の処理系(clozureCL&sbcl)でちゃんと動かないときのパッチ

versionは2010101600で当ててます。原因はql:*quicklisp-home*がドライブレターが入ってないので自分で正しいパスをセットしてやれば動きます。 自分は面倒だったのでパッチ用意しました。 --- quicklisp.org/setup.lisp 2010-10-28 13:02:57.808556700 +090…

quicklisp on sbcl@ubuntu が動かないのでどうにかしてみた

ubuntuにquicklispをinstallして(ql:add-to-init-file)してsbclを再起動すると起動に失敗します。調べてみるとcommon-lisp-controllerとやらでロードする場所に #p"~/.clc/systems/" が指定してあり、これが引っかかるようです。cl-asdfでinstallされているa…

ミスってた

2009-09-28 - rayfillのプログラムネタ帳で書いた記事ですが一部コード間違ってた模様です。 (add-hook 'jde-mode-hook #'(local-set-key "\C-c\C-v\C-c" 'my-jde-compile)) を以下のように読み替えてください (add-hook 'jde-mode-hook #'(lambda () (local…

Finalizerの動作

こないだfinalizerでハマったので記録として残しときます。javaにはfinalizerと呼ばれる仕組みがあり、Object#finalize()をオーバーライドしたクラスのインスタンスはガベージコレクションされる際、finalize()メソッドが呼び出される、と言う四組です。こ…

jdeeのコンパイルウィンドウでのエラーメッセージが化ける

とまぁ、そうやって動くようにしたjdeeですがコンパイルエラー時のエラーメッセージが化けます。process-coding-system周りをいじってみてもダメでした。 ググってみると皆さんbean shellの表示localeをenにして逃げているようです。まぁ確かに簡単な方法な…

昨日のjdeeネタ

うーむ。見直してみるとなんかひどいな。 とりあえず何が言いたかったか、というとオリジナルのソースがいくつかバグってるので Microsoft OneDrive - Access files anywhere. Create docs with free Office Online.(パッチファイル) 当てれば動くようになる…

Meadow3でjdeeを使えるようにする

久しぶりに家の環境でjavaを使おうとMeadow3にjdeeをセットアップしようとするとちゃんと動かないご様子。 プアなマシンなのでeclipseを入れるのもなぁ、ということでエラーを追いかけて修正してみることにしました。入れたもの Meadow 3.02-r4261-3 apel 10…

requireのカスタムプロバイダ

lispにはrequireと言う関数があります。 モジュール名を指定することでそのモジュールをロードしてくれる、と言う関数です。ちなみにrequire関数がモジュール名と実際にロードするファイルの関連付けする方法は処理系依存とのこと。自分はsbclでやったので他…

行列演算

ちょいと3Dを勉強しなおしてるわけですが計算用の道具でよさげなのが手元にないのです。 maximaがいい感じなのですが検算用に使いづらい。一応ループや条件分岐などのロジックは書けるようなのですが、中途半端にlispっぽさを引きずってて馴染めそうに無いの…

initializer_listもどきをc++03で実装してみる

c++

c++0xにはinitializer_listというPOD構造体や配列の初期化に使うような記述、 int ar[] = { 1, 2, 3, 4, 5, 6 }; と言うような表記で初期化することができます。 ですが、同じく配列のようにつかうstd::vectorなどはそういう初期化が出来ません。 現在策定中…

slimeでminibufferでの引数リストをすべて表示させる

emacs + slimeでminibufferに引数リストが表示されるのだが、デフォルトでは1行分しか表示されないため、引数が多い関数を使う場合にリファレンスを見ることになる。 hyperspec にのってるやつなら C-c C-d hでブラウザが立ち上がるのでそれほど苦でもないの…

文字から文字コードを調べる

ちょうど昨日の逆です。 例はやっぱり全角スペース。 $ echo -n ' ' | od -t x1 0000000 e3 80 80 0000003 まぁこんな感じ。 これはlocaleがja_JP.utf-8なのでutf-8ででてます。別の文字コードや元のロケールが違う場合は途中にiconvなど挟んで変換してやれ…

LinuxというかPosix環境で文字コードに該当する文字を調べる方法

いままではrdpつかってwindowsのバイナリエディタを使ってたんですがふと思いついたのでメモ。別に大したことではないのだけど・・・例えば 0x81 0x40のシーケンス(SJISでの全角スペース)とかを見たい場合 $ echo -e "\x81\x40" | lv -Is 別にページャはlvで…

functor版tolower

c++

#include <locale> #include <iostream> #include <string> #include <functional> #include <algorithm> int main() { std::locale loc("ja_JP.UTF-8"); const std::ctype<char>& cty = std::use_facet<std::ctype<char> >(loc); std::string str = "HELLO WORLD."; std::cout << str << std::endl; std::transform(str.be…</std::ctype<char></char></algorithm></functional></string></iostream></locale>

tolower

c++

#include <locale> #include <iostream> #include <string> int main() { std::locale loc("ja_JP.UTF-8"); const std::ctype<char>& cty = std::use_facet<std::ctype<char> >(loc); std::string str = "HELLO WORLD."; std::cout << str << std::endl; for (std::string::iterator itor = str.begin(); itor </std::ctype<char></char></string></iostream></locale>…

gnomeのショートカットキー変更

ubuntuでpidgin使ってるんですが、これのアクセラレータにCtrl+Fってのが設定してあるのがありまして、emacs使いの自分にとっては誠にイラつきの元になってました。~/.gnome2 以下だかにそれっぽいファイルがあったんで昔はおっかなびっくりそれを直接いじっ…

さらに続き

パッケージ作成につかったディレクトリ探したらbuild後のはstripされてないバイナリで、packaging時にどうもstripしてるみたいだった。 ほんとはoptionとかで回避するべきなんだろうけど面倒だったのでstrip前のバイナリをそのままsudo cpで上書きして済ませ…

続き

出来上がったバイナリをgdbに食わせたらソースを表示しない・・・ fileコマンドで見てみたらシンボルがstripされてる様子。どこで飛ばされたんだ・・・

ソースパッケージのビルドオプション

debian系ディストリでは $ apt-get -b source package-name でソースとパッチ落っことしてきてパッチ当ててビルドしてパッケージ作成までやってくれますが、デフォルトだとCFLAGSが-g -O2です。デバッガで追いかけるのにoptimize outされてると嫌なのでCFLAG…

eq, eql, equal, equalp でハマる。

lispの比較関数でハマりました。 どういうのかって言うとstreamから文字読み出していって文字列にしてハッシュに叩き込む、というやつです。ちょうどそれ書いてる数時間前にclsqlでテストデータ投入するコード組んでて最初、すごく遅かった(18件/秒くらい)ん…

RSA BSAFE

http://itpro.nikkeibp.co.jp/article/NEWS/20090421/328786/マジで!?

ICU charset detector

c++

ICU(International Components for Unicode)というライブラリのなかにcharset detectorという文字コード/文字種判定器がはいってます。使い方は下のような感じ #include <iostream> #include <fstream> #include <unicode/ucsdet.h> #include <string> int main(int argc, char** argv) { if (argc > 2) re</string></unicode/ucsdet.h></fstream></iostream>…

型配列

c++

複数の型をlistに束縛してnthで取り出してみる。 中身はlispちっくにconsセルでつなげてます。 #include <iostream> #include <typeinfo> struct nil_t {}; template <typename... args> struct cons_cell; template <typename first, typename... rest> struct cons_cell<first, rest...> { typedef first car; typedef cons_cell<rest...> cdr; }; template </rest...></first,></typename></typename...></typeinfo></iostream>

variadic template事始め

c++

C++0xでvariadic templateを使って可変数引数の数を数えるプログラムを組んでみる。 使ったのはg++ Ubuntu 4.3.2-1ubuntu12 オプションは g++ -g -Wall -std=c++0x -o variadic_templ variadic_templ.cpp #include <iostream> #include <typeinfo> template <typename... arg> struct length; temp</typename...></typeinfo></iostream>…

Y combinator

asin:4320122089 を読んでたら不動点演算子が出てきて組みたくなったのでJavaで久しぶりに書いてみた。 interface Command { public void exec(Command self, Object[] args); } public class YCombinatorTest { public static void main(String args[]) { i…

追記

あー、call 40が消えてるんじゃなくて下駄が4なのかな? だとするとcallがrelocation情報ときれいに合うな。 けどそうするとなんで_allocaがchkstkに?という疑問が・・・

オブジェクトファイルの奇妙なcall命令

http://lucille.atso-net.jp/blog/?p=603 これなんですが、たしか参照解決前の関数エントリのインデックスだったような・・・ ということで確認してみる。まずはコンパイルの準備。 ヘッダファイル。 extern "C" void test_c_func(); void test_cpp_func(); …

perlの多次元配列

perlの二次元配列の作り方がさっぱり - 誰か助けて orz - ir9Ex’s diaryの話題について反応。ぶっちゃけperlなんてもう5, 6年まともに触ってないのでぜんぜん覚えてないのでもっときれいなやり方とかあったら誰か教えてください。今回の件がcsvっぽいデータ…

実行時proxy

id:ir9Exさんのとこでメソッド呼び出し時にフックしたいというのがあったので書いてみる。まずはInterfaceのプロキシを作るクラスの用意。 import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy; …

HibernateのProxy

Hibernateのjarアーカイブ見た感じだとJavaasist使って実行時にサブクラス作ってるぽいっですね。 やっぱりバイトコード直接いじるのか・・・