2008/02/28

linuxからシリアル経由でALIXに接続する

シリアルクロスケーブルを使って、メインマシンのubuntu 7.10からALIXに接続します。
でもkermit使って、接続するだけなんですよね。

$ sudo apt-get install ckermit
$ kermit
(/tmp) C-Kermit> set port /dev/ttyS0
(/tmp) C-Kermit> set speed 38400
(/tmp) C-Kermit> set carrier-watch off
(/tmp) C-Kermit> connect
これだけ。
この後に表示されるメッセージにもありますが、Controlキーと'\'キーを同時に押してから'c'キーを押すと"C-Kermit>"プロンプトに戻ります。終了するなら'exit'を打ち、ALIXに戻るなら'connect'で再接続します。

メモリが256MBあると、Javaを使ったりしない限りは余裕がありそうだけれど、これで何にするかが問題だなぁ。dhcp, dns server を動かすだけだとつまらないし、以前作った固定IPとホスト名のマッピングをなんちゃってrfc1912形式でアップデートするツールのDDNS版なんかも考えないとかなぁ。nsupdate使うと簡単そうだけれど…。

2008/02/23

ALIXとdebianのもろもろ

いろいろ便利に使うために、ちょっとした設定をしてみました。

sshdの導入
もしネットワークルーターにするつもりなら、sshdのようなネットワークログイン可能な仕組みはセキュリティホールになる可能性がありますが、今回はあまりその心配をしない事にしてsshdを動かして普段のメンテナンスはssh経由にしてしまいます。

# apt-get install openssh-server
これは特別な設定を意識せずに動かします。

ホスト名の変更
ホスト名は ns、FQDNで ns.localdomain にしたというのにログインすると元々のCFカードをUSB経由で接続していたマシンのホスト名になっているままです。 そのためホスト名をnsに変更してしまいます。

# echo ns > /etc/hostname
# shutdown -r now
結果を確実に確認するためには、一度shutdownしましょう。 いくらHDDがないとはいってもいきなり電源ケーブルを抜くわけにはいかないのでshutdownします。

sudo管理用ツールの導入
sshdによってネットワーク経由のログインができるようになりましたが、/etc/ssh/sshd_config をみると "PermitRootLogin yes" が有効になっています。 そうはいっても "PermitEmptyPasswords no" の設定もあり、"passwd"コマンドでrootユーザーにパスワードがついていないとログインできない事になります。
sshdを動かす時点で誰かがログインするリスクはありますが、rootでのログインは拒否してしまう方が良いのは確かです。誰でもrootユーザーがUNIXシステムに存在する事は知っているので、rootでのログインを試みる事になります。実際にブロードバンドルーターの設定を変更してsshdの接続を許可すると、ポートスキャンでsshポートが空いている事を察知した攻撃者がrootを含む、まぁありがちな名前でログインを試みます。
今回は自分の趣味で一般ユーザーを作成してrootユーザーのパスワードを/etc/shadowファイルから削除し'*'で置き換えてしまう、ubuntu的な手法を使うための準備としてsudoを導入しておきます。

# apt-get install sudo
# useradd -m uniqid
# passwd uniqid
# id uniqid
今後はuniqid(仮名)でログインして作業をするので、パスワードも設定しておきます。 最後のidコマンドの出力で、uniqidがグループに指定されているはずなので、このグループに所属するメンバーがsudoを自由に使えるように設定を変更します。
visudoコマンドで変更しますが、エディタとして勝手にnanoが動きます。 nano以外に変更したい場合にはEDITOR変数に希望のプログラムを指定します。 emacsが使いたければ emacs を apt-get で導入してから始めましょう。
# env EDITOR=/usr/bin/vi visudo
%uniqid ALL=(ALL) ALL
sshでuniqidでログインしてからsudoコマンドの設定を確認しましょう。
# ssh uniqid@localhost
$ sudo -l
User yasu may run the following commands on this host:
    (ALL) ALL
