C#でKeyValuePairをDictionaryに変換する

KeyValuePairをDictionaryに
KeyValuePair を Dictionary(連想配列)に変換する最もシンプルな方法。

var dictionary = new Dictionary<int, string>();
var kvp = new List<KeyValuePair<int, string>>() { new KeyValuePair<int, string>(1, "hoge"), };
dictionary = kvp.ToDictionary(x => x.Key, x => x.Value);

型が合っていないとビルドエラーになります。

Windows VPS が格安のさくらを契約してみた

Windows Server 2012 R2
Windows の VPS サービスが必要だったので、さくらのVPSに申し込んでみました。




SQL Server で NULL と空文字を判定するシンプルな方法

SQL Server で、ある列が 空か NULL であるか判定するシンプルな方法です。

DATALENGTH の長さチェック

-- Hoge テーブルの Memo 列が 空か NULL であるデータを取得します。
SELECT * FROM Hoge WHERE DATALENGTH(Memo) > 0

-- これだと NULL のデータは引っ張ってきてしまいます。
SELECT * FROM Hoge WHERE Memo <> ''

-- これは NULL のデータを引っ張ります。
SELECT * FROM Hoge WHERE Memo IS NOT NULL

Chrome を Windows Server 2012 にインストール

Chrome on Windows Server 2012
Windows Server に Chrome をインストールする方法です。

Chrome のスタンドアローン版

Windows Server の IE からのウェブの閲覧やダウンロードは、セキュリティの都合上、正直めんどくさいです。
なので、Chrome をインストールしたい場合には、スタンドアローン版をダウンロードしてきて、それをコピーして実行するのが手っ取り早いです。

Google Chrome のスタンドアローン版

ChromeStandaloneSetup.exe という実行ファイルからだとすんなりインストールできますよ。

フォルダ内のファイル名一覧リストをテキスト出力

日時のバッチファイルなどで、フォルダ内のファイル一覧を出力したい場合は、こんなコマンドがあります。

フォルダ内にあるファイル名をテキストファイルとして出力

@echo off

set dt=%DATE:/=%
dir d:\hoge\*.txt /b /a-d > d:\logs\filelist_%dt%.txt
D ドライブの hoge フォルダにある .txt 拡張子のファイルリストを、d:\logs フォルダに出力しています。ファイル名に日付も付けてみました。

ファイルの差分なら WinMerge

WinMerge
意外と知られていないかもしれませんが、WinMerge はフォルダも指定できます。
ファイルリストの差分をチェックしてくれるのです。便利。

Undefined index 未定義の変数は参照できない

undefined index
Notice: Undefined variable: hoge
PHP のお話。これは未定義の hoge を参照しようとした、という意味です。

Undefined variable

定義されていない変数の参照は不可能です。参照しようとしたもの(変数=箱)がないよ、という意味です。null 参照とはまた違います。
Post や Get 時によく発生するようですね。

これはスクリプト言語特有の動きで、C# では基本的に未定義の変数の参照を使用とすると怒られるので(遅延バインディングなどはありますが)、概念としてそもそもあまりピンとこないかもしれません。

Visual Studioがデザイナで落ちる

パッケージは正しく読みこまれませんでした
'Microsoft.VisualStudio.Editer.Implementation.EditorPackage'パッケージは正しく読みこまれませんでした。構成の変更または別の拡張機能のインストールが原因で問題が発生している可能性があります。Visual Studio を再起動するとこの問題を解決できる可能性があります。引き続きこのエラーメッセージを表示しますか?
Visual Studio 2013 で、ソースファイルを開こうとすると落ちてしまう問題が発生。再起動しても直らず、これは再セットアップかと思っていましたが、コマンドから復旧させることができました。


Visual Studioが落ちる原因追求のためにログを参照

ActivityLog.xml
Visual Studio は便利ではありますが、時折エディタ自体がクラッシュして途方に暮れることもあります。

iPhoneの不具合となる1970年とは


以下の方法でiPhoneが再起不能になるバグで大騒ぎしていますね。

  1. [設定] - [一般] - [日付と時刻] を開く。
  2. [自動設定] をオフに。
  3. 日付を「1970年1月1日 13:00」に変更。
  4. 再起動。
UNIX時刻が1970年1月1日から始まっている、ということくらいしか関連が思いつきませんが、それを使っているのか、内部的にどう処理されているのかはよくわかりませんね。

SQL ServerのリンクサーバーからSelect

SQL Server のリンクサーバー
開発サーバーに本番DBからマスタデータを持ってきたいという場合は、SQL Server のリンクサーバーを設定すると便利です。

PHP の No input file specified.

IISでPHPが実行できない
PHPを実行できない場合があります。include や require_once でエラーとなっている場合、php.ini の open_basedir 設定を見直す必要があるかもしれません。

IISのPHPページで500エラーが表示される

IISのPHPページで500エラーが表示される
IIS に設定した PHP で 500 エラーが表示されることがあります。全てのエラーが 500 エラーとして表示されるため原因の特定がよくわからないのですが、これは設定をいじる必要があります。

POSTされたCheckboxの値をbool型に変換する

POSTされたCheckboxの値をbool型に変換
ASP.NET において、POST されたデータは Request.Form[" コントロール名 "] で取得することができます。
checkbox を bool 型に変換するには以下のようになります。

bool hoge = Request.Form["checkHoge"] == "on" ? true : false;