npn?いやpnpか?やっぱりnpnか?

最近増幅回路の勉強をしている。
トランジスタを使っている。グラフを見ながら電流の値とか計算してね。
トランジスタというのはなかなか楽しい素子だと思いますよ。


ここで言うトランジスタはバイポーラトランジスタ。
いわゆる普通のトランジスタのことです。
バイポーラトランジスタというのはn型・p型・n型かp型・n型・p型とサンドイッチしたもの。
それぞれnpn型、pnp型と呼ばれます。
ちょうどダイオードがn型とp型をくっつけたものだから、これを2個くっつけたもの。
というのは間違いのようでそうも間違いじゃないみたいです。
そのバイポーラトランジスタというのは、エミッタ・ベース・コレクタからなるわけですが、
エミッタとベース、ベースとコレクタの間はそれぞれダイオードになってると。
エミッタとベースの間にちょっと電圧をかけてやるとエミッタからキャリアが出てたくさん電流が流れる。
ダイオードの両端にちょっと電圧をかけてやるとたくさんの電流が流れるのと一緒のことです。
ただここでダイオードが違うのはベースが薄いこと。ベースが薄いからキャリアがベースで再結合しない。
なのでそのまま突き抜けてコレクタに行ってしまう。
ここでベース・コレクタ間を逆方向の電圧をかけておくとそのキャリアを吸い取ってしまえる。
これを利用して増幅回路を作ることができるんですね。
具体的にはエミッタ・ベース間の電圧をちょっと変えてやると流れる電流がたくさん変わると。
そういうのを利用しているわけです。


そんなトランジスタですが、バイポーラトランジスタの記号はちょっとわかりにくい。
トランジスタ
まず3つ端子があるが、どれがエミッタ・ベース・コレクタでしょうか。
まぁベースは真ん中にあるのでいいけどエミッタとコレクタはどっちがどっちか。
これは放出するエミッタが矢印が付いている方。
まぁこれは知ってれば何の問題もないことです。
次にnpnとpnpの見分けですが、そもそも何が違うでしょうか。
矢印の向きが違いますね。内向きと外向き。
実はこれはエミッタ・ベース間のダイオードの向きと一緒なんですね。
左の方なら、エミッタの電圧をベースより低くすれば電流が流れると。
けどそれだけじゃnpnかpnpかわからないと。
実はダイオードでは+にする方がpなんですね。pが+だということ。
なので左の方はベースがp、エミッタがn、そうすればnpn型と決まると。
逆に右はpnp型だと。
ちょっと難易度高いですね。なんでこんなにわかりにくくしたんだか。


紛らわしいのは間違いないですね。
実際これを間違えてテストえらいことになった友人がいますから。
確か電子工学で不可取ってしまったんじゃないかな。
ちなみに覚え方はいくつかあるみたいです。
矢印が内側向いてるのはピンポーンと押すようだからだからpnp型だとか。
まぁ使い方と一緒に覚えておかないとね。

役に立たないことが大切な物理

以前物理の授業でこんな話があった。
運動量うんぬんの話で、加速器の話が出てきた。
その加速器というのはヨーロッパの巨大な巨大な加速器のこと。
そしてそれは皆さんの生活にも関わってくることだという。
だから楽しみにその話を聞けば、どうもそんなに関係ない話だった。
なんで質量というのが生まれたかというのを調べているという。
なぜ質量があるか?というのは疑問に思うだけなら楽しいですけど、
別にそれで生活が大きく変わるって事はないですね。
だって重い物は重いんだから。そして漬け物石は重いから使えるわけで。
まぁちょっと残念な話でした。


分かっていないことでも便利に使えればいいじゃないってことは結構あります。
例えば万有引力の式とクーロン力の式は非常に似ているとか。
これの関係性を明かせば反重力とか作れるんじゃないのって。
ただ現実にはそれはあまり重要ではなくて、おもりを落として杭を打ってビルを建てている。
よくわからなくても使えばいいじゃないのってのはあると思います。
ただやっぱり反重力とかできたら楽しいよねってのも確かな話です。
だから馬鹿にはできない。


