Dictionaryはキー(Key)/値(Value)を1対1ペア形式で保持するジェネリック型の配列です。内部にハッシュ配列アルゴリズムに基づいて実装されており、.NETプログラミングにおける汎用性の高い中堅クラスです。
このクラスを熟知し、様々な場面で活用すれば、効率をよくわかりやすいプログラミングの作成ができます。これらのクラスの継承およびインターフェースの活用について、ネコ技術自身の経験と発想も皆様に共有したいと思います。
Dictionaryはキー(Key)/値(Value)を1対1ペア形式で保持するジェネリック型の配列です。内部にハッシュ配列アルゴリズムに基づいて実装されており、.NETプログラミングにおける汎用性の高い中堅クラスです。
このクラスを熟知し、様々な場面で活用すれば、効率をよくわかりやすいプログラミングの作成ができます。これらのクラスの継承およびインターフェースの活用について、ネコ技術自身の経験と発想も皆様に共有したいと思います。
KVM (Kernel-based Virtual Machine)はLinuxのコアによってサポートされている仮想技術であり、ハードウェアベースの制御が可能、Intel VT-xとAMD-Vの仮想技術を利用し高性能の仮想CPUを作成できるという特徴があります。Qemuは仮想マシンCPU以外のシミュレート、メモリとリソース管理、外部との通信、付加ハードウェアの仮想化などを行うソフトです。さらに今回はlibvirtとvirshも利用して複数台マシンの作成や削除などを一元管理できる方法を紹介いたします。
Chrome最新バージョン(ver37)はDirectWriteを利用した文字の描写処理を搭載しています。この新機能によって一部のDPIが100%以上の日本語OSで、文字が綺麗に表示できない現象が起きているようです。Chromeの開発チームが正式に修正するまで(または修正しないかもしれません)、以下の方法で改善できますので、お試しください。 Read More
.NET FrameworkにMD5計算のクラスを内蔵しているため、そのクラスを利用するとMD5ハッシュの計算が簡単にできます。対象ファイルに対してComputeHash
メソッドを呼び出して結果バイナリを16進数に変換すると一般的に使われているファイルのMD5ハッシュになります。
Windows AzureでUbuntuを利用する場合、毎度sudoコマンドを実行する時間が2~3秒掛かります。この症状であれば以下を行うと問題を解消することができます。
日本語入力ツールで文書を入力する際に、一時半角スペースを入力したい場合がよくあります。そのとき日本語入力ツールを英語に変換し、キーボードのスペースを押せば半角スペースを入れることができますが、この方法では若干手間が掛かります。ネコ技術がそれで悩んでより速い方法があるかと試したところ、たまたまこの方法を見つけました。 Read More
SQLにパラメータを渡すには、二つの方法があります。
CString sql; sql.Format( _T("SELECT name FROM Names WHERE name = '%s'"), _T("Tom") );
CStringを使用するためUnicodeに対応するsqlite3_prepare16を使用します。
int rc = sqlite3_prepare16( db, sql, -1, &stmt );
この方法でSQL文を組立てる場合、SQLインジェクションという不正利用がおこる可能性がありますので、以下の方法2を推奨します。 Read More
sqlite3本体はC言語で作成されたため、VC++のMFCプログラム、Win32プロジェクト、
及びWin32コンソールプログラムに適用します。本文ではMFCのダイアログプログラムを使用します。
サンプルの作成環境は以下の通りです。
SQLiteの公式サイトから以下二つのファイルをダウンロードしてください。
Microsoft Visual Studio 2008で、下図のようにMFCのダイアログのプログラムを作成してください。 Read More
以下の手順で操作を行います。
イメージは:
UPDATE、DELETE、SELECTも同じ手順です。
まずデータベースオブジェクトを作成します。
sqlite3* db; int rs = sqlite3_open( "test.db", &db );
そしてSQLをコンパイルしてコンパイラステートメントを作成します。
sqlite3_stmt* stmt; rc = sqlite3_prepare( db, "INSERT INTO Names ( Name ) VALUES ( ? )", -1, &stmt, NULL );