最後のところで"(ALL) ALL"が表示されれば、まぁ大丈夫でしょう。 それでも怖いのでrootのパスワードを消すのは、しばらく後にします。

apt-get installとapt-cache searchを組合せて必要なものを探していけば、殆どの事はコンパイラやツールなどがなくても、なんとかなると思われます。
ただし、システム管理という観点からは /etc/defautls/ 以下のファイルや /etc/init.d/ スクリプトの動きなども理解する必要があって、複数のネットワークインタフェースを持つALIX2をターゲットにすると、dhcpdサーバーはeth0, eth2だけで動かしたいとか、いろいろな要件を実現するためにまだまだ設定するところがあります。

引き続きALIXでDNSとDHCPdサーバーを構成する

さてDNSサーバーにするには、それで何をさせたいのかという所もポイントになります。 今回はDHCPサーバーにもするつもりなので、Dynamic-DNSサーバーにしていきます。 サーバープログラムの選択肢はいくつかありますが、bind9を使う事にします。 debian + dhcp3-server + bind9 の組合せでDDNSサーバーを構成する方法を解説しているサイトがあるので、これを参考にします。 Configuring Dynamic DNS & DHCP on Debian Stable

bind9かbind9-serverか、どんな名前でapt-getすれば良いのかわからない場合には、キーワードを指定して探す事ができます。

# apt-cache search bind9
...
# apt-get install bind9 bind9-host
必要な設定ファイルは/etc/bind以下に展開されています。 とりあえず /etc/bind/named.conf.options の fowarders にプロバイダのDNSサーバー名を追加しておきます。
# cat /etc/bind/named.conf.options
options {
        directory "/var/cache/bind";

...
        forwarders {
                192.168.1.1;
        };
...
次に /etc/resolv.conf を編集して nameserver で始まる行を外しておきます。 searchの指定がない1行だけなら空のファイルになります。
# cat /etc/resolv.conf
search localdomain
これで自分のbindを使ってIPアドレスを検索するようになります。

ついでなので、192.168.1.0/24の名前解決をするようにします。 とりあえずDynamic DNSの布石として、/etc/bind/rndc-keyを知っているユーザーだけが通知できるようにします。

# tail -3 /etc/bind/named.conf.options
controls {
        inet 127.0.0.1 allow {localhost; } keys { "rndc-key"; };
};
# cat /etc/bind/named.conf.local
...
zone "localdomain" {
        type master;
        file "/etc/bind/db.localdomain";
        allow-update { key "rndc-key"; };
        notify yes;
};

zone "1.168.192.in-addr.arpa" {
        type master;
        file "/etc/bind/db.192.168.1";
        allow-update { key "rndc-key"; };
        notify yes;
};

include "/etc/bind/rndc.key";
zoneの中で"/etc/bind/rndc.key"ファイルの中で指定されているkey名を書いていますが、そのファイルの"inlcude"は順番が後なんですよね。 ちょっと違和感がありますが、参考書はこう書いてあるので、とりあえずこのままにします。
fileで指定したファイルを準備します。
# sed -e 's/localhost\./localhost\.localdomain\./g' db.127 < db.192.168.1
# sed -e 's/localhost\./localhost\.localdomain\./g' db.empty < db.localdomain
作成したファイルの最後の方を少し編集していきます。
# tail -3 db.localdomain
@       IN      NS      ns.localdomain.
localhost       IN      A       127.0.0.1
ns              IN      A       192.168.1.2
# tail -2 db.192.168.1
@       IN      NS      localhost.localdomain.
2       IN      PTR     ns.localdomain.

dhcpdを導入します。選択肢はdhcp,dhcp3-serverぐらいでしょうか。 今回はdhcp==dhcp2らしいので、より新しいdhcp3-serverを使っていきます。

# apt-get install dhcp3-server
必要な設定ファイルは /etc/dhcp3 の中にあります。 適当に設定ファイルを眺めて、詳細は後で確認する事にして、次のような設定ファイルをでっち上げました。
cat /etc/dhcp3/dhcpd.conf
##
ddns-update-style       interim;
ddns-updates                on;
ddns-domainname             "localdomain.";
include                     "/etc/bind/rndc.key";

# option definitions common to all supported networks...
option domain-name "localdomain";
option domain-name-servers 192.168.1.2;
default-lease-time 600;
max-lease-time 7200;
authoritative;
log-facility local7;

shared-network localdomain {
  subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.30 192.168.1.45;
    option domain-name-servers 192.168.1.2;
    option domain-name "localdomain.";
    option routers 192.168.1.1;
    option broadcast-address 192.168.1.255;
    default-lease-time 600;
    max-lease-time 7200;

    zone    1.168.192.in-addr.arpa. {
            primary 127.0.0.1;
            key             "rndc-key";
    }

    zone    localdomain. {
            primary 127.0.0.1;
            key             "rndc-key";
    }
  }
}
ここまで設定して tail -f /var/loga/daemin.log をみているとエラーメッセージが表示されます。その中にbind9が/etc/bind以下に書き込み権限を持っていないというものがあったので、namedの実行ユーザーbindのプライマリーグループのbindに書き込み権限を付与しました。
# chmod g+w /etc/bind
# ls -adl /etc/bind
drwxrwsr-x 2 root bind 1024 Feb 23 14:09 /etc/bind

