Syntax highlighter

2007-06-29

社保庁めぇ!

年金払わない人には健康保険を交付しないそうだ。
給料天引きで問答無用な僕にはあんまり関係ない話だが、
さすがにどうかなぁと思ったりする。
米を買うためには、腐ったりんごを一緒に買わないといけない
っていわれてる気がしてたまらん。
そもそも、健康保険払ってるのに、交付しないっておかしいだろ!
国が詐欺を目に見える詐欺を行うのはどうかと、さすがに思う。
国債だけにしておいてほしいものだ、詐欺は。

そういえば、社保庁は今日がボーナス日だそうだ。
ま、ボーナスという名目ではなく、
勤勉手当、なんていうらしい。
勤勉ねぇ・・・これほど腑に落ちない手当てはないね。
怠惰手当とか、迷惑手当とか、もう少しふさわしい名目にしてほしいものだ。
そもそも、民間企業で見れば業績不振も甚だしいわけだから、
ボーナスがあることの方がおかしくねぇか?

これが「美しい国」の実体なんだろうなぁ・・・
なんというか、「憎いし苦痛」なんて言った人は、
なんて先見の明があったんだろうと思うわ。
記事見たときに笑ってごめんなさい。

2007-06-22

boost 1.34.0が出たらしい

ということで使ってみようと思い、コンパイルしてる。
今のPCにはVCとGCCが入ってるから両方でやってみようかなと思ったんだけど、
VCのコンパイルだとRelease版がなぜか上手くいかない(T_T)
調査不足だなぁ・・・

んで、GCC版を今コンパイルしてるんだけど、
Cygwinでやるのもなぁと思い、Mingwでコンパイルしてみた。
Code::BlocksってC++のIDEがあるんだけど、
そいつにくっついてるMingwでコンパイル。
環境変数にgccのパスを通して、bjamでコンパイルしてる。

19時くらいにコンパイルを始めたんだけど、
まだ終わらない・・・
そろそろ2時間は経つなぁ・・・

とりあえず、目新しいというか面白そうだなぁと思ったのは、
xpressiveかな。
BOOST_FOREACHは便利だと思うけど、foreach使うためにあのファイルをインクルードする気になれないなぁ・・・
cppllにあったやつじゃ駄目なんだろうか・・・
こんなの
違いはboostの方はポインタじゃないくらいしか見えない・・・

これ書いたら、また日本語じゃないって言われるのかな・・・
最近プログラム組んでないなぁ・・・

2007-06-18

慣らし運転終了!!

やっと3000km走ったよぉ、長かった。
ま、慣らし運転が終わったからといって、
回転数上げて走るつもりはないんだが・・・
燃費が悪くなるし・・・

しかし、6ヶ月で3000kmかぁ。
20万kmくらいは乗るとして、30年くらいはいける計算か・・・
この計算だと、生涯で乗る車は2台で終わるな。

2007-06-14

住民税が増える件にらしい

なんかネット(主に2chだが・・・)で見たのだが、
住民税が増えるらしい。
ちょろっとみたけど、かなりの額増税だそうだ。
(税率で倍になるらしい)
なんか、所得税が半分になるから、住民税を倍にしたらしい。
が、住民税って一括で払うんじゃなかったかな・・・
去年は転職したから9万くらい一括で払ったけど、
今年もそうだったら、18万を一括で払えってことか・・・無理・・・orz

