« 2007年3月 | トップページ | 2007年5月 »

2007/04/30

[linux/ubuntu] feisty に gcc-2.95 をインストールする方法

gcc-2.95 がいまだに必要になることがあります。FSF からソースコードを持ってきて自前でコンパイルすることもできますが、gcc4.x / glibc2.4 ではそのままコンパイルすることができません。gcc をコンパイルすることが木で気でないならば、できれば aptitude install でさくっりと導入を済ませたいものです。しかし feisty のデフォルトでは aptitude search で表示されるのは gcc-3.3 まで。一見するとパッケージインストールは不可能に見えます。

しかし、apt-get / aptitude が参照しているソースリストファイルを編集することで gcc-2.95 のパッケージインストールが可能になります。作業手順は次の通り。

1. ファイルを開く
ソースリストファイルは一般ユーザでは編集できないので sudo をつけて開きましょう。
$ sudo vi /etc/apt/sources.list
2. ↓の2行のコメントアウトを解除します。記述が見当たらない場合は追記します。
deb http://jp.archive.ubuntu.com/ubuntu/ feisty universe
deb-src http://jp.archive.ubuntu.com/ubuntu/ feisty universe
3. パッケージ情報を更新する
$ sudo aptitude update

これで gcc-2.95 の情報もパッケージリストに読み込まれたはずです。aptitude search gcc で確認すると下のスクリーンショットのようになると思います。

universe を有効にしたサーチ結果

パッケージリストが更新されているのが確認できたら、他のパッケージと同じようにインストールできます。

$ sudo aptitude install gcc-2.95

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

2007/04/24

VMware Player v2 β 公開

ベースとなる OS にインストールして、仮想空間で別の OS を実行できる VMPlayer の新バージョンのパブリックベータが公開されました。β 版ですので安定して動作することも保証されませんが、あたらしい機能を試してみたい方は導入してみるのもいいかもしれません。

v2 で追加・強化された機能は↓

仮想 SMP を実験的にサポート
SMP はマルチプロセッシング方式の一つですが、v2 では複数の CPU を仮想マシンに割り当ててパフォーマンスを向上させることもできるようにしたとのこと。
仮想マシンとホストマシンの間で簡単にデータを共有できるようにした
共有フォルダを利用したり、単純にファイルをドラッグ&ドロップするだけで仮想マシンとホストマシン間のデータを効率的にやり取りできるようにしたとのこと。v1 ではこれができなくて ftp とか経由させたり面倒だったんだよね。ただし、セキュリティが低下する可能性もあるので仮想マシンの用途によってはこの機能は使わない方がいいでしょう。
Windows Vista をサポートした
仮想マシン、物理マシンのどちらでも Vista を使えるようにしたとのこと。ただし、Aero は使えません。
USB2.0 をサポートした
外部記憶装置やマルチメディアデバイスなど高速なデータ転送が必要なデバイスも使えるようになったとのこと。これはうれしい。
アプライアンス・ビュー
この機能を利用すれば仮想マシンイメージの作成者が提供する情報を参照できるそうです。
新しいホームページ
既存の仮想マシンからか、ブラウザから VMware Virtual Appliance Marketplace ( 訳注: VMware が提供するポータルページで仮想マシンを公開しているベンダーへのリンク集のようなもの。直接そのページからダウンロードできる仮想マシンイメージもある。) を開けるんだけど、サイトリニューアルしてより直観的に使えるようになったとのこと。Virtual Appliance Marketplace ではインストール作業や設定作業が完了してすぐに使える状態になっている仮想マシンイメージをダウンロードできます。
より広範囲にわたる OS のサポート
「32bit / 64 bit 合わせて 60 を超える OS をサポートします。Vista, RedHat Enterprise Linux5, SUSE Linux Enterprise Server10, SUSE Linux Enterprise Desktop10, Ubuntu6.10 など多くの OS をサポートしています」とのこと。Ubuntu はちょいとばかし古いね。でも、feisty の仮想マシンイメージはユーザーグループからそのうちに公開されると思うよ。

使用する手順は次の通り。インフォメーションページの和訳ですが、β 版ではなくて RC と書いてあるのが気になります。なお、ユーザ登録ページとフォーラムへの投稿は英語です。

1. ドキュメントを読む
機能の概要や既知の問題が書いてあるのでまず Release Note を読む。セットアップと使用方法の細かい情報はユーザマニュアルに書いてあります。
2. VMware Player 2 RC をダウンロードする
シリアルキーを入手するためにユーザ情報を登録する必要があります。
3. VMware Player を起動する
VMware Player を使って、どの機能が有益か試してください
4. フィードバックを送る
フォーラムに感想や疑問を投稿できます。このフォーラムはサポートチームと開発チームも目を通しています。β 版プログラムのサポートに関しては VMware Beta Support を参照してください。

個人的にはマルチプロセッサのサポートがうれしいですね。今は 4core CPU もあるので、そのうち2つを仮想マシンの実行用に割り当てるとかできます。そうすることでさくさく動くようになるかもしれません。4Core CPU は持ってないんだけどね・・・orz

Reference
VMware Player Public Beta ( 2007/04/19, VMware Inc )
VMware Player β2 Release Note( VMware Inc )
Windows Vistaに対応した「VMware Player」v2.0のβ版が公開 ( 2007/04/23, Watch Impress Corp, 中村 友次郎 )

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

2007/04/23

[ ruby / book ] Ruby Cookbook 日本語版は抄訳らしい

4/25 発売予定の Ruby クックブックは、原版の一部だけを翻訳したものらしい。
ratio - rational - irrational さんによると原著では全部で 23 章なのに日本語版では 12 章になってしまっているとのこと。

日本語版ではコードブロックやリフレクション ( メタプログラミングのことを最近ではこういうらしい )、永続性、マルチスレッドに関する章が再構成されているそうなので、部分訳は残念だけど一応買おうと思う。もともと、わたしはコードブロックとリフレクションが目当てで予約したんだし。原版は Safari で読めるしね。

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

2007/04/20

[ linux / ubuntu ] Edgy から Feisty にアップグレードする方法

概要 Ubuntu 7.04 へのアップグレード

  1. アップグレードする前に
  2. デスクトップ版 Ubuntu のネットワークアップグレード ( 推奨 )
  3. サーバ版 Ubuntu のネットワークアップグレード ( 推奨 )
  4. alternate CD/DVD を使ったアップグレード
  5. コマンドラインから手動でアップグレードする方法 ( 非推奨 )
これからそれぞれについて、なるべく詳細に説明していこうとおもいます。

