メイン

2006年6月 8日

CPUを換えてみた

Socket939のAthlon64 3500+ (NewCastleコア)をもう2年くらい使い続けてたんだけど、ふと思い立ってデュアル・コアのAthlon64x2 4200+に換えてみた。(ヤフオクで購入。SocketAM2が出たので、939のCPUは出モノが多いと思われる)

マザー・ボードはASUS A8V Deluxeで、64x2が出るよりだいぶ前のモデルなのだが、BIOSアップデートで対応可能。CPU&クーラーを交換して起動したらWindowsXPはあっさり起動した。最初Cool'n'Quietは効いてないようだったのだが、AMDのサイトから64x2用のCPUドライバーをダウンロード&インストールして再起動したら解決。

このマシンにはデュアル・ブートでUbuntu Linux 6.06 LTS AMD64も入っている。起動してみたら、OS自体は起動するにはしたが、gnomeの起動でコケてCUIモードに。こっちのOSはさほどカスタマイズしてるわけでもないし、すっからかんなので、OS再インストールがてっとりばやそう。

肝心の64x2 4200+の使用感だが、まだあまり使ってないので、あまり言えることは無い。重いプロセスが走ってるときの動きはシングル・コアのときに比べて明らかに軽い。CPUファンがうるさくなるのではと危惧していたのだけど、64 3500+とほとんど変わらなくてホッ。CPU本体に付属してたクーラーはヒートパイプがついてて、フィンも張り出し、3500+のものと比べてかなりごっつい。銅も使ってある。この辺でファン回転数は上げずに発熱増分を吸収しているのだろうか。アイドリング時のCPU温度は40℃を切っていて十分冷えている。

2006年6月 6日

『たのしいRuby』 つづき

5月31日の記事に引続き、『たのしいRuby』をネタに別解あそび。

ハッシュは「順番を保存しない」という特徴がありましたが、ハッシュを使って、順番を保存するハッシュ、OrderedHashクラスを定義してください。 このOrderedHashは、以下のような動きをすることとします。

oh = OrderedHash.new
oh["one"] = 1
oh["two"] = 2
oh["three"] = 3
oh["two"] = 4
p oh.keys #=> ["one", "two", "three"]
p ph.values #=> [1, 4, 3]

で、これが添付の回答↓
class OrderdHash

  def initialize()
    @keys = Array.new()
    @content = Hash.new()
  end

  def [](key)
    @content[key]
  end

  def []=(key, value)
    @content[key] = value
    if !@keys.include?(key)
      @keys << key
    end
  end

  def delete(key)
    @keys.delete(key)
    @content.delete(key)
  end

  def keys()
    @keys.each{|key|
      @content[key]
    }
  end

  def each()
    @keys.each{|key|
      yield(key, @content[key])
    }
  end

end

if __FILE__ == $0
  oh = OrderdHash.new()
  oh["one"] = 1
  oh["two"] = 2
  oh["three"] = 3
  oh["two"] = 4
  p oh.keys()
  oh.each{|key,value|
    p [key, value]
  }
end

ここはやはり継承を使いたいでしょう、ということで別解↓
class OrderedHash < Hash
  def initialize
    @keyodr = Array.new
    super
  end

  def keys
    @keyodr
  end

  def values
    @keyodr.collect{|k| self[k]}
  end

  def []=(_key, _value)
    @keyodr << _key unless @keyodr.include?(_key)
    super(_key, _value)
  end

  def delete(_key)
    @keyodr.delete(_key)
    super(_key)
  end

  def each
    @keyodr.each{|k| yield(k, self[k])}
  end
end


oh = OrderedHash.new

oh["one"] = 1
oh["two"] = 2
oh["three"] = 3
oh["four"] = 4
oh["two"] = 0.2
oh.delete("one")
p oh.keys
p oh.values

oh.each{|key, value|
  p [key, value]
}

続きを読む "『たのしいRuby』 つづき" »

2006年5月31日

『たのしいRuby』

ちょっと前に読んだ。それ以来、おれ的にはちょっとRubyブーム。本書はRubyの入門書として評価が定着している(らしい)。プログラミング自体の入門書としてもいいかも。
結構気の利いた練習問題が収録されているので別解など考えて遊びたい

例1

"七千百二十三"といった、漢数字による数の表現を、「7123」のような数値に変換するメソッドkan2numを定義してください。

本書付属の答え

def kan2num(string)
  digit4 = '0'
  digit3 = '0'
  digit2 = '0'
  digit1 = '0'

  nstring = string.dup
  nstring.gsub!(/一/,'1')
  nstring.gsub!(/二/,'2')
  nstring.gsub!(/三/,'3')
  nstring.gsub!(/四/,'4')
  nstring.gsub!(/五/,'5')
  nstring.gsub!(/六/,'6')
  nstring.gsub!(/七/,'7')
  nstring.gsub!(/八/,'8')
  nstring.gsub!(/九/,'9')

  if nstring =~ /((\d)?千)?((\d)?百)?((\d)?十)?(\d)?$/
    if $1
      digit4 = $2 || '1'
    end
    if $3
      digit3 = $4 || '1'
    end
    if $5
      digit2 = $6 || '1'
    end
    digit1 = $7 || '0'
  end
  return (digit4+digit3+digit2+digit1).to_i
end

if __FILE__ == $0
  print kan2num('七千百二十三'),"\n"
end

