prog

Xbyak2.06

で、前に作った@@などを安全にサポートしてくださいました。すごす。あと関係ないけど http://www.netagent.co.jp/reverse_engineering_2008.html こんな面白そうなことやってたとは。

ほぼランダムな2^d個のn-bit値を効率的に圧縮する手法

Googleの中の人の論文、Detecting Near-duplicate for Web Crawling(PDF)に書かれているハッシュ値の圧縮アルゴリズムを実装、テストしてみた。この論文ではsimhashと言うアルゴリズムによって生成される64bitのハッシュ値を使用して、かなり効率的に、内容…

Hacker's DelightのFig5-11にあるnlzは超はえぇ

64bit版。 inline int nlz(unsigned long long x) { x = x | (x >> 1); x = x | (x >> 2); x = x | (x >> 4); x = x | (x >> 8); x = x | (x >> 16); x = x | (x >> 32); return __builtin_popcountll(~x); }tbb::parallel_reduceで4億個に対して統計を取っ…

Purely Functional Data Structures

あ、ありのまま今起こったこtry 「minkeさんがranhaたんにお勧めしてるのを傍観してたらいつの間にか注文確認メールが届いていた」 な、なにを言ってるのかry関数型言語で(というかHaskellで)、効率が良く美しいデータ構造の書き方を知りたいなーと丁度…