A. アップグレードする前に

  • Feisty Fawn ( Ubuntu 7.04 ) に直接アップグレードできるのは Edgy ( Ubuntu6.10 ) だけです
  • Feisty にする前にすべてのアップデートパッチを適用しなければなりません
  • アップグレード作業には最新のアップデートマネージャ ( 0.45.2 ) が必要です。アップデートマネージャが古いと Authentication failed エラーで失敗してしまいます。

Feisty へアップグレードする前にすべてのパッチを適用しているか、またアップデートマネージャのバージョンを確認してください。確認方法は次の手順で行います。

A-1. アップデートマネージャのバージョン確認
↓のスクリーンショットを参考にアップデートマネージャを起動します。
アップデートマネージャ起動
「チェック」ボタンをクリックしてアップデートがあるかどうか確認します。アップデートが見つかったらそれをインストールしてアップデートマネージャを再起動します。( 訳注: 日本語版 Ubuntu Edgy ではアップデートマネージャは起動するだけでアップデートがあるかどうかチェックしに行きます。アップデートが見つかったらそれをインストールしてください。)

もうひとつ別の方法もあります。アップデートマネージャだけを更新したいならば、Synaptic パッケージマネージャを利用してもいいでしょう。下のスクリーンショットを参考に操作を進めてください。ただし、この方法ではアップデートマネージャを更新した後に、Synaptic パッケージマネージャを終了してからアップデートマネージャを起動して他の更新がないかどうか確認しなければなりません。

Synaptic 起動
Synaptic パッケージマネージャを起動します。システム→システム管理→Synaptic パッケージマネージャとシステムメニューをたどってください。 Synaptic パッケージマネージャが起動したら検索アイコンをクリックしてください。
synaptic検索ボタン
検索ダイアログに "update-manager" と入力して「検索(S)」ボタンをクリックします。 検索ダイアログ
update-manager が見つかったらインストール済みパッケージと最新バージョンを比較してください。 バージョンを比較
2つが同じならばアップデートマネージャを起動して他のアップデートがないかどうか確認してください。

インストール済みバージョンのほうが古かった場合はパッケージ名を右クリックして「アップグレード指定」に設定してから適用ボタンをクリックします。スクリーンショットではインストール済みバージョンと最新バージョンが同じなため「アップグレードを指定」がグレーアウトしてしまっていますが、インストール済みバージョンが古かった場合は「アップグレードを指定」してから「適用」ボタンをクリックします
synaptic でアップデートマネージャを更新する
更新が終わったらアップデートマネージャを起動して他のアップデートがあるかどうかチェックしてください。もしアップデートがあったらそれを適用してください。

B. デスクトップ版 Ubuntu のネットワークアップグレード
Feisty Fawn はネットワーク経由で簡単にアップグレードできます。wine など公式に認められていないパッケージがインストールされている場合はパッケージを無効化したというメッセージダイアログが表示されますがかまわずに先に進めてください。

1. アップデートマネージャを起動する
Edgy にすべてのアップデートを適用した状態でアップデートマネージャを起動すると↓のスクリーンショットのように「新しいディストリビューション '7.04' にアップグレードできます」というメッセージとアップグレード(P) ボタンが表示されます。
アップグレードメッセージが出た Update マネージャ
2. アップグレード(P) ボタンをクリックします
3. リリースノートが表示されます。ウィンドウの右下にある Upgrade ボタンをクリックします
feisty リリースノート
4. アップグレードに必要なツールが自動でダウンロードされます
アップグレードツールのダウンロード
5. ツールのダウンロードが完了するとそのままアップグレード処理が始まります
アップグレード開始
6. 最終確認のダイアログが表示されます。右下の「アップグレードを開始(S)」ボタンをクリックします
本当にアップグレードする?
6. トルグの切り替えをどのキーで行うか
toggling の指定。キーボードの入力モードを切り替えるホットキーを設定するかどうか (?) です。オプションの中から自分の好みの組み合わせを選びましょう。
キーボードの toggling の設定
7. mdadm の設定
環境に合わせて設定する必要がありますが、よくわからない場合は all を選びましょう。
8. ファイルの置き換えとかが始まる
更新中にファイルを上書きするかどうか訊かれる事があります。どのファイルに対して警告が出るかはシステムによって異なるので自分で調べるようにしましょう。
システム更新中
9. システムのクリーンアップ
不要なファイルの削除が行われます。自分で判断ができない場合は推奨どおりの選択肢を選ぶといいでしょう ( 公式サポートでないパッケージが入っている場合などは、たまにそれでも不具合が出てしまいますが・・・)。
10. 再起動
ここまで作業を進めると再起動が必要になります。ダイアログの「再起動(R)」ボタンをクリックして再起動してください。
feisty 再起動ダイアログ
11. 完了
再起動したら Firefox を起動してみましょう。次の SS と同じページが表示されるはずです。
Feisty にアップグレード完了
スタートアップページを変更している場合は /etc/lsb-release を cat するかテキストエディタで開いてください。次のようになっていれば成功です。
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=7.04
DISTRIB_CODENAME=feisty
DISTRIB_DESCRIPTION="Ubuntu 7.04"
12. 必須ではありませんが・・・
アップグレードが終わったら gnome 端末を起動して aptitude update → aptitude upgrade を実行することをお勧めします。

C. サーバ版 Ubuntu のネットワークアップグレード ( 推奨 )
Ubuntu サーバでも、同じように新しくなったアップグレードシステムを使うようにしましょう。なお、この方法はデスクトップ版 Ubuntu Edgy でも行うことができます。

1. アップデートマネージャをインストールします
sudo apt-get install update-manager-core
アップデートマネージャが既にインストールされている場合はアップデートします
sudo apt-get upgrade update-manager-core
2. アップグレードツールを実行します
sudo do-release-upgrade
公式にサポートされていないパッケージがあった場合はそれを無効にしたというメッセージが出ます。GUI からのアップグレード作業のように止まることはありません。
3. アップグレードの確認メッセージが表示される
インストールされているパッケージのチェックと更新するパッケージのチェックが終わるとスクリーンショットのように確認メッセージが表示されます。y を入力して先に進めてください。
アップグレードの確認メッセージ
4. ファイルのダウンロードが行われる
必要なファイルがダウンロードされます。システムによってはかなり時間がかかるので夜寝る前にセットして寝ている間にダウンロードさせるほうがいいかもしれません。
ファイルダウンロード中
インストールされているパッケージによってはユーザに操作を求めるダイアログが表示されます。対応はそれぞれのシステムで異なりますのでご自分でお調べください。
警告ダイアログ

D. alternate CD/DVD を使ったアップグレード
インターネットに繋がっていないマシンでアップグレード作業を行ったり、回線もしくはサーバが不安定な場合はこの方法を利用します。

