2008年11月22日

パソコン日記(2008)




1997年からはじめた身の回りのコンピュータ全体の日記コーナーです。

仕事でソフトウェア開発をやっていたので、仕事も趣味もコンピュータです。 そんな生活の中で起こったことや気づいたことを紹介します。
毎日書いてるわけではないのですが、のらりくらりと続いています。

特定のテーマで独立したページを書くのは結構大変なのですが、日々の出来事を エッセイ風に書くのはかなり楽なので最近はこちらばかり更新しています。



2020年 2019年 2014年 2013年
2012年 2011年 2010年 2009年 2007年
2006年 2005年 2004年 2003年 2002年
2001年 2000年 1999年 1998年 1997年

リンクアイコン トップページへ戻る


2008/11/22(土)

パラレル接続VFDへの文字表示ソフト

私の自作機のケース(ACCENT HT-200)には、パラレル接続の文字表示デバイスが 組み込まれてます。付属していた説明書によると、Windows からこのVFD に情報を表示するためにはport95nt.exe というプログラムを実行することで組み込まれるドライバと、 smartie51.zip というアプリケーションを利用します。

これらのソフトウェアはインターネットで公開されていたのですが、 説明書にあったURLは現在はつながりません。 ですが、おそらく
http://lcdsmartie.sourceforge.net/で公開されているのがこのsmartie51.zip の最新版で、このサイトの http://lcdsmartie.sourceforge.net/HDSetup.html にあるport95nt がport95nt.exe と同じものなのではないかと思います。 SourceForge.net を拠点にすえ活動されてるようですね。

最近はプリンタはUSBかイーサネット接続ですし、パラレルポートのないマザーボード だとパラレル接続の文字表示デバイスはつながらないですね。


コマンドプロンプトでファイル検索

Windows のコマンドプロンプトで、UNIX のfind みたいにファイルを探したい場合、 dir に/s オプションをつけるとサブディレクトリも含めて探してくれることを 知りました。開発プロジェクトのトップディレクトリで「dir /s *.jsp」 とすると、JSP 画面の数を知ることができます。

2008/10/14(火)

マルチセッションダウンロード

あるITベンダーのWeb サイトからサイズの大きいファイルをダウンロードした時に気づいたことです。 そのプログラムをダウンロードするには2つの方法から選択できるように なっていました。1つは通常のHTTP でブラウザの機能でダウンロードする方法で、 2つ目はそのサイト専用に提供されているJava で書かれたダウンローダを利用する方法でした。

両方ためしてみたところ、HTTPではだいたい毎秒300KBytes の速度でダウンロードできたのに対し、Java のダウンローダでは8 セッション並列動作でトータルでは毎秒2.4MBytes の速度が出ました。 netstat で確認してみると、ダウンローダの場合もhttp の80 番ポートに接続にいっている様子でした。

インターネットへの接続はマンションの光ファイバなのですが、 混み合う時間帯だったので毎秒300KBytes という速度は納得できるのですが、 ダウンローダだとほぼセッションの数に比例して8倍の速度が出るのが とても不思議です。回線が混んでいるのに何故速度をあげることができるのかと。

あれこれ考えた末に次のように悟りました。

なるほど、単純な回線共有の状況ではユーザの数で速度がきまるのではなく、 全体のセッションの数の割合で速度がきまるのかもしれませんね。


2008/09/05(金)

Slackware Linux のインストール

Linux には様々なディストリビューションがありますが、私が最も愛用しているのは Slackware Linux でもう10年以上利用させてもらってます。 あるPCに2006年にインストールしたSlackware を最新のものに入れ替えました。

http://www.slackware.com/ からたどれるFTP のミラーサイトから必要なファイル(slackware-current 配下のisolinux, kernels, slackware ディレクトリ全部)をwget で入手しました。 最近はbootdisks とrootdisks ディレクトリがなくなっちゃってます。 フロッピで起動してインストールする方法はもう利用されることがないのでしょう。

今回はCygwin 環境で動作するmkisofs でWindows 上でDVD イメージを作成してみました。 mkisofs はgenisoimage.exe へのシンボリックリンクになっていることに気づきました。 man genisoimage で確認すると、cdrtools 2.01.01a08 のmkisofs から 2006年5月に分岐したそうです。

Slackware 配布サイトのisolinux ディレクトリにあるREADME.TXT に書かれている オプションで、次のようにDVD イメージを作成しました。
genisoimage -o c:/tmp/slackware-dvd.iso ^
  -R -J -A "Slackware Install" ^
  -hide-rr-moved -v -d -N ^
  -no-emul-boot -boot-load-size 4 ^
  -boot-info-table -sort isolinux/iso.sort ^
  -b isolinux/isolinux.bin ^
  -c isolinux/isolinux.boot ^
  -V "SlackDVD" .

このように、直接genisoimage を実行する場合でもmkisofs と同じ引数を与えて実行することができました。
各行の末尾にある「^」はWindows のバッチファイルで次行への継続を するためのものでUNIXのシェルスクリプトの¥に相当します。

Slackware をインストールするPCのCPUはVIAのC3/EDEN 600MHz です。 インストールDVDから起動したときのカーネルパラメータ入力画面で、 Pentium Pro より前のCPUで起動する場合はデフォルトのhuge_smp.s カーネルではなく、huge.s カーネルで起動するように英語でメッセージが表示されました。 Pentium 相当のCPUと思いますので、boot プロンプトにhuge.s とキーインしてインストーラを起動しました。