とりあえず土曜日の暇潰しにはちょうど良かったかな。 まだカスタマイズしたいところもあるけれど、とりあえずここら辺で今は終りにしましょう

2008/12/13追記

"option domain-name-servers”にホスト名を指定している場合、うまくクライアントがDNSサーバーを設定できない場合があります。IPアドレスを指定するようにしましょう。

ALIXで動くdebianをネットワークにつなぐ

調子に乗ってALIX3も購入してしまいました。そこでここからはALIX2からALIX3にCFカードを載せ替えて進めていきます。ただしそのために古い情報が残る場所もあるので、注意して進めていきます。

先日作成したCFカードを接続してALIX側でNTP, DNS, DHCPサーバーにするぐらいをしようと思います。いきなりCFカードを接続して画面の文字表示が壊れた場合にはTeraTermなどの端末プログラムのバンドレートを確認して、ブートが途中でハングアップする場合には電源を入れてメモリのカウントアップ中に's'を入力してから'm'をタイプして、mfgpt workaroundを有効にします。いままで遭遇した事象で気になるのはこれぐらいかな…。

loginプロンプトには'root'を入力してパスワードなしでログインできるので、まずは適当なパスワードを設定しましょう。

# passwd

ネットワークに接続する場合には/etc/network/interfaceに適当な記述を追加します。 ただしその前にifconfigでデバイス名を確認します。
# athlon:~# ifconfig -a
eth3      Link encap:Ethernet  HWaddr 00:ss:tt:zz:yy:xx
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
          Interrupt:10 Base address:0x1000

lo        Link encap:Local Loopback
...
と、eth0ではなくeth3から名前がついています。 MACアドレスでgrepしていくと/etc/udev/rules.d/z25_persistent-net.rulesファイルの中にeth3とこのMACアドレスを紐付けている箇所がありました。 複数のALIXでCFカードを接続していくと、こんな問題になるのだと思います。 必要に応じて適宜修正するか、後のeth0を読み替えて進めます。

# cat /etc/network/interface
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
 address 192.168.1.2
 netmask 255.255.255.0
 network 192.168.1.0
 gateway 192.168.1.1