1. ディスクイメージをダウンロードします
BitTorrent を利用できるならtorrent ファイルをダウンロードして BitTorrent 経由でダウンロードするといいでしょう。
BitTorrent がインストールされていないか使いたくない場合はこちらのミラーサーバリストからサーバを選んで、選んだサーバから ubuntu-7.04-alternate-i386.iso ( x86 イメージ ) / ubuntu-7.04-alternate-amd64.iso ( AMD 64 CPU 用イメージ ) をダウンロードします。
2. イメージを CD-R に書き込みます
3. 作成した CD をドライブに入れます
オートランが有効になっていればダイアログが表示されます。

E. コマンドラインから手動でアップグレード ( 非推奨 )

現在エントリ作成中。
もうしばらくお待ちくださいませ m(_ _)m

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

[ python ] 続 IronPython1.1

IronPython 1.0 では、socket モジュールは builtin モジュール ( 標準ライブラリと呼ばれることもあります ) として用意されているものの、それから作成した socket オブジェクトには makefile() メソッドが実装されていませんでした。makefile() がないため、socket オブジェクトに依存するモジュール、たとえば urllib などが利用できないという欠点に繋がっていました。 IronPython1.0 で makefile() を呼び出そうとすると次のようにエラーになってしまいます。

C:\dev>ipy -X:Python25
IronPython 1.0 (1.0.61005.1977) on .NET 2.0.50727.42
Copyright (c) Microsoft Corporation. All rights reserved.
>>> import socket
>>> socket
<module 'socket' (built-in)>
>>> test_socket = socket.socket( socket.AF_INET, socket.SOCK_STREAM )
>>> test_socket.connect( ("quux.org", 70) )
>>> pseudo_file = test_socket.makefile( "rw", 0 )
Traceback (most recent call last):
  File , line 0, in <stdin>##93
AttributeError: 'socket' object has no attribute 'makefile'

IronPython1.1 のリリースノートを見ると "Socket implements makefile function ( socket に makefile メソッドを実装した )" とあります。 IronPython1.1 で同じ操作を行ってみました。

C:\dev\IronPython-1.1>ipy -X:Python25
IronPython 1.1 (1.1) on .NET 2.0.50727.42
Copyright (c) Microsoft Corporation. All rights reserved.
>>> import socket
>>> socket
<module 'socket' (built-in)>
>>> test_socket = socket.socket( socket.AF_INET, socket.SOCK_STREAM )
>>> test_socket.connect( ("quux.org", 70) )
>>> pseudo_socket = test_socket.makefile( "rw", 0 )
>>> pseudo_socket.write( "index.txt\r\n" )
>>> for data in pseudo_socket.readlines():
...     print data
...
3'/index.txt' does not exist (no handler found)         error.host      1

1.0 では「socket オブジェクトには makefile という名前の属性は存在しない」というエラーが出ていますが、1.1 ではそれがありません。1.1 のコードのエラーは「指定された名前のファイルが存在しない」というもので makefile とは関係がないものです。

socket に依存するモジュールはいくつかあり、それらは IronPython1.0 では利用できないことも多かったのですがどうなっているでしょうか? urllib で試してみます。まずは 1.0 で確かめます。コードは IronPython の世界 で 1.0 では動かないとされているものです。

X:\>ipy -X:Python25
IronPython 1.0.60816 on .NET 2.0.50727.42
Copyright (c) Microsoft Corporation. All rights reserved.
>>> import sys
>>> import urllib
>>> import urlparse
>>> url = "http://www.python.jp/pub/doc_jp/pdf-a4-2.4.zip"
>>>
>>> filename = urlparse.urlparse( url )[2].split( '/' )[-1]
>>>
>>> filename
'pdf-a4-2.4.zip'
>>> urllib.urlretrieve( url, filename )
Traceback (most recent call last):
  File , line 0, in <stdin>##134
  File C:\SDK\Python\Lib\urllib.py, line 89, in urlretrieve
  File C:\SDK\Python\Lib\urllib.py, line 222, in retrieve
  File C:\SDK\Python\Lib\urllib.py, line 194, in open
  File C:\SDK\Python\Lib\urllib.py, line 272, in open_http
  File , line 0, in __import__##4
  File C:\SDK\Python\Lib\httplib.py, line 70, in Initialize
  File , line 0, in __import__##4
  File C:\SDK\Python\Lib\mimetools.py, line 6, in Initialize
  File , line 0, in __import__##4
  File C:\SDK\Python\Lib\tempfile.py, line 33, in Initialize
  File , line 0, in __import__##4
  File C:\SDK\Python\Lib\random.py, line 41, in Initialize
  File , line 0, in __import__##4
  File C:\SDK\Python\Lib\warnings.py, line 264, in Initialize
NameError: name 'ImportWarning' not defined
>>>

おや、IronPython の世界 とは違うエラーになりました。4 台の PC でそれぞれで実行しましたが、全てこのエラーになります。それでも 1.0.1 では動作しないことは確認できました。このエントリの目的は IronPython1.1 で互換性が向上したかどうか、少なくともリリースノートにある互換性を確認することなので原因解明はせず次に進むことにします。同じ環境で IronPython だけを 1.1 に変更して同じコードを実行してみます。

X:\>ipy -X:Python25
IronPython 1.1 (1.1) on .NET 2.0.50727.42
Copyright (c) Microsoft Corporation. All rights reserved.
>>> import sys
>>> import urllib
>>> import urlparse
>>> url = "http://www.python.jp/pub/doc_jp/pdf-a4-2.4.zip"
>>>
>>> filename = urlparse.urlparse( url )[2].split( '/' )[-1]
>>>
>>> filename
'pdf-a4-2.4.zip'
>>> urllib.urlretrieve( url, filename )
('pdf-a4-2.4.zip', <httplib.HTTPMessage instance at 0x000000000000002B>)
>>>

エラー・警告が出ることなく動作しました。フォルダを確認するとちゃんと ZIP ファイルが作成されています。

あとめぼしいものは md5, sha, select モジュールの追加でしょうか。md5 などのハッシュモジュールはいままでも .NET Framework のものを使うことで代用できたのですが、CPython と同じように使えるようになったことは、コードポータビリティの面でもうれしいです。しかし、わたしが確認した限りでは IronPython1.1 の md5 モジュールは CPython のそれと完全な互換性があるわけではないようです。オブジェクトが持つ属性が異なるだけでなく、コードを走らせたところエラーが出てしまうものもありました。

.NET Framewrok で動作する言語の中では、IronPython は C# などに比べるととても扱いやすい言語です。実際、C# よりも格段に学習しやすく扱いやすい言語です。CPython と互換性を持ちつつ、.NET との親和性を併せ持つこの言語はこれからどんどん発展していくでしょう。わたしも少しずつですが使用する機会が増えてきています。気付きたことがあったらここで書いていきたいと思います。

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