物理を使う人にとってはこの辺の話はどうでもいいことだと。
ただ物理を考える人からすればこのあたりは非常に楽しいと。
それをわかっているからか教えている人は、
学生はこんなもん役に立たんと思ってるんだろという風には思っているみたいね。
まぁ実際役に立たんだろうと認めているぐらいですから。
まぁ卑屈になりすぎじゃないかとは思うけどね。
実際の所、今勉強しているのは運動のところだからね。
我々にも全く無関係とは言えないところだとは思うよ。


しかしやっぱりに立たないこともあるかもしれない。
それはそうとして、役に立たなくても知識だけでも知ってれば楽しいことがあるかもしれない。
それは数学だって一緒ですよね。
アホみたいに難しい積分ができても多分意味は無いけど、
そんな世界があるんだということはわかりますよと。
そういう世界の覗き窓なんじゃないかなと思いますけどね。
というわけでぼちぼちやっていきましょう。

のっぺらぼうの電気用図記号

第三種電気主任技術者試験の勉強のために本を借りて読んでいる。
わかっていることは多いけど、やっぱり練習しないとね。
知らないことも多いけど、それは新しく知らなければならない。
そうなると本を借りてやるのがいいですねってことです。


その本になれない表記がある。
電気用図記号
まず抵抗器だが、僕は普段左側のRの方を使っている。
ぎざぎざしてる方です。
ところが現在のJIS規格ではIEC規格にあわせて、右側のR、豆腐みたいなやつを使っている。
ただ、見た目からしてこれが抵抗に見えなくて困る。
あまりにのっぺらぼうみたいだから、なんかインピーダンスとか表すときに使われていたりする。
けどこれはJIS規格によれば抵抗の記号に間違いありません。
ついでにIEC規格でもそうですね。
「ヨーロッパの人と話してたら、□ばっかり書くから何かと思えば、抵抗なんですね」
ということを前に授業の時に言っていた人がいたが、確かに驚くところですね。
それで、借りてる本も抵抗はこっちで書かれているわけです。
そんな本は珍しいと思います。教科書やらも全部左の方の抵抗の記号を使っています。
親切な本ではJIS規格ではこうだが、実際にはこちらを使うことが多いので、この本でもこれを使う。
とか書いてありますけど、普通は何の断りもなくこれですわ。


もう1つ、それは電流源の記号なのですが、僕は普段は左のiの記号を使っています。
というか授業でこっちが出てきたからなんだけどね。
電流源なんて現実にはないと思うのですが、計算の都合出てくることがあります。
例えば、トランジスタの等価回路とかね。
そんなときこの記号をかいてやると。そういうことです。
直流でも交流でもこの記号です。慣れればそれは気になりません。
ただ、この記号もJIS規格では変わっていて、右のiの記号になっています。
これもIEC規格にあわせたわけですけど、なんでこんな記号なのかわかりにくいですね。
ついでにこの棒が縦になった記号もあるんですよ。
この記号の意味するところですけど、
理想的な電流源というのは内部インピーダンスが無限大なんですね。
だから丸に横向きに棒を引いて、オープンだよと示しているらしい。
それで棒が縦になった記号というのは電圧源の記号なんですが、
これは理想的な電圧源は内部インピーダンスが0、すなわちショートだと。
だから縦に線を引いてあると。
この記号はあんまりみないけどね。交流電源の記号で代用されてるのかな。
しかし直感的じゃないよなと思う。丸描いて矢印書く方がよっぽどわかりやすい。


JIS規格がどうこう言いましたが、公式の図面でもない限りは気にしなくてOKです。
JIS規格がこうだからって抵抗を□で書いても理解を妨げるだけかなと。
なんで理解をしやすくするための規格が理解を妨げるんだという話はありますけど、
まぁ多分そうじゃないかなと思います。
他にもいくつか変わっている記号があるのですが、一番大きいのが抵抗ですね。
一応、コンデンサの記号は旧規格ではなんか電極が曲がってたんですけど、
これはまっすぐになったみたいです。これは浸透してますね。
ただ電解コンデンサには電極と電極の間に斜線を引いていたんですけど、
これはどうも新規格ではしないことになってるらしい。けど現実にはそうなってるのをよく見る。
しかしこれは大きな差ではないからいいですけどね。
まぁわかりやすいように書けば誰も文句は言わないと思いますので、わかりやすいように書きましょう。
本ではそうあれど、計算用紙には自分で普段使ってる記号で書いてるわけだし。

数値である自覚を失ったchar型

