モバイル

最近ノートPCを持ち歩くようになったので,いわゆるモバイル・インターネット接続について検討している。仕事場や自宅には無線LANのアクセスポイントを置いてあるので問題ないのだが,欲は出るもので,出先や移動中にちょっと接続できたらいいな,って思ったのだ。携帯端末でメール打つのいやだしね。本体は Windows 7 Pro。さあいってみよう!

まずはUQ WiMAXの15日間無料お試しから。秋葉のツクモに行ってUSB接続端末をゲットしてくる。無線LANを切断し,ウイルスバスターのファイアウォール設定を厳しめに設定してから端末を差す。ほお,CDドライブとして認識されたな。ユーティリティーソフト(NEC製らしい)がインストールされ,引き続きドライバのインストールが始まる・・ありゃ,「デバイス ドライバー ソフトウェアは正しくインストールされませんでした」ですってよ? 仕方がないのでUQのサポートサイトへ行き,最新のドライバを落としてインストールし直したら,今度は成功。どうもWindows 7のユーザーアカウント制御にひっかかっていた感じがする。でも,ここには別にインターネットに接続できるマシンがあるからいいけど,ノートPC1台だけの人はどうしたらいいんだろうね? 電話サポートとCD送付,とか? とにかく接続に成功,IPアドレス119.107.xxx.xxx(一応スミ塗っとく)が割り当てられた。電波状況は「弱」だが,ほとんどストレスなく通信できる。あとはあちこち持って行って試してみよう。なおUQのサポートサイトはなかなかよくできていてわかりやすい。

次に,docomoのfomaでOCNのアクセスポイントに64kダイヤルアップを試してみる。ドコモショップへ行って「fomaでダイヤルアップ接続したいのでUSBケーブルください」と言ったら,若いおにーさんは真顔で「ダイヤルアップって何ですか」と聞く。絶句。というか,かなりショック。そうか~,もうこの言葉は通じないのか。とにかくケーブルを入手し,本機(P-04A)付属のCDからドライバをインストールしようとすると・・「パソコンにインストールされているOSはサポートしていないためインストールできません」・・ああそうですか,まあそうでしょうね。Windows 7なんて知らないですよね。で,これまたdocomoのサイトから最新のドライバとユーティリティーをダウンロード,インストールして起動する。接続ウィザードはわりとよくできていて,プロバイダからOCNを選択するだけでアクセスポイントの電話番号も入力不要。接続に成功,219.161.xxx.xxxが割り当てられた。こっちは従量制だから恐ろしいのですぐ切断。

とまあ,2種類の接続に成功したわけだが,わたしのように昔からモデムとかでヒドイ目にあいつつ接続していたような者はこれでも「ずいぶん楽なもんだな」と思うが,シロウトさんは「インストール失敗!」で既にパニックではないだろうか。接続機器を購入したら,店頭で接続できるところまでやってもらった方がいいかもしれない。

| | コメント (0) | トラックバック (0)

そもそもどうなっているのかということ

「パソコンへの理解を深めたいが,どうしたらいいか」といったことを聞かれることがある。単にワープロの使い方とかメールの送受信とかに習熟したいという話であれば,ハウツー本を読むとか教室に通うとかでいいだろう。マイクロソフト公認資格の世界大会なんてのもあって,日本の学生が入賞しているそうだ。だが,「パソコンへの理解を深めたい」という要請には,それ以上のものが含まれていることが多い。自分でプログラムを作りたい,OSについて知りたい,ネットワークの設定を知りたい,・・・そうなると,とたんにAPIだとか16進数だとかTCP/IPだとか難しそうな異世界がどわっと襲いかかってくるのである。

「ことりさんはどうやって覚えたんですか」という質問には「徹夜を繰り返し,いじりまくった」というしかない。要するに時間をかけただけなのだ。とはいっても,当時はハードもソフトも今から見れば原始的だったから,「そもそもどうなっているのか」を知ることができた,あるいは知る余裕があった,というのは確かだとおもう。マシン語(アセンブリ言語ですらなく,16進コードを直接打つ)を書いてみたり,メモリをダンプして0番地から全部眺めてみたり,などいま思えば妙なことをやった記憶がある。

題名は忘れたがあるSF作品で,無人惑星に救命ポッドで不時着した主人公が,手持ちの道具で鉱石を掘るところから始め,金属を精錬してさまざまな道具や部品を手作りし,コンピューターや通信機も組み上げて,ついにはまともな宇宙船を建造して故郷に帰る・・・というのがあった。突っ込みどころは多々あるが基本はそういうことで,「そもそも」を知っていれば道がひらける可能性がある。