2007/04/19

[ linux / lisp ] Lisp 風の強力なシェル Lush

technorati を回っていたら面白いものを見つけた。
Lisp の方言て記述するシェル Lush: Lisp Universal SHellだ。

LushというS式のシェルがあるようですね。デモを一部動かしたけどかなり強力だ。Lispの方言になってる。(defun ...)が(de ...)になってたりするので多少の使い勝手は違うけど、ライブラリをインストールしていればsdlやopengl, gslなどがすぐに動く。

( (Yasuto Takenaka) Blog )

プロジェクトページにあるスクリーンショットでは、Lisp と C ライクなコードを混ぜて処理をさせているものや、グラフィック処理を行っているものがある。Lush の特徴は↓らしい。

  • 明快にして単純、簡単に学習できる Lisp 風の文法
  • コンパイラは非常に効率のいいネイティブコードを出力する。中間コードを吐き出すことはしない
  • ほかの言語で書かれた関数やライブラリでも使える簡単なインターフェイスがある
  • 一つの関数の中で、自由に Lisp と C を混ぜたコードを書くことができる
  • ベクトル演算、行列演算、テンソル演算のための強力な演算子がそろっている
  • GSL, LAPACK, BLAS への完全なインターフェイスを含む1万以上の算術演算ライブラリ
  • 画像処理、信号処理のライブラリがある
  • GUI も簡単。OpenGL のインターフェイスだってある
  • SDL ライブラリのインターフェイスだってある。2D ゲーム作成に便利
  • 音楽、動画だってつかえる
  • JavaVM と Python C API のインターフェイスだってある
  • 神経網とか統計学の勉強にも使える?(誤訳かも )

    面白そう。これを開発マシンに突っ込めばメンバーに Lisp を身につけさせることができるかも?

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

2007/04/18

[ python ] IronPython1.1 正式版リリース

IronPython v1.1 is a minor update to IronPython including both new functionality as fixes for the most voted for bugs. The new functionality in v1.1 includes several new modules (array, SHA, MD5, and select), support for .NET XML Doc comments within the help system and doc tags, as well as support for loading cached pre-compiled modules. This release improves compatibility with CPython and gives the .NET developer a better interactive experience.

IronPython v1.1 はこれまでに報告されたバグのほとんどを修正して、いくつか新しい機能を追加したマイナーバージョンアップだ。いくつか新しいモジュール ( array, SHA, MD5, select モジュール ) を追加することで機能を追加したほか、.NET Framework のヘルプシステムにおける XML Doc コメントと doc タグもサポートした。そして pre-compiled モジュールも利用できるようにした。 v1.1 で CPython との互換性が向上した。.NET でもっと簡単に開発できるようになっているだろう。

( CodePlex/IronPython, 1.1 release note より抜粋 )