インストールのステップで、以前はHDD から起動できなくなった時のために非常用の起動フロッピを作成するステップ がありました。 これが現在は非常起動用のUSB フラッシュメモリ作成に内容が変わってました。 注意書きによると、これで作成するとそのUSBフラッシュメモリの内容はすべて 消去されてしまうとあります。ルートパーティションのデバイス名(例えば/dev/hda1) がわかればインストール用のDVDでどうにかなるので起動用のUSBフラッシュ作成は スキップしました。

インストールでは、kdevelop-3.5.3-i486-1.tgz と sdl-1.2.13-i486-2.tgz が壊れてるということでエラーが出ましたが、インストールは継続できました。 エラーの出た2つは個別に本家のFTPサイトからwget でダウンロードして、 installpkg で入れるとうまく入りました。
こういうインストールエラーはこれまでなかったと思います。ミラーサイトの ファイルが壊れてたのか、ファイルのダウンロードで問題があったのか、 Windows 上でのgenisoimage に問題があったのか、DVDを焼いた環境やメディア に何か問題があったのか、ちょっと気になるところです。

今回の作業では古いSlackware を最新のものに入れ替えるということでデータや 設定の移行にはいろいろと注意してたのですが、tcp_wrapper の設定ファイルである /etc/hosts.allow の内容を控えておくのを失念していました。 hosts.deny はALL: ALL でhosts.allow の方に細かく設定してたので、また最初から 設定していくことになってしまいました。みなさんも気をつけましょう。


2008/09/01(月)

EXCELで配列状のデータの積の和を求める

エクセルでゴリゴリやってる時に、たとえば次のようなガソリンスタンドでの 購入履歴を管理するような表で、「C100」 のセルにレギュラーだけの購入金額合計を求めるような、 「単価が購入の時ごとに変化する特定種別だけを抽出した購入金額の合計を自動算出 したい」状況に直面しました。

 AB C
1商品
単価
購入量
2レギュラー
145
35
3ハイオク
162
30
4レギュラー
153
40
5軽油
105
58
6レギュラー
148
38
:
(7〜99行まで省略)
100 レギュラー購入金額合計 


この例の表ではレギュラーは2,4,6行にデータがありますので、それを拾って その時の単価と購入量を掛け算して合計する式は
145x35 + 153x40 + 148x38 = 16819
となりますが、データは もっと大量に、しかも月ごとに別のグループになっていて8月のガソリンの合計 を記入するカラムとか7月のハイオクの合計を集計するカラムとかが大量に あります。 エクセルの機能でデータを入力・修正するたびにうまく自動集計したく、 どのような計算式を定義すればよいかあれこれ試行錯誤しました。

たどりついた答えは、EXCEL のSUMPRODUCTという関数を使う方法でした。 SUMPRODUCT関数は領域から必要な行だけを抽出して、各行ごとに値を掛け算した結果を たてに合計することができます。結局レギュラー購入金額の合計を自動計算する式は
=SUMPRODUCT((A2:A99="レギュラー")*(B2:B99)*(C2:C99))
でうまくできました。

2008/08/31(日)

VMware Workstation 6.0.5

VMware Workstation 5.5 ではFedora8 やSolaris10 のインストール・動作 に問題があったので、春にVMware Workstation 6.0 を購入(別マシンで5.5 も使いたいのでアップデートではなく、新規)しました。 6.0の仮想マシンではUSB2.0を扱えるのがうれしいところでもあります。
6.5のベータ版が一時期公開されてたような気がするのですが現在は姿を消していて、 先日VMware Workstation のマイナーアップデートである6.0.5 が公開されていました。それを入手し6.0.4から差し替えてみることにしました。

VMware の更新は差分をパッチであてるやりかたではなく、 まるごと入れなおしです。今回も6.0.4をアンインストールして再起動してから6.0.5 を入れるわけですが、WindowsXP のコントロールパネルの「プログラムの追加と削除」からVMware Workstation をアンインストールしようとしたところ、C:\tmp\ にあるはずのアンインストール作業に必要なファイルがない、 とエラーになってしまいました。 ファイルの整理をした時に、不要なファイルと思い自分で消してしまった のかもしれません。アンインストールで必要になるようなファイルを環境変数TEMP がさすような場所へ保存されるのは納得いかないところです。

VMware のインストーラは-help引数をつけて実行すると、 有効な引数の説明が表示されます。それによると/c 引き数をつけて実行すると インストレーションの登録情報を一掃する、とあります。 インターネットを検索すると、アンインストールがうまくいかない場合はこの /c でクリンアップしてからインストールするとうまくいくことがあるようです。 VMware-workstation-6.0.5-109488.exe を/c をつけて実行すると、 クリンアップに成功した旨のメッセージが出ました。 それに続いて引数をつけずにインストーラを起動するとうまくインストールすることが でき、正常に6.0.5 が動作しました。

対処方法を検索する際に、VMware のインストーラは7zip で中身を展開できるらしい こともわかりました。

Fedora9 でVMware Tools

VMware 環境にFedora9 Linux をインストールして利用する際に、VMware Tools がちゃんと動かない問題をどうにかしてみることにしました。

VMware Tools をrpm でインストールするだけではダメで、 /usr/bin/vmware-config-tools.plを実行する必要があります。 その時に、カーネルのソースが必要となるのでyum install kernel-devel で入れておくとよいことがわかりました。 (Cコンパイラも必要です. yum install gcc.i386)

これで仮想マシンからホストマシンへマウスが自動で開放されるようになりました。 でもFedora9 を再起動するとマウスがつかまってしまいCtrl+ALTによる開放操作 が必要になります。 これを解決するためには、/etc/rc.d/init.d/vmware-tools restart を実行するとうまくいきました。


メインメニュー へ戻る