- ある開発者の覚書 - ソフトウェア開発者が情報処理に関する雑多な話題をジャンルを問わずに書き留めています.未来の私、私と同類のgeekたちへ
2008-12-29
FolderCreatorLite 公開
ファイル整理の手間を少しでも省くようにお手伝いするシンプルなアプリケーションです.
ファイル自体は既に公開してたんですが説明書きをすこし改良してます.
2008-12-27
blogger template 変更
テンプレート変更するにいたった背景には「トラックバックを使えるようにしたかった」という思いがありました。bloggerには他のblogサービスで標準的なトラックバックがない、ということを知ったのはblogを本格的にやりはじめてしばらくしてから。そのときに他のblogサービスに乗り換える手もあったのですが、きっと方法があるだろうと探してみるとHalo Scanというサービスを利用すると可能だとのこと。いまはJS-Kitと名前を変えているようです。bloggerの場合はユーザ登録しなくてもサイト上で既存のコメントのインポートとテンプレートをJS-Kitに対応させる変換作業ができるようです。ちなみに私も試したのですがエラーが出てだめでした。
まだよく理解できてないのですがbloggerのバックリンクって完全に一般的なトラックバックと等価?だとするとJS-Kitを使う必要はないし。とりあえず以前はbloggerのバックリンクも有効になってない状態だったみたいなのでしばらくはバックリンク有効にしただけで運用してみます。
2008-12-17
Touch Diamond の面白いアプリケーション GRemote
アイデアがすばらしい。自分の好きなジャンルであり、最初に動かしたときには感動がありました。こういう感覚は久々です。たのしいものですね。
紹介サイト
Touch Diamondを無線マウス&キーボード化 - Touch Diamondの日記
2008-12-05
S21HT 標準アプリケーションの使い心地
- Windows Mobile
OSですが。不安定さはまだまだです。一週間のうちに3回ソフトリセットが必要な状態になりました。 - Touch FLO
期待してなかったのですがなかなかよいです。多少もたつくときはありますが一度なれると操作感は快適です。カスタマイズが標準でできればもっとよいと思います。 - Opera
すばらしいです。M1000ではOperaしか使わないくらいにほれ込んでたのですが、期待通りに進化してくれています。一度使用中に落ちたことはありますがOSごとクラッシュだったのでOperaかWindowsかどっちの問題かはわかりません。唯一の欠点はJavaScriptの問題かGoogleノートブックはじめいくつかのサービスが動きません。 - FMラジオ
ラジオ好きにはうれしいこのアプリ。しかしいまいち使いにくいです。画面のボタンのうちひとつが外部スピーカーとイヤホンの出力切り替え。この操作は頻繁に行うものではないので不必要なばかりか、イヤホンで聴いてるときに間違えて押すと意図せず外に音声が流れることになるので表示しないほうがむしろよいと思います。またアプリ自体に音量調整機能がないのでシステムの音量調整を使うのですが、サイドキーでの音量調整の幅が荒すぎてちょうどいい音量に設定するのが困難。ドラッグ操作ではもっと細かく調整できるのですがせっかくキーがあるので使いたいところ。(これはFMラジオアプリよりもシステムの問題点ですが)
2008-12-03
SSH port forward で リモートデスクトップ
- ポートフォワードオプションをつけてSSHログイン
localhostの任意のポートへ自宅のWindowsマシンのリモートデスクトップ接続のポート(デフォルトで3389)をフォーワードします. sshクライアントはCygwinでもttsshでも何でもよいです.Poderosaでも.puttyなら,Connection→SSH→Tunnelsにオプションがあります
例:ここでは自宅のネットワーク内のローカルIPアドレスaaa.bbb.xxx.yyyのマシンをlocalhostの3333にフォーワードしてみます.
> ssh someone@somewhere.com -L 3333:aaa.bbb.xxx.yyy:3389
- フォーワードしたポートへリモートデスクトップ接続
SSHクライアントの接続をキープしたままで,通常通りWindowsのリモートデスクトップクライアントを立ち上げてフォーワードしたポートへ接続します.
例:> mstsc /v:localhost:3333
ちなみにこの方法はVNC接続(デフォルトポート番号 5900)にも全く同様に利用できます.
注意:リモートデスクトップクライアントの古いバージョンではlocalhostへの接続が出来ない場合があります.その場合は以下の方法を使います.
- mstsc.exeとmstscax.dllを任意のフォルダにコピー
- コピーしたmstsc.exeのプロパティ→互換性→互換モード,互換モードでこのプログラムを実行する,Windows98 / Windows ME
- コピーしたmstsc.exeを起動して接続
Touch Diamondにインストールしたアプリケーション
GPSもばっちり動いてくれました.起動しっぱなしだとかなり電池を食うようです.
携帯電話にワンコール入れてみただけです.セットアップファイルは「Skype for Windows Mobile Professional」の方をダウンロード.最初は間違えて逆を入れて起動しませんでした.
SSHクライアント.SSHポートフォワードが私には必須なので.これもセットアップファイルを間違えて最初はまりました.PocketPuTTY 0.1 for WM2003 (stable)です.
2008-12-01
Touch Diamond S21HT 購入
2008-11-19
agile
Windows シェルを変更
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\WinlogonのShell
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\WinlogonのShell
2008-11-15
<pre>タグで自動改行(右端で折り返す)
2008-11-11
EMONSTER の本体サイズ
XenでWindowsXPをインストール
xenカーネルで起動したのでまずは試しにWindowsXPを入れてみるか,と試してみたのですが敗北しました.orz
準仮想化と完全仮想化の違いがあり,Windowsは完全仮想化でしかインストールできない.そして完全仮想化にはIntel VTかAMD-V対応CPUが必要.今の環境はPentiumⅢ,,,つまりWindows系OSはインストール不可能,,,
付録:参照したサイトまとめ
2008-11-09
xen 起動しない?
・Onboard USBデバイス使用
USBデバイス有効化だけではOKな場合もあり。その場合、USB Keyboard Support を有効化するとNG
・Secondary IDEをHDDで使用
PrimaryのみでMaster、Slave同時はOK。Secondary IDEにCD-ROM接続はOK
・PnP OSをYes
VMWare ESXiで挫折してxenをいじり始めたのですがどの仮想化技術でもハードウェア依存性は高いようです。より通常のOSと近い環境の実現が目的のハイパバイザーでは当たり前といえば当たり前な気はしますが
2008-11-07
S21HT Touch Diamond まとめ - EMONSTER S11HT まとめWiki
Touch Diamondはライトユーザ向けと候補から外してたのですが,自分の使用目的から考えると適している気がしてきました.EMONSTERに心揺らされるあまり危うく忘れそうでしたが,もっとも重視する点は「主回線のDocomoでパケット代を抑えるために携帯電話感覚の片手操作でネットに接続できるコンパクトな端末」です.この観点からはほとんどの音声端末は適合です.じゃその中でもっとも遊べて楽しそうなものとなるとTouch Diamondいいんじゃない?
逆にEMONSTERで出来てTouch Diamondで出来ないこと.まとめサイトにあるようにEMONSTERとの大きな違いは以下の三点
キーボード
MicroSD
VGA
以前SL-C700+bmobile使用の経験から携帯電話感覚での使用時にはキーボードはほとんど使用しませんでした.あったらうれしいけどたまにしか使わない機能のために常に端末サイズが大きくなるというデメリットを背負うのは見合わないでしょう.キーボードが必要な作業なら座れるところに移動してlibrettoを使う,またはSL-C700+D01NXを気合入れて使えるようにがんばる,という手もあります.MicroSDの高容量ストレージはマルチメディア機能重視では必須ですが自分には4GBの内部ストレージのみでもしのげると思われます.
というわけでそろそろほんとにのりかえようかと(^_^.)
2008-10-30
Live Capture
2008-10-27
D01NX on SL-C700
まずはAngstromをSL-C700にインストール
Angstrom-console-image-glibc-ipk-2007.12-r13-c7x0-installkit.tgz
をダウンロード
本家から落としてきます。
http://www.angstrom-distribution.org/
Downloads -> c7x0です。現時点での最新バージョンが上記ファイル名になります。
展開後、以下のファイルを空のCF(or SD)のルートディレクトリにコピーします。
zImage.bin
initrd.bin
updater.sh
CFをSL-C700に挿してOKボタンを押しながら電源を入れ、メンテナンスメニューを表示させます。
4.アップデート
からアップデートを実行します。
自動再起動後、Angstromが正常にインストールされたことを確認します。
root/パスワードなしでログイン
> uname -a
Linux c7x0 2.6.24 #1 PREEMPT Wed Mar 26 12:56:24 CET 2008 armv5tel unknown
この時点でアウトなのですがそれはのちにわかることです。
とりあたまさんのところではその後、有線LANでネットワークにつないで必要なモジュールをインストールされているのですが、私はSL-C700で使えるネットワークカードは持ち合わせていませんでした。ので、手間はかかりますがモジュールのインストールパッケージを個別に落としてインストールしました。依存性のエラーが出てはそのモジュールを追加でインストール、、、と繰り返して(泣)最終的に以下のパッケージをインストール。
> ipkg install /mnt/cf/kernel-module-cdc-acm_2.6.24-r15_c7x0.ipk
Installing kernel-module-cdc-acm (2.6.24-r15) to root...
Nothing to be done
An error ocurred, return value: 1.
Collected errors:
ERROR: Cannot satisfy the following dependencies for kernel-module-cdc-acm:
kernel-module-usbcore
> ipkg install /mnt/cf/kernel-module-usbcore_2.6.24-r15_c7x0.ipk
Installing kernel-module-usbcore (2.6.24-r15) to root...
Configuring kernel-module-usbcore
> ipkg install /mnt/cf/kernel-module-cdc-acm_2.6.24-r15_c7x0.ipk
Installing kernel-module-cdc-acm (2.6.24-r15) to root...
Configuring kernel-module-cdc-acm
> ipkg install /mnt/cf/cu_1.07-r2_armv5te.ipk
Installing cu (1.07-r2) to root...
Nothing to be done
An error ocurred, return value: 1.
Collected errors:
ERROR: Cannot satisfy the following dependencies for cu:
libc6 (>= 2.6.1)
> ipkg install /mnt/cf/libc6_2.6.1-r6_armv5te.ipk
Upgrading libc6 on root from 2.5-r9 to 2.6.1-r6...
Configuring libc6
Collected errors:
Multiple packages (libc6 and libc6) providing same name marked HOLD or PREFER. Using latest.
> ipkg install /mnt/cf/cu_1.07-r2_armv5te.ipk
Installing cu (1.07-r2) to root...
Configuring cu
ここからはとりあたまさんのところに書かれている手順に従います.
> cp /mnt/cf/vmb_cs.ko /lib/modules/2.6.24/kernel/drivers/
> cp /mnt/cf/vmb_hcd.ko /lib/modules/2.6.24/kernel/drivers/
> depmod -a
ここでD01NXをSL-C700に挿すと
<3>vmb_hcd: version magic '2.6.23 preempt mod_unload ARMv5 ' should be '2.6.24 preempt mod_unload ARMv5 '
<3>vmb_cs: version magic '2.6.23 preempt mod_unload ARMv5 ' should be '2.6.24 preempt mod_unload ARMv5 '
アウト!見事にバージョンチェックで蹴られました.どうやらカーネルバージョン最新ではこのドライバは使用できないようです。
そこで次に、Angstrom旧バージョンのインストールパッケージを使ってみます。
http://www.angstrom-distribution.org/releases/2007.12/images/c7x0/old/
Angstrom-console-image-glibc-ipk-2007.12-c7x0-installkit.gz
上記と同じ手順でアップデート、再起動後にカーネルバージョンをチェックします。
> uname -a
Linux c7x0 2.6.23 #1 PREEMPT Fri Dec 28 11:06:44 CET 2007 armv5tel unknown
今度はしっかり2.6.23であることを確認しました。
上記同様にパッケージをインストールします。
> ipkg install /mnt/cf/kernel-module-usbcore_2.6.23-r27_c7x0.ipk
Installing kernel-module-usbcore (2.6.23-r27) to root...
Configuring kernel-module-usbcore
> ipkg install /mnt/cf/kernel-module-cdc-acm_2.6.23-r27_c7x0.ipk
Installing kernel-module-cdc-acm (2.6.23-r27) to root...
Configuring kernel-module-cdc-acm
> ipkg install /mnt/cf/libc6_2.6.1-r7_armv5te.ipk
Upgrading libc6 on root from 2.5-r8 to 2.6.1-r7...
Configuring libc6
Collected errors:
Multiple packages (libc6 and libc6) providing same name marked HOLD or PREFER. Using latest.
> ipkg install /mnt/cf/cu_1.07-r2_armv5te.ipk
Installing cu (1.07-r2) to root...
Configuring cu
D01NXを挿します。
> dmesg
<5>pccard: PCMCIA card inserted into slot 0
<5>pcmcia: registering new device pcmcia0.0
<6>usbcore: registered new interface driver usbfs
<6>usbcore: registered new interface driver hub
<6>usbcore: registered new device driver usb
<7>pcmcia_request_window: base=2C000000(4096) OK
<6>vmb_hcd vmb_hcd: ELAN VMB Host Controller
<6>vmb_hcd vmb_hcd: new USB bus registered, assigned bus number 1
<6>vmb_hcd vmb_hcd: irq 81, io mem 0x2c000000
<6>usb usb1: configuration #1 chosen from 1 choice
<6>hub 1-0:1.0: USB hub found
<6>hub 1-0:1.0: 2 ports detected
<6>usb 1-1: new full speed USB device using vmb_hcd and address 2
<3>usb 1-1: device descriptor read/64, error -110
<3>usb 1-1: device descriptor read/64, error -110
<6>usb 1-1: new full speed USB device using vmb_hcd and address 3
<3>usb 1-1: device descriptor read/64, error 18
<3>usb 1-1: device descriptor read/64, error -110
<6>usb 1-1: new full speed USB device using vmb_hcd and address 4
<3>usb 1-1: device not accepting address 4, error -110
<6>usb 1-1: new full speed USB device using vmb_hcd and address 5
<3>usb 1-1: device not accepting address 5, error -110
今度は認識はしてくれたようです。モジュールもロードしている模様。
> lsmod
Module Size Used by
vmb_cs 5092 1
vmb_hcd 49896 1 vmb_cs
usbcore 123392 2 vmb_hcd
uinput 7872 1
g_ether 24140 0
snd_soc_corgi 5292 0
snd_soc_pxa2xx_i2s 3352 1 snd_soc_corgi
snd_soc_wm8731 11248 1 snd_soc_corgi
snd_soc_pxa2xx 4384 1 snd_soc_corgi
snd_soc_core 26144 3 snd_soc_corgi,snd_soc_wm8731,snd_soc_pxa2xx
snd_pcm_oss 48928 0
snd_pcm 81669 3 snd_soc_pxa2xx,snd_soc_core,snd_pcm_oss
snd_timer 21732 1 snd_pcm
snd_page_alloc 6568 1 snd_pcm
snd_mixer_oss 15296 1 snd_pcm_oss
snd 51796 7 snd_soc_corgi,snd_soc_wm8731,snd_soc_core,snd_pcm_oss,snd_pcm,snd_timer,snd_mixer_oss
soundcore 6596 1 snd
rfcomm 36732 0
pcmcia 34164 1 vmb_cs
pxaficp_ir 9088 0
pxa2xx_cs 4132 3
pxa2xx_core 11008 1 pxa2xx_cs
pcmcia_core 31664 3 vmb_cs,pcmcia,pxa2xx_core
ircomm_tty 21448 0
ircomm 11460 1 ircomm_tty
irda 115400 3 pxaficp_ir,ircomm_tty,ircomm
hidp 14944 0
l2cap 21028 10 rfcomm,hidp
bluetooth 51872 5 rfcomm,hidp,l2cap
確かにvmb_csとvmb_hcdがロードされています。しかしデバイスファイル /dev/ttyACM0 は作成されませんでした。一応,手動でデバイスファイル作成を試してみます.
> mknod /dev/ttyACM0 c 166 0
> chmod 666 /dev/ttyACM0
接続してみます.
> cu -l /dev/ttyACM0 -s 115200
cu: open (/dev/ttyACM0): No such device or address
cu: /dev/ttyACM0: Line in use
敗北,,,orz まあ事前にこけてるので無理もない.
dmesgに出力されているエラーは標準出力にも表示されていました.関係ありそう.
<3>usb 1-1: device descriptor read/64, error -110
<3>usb 1-1: device descriptor read/64, error -110
<3>usb 1-1: device descriptor read/64, error 18
<3>usb 1-1: device descriptor read/64, error -110
<3>usb 1-1: device not accepting address 4, error -110
<3>usb 1-1: device not accepting address 5, error -110
考えられる原因を挙げてみます.
1.インストールすべきモジュールが足りていない
2.モジュールのバージョンが違う
3.D01NXのファームウェアが違う
4.D01NX and/or SL-C700がハードウェア的に故障
1.の場合ならそれらしいエラーが吐かれてもよさそうなものです.しかしOS自体がそれほど枯れているというわけでもないので何も吐いてくれなかったとしてもありえる話です.
2.はネットワーク経由のipkgでモジュールをインストールすると依存性解決により適切なモジュールの適切なバージョンが入るが,手動だと別のバージョンをインストールできてしまっている,というパターン.もっともありえる線かと.「ipkg update」はやってないわけですし.もしかしてlibcインストール時のエラー表示がそれ?ipkgでインストールされるモジュール名+バージョンを詳細に知る方法があれば,,
3.はdmesgを見るにD01NX側が何かおかしい?→ファームウェアぐらいしか思いつかない.という発想なんですがまあ可能性としては低いでしょう.
4.はD01NXはlibrettoで正常に動作するしSL-C700はシャープROMで正常に起動しているのでありえないかと.ただしSL-C700のPCMCIA周りに何か故障があって今まで気づいていなかった,という線はあるかもしれません.
2008-10-23
ドライブルート -Yahoo!ドライブ
2008-10-21
2008-10-18
JJS.@ : Software Projects : PSPdisp
2008-10-17
PLoP - Bootmanager - Free Boot Manager, builtin usb driver, native usb, boot different operating systems, cdrom, usb, freeware
2008-10-15
Google ノートブック
Web上で「テキストのみを気軽に書きとめられる」機能を求めて使い始めました。同様にTODOをWeb上で管理するサービスは数あります。時間を見て試してみたいものです。
Googleノートブックで自分が利点だと思っているポイントは
- Google Docに容易にエクスポート可能 → 手軽なバックアップ
- 保存操作が不要
こんなところかな?
2008-10-10
Avesta を Vista で使う
・avesta.exeのプロパティ→互換性→互換モードでこのプログラムを実行する→WindowsXP
「avesta.dllを初期化できません」のエラーを回避できます。
・詳細表示で何も表示されないときは「カレントのカラム幅を項目にあわせる」等を実行
表示されていないように見えるときは単にカラム幅が異常になっているだけと思われる
表示設定は記憶されるので次回開いたときはすぐに表示されます
ショートカットキーでカラム幅調整できるように設定さえしておけば実用上問題になるほどの不具合ではないです。やはりAvestaの快適な操作性はすばらしい!
2008-10-09
ハードディスク 完全消去
しかしこの手の方法は実際にデータ復旧を試してみないとその性能は測れません。0で埋め尽くす方法では専用デバイスを使えばわずかに残る磁気の振れからデータを復旧できると聞いたことがあります。だからランダムデータの繰り返し書き込みが必要だとか。
最近、盗聴器発見器を購入したです。が、ふと気がついたのは発見器が正常に動作しているか確かめるためには盗聴器が必要だということ。反応しないから安心してたら発見器が壊れていた!(もしくは検出性能が悪すぎた)では意味ないですから。ソフトウェアの単体テストフレームワークでは「最初にわざと一回失敗させる」ことが推奨されているのも同じ理由ですね。
2008-10-08
VMWare ESXi デバイス依存
2008-09-28
VMware ESXi
2008-09-23
赤SIM,黒SIM,,,
そういえば前回のZaurusでD01NX使う方法について独自ドライバ開発をされているとりあたまさんに質問したらお返事いただきました.せっかくなので小生の敗北記はちょっとまとめて後日書きとめとこうと思います.
2008-09-09
D01NXをSL-C700で使用
とりあたまさんのおぼえがき: D01NXをザウルスで動かす
を参考にさせていただき,SL-C700にAngstromを入れてD01NX使えるか試してみました.しかし敗北.SL-C750でないとだめなのか?はたまたD01NXファームウェアが違うのか?詳細はいまだ不明なのです.(続く)
2008-09-03
EMOBILE
普通の音声端末のいいところはいつでもどこでもすぐに使えるところです。銀行や電車の待ち時間とか、トイレで踏ん張ってるときとか(笑)libretto等mobile PCではこの機動性にはかないません。反面、喫茶店など机があって比較的時間があるときはキーボードやポインティングデバイスが充実したmobile端末が有利です。ということで自分はそういうときはlibretto+D01NXを使うです。
電話に限らず携帯機器は一般にその大きさ重さが持ち運びの障害となり得ます。自分は学生時代にPHSを使い始めて以来、右ポケットには必ず携帯端末を入れています。なので現在普及しているレベルの大きさの端末であれば完全に慣れているので自分にとっては持ち運びの苦労というデメリットにはなってません。おそらく一般に同じように考える人は多くて、現在の一般的な携帯電話のサイズは「どこにでも持ち運んでもらえる」許容可能な大きさであるのではないかと思います。ちょっと話がそれましたが、、、つまりはEMOBILEの回線を音声端末で使えたら通信費が節約できるなー、と思ってEMOBILEの音声端末のGETを画策してるです。
2008-08-27
Smart Pointer Programming Techniques
「shared_ptr を利用して、スコープを抜ける際にコードを実行する」
のくだり.デストラクタにファンクタを登録する自作のクラスで同様の機能を実現してたのですが,こんな簡易な方法もあるんですね. shared_ptr<void>という発想には行かなかったな,,
2008-08-26
ソースコード HTML化 コンバーター「唐辛子」
2008-08-22
weak pointer を bind (続き
// test_bindWeakPtr.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
#include <boost/shared_ptr.hpp>
#include <boost/weak_ptr.hpp>
#include <boost/function.hpp>
#include <boost/bind.hpp>
using namespace std;
class CMyClass{
public:
CMyClass(){}
~CMyClass(){
cout<<"destruct:"<<this<<endl;
}
};
void HogeFunc(boost::weak_ptr<CMyClass> weakPtr){
if(weakPtr.lock()){
cout<<"alive:"<<weakPtr.lock().get()<<endl;
}else{
cout<<"dead"<<endl;
}
}
int _tmain(int argc, _TCHAR* argv[])
{
{
boost::function0<void> func1;
{
boost::shared_ptr<CMyClass> ptr1(new CMyClass());
func1 = boost::bind(&HogeFunc, ptr1);
cout<<"end of ptr1:"<<ptr1.get()<<endl;
}
func1();
cout<<"end of func1"<<endl;
}
{
boost::function0<void> func2;
{
boost::shared_ptr<CMyClass> ptr2(new CMyClass());
boost::weak_ptr<CMyClass> wptr(ptr2);
func2 = boost::bind(&HogeFunc, wptr);
cout<<"end of ptr2:"<<ptr2.get()<<endl;
}
func2();
cout<<"end of func2"<<endl;
}
return 0;
}
これを実行するとどうなると思いますか?
こうなります.
end of ptr1:004AC038
alive:004AC038
end of func1
destruct:004AC038
end of ptr2:004AC038
destruct:004AC038
dead
end of func2
つまりfunc1が存在する限りptr1は開放されません.func1にshared_ptrとしてbindされているので.デバッガで追ってみると
func1();
の中へ中へ入っていくとweak_ptrのコンストラクタが呼ばれていて,ファンクタを呼び出す時点でweak_ptrが生成されていることがわかります.
2008-08-21
weak pointer を bind
void HogeFunc(boost::weak_ptr
}
boost::shared_ptr
myFunc = boost::bind(&HogeFunc, ptr);
weak_ptrでバインドしてるから使わなくなったらptrは開放されるはず♪とおもって上記のようにやっちゃだめ!これでもコンパイルは普通に通ってしまうのが落とし穴なのですが,
boost::shared_ptr
boost::weak_ptr
myFunc = boost::bind(&HogeFunc, wptr);
と明示的にweak_ptrでbindしなければptrはbindされてる限り残ります.なぜ?shared_ptrとしてbindされていてファンクタが呼ばれるときにweak_ptrを生成していると思われます.(しらべろよ!
2008-08-14
コマンドラインからXSL変換結果確認方法
2008-08-13
ヴイエムウェアはごう慢なのか(1/3)
SHARPのZaurusがLinuxベースに移行してOSや開発環境をオープンにしたことによる成功に代表されるように,近年の流れとして技術をオープンにする戦略のほうが有効な場合も多々あります.Microsoftがオープンソースの世界にかかわり始めているのもその一例です.しかし利益を追求する組織である企業として囲い込みでの利益独占は至極普通の行動であり批判すべきものではないです.もっともこの戦略が長期的に見て有利かどうかは別として.
私はオープンソース支持派です.オープンソースのソフトウェアとは開発者が自分の利益よりは自分のプライドをかけて作るソフトウェアであり,従って利益追求の企業とは違った高品質なソフトウェアが生まれるということが大きなポイントの一つであると思ってます.反オープンソース派の人たちはよくオープンソースの共産主義的な雰囲気が気に入らないといいますが,この記事はそういった批判の格好の標的になりそうで残念です.そこで争わなくてもいいだろー,しとりっくすー!
2008-07-25
スレッドセーフなコンテナクラス by Intel
メニーコア時代を見据えるとソフトウェア製作者としてはマルチスレッドを容易に使いこなせることは大きな「売り」となりえます.しかしながら現在普及しているプログラミング言語はほとんどが言語仕様的に複数制御パスを扱うことが得意とは言い難いです.これは基本的には「手続きを順を追って記述していく」方式であることが根幹であると思います.「データの関連と生成方法を定義する」といったプログラミングパラダイムのほうがマルチスレッドには適しているのではと私は考えています.ちょうどMakefileの記述のような.おそらくそのようなプログラミング言語は既に数多世の中に存在しているのでしょうけど(^^ゞ その中からどんなものが流行ってくるのか,楽しみなところです.
2008-07-23
2008-07-16
Windows Server 2003でNTP
2008-07-03
Microsoftへ戻った人
しかし同じくMicrosoftに戻った人の話を以前にも聞いたような気がするのですが,,気のせいか?
2008-07-02
critical section
2008-06-27
CPUレビュー
2008-06-24
Wikipediaの姉妹たち
お世話になりまくっているのでWikipedia自体についてもちょっと調べてみました.基本方針が定義されており,それに外れるものは姉妹プロジェクトに記述するようにとされています.この姉妹プロジェクトもバリエーション豊富で.伽藍とバザールのドキュメントバージョンといえるのではないでしょうか.
2008-06-21
Vista UAC 無効化
最近の傾向としてあらゆる情報は探しやすいように整理して保存するよりは使うときに検索して利用するようになってきていると感じます。
・ブックマークするよりは検索エンジンから目的のサイトへ
・CM等メディア広告で、URL表示から検索キーワード誘導型へ
・メールのフォルダ分け整理から検索フォルダへ
・デスクトップ検索
・Vistaの検索ウィンドウ
記憶領域のコストが下がって保存される情報の量が膨大になれば、保存時に整理する方法は次第に困難となるため、適当に保存して使うときに検索するほうがトータルでの手間は少なくなります。今後もこの流れがすすめばドキュメント類はパスを意識せずに保存し、使うときに検索して開くという方法が普通となっていくかもしれません。そうするとファイルシステム自体がSQLのようなデータベース的な概念となって、カテゴライズして整理されたパスで保存するよりは検索時間に最適化された保存形態をとるほうが有利になっていくのでしょう。
2008-06-18
Vistaでの関連付けが変更できない
Yakushima-Tonbo - Vistaでの関連付け
たしか以前に64bit XPでも同様の現象がありました。なんにしてもエラー表示一切出さないというUIは如何なものかと、、、
2008-06-17
2008-06-14
Steve Jobs
2008-06-12
エラーコードは2739です
しかし何がどうしてjscript.dllがregsvrされていない状態になるんだか、、、
そしてインストール中のエラー発生後にプログレスバーが戻っていく様は、どうしてあんなにも物悲しさを誘うのか、、、orz
2008-06-11
コンストラクタでshared_from_this
自分ではboost::enable_shared_from_this は「逃げ」の手段と捕らえており、必要になったら設計を見直すようにしているので使いたくはないのですが、現実には他人のコードをいじる必要があるときなど、触らなければならない状況はあるわけで、、、コンストラクタでthisポインタを使おうとしていることと同じなのでダメだということは明白なわけですが、対象のコードが入り組んでいて気づくのに時間がかかってしまいました。皆さんもお気をつけあれ。
2008-06-10
経路検索
昔ノートPCでカーナビを妄想していた時期がありました。当時は地図ソフト+GPSユニットが選択肢でした。いまならEMOBILE等の安価な通信手段を利用すると地図データはオンラインのサービスを利用することも可能かもしれません。(EMOBILEはサービスエリアがまだまだ狭いですが)携帯のGPSナビという手もありますね。
携帯のGPSナビは実際に利用してみましたが、電池の問題がクリアできれば十分使えるものです。周辺施設検索などの付帯機能はオンラインの最新情報のほうが有用な場合が多いので強みになります。一方、地図データのロードにはどうしても時間がかかります。またオフラインのナビでも同様ですが、検索のクエリ入力はさまざまな手段があるものの、短時間に目的の場所をさっと見る、と言う用途では紙の地図にはどうしてもかないません。音声認識と言う手段もありますが最近のデバイスを触ってないのでどの程度使えるのかはわからないです。
これらの分野も昔から興味を持っているところで、今後どんなものが出てくるのか楽しみなところではあります。
2008-06-07
エレスタットスピーカー
しかし当時の俺には買えるはずもなくその後すぐに販売終了になってしまいました。それからずっと存在を忘れていたのですが、つい最近ヤフオクで見つけて衝動買いしてしまいました。がしかし、予想通りツーイターはあまり高音がなってません。エレスタットスピーカーは耐久性に問題があることは聞いていました。静電気で駆動しているので埃を吸いつけてすぐに音が出なくなるとのこと。そこで所有者さんたちはみんなどうしてるのか、と調べたらやはりいろいろいじってる人はいるものです。参考にして改造、掃除したらそれなりにいい音になりました。
ちなみに半田付けの際に半田が跳ねて目を怪我してしまいました。みなさん、ちょっとだからと侮らず保護めがねはちゃんとしましょう。私は軽症ですみましたが下手すりゃ失明です。そして失職です。こわいこわい、、、目は大切に!
2008-06-05
Net Meeting - Remote Desktop Sharing
2008-06-04
Volume Shadow Copy, VMware Converver
ここで疑問発生。変換処理はかなり時間がかかるのですが、途中で変換中のディスクにWriteが行われたらどうするの?WindowsXPにはボリュームシャドーコピーという機能があって、実行中のシステム環境のバックアップに使われているとかいう話を聞いたことがあります。多分これが使われてるのでは?と思って調べてみました。
が、APIとして公開されている情報は案外少なく、、、
http://support.microsoft.com/kb/889346/en-us/
ざっとしか見てませんがRead-on-Writeでやってるみたい。結構古典的な方法なんですね。
2008-06-01
Avesta が Vista で使えない、、、Visual StudioでTortoiseSVN
Avesta(http://lamoo.s53.xrea.com/app/index.html#Avesta)
はタブ切り替え可能な複数画面ファイラで、マウスジェスチャや設定ファイルによるフルカスタマイズなど高機能なすばらしいファイラです。「アプリケーションとしての使いやすさ」という観点から非常によく考えられているアプリケーションで、私の尊敬するところです。ソースコードも公開されており、Vista対応ってできないもんかな?と思って私もちょっとのぞいてみたのですがtemplate満載の変態的コードで(ほめ言葉)、作者のレベルの高さがうかがえるものでした。
SubversionクライアントはTortoiseSVNで変更点の確認やコミット等の作業は主にAvestaのツールバーかキーボードショートカットからTortoiseProc.exeをキックしてました。これが非常に快適、Vistaになってできなくなってしまったのでさてどうしたものかと思っていたら、同様のことはVisual Studioの外部ツールをカスタマイズするとできますね。もしかして常識?知らないの私だけ、、、?(w
2008-05-31
blogger 全コンテンツバックアップ方法
まだはやいよ? 職業病です、ご勘弁を
blogger自体にはブログ全体の一括バックアップの機能は提供していないらしいです。代替の手段がFAQに
http://help.blogger.com/bin/answer.py?hl=jp&answer=41447
なんかめんどくさそう、、、開発者用APIのページを見ているとこんな情報が
http://code.google.com/apis/blogger/developers_guide_protocol.html#RetrievingEntries
たとえばこのブログの全体であれば
http://www.blogger.com/feeds/7048227/posts/default?max-results=65536
とかやるとテキスト情報だけは一発で取れるわけですな?
これをwgetにやらせるようにcronに設定しとけば定期的に勝手に全バックアップをとらせることができそう。画像データなどを使い始めたら?、、、さらに調査が必要ですね。
しかしこういう情報をちゃんと公開してくれるGoogleさんの姿勢、私は好きですね。
2008-05-30
Vista 64 上で VMware player と Virtual PC 同時起動でブルースクリーン
最近入れ替えた職場の64bit Vista環境上で以前の環境を仮想マシンとして保存しておいてVMware playerで実行していたのですが、別のVirtual PC用の仮想マシンを起動した瞬間にブルースクリーン、、、再起動後にVirtual PCを立ち上げるところまでは正常だったので、ほっとしてVMware playerを立ち上げると再びブルースクリーン、、、どうも何らかのリソースを取り合ってると思われます。さだかではありませんが別のマシンでは同時起動しても大丈夫だった記憶があります。問題発生したマシンのCPUはXeonで仮想化機能ON状態であったことももしかしたら関係あるかも。VMware player側のゲストOSが64bitなのも影響あるかも。
職場のメインマシンに何度もOSクラッシュを起こさせるわけには行かないので深くは検証していませんが、VMwareとVirtual PCの同時起動は危険が伴うことがありますのでお気をつけあれ!
2008-05-29
Vistaは目に厳しい?
最近、会社のマシン環境をVistaに変更しました。というか強制的にさせられました(^^ゞ そこで個人的インプレッションを一言、、、
XP->VistaはかなりGUIの変更点は大きいと感じられます。一般にGUIの大きな変更はヘビーユーザほど嫌われる傾向にあります。社内ではあまり賛成派を見かけませが、個人的にはよりよい方向へ進む進化であれば肯定したいので、必ずしも大きな変化を即否定するものではありません。それでもちょっと気になったのが、「なんか目が疲れる」ということです。なぜか?いくつか理由を考えてみました。- 配色が鮮やか過ぎる
これが最初に思いついた理由なのですが、デフォルトの配色はよくみるとそんなにけばけばしい鮮やかな色と言うわけでもないです。XPのLunaも派手ですが2000->XPではそんなに目の疲れは感じませんでした。
- メイリオフォントに馴染めない
Vistaからのデフォルトフォントのメイリオは高解像度液晶画面での使用を前提としたフォントらしく、低解像度環境だとかえって見にくい、とかいうレポートを見たことがあります。会社はUXGA液晶なので環境としては問題ないと思うのですが、、、慣れの問題か?
- 透過ウィンドウ
最大化されていないウィンドウはウィンドウタイトル部分などが半透明になり、下のウィンドウが透けて見えます。あたかもぼやけて見えているかのように表示されるので、見るときに目が無意識に焦点をあわせようとしているのではないか?と。液晶画面を見ているときは通常、焦点は画面にあっているはずですが、Virtual Reality関係の論文で表示されている画像によって焦点を変えようとする反応が確認できた、という話を聞いたことがあります。たとえば画面に遠景が表示されると焦点を遠くにしようとするとか。
表示の設定をカスタマイズして原因を探ってみたいところです。が、使ってるうちになれていってしまうので本当のところはわからないでしょうな~(^。^)y-.。o○2008-05-28
ホームページリニューアル
このブログもホームページも今までは自分用のサンドボックスとしてしか使ってませんでしたがこれからはきちんと作っていこう、と言う決意を込めて。日常、生きていく中で得られた情報の中で、もしかしたら他の人にも有用かもしれない情報を記していきます。判断基準は私の独断偏見ですが、、、なにか?
世界のどこかにいる(かもしれない)私と同じような趣味趣向、興味の持ち主に向けて。私がたま
たま幸運にも得ることができた情報を欲している全ての人々へ。
将来的には自作のアプリケーションの中で使えそうなものも公開する予定です。と、宣言して自分を追い込んでみる、、、(w