Archives

You are currently viewing archive for December 2008

[メモ] 31 December 2008 はてなブックマーク - SVNのワーキングコピーを複製して使うとエラーがでる。 Twitterでつぶやく

SVNのワーキングコピーを複製して使うとエラーがでる。

上海だと回線が遅いので、先に一ヶ所でチェックアウトしてSVNのワーキングコピーを複製して利用したかったのだが、そのまま利用しようとするとこんな感じエラーが出て困った。
svn: Can't open '.svn/tmp/tempfile.tmp': No such file or directory

対処法がここ(svn « Design is difficult)に書いてあった。
下記のスクリプトを複製したワーキングコピーの直下において実行すればとりあえずOK。

#!/bin/bash
# Rebuilds empty directories which are lost
# by HG but required by SVN
for d in `find . -type d | grep /.svn$`;
do
# -p to make $d/tmp parent directory
`mkdir -p $d/tmp/prop-base`
`mkdir $d/tmp/props`
`mkdir $d/tmp/text-base`
done

複製時にtmp以下がコピられてないのかな?
ちゃんと原因調査が必要。

[メモ] 23 December 2008 はてなブックマーク - 配列の上書きマージ Twitterでつぶやく

配列の上書きマージ

phpのメモ
array_merge_recursiveは上書き処理してくれないので、YAMLでデフォルトをローカルで上書きとかのときに利用できない。
ちょっと、探してはみたんだけど無かったので再帰処理。
見つけられないだけで存在するのかもね。

function merge_config(&$target,$array){
foreach ($array as $key=>$value){
if(is_array($value)){
//再帰処理
merge_config(&$target[$key],$value);
}else{
$target[$key]=$value;
}
}
}

[徒然] 20 December 2008 はてなブックマーク - 世界はブラウザとAJAXで動いてるわけじゃない Twitterでつぶやく

世界はブラウザとAJAXで動いてるわけじゃない

ここ1年、通勤中にセカンド・オピニオンというコラム(っていうかほとんど講義形式の教科書に近い)を携帯でよく読んでいます。
これはフリーライターの大原雄介さんという方がマイコミジャーナルで2002年から連載しているコラムです。内容としては、ハードよりでハードとソフトの境界について論じているのですが、これが大変におもしろいです。
ソフトウェアの開発者でも非常に楽しめると思います。

特に、私の好きなのは、下記3本
64bit Rhapsody 一人歩きする64bit(1) 第1〜31回
http://journal.mycom.co.jp/column/sopinion/001/index.html

OS小論:OSの構造をもう少し考えてみる(1) 第195〜239回
http://journal.mycom.co.jp/column/sopinion/195/index.html

Core MicroArchitectureをもうすこし(1) 第177〜194回
http://journal.mycom.co.jp/column/sopinion/177/index.html

今、読んでるのはバスアーキテクチャの話、あまりにも難しそうで飛ばしてました。相当おもしろいです。
バスのアーキテクチャ - 過去から未来へ(1) 第40〜176回
http://journal.mycom.co.jp/column/sopinion/040/index.html

バスアーキテクチャについては後藤弘茂のWeekly海外ニュースで最近扱っているIntelのLarrabeeというベクタプロセッサの記事で扱っている複数プロセッサやコアの協調動作のための接続バスなどの部分について、もう少し深く理解したいと思って読み始めました。
まあ、この辺のバスアーキテクチャやキャッシュ制御はクラスタリングやグリッドコンピューティングでも必要な概念だからあながちハードだけってわけじゃないですね。

さて、パソコンもモジュラー化され組み立てがIKEAの家具並に簡単になった昨今、CPUやOS、バスの構造や関連なんて気にしなくても済むわけです。プログラマだって私みたいにJavaを専門にしたり、スクリプト言語を専門にしている人はハードなんか知らなくても良いし、ハードウェアレイヤなんか抽象化すれば良いじゃないか見たいな感じがあります。
まあ、確かにそうなんだけど抽象化したからってハードがなくなるわけじゃないし、ハードを操るコードがなくなるわけでもないのです。世界はブラウザとAJAXで動いてるわけじゃないんです。

で、やっぱり後輩のPGとかがOSやハードなんか自分の領域じゃないし、そんなのインフラの仕事と割り切ってるのはなんか違うなあと思ってしまいます。別に自分でドライバ書く必要は無いけれど(俺もかけないし)、自分のコードが動く環境やインフラに最低限興味を持つのは大事なんじゃないかと強く感じます。

[メモ] 18 December 2008 はてなブックマーク - DESで塩が甘すぎる件について Twitterでつぶやく

DESで塩が甘すぎる件について

よくありがちな、.htpasswdをPHPで生成するための下記のコード。結構普通に落ちてるサンプル。
これ、最初OKかと思ってたけど全然いかんだろ・・・・。
if (isset($_POST['password'])) {
$password = $_POST['password'];
$salt = substr($password, 0, 2);
echo crypt($password, $salt);
}

なにがいかんのかと言うと、
http://jp.php.net/crypt
にも書いてあるんだけどね。
 echo 'Standard DES: ' . crypt('rasmuslerdorf', 'rl') . "\n";
こう書くと
 Standard DES: rl.3StKT.4T8M
こう出力されるわけですよ。
うん、そう。saltのrlどうよ・・・・・wそのまま付加されてるわけだ。
いやさ、だから最初の例だと$passwordの最初の2文字を暗号化後の頭に付加してる。
クラッカー大喜び、猫フリスキー・・・・・・。
ありえん!パスワードのヒント与えてるじゃん。

