[Firefox 20] 強化されたプライベートブラウジング機能をさらに便利にする


Firefox のプライベートブラウジング機能はいまいち使い勝手が悪かった。
ウェブブラウジング中に特定のリンクだけプライベートブラウジングで開きたいという場合でも、開いているすべてのタブがプライベートブラウジングになってしまうのだ。

Chrome では右クリックから別ウィンドウをプライベートブラウジングとして開くことができるので、
この辺りは Chrome と比較すると使いづらい部分だった。

それが Firefox 20 になり、Firefox でもようやく別ウィンドウでプライベートブラウジングできるようになった。

これだけでもだいぶ前進した感じだが、さらに Private Tab というアドオンをインストールすることで、タブごとにモードを切り替えることができるようになる。これは Chrome よりもさらに使い勝手が良い。



Private Tab
https://addons.mozilla.org/ja/firefox/addon/private-tab/

[Entity Framework] FunctionImport "" はコンテナー "" で見つかりませんでした。


例えば、"HogeProcedure" というストアドを作成して、それを Entity Framework から呼び出すとする。作成したストアドを EDM (Entity Data Model) から更新すれば、とりあえずストアドが取り込まれる。

しかし、この状態でストアドを呼び出そうとすると、以下の様なエラーが出る。

FunctionImport 'HogeProcedure' はコンテナー 'HogeDBEntities' で見つかりませんでした。


取り込んだストアドは、「モデル ブラウザー」から該当するストアドを右クリックして、関数インポートの追加を行わなければならない。これは、上に書いた取り込みを行うと、論理モデルは生成されるのだが、概念モデルとしては定義されていないため、見つからないということらしい (ややこしい話だが)。

関数インポートを複合型にマップする (Entity Data Model ツール) - msdn

[SQL] 日付条件の注意点


Transact-SQL のお話。
非常によくある要件に、現在日時から○ヶ月前のデータを取得する、一定の期間内のデータを取得する、だとかがある。
で、検索対象となるカラムが datetime で、日付を検索条件とする際には注意が必要だ。

例えば、二ヶ月前から現在のデータを取得するには……。
-- GETDATE() = 2013-03-01 20:12:13.583

SELECT * FROM Hoge WHERE PROCESS_DT between DATEADD(month, -2, GETDATE()) AND GETDATE()
とやりがちで、データも取得できるので一見良さそうにみえる。
しかし、「2013-01-01 11:11:11.111」のレコードが取得できるだろうか?
これではできない。
時間も検索条件に入ってしまっているためだ。

なので、以下のように時間をリセットしなければならない。
DECLARE @dt DATETIME

SET @dt = CONVERT(DATETIME, CONVERT(VARCHAR, GETDATE(), 112))

SET @dt = DATEADD(month, -2, @dt)
CONVERT
http://msdn.microsoft.com/ja-jp/library/ms187928.aspx - msdn
DATEADD
http://msdn.microsoft.com/ja-jp/library/ms186819.aspx - msdn

しかし、これでも完璧ではない。
二ヶ月前の同日を含めるためには、意図的に一日進めなければならない。
SET @dt = DATEADD(DAY, 1, @dt)
この記事はいつまで経っても秀逸だ。
http://itpro.nikkeibp.co.jp/article/COLUMN/20060309/232077/ - ITPro

[Office 365] -UserPrincipalName の禁止文字


New-MsolUser などの -UserPrincipalName パラメータには使用できない文字がある。

パラメーターの値が無効です。パラメーター名: UserPrincipalName。

しかし、これでは一体どの文字が使用できないのかわからない。
試してみたところ、以下の文字は弾かれるようだ。

/ \ [ ] : ; | = , + * ? < > @ "' % & { } ( ) ^ ~ `

記号でも、「#」「$」「!」は使用できる。

[ExpressWeb] Web 発行を行う

Visual Studio の Web 発行機能を ExpressWeb で行う場合のメモ。
  1. 管理画面から設定をする。

    [Web サイト] - [管理] にて、リモート管理を有効に。
  2. Visual Studio から発行する。

    設定したユーザー名とパスワードを入力する。「サービス URL」 と 「サイト / アプリケーション」 は、発行先のドメイン名を入力する (http 等はいらない)。
    なお、「信頼されていない証明書を許可する」 チェックボックスは必ずオンにしておく。