C++で以前こんなことがあった。
char型の変数の数字を表示しようとしたら結構大変だったって話です。


CにせよC++にせよchar型というのは1バイトの整数型だとなっています。
だから1バイトのデータはなんでもcharなんですね。
その一方でcharの名の示す通り文字列を取り扱うときにもよく使うと。
このあたりの葛藤ですね。

#include <iostream>
void main(void){
char c=0x41;
std::cout << c << std::endl;
}

するとAと表示されます。実はchar型の変数はそのコードの文字で表示されると。
困った話ですよね。その辺も選択させてくれと。
そりゃ#include <cstdio>としてstd::printfを使えばいいんですけど。
まぁしかしここではostreamにシフト演算子を使って書き出すことばっかり考えましょう。


じゃあどうするか、というとintにキャストするぐらいしかないですね。

#include <iostream>
void main(void){
char c=0x41;
std::cout << (int)c << std::endl;
}

これで65と表示されます、めでたしめでたし。
ならいいんですけどそうもいかないこともあります。

#include <iostream>
void main(void){
char *s="肉";
std::cout << (int)s[0] <}

まぁやってみましょう。
肉という文字は日本語では1文字ですが、マルチバイトで表すしかないので文字列という体裁を取っています。
UTF-8の場合は3バイト、Shift_JISの場合は2バイトだったりしますけど、それはともかく適当な文字数あると。
その1バイト目を考えることにする。これを表示する。
それで日本語の表記のためには0x80以降の値を使っているのが普通なのだが、
環境によってはこれが-109など表示される。そっちの方が多いと思う。
実はchar型は符号付きであることが多いです。そうすると0x80以降の値は負の数になってしまうと。


困った困ったというわけでキャスト先をunsigned intにした。
そしたら負の数では無くなったが4294967187とかなる。
最上位ビットがやたらコピーされたからでしょうね。困った。
原因は簡単で-109とかいう負の数を変換しようとするからでこれを正の数にすればよいと。
というわけで最終的にはこうした。

#include <iostream>
void main(void){
char *s="肉";
std::cout << (int)(unsigned char)s[0] <}

二回castしてやっと147という数字が出ました。めでたしめでたし。


ちなみにこの問題はboost::formatにも存在します。

#include <iostream>
#include <boost/format.hpp>
void main(void){
char *s="肉";
std::cout << boost::format("%%%1$02X") % s[0] <}

これではうまくいかない。どうも%Xというフォーマットとchar型はうまくいかないみたいです。
じゃあどうしようかというとさっきの方法を使います。

#include <iostream>
#include <boost/format.hpp>
void main(void){
char *s="肉";
std::cout << boost::format("%%%1$02X") % (int)(unsigned char)s[0] <}

これでうまいことでました。めでたしめでたし。


しかしchar型は数値型だという自覚をちゃんと持っていただきたい。
C#では文字を表すchar型と数値を表すbyte型は別の物になっています。
まぁC#の場合はchar型はUTF-16の文字を格納するものだから当然違うわけですけど。
しかしCで一緒だったものはC++でも一緒になるわけですね。
それだけなら問題ではないのだが、charというのは文字を表すものであると考えて特別な扱いをすると。
こういうのはちょっと困るなぁと。
これが原因でchar型を数値を表すために使おうという気が失せてしまった。
本当に残念な事だと思います。

ドイツに戸惑う

ドイツ語の授業があるのでそこでドイツ語を勉強しているのだが、まぁ厄介だと思う。
初めてやることなので仕方ないのかな。


現在形ばっかりやっているのだが、いくつかのハードルがある。
まず1つは動詞が変化すること。
なんか英語でも三人称単数現在のときはsがつくとかありましたよね。
なんでなのかよく分かりませんよね。
あれよりかは納得がいきやすいかも知れない。
なぜならば名詞の種類によってかならず変化させなければならないから。
そうなんですよ。三人称単数現在だけじゃなくて何でも変化させないとダメなんですよ。
そこまで来たら開き直るしかないですよね。めんどくさいけど。
ドイツ語の動詞はesで終わる不定形で辞書とかには書いてあって、このesを取ってから、
主語が、ich(私)ならe、du(君)ならst、er(彼)・sie(彼女)・es(それ)ならt、
wir(私たち)ならen、ihr(君たち)ならt、sie(彼ら)・Sie(あなた・あなたがた)ならenとするわけですね。
ああめんどくさい。だから動詞を当てはめるときよく考えないと間違うわけだ。
ちなみに英語では三人称単数現在だけ変化させると言いましたけど、
どうも昔はこれぐらい複雑だったみたいです。それがいつのまにかこうなったと。
ありがたいことですが、三人称単数現在だけ残っているので何とも言えませんね。


