CentOS 5.3 (x86_64)にSubversion1.7をインストールする方法を紹介します。

svn 1.7からはワーキングコピーの管理方法とHTTP通信のパフォーマンスが大幅に改善されて、いろんな作業が高速になります。

実はコンパイルに苦労して半日かかりました。
この手順どおりにやればすんなりいけると思います。
当たり前ですがこんなことは絶対にやってはいけません。

これは私のアホな体験談です。
他山の石としていただければ幸いです。
subversionの過去のコミットログのsvn:authorについて、ある人の名前だけを一気に置換するワンライナーを紹介します。

例えば、のび太とジャイアンがsubversionで共同開発していて、
リビジョン10000まで行ったところでジャイアンが
「おまえのコミットはおれのコミット」
と過去ログのauthorを書き換えるという暴挙に出たとします。

このとき、ジャイアンが打つべきコマンドはこれです。
svn log -q /tmp/svnlog
grep nobita /tmp/svnlog | awk '{print $1}' | sed s/r// | while read line ;do ;  svn ps --revprop -r $line  svn:author gian  $REPO ;  done
ワンライナーと言いながら2行のコマンドになってしまいました。
何かのお役にたてば幸いです。

世界一インストールが簡単(で奇妙)なWikiシステム「JSWikiMini2」

(タイトルは若干釣り気味ですがまんざら嘘でもないと思います。)
JSWikiMini2をリリースしました。

JSWikiMini2

YuiwikiminiのJavaScript実装です。
たった1個のHTMLファイルで動く
特徴は、世界一インストールが簡単なことです。
なぜかというと "index.html" ファイルただ1個で動くからです。
奇妙なことに、Webサーバがなくても動きますし、Webサーバ上にアップしても動きます。
Webサーバがない場合は、PCにダウンロードしてオフライン環境で使うことができます。

IE以外のブラウザ(Firefox, Google Chrome,Safari, iPhone, iPad)をお使いの場合は、上記リンクでデモを触ることができます。
ぜひ遊んでみてください。
Firefoxでは、localStorage がfile:/// なページでは使えない(ブラウザ再起動するとlocalStorageが空になる)というバグがあったのですが、いつの間にか修正されていたようです。

https://bugzilla.mozilla.org/show_bug.cgi?id=507361

最新のFirefoxでは、ちゃんとfile:// protocolでlocalStorageが保持されるようになりました。

2012年5月現在の実行環境別対応状況

IE6,7,8が対応していないのはいつものことですが、
SafariとMongoDBが対応してないのは意外ですね。

JavaScriptで、関数の引数として関数を渡す(コールバックと呼ばれる)ことはよくあります。

例えばsetTimeoutがそうです。
setTimeout(function(){alert(1)}, 1000);  // 1秒後にalert
下記のように書くことも当然できます。
var say = function(){ alert('hello');}

setTimeout(say, 1000);  // 1秒後に'hello'と表示
ここまでは簡単ですね。
では問題です。

問題:オブジェクトのメソッドをコールバックとして渡すにはどうすればよいか?

これが意外と難しいのです。
GW中に何気なく書いた1本の記事がネット上でさんざんな不評を買ってしまい、「アホ」「気持ち悪い」「これはひどい」などと批判されるという得難い体験をしました。

普通に生活をしていて多数の人から批判されるというのはめったにないことですが、ネット上で情報発信する場合は、誰でもそのようなリスクと付き合わねばなりません。

以下、叩かれた時の心構えを紹介します。
叩かれたときは参考にしてみてください。

「ケツカンマ問題」とは何か


配列リテラルやオブジェクトリテラルの末尾のカンマを書くのか書かないのか(書くべきか書くべきでないか)という問題です。
var list = ['a' , 'b', ];
var obj  = { a : 1, b : 2, }
Subversion1.7はいろいろ新機能が盛り込まれていて便利になっているようです。
レポジトリの構造も大幅に改良されているようです。


本記事では、CentOS6.2にSubversion1.7をインストールする方法を紹介します。
途中mod_davモジュールの読み込みに失敗して2時間ほど試行錯誤しましたが、そこさえクリアすればうまく行きました。
ご存知の通り、JavaScriptの連想配列の最後のカンマはやっかいです。
最後の要素の後にカンマがあるとIEでバグになるので、普通はこのように書くと思います。

