雑記

PCシボンヌ

先日購入したPentiumMのPCですが、さっそく死亡しました。

原因はよーわからんのですが、ファンをとっかえようと、リテンションキットをいじったりしているあたりでどうもなんか逝ってしまったらしいです。

メモリ・電源に問題がないので、CPUかMBだと思うんですが、どちらもマイナーCPUにマイナーMBですから予備のものとか一切なし。

しかもそんな安いものでもないので、レシートと保証書持って、そのまま購入した店に行きました。LAOXとヨドバシ。

で、その場で動作確認してくれるのかと思いきや、ヨドもLAOXもそのままメーカーに渡すだけらしいです。3週間くらいかかるとのこと。

トホホ。
Posted by issei

カテゴリ: 雑記

なんかもう言ってることが非常識

結論

人生を楽しく生きようと思うのなら「官」と名のつくところとは商取引しないにこしたことはない。


年末の忙しいときにつまらん書類の修正の要求を・・・ぶつぶつ
Posted by issei

カテゴリ: 雑記

FreeBSDでオレオレ証明

私的メモ

1)証明書局を作る

FreeBSDではインストールすると カレントディレクトリのdemoCAというディレクトリの下に証明書局があるという設定になっているのでコレを使う。秘密鍵は demoCA/privateの下におけばいい。

% mkdir demoCA

privateと newcertsというディレクトリがいるらしいので作る
% mkdir demoCA/private
% mkdir demoCA/newcerts

オレオレ証明な認証局を作る

% openssl req -new -newkey rsa:1024 -x509 -keyout demoCA/private/cakey.pem -out demoCA/cacert.pem

パスフレーズは適当な文字列をいれておく。国とかステートとか組織とかは同じにしておく。

index.txtと serialというファイルが必要らしいので作っておく。

% touch demoCA/index.txt
% echo 01 > demoCA/serial

あらかじめ作っておいた csrを署名する

% openssl ca -in key.csr -out key.crt

はい。key.crtが完成。
Posted by issei

カテゴリ: 雑記

青森アニメ事情

新番組スタート!!

その名も「ケロロ軍曹」

青森はTV東京から数光年離れた場所にあるので電波が届くのに時間がかかるのです。
Posted by issei

カテゴリ: 雑記

Don't Panic (あわてるな)

DSC05252.jpg

とある理由で銀河ヒッチハイクガイド3部作が読みたくなり実家のダンボールの中を捜索。無事発見。

最初の銀河ヒッチハイクガイドが昭和57年。宇宙の果てのレストランが58年。宇宙クリケット大戦争が60年。いずれも絶版だがクリケット以外は新訳で刊行されたらしい・・・

で久々に読みふけってみると、アホらしくておもろい。やはり42か・・・
Posted by issei

カテゴリ: 雑記

FreeBSDを6.0に上げてみる その2

Page Faultというオチがついたもののもうちょっと悪あがきをしてみます。このまま再インストールではあまりに面白くなさすぎます。

まずはしっかりとログを見る。コレ基本。

DSC05247.jpg

落ちたときの状態はこんな感じ。

で、冷静に考えれば、そもそもシングルユーザモードでは起動するのだから、その後に起動するプロセスに問題があるんじゃないかという気がしてきました。

それだったらわざわざ再インストールするまでもないですね。というわけで、/usr/local/etc/rc.dを試しに違う名前にしてローカルパッケージを一切起動しないようにして再起動してみます。すると・・・

・・・
・・・
・・・
login画面キタコレ!!

ということでインストールは問題ないと。

そこで改めてパニックの画面を見ると

canna、rtc

とメッセージが出たところでコケています。このrtcが怪しいと睨みました。そこで、rtc.shを見てみると、

/usr/local/modules/rtc.ko

というのを読み込んでいるらしい。なんかスゴくクサイですな。これ。
というわけで、シングルユーザモードで再度起動して

/sbin/kldload /usr/local/modules/rtc.ko

と実行してみたところ・・・

page faultキタ━━━━(゚∀゚)━━━━!!!!

まさに同じ症状。ということで、ここまで来れば簡単ですね。これを外せばいい。

しかし、このパッケージなんのパッケージなんでしょ?名前からするとReal time clock? 全くいれた記憶がないですわ・・・

ということで /var/db/pkgをさくっと検索。こういうときは grepが早い。

#cd /var/db/pkg
#egrep rtc */+CONTENTS

どうも rtc-2004.02.24.1_4が悪さしているようです。


rtc-2004.02.24.1_4/+CONTENTS:@name rtc-2004.02.24.1_4
rtc-2004.02.24.1_4/+CONTENTS:@comment ORIGIN:emulators/rtc
rtc-2004.02.24.1_4/+CONTENTS:etc/rc.d/rtc.sh
rtc-2004.02.24.1_4/+CONTENTS:include/rtc.h
rtc-2004.02.24.1_4/+CONTENTS:modules/rtc.ko
rtc-2004.02.24.1_4/+CONTENTS:share/examples/rtc/test.c
rtc-2004.02.24.1_4/+CONTENTS:@dirrm share/examples/rtc
rtc-2004.02.24.1_4/+CONTENTS:@unexec rm -f /dev/rtc


+DESCを見てみると・・・


This is a kernel module for /dev/rtc device support.
Some apps such as VMware for Linux would be happy with it.

