2008年12月29日月曜日

[Mac OS X]: マルチディスプレイ環境へのVNC接続

Mac OS X 10.5では,標準でVNCサーバ/クライアントが付属しているのは(たぶん)よく知られている.
基本的な使い方は以下のサイトが詳しい.
MacOSXでサーバー稼業 : Mac OS Xで遠隔操作環境を作ろう-Mac OS X10.5編-

でも,この標準のVNCサーバ/クライアントがマルチディスプレイ環境に対応していることはあまり知られていない気がする.
マルチディスプレイ環境のMac OS Xに対して同じくMac OS X付属のVNCクライアント(Finderで「移動->サーバへ接続」)で接続すると,以下のような画面になる.


見て分かるとおり,左側が第一ディスプレイ,右側が第二ディスプレイになっている.さらにこのVNCクライアント(画面共有)の「表示」メニューを開くと,以下の画像の通り,2画面を同時に表示するか,どちらか一方の画面のみを表示するのかを選択できる.
これで一方の画面だけを表示できるので,接続元がシングルディスプレイ環境や画面が狭くても,そこそこまともに使うことができる.

2008年12月25日木曜日

[PHP]: ディレクトリ内の任意のファイルの文字コードを一括変換

手元のLaTeXファイルの文字コードをまとめてEUC-JPからShift-JISに変換する事があったのでささっと書いてみた.
  • srcDir: 文字コード変換するファイルが入っているディレクトリ
  • dstDir: 文字コード変換したファイルを保存する先のディレクトリ
  • fromEncoding: 変換元の文字コード
  • toEncoding: 変換先の文字コード
  • pattern: $srcDir内で変換対象となるファイルのPerl正規表現パターン
$srcDir = "./hogehoge";
$dstDir = "./hogehoge_sjis";
$fromEncoding = "shift_jis";
$toEncoding = "euc-jp";
$pattern = "/tex$/";

$directory = dir($srcDir);
while(
$filename = $directory->read()){
if(!
preg_match($pattern, $filename))
continue;
$fp = fopen($srcDir."/".$filename, 'r');
$wfp = fopen($dstDir."/".$filename, 'w');
while((
$buff = fgets($fp, 2048)) != false){
fputs($wfp, mb_convert_encoding($buff, $fromEncoding, $toEncoding));
}
}
memoということで.

2008年12月24日水曜日

Amazonプライム生活

Amazonプライムに登録して1年以上が経ったので,生活がどう変わったかについて購入履歴を見ながら振り返ってみる.

Amazonプライム登録前

購入商品の傾向

Amazonプライム登録前もAmazonは利用していたけど,主な用途は近くの本屋に無い技術系専門書やゲームに限られていた.こうした商品は基本的に単価が1500円以上で,通常発送にすると送料がかからない.
一方,単価の安い商品,例えば文庫本などについてはほとんど購入履歴になかった.たまに購入していることもあったが,その時は確実に上記の商品と一緒に購入していて,送料がかからないようにしていた.

サイト巡回率

上記のように専門書やゲームを買う時にしか使っていなかったので,サイトを見るのも必要なときに限られていた.あとはBlogを巡回しているときのリンクを踏んだときくらい.
大体購入目的でアクセスするのは月に2回くらいだった気がする.実際に注文するのは2ヶ月に1〜2件くらい.

Amazonプライム登録後

まず,Amazonプライムを知らない人向けに登録すると受けられるサービスを挙げておく.

  • 年会費3900円
  • 注文金額にかかわらず送料無料
  • お急ぎ便が追加料金無しで利用可能
お急ぎ便についての解説は後述する.

購入商品の傾向

履歴を見て改めて気づいたのだが,注文頻度が明らかに上がっていることに驚いた.

まず,購入商品として新たに増えたのはドリンク類.駅からやや遠いところに住んでいるのと,生活時間が不規則な事もあって近くの量販店で購入するのが大変な水やお茶などを定期的に注文するようになった.
ここで大きいのはお急ぎ便の存在.これは対応商品が翌日に届くサービスで,通常会員だと350円が余計にかかるが,Amazonプライムに登録すると常に無料になる.
そのため,2L * 6本の飲料水を箱で注文しておいて,最後の一本を開けるときに注文しておけば,翌日には補給できる.10kg超えの箱を持って歩く必要も無く,である.
ちなみにAmazonにおけるドリンク価格は
量販店 <<スーパーの特価価格<スーパーの通常価格,Amazon<<<<コンビニ
位の位置づけである.値段にこだわる人は高い!と思うかも知れないが,量販店+数%の価格で家まで届けてくれるのだから,僕のようにものぐさな人種には容易に許容できる.