もう1つ厄介なのが定冠詞と不定冠詞。
ドイツ語は単語の並びは結構いい加減みたいです。
じゃあ、~を、~に とか区別するのはどうするのかというと冠詞の形を見ればいいらしい。
冠詞は定冠詞のderと、不定冠詞のeinがあるわけだ。それぞれ英語のtheとaに相当すると。
そういえば英語でもaとかtheって大概必要なんだよな。しょっちゅう忘れてる気がする。
じゃあderとかeinとかつければいいのかというとそういうわけではない。
まずさっき書いた通り、~が、~の、~に、~を を区別するから4種類に変化しそうだと。
それだけで済むならよいのですが、どういうわけかドイツ語では名詞に性があると。
それが男性と女性と中性があって、あと複数もあるから、derには4×4=16種類に変化すると。
そんなの覚えられるとは思えない。まぁ全く全部違うわけじゃないんだけどさ。
ただ面白いなと思ったのは名詞の性によってそれを指す代名詞が変わるということだな。
男性名詞で書かれることは物でもなんでもer、女性名詞で書かれるものはなんでもsie、中性名詞でかかれるものはなんでもesと。
なんかめんどくさいだけのような気もするけど、おもしろいのはおもしろいよね。


まぁ初めて勉強しようと言うことだから難しいと思うのだろうけどね。
実はこれで慣れてしまえば簡単なのかも知れない。
ただ日本語では気にしないこと多いですからね。
名詞の性なんてそうだし、主語によって動詞の変化することもないですし。
ただそれは日本語が他の言語とは非常に似ていないのが原因ですからね。
逆に日本語を勉強しようとする人が見れば、
同じ意味の言葉がやたら多かったり、活用が意味不明だったり、文字が多すぎたり…
大変だろうなと思います。
それに比べれば僕は英語を勉強してからドイツ語勉強してるからなんぼか楽させてもらってると思う。
テストもありますがぼちぼちがんばりましょう。

なぜdv2を選ぼうというのか

ノートPCの件は詳細が決まりつつある。
今のところHP Pavilion Notebook PC dv2というマシンが有力かなと。
Athlon NeoというAMDのCPUを乗せている。AMDって珍しいですけどね。
ちょうどUMPCとは呼ばれなくなったPCってところです。
計算性能的にはあんまりおいしくないんですが、
画面が一般的なUMPCより解像度高かったり、メモリ、HDDが大きめだったりいいですね。
これの量販店モデルというケチったモデルをSofmapで買うのが有力かなとか。


なんでこれに行き着いたかという話ですが、
とりあえず小さなコンピュータを選びたかったと。
横幅30cmを切ることを目標に探していたわけです。
まぁUMPCなら余裕です。Ultra-Mobile PCですから。名前から見ても明らか。
ただ最近のノートPCは大きいものが多いんですよね。
それで横幅30cmを切るものは結構探さないと見つからないと。
それで画面解像度は縦にせめて768pxはほしいと。それ以下だと何を見てるのかわからなくなる。
そうなるとUMPCでは条件に合うのはなかなかないわけですね。
それでいいのはないかと探していたらいくつか出てきました。
ドスパラのCressida NB (Windows XP Home搭載で69979円)とか、
パソコン工房のLesance BTO CL305IW TYPE-S(69980円)とか。
そんな中でHPのdv2を発見したわけですが、これはこの中では一番コンパクトです。
その点ではいいんですけど、計算能力的には一番弱いはず。
Cressida NBはTurion 64 X2の1.6GHz、Lesance BTO CL305IW TYPE-SはCeleron 585(2.16GHz)、
それに対してdv2はAthlon Neoの1.6GHz、これはシングルコアです。
まぁメモリとかは大して変わりません、HDDもどれも160GBを越えるのが標準構成なので大した問題ではない。
そんななかdv2は73500円もする。高いですね。というか性能の割りにあわんような気がする。