どう書いて良いかわからなければ、最初はDHCPで起動してみるのも良いかもしれません。
auto eth0
iface eth0 inet dhcp
今回はALIXをdhcpサーバーにするつもりなので、固定IPを指定しています。 設定を有効にするには再起動するか、ネットワーク設定を行なうスクリプトを実行します。
# /etc/init.d/networking restart
ネットワークが有効になったところで必要なファイルをapt-getするので、DNSを適当なところに設定します。
# cat /etc/resolv.conf
nameserver 192.168.1.1

さらにNTPdを導入して時刻同期を行ないます。

# apt-get install openntpd ntpdate
時刻同期はRINGプロジェクトが提供しているので、そこを指定する事にします。 以下では"listen on *"としていますが、これは家庭内LANで他のマシンからの問い合わせに答えるためです。全部の手持ちのマシンからntp.ring.gr.jpに問い合わせる必要はないですから。
# cat /etc/openntpd/ntpd.conf
listen on *
server ntp.ring.gr.jp
"ntp.t.ring.gr.jp"と記述していましたが、2008/Sep/20の時点ではまだDNSがIPを返答しない場合があります。ちゃんと使うのであれば"ntp.ring.gr.jp"を使いましょう。
このままリスタートしても時刻がリセットされてしまうので、時間がずれたままになってしまいます。"-s"オプションを付けて実行することで、openntpdの起動時に強制的に時刻をntpd.confに書かれているサーバーの時刻と合わせるようにします。
# cat /etc/default/openntpd
...
DAEMON_OPTS="-s"
リスタートします。
# /etc/init.d/openntpd stop
# ntpdate ntp.t.ring.gr.jp
# /etc/init.d/openntpd start
これで時刻は合いますが、表示はUTCで表示されます。 もし日本の時刻-JST-で表示させたければ、/etc/localtimeファイルを適当なリンクに置き換えます。
# ln -sf /usr/share/zoneinfo/Japan /etc/localtime
# date 
Sat Feb 23 11:42:29 JST 2008
ここまでで時刻同期はできていますが、一応どこのNTPサーバーに接続しているのか確認しておきます。
# netstat -na | grep 123
udp        0      0 192.168.1.2:1032        210.188.213.230:123     ESTABLISHED
...
このIPアドレスがどこに向いているのかを確認するためには"nslookup"コマンドや"host"コマンドで確認すれば良いのですが、どうやらまだ導入されていないようです。 ひとまずここで終りにして、次は必要なコマンドを導入しつつ、DNSサーバーを作るところから進めていきます。

update/upgradeの実行について

ALIXでは内蔵時刻を保持するための電池を内蔵しているものを除き、時刻の設定を起動時に行なう必要があります。
CFカードをALIXに接続した後は手動で時刻を設定しない限り、"apt-get update"や"apt-get upgrade"といったコマンドを実行する事ができません。 ntpdateとopenntpdの設定を終える前に、これらのコマンドを実行したい場合には手動で時刻を合せましょう。例えば”2009年01月22日22時56分”に設定する場合は、こんな感じです。

# date 0122225609

2008/02/21

Ubuntu 7.10からALIXでブート可能なCFカードを作成する

voyageはデフォルトで/をroでマウントしたり、実用の観点からは非常に良いのですが、そのためカスタマイズが少し難しく感じたので、voyageを参考にALIX用に素のdebianが動くCFカードを作成してみました。

メインマシンのubuntu 7.10にUSBのカードリーダーを接続し、CFカードを入れ、dmesgコマンドの出力から/dev/sdgとして認識されているところまで確認します。
とりあえずext2fsにフォーマットします。

$ sudo /sbin/fdisk /dev/sdg
コマンド (m でヘルプ): p

Disk /dev/sdg: 519 MB, 519708672 bytes
16 heads, 62 sectors/track, 1023 cylinders
Units = シリンダ数 of 992 * 512 = 507904 bytes
Disk identifier: 0x18468ac9