かなりの意訳ですが、大意は外していないと思います (´・ω・`)b

リリースノートを見ると "Support importing pre-compiled modules produced when running in –X:SaveAssemblies mode" と書かれているので pre-compiled モジュールというのは CPython の .pyc といったファイルではなくて .NET アセンブリをサポートするようになったということみたい。

IronPython は CPython2.4.3 との互換性を意識して作られたものですが、変更履歴を見ると CPython2.5 の機能もいくつかサポートされるようになっています。IronPython1.1 では try-except-finally がサポートされるようになり ( CPython2.4 では except と finally は同時に使えなかった )、finally ブロック内の yield が使えるようになったようです。

いま動かしていますが、確かに CPython との互換性が向上しています。たとえば IronPython1.0.1 では calendar モジュールが使えませんでした。IronPython の世界では使えると書いてありますが、わたしの環境下では使えません。モジュールのインポートはできるのですが、calendar.month() メソッドを呼び出すと次のようになります。

C:\dev>ipy -X:Python25
IronPython 1.0 (1.0.61005.1977) on .NET 2.0.50727.42
Copyright (c) Microsoft Corporation. All rights reserved.
>>> import calendar
>>> print calendar.month( 2007, 4 )
Traceback (most recent call last):
  File , line 0, in <stdin>##113
  File C:\SDK\Python25\Lib\calendar.py, line 324, in formatmonth
  File C:\SDK\Python25\Lib\calendar.py, line 204, in monthdays2calendar
  File , line 0, in Initialize##130
  File C:\SDK\Python25\Lib\calendar.py, line 172, in itermonthdays2
  File C:\SDK\Python25\Lib\calendar.py, line 159, in itermonthdates
TypeError: unsupported operand type(s) for -: 'date' and 'timedelta'

同じコードを IronPython1.1 で実行すると次のようになります。ソースを解析したわけではないので推測になりますが、たぶん datetime モジュール ( datetime.date と datetime.timedelta かな?) のバグが修正されたので使えるようになったのでしょう。

C:\dev\IronPython-1.1>ipy -X:Python25
IronPython 1.1 (1.1) on .NET 2.0.50727.42
Copyright (c) Microsoft Corporation. All rights reserved.
>>> import calendar
>>> print calendar.month( 2007, 4 )
      4月 2007
月  火  水  木  金  土  日
                   1
 2  3  4  5  6  7  8
 9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30

しかし、インタラクティブモードでリストとタプルの複数行定義ができないのは相変わらず (-_-;;
リストとかタプルを複数行で定義しようとすると SyntaxError が発生してしまいます↓

C:\dev\IronPython-1.1>ipy -X:Python25
IronPython 1.1 (1.1) on .NET 2.0.50727.42
Copyright (c) Microsoft Corporation. All rights reserved.
>>> test_list = [
Traceback (most recent call last):
SyntaxError: unexpected token <eof> (<stdin>, line 1)
>>> test_tuple = (
Traceback (most recent call last):
SyntaxError: unexpected token <eof> (<stdin>, line 1)

IronPython では1行に入力できる文字数にも制限があるし、なにより見難くなってしまいます。リストとタプルの複数行定義もサポートするようになるとインタラクティブモードがもっと使いやすくなるでしょう。次のアップデートではサポートしてほしいですね。

2007/04/19
ものすごい誤記を修正 orz

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

2007/04/16

[ python ] IronPython1.1 RC1 が公開されてた

いつのまにか IronPython1.1 のリリース候補第一版 ( RC 1 ) が公開されていました。

マイナーバージョンアップではあるものの、バグ修正だけでなくいくつか新しい機能も追加したとのこと。IronPython 1.0 では CPython では 標準モジュールとして用意されていた MD5 などのモジュールが ( IronPython の標準ライブラリとしては ) 用意されていなかったのですがこれらが追加されたようです。

IronPython 1.0 (1.0.61005.1977) on .NET 2.0.50727.42
Copyright (c) Microsoft Corporation. All rights reserved.
>>> import sys
>>> sys.builtin_module_names
('marshal', 'itertools', '_weakref', '_sre', '_random', 'time', 'thread', 'struct',
 're', 'operator', 'nt', 'math', 'binascii', 'imp', 'gc', 'exceptions', 'errno', 
 'datetime', 'cStringIO', 'collections', '_codecs', '__builtin__', '_locale', 'cPickle', 
 'copy_reg', 'socket')

こちらが 1.0 の組み込み ( 標準 ) モジュール。そして下が 1.1RC1 の組み込み ( 標準 ) モジュール。

IronPython 1.1 (1.1) on .NET 2.0.50727.42
Copyright (c) Microsoft Corporation. All rights reserved.
>>> import sys
>>> sys.builtin_module_names
('gc', 'exceptions', 'sha', '_weakref', '_sre', '_random', 'time', 'thread', 'struct',
 're', 'operator', 'nt', 'math', 'marshal', 'itertools', 'imp', 'cPickle', 'errno', 
 'datetime', 'cStringIO', 'collections', '_codecs', 'binascii', 'socket', 'select',
 '_locale', 'copy_reg', '__builtin__', 'md5', 'array')

新しく追加されたモジュールは↓から array, md5, select, sha みたい ( ReleaseNote に書いてあることに後から気づいた orz )


>>> ipy10_builtin_module = set( ('marshal', 'itertools', '_weakref', '_sre', '_random
', 'time', 'thread', 'struct', 're', 'operator', 'nt', 'math', 'binascii', 'imp'
, 'gc', 'exceptions', 'errno',  'datetime', 'cStringIO', 'collections', '_codecs
', '__builtin__', '_locale', 'cPickle',  'copy_reg', 'socket') )
>>>
>>> ipy11_builtin_module = set( ('gc', 'exceptions', 'sha', '_weakref', '_sre',
'_random', 'time', 'thread', 'struct', 're', 'operator', 'nt', 'math', 'marshal'
, 'itertools', 'imp', 'cPickle', 'errno', 'datetime', 'cStringIO', 'collections'
, '_codecs', 'binascii', 'socket', 'select', '_locale', 'copy_reg', '__builtin__
', 'md5', 'array') )
>>> ipy11_builtin_module - ipy10_builtin_module
set(['sha', 'array', 'select', 'md5'])

他の追加機能としては、ヘルプシステムにおけるXML Doc コメント と __doc__ タグのサポートと、プレコンパイルバイナリのキャッシュがサポートされるようになったとのこと。

修正されたバグでは、os モジュールのエラーメッセージが CPython と異なっていたこと、globals().fromkeys() が動作しなかったこと、globals().values() が動作しなかったこと、yield に関連するバグなどなどが修正されたみたい。globals() のバグが修正されたのは嬉しい。詳細は1.1RC1 リリースノートを参照。

Reference
IronPython 公式ページ
1.1 RC1 リリースノート
1.1 RC1 ダウンロードページ

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

2007/04/14

[ linux/ ubuntu ] 開発者とエンドユーザの橋渡しも提供するFeisty Fawn

Canonicalの最高経営責任者(CEO)であるMark Shuttleworth氏はインタビューで、Ubuntu 7.04とも呼ばれるFeisty Fawnには、プログラマーがアプリケーションのクラッシュ原因を突きとめるうえで役に立つデバッグ情報を送信することができるソフトウェアが搭載されていると述べる。
( 2007/04/12, CNET, 原文: Stephen Shankland, 翻訳: CNET Japan 編集部 )

4/19 にリリースが予定されている Ubuntu7.04 (開発コード名 Festy Fawn ) では開発者とユーザ両方の助けになる機能が追加される。そのひとつがクラッシュレポート機能。ソフトウェアのクラッシュが起きたときの情報を集めてレポートして送信する機能だ。

ソフトウェアを公開していると、ユーザから不具合があることを教えてもらえることがある。開発者としても自分のソフトの完成度を高めることができるので、そういった報告はありがたいものだ。しかし、原因を追究するために必要な情報が足りなくてなかなか切り分けが進まないこともある。ほしい情報を得るためにはプログラミングを全くしたことがないユーザには難しすぎる操作が必要だったり、普段触ることもないようなことをしてもらわなきゃならなかったりするのだ。「クラッシュダンプを送ってください」なんて言葉はプログラミングしたことがないユーザにとっては宇宙人の言葉にしか聞こえないだろう。

クラッシュレポート機能はそんなときの、ユーザと開発者の橋渡しになってくれるかもしれない。

他のディストリビューションに比べて格段に高いユーザビリティを提供する Ubuntu。Festy Fawn ではこのユーザビリティに加えて、開発者とエンドユーザがもっと簡単にお互いにフィードバックを送りあえるように手助けをしてくれるのかもしれない。双方向のフィードバックが実現すればもっといいソフトウェアが生まれるはず。期待は高まるばかりだ。

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

2007/04/13

[ python ] 1行は無理?いやいや可能です

ある人から「これ↓って Python じゃできないよね。改行とインデント必須だし」といわれたので、Ruby のコードを Python で書いてみた。


p [4,2,3,6,1].sort_by{|x| if x % 2 == 0 then x else -x end}
↑奇数を降順に、次に偶数を昇順に並べるソート

# => [3, 1, 2, 4, 6]

Python だって1 行で書けるさ (・∀・)b
すさまじく邪悪になったけど・・・orz

globals().__setitem__( "odd_and_even", map( (lambda residue: [integer for integer in unsorted_list if not cmp( (integer % 2), residue )]), [1, 0] ) ) or [odd_and_even[ flag ].sort( reverse = not( flag ) ) for flag in (0, 1)] and reduce( (lambda odd_list, even_list: odd_list + even_list), odd_and_even )

得られる結果は↓のコードを実行したときと同じ。

import random
unsorted_list = [random.randrange( 1, 10 ) for iteration in range( 10 )]

odd_list  = [integer for integer in unsorted_list if (integer % 2) == 1]
even_list = [integer for integer in unsorted_list if (integer % 2) == 0]

odd_list.sort( reverse=True )
even_list.sort()

sorted_list = odd_list + even_list

print sorted_list

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

[ 政治 ] 候補者と動画で意見交換 -- 進んだ米国選挙

YouTubeは選挙戦に向けたこのプログラムを拡充し、候補者が有権者とビデオを介して交流できるフォーラムを設けたと、発表した。

 4月11日にスタートした「You Choose '08 Spotlight」では、各候補者が動画を投稿し、視聴者に政策を訴えることができる。これに対し、視聴者は1週間の期限内に、みずからの意見を撮った動画を返す仕組みになっている。
( 2007/04/12, CNET News.com, 原文:Elinor Mills, 翻訳:CNET Japan 編集部 )

「ネットの利用は不公平」などとほざく時代錯誤甚だしいどっかの国の選挙制度とは大きな違いだね。

TV は一方的なメディアだ。ごく一部の人間だけがその他大勢に情報を垂れ流すだけのメディア。

しかし、ネットは違う。誰でも情報を発信できるし、発信した情報に対して誰でも反応することができる。ネットは双方向性を持ったメディアだ。真摯な意見には真摯な反応が返ってくる ( ごく稀にそうでない反応も返ってくるけど )。

今回のフォーラム --You Choose-- はネットの双方向性を上手に活用していると思う。「自らが演説する動画」とすることで、稀に混じってしまうゴミ ( 「ググれ!」だけの投稿とか「2げっとズサー」というような投稿 )も少なくできるだろう。討論になることもあるかもしれないが、それは双方が真剣にその問題を考えていることの証でもある。討論になることはむしろいいことだし、その候補者が問題に取り組む姿勢を知るチャンスでもある。

You Choose により、より世界の声に耳を傾けている候補者そしてより有権者が望む答えを出した候補者が当選するようになるだろう。そして、有権者の声に耳を傾けない ( ユーザからの投稿にまったく反応しない ) 候補者と有権者が望まない政治を取ろうとする候補者をふるい落とすようになるだろう。TV で一方的に垂れ流す政権演説なんぞよりもはるかに「健全なアピール」だといえる。

有権者からの反応に答えなければならないのは面倒だという政治家もいるかもしれないが、そもそも民衆の声に耳を傾けないのであれば独裁と変わらないのであって、そんな独裁者は民主主義国家の政治家として相応しくない。有権者が重要だと思っている ( つまり、たくさん声が集まっている ) 、でも難しい問題に答えない場合は、緊急を要する問題が出たとしても後回しにしてしまうような政治家かもしれない。こういった候補者を選別するいい試みだと思う。

日本も時代錯誤甚だしい戯言をのたまってないで、よりよい選挙につながるテクノロジーは積極的に活用できるようになるべきだろう。

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

2007/04/10

これでメンテしたのか?

昨日は投稿ボタンを押してもなかなか反映されなくて、
別 PC, 別 ISP 経由で cocolog 見ても
やっぱり反映されていないから何回か投稿しなおした。

それでも反映されないから諦めたんだよね。
なんて間抜けなシステムなんだろうってあきれながら。

で、朝になって自分のページ確認したら、
再投稿したぶんだけ同じ記事がずら~って並んでるの。

レスポンス改善のためにメンテしたんじゃなかったっけ?
それもお知らせブログ見ると 4月4日にメンテ( ちゃんと予定通りに完了したらしい ) してるんだけど
なんでメンテ前より酷くなってるんだろう

これ書いている今も管理用ページがものすっごく重いんだよね。
納得いく説明してくれませんか Nifty さん

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

2007/04/09

[ 政治 ] Web を使うと「不公平」?

サイバーエージェントは4月6日、AmebaVisionに投稿された東京都知事選の政見放送の動画を削除したことを明らかにした。

 同社は「政見放送は、公職選挙法に基づいて候補者の政見放送をテレビ放映することになっており、その放送回数は各候補者毎に明確に定められております」と理由を説明。今回の削除は特定候補者の政見放送だけが視聴される不公平を是正するための措置だとしている。

( 特定候補者だけが視聴されるのは不公平--AmebaVisionが都知事選の政見放送を削除, CNET Japan, 鳴海淳義, 2007/04/06 )

TV は公平でネットは不公平なの?
ずいぶんと面白いジョークだね。コメントにあるように時間を合わせなければ演説を聞くこともできないメディアが公平とは到底思えない。また、聞けば ( わたしは TV というハードウェアを持っていない ) TV では候補者のうち数人だけに注力されていて、視聴者の目に触れる割合は平等ではなかったというではないか。

ネットにアップロードすることを「不公平」であるとし、TV 放送こそが「公平」だと主張する愚か者はたいていこういう。「ネットは PC とか持ってないと見れないじゃないか」。なるほど確かにそうだ。しかしそれは TV で放送される演説に対しても同じことが言える。TV というハードウェアがなければ視聴できない。PC を不要と判断して所持しない人間がいるように、TV を不要と判断して所持しない人間もまた存在する。

公職選挙法とやらは「TV は誰もが持っている」という前提が必要なようだが、メディアが多様化している現在では、この前提は文句なく間違っている。どのメディアを使ったとしても候補者の演説を視聴できるようにするべきなのだ。

選挙管理委員会の対応、動画配信サービス提供各社の対応どちらも正しいとは言えない。BGM が追加されていたり演説を入れ替えるなど編集が加えられた動画が削除されたのは、政見演説の趣旨 ( 候補者の主張を候補者が考えた通りに有権者に伝える。一切編集を加えてはならない。) からいい対応だったと思う。しかし、公開された動画の中には一切編集が加えられていないものもあった。これまでも削除されてしまったのは残念でならない。

選挙管理委員会は誰でも、いつでも候補者の主張を確認できるように候補者全員の動画をテキストと合せて公式サイトに用意すればよかったのだ。また、動画配信サービス側は「自由に政権演説を確認できるようにするための方法の一つ。ほかの候補者の演説も用意してほしい」と切り返してほしかった。( ただし、前述のように候補者の主張が誤解されないように編集が加えられてしまったものは削除するべきだと思う )

また、わたしはネットにはネットの利点があると思う。まず第一に、見たいと思ったときに好きなだけ目にすることができる。TV 放送は放送時間に合わせなければならないが、ネットならいつでも自分の好きな時間に確認できる。TV 放送もビデオなりレコーダーなりに録画すればそれが可能だが、TV 本体とは別のハードウェアが必要になることが多い。ネットはそんなもの必要ない。そういったサービスは向こう側が提供するものだ。

第二にじっくりと考察できる。TV 放送ではうまく聞き取れなかったとしても、もう一回ということはできない。別の機会を待つしかないが、放送回数も規定されているので周りがうるさかったりして聞き取れなかった場合は残念ながら諦めるしかない。ネットはページをリロードするか「もう一回見る」ボタンをクリックすれば気がすむまで演説を確認できる。主張に矛盾はないのかといったことは勿論、候補者 A と候補者 B は正反対のことを言っているがどちらがいいのだろうという場合も好きなだけ両者の主張を比べることができる。

第三に、ユーザの好きな形式で候補者の主張を確認できる。選挙演説という動画だけでなく、テキストでもプレゼンテーションライクなスライド形式 ( Javascript を駆使すればブラウザでも実現可能 ) でも好きな形式を選べる。しかし TV はそうはいかない。自由にスクロールできない TV で文章を流されても読み取りづらいだけだ。

第四に、コストがそんなにかからない。選挙カーを用意するだとか、マスコミに取り上げてもらうとかだと金銭だけじゃなくて精神的・肉体的なコストも大きい。しかしネットは違う。サイトにファイルをアップロードしておくだけだ。選挙のポータルページに候補者全員のファイルをアップロードしておけば平等というものだ。どれだけ有権者の目に触れるかはユーザが決める。ネットはユーザ主導型のメディアだ。候補者がお偉いさんでどれだけ金を持っていようがユーザが首肯しなければ支持は広がらない ( 批判は広がるかもしれないが )。

それぞれのメディアを利用しているユーザに、それぞれに合った方法で候補者としての主張を伝える行為のどこが悪いのだろうか。情報伝達手段が多様化した今では唯一の正しいメディアなんてものはないのだ。

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

2007/04/05

[ mobile ] EM モバイルブロードバンド実測値

昨日は cocolog がメンテだったらしくて投稿できなかった( ´・ω・`)

