ようこそゲストさん

mitc - 日記

2007/05/05(土) Windowsで仮想デスクトップを試してみた

はてブ 2007/05/05 24:22 雑記miff

仮想デスクトップ

ウィンドウを沢山並べて作業することが多くなってきて仮想デスクトップに興味を持ったので試してみることにしました.
仮想デスクトップは,本来一つしか無いデスクトップを仮想的にいくつも作り,作業時にそれらを切り替えられるようにする機能です.
LinuxやUNIXのデスクトップ環境だと大抵標準装備っぽいですね.
とりあえず評判の良さそうな国産のExマルチデスクチェンジャーと,外国産のVirtuaWinを試してみました.

続きを読む


2007/05/04(金) メモを書いてみた

はてブ 2007/05/04 22:00 雑記miff
ついでに無機質な見た目を改善しようとしてスタイルシートを色々触ってみました.
結果,どうもごてごてして余計に見難くなったような…….
さらに,今時CMSを使わずにべた書きだと更新の手間もかかりそうだし.
しかも,間違った情報とか流してしまっているんだろうなあ……とも思うし.

ただ,Blogだけで情報を残すと後でわけがわからなくなったりするんですよね.
一応自鯖のCentOS4を5にアップグレードする前に仮想環境で導入テストをしてみて,
その経緯をメモに残して後で活用しようといった感じなんですが.

そうそう,ドメインウェブがやっと反映されてアドレスがmitc.xrea.jpに代わりました.
mitc.s279.xrea.comでアクセスすると新しいアドレスに飛びます.

2007/04/28(土) [JavaScriptメモ] 正規表現

はてブ 2007/04/28 18:47 JavaScriptmiff
正規表現の便利さは異常ですね
//というURLからベースのURLと数字を取得
//http://www.sample.com/~foo/bar/ref2080.htm

// 現在のURLをゲット
var pageURI = 'http://www.sample.com/~foo/bar/ref2080.htm';
var matches = pageURI.match(/^(.+\/)ref([0-9]+)\.htm$/);
var baseURI = matches[1];
var baseNumber = matches[2];
baseURIhttp://www.sample.com/~foo/bar/
baseNumber2080
正規表現は普通.
括弧の指定で抜き取り対象を指定.
0番目はマッチした全体が入るので,
1番目からが指定した対象が入ってます.


置換だったらこんな感じ
//というURLからベースのURLと数字を取得
//http://www.sample.com/~foo/bar/ref2080.htm

// 現在のURLをゲット
var pageURI = 'http://www.sample.com/~foo/bar/ref2080.htm';
var replaced = pageURI.Replace(/^(.+\/)ref([0-9]+)\.htm$/,"$1$2");
replacedhttp://www.sample.com/~foo/bar/2080

2007/04/28(土) GreaseMonkeyスクリプト作成クイックスタート

はてブ 2007/04/28 16:57 雑記miff

GreaseMonkey

GreaseMonkeyは,任意のウェブページに対して任意のJavaScriptを追加することができる拡張機能です.
これによって種々の機能を任意のウェブページに追加できます.
それでどんないいことがあるのかって,とりあえずGreaseMonkeyをインストールして,
Firefox Greasemonkey ScriptsでGoogleAutoPager Customをインストールして,Googleで検索してみて下さい.

詳しくは,このページがわかりやすいかもしれません.
Greasemonkey - Mozilla Firefox まとめサイト
スクリプト作成のドキュメントは,上記サイトにあるDive Into Greasemonkey日本語訳を参照すると良さそうです.

続きを読む


2007/04/22(日) DataGridViewでエンターキーにより右方向に移動する

はてブ 2007/04/22 16:34 .NETmiff
2009/07/08 コメント欄にてより簡単な方法についての情報提供がありました

DataGridViewは,デフォルトで編集確定時などでのEnterキー押下に対する動作をカレントセル直下のセルにカレントセルを移動するようになっています.
しかし,例えばExcelでは,そのような状況での動作を直下ではなく右方向のセルに移動するように変更でき,その方が便利な時もあります.
DataGridViewでそのような動作を実現するには,どうしたらいいんでしょうか.
調べてみたところ,プロパティの変更ではなくDataGridViewを継承したコントロールを自分で作成するしかないようです.

こことか,Enterキーで下に移動しないで右に移動,こことか,DataGridViewにおいてEnterキーで右隣のセルへキャレットを飛ばすを参照.

そもそもユーザーコントロールを作ったことがほとんど無いんですが,
プロジェクトの作成で「Windowsコントロールライブラリ」を選択し,
そのプロジェクトにクラスを追加して継承コントロールのコードを書き,
ビルドするとできるDLLを参照の追加で取り込めばツールボックスに現れるようになるようです.

しかし,既にフォームに配置しているDataGridViewを置き換えるのは色々と大変です.
例えば,新たにカラムを追加しないといけないし種々のプロパティも元に戻すために弄らないといけません.
もっと楽な方法を…….

そんなわけで,フォームの初期化をしているコード(FormName.Designer.vb)を直接弄ってDataGridViewを新たに作成したUserDataGridViewに置き換える方法を採用するのが良さそうです.
やり方はいたって簡単.
Private Sub InitializeComponent()
  前略
  Me.dataGridViewName = New System.Windows.Forms.DataGridView
  後略
End Sub
となっているところを,
Private Sub InitializeComponent()
  前略
  Me.dataGridViewName = New UserControlNameSpace.UserDataGridView
  後略