デバイス Boot      Start         End      Blocks   Id  System
/dev/sdg1               1        1023      507377   83  Linux
$ sudo /sbin/mke2fs /dev/sdg1
$ sudo /sbin/tune2fs -c 0 -i 0 /dev/sdg1
次にdebファイルを展開します。ここでは作成した/dev/sdg1を/mnt/cfにマウントしておきます。
$ sudo mount /dev/sdg1 /mnt/cf
$ sudo debootstrap --arch i386 etch /mnt/cf
i386を指定しているのはメインマシンがx86_64だからです。ここで画面がずっとスクロールして、そこそこの時間が掛ります。次にブートローダーをMBRに導入してしまいます。
$ sudo grub-install --root-directory=/mnt/cf /dev/sdg 
ここまでで、そこそこ動くようにはなっていますが、なにしろ/mnt/cf/boot以下にカーネルイメージがありません。そこでカーネル含めいろいろapt-getしていく事にします。chrootを使って普通にapt-getします。
$ sudo chroot /mnt/cf /bin/bash
# apt-get install linux-image-2.6.18-6-486
"Do you want to abort now?"には"No"を選択し、これ以外はデフォルトの選択肢をそのままリターンキーを押して選択していきます。grubが動くように/boot/grub/menu.lstファイルを作成します。
# cat /boot/grub/menu.lst
serial --speed=38400
terminal serial
##
default         0
timeout         10
##
title           debian etch
root            (hd0,0)
kernel          /boot/vmlinuz-2.6.18-6-486 root=/dev/hda1 console=ttyS0,38400n8
initrd          /boot/initrd.img-2.6.18-6-486
savedefault
さらに/etc/inittabでtty[1-6]でのgettyをコメントアウトし、シリアルでgettyが動くようにttyS0を有効にします。
# cat /etc/inittab
...
##1:2345:respawn:/sbin/getty 38400 tty1
##2:23:respawn:/sbin/getty 38400 tty2
##3:23:respawn:/sbin/getty 38400 tty3
##4:23:respawn:/sbin/getty 38400 tty4
##5:23:respawn:/sbin/getty 38400 tty5
##6:23:respawn:/sbin/getty 38400 tty6

# Example how to put a getty on a serial line (for a terminal)
#
T0:23:respawn:/sbin/getty -L ttyS0 38400 vt100
...
シリアルで接続する際は通信レートが合わないと、画面がグダグダになってしまうので"38400"に修正します。これは原因がわからずに迷ってしまう可能性が高いところなので、TeraTermなどの端末の表示がおかしくなった場合には気をつけてください。 あとは/etc/fstabファイルです。
# cat /etc/fstab
/dev/hda1 / ext2 defaults 0 0
proc /proc proc defaults 0 0
とりあえず必要なものは後からapt-getする事にすれば、これで稼動するはずです。 まだ/etc/network/interfaceなどを準備する必要がありますが、これはALIX側でシリアル経由で行なっていきます。

2008/02/19

ALIX2ボードで遊んでみる

ヤマモトツールワークスというところから、AMD Geode 500MHzを使ったシングルボードコンピュータを買ってみた。アプライアンスなネットワーク機器を作るためのものだけあってシンプルな構成だけれど、x86ベースなのはいろいろ便利そうだ。

さっそくvoyage-0.4.1を使ってみたけれど、BIOSの設定を変更してmfgpt (Multi-Function General Purpose Timer?)を有効にしてみた。メモリのカウントアップ中に's'キーを押して、'm'を押してから抜けるだけだけれど、画面では'm'で変更されたのかわからなかった。

HDDのような物理的な駆動装置がないので遠慮なく電源落とせて簡単に試せるのがいいです。 なにしろx86ベースだし、500MHzで動くとなると、それなりにパワーも期待できるか、家のmicroATXなPCで動いているサーバー機能を引っ越しながら試してみます。

そうそうUSBなCFライタをlinuxに差して/dev/sd*として認識させたけれど、ブートローダーの設定とか普通にできるんですね。CFカードとSATAの変換器を使わないとかなと思い込んでいたけれど、手軽にCFカードに書き込みができて本当に便利でした。

