投稿

1月, 2015の投稿を表示しています

Facebook セキュリティコードの取得方法

イメージ
Facebook にログイン認証を設定していると、ログイン時にセキュリティコードの入力が促されるのだが、このセキュリティコードが届かない場合、アプリから生成するか、事前にコードを取得していなければならない。 コードの取得方法 設定(画面右上の ▼) セキュリティ ログイン認証 携帯電話を持っていない時に使用すためコードを取得 ログイン認証コード(8 桁)をメモしておく(他のクラウドサービス等に保存しておくといいかもしれない)

ソリューション エクスプローラのドラッグを無効に

イメージ
システム開発では、ソリューション エクスプローラに大量のファイルやフォルダが作られるのだが、マウスでクリックしようとしてドラッグ&ドロップになってしまい、意図しない場所にファイルが移動されてしまうことがある。 これは Windows のエクスプローラーと同じなので、 Esc キー を押下するとキャンセルすることができる。 同様に、 Ctrl キー を押下しながら動かすとコピーすることができる。 ただ、このコピーは単純なコピーなので、 名前空間等はそのまま になってしまうので注意が必要である。

数値を bool 型に変換する。

文字型の "1" や "0" を bool 型に変換するには、少し工夫が必要になる。 【注意】以下の例は厳密にキャストしているわけではない。"0" を "false" とし、それ以外は "true" が返されることを理解した上で使用する。 string t = "1", f = "0"; // true bool result1 = Convert.ToBoolean(Convert.ToInt32(t)); // false bool result2 = Convert.ToBoolean(Convert.ToInt32(f)); VB.NET の場合。 Dim t = "1", f = "0" ' True Dim result1 = Convert.ToBoolean(Convert.ToInt32(t)) ' False Dim result2 = Convert.ToBoolean(Convert.ToInt32(f)) 理想的なことを言うと、もしこのような変換が必要な場面があったとしたら、それは設計自体再考すべきであると思うが……。

オブジェクトを DBNull から他のタイプにキャストすることはできません。

オブジェクトを DBNull から他のタイプにキャストすることはできません。 場所 System.DBNull.System.IConvertible.ToInt32(IFormatProvider provider) 場所 System.Convert.ToInt32(Object value) SqlCommand.ExecuteScalar メソッドの戻り値のキャストが失敗すると、以上のようなエラーが出る。この ExecuteScalar メソッドの挙動は少々クセがあるようだ。 SQL コマンドとパラメータを与えてメソッドを実行するのだが、SQL コマンドで SUM をしていると、0 ではなく、System.DbNull が返される。 そのため、null チェックとともに DBNull.Value のチェックも行わなければならない(DBNull.Value では TryParse もできない)。 // obj は Object 型の変数 if (obj == null || obj == DBNull.Value) {  // 戻り値がない。 } SqlCommand.ExecuteScalar メソッド https://msdn.microsoft.com/ja-jp/library/system.data.sqlclient.sqlcommand.executescalar%28v=VS.90%29.aspx

[VB.NET] イミディエイトウィンドウに変数の中身を表示

イメージ
Visual Studio のイミディエイトウィンドウにおいて変数の中身を確認する場合、言語によって動作が異なっているようだ。 C# C# の場合は変数名をイミディエイトウィンドウに入力すれば確認できる。 VB.NET 「 >?」か「?」を入力してから変数名を続ける。 そうしないと、式はメソッドではありません、という悲しいエラーが出る。 ちなみに、イミディエイトウィンドウは、[デバッグ] - [ウィンドウ] で表示させる。

Evernote Web でスタックが作成できない(2014 ベータ)

イメージ
2014 年 10 月頃に Evernote Web がベータ版へとアップデートされた。しかし、残念ながらベータ版からは スタックが作れない らしい。 ベータ版を元に戻す 元のバージョンに戻したい場合は、以下の手順で戻すことができる。 左下の設定から、アカウントの概要を開く。 [ベータ版] 項目から、古いバージョンに戻す、をクリックする。 スタック機能を使わないなら、新しいデザインの方が使い勝手は良さそうである。早く対応してもらいたいものだ。