よくある書き方

var x = {
 a : 1,
 b : 2, 
 c : 3  // ←カンマつけない
}
しかしこの書き方は不便だしバグりやすい面倒くさいです。
MovableTypeの管理画面(mt.cgi)が遅くて遅くてずっと悩んでいたのですが、開発中のdevelopブランチを拾ってきてPSGI(Starman)で動かしたら劇的に速くなりました。
なんと画面表示時間が半分以下!!


ブログ記事の作成画面が吐き出すSQLログを調べてみました。

画面表示が遅いと思ったら、ずいぶんとたくさんのSQLを発行していたんですね。。
(画面表示が遅い原因がこれらSQLにあるのかかどうかは、これから調査します。)

それにしても複雑ですなぁ。

MovableTypeの画像アップロード機能、使いにくくないですか?



ずっと前から悩みの種でした。
ブログ記事に画像をはりつけようとすると、下記のような手順がいります。
MTOS(MovableType Open Source )5.13を導入してみました。



MTとMTOSの違いは何かと言うと、MTOSには下記機能がないみたいです。
Movable Type 5 と MTOS にはどのような違いがありますか
  • カスタムフィールドがない。
  • コミュニティ・ソリューションがない。

SQLで確認する方法

SELECT  table_schema
       , SUM(data_length+index_length) /1024 /1024 as MB 
FROM information_schema.tables
GROUP BY table_schema
ORDER BY SUM(data_length+index_length) DESC
ここに答えがありました。
ext4 の徹底調査 - IBM DeveloperWorks
ファイル・レベルのプリアロケーション データベースやコンテンツ・ストリーミングなどといった特定のアプリケーションでは、ファイルが隣接するブロックに保存されることを大前提とします (ドライブの連続ブロックに対する Read 操作の最適化を活用するため、そして Read コマンド対ブロックの比率を最大限にするためです)。

エクステントによって隣接するブロックのセグメントを提供することもできますが、もう 1 つの強力な方法は、必要なサイズの隣接ブロックからなる非常に大きなセクションを事前に割り当てることです (かつて XFS で実装していた方法です)。
ext4 ではこの方法を実装する手段として、指定したファイル・サイズを事前に割り当てて初期化する新しいシステム・コールを使用します。

こうすることで、事前に割り当てたセクションに必要なデータを書き込めば、そのデータに対する Read 操作のパフォーマンスを優れたものにすることができます。
ここでいう「新しいシステムコール」というのが、"posix_fallocate"というものです。

[続報]MongoDBをext3で使ったら死んだ

| カテゴリ:
MongoDBをext3で使ったら死んだ」の続報です。

(なお、「死んだ」との表現はオーバーではないかとのご指摘がありました。「病んだ」にしてもよかったのですが、私と同じ不幸を減らすためにはより多くの人にこの記事を見てもらった方がよいと考え、この表記にさせていただきました。)

ext4の導入に挑戦!

このまま本番サーバをext3で運用し続けるわけにはいかないので、ニフティクラウドでDisk200を100GB追加しようと決心。
(月額1万円もするんですのよ)

ディスクを作成して、ext4にフォーマットしてみる。

Javascriptが世界を支配する日

| カテゴリ:
JavaScript。
javascript-console.png
2005年ごろまでそれは、
「ホームページ」にアラートボックスを表示してうざがられたり、
マウスポインタの形を変えてユーザビリティを下げたり、
そういう存在でした。

インタラクティブなサイトといえばJavaアプレットかFlashでした。
Yahooオークションの残り時間表示、Yahooゲームのチャット機能などはJavaアプレットでした。
おしゃれなサイトはたいていFlashでした。

「JS冬の時代」「失われた10年」ということが言われました。
前回の記事 、 の続報です。

上記内容について、各方面から疑問の声がつぎつぎとよせられました。

↓  ↓ 


たったしかに。。
バージョン1.6.4で実験した私がアフォでした。

↓  ↓ 


ひえぇえ

↓  ↓ 


うわわぁぁあわわ

あの@yukihiro_matz様からもツイートが!!

人気記事

最近の人気記事