他にたまに注文するようになったのは少額の小物類.例えば文庫本一冊とか,自転車のチューブ一本など,1000円未満のものがメイン.
この辺の小物は,買い物に行ったときに買い忘れて後で後悔するものや,すぐに欲しいんだけれど買いに行くのは面倒,といったものになる.
友達と話していて興味を持った本などは覚えておいて,PCの前に行ったら検索し,面白そうならとりあえずカートに入れておく.しばらくしてまだ購入意欲があったら購入,といった感じで使っている.文庫本なんて数百円なので,購入前にそこまで吟味するほどでもない.

サイト巡回率

そんなわけで,ネットを巡回したり,友達内の話でふと話題になった商品などはとりあえずAmazonで見てみるようになった.評判についてAmazonレビューはあまり参考にはしないが,とりあえずその商品についての基本情報が得られるので便利.

困っていること

一方,Amazonプライム生活になってから困っているのは,Amazon段ボール箱の氾濫問題である.
地域によっても違う様なのだが,僕の住んでいる地域ではどんなに小さい商品でも段ボール箱に梱包されて商品が届く.そのため文庫本などをチマチマ注文していると,Amazon段ボールの空箱で部屋が埋め尽くされていく.
最小の段ボールになると小さすぎて再利用する事もないので,ほぼ確実にゴミになる.
しばらく忙しくなったりして段ボールが溜まっていくのを見ると「なんだかなぁ」といった気持ちになる.

いや,もちろんこまめに捨てに行けばいいんだけれど:-P

ものぐさな人,買い物が面倒な人にAmazonプライムはオススメ!

そんなわけで,段ボール箱に埋まった生活になってしまっているわけだが,もしあなたが以下のいくつかの項目に当てはまるのなら間違いなくAmazonプライムをオススメする.
  • 家が駅から遠く,量販店などが家の近くにない
  • 色々と忙しく,あまり買い物に頻繁に行く時間が無いか,空いている時間には既にお店が閉まっている
  • 最安値にそこまでこだわりが無く,便利さを優先する
  • 買い物に行ったときに良く買い忘れをしてしまうが,もう一度買いに行く気力はない
  • ネットでよく情報収集をしており,本をよく読む
ビバ,ネット通販生活!!
# すごくダメ人間の響きがする :-P

2008年12月23日火曜日

本当に怖いクラッカーは実利的クラッカー

ニコニコ動画でセキュリティ系な番組が出ていたので見てみた.



インターネット上の話がメインだったけど,こういうネタでケビン・ミトニックについて触れられていなかったのは残念.
自分の技術を見せびらかしたい快楽的クラッカーについてはこの動画で言われていることはおおむね正しい気がするけど,企業スパイ目的などの実利目的のクラッカーについて,あまり触れられてはいなかった.

快楽的クラッカーは自分が何をやったのかアピールしてくれるから被害が明るみに出るが,実利的クラッカーは足跡を残さないので何をされたのか,侵入されたのかどうか自体も分からないのが怖い.
また,快楽的クラッカーは技術を見せびらかす事が目的なので,物理的にインターネットに繋いでいなければ攻撃対象になりにくいだろうが,実利的クラッカーは情報そのものが目的なので,別にインターネットから正々堂々侵入する必要はなく,他に入りやすい経路があればそっちから侵入してしまう.
ソーシャルハッキングとかはまさにその典型(ソーシャルエンジニアリングの方がメジャーな気がするが,それだと犯罪の匂いがあまりしないので危機感を伝え切れていない気がする)で,欺術とかを読んでみるといかににコンピュータより人間が脆弱なのかというのを思い知らされる.

もしソーシャルハッキングについてまだ聞いたことが無ければ,一度調べてみることをお勧めする.コンピュータのクラッキング技術ばかり注目されているが,人間のクラッキング技術もすごい.

2008年12月22日月曜日

プログラミングに数学の知識は必要か?

立場上、これまでプログラミングとは何の縁も無かった人にプログラミングを教える機会があるのだけれど、こうした人たちにはいわゆる文系の人たちも多くて、まだ勉強してもいないプログラミングというものに対して苦手意識を持っていることが多かったりします。

で、そういう人たちに何でそんなに苦手意識を持つのか聞いてみると「数学が苦手だから」という答えが返って来ることが多いです。