別解

折角なので万や億まで対応させたい(そうするとアルゴリズムが少し複雑になる)
def kan2num(kan)
	bignum = 0
	num = 0
	n = 0

	kan_array = kan.split(//)
	kan_array.each{|k|
		case k
		when '一'
			return nil if n != 0
			n = 1
		when '二'
			return nil if n != 0
			n = 2
		when '三'
			return nil if n != 0
			n = 3
		when '四'
			return nil if n != 0
			n = 4
		when '五'
			return nil if n != 0
			n = 5
		when '六'
			return nil if n != 0
			n = 6
		when '七'
			return nil if n != 0
			n = 7
		when '八'
			return nil if n != 0
			n = 8
		when '九'
			return nil if n != 0
			n = 9
		when '十'
			if n == 0
				num += 10
			else
				num += 10*n
				n = 0
			end
		when '百'
			if n == 0
				num += 100
			else
				num += 100*n
				n = 0
			end
		when '千'
			if n == 0
				num += 1000
			else
				num += 1000*n
				n = 0
			end
		when '万'
			bignum += 10000*(num + n)
			num = 0
			n = 0
		when '億'
			bignum += 100000000*(num + n)
			num = 0
			n = 0
		else
			return nil
		end
	}
	
	bignum + num + n
end

kan = "三億千二十五万二千五百十二"
p kan2num(kan)

例2はまたこんど^^

2006年5月26日

たけしのコマネチ大学数学科

これ先週から見始めた。結構おもしろい。 昨夜の問題は「ヨセフスの問題」

問題が出たところで、再生をポーズして自力で考えてみた。カードがn枚の時、1からnを時計の文字盤よろしく輪に並べて、2から初めてひとつおきにカードを捨てて行き、それをグルグルと続ければ良いことはわかった。で、一周ごとにカード枚数は約半分になって行くので、答えはnを超えない最大の2のベキ乗をnから減じた残りのホニャララだろうな、と予想。で、いくつかの2のベキ乗を含む数通りのnについて実験した結果、答えは2*(n - (nを超えない最大の2のベキ乗))+1に違いない!とguess。n=200のときは2*(200 - 2^128) +1 = 2*(200 - 128)+1 = 145

…というあまり数学的とはいえないアプローチで取りあえず答えを出して、番組の続きを見た。ふむふむ、こういうふうに再帰的に解く訳ね。

この問題の解法をコーディングしてみた。子飼さんのブログの真似ですけど^^

言語は最近覚えたばかりrubyで。

まずは、エレファントな、すなわち力任せなやりかた。なにしろ覚えたてなのでダサいコーディングしてるかもだけど…

def josephus(n)

  arr = Array.new
  (1..n).each {|i| arr.push(i) }

  loop {
    t = arr.shift
    arr.push(t)
    t = arr.shift
    return t unless arr.size > 0
  }
end

josephus(n)を再帰的に定義するやり方もrubyでそのまま定義できるはずだけど、省略。で、解の公式的なコードとしては、

def josephus3(n)

  s = sprintf("%b", n)
  Integer("0b" + s[1, s.length - 1] + "1")
end

2進数に変換して文字列操作だけでやってみた。

続きを読む "たけしのコマネチ大学数学科" »

2006年5月22日

Buffalo HS-D300GL

GW前のことになるけど、BuffaloのHS-D300GL(以降、HS-DGLと略)を買って来て使っている。これ基本的にはNASなんだけど、同社製のTVキャプチャー・ユニットをUSBで接続してTV番組を録画できる他、ネットワークに接続されたPCやdlna対応機器に生あるいは録画済みのTV番組を配信する機能がついている。

この機械、買って来た翌日にファームウェアをバージョンアップしようとしたら、どういうわけか白目を剥いてお倒れに、もとい、インジケーターをチカチカ点滅させて意識不明になってしまわれたので、いきなり宅急便で名古屋にドナドナ。GW明けて旅行から帰って来たら別個体に交換されて家に帰って来ていた。お、GW挟んでるのに、対応早いじゃん^^

使い始めたら、ファンの音が少し気になった。NASの分際でMac miniよりうるさい。というかMac miniが静かすぎるのかな。Mac miniも負荷がかかるとシュォーンと音をたて始めるのだが、これは「ボク、マケナイゾー!ガンバルゾー!」と言ってるようでむしろ愛おしくなる。しかし、負荷もかかってないのにうるさいHS-DGLは結構ウザい。

TV録画機能は普通に便利に活用中。

ちょっと問題あるのはNAS機能の方だ。Windows XPからだと問題ないのだが、Mac OS XでHS-DGLのボリュームをsmbでマウントすると日本語のファイル名が文字化けしてしまうのだ(ちなみに、Windows XPのファイル・システムをsmbでOSXにマウントしても文字化けは起こらない)。afpでマウントすると、ファイル名は化けないのだが、今度はファイル名の長さに制限ができて、それを超える名前のファイルは表示されなくなる。

で、なんとかならないかなといろいろググって初めて知ったのだが、HS-DGLと、同じくバッファローのHDシリーズと、玄人志向の玄BOXはハード的にはほとんど同じモノで、PPCが入っててLINUXで動いているらしい。ファイル・システムはext3で、分解してHDDを取り出してPCに取り付けると、LINUXでマウントできるらしい。それでもってtelnetを入れると、リモート・ログインできるようになって、いじり放題に。そうしてsambaのバージョンを上げると文字化け問題も解決かも…なるほど〜今度やってみよう。

2006年4月 4日

虎調教日記 〜 Apacheもリビルド編

OSX 10.4 TigerにはApache1.3が標準で付属しているにもかかわらず、Apache2を使いたいということで、わざわざ自分でインストールしたのは前述の通り。問題なく動いている様子だったのだが、以前PHPで書いたWebアプリを走らせてて気がついたのだが、mod_rewriteが使えない。調べたら、mod_rewriteをはじめとする多くのモジュールはコンフィギュア時に使えるように指定しないといけないらしい。うん、確かに今使ってるApacheをビルドしたときには丸裸でコンフィギュアしたような覚えがあるもんな〜。

ちなみに、旧サーバーはSUSE Linuxで動いてたわけだけど、SUSE LinuxてYaSTがもの凄くよくできているために、ユーザーは甘やかされて、この辺のことは知らないまま通り過ぎてしまうのだ。

で、Apache 2.2.0のリビルド。ちょっと試行錯誤した結果、下記のようなコンフィギュアになった:

./configure --enable-mods-shared=most --enable-so

通ったら、make cleanした後、make。

ServerRoot/conf/はカスタマイズしているので、インストール前にconf.saveにmv。
さらに、ServerRoot以下のbin、lib、modules、includeなどをrmしたのち、sudo make install。

新しくできたhttpd.confを、conf.saveにとっておいたhttpd.confとつき合わせながら編集。新しいhttpd.confでは大量のモジュールをロードしている(ServerRoot/modulesには沢山のモジュールができている)のだが、当座使わないものはコメントアウトしておく。

で、apachectl configtestしたのち、sudo apachectl restartで再起動で動作を確認。

この後、PHPをもう一度ビルド、インストールしなおす。単にmod_php4.soを取っておけばいいだけなのかもしれないけど、念のため。

で、再度、apacheを再起動して完了。mod_rewiteは使えるようになった。

2006年4月 2日

虎調教日記 〜 PHPリビルド編

以前PHPで書いたWebアプリをMac miniにインストールしてみたが、うまく動かなかった。どうも画像処理関係の関数が動いてないようだ。調べてみたら、imagecreatefromjpeg()とかの関数を使うにはPHPをビルドするときに--with-gdを付けてコンフィギュアしなければならないらしい。

さっそくやってみたら、libjpeg.a、libpng.aなどのライブラリーや関連のヘッダファイルが必要なことが判明。これらのファイルは/swや/opt/localに散らばってる(ややこしいことに、libjpegはFinkで、libpngはDarwinPortsでインストールした)のだけど、configureのオプションで指定してもうまく認識されないので、えいやと/usr/libや/usr/includeにln -sで持ってきて、configureとmakeを通した。もっとスマートな方法があるはず、とは思うんだが。

とりあえず、問題のWebアプリは正常に動作するようになった。

続きを読む "虎調教日記 〜 PHPリビルド編" »

2006年3月22日

虎調教日記 〜 SpamAssassin編

先日セットアップしたPostfix + Dovecotのメール・サーバーに、新たにSpamAssassinを組込んだ。
arrowlogo.png
いや、こいつはすごい。導入以来、今のところ14通のスパムが来てるんだけど、防衛ラインを突破したのは1通だけで、残り13通は撃墜。で、突破したスパムは専用フォルダに入れて、SpamAssassinに学習させる、と。

SpamAssassinを導入する上で、このブログ記事がとても参考になった→13Hz!: Postfix + SpamAssassin + DovecotでMaildirなメールサーバー

上記の記事で前提になっているのはLinux (Fedora Core 2)環境だけど、OSX 10.4 Tigerの環境でもprocmailやSpamAssassinの設定に関しては同様といっていい。procmailはOSX 10.4には標準でインストール済。SpamAssassinは、上の画像からリンクされている本家サイトよりtarballをダウンロードしてビルド&インストールした。SpamAssassinはPerlのモジュールなのだが、依存する他のPerlモジュールやプログラムがあるので、あらかじめそれらをインストールしておく必要があり、多少手間がかかる。

procmailからのSpamAssassinの呼び出しは実際は/usr/bin/spamcというコマンドを介して行われる。spamcが動くには、spamdデーモンが必要。例によってLingonで、

/usr/bin/spamd -d -u daemon

というコマンドでユーザー・デーモンSpamAssasinを登録。そうすると、launchdのための/Library/LaunchDaemons/SpamAssassin.plistというファイルがLingonによって自動的に作成される。spamd起動コマンドはこれでいいのかな?ま、とりあえず動いている。

それから、/etc/procmailrcは、スパムと判断されたメールを自動的にフォルダSPAMに放り込むためため、次のようにした:


PATH=/bin:/usr/bin
MAILDIR=$HOME/mail
LOGFILE=$MAILDIR/procmail.log
LOCKFILE=$HOME/.lockmail

:0fw
*!^X-Spam.*
|/usr/bin/spamc

:0 :
* ^X-Spam-Flag: YES
$MAILDIR/SPAM


最後の3行を付足しただけ。procmailのスクリプト初めて書くんだけど、これもとりあえず動いてる、ということで^^

2006年3月17日

虎調教日記 〜 Movable Type編 → サーバー移行

OSXにMovable Typeをインストールしたんだけど、これが意外と手間がかかった。オプション機能を使うのに必要ないくつかのPerlモジュールをインストールしないといけないのだけど、perl -MCPAN -e shellで起動する対話型モジュール・インストーラーが(とても便利ではあるのだが)依存性のチェックという点で必ずしも完璧ではないのだ(インストーラーがというよりモジュール定義ファイルが、というべきか)。それでいくらか手作業が必要になった。

で、インストール完了後は、旧サーバーから吐出しておいたブログの過去ログを新サーバーのMovable Typeにインポート。このとき、記事から参照している画像等のファイルをあらかじめコピーしておかないと、参照部分が消去されてしまうので注意。

ルーターの設定を変更して、外向けのHTTPを新サーバー(Mac mini)に切換えた。その後、namedも新サーバーに移行して、ようやく旧サーバーの電源を落とせる運びに。革命的に静かになった!

2006年3月14日

虎調教日記 〜 dovecot編

Mac miniサーバー化作業の続き。

ウェブ関係は目鼻が付いたので、次はメール関係に取りかかることにした。

MTAは迷うことなくPostfix。これはSUSE Linux上で以前から使ってて、OSX 10.4にも標準で入っている。現サーバー上のmain.cfを参照しながら、OSX上のmain.cfをサクサク編集。そして、mailコマンドで自分にメールを送ってテスト。あっさりできた。

問題はMDAの方だ。旧サーバー上で稼働してるのはCyrus IMAP。これは高パフォーマンス、高機能なMDAなんだが、個人用の小システムで使うにはいささか「おおげさ」な感がある。依存するソフトが多くてインストールも設定も結構大変だ。ほかにUW-IMAPとかCourier-IMAPとかあるよな〜どうしようかな〜と迷っていたところ、友達からdovecotのことを聞いた。最新バージョンは1.0 beta3と、まだ新しいソフトなんだが、Red Hatで標準になっているとのこと。ちょっと使ってみるかという気になった。

dovecot 1.0 beta3はOSX 10.4上で問題なくビルド&インストールすることができた。設定は、なにしろ無知なもので、少し試行錯誤が必要だった。設定法を詳細に説明することはしないけど、要点だけかいつまんで記しておきたい。(自分メモともいう)

dovecot専用ユーザーdovecotを追加しておかなければならない。

/usr/local/etc/dovecot-example.confを/usr/local/etc/dovecot.confにコピーして設定ファイルのひな形とし、これを編集していくわけだけど、修正すべき個所はそんなに多くない。目指す設定にもよるけど、2つだけポイントを紹介すると、まず、暗号化を施さない平文によるログインを受付けるためには、

#disable_plaintext_auth = yes

を↓

disable_plaintext_auth = no

と変更する。それから、

#mail_extra_groups =

は↓

mail_extra_groups = mail

とする。これをやらないと、dovecotが/var/mail/にアクセスしようとしたとき、Permision Deniedが出てしまう。

dovecotがPAMを使ってユーザー認証できるように、/etc/pam.d/にdovecotに対応した定義ファイルを設置しなければならない。これは、

sudo cp /etc/pam.d/ftpd /etc/pam.d/dovecot

などと、他のアプリのものをコピーすればOK。

ルーターの設定を変更して、メール・サーバー機能に関してはMac miniに移行した。dovecotはDarwinPortsにも入ってるんだが、ここからいれれば、もっと簡単だったかな。

そのうちSpam Assassinを入れてみたい。

続きを読む "虎調教日記 〜 dovecot編" »

2006年3月11日

虎調教日記

mysql

バージョンどれにしようかと迷ったけど、本家サイトでOSX10.4向けバイナリが提供されてる5.0.18をインストールした。

mysqlの最新バージョンは5.0.19で、OSX10.3向けならこれのバイナリーが提供されている。このバイナリをOSX10.4に入れても動きそうな気もするけど、どうなんだろ。ソースからコンパイルする手もあるけど、mysqlはコンフィギュレーションでパフォーマンスが結構変わるらしいのでやめといた。

バイナリのインストールは基本的にクリック、クリックだけで至極簡単。しかし、その設定には気をつける必要がある。mysqlのキャラクター・セットはデフォルトではlatin1になっているのだが、これでは日本語アプリケーションと連動させたとき、文字化けが起きてしまう。/etc/my.cnfを適宜設定すれば、起動時にキャラクター・セットが自動的にutf8になる。おれの場合は、mysqlインストール・ディレクトリの下のsupport-files/my-medium.cnfを/etc/my.cnfにコピーした上で[mysqld]ブロックと[mysql]ブロックの末尾に次の一行を加えた。

default_character_set = utf8

PerlのDBIとDBD::mysql

Perlからmysqlを操作するためのモジュール。後にインストールするMovableTypeはPerlで書かれていて、DBとしてmysqlを使うならこれらが必要。CPANから入手してインストール。簡単なスクリプトを書いて動作検証したところ問題なく動作。

PHP

OSX10.4にはもともとPHP4.4.1入ってるんだけど、自分で入れたapache2と連動するように、新規に4.4.2をインストール。元々のPHPを使うやりかたもたぶんあるんだろうけど、面倒なので安易に流れる^^

で、簡単なスクリプト書いて、mysqlとの連動も含めて動作検証。とりあえず問題無し。

MovableType

本番のインストールはApache2のヴァーチャル・ホスト設定をした後ということになるけど、とりあえずmysqlとの連動を検証したかったので、仮インストール。動く、動く^^

lingon

ブート時の各種デーモンの起動は一般的なUNIX系OSではinitというプログラムが司っているんだけど、OSX10.4の場合、この役割は、appleオリジナルのlaunchdというプログラムに取って代わられている。設定ファイルがXML形式という、何やらイマドキなプログラムなのだが、情報がすくなく、いまいち触るのがおっかない・・・と思っていたところでみつけたのが、このlingonというユーティリティだ。

これ使うと、各種起動設定が笑っちゃうくらい簡単にできる。さっそくmysqlとapache2のブート時起動設定をした。

lingonで設定いじって、ファイルがどう変化するか見ると、勉強になりそうだな。

2006年3月 9日

OSXでピンチ

引続きOSXいじり継続中。目標はMac miniをサーバーとしてセットアップすることだ。で、まずはhttpdから攻める。OSXには標準でapacheが入っているのだが、バージョンが1.3.33である。ここはapache2使いたいので、本家サイトより最新版2.2.0のtarballをダウンロード。解凍して、./configure、make、sudo make installで実にあっさりと/usr/localにインストールできた。いいぞ、OSX Tiger!( ̄∀ ̄*) まあこの後のカスタマイズがいろいろと面倒な訳だが。

それで、しばらくいろいろいじっているうちに、sudoでいちいちパスワードを入れ直すのが面倒になってきた。OSXでは初期設定ではsuでrootになることができず、rootのパーミションが必要な時はsudoを使うのが基本になる。そのとき、自分のパスワードを訊かれる。一回sudoを使うとその後(デフォルト設定で)5分間は再度sudoを使ってもパスワードを訊かれない。しかし、5分以上経過するとまたパスワードを入力しなくてはならない。実際いろいろやってると、結構しょっちゅうパスワードを入力することになるのだ。

一回、sudo passwd rootでrootのパスワードを設定してしまえば、rootにsuすることができるようになり、それでrootのシェルをひとつ開けとけば楽である。しかし、OSXの流儀に敬意を払いつつ、「rootのパーミションで一発作業する度に軽い緊張感があるのもポカ防止にいいか」と考えて、あえてrootのパスワードは設定せずに、少しウザいと思いつつもsudoを使って作業を続けていた。

しかし、「再度パスワード入力しないで良い猶予期間が5分間てのはちょっと短すぎじゃねーか」と思えてきて、この期間を長くできないかと考えた。man sudoやman sudoersを適当に斜め読みして/private/etc/sudoersをいじれば猶予期間を長くできることがわかった。で、/private/etc/sudoersをsudo viで開けて、ちょいちょいと変更を加えてみた。この時点で無知なおれはsudoersファイルを安易に編集することの危険性を認識していなかった(sudoersファイルを編集するときはvisudoを使いましょう)。結果は・・・sudoを使おうとするとsudoersファイルに文法的な誤りがあるとエラーが出るようになり、sudoが使えなくなったのだ!

事態の深刻さを悟るのに時間はかからなかった。再びsudoを使えるようにするためには、再度/private/etc/sudoersを編集して、エラーの原因を取り除いてやる必要がある。しかし/private/etc/sudoersを編集するためにはrootパーミションが必要であり、そのためにはsudoを使わなければならない。しかし、そのsudoはエラーが出て使えない状態。前述したとおり、現状ではsuでrootになることもできず、これができるようにするためにはsudo passwd root・・・・やっぱりsudoが必要なのだ!!(;´Д`A ```

なんとか事態の打開を・・・ということで、シングルユーザーモードで起動して/private/etc/sudoersを編集することを考えた。調べたらOSXではcommand+Sを押しながら起動すればシングルユーザーモードになることがわかったので、さっそくそれを試してみた。ところが、どういうわけかこれがうまくいかない。何度やってもマルチユーザーモードで起動してしまうのだ。原因は不明。もしかしたら、キーボードがApple純正じゃないせいかも。

もう深夜だったので、「これはもうあきらめて、翌日アップルのサポートに電話するか。最悪、OSクリーン・インストールかな」と、Mac miniをシャットダウンしようとしたとき、ふと思いついた(・∀・) Netinfo使えばなんとかなるんじゃないか?さっそくNetinfoを開き、ルートのパスワードのところをブランクにして(画像参照)、シェルでsuしてみた。パスワードを訊いてきたので、何もいれずにエンター・・・とみごとrootになれた。そしてvisudoで/private/etc/sudoersを修正。管理者ユーザーに戻ってsudoを使ってみると、問題なく使えた。メデタシ、メデタシ。もちろん、rootのパスワードをすぐに設定したのはいうまでもない。

しかし、こんなことできるんなら、sudoでパスワード訊かなくていいじゃん?と思った。あ、でもリモートでログインしてくるケースがあって、その場合はNetinfo使えない(本当?)から、意味はあるといえばあるのか・・・

2006年3月 5日

旧Mac miniを購入

Shuttle Computer SN95G5 + Athlon64 3000+ + SUSE Linuxを使ったLINUXマシンでサーバーを作ったのは一年弱前だが、その後の経験でわかったのは、自宅サーバーってよほどのことがない限り、たいした負荷はかからないので、CPUの馬力はさほど重要ではないということである。一方で自室で24時間稼働であることを考えると、静穏・省エネ・省スペースであることがとても大事である。

Athlon64 3000+の処理能力は十分レベルのはるか上を行く。静穏性に関しては、Shuttle Computerのべアボーンを使ったシステムはなかなか優秀だったのだが、それでも電源ユニットとチップセット(nForce3 ultraは結構発熱がでかい)のファン音が少しだけ気になった。

ということで、ここのところ、静穏性を重視して自宅サーバー用の次期マシンを物色していた訳だが、結局、旧Mac miniを買った。実は最初に候補として考えたのは、現サーバー・マシンと同じShuttle ComputerのSD11G5だった。ファンレスのACアダプターを電源ユニットとして使用するので、おそらく極めて静かだろう。で、Shuttleの筐体デザインはかなり気に入ってたりする。しかし、べアボーンの価格が52,500円(ツクモ)でこれにCPU(Pentium M)、メモリ、その他のコストが上乗せされてくる。G4 Mac mini 1.25MHzならオールインで58,800円(ビックカメラ)と安い。しかも小柄のキューブ型Shuttleよりさらに・・・というかはるかに小さい。しかも静か。それからOSXには前から凄く興味あったし。

今度発売されたインテルCPUのMac miniは確かに気になった。といっても、CoreDuoの処理能力は必要ないから論外。で、CoreSolo版だが、価格が74,800円(ビックカメラ)とG4 1.25MHzに比べて高くなった。それに消費電力が微妙に増えてるようだ。

3月3日に池袋のビックカメラに行ってみたら、旧Mac miniのG4 1.25MHzのモデルはまだ数個在庫があったので、一個購入。メッセンジャー・バッグに楽々収まる箱の小ささに感動した。実は、2日の時点で、友達が新宿の店を見てまわったら、旧Mac miniの在庫があまりなかったという話を聞いていたので、入手については多少心配していたのだが、あっさり買えてしまった。ブログを検索すると、旧Mac miniの在庫は見つかりにくいというような記事も見られるのだが、今日、再び池袋ビックカメラにLANケーブル買うために行ったときも、まだ在庫は残っていた。

用事やなんかで、Mac miniに通電するのは4日になった。これまでもOSXはちょこちょこ使った経験はあるのだが、新品を買って、まっさらな状態からセットアップするのは今回が初めてだった。それでも対話式で至極簡単にネット接続までできた。UNIX系OSをここまでユーザー・フレンドリーに作り込んだのは凄いと思う。

しかしSafariはちょっとな。この記事をSafariで書いていたら、MovableTypeの「エントリーの編集」ページの編集用各種ボタンが表示されていないのに気がついて愕然^^;; 速攻でFirefoxをダウンロードして切換えた。

これからOSXを研究しつつ、サーバー機能を順次Mac miniに移していく予定である。

2005年12月20日

マウスはやっぱり初期不良だった

今朝、マイクロソフトのテクニカル・サポートに電話して状況を説明したところ、マウス本体に電池を入れて光源部が光らないのは不良品とのことだった。おい、たのむよ、ビルヽ(´Д`)/
gates.gif
夕方、買った店に行って、同モデル新品と交換してもらった。つないだら、あっけなく動いた。

マイクロソフトでも直に同モデル新品と交換してくれるという話だったが、マウス壊れて困ってる状態で、発送されてうちに着くのを数日間待つのはつらい。不良品を梱包してこちらから発送するのも面倒だし。

新しいマウスだけど、同メーカーのマウスなのに、使用感が微妙に違って、まだ違和感があるよ。入力デバイスはあまり頻繁に換えたくない。ちなみに今使ってるキーボードは確か10年くらい使ってるはず。なんとATコネクタ。変換ケーブル経由でPCにつないでいる。

2005年12月19日

マウス不良品?

長年使って来たマイクロソフト・ホイール・マウス・オプティカルの右ボタンが利かなくなってしまった。ここのところ時々、接触不良ぽい症状を呈していたのだが、とうとうお亡くなりになってしまったらしい。右ボタン以外は正常なんだけど。

この状態だとめちゃくちゃ不便である。それで今日、新品のマイクロソフト・ワイヤレス・インテリマウスを買って来た。マウスに付属の電池を入れてレシーバーをPS/2マウス・ポートに接続した・・・しかし、うんともすんともカーソルが動かない。あれ?USBポートに接続してもだめ。そもそも、ボタンを押しても何してもマウス底部が光らないんだが。レシーバーとの接続を確立しないと、発光部が起動しない仕掛けなのかな?電池を買置きのものに交換してもだめ。

これもしかして不良品かな?明日、サポートに電話してみよう。

2005年6月28日

AMD、インテルを独占禁止法違反で告発

とりあえず速報。

Reuters: AMD files antitrust suit against Intel

以下抜粋

ニューヨーク(ロイター) アドバンスド・マイクロ・デバイセズ(AMD)は火曜日、インテルはx86プロセッサー市場において不法な独占状態にあるとして、同社を独占禁止法違反で告発したと発表した。

AMDによると、インテルの威圧の犠牲になった企業は38社にのぼるという。(略)

「世界中のどこでも、顧客は選択の自由と技術開発の恩恵にあずかる権利がある。しかしこれらは盗まれてしまっている」とAMDの会長、社長、兼Chief ExecutiveのHector Ruizsは語った。

(以下略)

続きを読む "AMD、インテルを独占禁止法違反で告発" »

2005年6月27日

インターネットと匿名性

実名でのネット活用促す 総務省「悪の温床」化防止

ネットに関わる事だけにすでに大量のブログ記事が書かれているとは思うけど、あまりにも疑問点が多いというか、ツッコミどころ満載なニュースなので、あえて書いてみる。

「匿名性」という言葉を使ってるんだけど、どういうレベルの匿名性の事を言ってるんだろう?例えばネット上の掲示板にある書き込みがあったとする。掲示板の設置されているサーバーには、どういうIPから何年何月何日何時何分何秒に書き込みがあったというログが残っているはずだ。そして書き込んだ人はいずれかのプロバイダーを通して接続したはずだが、この時誰にどういうIPアドレスを割り振ったかはプロバイダーの記録に残っているはずだ。ただし、こういった情報は(プロバイダーなりと利用者の契約の範囲で)通常は公開されることはないから、そのレベルではこの掲示板上の書き込みには匿名性があるといえる。

しかし、これには一定の留保が必要だ。仮にこの書き込みが犯罪捜査の重要なカギになる事を裁判所なりが認めて、しかるべき令状が出れば、プロバイダーや掲示板の管理者から当局に情報が渡されることになるからである。

個人の権利と公共の福祉のトレードオフの観点から、現状に別段の問題があるとはおれには思えない。この現状をどう変えたいのか、この報道からは不明である。もちろん、前出の掲示板の書き込みの例には多くの抜け道がある。日本の当局の力が及ばない(及びにくい)海外のサーバーやプロクシーが絡んでくる場合である。しかし、これらを完全にあるいは50%でも排除するには中華DQN共和国並みの強権的な政策をやらない限り技術的に難しいと思うのだが、日本でまさかそんな事できないだろ。

それからこのニュースでは「匿名性」=悪な印象を受けるんだが、まあ確かに乱用されるケースもあるかもしれないけど、一方で民主主義というのは匿名性によって担保されてる側面がある。投票も匿名だし、匿名で意見を表明できる場っていうのは重要だと思う。それが気軽にできるようになったという点でインターネットの功績は大きい。おれは匿名性の害<<<<<利、だと思う。

「爆弾の作り方」とか自殺サークル云々ていう話もでてるんだが、この辺もよくわからない。先日、山口県で高校生が授業中に教室に爆弾を投げ込んだ。確かにショッキングな事件だけど、たまたま起きた特殊な事件を安直に政策に反映させるべきではない。インターネットは単に知識を与えただけであって、それで実際に爆弾を作って教室で爆発させようと思ったのはこの高校生の精神だ、という事を別にしても、政策ってのはもっとマクロ的・統計的見地で決定されるべき。爆弾の作り方=>悪の温床=>規制、っていう典型的なメディアに踊らされ系愚民的な思考回路で役人が報告書を書いてたんじゃなんだかな。

自殺にしたって、自殺サークルの話はたまに聞くけど、そもそもこの国では年間に交通事故死の三倍の自殺死があるわけで、こっちの統計的レベルの現象を先になんとかしろよ。昔々流行った「パーティーライン」で自殺が減少したって話を聞いたことあるけど、ネット上の匿名のコミュニケーションで自殺を思い留まってるやつだって案外多いかもしれないし。

一方で、話が逸れるけど、国が何かできるとすると、「私は怪しいものではありません」ということをネット上で証明する手段を提供することかな。まあ、民間でもできるかもしれないけど、もしかしたら国がやった方が効率よくできるかもしれないサービスだ。ネットオークション等で大いに使い道がありそうな気がする。

スパム対策

そろそろメールサーバーにスパム対策をしないと。procmailとSpamAssassinを組込みかな。

2005年6月 8日

AppleがIntel CPU採用へ

おれの部屋には現在WIN箱とLINUX箱が1台づつあって、両方x86っていうかx86_64だ。LINUX箱は最近加わったんだけど、WIN箱(ずっと昔はDOS箱)は大体常に家に一台あった。MACを所有したことは無い。それでもずっと昔から最近まで含めていろいろな機会に外で(時には結構インテンシブに)MACを使うことはあった。

昔は違ったんだけど、ここ数年はMACを触っても特別使いやすいとは感じない。というかあのワンボタン・マウスによってWINより操作性は低い。おれがMACのショートカットをあまり覚えてないせいもあるんだろうけど。もともとMACてのは使い易さが売り物だったはずだけど、すでにWINより優位にあるとは言えない。

グラフィックに関してもかつてWINに対して持っていたアドバンテージはもうない。ColorSyncによるCMSへの対応は早かったけど、今はWINにもICMあるし、そもそもプロフェッショナル用途のCMSはAdobe ACEが主流になってるから、これがWINでもMACでも同様に動く現状ではMACの優位性は無い。

OS9はWINでいえば95、98程度に比肩するOSで、OS Xが出てやっとWIN XPに追いついた感じだ。

後残るMACの魅力というと洗練された筐体デザインくらいか。好き嫌いはあるにせよMACのデザイン水準は未だに高いと思う。といってもこれも怪しくなりつつあって、ここ2~3年市販されるWIN箱用ケースのデザイン水準はかなり向上してきている。

アプリケーション・ソフトにしてもAdobeやMacromediaのソフトはWINでもMACでも同様に動く。QuarkとかFinal Cut ProとかまだMAC版しか無い一部例外を除くとアプリでMACを選ぶ理由も無い。

で、パフォーマンス的なところは正直よくわからないんだが、PowerPCって最初からRISCとして設計されたCPUな訳で、コンパチビリティの重石を引きずってるx86 CPUよりも有利なはず、と素人考えでは思っていた。各社の次世代家庭用ゲーム機にも採用が決まっていて価格性能比的にも悪く無いんじゃないの~?と考えてしまうんだが。量産効果的な面でも家庭用ゲーム機で今後かなり改善されるはずだし。消費電力的な面が挙げられてるけど、それって今後数年のタイムスパンでみてPowerPCに勝算無しなんだろうか?

さらに、まだよくわからないんだけど、Intel CPU採用後は現在のWIN箱との関係はどうするつもりなんだろう?仮に(あまりなさそうだけど)MACがWIN箱完全互換になったとすると、事実上Appleはソフト・メーカーになる訳だね。それはそれですっきりしていいんだけど。

しかしもしもCPUはIntelだけどWIN箱と互換性無しって話だと、それって昔のPC98みたいなものか?コスト的に一般のWIN箱に比べて不利だと思うんだけど。

まあともかく今回のスティーブ・ジョブスの決定は不思議だ。apple社の株も軟調だしね。

2005年6月 3日

特許とオープンソース

オープンソースと特許

No Software Patents

日本ではほとんど騒がれてないけど、潜在的には大きな火種らしい。

2005年5月21日

伝説の人物

日本のアルファギークといったら誰ですか

一番目の回答で話題になってる「ぺんぎんエディタの開発者」だけど、ぺんぎんCの人と同一人物だったら学生時代にバイト先で会ったことあるよ。名前は忘れてしまった^^ 確かその当時、京都大学医学部在学中だったか卒業したばかりだかそんな感じだったと思う。ついでにそのバイト先でREDを書いた人にも会ったっけ。

2005年5月10日

バージョンアップ

今、SuSE Linux 9.2を使ってるんだけど、先日SuSE Linux Professional 9.3が発売されて当然ながら気になってる。9.3にバージョンアップするかどうか迷うところだ。いろいろ調べていたら、ひとつ引っかかったのがMySQLのバージョンだ。現在MySQL4.0.21を使ってるんだけど、OSをSuSE Linux 9.3に上げるとMySQLは4.1台になる。で、これがなかなかクセモノらしい。文字コード周りでトラブルが起こりがちらしい。新たに便利な関数が多数実装されてるみたいなんだけどね。

4.1以上の壁

Movable Type + MySQL 4.1 を組み合わせると日本語が文字化けする不具合/障害の解決方法

ということで、もう少し調べよう。

2005年4月26日

迷惑メール撲滅へ国際協力


迷惑メール撲滅へ国際協力 「発信地」中韓含め覚書

いや、どんどんやって欲しい。本当に迷惑してます。おれなんかメール・クライアントのスパム・フィルターでやっと生きてる感じなんで。スパム・メールが来ると、消去に手間かかるって事にムカつくのはもちろん、その背後にある蛆虫みたいな精神をふっと感じてどよよ~んと心が淀んでしまうのだ。毎日毎日無数の蛆虫の触覚になでられてる文字通り虫酸が走る感覚、感じてる人はおれだけじゃないと思うけど。

発信元の取締はもちろんだけど、オープン・リレーを減らせればかなり効果あると思われるんで、各国歩調を合わせてオープン・リレーに対策を強制できる法律を作るとか、オープン・リレーに登録されてるメール・サーバーからのメールはブロックできる機能をメール・サーバーに組込む事をプロバイダーに義務付けるとか、そういうドラコニアンな対策を検討して欲しいね。

2005年4月23日

久しぶりのリブート

サーバーに使ってるLinuxマシンの調子がおかしくなった。イーサネットによる通信ができなくなったのだ。他のマシンからのpingにも反応しない。他は異常無いんで、通信を司るデーモンか何かがへくったぽい。しかたが無いのでリブートしたら問題解消。何がへくったのか気になるのでログをチェックするも、それらしいメッセージは残っていない。ログによると前にブートしたのが4月7日だから16日ぶりか。これって長いのか短いのか。

続きを読む "久しぶりのリブート" »

2005年4月22日

Perl

ちょっと書きたいプログラムがあって、その分野の参考書を買って来た。その本に載ってるプログラムはPerlで書かれていて、最初の方には次のように記されている:

本書は、読者がPerlの基礎的な知識を習得していることを前提にしています。中級者である必要はありませんが、"Hello, World"と出力するより若干複雑なプログラムが作れることを前提にしているわけです。・・・

おれはPerlの経験はゼロだ。MovableTypeがPerlで書かれている事くらいは知っているが。しかし正直言って最初この言語を甘く見ていた。Cをいい加減にしたようなものでちょろいと考えていたのだ。しかしそれは間違いだったと気づいた。Cのような言語の場合、言語それ自体の仕様は簡潔でシンプルであり、外部から関数を追加して機能を拡張していく訳だが、Perlの場合言語それ自体の仕様が膨大であることに気が付いたのだ。それから引用したこの本の記述には嘘があった。かなり何気なく高度な機能(mapって何だよ!)が使われているのだ。

仕方が無いのでおれはサブルーチンに入った。オライリー「初めてのPerl」orz
件のmapてのはリストを操作する演算子で「上級テクニック」の章に載っているよ。