2013-01-01から1年間の記事一覧

defcustomで定義された変数はsetqではなくcustom-set-variablesで設定すべき理由

Emacsにおけるこの辺の事情ってほんとうにややこしくて,ドキュメントでもパッケージによってsetq使ってたり,setq-default使ってたり,custom-set-variables使ってたりで統一されていないので混乱のもとになっている気がする. "defcustom setq custom-set-…

Google Summer of CodeのPayment cardと格闘したメモ

GSoCの賞金はCitibank発行のVISAプリペイドで支払われるが,US在住でない学生にとっては結構めんどくさくて苦労した. メーリングリストで,US以外の生徒から結構Tipsが投稿されてるので,そっちも読むと良い. 以下日本人向けの,PIN設定とATM引き出し上限…

libtoolでshared libraryを作る際の拡張子を指定する

Wiresharkのプラグイン等は,OSX環境等でも'.so'にしてくれないと読み込んでくれないので,どうすれば拡張子を指定できるのか調べた. -shrext libtoolには-shrextというオプションが用意されているのでこれを使う方法.Makefile.am等で,LDFLAGSに書けば良…

Perlで10行テンプレートエンジン

コードジェネレータ書いてるときに生成するコード量が多いと,スクリプト中にコピペできる程度にミニミニなテンプレートエンジンが欲しいと思うことがあるので書いた.エスケープとかは必要ないので,ベリーシンプルな置換とevalで書ける. my $Token = join…

Cで配列に格納した命令を実行できる話

C

Cでは配列に命令を格納していくと,そのまま実行できるという話をチラ聞きしたので試してみた. Cではメモリに記録された内容が何物であるかというのは,当該領域を参照する変数の型によって決定されるので,次のようなことが可能です. int num = 10; float…

error: /usr/kerberos/include: No such file or directory

Gentooでlibvirtをコンパイルしようとしたら error: /usr/kerberos/include: No such file or directory と言われたので,なにかなーと思って見てみると,libsslとlibcryptoのpkg-configファイルが古いkerberosのパスを指していたので, sudo perl -i'' -npe…

Wiresharkをソースから入れるとヘッダファイルをインストールしてくれなくて困る

Wiresharkのtarball落としてきてmake installしてもヘッダファイルがインストールされない. Makefile.amを読んだ感じ,ヘッダファイルはインストールしないようにしてるっぽく,手動でやるしかないのかーと思っていると,emergeしたほうのWiresharkについて…

Hook after emerge

emergeした後にhookの設定ができたら便利だなーと思っていたら実はできました. Ref: https://forums-lb.gentoo.org/viewtopic-t-772340-start-0.html /etc/portage/bashrcにpost_pkg_postinstというfunctionを定義することで,各パッケージのインストール後…

ZNCでよく使うコマンド

ZNC

ZNCのコマンド ZNCは,IRCクライアントからコマンドで操作できます. /msg *status <command> のように,*statusに対してprivmsgを送ることで,ZNCにコマンドとして解釈してもらえます.コマンドの実行結果やZNCからのメッセージは*statusというウィンドウに表示され</command>…

PerlでCamelize/DeCamelize

sub camelize { (my $s = shift) =~ s/(?:^|_)(.)/\U$1/g; $s; } sub decamelize { my $s = shift; $s =~ s/(_)?((?:[A-Z](?![^A-Z]))+|[A-Z])/(pos($s)==0&&!$1?'':'_').lc($2)/ge; $s; } 普通にString::CamelCaseとか使えばいい話なんですが,スクリプト中…

Shellにおける二重括弧

Arithmetic expansionというらしい.'$(())'で囲った中身を数式として評価してくれる. $ echo $(( 1 + 1 )) 2 べき乗やビット演算も可.今まで数式をshell script中に書きたいときはexpr(1)を使ってたんですが,こちらの方が見やすくて便利ですね. $ echo …

Build ebuild package manually

Which fails to emerge. Applying own patch. With reference: https://www.gentoo.org/doc/en/handbook/2004.2/handbook-x86.xml?part=3&chap=6 ebuild(1) always requires .ebuild file as first argument, and action as second argument. Here's an exam…

Emacs Lispで部分適用

apply-partiallyを使う. (apply-partially FUN &rest ARGS) Return a function that is a partial application of FUN to ARGS. ARGS is a list of the first N arguments to pass to FUN. The result is a new function which does the same as FUN, excep…

firefoxのAdobeReaderがC:\nppdf32Log\debuglog.txtというファイル名を作る問題

Portageから入れたfirefoxのAdobeReaderプラグインが,firefoxを起動した時のカレントディレクトリに"C:\\nppdf32Log\\debuglog.txt"というファイルを作る問題について. この現象だいぶ前からある気がするんですが,前に対処したのがFirefoxのアップデート…