だから、最低限このぐらいやる必要あるよな・・・・。
 $password = $_POST['password'];
$clist = "abcdefghijklmnopqrstuvwxyz"
."ABCDEFGHIJKLMNOPQRSTUVWXYZ"
."0123456789_";
mt_srand();
$salt = $clist{mt_rand(0, strlen($clist) - 1)}
.$clist{mt_rand(0, strlen($clist) - 1)};
echo crypt($password, $salt);

下記のページが大変参考になる。ピンク色ですが、内容は素晴らしいw
cryptの使い方 - Magical Diary, beta version
http://diary.asuka.net/20070718

#ネットに落ちてるサンプルコピペってばかりいると猿になってしまう・・・・

[メモ] 17 December 2008 はてなブックマーク - 携帯エミュもLinuxで・・・。 Twitterでつぶやく

携帯エミュもLinuxで・・・。


一時公開停止されてなかったかな?
iモードHTMLシミュレータ
http://www.nttdocomo.co.jp/service/imode/make/content/html/tool/index.html
これは、Ubuntu8.04についてるwine 1.0で動く。普通に動く。
これでテストできる。

ちなみにiモードHTMLシミュレータIIはWineじゃ動かない、正確にはインストールできるけど動かない。

と思ってたら、もっとおもしろいのがあった
FFのアドオンでFireMobileSimulator、携帯がエミュレートできる。
http://firemobilesimulator.org/

こればっかりはWindows必要かなーと思ってたので、とても嬉しい。

ちなみに、うちの今のLinuxでの開発人口は10人。
まあ中国側開発チームの人間が7人だけど。
もっと増えないだろうか?

#あとMantisはプロジェクト統合管理の基礎パッケージに持って来いだった。

[メモ] 09 December 2008 はてなブックマーク - VMwareメモ Twitterでつぶやく

VMwareメモ

VIX APIとPerlで自動化できるな・・・、今複製とかbash経由でvmwareのコンソールコマンド叩いてる。
http://www.vmware.com/support/developer/vix-api/VIX-1.6.0-ReleaseNotes.html

あと、いつも忘れるけどUbuntuでvmware-server-console動かすときのメモ
# cd /usr/lib/vmware-server-console/lib
# mv libpng12.so.0/libpng12.so.0{,.bak}
# mv libgcc_s.so.1/libgcc_s.so.1{,.bak}

元ネタはここ、感謝
Ubuntu HardyでVMware Server Consoleが動かない件 - Ogawa::Memoranda
http://as-is.net/blog/archives/001333.html

[メモ] 03 December 2008 はてなブックマーク - 原因不明のフリーズ Twitterでつぶやく

原因不明のフリーズ

PulseAudioDiagram
Ubuntu8.04.1LTSにしてからフリーズが多い。
症状としては、ターミナルやFirefox・・・まあつまりGnomeのアプリを開くとフリーズしてしまう。
具体的に言うと、アプリは実行されるし、全体が固まる訳じゃないんだけど、ウィンドウの枠がでた時点でそのアプリだけ固まるというか中身が描画されない。で、そのアプリは応答しなくなる。
でフリーズすると、下手すればGnomeセッションからのログアウトも出来ないし、ログインしなおしてもGnomeが上がらない。


奇妙なことにCtrl+Alt+BackSpaceでGDMを再起動しても、Ctrl+Alt+F1とかでコンソールに抜けてGnome関連のプロセスを片っ端からkillしていっても症状は変わらない。
Compizの3Dデスクトップが悪いのかと思い、デスクトップ効果をOFFにしてみるが、あまり関係が無い・・・・・。
検索しても出てこないし、どうしたものかと困っていた。

で、しばらく放置していたのだが、どうもフリーズの仕方に特徴がある。
糞詰まりとでも言うのだろうか、何かが固まった後は他のアプリにもフリーズが伝播していくのである。
で、最近ALSAをよくいじっていたこともあり、pulseaudioがまだまだ不安定と言ったようなことを見かけた。
っていうかPulseAudioってなに?

WikiPedia:PulseAudio
PulseAudio is a sound server, a background process accepting sound input from one or more sources (processes or capture devices) and redirecting it to one or more sinks (sound cards, remote network PulseAudio servers, or other processes).

あー要するに、要しすぎだがサウンドミキサーですな。
単一または複数のソースを単一または複数の受け皿(sinks)に流し込みますよと。ある意味オーディオの抽象化層みたいな物だろうか?

しかーも、公式リリースをみると

PulseAudio
このリリースから、PulseAudioサウンドサーバが標準で有効になりました。


この、共通系による糞詰まりっぽい動作はひょっとしてサウンドイベント?しかも8.04から標準で有効?
めちゃめちゃ怪しい!ってーか真っ黒だろw


で、フリーズのタイミングで、pulseaudioのプロセスkillしてみた。
さくっと解決したw原因不明のフリーズはPulseAudioの不具合・・・、おそらくサウンドイベントの発生に合わせて固まってるようだ。たぶんわざわざkillしなくても、
sudo /etc/init.d/pulseaudio restart
でOKな気がする。
やっぱりkillしないとダメだった。GDMは再起動しなくてもOK。


下記で紹介されてるやり方で、PulseAudioを外す方法も良いかもしれない。
[ Ubuntu 8.04 Hardyのサウンドまわりについて] by ひねもすLinux
http://linuxos.blog102.fc2.com/blog-entry-86.html

以上、謎のフリーズについてのメモ。
«Prev || 1 || Next»