そこが悩みどころだとおもいます。
Cressida NBはすごくいいんですけど近所に持ってる人が何人かいるんですね。
Lesance BTO CL305IW TYPE-Sはバッテリーの持ちがあまりに悪すぎるので困ると。
だから値段に納得いかない以外は非常によいと。
ただBTOじゃなくても量販店でも買えますよとあるので、その例示されていたSofmapに調べにいったと。
すると驚くことに59850円で買える。
ただ詳しく調べるとさっき言った通り、いろいろケチってあります。
DVDドライブは外付けのが付いていたのがそもそも付いてこなくなる、GPUの性能が落ちる、HDDが320GBから160GBになるとか。
そう、薄い代わりにDVDは外付けなんですよね。けど最近はバスパワーで動くからいいですね。
まぁしかしGPUはどちらにしてもAMDお得意のRadeonなので全く問題は無いでしょう。
HDDは元々160GBを想定していたので問題なし。
あとDVDですが、これは欲しいのですが、別に買えばいいでしょう。
幸いなことにBuffalo製のドライブが6480円で買えるというので、これで付与されるポイントを使えばいいでしょうと。
というわけで実質6万円程度で買うことができそうだと。
まぁ計算能力だけは低いですけど、それ以外は満足なものが見つかりました。


計算能力が必要かというのは、多分いらないというのが答えだと思います。
ただ統合開発環境を入れてコンパイルとかするときどうだろうかというのは気になりますね。
コンパイルだけは計算能力の世界ですから。
あとはメモリが大きいですけど、メモリは2GBあるので全く問題ではないし。
ただ、よく考えてみるとこのCPUって僕が以前使ってたAthlon 64のにそっくりなのよね。
あれより何段か周波数が低くて、あのときより微細化されてて消費電力が低いという感じ。
あの当時、特に問題なくC#のコンパイラは使えてましたね。
そもそもそれまで使ってたPentium 4のCPUよりよっぽど計算能力はすごかったからね。
あれと同じぐらいの性能が出るとすれば全く問題ではなさそう。
ただ心配なところではあります。


もう1つ心配なのが搭載されるOSであるWindows Vista Home Basicについて。
このHome Basicというやつは粗悪品であると評判なんですが実のところどうか。
どうせHome Premiumになるかどうかだけの話なので、Home PremiumとHome Basicの差は何かというのが重要だと。
これについてはMicrosoftのページを見れば3点の違いがあることがわかります。
Aero Glassが使えない、Windows フリップ3Dが使えない、マルチメディア関係のソフトウエアが少ない。
まず最後の点については全く問題ではないでしょう。
もちろんWindows Media Playerなどは付いています。ムービーメーカーとかです。
前2つはちょっと痛いですね。楽しいのにね。
ただ、そもそもXPでもいいと言っている人からすればどうでもいい話ではあります。
むしろその2点以外はデスクトップはVistaのきれいなのが使えると言うことです。
Vistaの問題点として上げられているユーザーアカウント制御(UAC)ですが、これは無効化するという方法もありますから、
そうすれば管理者権限をガリガリ使ってやることができます。すなわちXPと一緒に出来ると。
まぁUAC切るってどうよという話はあるけど、難しいですから。
使いこなせないのなら切った方がよっぽどいいです。
だからVistaを恐れることはないし、Home Basicを恐れることもないということですね。


まぁまだ決まったわけではないですけどね。
ただいろいろ考えてみると悪い点はそんなにないのでね。
初めは非常に計算できるマシンを買うこともできるんじゃないかと思ってたけど、
そもそも持ち運べないことに気付いて、持ち歩けることに専念したらこれだ。
B5ノートって結構需要少ないらしいですからね。そこで大きなシェアを持ってるのがLet’snoteだと聞いています。
まぁあれはかなりの高級品だけどね。
だから確かに探すのも難しかったわけだ。
しかし、AMDユーザーが探したノートPCはAMDなノートPCだったというのはおもしろい話ですね。
別に狙ったわけじゃないんですけどね。
もしかするとAMDのCPUも高く評価していることが発見の秘訣だったのかも。

飛び交う電子メールののぞき見対策

よくユーザー登録すると確認のメールが送られてくる。
最近は減ったけど、その中にパスワードが生で書いてあることがある。
あれはいろいろ怖いと思う。