The code was originally written by Vladimir N. Silyaev.


ああ、VMWareを入れてみた時に勝手に入ったのか。happyに動くって・・・さっきから散々fsckしてunhappyだよ・・・OTL

ということで、happyにはなれそうにないので、削除。で、削除してrebootしてみたら・・・

見事に起動しました。

勝利!!!

終わってみればなんてことない問題なんだよな。これが。
Posted by issei

カテゴリ: 雑記

うちの会社の社名の由来の続編が発売らしい

うちの会社の社名の由来なんですが、ぶっちゃけTo Heart。いや、ほんとうにスマンかった・・・今でも反省はしていない。

一応知らない人のために解説しておきますが、To Heartってのは、20世紀末に爆発的に流行ったLeafのエロゲ。後にPS2に移植され、同じキャストでアニメまで作られました。

で、うちの会社はこの人気にあやかり、 heart.ne.jpなるドメインを取得し、 *.heart.ne.jp というメアドを売ったのが始まりです。*はお客さんでご自由に選んでください。というサービスでした。

予想通り、* は to にする人が多かったわけですが、考えてみりゃメインの登場人物が全部売り切れらら後は客来ませんね。その事実に気がついたのは随分と後のこと。

勢いだけでいろいろ挑戦していたあの頃。若気のいたりってのは恐ろしいものですが、そういういたりが人脈を生み、現在に続いているいというのも事実。やはり人間至ってナンボですわ。
Posted by issei

カテゴリ: 雑記

g++ のこれまたどうでもええ知識

C++のオブジェクトは実空間でどうのように配置されているのだろうか?とういことを調べてみた。(必要にかられて)

すくなくともCでは構造体の変数は宣言された順番に並びます。これは言語の規定。ではC++ではどうなるのか?タブンC++も宣言順に並ぶで正しいと思う。

しかし、問題はVirtual関数。こればっかりはインスタンス舞に呼ばれるものが違うのでメモリに配置しておかなければならないわけで・・・この部分に関してはさすがに実装依存のような気がします。

が、とりあえずg++でどうなってるかわかればいいので、とりあえず、次のようなプログラムを書いてみました。

class A{
public:
  int a;
  int b;
  A();
  virtual ~A();
  virtual void hoge();
};
A::A()
{
 a = 0x11111111;
 b = 0x22222222;
}
A::~A()
{
 printf("A\n");
}
void
A::hoge()
{
 printf("Ahoge\n");
}
これをアセンブラに変換します。 g++ -S t.cc でt.sを見てみると・・・コンストラクタらしきところ(g++では __1Aという名前になるようで)
__1A:
        pushl %ebp
        movl %esp,%ebp
        movl 8(%ebp),%edx
        movl $_vt$1A,8(%edx)
        movl $286331153,(%edx)
        movl $572662306,4(%edx)
とういことで、どうもメモリ上には int a int b $_vt$1A と順番に配置されるようです。ちなみに$_vt$1Aがバーチャル関数が格納されているテーブルで、sizeofを取ると12になります。 つまり基底クラスにおいては、Cと互換性があり、最初の構造体のメンバのデータは同じということになります。 では、このクラスから派生したクラスはどうなのでしょうか?ためしに次のようなクラスを作ってみました。
class B: public A{
public:
  int c;
  B();
  virtual ~B();
  virtual void hoge();
};
で同じようにアセンブラソースを出力し比較してみると int a int b $_vt$1A int c と並んでいる模様。sizeofは16ということになりました。なお、Virtual関数がないクラスはテーブルは何処にも入りません。普通のCの構造体となります。

Posted by issei

カテゴリ: 雑記

pipe

いまどきこういうレベルのプログラムをしてる人がどれくらいいるのかわからんですが、pipeの挙動で二日悩みました。

どうにもうまくpipeに書き込んでくれない。

おかしいのう・・・

とおもたらワケなかった。ようするにwriteしたものが全てかかれるわけじゃないという至極簡単なオチ。

あーそういえば、write(fd, buf, len); のlenを凄く大きくしてたんだった。
Posted by issei

カテゴリ: 雑記

メモリ不良その2

ということで再度交換に向かい(ちなみにソフマップ)動作確認してもらうと、ちゃんと動きやがりました。

差しが甘いんじゃないかといわれ、持ち帰りましたが、やはり動きません。

別なメモリを差せば動くので、どう考えてもメモリ不良としか思えないのですが、一度動作確認をとられているので、さてどうしたものかと考え、PCも同時購入だったので、PCがごと持ってきました。

で、動作確認してもらうと、やはり動かない。ということで今度はPCが交換の対象になり結果的に新しいPCになりました。これで解決でしょう。

で、新しいPCを持ち帰りさてと起動すると、あれ・・・起動しない・・・

さっきまで起動したのにはて?

結局交換前と全く同じ状況です。

おかしいと、メモリを抜き差ししてるとあるとき動きやがりました。どうも微妙な接触で動いているようです。ということで、再度ソフマップへ。

結局メモリを3回変えてもらて、動きました。
大山鳴動してやっぱりメモリ。つか最初からメモリ交換してくれりゃ、PC一台無駄にせず済んだはずなんですよねぇ・・・しかし2回も交換することになるとは。

長かった・・・
Posted by issei

カテゴリ: 雑記