さて、3/31 にスタートした EM Mobile Broadband 。使い勝手は前に書いたとおりだけど実測値を書き忘れてたので、改めて測定しなおしてみた。測定は goo Broadband Speedtest を使った。測定場所は東京の飯田橋駅近く。結果は下のスクリーンショットのとおり。

EM ブロードバンド実測値

TCP/IP による通信では実データ転送速度は、プロトコルヘッダなどのオーバヘッドがあるので理論値の 8 割程度といわれている。EM ブロードバンドの理論値は公式には 3.6Mbps なので、理想的な状態での通信速度は 3.6 * 0.8 = 2.88 Mbps ということになる。測定結果はこれに近い。もちろん、電波の受信状態によってはこれより遅くなってしまうわけだけど、電波の受信状態が良好なら理想値に近い速度で通信できるようだ。

アプリケーションを使った感想は、YouTube の視聴は ( YouTube にアクセスが集中する時間帯を除けば ) こま落ちすることなく再生できた。また、たいていの MMORPG も十分プレイできると思う。わたしの場合は UO と Red Stone を試したけどスムーズに操作できた。MMORPG の場合は EM ブロードバンドの通信速度よりもむしろノートPC のグラフィック処理能力がボトルネックになる可能性が大きいと思う。

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

[ book ] IronPython の世界

