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

C99で疑似デフォルト引数

可変長引数マクロと可変長引数関数を組みあわせて引数の最後の1つにデフォルト値を与えることができる。 qnighy's gist: 189476 — Gist //This source code is for C99 //Pseudo default-argument feature for C99 #include <stdio.h> #define func(...) func_impl(__</stdio.h>…

alias :q="exit"

Vim

LinuxでCanonのMP810からスキャンした画像を修正するGIMPプラグイン

CanonのMP810のスキャナは何故か公式のソフトでスキャンできないのでSANE経由でスキャンするんだけど、スキャンした画像がRGBチャンネルごとになんかズレてでてくる。なのでそれを修正するプラグイン。これを~/gimp-2.6/plug-insに突っこんで実行属性つけて…

ファイルのインデント関連を判定するVimScript

Vim

などを作ってみた。tabstopは8固定、softtabstop==shiftwidthは2,4,8のどれか、あとexpandtabを判定する仕様。はじめてのVimScriptなので緊張します。 qnighy's gist: 181353 — Gist if exists("loaded_autots") finish endif function! AutoTS() setlocal t…

4文字タイトルを判定する正規表現

qnighy's gist: 178354 — Gist #!/usr/bin/ruby -Ku # -*- coding: utf-8 -*- r = /\A(([あいうえおか-もやゆよら-ろわ-んアイウエオカ-モヤユヨラ-ロワ-ヴ]|う゛)[ぁぃぅぇぉゃゅょゎァィゥェォャュョヮ]?){2}[×☆]?(([あいうえおか-もやゆよら-ろわ-んアイ…

最近発明したUNIXコマンドライン

$ yes `sl`なにがおこるか予想してみよう。実行にはslが必要です。

std::vector::operator[]に範囲チェックを追加するヘッダ

STLのstd::vectorの配列アクセスはat()とoperator[]があって、at()でないと範囲チェックをしないんだけど、at()とかコードが気持ち悪くなるので使いたくない。あと僕にはわからないが速度の問題が気になる人ももしかしたらいるかもしれない。デバッグの必要…

書けるようになりたいアルゴリズム

Linear Programming (Simplex Method) Maximum Flow Problem (Ford–Fulkerson algorithm) Arbitrary precision (multiplying with FFT) Random (xorshift method)

SuperCon2009

ごぶさたしてます。 ブログにまだ書いてなかったのですが、SuperCon2009優勝しました。正直、potassioが優勝だと思っていたので意外でした。potassioも予想外の結果(精度も時間も)らしく、なぜそうなったのか今でもわからないらしいです。あとH5N1が精度では…

doubleの配列をバケットソートする

Array.sortよりも少しだけだけど高速に動作したりした!やった! ※体感には個人差環境差がありますIEEE754の仕様により、double値をそのままlong値にキャストすると、正負それぞれが正しい順序を保つ、という性質を利用しています。また、バケットソートとい…

TOMOYO LinuxのLSM版をDebian(sid)で動かしてみる

Debian(sid)のカーネルが気づいたら2.6.30とかになってなのでやってみた。 カーネルを再構築 8.6. Compiling a New Kernelなどを参考に。2.6.30になってTOMOYO Linuxがマージされたけれども、Debianの標準オプションでは無効化されているので、有効化してコ…

よくわかる現代魔法1話の姉原美鎖の使ったプログラムソース

一部勝手補完して作ってみた。このソースの出典だけど、u8とかs16とかの型名から、Linuxカーネルかと思ったけどカーネルにC++使わないので関係なくて、他にああいう型名が既定で定義されているのはGBA/NDSプログラミングっぽいので、そっちまわりのサンプル…

qnighyというハンドルネームの由来

id:quolcがハンドルネームを変更したのに触発されて、かねてからユニークなHNのほうがいいなあと思っていたので、Googleで一件も引っ掛らないようなものを探していたところ、qnightをtypoしてqnighyが検索結果0件になったため、読みも考えずにqnighyにしまし…

JavaでRubyのpもどきを実装してみた

スーパーリフレクティングターイム qnighy's gist: 145639 — Gist 以下のようにつかう。 import java.util.HashMap; import static org.acikelabo.RubyInspect.p; public class Test { public static void main(String[] args) { HashMap<String, Integer> map = new HashMap<String, Integer>(</string,></string,>…

久し振りにスパムコメント来た

死ねBot。

生存報告

SuperCon予選通過しました。

マジコン

Javaアプリが動かせるJVMマジコンみたいのを作れば、違法コピーはできないけどアプリ自作できてウハウハだと思います。まあ任天堂からすればそんなものの存在は邪魔なのかもしれないけど。

帰ってきた。

長野いってきた。

debian-timelineちょっと面白い

$ sudo aptitude install debian-timelineしてから、ブラウザで/usr/share/debian-timeline/index.html を開くと…Ajax使っててぐりぐりできるので楽しい。

明日から修学旅行

留守します。

ぐりぐり描けるSTG「Princess Drawing!」

コミケでみてすごい面白いなーと思ったので応援してます。Webサイトができたようです。404 Not Foundお疲れさまです。

数学ガールの最新刊がアナウンスされたようです

[結] 2009年5月 - 結城浩の日記やばい、ゲーデルだ。。。ゲーデルエッシャーバッハ読み直すか…

せんとくんが主人公のアニメ

充電ちゃんの主人公は閃登くん。

「文字列の中身をランダムに入れ替えるというマイナーな関数」

…のようで、文字列の中身をランダムに入れ替えるというマイナーな関数に関するバグ報告に対しては、「この関数は… Debianがglibcの派生版「eglibc」を採用へ − @IT さがしてみた。 % pwd /home/aaaa/glibc-2.9/string % ls (略) % ack-grep "random" (略)み…

このブログのタイトルについて

えーとこのブログのタイトルの元ネタは、某有名SOS系ライトノベルのあとがきと、東方のクレジットです。まあ東方のほうは他の人がプレイしてるのを後ろから見てただけですが。某ライトノベルみたいにインパクトのあるよい題名を思いつけるようになりたいなー…

ぶくおふ!

この勢いならどんな4文字タイトルでも売れそうだぜ

おい!Lingrおわっちゃったのかよ!

LingrとRejawサービス終了のお知らせ:Kenn's Clairvoyance - CNET Japanすげー便利に使わせてもらってたのに。それにしても、すごい参考になる。説得力のある文章だなあ。あとなんかクローンつくりたくなってきた。

qsortを撃墜し(最悪ケースを与え)てみた。

glibcのqsortをターゲットに、クイックソートの最悪ケースO(n^2)を与えてみた。先日の記事の通り、glibcのqsortはマージソートだが、非常に大きいデータのときはクイックソートを利用するので、そのように仕向けてみた。実行した結果、約5億バイトの配列が確…

僕のつかってるFirefox拡張機能まとめ Rev.2

前回からそれなりに変化したので再まとめ。順位は前回と同じく、「もし無人島にFirefoxといくつかの拡張機能を持っていくなら、どれを持っていく?」方式。 1.ツリー型タブ Firefoxで縦置きタブをするために使用。普段から20個以上はタブを開くので、縦置き…

すごい人は何がすごいのか、の話

id:tatsu_pcに質問されたまま放っておいてしまってた。 ぜひとも聞きたいことがあって、それはいつも何を考えているのか、です。何も考えていないのかもしれませんし、この記事の内容に近似していても是非聞いてみたいものです。できれば、以下の方々に聞き…