タグ

ブックマーク / codezine.jp (427)

  • RFC3820(代理証明書)のC#による実装:CodeZine

    はじめに オープンソースのセキュリティライブラリ、The Legion of the Bouncy Castleの学習。および、C#の勉強用にRFC3820のProxyCertInfo証明書拡張を生成・解析する機能を実装します。対象読者C#勉強中な読者。基礎知識程度(難しい文法は出ません)。公開鍵暗号方式の基礎は分かっている人。セキュリティをより詳細に実装する必要性に駆られている人。ASN.1(DER形式)、およびRFC等も知ってた方がいいです。 必要な環境Windows XP Home以降Visual C# 2008 Express Edition以降 Bouncy Castleとは Bouncy Castleとは、オープンソースの暗号ライブラリです。JavaおよびC#の実装が用意されています。 主に以下の機能があります。 軽量暗号APIJava and C#) JCE暗号プロバイダ実

    Wacky
    Wacky 2008/03/23
  • C/C++ に対応した、もうひとつのUnitTestFramework ─ WinUnit:CodeZine

    はじめに 単体テストを効率的に行うため、テスト対象となる言語に応じてさまざまなフレームワーク「xUnit」がリリースされています。例えばJavaならJUnit、.NETならNUnit、CならCUnitC++ならCppUnitあたりがそれぞれの代表格といったところでしょうか。 マイクロソフトのオンラインマガジン「MSDNマガジン2008年2月号」で、Windows環境に特化したC/C++対応の単体テストフレームワーク「WinUnit」が紹介されています。実行環境がWindowsに限定されてはいるものの、それを補って余りある使い勝手の良さを実現しています。CUnit/CppUnitの問題点 CUnitによる単体テストの例を示します。 #include <CUnit.h> #include "Car.h" #include <stdio.h> Car c; int car_setup(

    Wacky
    Wacky 2008/03/23
  • Javaでレゴロボットを動かしてみよう! 1-おためし編:CodeZine

    はじめに 皆さん、こんにちは! 突然ですが、組込み機器におけるソフトウェア開発(以下、組込みソフト開発)には、どんな開発言語を使用していると思いますか? そうです、一番多いのがC言語です。その他、C++やアセンブリ言語なども使用されています。 ところで、Javaでも組込みソフトの開発ができることをご存知でしょうか? Javaを搭載したデジタル機器・家電製品には、コピーやFAXなどの複合機、携帯電話、カーナビなどがあります。Javaの開発と言うとWebアプリケーションが多いですが、組込みソフトはどのように開発していくのでしょうか……。 ここではレゴロボット「教育用レゴ マインドストームRCX」を使って、組込みソフト開発の入り口を一緒に体験してみましょう!レゴロボットについて 今回はこのレゴロボットを使用します。 RCXには8ビットのマイコンが内蔵されています。メモリは16KbyteのROMと

  • Joelに聞く、「優れた開発者」の要件・心構え・努力すべきこと:CodeZine

    世界的に認知されているソフトウェア開発プロセスのエキスパート。彼のWebサイトJoel on Softwareは、世界中のソフトウェア開発者に人気があり、30以上の言語に翻訳されている。ニューヨークにあるFog Creek Softwareを創業し、ソフトウェアチームのためのプロジェクトマネジメントシステムとして人気のあるFogBugzを作った。JoelはMicrosoftExcelチームのメンバーとしてVBAをデザインし、Juno Online Servicesでは数百万人が使うインターネットクライアントを開発した。 優れた開発者の要件――まず、「優れた開発者にはどのようなことが求められるか」についてお聞かせください ああ、大変だ。それなら12箇条ありますね。(笑) まじめに答えると、見方が二つあって、ひとつは成功するチームを作る上で誰を選ぶかということです。私はそういうとき、頭がよく

    Wacky
    Wacky 2008/03/13
  • POCO流ファイル処理あれこれ:CodeZine

    プラットフォームが違えば、ファイルシステムも異なります。POCOでは、複数の環境に対応するため、インターフェースと実装とが分離しており、内部の実装部分でプラットフォームごとに分かれています。そのため、利用する側では特にプラットフォームの違いを意識する必要はありません。ただし、中にはプラットフォームに依存した振る舞いをする関数もあります。例えばUNIX系環境では、ファイルにアクセス権として「読込可」「書込可」「実行可」の属性を付与することができます。それに対応してsetExecutableという実行許可を付加するメンバ関数がPoco::Fileクラスにあります。Windowsではファイルにそのような属性はありませんので、関数の定義はありますが処理は何も実装されていません。 各クラスをリファレンス的に詳しく解説していっても退屈ですので、それはPOCOのドキュメントに譲ることにし、ここではクラス

    Wacky
    Wacky 2008/03/02
  • VBにおけるタイマーコントロールの基本:CodeZine

    はじめに アプリケーションを書くときにタイマーが必要になることはよくあります。この記事では、タイマーの基について説明し、さらにはタイマーの効果的な使い方についていくつかの例を取り上げます。 長年、フォーラムで初級者をサポートしてきて気付いた問題は、まず、多くの人がタイマーコントロールをストップウォッチタイマーあるいはカウントダウンタイマーとしてとらえていることです。しかし、それは違います。タイマーは、Xミリ秒ごとに単純にイベントを発生させるコントロールです。 では、それはどのような仕組みになっているのでしょう。この記事の最後で、いくつかのタイマー利用例を含んだVB6のダウンロード可能なプロジェクトを紹介します。これらの例を見れば、タイマーの仕組みについて理解が深まるでしょう。 ところで、タイマーは実際に何を行っているのでしょうか。タイマーはコントロールであり、実行時には何も表示されません

    Wacky
    Wacky 2008/03/02
  • C#とIronPythonで変化に強いWindowsアプリケーションを作る:CodeZine

    はじめに 2006年9月、.NETで動作するPython「IronPython」が正式にリリースされました。.NET環境の格的な動的言語ということもあってIronPythonは多くの注目を集めました。その反面、C#やVisual Basicを使っている開発者にとって、IronPythonをどのような局面で使ってよいのかわからない人も少なくないと思います。また、IronPythonの魅力がわからない人もいるのではないかと思います。 そこで、稿では、C#からIronPythonを利用するメリットとその方法について紹介します。この記事を通してIronPythonに興味を持っていただければ幸いです。対象読者 IronPythonに興味のある.NET開発者。必要な環境 このサンプルは.NET Framework 2.0環境(Visual Studio 2005と2008)にて作成しています。Ir

    Wacky
    Wacky 2008/02/25
  • RubyとCursesを使ったコンソールテキストエディタ:CodeZine

    対象読者Rubyの入門書を一読した方練習用にRubyのプログラムを作りたいが良い課題が見つからない方 必要なものRuby体とお好きなエディタを用意してください。筆者は以下の環境で執筆しています。ruby 1.8.6-p111 / SAKURAエディタ / WindowsXP SP2 今回作る物 例題として作っていきたいのはテキストエディタです。 テキストエディタといってもいろいろありますが、次のような感じのものを作りたいと思います。コンソールアプリケーション(もちろんですね)ごくごく基的な機能のみを実装Viのようなモードを持つ  モードというのはコマンドモードや追加モード、挿入モードなどの事で、それらを切り替えながらテキストファイルを編集していく事になります。昨今のUIデザインではこのようなモードを持つのはよくないデザインと考えられています。しかしモードを持つソフトウェアの代表ともいえ

    Wacky
    Wacky 2008/02/14
    引き続きRubyとCursesを使ったコンソールプログラムを作っていきます
  • PHP/SWF Chartsでデータをグラフ化する:CodeZine

    はじめに 四半期の売上、窓口担当者、利益幅の動向...そのほか何であれ、データは企業にとって活動の基礎となるものです。中間管理職のためにPowerPointプレゼンテーションを作成する新米社員から、有望な販売先を何とか獲得しようとする頑張り屋の販売担当者に至るまで、すべての従業員が種々の企業情報に簡単かつ便利にアクセスできることが求められます。最初の要件である「簡単さ」は、インターネットによって既に解決されています。今日、企業データには事実上どこからでもアクセスできます。会社のイントラネットで、ホテルのワイヤレスネットワークを介してノートパソコンから、あるいは携帯電話を使ってタクシーの中からでもアクセスできます。しかし、2番目の要件である「便利さ」は、それほど単純ではありません。 便利なデータアクセスという要件は、なかなか厄介な問題です。というのも、生のデータを提供しただけではほとんど役に

    Wacky
    Wacky 2008/02/08
  • CodeZine:BoostでC 0xのライブラリ「TR1」を先取りしよう (3)(チュートリアル)

    はじめに C++の新しい規格「C++0x」では、言語とライブラリの両面から便利な機能が追加されます。「TR1」(Technical Report 1)はC++0xのライブラリ部で、標準C++に新たに追加されるライブラリの多くはBoostの中から選ばれたものです。2008年春にリリースが予定されているVisual Studio 2008にも追加パッケージとして供給されるとの情報を得ています。 TR1に収録されたクラス/関数の中からいくつかをピックアップし、その概要と使い方を予習しておきましょう。第3回はtupleです。これまでの記事第1回:BoostでC++0xのライブラリ「TR1」を先取りしよう arrayとshared_ptr/weak_ptr第2回:BoostでC++0xのライブラリ「TR1」を先取りしよう 正規表現「regex」

    Wacky
    Wacky 2008/02/08
    便利な「tuple」について。
  • pthreadについて(キャンセル):CodeZine

    はじめに この連載ではUNIX系OSなどで使われるスレッド「pthread」についてサンプルを交えて説明していきます。pthreadはPOSIXが仕様化したスレッドモデルです。サンプルはCと一部C++、調査環境はFedora 8(2.6.23.1-49.fc8)、32bit、glibc-4.1-2、gcc-4.1.2-33およびFedora Core 6(2.6.18-1.2798.fc6)、32bit、glibc-2.5-3、gcc-4.1.1-30を使用しています。前回の記事第1回:pthreadについて(概要・生成)第2回:pthreadについて(同期)第3回:pthreadについて(条件変数・モデル)第4回:pthreadについて(スレッド固有データ)第5回:pthreadについて(スタックサイズ)第6回:pthreadについて(スケジューリング) 10. キャンセル あらゆるアプ

    Wacky
    Wacky 2008/02/08
  • コード分析による品質向上のキモ - VSTDにおけるFxCopツール活用 -:CodeZine

    Visual Studio 2005 Team Edition for Software Developersを使ってみよう (2) はじめに Visual Studio 2005 Team System(以下、VSTS)には製品の品質を向上させる上で有効なテスト自動化の機能が付属しています。それらの機能の概要は『単体テストからパフォーマンス分析まで、VSTDでシステム開発を自動化しよう』で述べましたが、具体的な操作や実際に使用する上での注意点、さらにVSTSの連携機能を活かした使い方までは触れていませんでした。そこで今回はテスト自動化の機能のうち、Visual Studio 2005 Team Edition for Software Developersに用意されているマネージコードの分析機能について、操作方法と効果的な使い方を紹介します。対象読者.NET Frameworkを利用した

    Wacky
    Wacky 2008/02/08
  • Java入門 (4) - Swingを使ったGUIプログラミング:CodeZine

    はじめに プログラミングというのは、ある程度の技量がつくまでは、計算したりテキストの処理をしたりといった地味~な作業ばかりするもの、というイメージがあります。が、コマンドラインから数字や文字が出てくるようなプログラムばかり作って、楽しいですか?(筆者は、全然楽しくない!) やっぱり、プログラミングは「作って楽しい」ものでなければやってられません。クロウトならば、どんなものであれ楽しみを見出せるでしょうが、ビギナーのうちは、やっぱり「目に見える」形で動くものでないと楽しさを実感できないでしょう。そう、やっぱりプログラムと言えば「ウインドウ」がないと始まらないのです。そこで、Javaの最も基礎的なところを覚えたところで、「ウインドウ」を使ったプログラムの作り方へと進むことにしましょう。これまでの記事Java入門 (1) - まずはここから始めようJava入門 (2) - 値と制御構文Java

    Wacky
    Wacky 2008/02/05
  • pthreadについて(スケジューリング):CodeZine

    #include <stdio.h> #include <unistd.h> #ifdef _POSIX_PRIORITY_SCHEDULING #error "_POSIX_PRIORITY_SCHEDULING defined" #else #error "_POSIX_PRIORITY_SCHEDULING not defined" #endif #ifdef _POSIX_THREAD_PRIORITY_SCHEDULING #error "_POSIX_THREAD_PRIORITY_SCHEDULING defined" #else #error "_POSIX_THREAD_PRIORITY_SCHEDULING not defined" #endif #ifdef _POSIX_THREAD_PRIO_PROTECT #error "_POSIX_

  • VBAからUnicode版のWindows API を使う:CodeZine

    はじめに 文字列関係のWindows APIには、ANSI文字列版(関数名:????A)とUnicode文字列版(関数名:????W)があります。VBAからWindows APIを呼ぶ方法は、ネット上にもいくつか紹介されていますが、その多くがANSI文字列版についてのものです。 ここではUnicode文字列版の呼び出し方法について紹介したいと思います。対象読者 VBA環境からWindows APIを利用されている方VBAでUnicode対応のプログラムを作成されている方  なお、ANSI文字列版のWindows APIの呼び出し方法については、以下のMSDNなどを参照してください。MSDN:「Office VBAWindows API」 必要な環境Windows VistaまたはWindows XPVBA開発環境(サンプルではExcelを使います) Unicode版が必要になる文字 

    Wacky
    Wacky 2008/02/03
  • WPFで、マウスポインタを外すと自動的に隠れるウィンドウを実装する:CodeZine

    はじめに WPFはかなり柔軟なカスタマイズができるUIプラットフォームのため、標準で用意されているコントロールだけで事足りるケースが多いと思います。しかし、より複雑なUIを構築しようとすると、カスタムコントロールを作る必要があるでしょう。 記事では、カスタムコントロールで「Visual Studioに似たツールウィンドウ」を作成する例を通して、依存関係プロパティの定義方法、コントロール内でのリストの利用方法などを紹介します。 なお、ここで作成するツールウィンドウはAutoHide(自動的に隠れる)機能だけを持たせたものです。フローティングウィンドウにしたり、ドラッグして場所を移動したりすることはできません。対象読者C# 3.0のコードが読める。WPFとXAMLについて理解している。 必要な環境 記事では、次の環境で開発/テストを行いました。開発環境: Visual Studio 200

    Wacky
    Wacky 2008/01/30
  • Silverlight入門(4)-アニメーションの作成:CodeZine

    はじめに 多くの環境では、アニメーションを実現するために専用のプログラムを書く必要があります。描画に関連する情報を繰り返し処理の中で変化させ、時間に合わせながら値を調整するコードを書かなければなりません。しかし、Silverlightであればプログラムコードを書く必要はなくXAMLだけでもアニメーションを実現することができます。 これまでのWebでも、JavaScriptからHTML DOMオブジェクトを操作することで簡単なアニメーションを表現することができましたが、そのためには相応のスクリプトを書く能力が要求されました。SilverlightであればXMLベースのXAMLを使って、目的のアニメーションをテキストで直接記述できます。 Silverlightのアニメーションは、特別なロジックを用いたものではなく、一定の時間内に、指定された値から目的の値まで、オブジェクトの対象のプロパティを少

    Wacky
    Wacky 2008/01/26
  • Win32で動作するMySQL 5.1用ストレージエンジンプラグイン:CodeZine

    はじめに MySQLのストレージエンジンは、MySQLが提供する関数を使用します。そのため、通常はMySQLのストレージエンジンをWindows上でmysqldのコアにリンクすることが必要です。これは、mysqldが.dllではなく.exeであり、必要な関数がすべてエクスポートされないことによります。したがって、自作のプラグインを作成するときに、必要な関数をすべてインポートすることは不可能です...少なくとも理論上は。 しかしありがたいことに、MySQLでは、リリースの配布物の中に.mapファイルが付属しています。この中には、必要なインポート関数のアドレスがすべて示されています。そこで私は、次のようなアイデアをひらめきました。 Microsoft Visual C バージョン6のリンカーには、遅延読み込みの機能があります。必要なDLL関数を実行中に読み込むことができる機能です。その場合、リ

    Wacky
    Wacky 2008/01/22
  • C++でのスレッドクラスの作成:CodeZine

    はじめに 先日、私の兄弟から、オブジェクト指向のスレッド処理を楽にするC++クラスを簡単に作成する方法はないだろうかという相談を受けました。私はこれまで、さまざまなマルチスレッドライブラリを作成した経験がありますが、いずれもC言語によるものでした。低レベルのプログラミングには私はいつもC言語を使用し、C++はもっぱらGUI開発に使用しています。CodeGuruにはオブジェクト指向でスレッド処理を行うクラスの優れた例が色々と掲載されていますが、彼の要望をすべて満たし、かつ私の好奇心をも満たすクラスは見当たりませんでした。彼が求めていたのは、次のような特徴を備えたスレッドクラスでした。イベントドリブンとインターバル(間隔)ベースの両方の非同期スレッド処理に対応している均一型と細分型の両方のスレッド処理に対応している複数タスクを格納して処理できる、先着順(FCFS:First Come Firs

    Wacky
    Wacky 2008/01/20
    CThreadという新しいクラスと、併せて使用するサポートクラスをいくつか作成しました。
  • Webページに含まれるURLを抽出し、Excelにまとめて保存する:CodeZine

    はじめに MicrosoftのInternet Explorer(以下、IE)やExcelは、職場のほとんどのパソコン環境に入っており、多くの人が手軽に利用できるアプリケーションです。これらのアプリケーションは単体で利用することもできますが、簡単なプログラムを書くことで、便利に連動させて使うことが可能です。今回から数回の連載で、このIEとExcelを利用して、手軽で便利なツールの開発を行ってみたいと思います。 まず第1回では、入力欄にURLを入力してボタンを押すと、そのWebページ内のリンクを一括でExcelに保存するアプリケーションを作ります。ここでは単なる保存だけではなく、少し工夫を加えます。保存するExcelのファイルは毎回共通のものを使い、そのリストの末尾に結果を保存するものとします。こうすれば、入力欄にURLを入れてボタンを押すごとに、次々とURLのリストが追加されていきます。 

    Wacky
    Wacky 2008/01/20
    IEとExcelを利用して、手軽で便利なツールの開発を行ってみたいと思います