2014/10/25

HootSuiteの新UIを目にやさしいデザインに変える方法(Chrome)

つい最近、HootSuiteのUIが新しくなった。
The New Look and Feel of Hootsuite: Why We’ve Updated The Dashboard Design - Hootsuite Social Media Management


変わったところといえば、画像が表示されるようになったことと、

画面が真っ白になったこと!!


もう目がチカチカするくらい!!

前まであった「デザインの変更」とかいうメニューもなくなっており、もう真っ白のまま我慢するしかないのかとChromeを弄っていたら解決策が見つかった!


【C#】配列やリスト(List)のソート処理5種

とりあえずデータを配列やListに突っ込んで、後でソートしたいときのいろんな方法をまとめる。
  • Arrayクラスを使う場合
  • Listクラスを使う場合
  • LINQを使う場合
  • SortedListやSortedDictionaryを使う場合

2014/10/18

【C#】Math.Round()が四捨五入にならない!

四捨五入した結果が欲しいのに、なぜかうまく計算されずハマってしまった。
調べてみるとMath.Round()は、四捨五入ではなく近似値を表示するようだ。

といっても実際のところMath.Round()が原因というよりは、double型の誤差が原因だった。

2014/10/12

【C#】正規表現で一致した部分だけを取得する

正規表現で一致したかどうか判定するには、Regex.IsMatchのように割りと簡単にできる。
しかし、一致した箇所を取得するとなるとちょっと面倒。

その方法をまとめる。

【C#】テンプレートメッセージを使ってメールを送信する

メールを送る処理は、C#でコンソールアプリケーションを作っているとよくある。
ただ、コード内にメール内容を書いてしまうと、修正が困難になる。

そこでメールのテンプレートをテキスト形式で外出しにし、C# で読み込み編集してメールを送る処理をつくってみた。

以降、私が実際に作成した「処理の完了を通知するアプリ」を例にとって説明していく。

2014/10/11

【C#】csc.exeでコンパイルするときにConfigファイルを読み込む

Visual Studioで開発すると、同じプロジェクト内にapp.configというファイルを追加すれば、何も考えずにConfigurationManagerを使ってConfigファイルにアクセスすることができる。

しかし、テキストエディタや、QuickSharp(QuickSharpについて)で開発したりすると、そもそもソリューションやプロジェクトファイルが作られないので、明示的にConfigファイルを読み込まなければならない。

【C#】フォルダ配下をGrepして行番号と文字列を取得する

あるプログラムでGrep結果を取得したい場合、コマンドプロンプトの「FINDSTR」やサクラエディタの「GREP」などのコマンドを使えば、Grepはできる。
しかし、その結果を戻り値として受け取ることができない。

そこで、仕方なくC#でGrepする機能を実装してみた。

2014/10/05

【C#】DateTimeにnullを入れるとエラーになる件

DateTimeにnullを入れようとすると、「Null 非許容の値型であるため、null を 'System.DateTime' に変換できません。」というエラーになる。

以下のようなにDBから日付項目が取得できなかったら、呼び出し元に「取得できなかった」ことを知らせるためにnullを返そうとして怒られた。
public DateTime GetDBDate()
{
    // DB取得
    if (DBNull.Value.Equals(dr["date"]))
    {
        // ここでエラーになる
        return null;
    }
}


DateTimeは構造体のため、C#では値型として扱われる。
そのため、nullを設定することができない。

2014/10/04

Nullと空文字の扱いにハマった(Oracle vs SQL Server)

Oracle歴が長いプログラマが、SQL Serverでの開発を行った時にハマったのが、Nullと空文字("")の扱いの違いだった。

結論から言うと、以下のようになっている。
  • Oracle: 空文字 ≒ Null
  • SQL Server:空文字 ≠ Null

OracleはNullと空文字が統一に使われているが、SQL ServerではNullと空文字では違う動作する。
OracleのプロジェクトからSQL Serverのプロジェクトに変わった時に、注意が必要だ。


2014/10/02

【VB系】変数の宣言と初期化を1行で書く(VB.NET,VBA,VBScript)

VBAやVBScriptって、変数宣言と初期化がものっそい面倒なイメージがある。

C#やJavaみたいに「int num = 0;」みたいに書ければいいのに…って思っている方は多いのではないでしょうか?

実は、1行でも書ける!

やっとVisual Basic系(VB、VB.NET、VBA、VBScriptなど)で変数の宣言と初期化を1行で書く方法を見つけたのでまとめていく。