1つは受信したメールがのぞき見されること。
これが一番怖いかも知れない。
もう1つは通信経路を生の文章が行き来すること。
受信にはセキュアなプロトコルを使ってるよというかもしれないけど、
一般にはSMTPは暗号化しないで行き交っていて、SMTPによりサーバーはメールを受信しているのだから。
だから送信したところから自分のメールサーバーまでの間は暗号化されていないと。
これはほぼ間違いないことでしょう。
そんなもの盗まれるのかというのはよくわからないけど可能性はあります。


じゃあどうするかというわけですが、簡単です。パスワードを送らなければいいんです。
それとか、メールだけでは利用価値のないようにしておくとか。
登録時にメールアドレスの確認を要求するサービスはあるけれど、
その確認メールにURLに飛んで行って、それで登録確定ではいたずらの可能性がある。
だからここで改めてパスワードを要求すると。
それは悪くないと思います。


それともう1つ、暗号化して送るって方法がありますね。
使うツールですがGnuPGですね。
ThunderbirdではEnigmailと組み合わせれば簡単に使えるようです。
ただし暗号化のためにはあらかじめ受取人の公開鍵が必要なので少々厄介。
それさえあれば便利かも知れません。
まぁちょっと調べてみようかなと思います。

含まない正規表現の罠

ある文字列を含まない正規表現について調べるとPerlでは(?:(?!foo).)+とある。
fooの部分には任意のパターンが来ることができる。
時々このパターンは便利で、例えばJR○○駅のうち、JR難波駅以外というのは、こういうパターンで書ける。

JR(?:(?!難波).)+?駅

まぁこんな調子で抜き出すことができる。
まぁ便利な正規表現です。


ところが調べていたらこんな欠陥が浮かび上がってきた。
というのもgankaiという文字列を含まないパターンを作ってこう調べた。

print join(',' , 'gankai'=~m/(?:(?!gankai).)+/g),"\n";

するとankaiとヒットする。確かに正解です。
けど直感的にはgankaでもいいように見えますね。
普通は頭からマッチさせていってマッチしたらそれで進めて行くという風になっています。
いくら正規表現が欲張りだからってマッチしたものを破棄してまで進めたりはしない。
なのでgankaになると思ったのですが、実際にはgから始まらず次のaから始まっている。
さらにこういうのも調べてみた。

print 'gankai'=~m/^(?:(?!gankai).)+/ ? "Hit!" : "None!";

さっきのことが本当か、先頭からマッチさせてマッチするか調べた。
するとマッチしないという。gから始まるのでは何かがだめらしい。


そこで調べて気付いたのだが、実は(?!~)っていう拡張正規表現の意味は後ろにマッチするものがないという意味らしい。
Perlの拡張正規表現には先読みと後読みという機能がある。
先読みというのはこれから読むところを先にチェックすること。
後読みというのは既に読んだところを改めてチェックすること。
例えば豚(?=肉)とすると、肉が後ろに続く豚という文字列にのみマッチする。
このように後ろにある後で読もうとすることを先にチェックすることを先読みというわけ。
逆に(?<=豚)肉とすると、豚が前に来る肉という文字列にのみマッチする。これが後読み。
このうち先読みを活用したのがさっきの正規表現。
(?=xxx)はxxxに後ろがマッチする、(?!xxx)はxxxが後ろにマッチしないという正規表現。
そして(?:(?!gankai).)+の意味を解くと、
gankaiという文字列が後ろに続かないところにある1文字にマッチするというパターンが1回以上つづくという意味。
gankaiという文字列については、gの前でgankaiという文字列が後ろに続かないという条件を満たさないので、
1文字目のgからマッチが始まらないと言うこと。その次のaの字の前から見ればgankaiという文字列はないので問題なし。
nの前にも…そして最後にiを読みとって終わり。
そのためさっきのような問題になったわけですね。


じゃあ後読みを使えばいいのかというとそういうわけでもないでしょう。
後読みの場合もそれまでにその文字列を読み取っていないかだけのチェックですから。
だから正規表現ではその文字列を含まないパターンを作るのはきわめて難しいと。
まぁ簡単なパターンを組み合わせて長い長いパターンを作るという手もあるけど。
まぁ確実なのはこんなパターンですけど。

(.+)(?(?{$1!~m|gankai|})|(?!))