2008/02/17

Visual Studio 2005でサンプルがコンパイルできない

モバイル開発環境が2008版からProfessional以上にしか付かなくなるので、駆け込みでVisual Studio 2005 Standard版を購入した。
Express版を持っていたのでアップグレードパッケージを買ったけれど、期間限定でなくなっているし、通常版を買うのは開発を専門にするような会社なのかな。

とりあえずWindows Mobileの環境は作るだけで放置する事にして、普通にC++のサンプルをダウンロードしてコードをいじりながら試してみる事にした。
ZIPファイルを展開して、*.slnファイルをオープンしてビルド!と思いきや、ビルドをスキップされてしまう…。
エラーも表示されないし、どうしたものかと思ったけれど、スタート画面から作成したプロジェクトは普通に実行できるので、メニューを適当に眺める事にした。

「ビルド」メニュー →「構成マネージャー」を起動してみると"Itanium"の文字が…。IA-64ですか、そうですか。

これをWin32に変更して無事にビルドできるようになりました。

2008/02/12

テレビを買ってみた

学部を卒業して就職する友達から貰った95年製のテレビに別れをつげて、日立のL37-XR01という液晶フルハイビジョンテレビを買いました。もらった時から数えても10年ぐらい使っているので、まぁ十分でしょう。

選択する時の基準はIPS液晶(できれば国産)と倍速駆動だけなので、パナソニック、ビクター、東芝等と比べて、単純にたまにみるテレビ番組が録画できれば良いから程度の理由で、ダブルチューナーでHDD内蔵のXR01にしてみました。

元々機能には期待していなかったので、まぁこんなもんでしょうと思います。 でもまともにテレビをみる生活をする人なら大人しく、パナソニックで液晶+HDDレコーダーを揃えてHDMI接続した方が幸せな感じになるでしょうね。

実家のアクオスな液晶+HDDレコーダーの組み合せと比較すると、XR01のEPGの機能は使いづらいし、録画した映像を選択する時のまどろっこしさは製品化する時にQAerがよく許可したなと、QAerは他社の液晶テレビを使ったことがなかったんじゃないかと思うほどです。

それでもPS3と接続して観るBlu-rayの映像は素晴しいです。 店員さんにアクオスと比べると、ぼやっとした感じになりますよ、と言われたけれど、あんなに明るくてとんがった映像よりはよほどいい。まぁ昔からパソコンの液晶もIPSだし、慣れてるのかな。

それにしてもテレビの単価って、液晶に切り替わってからすごく上がっていますよね。 何年か前にブラウン管で買い替えを考えた時には、3-5万円ぐらいで迷って止めましたからね。 考えてみるとテレビだけじゃなくて、パック当りの量を増やしたりして、何かを一つ買う時の単価は21世紀になってからだんだん上がっている。

個人の収入は増えなくても、1回の消費の単価が上がれば、企業はもうかるよなぁ。

2008/02/03

日本国憲法を考える

動画サイトをみていると、いくつか憲法改正やら9条の取り扱いについて話されているものがあった。みていて気持ちが悪くなったのだけれど、9条を守れば世界から尊敬されるとか、自衛隊は憲法違反だから解散するべきだとか、戦後与えられた憲法だから変更するべきだ、とかいう主張のベースに何があるのか見えてこない。

私は平和を真に希求するという理念と実行力を持つ事が世界に対して表明できれば良いと思っています。その点では現在の自衛隊の位置付けは恣意的に運用される可能性があり、必ずしも世界平和に貢献していない点を懸念していますが、自衛隊の存在が悪いとは思っていません。
ただし戦争の後の文化的な復興を日本が強いリーダシップを持って行なうような、PKOのような活動ではないところに、アメリカから頼まれなくても向っていく集団が欲しいと思っています。