いい加減なんとかならないのかな。
国民は十分痛みを味わったと思うが、
政治はよくならない。
公務員は税金を無駄遣いするし、
政治家は税金を無駄遣いするし、
年金はあてにならないし、
国の700兆円以上の借金を背負うのは国民だし、
在日朝鮮人の生活保護は過剰になるし、
部落の問題は解決しないし、
警察はあきらかな当て逃げを捕まえないし(違

国外逃亡を本気で考える25の夏・・・

働けど働けどわが暮らし楽にならざる
じっと手を見る・・・(つД`)

2007-06-11

年金終わったな

社保庁の年金問題の対応をちらっとみた。
あぁ、これじゃだめだなぁという内容だった。
適当に列挙
・予算90億(職員の残業代、休出手当てもろもろ込み。もちろん税金)
・新規システム開発費用20億(当然税金)
・電話担当者はアルバイト(職員はクレームを受けない)

もうね、解決しようという姿勢はみられないね。
とにかく自分が定年退職するまで引き伸ばして、
税金から退職金もらって、
天下りをしてがっぽりもらって、
天下り先で税金の無駄遣いをして、
こんな考えが隠れもしないで見えてる感じ。

今日のズームインでやってたけど、
のっけからシステムダウンしたらしいし、
年金照会するためのユーザーIDとパスワードは
発行処理を受け付けてから2週間後らしいし、
年金って公務員(官僚)の金のなる木でしかないなぁ・・・
自分でためるから、今まで払った分全額返還してほしいわぁ。
この調子でいろいろ進んだら一億総貧民は間近だね・・・

2007-06-07

王子?

今朝のニュースで出ていたのだが、
また新たに王子が出てきたらしい、
その名も
「流し目王子」

・・・
ちなみに、歌舞伎役者らしい・・・
しかも、女形・・・
・・・
もうね、マスコミにネーミングセンスのなさに思わず笑ったよ。
なんでも「王子」とつければいいわけじゃないだろうに。
ハンカチ、はにかみときて流し目ですか・・・
二番煎じでさえあほだなぁと思ってみていたが、
3杯目は居候でもそっと出すぞ。
各王子の本名知ってる人ってどれくらいいるんだろうね。
次は何がでるかな、
スポーツ、スポーツ、芸能って来たから、芸能かな。
「ソプラノ王子」とかかね。

インターネットは違法?

こんなのを見つけた。
"ダウンロードしても違法" 政府、著作権法改正を検討
コンテンツ産業の育成を促す狙いだそうだ。
コンテンツは基本的にはダウンロードしないと見れない→ダウンロードすると違法
???
明らかにおかしい。
まてよ、有料コンテンツは違法じゃないのか?
だとしたら、そもそもHTTP通信を行っている限り、
通常ページもダウンロードする必要があるから、
現在普通に開いているページも有料化されるということか?
そうすると、インターネットするだけで金がかかるのか。
通信料も取られて、閲覧量もとられて、いいことなしってことか?

まぁ、まて。
だれしもネットするだけど金取られたくはないだろうから、
「ダウンロード」しなければいいわけだ。
そもそも、ダウンロードってサーバ上にあるデータを自分の端末に保存することを言うから、
その一時的な保存をやめればいいってことか。
通常ブラウザはテンポラリを持ってるけど、これってHDD上だから、
きっとメモリ上は一時的な保存にならないとすれば、
今のブラウザの考え方を根本的に変えれば何とかなりそうだ。
サーバデータを直で見る!
非同期なHTTP通信をやめて、ブラウザで同期通信を行い、
ブラウザは単なるバッファとして扱う。
バッファ上のデータは「表示しているだけ」なので、ダウンロードにはならない。
スワップされると一時的HDDに保存されるので、スワップはだめ。
巨大コンテンツを見るときは、それに見合ったメモリを積んでいる必要あり。

ふぅ、駄文を書いてしまった。
しかし、ダウンロード規制法案(正式名称しらない)は2008年の通常国会に盛り込むらしいが、
そもそも、インターネットの仕組みを知ってからにしてもらえないかな。
これそのまま行くと、動画だめ、音楽だめ、画像だめ、著作権に触れる文章だめになるんだが・・・
なんで、「アップロード」した人じゃなくて「ダウンロード」した人を罰するんだろ?
そのうち、ワンクリック逮捕がでてくるんじゃないか?

2007-06-05

デフレの影響?

物価がちょっとずつあがっている。
バイオエタノールの影響という話だが、
正直勘弁してほしい。
ニュースで物価を上げるのは消費者離れを起こすとか、
デフレに慣れきった消費者にとってなんて言っているが、
実際のところはどうなんだろうか?
買い物に行くといつも、
「う~ん、豚肉は高いなぁ、鳥にしようかな」とか
「じゃがいもの値段があがってる」とか
結構悩む。
安さに慣れたという感覚ではないと思うんだよね。
週末はそこそこ外食をして、平日は自炊。
食料品は野菜中心で、魚は高いからほとんど買わない、
肉も安い鶏肉中心だが、
毎月の食費は3万くらいかかる。結構痛い。
週末の外食をなくせばもう少し減るだろうけど、
そこまで節約したくはないし、
う~ん、といった感じ。

結局のところ何がいいたかというと、
これだけ好景気といっているのに、生活に直接影響がでる部分での
値上げがあると消費者が悲鳴をあげるということは、
景気がいいのは一部の人間なんだぁと実感できる、
ということが言いたかった。
社員の給料削って企業が好景気になってもなぁ、と思うのは僕だけだろうか。

2007-06-04

1年

転職して1年。
早いような、遅いようなそんな感覚である。
結局自分がなりたかったものはなんだったのだろう。
すっかり見失ってしまったような、
なんとなく見えてきたような。

あのころの仕事をもう一度したいとは思わなくなった。
しかし、今の仕事を続けたいとも思っていない。
じゃぁ、何がしたいんだろう?

1年かかってこれだけしか進んでないんだよね。
は~・・・

2007-05-28

ショック

ZARDの坂井泉水が亡くなったそうだ。
好きなアーティストが急死するのはショックが大きい。
そのニュースを見るまで、入院してるということさえ知らなかった・・・
中学、高校のときによく聞いてたなぁ。
事故死ということだけど、なんだかやるせない・・・

そういえば、松岡農林水産大臣も自殺したとか。
なんだかんだで糾弾されていたのが堪えたんだろうなぁ。
辞任してればこうはならなかったのかも。
でも、悪いけどこの人はぜんぜん悲しくないなぁ。
5000円の水をたらふく飲んだんだ、まぁ、本望だろうて。

2007-05-23

低体温

今日の朝の話。
昨日頭痛がひどくて、早めに寝たのだが、
朝起きるとなんだか体が上手く動かない。
風邪のだるさではないんだけど、なんか動きが鈍いというか、
起き上がれないというか、力が入らない。
一応熱を測るかと思い、気力を振り絞って体温計を取って、
熱を測ってみた。
数字の増え方から、やはり熱はないと分かったのだが、
明らかに増え方が少ない。
ぜんぜんあがらないなぁと思いながら終わって覗き込むと、

35.3度!!

おいおい、どんなだよ。
平熱は低い方だけど、そこから1度近く低いぞ。
体が動かない理由が熱があるからではなく、
熱がないからだとは思わなかった。

2007-05-18

逆メタボリックシンドローム?

会社で健康診断があった。
まぁ、普通の健康診断で、身長体重、尿検査、視力聴力、
血圧、心電図、問診、採血、レントゲン、んで腹囲測定ってのがあった。
腹囲?なんでだろうと思ったのだが、
最近流行のメタボリックシンドロームの検査らしい。
最近計ってなかったから、太くなっていたらどうしようと思いつつ、
測定結果を覗き込む。
おや?穿くズボンがない?
結果はメタボリックシンドロームとは縁遠い数字。
それどころか、むしろ逆メタボリックではと思うくらいだった。
一人暮らしをはじめて、さらに細くなったか・・・
栄養失調かな・・・orz

2007-05-07

クラスのエクスポート

残業中です。
こんなことしてていいのかと思いつつ、立会いのみで暇だからいいかとも思いつつ。

cygwinでlibltdlを利用してモジュールを明示的に読み込むプログラムを作っていたのだが、
ロードした直後でAbortするという現象に悩まされていた。
いまいち原因がわからないままいろいろ試したのだが、どうも解決しない。
ということでgoogle先生に尋ねてみたら、このページが見つかった。
http://www2s.biglobe.ne.jp/~ragnarok/program/win32/class_of_cpp_in_dll.htm
どうやら、インターフェースを作って、呼び出しを別メソッドでやる必要があるらしい。
結構面倒だなと思いつつ、今あるモジュールの皮(インターフェースのこと)を作ってやり、
生成メソッドを作って動かしてみた。
おや、意外とうまくいくもんだね。
よくやるEXPORTマクロとか定義しなくてもいいみたい。ふ~ん。
戻り値と引数はプリミティブにしろだと!無理!バイナリ互換性などいらんわ!
ただ、いろいろやっているので、cygwin1.dllをなくすのは無理っぽい。
う~ん、Windowsコンソールアプリとして動いてほしいんだが・・・
やりたいこととしてはJavaのリフレクションみたいなことがやりたいんだけど、
ネイティブ吐く言語では難しいのかね。
plugin形式が精一杯かな・・・

2007-04-30

手抜き煮込みハンバーグ

ひき肉があったので、ハンバーグを作ろうと思ったのだが、
ソースを作るのが面倒なので煮込んでみることにした。
これがかなり旨かったので、レシピ。
手抜きなのでレシピも手抜き。

【材料(1個分)】
・ひき肉 ・・・ 100gくらい
・黒コショウ ・・・ 適当
・しょうが ・・・ 少々
・パン粉 ・・・ 一掴みくらい
・シナモン ・・・ 適量
・にんにく ・・・ 1片
・ケチャップ ・・・ 結構いるかも
・サラダ油 ・・・ 適量

【作り方】
ひき肉、黒コショウ、しょうが(摩り下ろすかみじん切り)、パン粉、シナモンを混ぜて、
ハンバーグを作る。
このとき気合を入れてこねた方がいいかもしれない。
フライパンを熱して油を注ぎ、みじん切りにしたにんにくをいれ、香りをつける。
ハンバーグをフライパンにいれ、両面に軽く焼き色をつける。
水をコップに半分よりちょっと多いくらい注ぎ、ケチャップを水と同量くらい入れる。
コショウ、シナモンで香りをつけ、弱火で5分煮込む。
ハンバーグをひっくり返してもう5分煮込む。
できあがり。

中が赤かったらレンジでチンする。

かなり香りがよく、旨かった。

2007-04-29

テリヤキバーガー?

モスのテリヤキバーガーが新しくなったというCMをみたので、
行ってみた。
っで、感想。
ちなみに、感想を書くということは単にうまいとかではない。
ネタになるようなことがあったということだ。
不要な前置きも書いてみた。

テリ「なし」バーガーの間違いだった。
んでもって、肉がシャリっていった。
さらに、バニラシェイクを頼んだのに、ほんのりコーヒー風味だった。
3品(チキンバーガー、テリヤキバーガー、バニラシェイク)のうち、
まとものだったのは1品だけってどうよ(怒)
そこのモスは結構利用しているのだが、初めての経験だった。
バイトのに~ちゃんが慣れていなかっただけだと思いたい。

モスに行くときはたいてい信用してもいいと思うが、
たまにこんなこともあると用心した方がいいかもしれない。

2007-04-20

ftpクライアント

仕事で日次業務があるのだが、
これを簡便化しようかと思って、プログラムを組んでた。
そしたら、どうしてもFTPでファイルを取得しないといけなくて、
system関数使って取得するのも癪だなぁと思い、
FTPクライアントを実装してみることにした。

まぁ、FTPの実装なんて簡単だろうと思ってたんだけど、
(サンプルも結構あるし)
意外や意外、難しかった。
getはFTPサーバからのメッセージを
クライアント側で受け取り用サーバを立てて読み取ればいいんだけど、
(日本語おかしいな)
putがどうも上手くいかない。
STORコマンドをサーバに送信すると、
確かにサーバ側にファイルは作成されているんだけど、
どうもファイルの中身がない。
おかしいなぁと思って試行錯誤するが上手くいかない。
(具体的には、サーバに対してソケットであれこれ送ってみた)
どうも、サーバ側のファイルに対して直接書き込む必要があるなぁと思いつつ、
さすがにギブアップと思って、
GNUのinetutilsの実装を見てびっくり。
fdopen使ってるよ!!
そっか、UNIXはソケットもファイルディスケットもいっしょだっけ。
とりあえずcygwinだから真似たら動いたけど、
Windowsにどうやって移植するんだろ?

とりあえず、へなちょこながら、C++っぽいFTPクライアントができた。
特徴は、streamを使って送受信できることかな。
多分、get(const string& file, std::ostream& out)のインターフェースは便利なはず。
(ってか、これがほしかっただけなんだけどね、余計な分まで実装しちゃった)

体罰

大田総理である。
今日は体罰を認める認めないの議論をしていた。
結果は反対多数で否決だったが、気に入らない点がかなりあった。

・自分では解決方法を提示しない
 → 議論の基本かも知れないが、さすがにあそこまで逃げの姿勢を出すのはいかがなものか。
・学校=学問をするところ
 → そうかもしれないが、小中学校は義務「教育」機関なので、イコールではないと思う。
・学問と暴力は相反するものである
 → 議論してれば、言葉の「暴力」もあるよなぁ。
・そもそも、体罰=暴力とされていた
 → 体罰は罰則のであって、イコールとするのはいかがかなものかと。

実際のところ、手段として完全禁止にするのはやっぱりどうかなぁ。
言って聞かないガキなんざ本当に山ほどみた。
それを何とかするのが教育なのかもしれんが、
殴られた痛みを知るには、殴られる必要があると思う。
「学問」では「経験」は教えられんと思う。
ま、まずは保護者をなんとかしないといけないんだろうね。
「先生にぶたれた~」と言って、
「あんたが悪いことしたんでしょ」って言う親を持つ僕。
今思えばそれが正しい姿なんだろう。

2007-04-15

なければ作る

散々ネットを探したが、
STLコンパチの可変長配列コンテナなんてなかった。
そりゃ、そんなもの必要ないからね。
STL使ってりゃいいし。
VCならMFCやらATLやらに付属してるCArrayとか使えばいいし。
両方の選択肢がないってのが珍しいと思う。

ならしょうがない、自分でつくる。
(本当はなにか回避策があったのかもしれないが・・・)
ということで出来上がったコードがこれ。

#pragma once

class Exception
{
public:
Exception(const CString& msg)
: message(msg)
{}
const CString what() const
{
return message;
}
private:
CString message;
};

template< class T >
struct Node
{
typedef Node< T > Element;
typedef T value_type;
value_type data;
Element* next;
Element* prev;

Node(value_type value)
: data(value), next(0), prev(0)
{ }
};

template< class T >
class iterator
{
public:
typedef T NodeT;
typedef typename NodeT::value_type value_type;

explicit iterator(NodeT* src)
: entity(src)
{}

iterator< NodeT >& next()
{
entity = entity->next;
return *this;
}

iterator< NodeT >& prev()
{
entity = entity->prev;
return *this;
}

iterator< NodeT >& operator++()
{
return next();
}
iterator< NodeT > operator++(int)
{
return next();
}

iterator< NodeT >& operator--()
{
return prev();
}
iterator< NodeT > operator--(int)
{
return prev();
}

value_type operator*() const
{
return entity->data;
}

value_type* operator->() const
{
return &(entity->data);
}

iterator< NodeT >& operator+=(int index)
{
for (int i = 0; i < index; i++) {
(*this)++;
}
return *this;
}

iterator< NodeT > operator+(int n) const
{
NodeT *buf = entity;
for (int i = 0; i < n; i++) {
buf = buf->next;
}
return iterator(buf);
}

bool operator==(const iterator< NodeT >& rhs) const
{
return this->entity == rhs.entity;
}

bool operator!=(const iterator< NodeT >& rhs) const
{
return !(*this == rhs);
}

NodeT* getEntity() const
{
return entity;
}
private:
NodeT *entity;
};

template< class T , class _Iterator = iterator< Node< T > > >
class ArrayImpl
{
public:
typedef T value_type;
typedef Node< value_type > NodeT;
typedef unsigned int size_type;
typedef _Iterator iterator;

public:
ArrayImpl()
: first(0), last(0), count(0)
{ }

~ArrayImpl()
{
if (!empty()) {
NodeT *cur = first;
NodeT *temp;
while (cur != 0) {
temp = cur;
cur = cur->next;
delete cur;
}
}
}
NodeT* createEntity(const value_type& value)
{
return new Node< value_type >(value);
}

void push_back(const value_type& value)
{
NodeT *node = createEntity(value);
if (empty()) {
first = last = node;
} else {
node->prev = last;
last->next = node;
last = node;
}
count++;
}

void insert(const iterator& pos, const value_type& value)
{
NodeT *node = createEntity(value);
if (empty()) {
first = last = node;
} else {
NodeT *buf = first;
while (buf == pos.getEntity()) {
buf = buf->next;
}
// 最終要素なら末尾に追加
if (buf == end().getEntity()) {
delete node;
push_back(value);
} else {
node->next = buf->next;
node->prev = buf;
buf->next = node;
}
}
}

bool empty() const
{
return count == 0;
}

size_type size() const
{
return count;
}

value_type at(size_type index) const
{
if (index > count) {
throw Exception("Array index out of bounds.");
}
return *(begin() + index);
}

iterator begin()
{
return iterator(first);
}

iterator end()
{
if (last == 0) {
return iterator(last);
} else {
return iterator(last->next);
}
}

iterator begin() const
{
return iterator(first);
}

iterator end() const
{
if (last == 0) {
return iterator(last);
} else {
return iterator(last->next);
}
}
private:
Node< value_type > *first;
Node< value_type > *last;
size_type count;

ArrayImpl(const ArrayImpl& other);
ArrayImpl& operator=(const ArrayImpl& rhs);
};

template< class T >
ArrayImpl< T >* nodeCopy(const ArrayImpl< T >* src)
{
ArrayImpl< T > *dest = new ArrayImpl< T >();
for (typename ArrayImpl< T >::iterator itr = src->begin(); itr != src->end(); itr++)
{
dest->push_back(*itr);
}
return dest;
}

// 以上
// Arrayの実体

template< class T >
class Array
{
public:
typedef T value_type;
typedef unsigned int size_type;
typedef typename ArrayImpl< value_type >::iterator iterator;
//typedef const iterator const_iterator;
public:
Array(void)
: impl(new ArrayImpl< value_type >()), count(0)
{}

Array(const Array< value_type >& other)
: impl(nodeCopy(other.impl))
{ }

Array& operator=(const Array< value_type >& rhs)
{
if (this != &rhs) {
ArrayImpl< value_type > *tmp = nodeCopy(rhs.impl);
delete impl;
impl = tmp;
}
return *this;
}
~Array(void)
{
delete impl;
}

void push_back(const value_type& value)
{
impl->push_back(value);
}

void insert(const iterator& pos, const value_type& value)
{
impl->insert(pos, value);
}

value_type at(size_type index) const
{
return impl->at(index);
}

iterator begin()
{
return impl->begin();
}

iterator end()
{
return impl->end();
}

iterator begin() const
{
return impl->begin();
}

iterator end() const
{
return impl->end();
}

size_type size() const
{
return impl->size();
}

bool empty() const
{
return impl->empty();
}
private:
ArrayImpl< value_type > *impl;
size_type count;
};

自分の使ってた部分だけSTLコンパチ。
なんで、referenceはないし、iteratorも一種類のみ。
メソッドも全然ない。つくりは超適当。
それでも、こんなの作るのに、2時間くらいかかったよ・・・orz
今のところ不具合なく動いてる。
だれか、完全STLコンパチに直してくれないかな・・・

追記:
ものすごい勢いで、リークしてた。
修正した。

追記の追記:
実はCSimpleArrayなんてのがあったよ・・・
調査不足でした・・・orz

VCのばかやろ~

VC2005EEでこそこそやっているのだが、
どうやらVCでWindowsアプリを作ると、STLとか使えないらしい。
使うとDebugモードでは動くけど、Releaseモードでは動かないという、
なんともあほみたいな現象が現れる。
どうやらCRLが問題らしいんだけど、どないせ~と。
別にListを作るのはそんなに大変じゃないんだけど、
Iteratorに対応させようと思うと気が狂いそうになったんだよね。
自分の未熟さに原因があるんだけどさ。
完全STLコンパチを目指さない方がいいのかな・・・

2007-04-14

牛バラ肉の赤ワイン煮

ドライブに行った帰りに、来週の食材を買出しに行ったら、
牛バラ肉のブロックが売っていたので、作ってみようと思い立ってみた。
いつだったか、下宿の近くにあるイタリア料理の店でメニューに載っていたのを見て、
作ってみようと思っていたのだが、思いのほか早く実現した。
いつもはレシピを2~3くらい比べて、適当にアレンジするのだが、
今回は食べたことないものなので、
比較的簡単そうにできるレシピをまねることにした。
ということで、参考にしたレシピ:
http://mitsuka.jugem.jp/?eid=170
実にアバウトに書いてるけど(必要材料が書いてないとか)、
他のレシピと比べるとシンプルだったので、作りやすかった。

もう1品カルボナーラを作って、なんとも豪華な夕飯を食べてしまった。
多分、材料費で500円はかかってるはず(いつもは多分150円くらい)。