IronPython の世界 目次を見て購入決定。IronPython と CPython の違い ( 互換性 ) といった基本的なことはもちろん目次にあります。また、プログラムで頭を抱えることが多いのが文字コード問題ですがこれに関するページも。加えて、追加されたばかりの WPF を使ったプログラムを IronPython で作る方法も書かれているみたい。

詳細目次がどこにも載っていないので書いてみる( ´・ω・`)

Part1. IronPython とは
IronPython の歴史
Python Conference 2004
Open Source Convention 2004
IronPython 1.0 のリリース
CLI と .NET Framework, そして IronPython
CLI と標準化
CLI と .NET Framework
IronPython と .NET Framework, そして CLI
IronPython のアーキテクチャ
CPython との違い
IronPython 環境の構築
環境の確認
CPython 2.4.4 の導入
IronPython の導入
マニュアルの入手
IronPython のライセンスについて
 
Part2. IronPython を動かしてみる
IronPython の起動と環境の表示
インタラクティブシェルを起動する
キーボードからコードを入力する
インタラクティブシェルを終了する
IronPython の環境を表示する
プログラミングの基本
命令
変数
条件分岐
繰り返し
インタラクティブシェルのコマンドラインオプション
デバッグリリースでしか有効にならないオプション
すべてのリリースモードで有効になる、代表的なオプション
インタラクティブシェルの対話入力編集機能
IronPython と日本語
プログラムの中での日本語の取り扱い
スクリプトファイルでの日本語の取り扱い
外部ファイルを処理するときの日本語の取り扱い
 
Part3. CPython との互換性
組み込みのデータ型
組み込みのデータ型一覧
数値を使う
真偽値を使う
文字列を使う
リストを使う
タプルを使う
辞書を使う
set 型を使う
組み込みデータ型のまとめ
関数
関数を利用する
関数の定義
ファイル処理
ファイルオブジェクトを使う
組み込みモジュール
モジュールの使い方
モジュールを使う
CPython のライブラリを使用する
CPython 2.4 のライブラリ使用の準備をする
CPython のライブラリを使用する
プログラムを短くするテクニック
リスト内包表記
lambda ( ラムダ ) 式
イテレータ
ジェネレータ
オブジェクト指向
クラスとは
クラスを定義する
 
Part4. .NET Framework のライブラリを使用する
IronPython から .NET Framework へのシームレスな連係
.NET Framework へ Python データ型を拡張する
.NET Framework のライブラリを使う準備
ファイル入出力を使う: System.IO ネームスペース
StreamReader クラスを使う: System.IO.StreamReader
異なるエンコードのファイルを読み込む
StreamWriter クラスを使う: System.IO.StreamWriter
異なるエンコードのファイルを書き込む
正規表現: re モジュール
正規表現を使う 2 つの方法
正規表現文字列
正規表現オブジェクトを使用する
マッチオブジェクトを利用する
パターンを引数にして正規表現を利用する
正規表現の活用例
Windows Forms を使った GUI アプリの開発
Windows Forms を使う
WPF* を使った GUI アプリの構築
WPF を使う
Window を使う
XAML を使う
イベントハンドラを使う
ファイルシステムウォッチャー
 
Part5. IronPythonで DB & Web プログラミング
データベースプログラミング
SQL Server 2005 とは
インターネットにアクセスする
Web や FTP からファイルを取得する
Web や FTP からデータを読み込む
知っていると便利なプロパティ
Web や FTP へデータをアップロードする
Web サービスと API との連係
Yahoo! Japan の Web サービスを使う
SOAP を使った Web サービスを利用する
XML や HTML を使う
ElementTree を利用する
System.Xml を使う
Web アプリケーションを作る
CGI として利用する
ASP.NET の仕組みから IronPython を実行する
自分で HTTP ハンドラを用意する
IronPython for ASP.NET
 
Part6. もっと IronPython を使いこなすために
ソースコードを探索しよう
ソースコードを探索する
IronPython に独自モジュールを追加しよう
.NET Framework 対応の言語から IronPython を使う
COM 相互運用アセンブリを使う
デバッグの方法
ユニットテストを使う
Microsoft CLR デバッガを使う
Visual Studio 2005 をデバッガとして使用する
 
Appendix
IronPython ドキュメントミニツアー
ネット上で読める CPython のドキュメント
IronPython の重要なドキュメント
.NET Framework のライブラリに関するドキュメント
Python のコミュニティ
IronPython と Visual Studio 2005 との統合
言語パッケージをビルドする
作成した IronPython 言語パッケージを使う
IronPython のサンプル
Python 言語の例外処理

( * ) : 開発コード名 Avalon

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

[ wish] 防水仕様 の SD カード

via ITMedia
プラスゲイン、1Gバイト890円の防水仕様のSDメモリカード

水の中にぽちゃっと落としてしまっても大丈夫という便利な SD カードが発売された。

携帯とか SD カード、USB メモリって「うっかり落としてしまう」ことが結構あるのに、防水仕様になっているものってあんまりない。あったとしても他よりもずっと高い価格設定 -- 普通のを2使ってバックアップ取った方が安いじゃない -- がされていて、購入する気にすらならなかった。

でもこの SD カードは 1GB モデルで 890円、2GB モデルでも1780円。他のカードと比較しても安い方じゃないかと思う。防水も「水しぶきがかかるくらいなら大丈夫だけど、ぽちゃんはNG」という、それなら意味ないじゃんレベルではない。例えるなら「バケツの中に水を入れて、その中に30分放置しても大丈夫」という実用的なレベル。

安物だと相性が心配だけど、890円なら相性問題が出ても大して痛くないしね。直販だと送料が高い ( 672円 ) ので、送料無料になるところで販売されるの待ちかな。・・・Amazon さん、これ販売してくれませんか(´・ω・`)?

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