ようは読み取った部分がマッチしなければいいんですよ。
コードを埋め込んだ全知全能の正規表現の記事で取り上げたとおりにそれを書きました…
けどクラッシュしました。まぁ無茶ですね。
なかなかままならないものです。
まぁ一般的には(?:(?!xxx).)+というパターンは問題ないように思います。
けどこういう問題も実は存在すると言うことを忘れてはならないと思う。
僕も今日初めて気付いたけど(?!xxx)っていうパターンは含まない文字列専用じゃないということ。
それを忘れないで欲しいですね。
それさえ分かってれば結構納得のいく話だと思います。
だって含まない文字列専用ならなんでこれと他のものを組み合わせて(?:(?!xxx).)+なんて書かないといけないのか納得いきませんからね。
これも工夫です。

ノートPC選びはCPU選び?メーカー選び?

ふと検察って誰の味方なんだという疑問を投げかける人がいたのだが、
まぁ法務大臣の味方でしょうね。ただほぼ独立して居るみたいだけど。
けど現実には法務省が担当する国に対しての行政訴訟の被告(国のこと)の代理人として出てくるのは検察官らしい。
だからそうかなと思ったんだけどね。彼らもまた法律の専門家です。
まぁそんなのだから、法律を犯したとされる人を調べて裁判所につきだすという仕事をしているわけだけどね。
しかしなんでやってるのと言われればそれが仕事だからですかね?


さて、以前話題にしたかどうかは知らないけど、僕のノートPCはVA45Jという今となっては古いものです。
非常にぶ厚く非常に重いことが特徴。
スペックも4年ぐらい前までなら悪くはないものだったと思う。
なんてったってPentium IIIが乗ってたのだから。
まぁ古いマシンの割にはってことです。当時はデュアルコアが流行る前だったから。
そしてPentium 4がうんざりされていた時代。
だからPentium III自体は結構ありだったと思う。もっともあの重さは当時でも困ったが。


ちょうどその4年前ごろに僕が今のマシンの基礎となるAthlon 64を乗せたマシンを作ったわけだが、
その当時まではそのノートPCが自分が使える範囲ではもっとも高性能だったので使ってたな。
ただそれ以後は非常に性能のいいPCが手に入ったので専らそれを使っている。
以後マザーボード・電源を1回(そのときCPUをAthlon 64 X2に変更)、電源を1回、ハードディスクを1回、メモリを2回破壊して現在に至ると。
今ではこのマシンのスペックは低い方らしいですけど、それ以後CPUのコアの性能はあんまりよくもなってないので、
CPUのクロック数を上げるぐらいしか芸のない時代を長いこと見てきた気もします。
DRAMが安くなったから、64ビットOSが流行る気配が見えてきたり、新しいコアも誕生して最近やっとHOTになったかななんて。
ただその間長いこと、そのVA45Jは日の目を見なかったわけですね。
というのもあまりに今のマシンが快適すぎて、わざわざ古いマシンを使うこともないと。
持ち歩くにも重いしね。
ただこの性質が役に立ったことがあって、Linux環境を構築してルーターの構成の練習をしたり。
なんでノートPCである点が良かったのかというとPCカードでLANを増やせたから。
しかしそれ以外はあんまり使わなかったなぁ。
1回遠出のときに持って行ったけど、あまり使い勝手は良くなかった。


さて、あまりにひどいのでそろそろ新しいノートPCを検討してはどうだろうかと言われた。
まぁさすがにこれはひどいからね。
ただ結構難しいのがどんなCPU乗せるのってこと。
少なくともIntel Core 2 Duoとか乗せておけば、それはあまりに強すぎると。
ただ驚くことにThinkPadならそんなマシンでも9万円かからずに作れるという。
あと取り扱っているところは少ないけどTurion 64 X2なんか乗せてるマシンもある。
結構性能はいいんじゃないかな。近所で使ってる人がいるんだけどね。
あとAthlon X2乗せてるマシンとか、Sempron乗せてるマシンもあるみたい。
一般的に使われているのはCeleron、一応Intel Coreシリーズの廉価版かな。
これはシングルコア。この辺のノートPCが普通にありそうなもんです。
前、借りていたノートPCがちょうどCeleron Mだったけど、まぁ普通に使えますね。
当然ではありますけど。ただ意味もなく廉価版なのが気に食わん。
まぁ今の時代シングルコアなんて廉価版以外では見ませんけど。
と思ったら未だにAMDはAthlon 64をAthlonに改名して売ってるのね。さすがAMD。
あと最近注目されてるのが、Atomってやつです。
聞けばPentium 4並の性能が出るらしいです。
実は家にもこれを搭載したマシンがあります。
ASUSのEee Boxですね。ちなみに僕のMBもASUS製。何かとASUSとご縁あります。
実際それぐらいの性能があるかは置いておいて、軽い動作なら全く問題なし。
無茶しなければ全く問題なさそうです。