[C#] Dictionary の値を取得

Dictionary クラスの値を、キーから値を取得する。 Dictionary<string, int> dic = new Dictionary<string, int>(); dic.Add("hoge", 1); dic.Add("gege", 2); int hogeValue = 0; if (dic.ContainsKey("hoge")) { // キー名が一致しない場合は例外が発生する。 hogeValue = dic["hoge"]; } // ほんの僅かだが、こちらの方が速いというのが一般的に言われているが、 // 逆に例外が発生しないためキー値がなかった場合の後続の処理に注意を払う必要がある。 dic.TryGetValue("hoge", out hogeValue); Dictionary クラス http://msdn.microsoft.com/ja-jp/library/xfhwa508%28v=vs.110%29.aspx

インターネット時刻タブがない

Windows 7 の「日付と時刻の設定」にて、[インターネット時刻] タブがない場合があるが、これは企業等で Active Directory に参加している場合には表示されない仕様らしい。その場合、手動で時刻調整を行うこともできる。 コマンドプロンプトを管理者モードで起動。 Windows キー → cmd → cmd.exe を管理者モードで起動 以下のコマンドを実行する。 w32tm /config /syncfromflags:manual /manualpeerlist:ntp.nict.jp /update w32tm /resync 時刻が同期されているか確認したい場合は、以下のコマンドを実行する。 w32tm /query /status Windows タイムサービス の設定については、以下を参照。 w32tm http://technet.microsoft.com/ja-jp/library/w32tm%28v=ws.10%29.aspx

Gmail で返信表示を > に

イメージ
現在の Gmail のデザインでは、相手のメッセージはこんな感じに引用される。 プレーンテキストモードに変更すると…。 引用符(>)となる。 ここから本文へコピーしてもいいのだが、引用として扱いたいなら [書式] の [引用] を設定する。 どちらが良いかは好みにもよるだろうが、> に慣れている場合はこれで設定するといい。

[C#] 大文字・小文字 関係なく置換

単純に文字列を置換したいだけなら、 String.Replace メソッド を使用すれば事足りるのだが、大文字・小文字を無視して置換させたいなら、 Regex.Replace メソッド を使用する。 ※ 表記上 <> は大文字 string originalString = "これはテストなんですよ。<br>そうですね。<BR>"; string replaced = Regex.Replace(originalString, "<br>", "", RegexOptions.IgnoreCase); // 変換後:これはテストなんですよ。そうですね。 VB の場合。 Dim originalString = "これは VB のテストなんですよ。<br>そうですね。<BR>" Dim replaced = Regex.Replace(originalString, "<br>", "", RegexOptions.IgnoreCase) ' 変換後:これは VB のテストなんですよ。そうですね。 RegexOptions には、上記以外にも色々と指定できる。 RegexOptions 列挙体

Git と TFS との比較と使用感

.NET 系の開発者だと、ソース管理は TFS (Team Foundation Server) を使っていることが多いと思う。化石みたいな現場だと VSS (Visual SourceSafe) が未だに現役であるかもしれない。あとは Subversion も使っている現場は多い。 個人的な結論としては、Visual Studio を使っているなら、TFS が一番シンプルだし、わかりやすいと思う。アジャイル開発におけるタスク管理等をしたいなら、逆にこれ以外は考えられない。 そんななか、Git を採用している現場があったので 3 ヶ月ほど使ってみた感想をまとめる。間違って理解している部分や、現場によってはもっとスマートに使っていることもあるだろう。 だから、もし VSS から Git へ変更しようと検討してるのならこういう声もあるということの情報共有のつもりでまとめている。 Git (ギット) の特性 Git を理解するうえで、はじめに上げたバージョン管理システムと大きく違うのが、Git は 分散型 バージョン管理システムである点であり、この理解がないと意味が全くわからない。 全員が同じ場所にチェックインやチェックアウトしていく TFS などと違い、まず、リモートリポジトリ、ローカルリポジトリという概念があることを理解する。リポジトリとは、ソース等を保管する場所みたいな概念である。 コミットとプッシュの違いを理解する 集中型のバージョン管理システムでは、コミット(チェックイン)を行うと、それが最新としてアップロードされるわけだが、Git の場合はコミットとはあくまでローカルにある「自分用」のリポジトリを更新する行為である。そのため、コミットしまくっても他の人には影響を及ぼさない。 他の人にも自分の修正箇所を取得させたい場合には、リモートリポジトリに「プッシュ」しなければならない。 差分は自分で解決する 私は SourceTree というソフトを使っているのだが、差分(競合という)が出た場合は自分で解決しなければならない(オプションの Diff から設定すれば WinMerge も使える)。 ソースコードをきれいにしてからみんなが触るところにアップしてね! という考え方だ。 TFS の場合は、マージが非常に楽であるので、この

[ASP.NET] セレクトボックスの値を取得

イメージ
ASP.NET にて HTML のセレクトボックスの値は、Request オブジェクトに格納されている。 <select name="Prefectures"> <option value="01">北海道</option> <option value="02">青森県</option> <option value="03">岩手県</option> <option value="04">宮城県</option> <option value="05">秋田県</option> </select> C# のコード。 string selected = (string)Request.Form["Prefectures"];

[C#] for のカウントを減らして 年と和暦を作成する

誕生日などの生年月日の選択リストの元データを作る際、当年から何年前までの年データを作成する場合、for のループを減らしていくと簡単に作成できる。 和暦は JapaneseCalendar クラスを使用して変換すると楽。以下はデリゲートを使用しているが、それぞれ外部に共通化したほうが使い勝手は良い。 Func getwarekiName = (era) => { string warekiName = string.Empty; switch (era) { case 1: warekiName = "明治"; break; case 2: warekiName = "大正"; break; case 3: warekiName = "昭和"; break; case 4: warekiName = "平成"; break; } return warekiName; }; int currentYear = DateTime.Today.Year; for (; currentYear >= DateTime.Today.Year - 100; currentYear--) { // 西暦だけで良ければ currentYear にセットされた値をそのまま使用すれば良い。 Console.WriteLine(currentYear + "年"); } currentYear = DateTime.Today.Year; for (; currentYear >= DateTime.Today.Year - 100; currentYear--) { // 和暦が欲しい場合は using System.Globalization を追加してから変換する。 JapaneseCalendar calendar = new JapaneseCalendar(); int wareki = calendar.GetYear(new DateTime(current

NTT グループカードを解約

直接電話をしなければならない。連絡先は、0120-883-563(携帯電話からでも OK)。 手元にカードが無くても解約できる。必要情報は、名前・生年月日・電話番号・住所。 また、解約事由と、よく使っているカードは何かも任意で訊かれる。 解約は電話終了後にすぐに行われるそうだが、若干のタイムラグがあるそうで、即座にカードの利用を止めるかどうかも訊かれたりする。 NTT ファイナンス関係の問い合わせはここにも載っている。 http://www.ntt-finance.co.jp/contact/ 2015.01 現在

[C#] ArrayList を List に変換

ArrayList を List に変換するには、以下の方法がある。.NET Framework 3.5 以降では楽に書けるようになっている。 ArrayList arr = new ArrayList(); arr.Add("山口太郎"); arr.Add("山田次郎"); arr.Add("山品三郎"); // .NET Framework 3.5 以降 List lst1 = arr.Cast ().ToList(); // .NET Framework 2.0 List lst2 = new List (arr.ToArray(typeof(string)) as string[]); // キャスト方法は以下でも良い。 List lst3 = new List ((string[])arr.ToArray(typeof(string))); 特に注意しなければならないのは、ArrayList はタイプセーフ(厳密な型定義がされていない)ではないので、変換する型とは違う値がある場合は落ちる。元々、ArrayList 自体は今ではあまり推奨されないので、すでにあるソースで、確実にその型のデータが入っていることが保証されている場合のみ以上のような変換をするといい。