2007/04/01

[ aprilfool ] 今年のエイプリルフール

エイプリルフールには毎年楽しいジョーク記事を作ってくれる Watch Impress.
今年はトップからすごいことになってるね。

メイドさんならぬ冥土さんが・・・ガクガク((((;゜Д゜)))ブルブル

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

[ mobile ] EMOBILE の EM mobile broadband を使ってみた

2007.04.05 追記
通信速度の実測値についてはこちらのエントリに SS つきで書きました。

今日からサービススタート。予約しておいた NIC を受け取りに行ってそのまま使ってみました。

わたしが選んだのは以前書いたように、カードタイプの D01NE. デバイスインストールは特に難しいところはなく、ウィザードにしたがって進めてさくっと完了。注意点としては、手動でドライバだけをインストールすることもできるのですがそれだとネットワークへの接続が面倒になってしまうこと。素直にインストールウィザードを起動してユーティリティとセットでインストールしたほうが、その後が楽になるのでお勧め。

ユーティリティもインストールした場合はネットへの接続も簡単。タスクトレイのアイコンを右クリックして [接続] を選択すればいいだけ。ユーティリティから接続すれば毎回コード入力を求められることはないみたい。

肝心の通信速度ですが、かなりのもの。思っていた以上に早かった。ヨドバシ秋葉館の中で EM サービス経由で Red Stone を走らせたんだけど、人がものすごく集まる二大都市でもさくさく動きました。自宅でプレイしたときとほとんど変わらないくらい。コネロスも発生することはなかった。また電車で移動しているときも使っていたんだけど、サービス提供エリアとされている中ならそれでも接続が切れてしまうことはなかった。安定性も高い。

通信可能エリアもアナウンスされているよりも広いみたいだ。電車で移動中に使い続けてみたところ、大宮までは接続を維持することができた。だたし、赤羽を過ぎると通信速度はかなり落ちる。また、安定性も下がるようで何度もリトライが発生していた。まぁ IRC とか IM ならば何とか使えるというレベルかな。

定額データ通信では他に Air Edge なんかがあるらしいけど、Air Edge ははっきりいって遅すぎる。画像非表示設定はもちろんスクリプトコンテンツもすべて無効にして何とか使えるというレベルだ。高速通信では DoCoMo がサービスを始めたらしいけど、これは従量課金制だという。つまり、ネットがんがん使いまくりのパワーユーザが使ったら一月数万円かかってしまう。どちらも実用的とは言い難い選択肢だ。

一方で EM モバイルブロードバンドは公式にサービス提供エリアとされている地域なら通信速度も安定性もかなり高い。料金も月額 \5980 と、契約コースによるけど光回線と同じくらいじゃないかな。通信速度は光より劣るものの、サービス提供エリア内ならどこからでもつなげるという利点がある。速度を取るかフレキシビリティをとるかによるけど、そのトレードオフが問題にならないなら部屋によってはメインの回線を置き換えてしまってもいいと思う。

もちろん欠点がないわけじゃない。たとえば、ビルの地下や地下鉄ではまったく通信ができない。地上でも周りをビルに囲まれた場所などでは速度・安定性ともに落ちてしまう。駅のすぐそばの広場 ( ビルで囲まれているスポット ) では Google の検索結果を表示するまでに10秒ほどかかってしまった。店で食事を取りながらあるいは広場で誰かを待ちながらネットに繋ぐというケースは十分考えられる。にもかかわらず駅のすぐそばで安定性が落ちてしまうのは残念。早めに改善してほしい。

これはネットワークサービスを提供する EMOBILE ではなく、デバイスを開発した NEC に対してだけどドライバのデキに少しばかし不満がある。というのはスタンバイや休止状態への移行・復帰に関する動作が不安定なのだ。デバイスをインストールする前と比べると、状態の移行に倍以上の時間がかかってしまう。それだけでなく、毎回ではないものの「~は応答していません」ダイアログが表示され状態の移行に失敗することすらある。スタンバイや休止状態への移行、それらからの復帰がうまくいかないというのはマニュアルに注意書きされている。しかし、モバイルユース向けラップトップはバッテリという限られた電力源を少しでも有効に使うためにスタンバイ・休止状態といった省電力モードを積極的に利用することを推奨しているしハードもそのように作られているはず。D01NE ひとつ追加したために省電力機能の一部が使えなくなってしまうのは痛い。

謝辞
ソフトウェアインストールと動作テストのための無理なお願いを快く受けてくださったヨドバシ秋葉館の皆様に感謝いたします。本当にありがとうございました。ヨドバシ秋葉館の皆様のご協力がなければドライバのインストールすらその場ではできませんでした。X60 には光学ドライブがついていないのです。

関連
13年ぶりの新キャリア「イー・モバイル」誕生 ( 2007/03/31, ITMedia )
イー・モバイル特集 ( 2007, Impress Watch )

パソコン・インターネット | | コメント (0) | トラックバック (0)

« 2007年3月 | トップページ | 2007年5月 »