メンバ関数ポインタを数値として扱ってみる(非推奨

メンバ関数ポインタはいろんな事情でvoid*に変換できないので、 boost::any fun = &Class::function; ... (hoge.*boost::any_cast<省略>(fun))(ry);みたいな事をしたいけどあんまり負荷が大きいことをしたくない。メンバ関数ポインタが8バイトの時は unsig…

ちょっと草植えときますね型言語 Grass

Grass the grass-planting programming language これはやばい!なんか知らんけどものすごく感動した。今まで知らなかったのが恥ずかしいです。Twitterでフォローしてくれたid:pgf2さんのブログ経由でさまよってたらid:youzさんのページにて発見。解説ページ…

Xbyak2.01に@@, @F, @Bを追加してみた(適当Ver)

誰かすでにやってそうですが調子こいて書いてみます。MASMなど、一部のマクロアセンブラには、正式名称は知りませんが便利なラベルがあります。@@, @F, @Bの三つです。 @@: hoge hoge... jg @F(下の@@にジャンプ) hoge hoge... jnz @B(上の@@にジャンプ) @@:…

PCASTL

id:ranhaさんが入門記事を書いたようです。面白いです。ていうかあれですね!これは言語開発者とプログラマが一緒にオ○ニーする言語ですね!なんかショボいプログラムでも書けたときに気持ちいいと錯覚してしまうのはBrainf*ckに通じるものがあると思いまし…

PCASTL

id:ranhaさんに教えて貰いました。http://www.pcosmos.ca/pcastl/面白そす。

ICFP-PC

7/11〜14らしいですね。情報ありがとうございます。awakiaさんawakiaさん、これ出れるんですかね?wwwwwうぇww 際どいけど不可能ではない気がする…!幸い院試の一週間前とかなので、AWとASSAとチュートリ次第ですよねー。14日は活動不可能なのがちょ…

fieldの半動的追加みたいなもの in C++

なんかのクラスがあったときに、additional informationみたいなのを付けたいときがある。JavaとかC#的に書くと class C { object additionalInformation; }みたいな感じ。additionalInformationはクラスCの中では使われず、外部が必要とする情報を格納して…

メンバ関数テンプレート

class Test { public: template<typename T> T get() { return 0; } };こういうのがあった場合、 Test t; t.template get<int>();って書いてあげないといけなかった記憶があるんだけど、これはVC6.0だけの話だったんだっけ?もう記憶がはっきりしなくてわからん。とりあえず、</int></typename>…

Efficient C++のRVOに関する記述で一カ所良く分からんところが

久々に気になることがあって読み直してみたんだけど、RVOを有効にするにはコピーコンストラクタを宣言しなければいけないらしいんだけど、これは デフォルトのコピーコンストラクタではダメなのか?→なぜ? コピーコンストラクタが使用不可能な状態だとダメ…

wxWidgets2.8.7 セットアップ完了@研究室

PCの環境が少しだけしょぼいのでビルドに8時間くらいかかった。全部ビルドするなっつー話だけど。wxUSE_STACKWALKERの件もなれたのでものすごくスムーズに完了。そしてVisual C++向け現時点での最新版メモ。バージョンが少し違うだけでかなり設定仕方が変わ…

ちょとワロタ

error: `long long long' is too long for GCC

だからLispの括弧は目に見えないと何度言ったらわkry

アレだアレ。C/C++の"{} () []"とか同じだよ。それが全部"()"になるから多く見えるだけ!沢山あるように見えるのは気のせい!全部の括弧の数を数えれば同じくらいになるわけ無いですよね!すいませんでした。だってLispに()なんて存在しなryなんでネットと…

bit演算子を使うとキモがられます

切ないです。

汎用性を犠牲にした高速化

最近Googleを支える技術を読んで長年の悩みが解決した。やっぱり用途を特化した最適化というのは良いことなんだと思う。できることが少ない。再利用できない。似たような物を作るときも一から作り直すレベルになってしまう。そんな欠点もあるけど、それでも…

J

http://www.jsoftware.com/ http://www.jsoftware.com/jwiki/Essays RogerHuiさんの書き込みJ is easy to get started in but takes a lifetime to master, a pool in which a child can wade but an elephant can drown. The program is available for down…

APL/J/K

Project Euler の中でも別格に輝くキモイコードとして君臨しているAPL/J/K(注: 俺の感想)。もの凄く興味が出てきたから調べたんだけど良い資料が見つからん。でもこんなキモイコード見たのは初めてだったので興味津々。APL/J/K最高!http://www.vector.org.u…

Project Eulerに登録してみた

About - Project Euler 時間があるときにちょこちょこやってみようかな。

アレを作ろう

アレ。大人の事情で明言はしない。類似品を17の時に作ろうとしてて、時間不足で完成に至らなかった。今回は3ランクくらい落とした奴から作り始めようと思う。メモ もすもす 6502 2A03 スペイン語で「知りません」と言う意味の文をうまく作ると似ている会社か…

Observerパターンとマルチスレッド

なんか相性が悪いわけではないんだけど、notifyするタイミングをしっかり考えないと切ないことになる。でも表示と結びつくところだけに、内部データが定期的に変わってるときはうまく通知したいところ。今回は賢い選択肢とは言えないが、タイマーを使用して…

コーディングルールとか

対極的な二つのルールで平行してやってたら両方慣れた。やっぱり全体を通して統一されてれば汚くないね。

スレッドのせいじゃなかったよorz

ううう。色んなlockいじって更に意味不明になってきたのでバージョンダウン。でも直ったぽい。

PHPの三項演算子は左結合だそうですよ

a ? b : c ? d : e ---> (a ? b : c) ? d : eなんかキモイ活用法ないかなー。

プログラミングの腕が落ちた

筋力的に。これが腱鞘炎…ッ!?いやたぶん違うけど。なんかで捻ったかなぁ。

配列のシャッフル

a[N] = { 1, 2, ..., N }っていうのを並べ替えたい時は、以下のようにしてやると効率が良く、数学的にもどの順列も等確率で生成される事が証明できる。 for (i = 0; i < N; i++) { swap(a[i], a[i〜N-1のどれかをランダムに選ぶ]); }これが恐らく一番良い方…

メモリの事を気にしなくて良いから楽だぜ!

それはつまり自分でメモリに関する部分に触れられないことを意味するわけでして。「頑張って省メモリにしたいお」っていうレベルならGC搭載言語でもどうにか出来る。でも、確実にこれ以下に抑えたいむしろ抑えないと即死っていう状況なのにC#を使うのは何か…

SQL文の合成

うまく合成する方法を考えるんじゃなくて、条件をANDで区切れる範囲で分割する方が良いはず。それぞれの中で独立して条件文を生成しANDで繋げるのが一番現実的だ。