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

メモ:boost::progress_timer

C++

何かの時間を計るときに便利。2回時間を計って差分を表示という一連の手順を、コンストラクタとデストラクタでやってくれる。 http://www.boost.org/libs/timer/timer.htm

ReadyBoostもどき

使ってなくてランダムリード・ライトが高速なフラッシュメモリがある場合は、それをswapに割り当てるとReadyBoostもどきになる。 ただ、WindowsVistaのReadyBoostは、フラッシュメモリが壊れてもシステムが落ちないように設計されているらしいので、その点で…

pImplパターンとtemplateと

C++

pImpl作っててぶち当たった問題。ドキュメントをIteratorで渡すtemplateメソッドとしてコンストラクタを定義していたんだけど、pImpl使っちゃうとヘッダファイルにコンストラクタ置けないorz で、templateをソースファイルに書くと、templateの利用者がどん…

OOPと参照ベースの相性の良さ

C++

今週も、「SA作ってみよー」の流れで行ってる。 今はドキュメントを元にSAをメモリ上に構築して、そこから検索しているんだけど、もうそろそろSAを保存してあとから使いたい。 で、Javaならクラスメソッドで class Sa { public static Sa fromDocument(Input…

C++のtemplate難しいよ・・・

コンパイルエラーが一行で何百文字あるんだよ・・・。 いまさらだけど、Modern C++ Design買おうかな。それとも、D言語に乗り換えたほうが幸せになれるかな・・・。

STLの設計者は偉い

C++

5/29の、equal_range()の型縛りの件は、完全にうそでした。 comp(*it, val) と comp(val, *it) が両方通って、<と同じ性質(a

C++で誰もが嵌る罠

C++

関数のローカルでfunctorを作って、その関数オブジェクトをアルゴリズムに渡せない罠。 #include <iostream> #include <numeric> #include <ext/numeric> #include <vector> #include <algorithm> using namespace std; int main(void) { vector<int> v(100); iota(v.begin(), v.end(), 5); struct print_v : public u</int></algorithm></vector></ext/numeric></numeric></iostream>…

ぐはぁ

C++

気づいたらid:odzさんからTBもらってたよ! しかも、Suffix ArrayをHDD上のファイルに適用する段階でstringやめてiterator使おうと思ってたのに、id:odzさんにサクっと作られちゃったよ! 真のSTLプログラマは、まず普通のコード書いてからそれをtemplateに…

libcont???

http://d.hatena.ne.jp/higepon/20070526/1180179990 Linux はスタックを徐々に拡張することを要求するので、ダミーの再帰関数であらかじめスタックを拡張しておく仕様になりました。 contはcontinuationって意味か。 スタックを拡張しておく・・・よく判らない…

洗車した日

朝早く目が覚めて、ヒマなので洗車した・・・ら、また眠くなって寝てた。

ネットも従量課金に

http://wordpress.rauru-block.org/index.php/1439 僕も賛成。基本料+1MB/円くらいの従量課金が良いと思う。個人でも10GBとか転送してる人は1万円くらいとっても良いじゃん.・・・て、思ったけど、よく考えたらWinnyとか以外のP2Pもダメージ食らうな。Linux…

std::equal_range()の型縛り

C++

この記事の内容は全部うそです。5/29の日記を参照してください。(5/29)さて,saが構築できたところで,検索しようと思う.各文字の出現回数を保存すれば元文書は消しても良いのだが,それは後回し. のstd::equal_range()は,順列に並んでいるリストから,指…

binder1stはとっても中途半端

C++

引数を2つ取る関数の第一引数に実引数をbindして,引数を一つ取る関数に変換するためのクラス.ちなみに,第二引数にbindするのはbinder2nd.もひとつちなみに、binder1stがやってることをカリー化(curring)という. binder1stはoperator()を提供するクラス…

久しぶりにがっつりC++を触った日

今日は,簡単なSuffix Arrayを実装してみようと挑戦していた.STLとかがりがり使ってアルゴリズムの実装をするのは学生以来だったため,いろいろ忘れてて,8時間くらいかけたのに結局検索までの実装が完了しなかった.ぶつかったところをメモしておく.

Erlangのプロセスはpreemptive

TB元で紹介されていた。(http://inforno.net/articles/2007/05/22/erlang-process) http://www.erlang.org/ml-archive/erlang-questions/200104/msg00072.html Erlang processes are currently scheduled on a reduction count basis. One reduction is roug…

すーぱーくりえいたー

先日お話しする機会があった(http://d.hatena.ne.jp/methane/20070428/1177782086)id:viverさんが、「「天才プログラマー/スーパークリエータ」として認定」されていた。(http://www.ipa.go.jp/about/press/20070515.html)おめでとうございます。

Erlangの強さ

Erlangで言うプロセスとは、実はfiber(aka. micro-thread, nano-thread, pico-thread)*1。で、fiberの実行コンテキストには、(たぶん)別スレッド、別プロセス、リモート(ネットワーク越し)、があるので、マルチコアCPUを使えば速くなるし、コンピュータを…

Scala.NET

.NETならNemerleが、JavaならScalaが、関数型言語で、かつオブジェクト指向な型システムに直接対応(直接.NETやJavaのクラスを使える)している、注目言語だった。 関数型言語といってもNemerleとScalaは全然違う言語だったんだけど、Scalaの.NET版があった…

オブジェクト指向プログラミング vs 型マッチングシステム

http://d.hatena.ne.jp/w_o/20070422#p3 を読んで思ったこと。例えば、JavaのTreeSetを例にすると、 All Implemented Interfaces: Serializable, Cloneable, Iterable<E>, Collection<E>, Set<E>, SortedSet<E> ... iterator public Iterator<E> iterator() Returns an iter</e></e></e></e></e>…

RSSの弱点

面白そうなネタがコメント欄で発生していても気づかない。

Pidgin

まず、いつの間にかGaimの名前がPidginに変わってた。今の会社に入ってから、IRCとMessengerを使うようになったんだけど、それぞれにクライアントをインストールしていた。Pidginなら1つでIRCのクライアントにもMessengerのクライアントにもなるということで…

FrontEndだけ.NET

BackEnd=Webサービス&FrontEnd=Silverlightという組み合わせの場合、WebサービスをASP.NET以外で構築しても全く問題ないのか。 で、Silverlightのコンテンツの配布自体は、単にxamlがダウンロードされてブラウザのプラグインで実行される(Silverlight v1.1で…

PythonのParser

Pythonのソースコードパッケージの、Grammer/Grammer というファイルに構文の定義がある。 Parser/ 内に、pgenというプログラムがあり、pgenがGrammerを元にParserを自動生成する。 IronPythonのソースコードを見ると、Parser.csが自動生成されていて、自動…

Moonlight

mono版のSilverlight. http://www.mono-project.com/MoonlightMoonlightは、VC-1の再生に対応する他、Oggプロジェクトにも対応するらしい。Ogg Theoraに対応するということかな? Flash Video 8の高画質codecはVP6、Silverlightの高画質codecはVC-1というこ…

高階関数

http://d.hatena.ne.jp/cubicdaiya/20070507/1178546005 ただ、前にこんなことを書いて、そもそも、関数を引数にするということは、静的に流れが読めなくなるので、上流工程とか、形式的なプログラム検証からすると、非常に困る。というふうに、ある人からお…

Webアプリ

今実家で、あると思ってたLinuxノートが無くなってたから、弟のマシンを借りてWeb中。ブラウザは、USBにOperaを入れて使用。 Googleカレンダーって、まだOperaに対応してなかったのね。。。 リッチクライアントを作るためのAPIが統一されてないのが、僕がブ…

正しいと思うことを実行するのはカッコイイ

・・・と思ってる。 もしこれがタチの悪いお芝居だった場合,必死に駆け付けた人間は晒し者にされて恥ずかしい思いをするんですよね.ましてそれがTVで放送されたりしようものなら,一生の不覚じゃ. 僕がそのTVを見たら、周りの人が助けに行かない状況で行…

東京の良さ

東京に人口・経済が集中しすぎているのが好きではないのだが、やはり現在は東京にいる方が良い刺激が多い。 先日、同じ部署の社員と一緒に、id:viverさんと会食する機会があった。ホント、IPAの発掘したスーパークリエイターは化け物か!と言いたくなった。 …

何でもかんでもRDB?

Webの基本構成。Webアプリは、データをO/Rマッピングして、RDBに格納する。Webサーバーは、複数用意してロードバランサで負荷分散。DBは、信頼性のために冗長構成にするけど、同期を取る必要があるので分散するわけではない。 ・・・え、最後だけ、スケール…

なんか固まる

なんか、しばらく固まる。 マウスカーソルだけが動いて、ウィンドウが反応しない状況が、数秒続く。 CPU使用率とメモリは問題なし。気になるのは、HDDアクセス。固まった状況から復帰する時、必ずHDDにアクセスしてる。 ACPIか何かが、HDDの電源を簡単に切っ…

このブログに乗せているコードは引用を除き CC0 1.0 で提供します。