avgでリンクスキャナーを外す

6 月 20th, 2008

avgrsx.exeが重いので調べたら、リンクスキャナーを外せばいいらしい。
http://free.grisoft.com/ww.faq.num-1338#faq_1338
それには、リンクスキャナーを外して再インストールが必要。

インストール用のexeを用意して、以下のオプションをつけて実行すればいい。
C:\>avg_free_stf_all_8_100a1295.exe /REMOVE_FEATURE fea_AVG_SafeSurf /REMOVE_FEATURE fea_AVG_SafeSearch


中国語コーパス

6 月 20th, 2008

http://we.fl.kansai-u.ac.jp/corpus.html
http://china.fl.kansai-u.ac.jp/
”このコーパスについては、非営利を目的とした教育、学習であれば、利用は自由とさせていただきます。 ぜひ教育や研究にご利用下さい。”
だそうなので、個人的な利用は問題ないようです。

さくらインターネットでMySQLにコンソール接続

6 月 20th, 2008

mysql -u ユーザ名 -h mysql**.db.sakura.ne.jp ユーザ名 -p

firefoxでマウスジェスチャー(All-in-One Gestures)

6 月 20th, 2008

firefox3のアドオン入手サイトでは、All-in-One Gesturesをインストールすることはできませんが 作者のページに行くと、普通にインストールできます。

WordPressでsyntaxhighlighterのインデントがおかしい。。。

6 月 20th, 2008

WordPressでsyntaxhighlighterのインデントがおかしかったので
SyntaxHighlighter Plusというのを入れました。
使い方はsyntaxhighlighterと同じなので、今までの記事を修正する必要もありません。

CakePHPで論理削除

6 月 20th, 2008

app_model.phpでModelクラスをオーバーライドする。

これで、del()を呼び出すだけで、論理削除されるようになる。子テーブルなどのデータも全て論理削除される。

ただし、ある部分は論理削除、ある部分は物理削除、のような場合、別の対応を取る必要がある。

コードは以下の通り

	function del($id = null, $cascade = true) {
		if (!empty($id)) {
			$this->id = $id;
		}
		$id = $this->id;

		if ($this->exists() && $this->beforeDelete($cascade)) {
			$db =& ConnectionManager::getDataSource($this->useDbConfig);

			if (!empty($this->behaviors)) {
				$behaviors = array_keys($this->behaviors);
				$ct = count($behaviors);
				for ($i = 0; $i < $ct; $i++) {
					if ($this->behaviors[$behaviors[$i]]->beforeDelete($this, $cascade) === false) {
						return false;
					}
				}
			}
			$this->_deleteDependent($id, $cascade);
			$this->_deleteLinks($id);
			$this->id = $id;

			if (!empty($this->belongsTo)) {
				$keys = $this->find('first', array('fields', $this->__collectForeignKeys()));
			}

			$this->saveField('deleted', date('Y-m-d H:i:s'));
			$this->saveField('deletedby', $this->delUser);
			return true;

			//if ($db->delete($this)) {
			//	if (!empty($this->belongsTo)) {
			//		$this->updateCounterCache($keys[$this->alias]);
			//	}
			//	if (!empty($this->behaviors)) {
			//		for ($i = 0; $i < $ct; $i++) {
			//			$this->behaviors[$behaviors[$i]]->afterDelete($this);
			//		}
			//	}
			//	$this->afterDelete();
			//	$this->_clearCache();
			//	$this->id = false;
			//	$this->__exists = null;
			//	return true;
			//}
		}
		return false;
	}

あとはcontroller内で


	$this->ParentModel->delUser = $delUser;
	$this->ParentModel->ChildModel->delUser = $delUser;
	if ($this->ParentModel->del($id)) {

のようにdelUserをセットして、普通にdel()を呼び出せばいい。

なお、対象テーブルにはdeletedとdeletedbyカラムを用意する必要がある。

ここはdel_flgやdelete_flgなどを用意して、それに対応したソースに修正しても良いと思う。

CakePHPのバージョンは、1.2.0.6311 betaです。

WordPressでソースコードをきれいに表示

6 月 20th, 2008

WordPressでソースコードをきれいに表示するには

プラグインのSyntaxHighlighterが有効にして
[sourcecode language='php']
ソースコード
[/sourcecode]
とすればいい。

その後、indentで問題があったので、SyntaxHighlighter Plusを入れました

vimでundoの履歴を使う

6 月 20th, 2008

:undolist

でリストとその状態であったときの時刻が出てくるので

:undo 19(数字は:undolistで左側に表示されるもの)

などとすることで、その時刻の状態に戻ることができる。

これでundoの枝分かれにも対応できる。

vimでyankのbufferを確認する

6 月 20th, 2008

:reg

これでコピーしたbufferを確認できます。

後から取り出す場合は、

“0p(数字は:regで左側に表示されるもの)

vimでsort

6 月 20th, 2008

vimで範囲選択して

:!sort