End Sub
とするだけ.
イベント処理などは全て上書きしていて,
外見には通常のDataGridViewと区別が付かないので他を変える必要は無さそうです.
特殊なことをやっているならば違ってくるのかもしれませんが.

1: 名無し 『フォームのKeyPreviewプロパティをTrueにして(つまりフォームでキーイベントをフックして)、 フォームのキーイベントで...』 (2009/06/06 18:41)

2: miff 『情報提供ありがとうございます. わざわざユーザコントロールを作成するより簡単にできそうですし,応用範囲も広そうです.』 (2009/07/08 17:18)

2007/04/21(土) xreaでadiaryを設置する

はてブ 2007/04/21 24:15 雑記miff
ずっと気付かなかったんですが,
どうもコメント機能が動作していなかったみたいです.

見てみると,
/diary/adiary.cgi/09?なんたらかんたら
となるべきところが
/diary/09?なんたらかんたら
になってしまっていて,クエリが空振りしていました.

それで,調べてみると次のページに回等らしきものが載っていました.
特殊なサーバでのadiaryの動作 - adiary開発日誌
しかし……この通りにadiary.conf.cgiの頭に記述してこんな感じにしてみても全然だめでした.
 --------------------------------------------------------------------------------
○adiary のディレクトリ設定(通常は変更不要)
 --------------------------------------------------------------------------------
・すべて相対パスで指定してください。
・ディレクトリを変更する場合は、配布物中のファイルの置き場も変更してください
・ディレクトリは / で終えてください

XREA用の特別なコマンド
<$ENV.PATH_INFO   = substr(ENV.PATH_INFO,   length(ENV.PATH_INFO)/2)>
<$ENV.SCRIPT_NAME = substr(ENV.SCRIPT_NAME, 0, length(ENV.SCRIPT_NAME) - length(ENV.PATH_INFO))>

公開のデータディレクトリ
<$constant(public_dir) = 'public/'>
<$constant(theme_dir)  = 'theme/'>
何がだめかって,スタイルシートへのパスがこんなことになってしまっていたのです.
/diary/adiary.cgi/theme/satsuki/satsuki/satsuki.css
勿論,本当はこうです.
/diary/theme/satsuki/satsuki/satsuki.css
で,結局試行錯誤した結果
<#$ENV.PATH_INFO   = substr(ENV.PATH_INFO,   length(ENV.PATH_INFO)/2)>
<$ENV.SCRIPT_NAME = substr(ENV.SCRIPT_NAME, 0, length(ENV.SCRIPT_NAME) - length(ENV.PATH_INFO))>

パス自動解析に失敗し、リンクなどがうまく辿れないときに設定する
<$Basepath='/diary/'>
とやると正常に動きました.
理由は,謎です.
同じxreaでも,他のサーバだと全然違うことをやらないといけないかもしれませんね.
難しい…….

2007/04/21(土) PortableFirefoxを使ってみる

はてブ 2007/04/21 22:44 雑記miff

PortableFirefox

現在私は,ノートパソコンが壊れていて
代替措置として色々な環境を外付けハードディスクに入れて持ち歩いています.
具体的には,メーラー,テキストエディタ,IDE,SSHクライアント,パスワード管理ソフト,圧縮解凍ツールなどなど.
ブラウザに関しては,PortableSleipnirを入れていて,それはそれで満足していたんですが,
メインPCに入れているSleipnir2の設定ファイルを移行するのに失敗したのと,
知人のFirefoxが色々なプラグインで便利に使えてそうなので入れてみることにしました.

続きを読む


2007/04/17(火) Visual Studio 2005でOpenGLプログラミング

はてブ 2007/04/17 21:23 雑記miff

Visual Studio 2005 Express Edition

Visual Studio 2005 Express Editionでは,Win32APIを使ってWindowsネイティブなプログラムを作成できません.
OpenGLでは,Win32APIを使って描画などを行っているので,インストールしたままの状態では,OpenGLを用いたプログラミングができない状態です.
そこで,これを可能にする機能セットをVisual Studio 2005 Express Editionに追加します.
これは,PlatformSDKという名前です.

導入方法は,MSDNのPlatformSDK解説ページに詳しく載っているので,参照して下さい.

Visual Studio 2005のProfessional Edition

Visual Studio 2005のProfessional Edition*1では,最初からPlatformSDKが入っています.
OpenGLの基本機能*2は,PlatformSDKに含まれているので,これにGlutを追加すれば入門には十分です.

まず,Glutのダウンロードページで,glut-*.*.*-bin.zipをダウンロードします.
このファイルを展開し,glut32.libをPlatformSDKのLibディレクトリに,glut.hをInclude/glディレクトリにコピーします.
glut32.dllは,実行ファイルと同じ場所かC:\WINDOWS\system32ディレクトリに入れます.
開発段階では,自分のパソコンのsystem32に入れておくのが便利ですが,配布時には実行ファイルと共に配布する必要があります.

通常の設定でインストールした時のPlatformSDKが配置されるディレクトリを次に示します.
C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK
あとは,Visual Studio 2005で新しいプロジェクトからVisual C++,全般から空のファイルを選択してプロジェクトを作成すると,普通にOpenGLを利用できます.

新しいプロジェクト→Visual C++→全般→空のファイル

*1 : というより製品版Visual Studio 2005

*2 : GlU32.LibやOpenGL32.Libやそのヘッダファイルなど