まぁCPUだけで決まる問題じゃないような気もするのですが、それ以外の構成は大体決まってるようなもんです。
HDDが160GB、メモリが2GBあればいいですよと。昔ならぜいたくでしたけど、今では当然になってしまった。
まぁメモリが本当に2GB必要かはちょっと疑問ではあるけどね。
実際このマシンも1GBで動かしていても実用的ではあったわけで。もちろん2GBの方が快適ですけど。
あと無線LANも内蔵してるとなおうれしいが、これも当然になってしまった。
画面はXGAあればいいけど、これはだいぶ昔に当然になっているからこれも問題ではない。
そう考えるとどういうCPUを乗せるかという問題ぐらいしかないんですよね。
非常に悩ましいところですね。だってどれも普通に使うには全く問題ない性能なんだから。
ただもし出先で激しく計算させる必要があればどうだろうか。
そこが難しいところです。Atomでは少々心配なところではありますね。


ノートPCの場合、部品が特殊なので業者に頼んで作ってもらうしかないですからね。
今のマシンは部品を継承しつつゆっくり完成させたマシンだけどそれはデスクトップだからできたこと。
ノートPCの場合、一回買えばそれを変えることはほぼ不可能。
そのあたり悩ましいところです。
あとメーカーが多すぎるのでいろいろ調べなくては。
今はインターネットで何でも買えてしまう。むしろBTOの場合インターネット前提の面もある。
なのでいろんな面から検討したいなと。

セルフレジという道具

以前、学校の近所で何を血迷ったか大きな郵便局まで散歩で行ったとき、
あまり何もなかったのですが、そういえばオークワあったよなぁと。
それで今更それを思い出して調べてみれば、ちゃんとありました。
ちょっと通学路からは外れるものの数分歩けばつくことが分かったので行ってみた。


県道と市道の交差点で、県道側が赤点滅、市道が黄色点滅とかいう光景を見ながらたどり着いた。
細い道を歩いていたら急にお店が出てきて驚いた。
お店に入れば、まぁ普通のオークワでした。
というわけで適当に見繕ってレジに行った。
すると、レジが数台あるのですが、ど真ん中にセルフレジが4台置かれていた。
セルフレジ使う人は多いんですけど、すぐに裁けていくのですぐに使えた。
数も少ないので、さっさとバーコードを読み込んで袋に入れて、終わり。
それで支払いだが、クレジットカードも使えるというので、VISAで払った。
1000円も超えてないのにVISAで払うとか気が引けるけど、別に誰の目も気にしなくていい。
サインレスで買えた。というわけで1分もかからずレジは終わった。
その4台のレジの面倒を見る人が1人居ますけど、まぁ監視をしているだけです。


セルフレジ自体は初めてではありません。
というのもオークワというのはセルフレジ大好きで、結構導入箇所は多めです。
大規模なショッピングモールのオークワなら大概あります。
このお店はそんなんではありませんけど、比較的新しく出来たお店なので当初から導入されているらしい。
使いやすければ使う人は多いはずと思って導入したそうだ。
今日の様子を見てると案外受け入れられているようだ。よかったね。
まぁ買うものが少ない人は積極的に使っていますね。
まぁ多い人からするとあまりにかったるいので、それは普通のレジに行ってますけど。


ところで今日のお店は袋を無料配布するお店だけど、
最近はスーパーで袋をもらえないことが増えています。
実は僕は普段から袋を持ち歩いているのですけど、
そういうところでセルフレジってどうやって使うんでしょうね。
最初に乗せておけばいいのかな。というのも重さの照合を取ってるからですね。
まぁとりあえずはかり部分の上に置けばよさそうです。
なかなか置いてあるお店は少ないけど、何度も使って慣れていきましょう。
高々2回で慣れることは出来ると思います。