カテゴリー: 技術系

  • vSphere4 ClientとWindows7の組み合わせでクライアントのDVDドライブをマウントするときの注意点

    Windows7にvSphere4 Clientをインストールし、バーチャルマシンに接続する場合で、クライアント側のDVDドライブを接続すると、「D:に接続しているXXXXXXXXのリモート デバイスは切断されています。」と警告がでてドライブの接続ができない。

    解決方法

    Windows7でvSphere4 Clientを起動するときに、右クリックし、「管理者として実行」を選ぶ。これであとは、コンソールで通常通りマウントしてあげればよい。

    どうやら、ユーザ権限でvSphere4 Clientを起動すると、権限の問題でドライブに対してネットワーク越しのアクセスができない模様。わかってしまうと簡単なのだが、急いでいるときに限って、こういう問題に直面する。わすれないようにTIPSとして残す。

  • VB.NETで変数にダブルクォートをいれる

    とても初歩的ことなのだが、VB.NETで変数またはLabelなどのtextに ”(ダブルクォート)を入れる方法。

    VB.NETでは、文字列を”で囲む必要があるため、ダブルクォートで囲まれた場合は文字列として認識してしまう。
    “を変数やLabelのtextに入れる場合、1つだけ書いてしまうとそこで文字列が終わったことになってしまう。
    ‘ シングルクォートで囲もうにも、これはコメントアウトとして用いられるので使えない。
    ダブルクォートを変数に入れる場合には、ダブルクォートを2回連続で入力することでエスケープされる。

    たとえば、こんな感じ。

     Dim Str1 AS String = "ダブルクォートは、""と入れる"
    

    ダブルクォートだけを入れたい場合はこうなる。

     Dim Str2 AS String = """"  '4つ連続で入れると1つだけ変数に入る。
    

    よくやりそうなあたりだと、こんな感じか。

     Dim Email AS String = "hoge@xenos.jp"
     Dim Name AS String = "ほげ"
     Dim Address AS String
     
     Address = """" & Name & """,""" & Email & """"
    

    これだと、”hoge”,”hoge@xenos.jp” になる。
    ダブルクォートだらけで混乱しそうだ。
    個数は、インテリセンスが警告してくれるので、どこかで気がつくだろう。
    初歩的なことだが、知らないと入力しようがなく時間がとられてしまう。
    一度、覚えてしまえば特殊すぎて忘れない(はず)。

  • Lion ServerからMySQLが削除

    Lion ServerからMySQLが削除されているそうだ。GUIとコマンドラインで使えるから便利そうだったのに。Lion Serverは代わりにPostgreSQLがインストールされている。ここのところMySQLばかり注目されていたけれど、今後、PostgreSQLが使われる機会が更に増えるのかな。標準で組み込まれていなくても、ビルドするかパッケージをインストールすれば使えるので標準が変わっても然程の影響はないだろう。使いたい人は自分で組み込めばいいし、こだわりがなければPostgreSQLに移行するもよし。あとはアプリケーションが対応しているかどうかだけ。blogで使うツール等がMySQL対応だけだったりするので、簡単には切り替えられないだろうな。MySQLばかり使っていたけど、少しはPostgreSQLも使うようにするかな。バージョンが上がっていろいろと便利な機能も追加されているし、食わず嫌いになるのもよろしくない。何かきっかけがないと、使い始めないし、スイッチもしていかないからね。MySQLと一緒に使うとなるとメモリが心もとないけど、遊びますかね。

  • DBのデータでカラムの値がNULLのものを検索するSQL

    とても基本的なことなんだけれど・・・
    わからなくて調べたのでメモしておく。
    DBのデータでカラムの値がNULLのデータも検索したい!
    そんなときは、WHERE句で”IS NULL”を使用する。
    ※”ISNULL”という関数もあるが、違うので注意。

    ■使い方

    SELECT * FROM Employee WHERE id IS NULL;
    

    これで id というカラムで値がNULLのレコードを検索することができる。
    動作確認をしているのは、SQL Server (T-SQL)だ。

    ■参考URLなど
    http://msdn.microsoft.com/ja-jp/library/ms184325.aspx

  • VB.NET 2008 (ASP.NET)でテキストボックスでEnterキーを押下したときに実行されるボタン指定する方法

    VB.NETで作成したウェブアプリのテキストボックス等でEnterキーを押したときに実行されるボタンを指定したい。
    通常は、ウェブのForm上にあるボタンのうち、一番最初に記述された(配置された)ボタンになっている。
    Enterキーを押したときに動作するボタンを指定する方法は以下。

    1. Enterキーを押下したときに実行するボタンのプロパティから、UseSubmitBehiviorを探し、Trueになっていることを確認する。
    2. 次にEnterキーを押下したときに実行したくないボタンのプロパティのUseSubmitBehiviorの値をFalseに変更する。
    3. 他のボタンも同じようにFalseに変更する。

    この方法でEnterキーを押した際に、1で設定したボタンが実行されるようになる。
    ただし、この方法で実行できるのは1つのボタンだけなので注意。

    Webでは、FormのAcceptButtonプロパティで設定する方法が多数見つかる。
    だが、VWD2008で設定を行おうとするとAcceptButton?プロパティは見つからず設定ができない。
    そのため、UseSubmitBehaviorで設定する。
    より正確に言えば、UseSubmitBehaviorは、PostBackが走った時に実行されるボタンクリックイベントについての記述になる。
    このプロパティの値がTrueのもので一番最初のものが実行されているに過ぎない。
    そのため、EnterキーでなくてもPostBackが走るのであれば実行される(はず)。

  • ドメインの所属の判別に使用するレジストリ

    レジストリエディタでUSERDNSDOMAINの値を調べることで所属しているドメインを調べることができる。
    また、システムで(作成したプログラム等で)どうしてもドメインに所属しているかどうかを判別したい場合には、この値と比べることでドメインに所属しているかどうかを判別可能。

    HKEY_CURRENT_USER\Volatile Environment\USERDNSDOMAIN
    

    Windows 7では、USERDOMAINというレジストリもある。ここには、DOMAINが入っている。

  • Visual Studio のバージョン依存に苦戦した。

    大した内容ではないが、備忘録もかねて書いておく。

    昨日、PCを新しくしたところVBの”.sln”ファイルが開かないエラーに遭遇した。先に結論を書いておくと、ツールの些細なバージョンで違いで開く際にエラーになった。Visual Web Developer 2008 Expressにサービスパックが適用されているかどうか、これが原因だった。

    元々、作成に使用していたのはVisual Web Developer 2008 Express で新しいPCはOSこそWindows 7に上げたがIDEは同じくVisual Web Develper 2008 Expressだ。新PCでは、インストールに本に付属のDVDを使用して、開発に必要な環境を一括でそろえた。この状態で各種アップデートの後、”.sln”ファイルを開いたところ「このバージョンのファイルはvisual studioでは開けません」というようなエラーが発生した。何度か試してみたが状況は変わらず。仕方がないので、Visual Web Developer 2008 Express をアンインストールして、再度インストールした。今度は、”.vbproj”ファイルが開けないという。Visual Web Developerが起動しても、表示されるのは、XML形式のvbprojファイルだけ。エラーになっている箇所は、表示してくれるものの解決策はわからない。途方にくれて、MSのサイトをみてみるとSP1があるようなので当ててみることにした。SP1のファイル単体は見つからず、ウェブインストーラーしか見つからない。ウェブインストーラーを使って上書きインストール。もう一度、slnファイルから試してみると正常に開いた。

    同じツールであっても、SP(サービスパック)が適用されているかどうかで、ファイル形式が違うようだ。slnファイルのアイコンには、起動するバージョンの数字が書いてあったが、SPの有無までは解らない。(もしかしたら、どこかに簡単に見分ける方法があるのかもしれないけれど。)(2008形式なら数字は9、2010形式なら数字は10というように見分けがつく。)Visual Studioのファイルは、上位の(新しく発表された)Visual Studioで開くと、slnファイルが更新されてしまい、下位バージョンで開けなくなるのは知っていた。まさか、SPの有無でさえ開けない事態になるとは思っても見なかった。もうちょっと、互換性を作ってくれるといいのけど、MSだし無理だよな。

  • PCのDNSキャッシュをクリアする

    PCにキャッシュされているDNSのキャッシュをクリアする方法。PCの名前解決が不安定な時にやると良い。

    キャッシュをクリアするには、Windowsのコマンドプロンプトを起動して次のコマンドを入力する。

     ipconfig /flushdns
    

    これで、PC上のDNSキャッシュをクリアできる。また、PC上のキャッシュを確認したい場合は以下のコマンドを入力する。

     ipconfig /displaydns
    
  • dropboxがブロードキャストアドレスによくわからない通信をする件

    とってもタイトルは長いけど、単純な問題。何が嫌かというと、dropboxを使っている端末が増えるとLANの中に嫌なくらいパケットがめぐるので問題が起きた時に邪魔になる。

    どういうパケットが流れているかというと、Wiresharkでパケットをキャプチャしたときに自分の通信とは関係のないDropboxの通信がやってくる。

    Source : 192.168.XXX.XX1
    Destination: 255.255.255.255
    Protocol: DB-LSP-DISC -> UDPの1750番ポート
    Info: Dropbox LAN sync Discovery Protocol
    

    んな感じのパケットいっぱい拾ってしまう。実害はないのだが、あまり増えすぎるとLANのパフォーマンスを低下させるのでなるべくなら避けたい。

    この通信を調べてわかったのは、Dropbox LAN sync Discovery Protocolは、LANの中で共有する端末(PC)があるかどうかを調べている。もし、同期する端末があった場合はDropboxを介することなく、LANの中で同期させるためのもののようだ。

    まったくもってこまったもので、こんなパケットが溢れていたら、LANのパフォーマンスが低下してしまうではないか。この通信をOFFにするためには、DropboxのクライアントのオプションでLan Sync(だったかな?)のチェックを外せば良い。これでやたらとパケットを投げる行為をやめてくれる。それにしても、日本語の情報がない。結局、英語のサイトを探した。

    ■参考
    http://p0stmaster.blogspot.com/2011/01/dropbox-lan-sync.html

  • Powershellにエイリアスを追加する方法

    WindowsのPowershellを使っていると、間違えてlsとかpwdとか叩いてしまう。これらは、最初からPowershellの内部で対応するコマンドにエイリアスが切られているので 問題なく実行できる。

    でも、どうせならCUIから簡単にxyzzyを起動したい。ついでに間違えてemacsと入力したときにxyzzyを起動させたい。プログラムにパスが通っていれば、エイリアスで指定しなくても起動するがめんどくさいのでAliasに登録する。

    ■エイリアスの登録方法

    Set-Alias  エイリアス  コマンド
    

    xyzzyをエイリアスに登録する場合は以下。(xyzzyは、Cドライブ直下のbinに保存)ついでに、emacsでxyzzyが起動させるようにする。

    Set-Alias xyzzy 'C:\bin\xyzzy\xyzzy.exe'
    Set-Alias emacs xyzzy
    

    これで、xyzzy ファイル名 とか叩けば、そのファイルがxyzzyで開くようになる。簡単に起動できるので便利。

    だが、ここまでだとPowershellを終了させると消えてしまう。AliasをExportしてImportするか、起動時にプロファイルを読み込ませる方法がある。ちょっと調べてみたが、プロファイルを読み込ませるのはめんどくさそう。

    ■現在のエイリアスの確認方法

    Aliasと入力する。

    ■エイリアスの削除方法

    エイリアスの削除もコマンドから行うが、Remove-Itemという汎用的なコマンドから行う。(Remove-Itemはファイルやフォルダ、オブジェクトの削除に使うコマンド)

    Remove-Item Alias:エイリアス
    

    先に追加したemacsのエイリアスを削除するコマンド

    Remove-Item Alias:emacs
    

    この要領で便利なエイリアスを作ったり削除できる。