bzr-svnでチェックアウト時にエラーになっちゃうよ><

PS C:\Documents and Settings\main\デスクトップ> bzr checkout http://svn.sourceforge.jp/svnroot/tween/
bzr: ERROR: [Error 5] アクセスが拒否されました。

ということで残念でした。何回も繰り返しやってるとたまに成功するから不思議。

svn使うと確実に成功するからbzr-svnに不具合があるのかな。

試した環境はこんな感じ。

Windows PowerShell
Copyright (C) 2009 Microsoft Corporation. All rights reserved.
PS C:\Documents and Settings\main> bzr --version
Bazaar (bzr) 2.0.2
Python interpreter: C:\Program Files\Bazaar\python25.dll 2.5.4
Python standard library: C:\Program Files\Bazaar\lib\library.zip
Platform: Windows-XP-5.1.2600-SP3
bzrlib: C:\Program Files\Bazaar\lib\library.zip\bzrlib
Bazaar configuration: C:\Documents and Settings\main\Application Data\bazaar\2.0
Bazaar log file: D:\User\main\My Documents\.bzr.log
Copyright 2005, 2006, 2007, 2008, 2009 Canonical Ltd.
http://bazaar-vcs.org/
bzr comes with ABSOLUTELY NO WARRANTY.  bzr is free software, and
you may use, modify and redistribute it under the terms of the GNU
General Public License version 2 or later.

黙れ 配布

【名前】黙れ Ver 0.3b

【動作環境】Windows XP

【開発環境】Windows XP SP3, Visual C++ 2008 ExpressEdition

実行すると通知領域の鬱陶しいバルーンが消えるよ。

デスクトップにショートカット作ってショートカットキーを設定するなりお好みのランチャーに設定するなり

好きな方法でキーボードから呼び出せるようにして使うと便利だよ。

ライセンスはNYSL(http://www.kmonos.net/nysl/)だよ。

shutup_ver_0_3b.zip(3.95KB)

C#舐めんなよC#だって出来る子なんだぞ!

低レイヤの文字列操作

なんかC#をバカにされてるようで(←酷い被害妄想)イラっときて書いた。後悔も反省もしない。

 

using System;

class Program {
	unsafe static void Main() {
		string fileName = "hoge.ScR";
		char lc = (char)('a' - 'A');
		fixed(char* p_ = fileName) {
			char* p = p_ + fileName.Length;
			if((*--p | lc) == 'r' && (*--p | lc) == 'c' &&
					(*--p | lc) == 's' && *--p == '.') {
				Console.WriteLine("めっかったぜフォー!");
			}
		}
	}
}

 

IntPtrをbyte*にキャスト出来る

NonSoft – Bitmap処理を高速化するサンプル(C#.NET)

のサンプルの

 

byte* adr = (byte*)_img.Scan0;

 

 

ってコードに驚いた。

何故って、今まで

 

byte[] argbValues = new byte[bmpData.Stride * bmp.Height];
fixed(byte* pixel = &argbValues[0]) {
    byte* pixel_ = pixel;
    Marshal.Copy(bmpData.Scan0, argbValues, 0, argbValues.Length);

 

 

ってな感じで配列にコピーしてからその配列のポインタを操作してたから。

早速コード保管庫のコードに反映させましたよっと。

C#|Bitmap処理の高速化

SPDのWindows VISTA / 7 対応に向けて

SPDの動作OSに関しては明記してなくて、

>【動作確認環境】Windows XP

としてるけど、VISTAで”壁紙を変更”メニューが動作しないという報告があったので、次リリースからは【動作環境】Windows XPと明記しようと思います。ただ、VISTA / 7 には対応させたいと思ってます。テスト環境の入手の目処が全く立たないのでどうにも出来ないんですね。ぶちゃけちゃうとお金がない。

“壁紙を変更”が動作しない理由はだいたい検討ついてます。現在はSystem.Diagnostics.Process.Start()メソッドで”desk.cpl”を実行させ、終了時にレジストリから変更された壁紙を取得するという実装になってます。この”desk.cpl”がVISTAでは別の何かなんでしょうね、調べてないけど。ここに独自の”壁紙を変更”画面を実装すればVISTAでも上手く動くんじゃないかと、ブランチを作って実装を始めてます。

もうひとつVISTAでの問題があるんですよね。SPDが実行されていないときに壁紙が変更されても次にSPDが起動されたときにそれを検知してSPDにも反映する機能があるのですが、これがVISTAで上手く動かないみたい。この機能は、SPDの終了時に壁紙を記録したレジストリのキーをSPDの設定ファイルに保持して、次回起動したときに、前回記録したキーと現在のキーを比較する実装になってます。この保持するべきレジストリのキーがVISTAだと違うんでしょうね。XP上でも、IEのメニューから壁紙を変更した場合にSPDで検知出来なかったりするし。関連するレジストリのキーを全部洗い出して保持するのも割に合わないし、この機能は廃止しちゃおうかなぁ…。OSや環境に依存せずに壁紙を取得する方法があればいいんだけどな。やっぱレジストリをゴニョゴニョするのは美しくない。

どんな対策をしようとVISTAも7も持ってないので確認のしようが無いんですけどね。まぁ、何時か環境を入手出来たときに対応作業が楽になればいいなってことで。

※追記(12/7)

VISTA/7でも”desk.cpl”のコマンドは変らないようです。

もしかしたらこれ(Visual Basic 中学校 掲示板 Process.WaitForExitが効かない)が原因なのかも。だとしたらどうにもならないよね、OSの仕様みたいだし。やっぱり独自の”壁紙を変更”画面を実装する方向で良かったのかも。

独自の”壁紙を変更”画面の実装がさっき終わりました。WindowsXPの画面のプロパティにはない壁紙の配置方法が選べます。

・中央に表示

・並べて表示

・拡大して表示

・拡大して表示(アスペクト比維持、余白あり)

・拡大して表示(アスペクト比維持、余白なし)

痒いところに手が届いてるでしょ、と自画自賛。

しばらくの間自分で使ってみて問題が無ければUPします。