9条の存在、自衛隊は持たず、非武装、非抵抗が世界から尊敬されるという人たち。

憲法改正に賛成と聞いて、自衛軍創設を支持するのだと脳内変換する勘違いな人たち。

アメリカの尻拭いのようなPKO活動に参加するために憲法を改正しようとする国を自分の物だと勘違いしている人たち。

どの道をいっても中国に占領されるか、何もかわらないか、アメリカの召し使いになるか… 将来に希望を持つ事ができません。
具体的な大きな目標を掲げて、現在の憲法改正の大きな動きの中道を行くような将来のビジョンを持って行動できる人たちはいないのでしょうか。

けしてそれぞれの人達の言う事自体が悪いとは思っていなし、その中にはとても良い事が含まれているけれど、その根底にある、その人を突き動かしている物を考えた時に、平和を訴える人達にも、軍拡に進みたい人達にも、ぞっとしたものを感じます。

2008/02/02

X Windowに絶望する

某Webサイトのオープンソースソフトウェア解説漫画やら、何も知らないであろう職場の同僚や後輩が「いっくすうぃんどう」と発言しているのをみると、「エックスでいいんじゃない?」と思います。

職場では、タイミングをずらして訂正しますが、やはり手遅れで認知度が低いようです。
まぁ細かいところにこだわるのは本筋ではないのですが、「それ違うでしょう」というお客様のツッコミに反応できるだけの知識もないとなんですよね。

まぁ普段はそれでいいけれど、「X」の正式名称がわざわざ定義されていて、それ故にこだわる人がいる事だけは覚えておきましょう。

記憶と情報のはざま

昔、祖母が使わなくなった物を押し入れに入れていた事を不意に思い出しました。何に使うという事でもなかったけれど、私も包装紙を保存しておけばブックカバーに転用したりできるかなって少し思いました。最近はブックカバーに少し凝っているので。

それからいろいろ思い出して、お菓子作りやら御飯やら料理が得意だった祖母は、いつだったか学生でろくに自炊をしない私に「いまの時代は外で買ったもの食べてもおいしいものね。むかしはそんなにおいしいものなかったわ〜」といっていた事を思い出します。
今は餃子の農薬問題やら食品添加物が問題になったりするけれど、保健所やら行政が頑張っているせいか変なものはあまりないようです。それなりに幸せな時代っていう事なんでしょうか。

そんな祖母は婦人向け雑誌のレシピの切り抜きをやたら残していましたが、昔はいまみたいに情報がこんな安価に流通していなかったから、そういう情報を残しておく癖がついたんでしょうね。
押し入れの他のものも、もったいない、というよりも次に手に入るチャンスがあるとは思っていなかったんでしょう。いまでは大抵のものは後で手に入れたものの方が良いものがあるという雰囲気です。

いまは、何の保証もないですが、レシピや探し物は簡単に探す事ができます。
自分が必要としている情報は検索したり、簡単に探せるところに"誰かが残してくれている"と思って安心しているということはないでしょうか。
あるいは後から手に入れるものの方が品質が高いと思っているのかもしれません。

雑誌の記事ならその会社がある程度の信頼性(保証なし、信用のみ)を担保してくれますが、匿名性が高い、今のインターネットの使われ方は少し危険な方向を向いているのかもしれません。
誰が何を書いたかトラッキングできる概念を持つザナドゥは、実現してはいませんが、一定の方向性をいまだに持ち続けているという意味で偉大な発明(概念)だと思います。
いまの時代に私たちは手に余るコンピューティングパワーを手に入れて、何をするんでしょう。 今まで手に入れる事ができなかったものをどんどん手に入れていくこの時代に何をするべきなのでしょうか。

インターネットに完全な本人確認は不要だと信じていますが、確かに何かには必要なんでしょう。 それがNGNなのか、Carnivoreのような検閲の仕組みなのか、また違うもので実現されるのかわかりませんが。