これは大きな誤解です。プログラミングを学ぶ前提として数学の知識はほとんど必要ありません。
もちろん、発展した内容(最適化とかパフォーマンス計測)では数学の知識を必要とすることはありますが、それでも初心者が初めてプログラムを書き始める時点ではまず必要ありません。

これに似た例としては、例えば絵を描くことが挙げられます。僕らは紙と鉛筆があれば、別に何を習わずとも絵を描くことができます。ただ、鉛筆以外の様々な画材を使ったり、既に確立されている絵画のノウハウを学ぶことで、より良い絵が描けるようになるでしょう。
プログラミングにおいては、ここで言う画材やノウハウが数学であり、各種コンピュータ関連の知識なわけです。

また、絵画と同じで、いくら知識を詰め込んでもそれだけでプログラミングがうまくなるということはありません。人によって個人差はありますが、練習によってプログラミング技術は確実に向上します。
プログラミングをしていて「最近上達速度が鈍ったな」と思ったら、その時は情報数学やコンピュータ関連の書籍を訪ねてみましょう。そこでまた大きくレベルアップすることができます。

そんなわけで、これからプログラミングを始めるという人は新しい絵の描き方を学ぶんだ、といった気持ちで望むといいと思います。

2008年12月20日土曜日

[書籍]:ピープルウエア 第2版 - ヤル気こそプロジェクト成功の鍵

/.-jpベテランプログラマを管理するには?というトピックで紹介されていたピープルウェアという本を読んだので紹介。

ピープルウエア 第2版 - ヤル気こそプロジェクト成功の鍵

かなり面白い本で、一気に読んでしまった。
内容はソフトウェア開発プロジェクトの管理者向けに、プロジェクトを成功させるために必要な管理者としての気構えを書いたものである。このような書き方をすると管理者がうまく開発者を操縦する方法が書いてあるようなイメージを与えてしまうかもしれないが、この本で言っていることは全く逆で「個性を認めよ」とか「開発者が勝手に職場にポスターを貼ったりするのを容認せよ」といった一般的な管理者のイメージからは遠い内容が説かれている。
ソフトウェア開発においては、大量生産型(この本ではチーズバーガー生産販売と称されている)の管理哲学は全く通用せず、担当者の士気を高め、自由度を持たせ、作業しやすい環境を整えることが重要だという。

僕は仕事という意味では管理業務というのを経験したことがないので開発者側の視点で読んだが、確かにこの本で言われているようなことを実践できる管理者がいれば、ぜひその人の下で働きたいと思った。実際今まで長い間続いた仕事も、この本で挙げられている項目のうちいくつかを満たしていたし、長く続かなかった仕事は「チーム殺し、7つの秘訣」の章で挙げられている多くの項目が引っ掛かった。
この本の初版は1989年だが、これだけ昔からソフトウェア開発者というのは同じようなマインドを持っているのを知って感慨深い。

FolderShare to Windows Live Sync on Mac OS X

# 09/01/20追記
# この記事は古いので,これからインストールする人は09/01/20の記事を参照して下さい
# [Mac OS X]: Windows Live Syncがアップデートで使えなくなったので手動アップデート

少し前にFolderShareがWindows Live Syncに統合されたが、日本語版のLive SyncアップデートサイトからMac OS X版のSyncクライアントがダウンロードできない状態になっている。


これを見ていて「ああ、Mac OS X版はまだ使えないのかな」と思い放置していたのだが、実際はちゃんとMac OS X版のクライアントもリリースされている

Windows Live Sync 14.0.6066.1211(mac.softpedia.com)

こちらをインストールしてみたところ、何の問題もなくMac OS Xにインストールすることができた。
FolderShare->Live Syncのアップグレードで期待されていた日本語化対応などはこれから試してみる予定。

2008年12月16日火曜日

[Mac OS X]:Mac OS X 10.5.6 Update

OS X 10.5.6 Updateが出ていたのでmemo.

詳細(http://support.apple.com/kb/HT3194?viewlocale=ja_JP&locale=ja_JP)

新機能の中で気になったのは

MobileMe

  • 変更内容を MobileMe と自動同期するのに掛かる所要時間を短縮することで、連絡先、カレンダー、Safari ブックマークを同期する性能が向上しています。
これまでMobileMeの同期は異常に時間がかかっていたけど,数秒で終わるようになっていた.これはありがたい.
後はiPhoneとの同期に関係するような内容のUpdateがちらほら.そんな感じ