資格情報のチェックを入れるとユーザー名とパスワードが合っていても接続できないので注意する。

[GOM Player] wmv のシークが遅い


どうにもならないようなので、VLC media player というプレイヤーを試してみたら、これなら問題なくシークできる。動作もこちらの方が軽いようだ。

[MVC 4] Visual Studio 2010 で ASP.NET MVC 4 を開発する。

Visual Studio 2012 だと標準で ASP.NET MVC 4 のプロジェクトが作れるようになっているのだが、Visual Studio 2010 (Visual Web Developer 2010 も) 向けの ASP.NET MVC 4 もある。

Visual Studio 2010 SP1 および Visual Web Developer 2010 SP1 用 ASP.NET MVC 4

はじめ JPN の方をインストールしたら、なぜか新規作成で MVC 4 が出てこなかった。
自分の環境だけなのかよくわからんが…。



[SQL Server] Transact-SQL で乱数を発生させる RAND() 関数


RAND() 関数は、0 から 1 の乱数を発生させるので、「0.123456」のような値を返す。
しかし、こういう値はあまり実用的ではないと思う。
乱数を整数に揃えるためには、結局キャストしかないようだ。

-- 出力例 : 123456
print Cast(RAND()*1000000 as varchar(max))

[C#] ConnectionStrings が取得できない。



Config ファイルに記載した接続情報を ConfigurationManager クラスの ConnectionStrings で取得する際には、呼び出し元のクラス (プロジェクト) の Config ファイルを取得する。つまり、以下の場合は、A プロジェクトにある Config ファイルを取得する。

  • A プロジェクトから B プロジェクト (DLL 等) を呼び出す。
  • B プロジェクト内で ConnectionStrings を取得させる。

しかし、Config ファイルが存在しない状態で ConfigurationManager を参照すると、ConfigurationManager は machine.config を参照する。
ここには "LocalSqlServer" や "LocalMySqlServer" などが設定されていることがあり、混乱する。
参照する条件等があるのか調べきれていないが、思い込みで調査すると間違える可能性がある。

var connectionStrings = ConfigurationManager.ConnectionStrings;
Console.WriteLine("Connection strings.");
for (var i = 0; i < connectionStrings.Count; i++)
{
  var name = connectionStrings[i].Name;
  Console.WriteLine("Name: {0} Value: {1}", name, connectionStrings[name]);
}

[AIMP3 Audio Converter] LAME エンコーダーを使って MP3 に変換する。


AIMP3 は高音質の音楽プレイヤーであるが、付属している 「AIMP3 Audio Converter」 にはライセンスの都合上、初期状態では MP3 のエンコーダーが含まれておらず、MP3 への変換はできない。

そこでフリーの MP3 エンコーダーを別途用意しようとして LAME のサイト に行ったのだが、dll を発見することはできなかった。
もう少し探してみると、RAREWARES というサイトで dll が配布されているのを発見。

解凍したフォルダの中にある lame_enc.dll を AIMP3 の Modules フォルダにコピーする。

例 )
C:\Program Files\AIMP3\Modules

AIMP3 Audio Converter を再起動すると、MP3 が変換できるようになっているはずだ。

ちなみに、MP3 の変換方式の違いは以下のように言われている。
  • VBR
    可変ビットレートで、品質のバラツキを防ぐ。ファイルサイズが同一であるなら、CBR より高音質といわれる。ただし、音ズレが発生しやすい。
  • ABR
    固定ビットレート。特に動画の場合、音ズレが発生しにくくなる。ただし、VBR と比較すると品質は劣る。
  • ABR
    VBR の一種。データ全体のビットレートを平均化する。圧縮に時間がかかる。

[Tissot] 秒針のズレは簡単に調整できる。


PRC200。いつの間にか秒針 (ストップウォッチの方) がズレていた。
別に気にならないので放置してそのままにしておいたのだが、竜頭を引いて下のボタンを押したら秒針が動いて調整できると知った。知ったからには調整してみた。
ピッチリ合っていないと気が済まない神経質な人でもこれで安心だ (笑)。