タグ

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

  • 5分で使えるLoggingフレームワーク - POCO::Foundation -:CodeZine

    はじめに 記事ではPOCO(C++ Portable Componentsの略)というオープンソースのC++用クラスライブラリを紹介します。 POCOに関する概要とその導入方法については、別稿『POCO::Netライブラリによる組み込みWebサーバの実装』を参照してください。POCOはコンポーネントとして6つのライブラリに分かれていますので、今回からは、ライブラリ単位で順番に紹介したいと思います。まずは、POCO::Foundationライブラリをとりあげます。名前の通り基機能を集めたライブラリで、実際のアプリケーション開発にそのままでも使えるクラスが揃っています。対象読者 オブジェクト指向を理解し、C++のクラスライブラリを活用できる方を対象としています。必要な環境 POCOは、多様なプラットフォームで動作可能で、WindowsMac OS X、Linux、HP-UX、Tru64、

    hiroponz
    hiroponz 2007/12/05
    c++で使えるLoggingクラスの紹介
  • VBAで正規表現を使う:CodeZine

    はじめに 改めて言うまでもないことですが、文字列処理で正規表現が使えると非常に便利です。VBAで正規表現を利用する方法を紹介したいと思います。対象読者 VBAで正規表現を使用したい方VBAで煩雑な文字列処理の行う必要のある方  なお、「正規表現についてよくわからない」という方は、以下のページの解説などを参考にしてください。サルにもわかる正規表現入門 必要な環境Windows VistaまたはWindows XPVBA開発環境 正規表現を使う前に VBAで文字列比較を行う場合、標準の機能としてStrComp関数やLike演算子があります。 特にLike演算子は、ワイルドカードなどによるパターンマッチングが行えます。正規表現よりも柔軟性は劣りますが、実現したい機能がLike演算子で済むのならば、無理に正規表現は使わずLike演算子を使った方がよいと思います。詳しくは、ヘルプにあるLike演算子

    hiroponz
    hiroponz 2007/10/23
    VBAで正規表現を使う
  • SQLによる数独の解法:CodeZine

    はじめに SQLを使って数独(ナンプレ)を解く方法を紹介します。 データベースを操作するための言語であるSQLを別の用途に使おうとする理由は、SQLが宣言的な記述が可能な言語の中で最も普及していると思われるからです(宣言的言語と言えばPrologを思い浮かべる方も多いかもしれませんが、残念なことにPrologは、SQLほどには普及していません)。 まず、宣言的な記述について説明しましょう。タクシーに乗ることを想像してください。「渋谷に行ってください」というように、欲しい結果を書くのが宣言的な記述です。具体的な道筋は運転手が考えてくれます。それに対して「まずA通りを北に行って、B交差点を左折して・・・」というように、具体的な道筋を示すのは手続き的記述です。プログラミング言語の場合も同様です。SQLやPrologにおいては、欲しい結果をプログラマが書けば、具体的な実現方法はコンピュータが考えて

    hiroponz
    hiroponz 2007/09/07
    SQLで数独を解く
  • 階層化アーキテクチャと依存性注入・依存性逆転:CodeZine

    .NET 1.0のベータ1から.NET Frameworkに従事してきた.NET開発のエキスパートで、アプリケーションのアーキテクチャ作成と設計と開発で7年以上の経験がある。アジャイルプラクティスと実際的なビヘイビア駆動開発(BDD)テクニックを通じてチームの成功を支援する独立コンサルタントとして活躍している。BDDを.NETに応用する記事をVisual Studio Magazine、DevX、MSDNに寄稿。ポッドキャスト/スクリーンキャストとして人気のある.NET Rocks!とDNRTVに登場したことがあり、実際のデザインパターンというトピックについてMicrosoftのためのウェブキャストを配信。MSDN Canada Speakers BureauおよびMicrosoft Most Valuable Professional(MVP)のメンバ。自分のブログも継続的に更新中。

    hiroponz
    hiroponz 2007/09/05
    階層化アーキテクチャの実装方法
  • 例外処理とロギングのベストプラクティス:CodeZine

    はじめに システム開発において例外処理は重要なポイントですが、あまりに軽視されているのが現状ではないでしょうか。稿では、これまでの著者の開発経験の中から培った汎用的な手法を説明します。 この記事は「美しい設計」ではなく「現実的な設計」、現場に適用できる「できるだけ手間の少なく、汎用的な設計」を目指しています。 対象読者 J2EE開発者・アーキテクト。特に業務システムの開発現場の方が対象です。 必要な環境 概念の説明が中心ですので、開発環境は必要ありません。 エラーの分類 実装時に考慮すべきエラーは2つに大別できます。 想定内でトランザクションの実行開始前にチェックするエラー。主に入力エラー。 異常な状態としてトランザクションの続行が不可能なエラー(例外)。 前者については、例外を使うべきではありません。入力チェックエラーを表現するには、ステータスコードを使うべきです

  • L2Lisp in Ruby:CodeZine

    はじめに P.Graham著『On Lisp』に示されているように、現代的なLispプログラミングでは静的スコープ(字句的スコープ)と末尾呼出し(末尾再帰を含む)の最適化のもとでのマクロが重要な意味をもちます。しかし、今まで処理系作成の初心者が内部に手を入れやすい手頃な大きさの実装が事実上ありませんでした。 ここでは、そういったモダンな特徴を備えた小さなLispインタープリタL2LispをRubyで作ってみます。L2Lisp(Little Lambda Lisp)は、Lispの理論的背景であるラムダ算法(lambda calculus)に対し、有力なLisp方言であるSchemeと同程度に忠実である一方、その他の点では広く普及しているEmacs Lispのサブセットとしたオリジナルの小型Lispです。 実行例としてtak関数を定義し、実行する様子を示します。Ruby以外に必要なのはL2Li

    hiroponz
    hiroponz 2007/07/23
    Lisp in Ruby Lisp処理系の作り方
  • CodeZine:C++ 開発者のためのRubyガイド(XML, 言語比較)

    Scaffoldで生成したアプリケーションは出発点にすぎず、自立した完成品のアプリケーションではありません。このため、開発者がプロジェクトに適した形になるように手を加える必要があります。しかし、毎回似たような修正を行うのであれば、生成した時点でその修正が反映されている方が、より生産性も向上します。そこで稿では、Scaffoldをカスタマイズする方法を紹介します。

    hiroponz
    hiroponz 2007/07/03
    C++のプログラムでRubyで実装する例
  • 分析関数の衝撃(前編):CodeZine

    はじめに Oracle9iから(厳密には、8.1.6 Enterprise Edition)から使用可能な分析関数について解説します。分析関数はSQL ServerやDB2でも使用できますし、標準SQLなので、いずれは他のDBでも使えるようになるはずです。 稿では分析関数の便利さを実感しやすくするために、CodeZineのミック氏の記事で記載されたSQLを、分析関数を使って記述していきます。対象読者SQLで分析関数を使ったことがない方SQLの可読性を向上させたい方SQLのパフォーマンスを向上させたい方 分析関数について SQLで分析関数を使ったことがない方は、@ITSQLクリニック(8) 極めよう! 分析関数によるSQL高速化計画』@ITSQLクリニック(9) SQL分析関数をさらに深く追求してみよう』@ITSQLクリニック(10) まだまだあるぞ! 分析関数の究極テクニック

    hiroponz
    hiroponz 2007/06/13
    sqlの分析関数を利用
  • Facadeデザインパターンを利用したオブジェクト指向JavaScriptカレンダーの作成:CodeZine

    去る8月30日(土曜日)、ライトウェイトプログラミング言語(Lightweight programming Language)の総合カンファレンス「LL Future」が、なかのZERO(中野区もみじ山文化センター)大ホールで開催された。当日は前線の影響で時おり豪雨に見舞われる中、さまざまな言語のユーザーや開発者など千人近くが集まった。

    hiroponz
    hiroponz 2007/06/06
    デザインパターンのお勉強に
  • 3値論理とNULL:CodeZine

    要するに、データベースにnullが1つでも含まれていれば、クエリから正しくない結果が返される可能性がある。しかも、一般的には、どのクエリから正しくない結果が返されるのかを知る方法はないので、すべての結果があやしく見えてくる。nullが含まれたデータベースから正しい結果が得られることは確信できない。筆者に言わせれば、この状況はまさにお手上げである。 ――――C.J.デイト はじめに 多くのプログラミング言語が、真理値型(BOOL型、BOOLEAN型)というデータ型を持っています。もちろん、SQLにも真理値型が存在します。ユーザーが直接扱えるデータ型として定義されたのはSQL-99ですが、WHERE句などの条件の評価時にも真理値の演算が行なわれています。 ところで、普通のプログラミング言語の真理値型とSQLの真理値型の違いをご存知でしょうか? それは、普通の言語の真理値型が、true、fals

    hiroponz
    hiroponz 2007/06/05
    今までNULLについてよく知らないで使っていたので気をつけたい
  • RailsでWikiシステムを作成する:CodeZine

    Scaffoldで生成したアプリケーションは出発点にすぎず、自立した完成品のアプリケーションではありません。このため、開発者がプロジェクトに適した形になるように手を加える必要があります。しかし、毎回似たような修正を行うのであれば、生成した時点でその修正が反映されている方が、より生産性も向上します。そこで稿では、Scaffoldをカスタマイズする方法を紹介します。

    hiroponz
    hiroponz 2007/06/04
    RailsでWikiを作るチュートリアル
  • REXML:RubyによるXML処理

    Scaffoldで生成したアプリケーションは出発点にすぎず、自立した完成品のアプリケーションではありません。このため、開発者がプロジェクトに適した形になるように手を加える必要があります。しかし、毎回似たような修正を行うのであれば、生成した時点でその修正が反映されている方が、より生産性も向上します。そこで稿では、Scaffoldをカスタマイズする方法を紹介します。

    hiroponz
    hiroponz 2007/05/25
    rubyによるxml処理の解説
  • SQLで集合演算:CodeZine

    はじめに SQLが集合論に立脚する言語であるということは、この連載で一貫して強調してきたテーマの一つです。その特性のゆえに、SQLは「集合指向言語」と呼ばれていますし、実際、集合的な観点から見たときに初めて、その強力さが理解できると私は考えています。しかし現実には、SQLのこの側面は長らく無視されてきました。 その背景には、SQLにも責任の一端があります。というのも、SQLはちょっと前まで、高校で習う程度の基的な集合演算子すら持っていなかったからです。和(UNION)こそSQL-86からの古参ですが、交差(INTERSECT)と差(EXCEPT)が標準に入ったのはSQL-92ですし、除算(DIVIDE BY)が未だに標準化されていないことは、前にも述べました。だから、SQLが言語として不完全だという批判は、理由のないものではなかったのです。 しかし、現在では標準SQLに基的な集合演算子

    hiroponz
    hiroponz 2007/05/25
    SQLの集合演算の基本~応用
  • VBAでデータベースからの作表・印刷処理を自動化する 2:CodeZine

    はじめに 前回の記事では、データベースからデータを取得し、印刷用のフォーマットに整えるマクロを作成しました。今回はユーザーフォームを作成します。マクロをGUIを通して操作することで、手軽に作成した機能を使うことができます。 また、どうせ対話型処理を作るのであれば、いくつか便利な機能も組み込みたいです。そこで、表を自動整形してくれるオートフォーマット処理や、複数のクエリをリストから選んで実行できるようにしたいと思います。 対象読者 Excel VBAを使ってマクロ(プログラム)を作ったことのある人、Visual Basicが使える人が対象です。必要な環境 Excel 2000/2002/2003/2007が使用できる環境。マクロ実行時の注意事項 Accessのデータベースファイル「msdata.mdb」を、マクロを実行するブックと同じフォルダにおいてください。ユーザーフォームで印刷操作を行う

    hiroponz
    hiroponz 2007/05/13
    フォームから作表の指定などをできるようにカスタマイズする
  • VBAでデータベースからの作表・印刷処理を自動化する 1:CodeZine

    ユーザーフォームでクエリの選択やオートフォーマット・印刷設定を行い印刷する、オリジナル印刷ダイアログを作成する はじめに データベースからデータをワークシートに落としたとき、1ページに収まるのかどうか、何ページになるのか気になりますよね。また、落とし込んだデータを何とかページ内に収めるような操作を自動化できたら便利です。 そこで、Excel VBAで「ページ設定」と「印刷」の2つの操作を組み合わせて、データベースから取得したデータの作表・印刷処理を自動化するテクニックを紹介します。 1つはコードですべての処理を自動実行する方法、もう1つはユーザーフォームを使用し、いくつかの設定を選んで印刷を行う方法です。 なお、Excel 2007でも動作することを確認しています。対象読者 Excel VBAを使ってマクロ(プログラム)を作ったことのある人、Visual Basicを使える人が対象です。必

    hiroponz
    hiroponz 2007/05/08
    accessとexcellで帳票を印刷するサンプル
  • CodeZine:Rubyを使ってWebアプリケーションの脆弱性を早期に検出する(Web, テスト, Ruby)

    Scaffoldで生成したアプリケーションは出発点にすぎず、自立した完成品のアプリケーションではありません。このため、開発者がプロジェクトに適した形になるように手を加える必要があります。しかし、毎回似たような修正を行うのであれば、生成した時点でその修正が反映されている方が、より生産性も向上します。そこで稿では、Scaffoldをカスタマイズする方法を紹介します。

  • 「ちょっと待て」 真・MySQLのクエリを最適化する10のTips:CodeZine

    Jaslabs: High performance phpで紹介された「MySQLのクエリを最適化する10のTips」に対して、反論している人がいる。ブログ「20bits」のJesse氏だ。彼は「10 Tips for Optimizing MySQL Queries (That don’t suck)」というエントリーで、Jaslabs氏の記事は適切でないとしている。 Jesse氏の経験によれば、SQL最適化で最も重要なことはSQLDBの基をしっかりと理解することであり、60%がこれで解決するという。残り35%はDBやクエリの特殊な性質に対する対処であり、最後の5%で発想の転換などを求められる。Jaslabs氏はここにばかり力を入れており、それはまったくもって時間の無駄だと述べている(Jesse氏は「SQL_SMALL_RESULTなんて、生まれてこの方使ったことすらない」とまで言

  • [PHPプロ!] MySQLのクエリを最適化する10のTips:CodeZine

    Jaslabs: High performance phpMySQL のクエリを最適化するための10のTipsが公開されています。explainを利用した一般的な方法から、SELECT・INSERTのクエリオプションを使用するような方法まで紹介されています。MySQLクエリの速度低下にお悩みの方は一度読んでみるとよいでしょう。 1. explainコマンドの使用 explainコマンドはクエリでどのインデックスが指定されているのか、などの情報が取得できます。 explainコマンドの実行結果を見ながらインデックスが使用されるようにクエリを修正したり、インデックスの追加を行います。詳細についてはMySQL 4.1リファレンスマニュアルを参照してください。 2. 権限の簡易化 テーブルの権限が複雑になればなるほど、オーバーヘッドが大きくなります。GRANT文で設定された権限が単純であ

  • Google Notebook日本語版公開、Webサイトをブラウザ上で瞬速コピペ:CodeZine

    Googleは29日、Google Notebookの多言語対応を行い、日語にも対応した。Google NotebookはGoogleが提供するWebサービスで、無償で利用することができる。 Google Notebookはオンライン上で保存できるメモ帳のようなもの。テキストの太字や文字色変更、リンクなど、リッチテキストライクな操作ができる。このサービスの大きな特徴が、閲覧しているWebサイトのコピー&ペーストが容易にできるようになる点だ。こちらは以下の手順で行う。 1.拡張機能をインストール Googleノートブックのマイページにログインできるようになったら、こちらから拡張機能をダウンロードし、インストールする。 2.ブラウザを起動 インストールが終了したら、ブラウザを起動する。するとステータスバーにGoogle Notebookアイコンが表示されるようになる。このアイコンをク

    hiroponz
    hiroponz 2007/04/01
    webページの切り抜きが簡単にできる
  • Windowsフォームの入力チェックを効率化する:CodeZine

    前回は、実行時にユーザーの手で単一行表示から、複数行表示にレイアウトを変更する形で、エンドユーザーを巻き込んだ検索画面のモックアップを作成する手順を紹介しましたが、今回はそれに続き受注画面のモックアップを作成します。受注画面は、新規データの入力と既存データの表示が行えるものとし、今回もまた、実行時にユーザーの手でレイアウトを変更していただきます。 最近のWeb開発は、次々と新しいテクノロジーやコンポーネントが登場し、ますます使い勝手がよく、見栄えのするWebページが作れるようになりました。Infragistics社のNetAdvantage for .NETも、.NET環境で動作する洗練されたUIを提供する上で便利なさまざまなコンポーネントを統合していますが、このたび「2008 Volume 1 日語版」にバージョンアップし、新しいコントロールが追加されています。今回は、その中からWeb