cygwinをインストールしたあとでWindowsのユーザを追加してcygwinを起動するとプロンプトが#になってしまう。以下のコマンドで直す。
1 2 |
# mkpasswd -l > /etc/passwd # mkgroup -l > /etc/group |
cygwinをインストールしたあとでWindowsのユーザを追加してcygwinを起動するとプロンプトが#になってしまう。以下のコマンドで直す。
1 2 |
# mkpasswd -l > /etc/passwd # mkgroup -l > /etc/group |
おそらくアンチウィルスソフトが原因
リンカがビルドする
↓
exeできる
↓
アンチウイルスが検査のためにこのファイルを開く
↓
mt.exeがこのexeにマネージリソースを埋め込もうとする。
↓
開けなくて失敗する
↓
実行したとたんエラーが出る変なexeができる。
対策:
幸いもう一回ビルドすると、正常にビルドできるのでビルドしたあとはもう一回ビルドしてみる。あるいはアンチウイルスを無効にする。
ビルド後のイベントでは$(ProjectDir)とかのマクロを多用するので、エラーになったとき、実際に実行されているコマンドを知りたいときがある。
そのときは、そのコマンドの前にechoコマンドを一時的につければ、実行されるコマンドを出力するのでコマンドを確認できる。
WEBページからコピーしてるとダブルクオートが全角みたくなってたり、ハイフンがはてなマークに化けてたりすることがよくある。
svnのコミットが以下のようなエラーで失敗する。
1 2 3 4 |
$ svn ci sh: vi: command not found svn: Commit failed (details follow): svn: system('vi svn-commit.tmp') returned 32512 |
原因はただ単にviが見つけられていないだけだった。viをインストールするか、環境変数SVN_EDITORに別のエディタを指定すればいい。
仕方がないので、ReadOnlyプロパティはfalseにして、FormのLoadイベントで、コントロールを直接リードオンリーにする。
1 |
::SendMessage((HWND)textMain->Handle.ToPointer(), EM_SETREADONLY, TRUE, 0); |
インストールした後でアンインストールするためのファイルを削除してしまうと起こるようだ。
ちゃんとしたやりかたは、ここに書いてあるが、このページの一番下のVMware_Install_Cleaner.zipを実行すればレジストリは削除されるようなのでインストールされてないことになると思う。
idから見つける
idは一意のはず。
1 |
var elem = document.getElementById("pid"); |
ある一意な属性値から見つける。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
function getElementByMustUniqueAttribute(parentelem, nodename, attrname, attrvalue) { if(!parentelem) parentelem = document; var elems = parentelem.getElementsByTagName( nodename ? nodename : '*'); for (var i = 0; i < elems.length; i++) { var elem = elems[i]; var s = elem.getAttribute(attrname); if(s==attrvalue) { return elem; } } return null; } |
getAttributeはそのエレメントにとって意味のある値の場合、ブラウザによって返す値が違う場合があるみたい。imgのsrcとかだと、書かれている値で返すかURIを返すかが異なったりする。
name属性がある場合にはHtmlCollectionのnamedItemを使ったほうが早いのかもしれない。
あとは順番で見つけたり親子関係で見つけたりする方法があると思う。
アプリケーションのメニューアイテムを選択できないようするためのコードをどこに記述するかという問題。もっとも直感的なのは、そういう状態になる場所に書くというもの。しかしこれだと、コードがあちこちに散らばって、いざメニューアイテムが無効になっているのはどうしてなのかといったとき調べるのが大変になるし、本来無効なのに有効になっているのはどうしてなのかといったときも大変になる。
MFCではCOMMAND_UPDATEのような機構が導入されて、メニューアイテムの無効などのコードはこのメニューが表示される直前に実行されていてここで一元管理されていた。ツールバーの場合などはアイドル処理のとき動かしていた。
.NET Frameworkにはこのような機構がないので、MFCと同じようにDropdownopeningハンドラでメニューアイテムの有効/無効を切り替えたくなるが、.NET2.0のToolStripMenuItemのショートカットキーはこのメニューアイテムが無効だと機能しないので、MFCのようにやろうとすると困ることになる。
とりあえず対策としては、Dropdownclosedの時に全部有効に戻して、表示されているとき意外は常に有効にしておくことが上げられると思う。
設定ファイルの場所は、一般的にはsambaのビルドに指定しているようで、以下のコマンドで確認できる。
1 2 3 |
$ sudo smbd -b | grep CONFIGFILE CONFIGFILE: /etc/samba/smb.conf $ |
sambaにはtestparmという設定ファイルが有効かどうかを確認してくれるツールが付属しているのでこれを使う。文法的には問題なくても、論理的におかしいものなども指摘してくれるので便利。
1 2 3 4 5 |
$ sudo testparm /etc/samba/smb.conf Load smb config files from /etc/samba/smb.conf ... ... $ |
vmxファイルに以下を追加でできた。
1 2 |
svga.maxWidth = "1440" svga.maxHeight = "900" |