まあ,ガラスを吹いた手作り真空管でフリップフロップ回路を組んでプロセッサとメモリをつくり,手巻きのコイルを小川の水車で回して作った電気でその原始的コンピューターを動かして軌道計算をする,なんてスキルはとても実用的とはいえないわけだが,「プリウスが止まらない」とか訳のわからないことを言っている人を見るにつけ,「そもそも」を知らなくてもモノが使えることの恐ろしさを改めて感じるのである。

(おまけのひとりごと)
マイクロソフト公認資格の世界大会では,競技中に停電させてその後の対応を採点する,とかいうのはないんだろうか?

| | コメント (1) | トラックバック (0)

Null と空文字列

tabledesign
テーブルのデザインで,テキスト型フィールドのプロパティとして「値要求」と「空文字列の許可」がある。デフォルトでは「値要求」は「いいえ」,「空文字列の許可」は「はい」になっている。ということは,当該フィールドは

  1. 値を入れない(Null)
  2. 空文字列("")
  3. 何らかの文字列("なんらかのもじれつ")

という3種類の値をとる可能性があることになる。

Null と空文字列はどう違うのだろうか。

tabledatasheet
たとえば,テーブル [昼めし] には日付/時刻型フィールド [日付] とテキスト型フィールド [メニュー] があり,毎日その日の日付と食ったものを記録するものとする。8月1日はひばり食堂で山菜うどんと竹輪の磯辺揚げを食べた,そこで日付が 2005/08/01 のレコードにはメニューとして "山菜うどんと竹輪の磯辺揚げ" という値を入力する。

2日は何かを食べたのだが,何を食べたか忘れてしまったので,とりあえず空欄にしておき,後で思い出したときに入力することにした。3日は顔なじみのインド料理店で3種類のカレーとナンのランチセットだった。4日は何も食べなかった(昼めしヌキだった)。

さて,このように入力されたデータを基に,「8月中に昼めしヌキだった日数は何日あったか?」という集計を行いたいとしよう。クエリーをデザインし,[メニュー] の抽出条件に Is Null と書けば,メニューの値が Null であるレコードを抽出することができる。・・ところがその中には,「何を食べたか忘れてしまったので,とりあえず空欄にしておいた」2日が含まれてしまう! 2日はあくまでも「とりあえず空欄にしておいた」に過ぎないのであって,決して「昼めしヌキ」ではないのにもかかわらず。

このような事態を回避するにはどうしたらよいのか? ひとつの方法は,何を食べたか忘れてしまった日は空欄にするのではなく "不明" とでも入力しておくことである。だが本当に「不明」という名称の料理があったらどうするのか?(#ねえよ・・)

そこで,こうする。・・2日のメニューには「未入力」という意味で Null を入力(実際には,何も入力しなければ Null となる)し,4日の方には「何もないものを食べた」という意味で空文字列を入力するのだ。明示的に空文字列を入力するには ""(連続したダブルクォーテーション2個)とすればよい。そして,「8月中に昼めしヌキだった日数は何日あったか?」という集計を行うクエリーでは,[メニュー] の抽出条件に "" と書く。それはメニューの値が空文字列であるレコードを抽出し,Null であるレコードは対象にしない。

このように,「未入力である状態」と「あえて空白を入力した状態」とを区別したいとき,Null と空文字列を使い分けて対応することができる。

しかし,Null と空文字列は,一見して見分けがつかない。見た目ではどちらも空白である。にもかかわらず,抽出条件で Is Null とした時は Null だけが,"" とした時には空文字列だけがマッチする。これは混乱の元であり,意識していないとバグにもなる。

というわけで,ことりは原則として空文字列を使用しないようにしている。すなわち,テーブルをデザインする時,テキスト型フィールドの「空文字列の許可」は「いいえ」にする。そうすれば,空欄に見えるものは必ず Null であり,空文字列は存在しないから,すっきりする。

tabledatasheet2
では,何か食べたのだが何を食べたか忘れてしまった8月2日と,本当に何も食べなかった8月4日を,どう区別すればいいのか? ・・それには別にもう一つ,「食べたか食べなかったか」を記録する Yes/No型のフィールドを設ければよいのだ。

(記事の内容は Microsoft Access 2003 SP1 で確認しています)

| | コメント (2) | トラックバック (0)