タグ

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

  • GNU AWKでCSVファイルを楽々あつかう組込変数FPATと、関数のインダイレクト呼び出し

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    GNU AWKでCSVファイルを楽々あつかう組込変数FPATと、関数のインダイレクト呼び出し
    kenichiice
    kenichiice 2015/01/08
    「組込変数 FPAT を用いると、フィールド内にカンマが含まれている場合でも、次のようにきれいに扱うことができます。」
  • マルチスレッドを意識しないマルチスレッド・ライブラリ「Intel Concurent Collections」がおもしろい

    「Intel Concurrent Collections for C++」(CnC)とは 実際並列処理はややこしいしおっかないです。大きなキッチンで大勢のコックが包丁とフライパン振り回しているようなもので、ほっとけばしっちゃかめっちゃかになっても不思議じゃない。各人はそれぞれの役割に専念し、他人のふるまいを気にせず勝手に働きながらも全体としては統制のとれた動きを作り出さにゃなりません。mutexで排他制御したりjoinで完了を待ったり、さまざまな道具を駆使して統制のとれた動きを作り出しているのはプログラマであり、そこがいちばん難しく悩ましいところです。 C++,C#あるいはVB,Javaもそうですが、コードは原則的に並べた順に実行されます。 と書けば、まずf()、それが終わればg()、しかるのちh()の順で呼び出されます。たとえこの3つをどの順にやっても(あるいは同時にやっても)構わない

    kenichiice
    kenichiice 2013/09/04
    「この3つを魔法の箱にセットしてtagを投げ込めば、中のコビトさんが仕事をしてくれます。」
  • Java特有の冗長なコードを簡潔に記述する「Lombok」

    Javaは言語仕様上の制約により、ボイラープレートコード(自明だが省略できないお決まりのコード断片)がいくつかあります。例えば、メンバ変数を読み書きするだけのgetterメソッドやsetterメソッドがこれにあたります。Lombokを使えば、これらJava特有の冗長なコードを、見やすく簡潔なものにすることができます。記事ではLombokを利用して、ボイラープレートコードをシンプルに記述する方法について解説します。 はじめに 今やJava開発に必要不可欠となったものの一つに、IDEの存在があります。例えばEclipseではメンバ変数さえ定義すれば、getter/setterの自動生成や、equalsメソッドやhashCodeメソッド、toStringメソッドなどの自動生成などさまざまな場面でコーディングを強力にサポートしてくれます。 これは大変便利な機能ですが、裏を返せばJavaの言語仕様

    Java特有の冗長なコードを簡潔に記述する「Lombok」
  • サーブレット3.0の新機能

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

  • Javaで軽快に使える「軽量フレームワーク」特集 ~小さなライブラリ1つで動くStripes Framework(1)

    はじめに この連載も、回を追うに従い取り上げるフレームワークも大掛かりなものとなり、「どこが軽量だ?」とお叱りを頂戴することも多くなってしまいました。しかし今回は久々に、自信を持って「軽量です!」とオススメできるものです。 「Stripes Framework」(以下、Stripes)は、Tim Fennellが中心となり開発が行われているフレームワークです。昨今のJavaフレームワークというと、圧縮ファイルを展開すると無数のライブラリファイルが並び「これ、全部入れないといけないのか?」とげんなりしてしまうことが多くなってしまいました。しかしこのStripesは、たった1つのJarだけで構成されている、非常に小型軽量なフレームワークです。あまり知られていないようですが、実は1.0がリリースされたのは5年以上も前という、意外と歴史のあるフレームワークなのです。 対象読者 Javaで手ごろなフ

    Javaで軽快に使える「軽量フレームワーク」特集 ~小さなライブラリ1つで動くStripes Framework(1)
    kenichiice
    kenichiice 2010/07/07
    「しかしこのStripesは、たった1つのJarだけで構成されている、非常に小型軽量なフレームワークです。」
  • SEXYHOOKで始めるテスト とある関数の接合部(1)

    はじめに テストを書いていると、一時的に関数の挙動を書き換えたいときがあります。 time()がハードコードされている関数をデバッグしたい時や、稀にしか失敗しないAPIの失敗をエミュレーションしたい時などです。これらはテストの自動化の妨げになっていました。 拙作のSEXYHOOKを利用すると、一時的に関数の挙動を書き換え、失敗を返すことが可能になります。 稿では、SEXYHOOKの使い方について説明します。 対象読者 C++でソフトの開発を行い、テストを書きたいエンジニア SEXYHOOKはC++で使うことを想定しています。 必要な環境 Windows Microsoft Visual C++ 6/2003/2005/2008 Linux GCC 4.x(推奨) / 3.x 現状では32bitバージョンのみのサポートになります。SEXYHOOKはデバッグビルドのみで利用できます。 SEX

    SEXYHOOKで始めるテスト とある関数の接合部(1)
    kenichiice
    kenichiice 2010/02/23
    「拙作のSEXYHOOKを利用すると、一時的に関数の挙動を書き換え、失敗を返すことが可能になります。」
  • RubyのCursesを使ってコンソールを制御する:CodeZine

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    RubyのCursesを使ってコンソールを制御する:CodeZine
  • Oracle JDBCドライバにオブジェクトの自動クローズ処理を追加する

    はじめに ReflectionパッケージのProxyを利用すると、指定したインターフェイスに対して、そのインターフェイスを実装したクラスとインスタンスを動的に作ることができます。 稿では、Oracle JDBCドライバの制約をProxyを利用して回避する方法を示すことで、Proxyの具体的な利用方法を説明します。 Oracle JDBCドライバはJ2SEのAPI規定と異なり、GCによるConnectionやStatementの自動クローズを行いません。そのため、これらのJDBCオブジェクトを自動的にクローズする他のJDBC実装用のコードを流用するとリソースリークの原因となります。これを回避するには、アプリケーションがすべてのStatementなどのオブジェクトをクローズするか、またはミドルウェアなどでアプリケーションが作成したすべてのJDBCオブジェクトを保持しておき、なんらかのタイミン

    Oracle JDBCドライバにオブジェクトの自動クローズ処理を追加する
    kenichiice
    kenichiice 2009/07/09
    java.lang.reflect.Proxyの紹介記事。「Oracle JDBCドライバはJ2SEのAPI規定と異なり、GCによるConnectionやStatementの自動クローズを行いません。」
  • パーソナルソフトウェアプロセス(PSP)実践講座 ~第1日 自分の生産性・品質を算出する

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    パーソナルソフトウェアプロセス(PSP)実践講座 ~第1日 自分の生産性・品質を算出する
  • Webサイトの制作/運用の効率化を図る 「ガイドライン策定」のすすめ(後編)

    連載では、Web標準のメリットを最大限に生かすことをテーマに、仕様書には書かれていない部分を中心に取り上げ、実際のWeb制作現場で起こり得る問題について、解決の糸口をたらしていきたいと思います。連載第2回目となる今回のテーマは、前回に引き続き、制作/運用時の指針となる「ガイドライン策定」です。前回紹介しきれなかった「CSSガイドライン」、その他のドキュメントについて解説していきます。 はじめに 連載では、Web標準のメリットを最大限に生かすことをテーマに、仕様書には書かれていない部分を中心に取り上げ、実際のWeb制作現場で起こり得る問題について、解決の糸口をたらしていきたいと思います。 連載第2回目となる今回のテーマは、前回に引き続き、制作/運用時の指針となる「ガイドライン策定」です。前回紹介しきれなかった「CSSガイドライン」、その他のドキュメントについて解説していきます。 対象読者

    Webサイトの制作/運用の効率化を図る 「ガイドライン策定」のすすめ(後編)
    kenichiice
    kenichiice 2009/01/14
    「CSSガイドライン」など
  • デザインパターンの使い方: Interpreter

    Interpreterパターンの例 GoFの『オブジェクト指向における再利用のためのデザインパターン』では、Interpreterパターンは基的にCompositeパターンと同じもので、その目的が違うだけだと紹介されています。Compositeパターンから結果として得られる階層構造が文法のようなものである場合、それはInterpreterパターンであると言えます。実際のところ、Compositeパターンのときに作成した例は、Interpreterパターンの実装例としても使えます。そういうわけで、稿ではこれ以上の説明は必要なさそうです。 しかし、ここで終わるわけにもいきません。というのは、開発者の皆さんにInterpreterパターンを理解してもらうのに役立つ、ちょうど良い例がほとんど紹介されていないからです。稿の例は、完璧な例ではないかもしれませんが、「interpreter des

    デザインパターンの使い方: Interpreter
    kenichiice
    kenichiice 2008/12/04
    「今回は、単純なブール言語をサポートするインタープリタの作成を目標にします。」
  • Java/JRuby開発者のためのセマンティックWeb入門

    セマンティックWebは、フォーマット/スキーマの異なる複数の異種ソースに含まれる情報を標準フォーマットに変換せずにそのまま利用できるようにするものです。JavaJRubyで、セマンティックWebアプリケーションの開発に一歩踏み出してみませんか? はじめに 複数の異種ソースに含まれるデータを全体的に統合して利用すること、そこにセマンティックWebの基的な考え方があります。RDF/RDFSやSPARQLクエリ言語などのセマンティックWebテクノロジーを用いて異種ソースのデータを統合して利用するという方法には、標準的なリレーショナルデータベースを用いる方法と比べていくつかのメリットがあります。 Resource Description Framework(RDF)では述語(predicate)でデータオブジェクト間の関係を定義し、RDFで記述したRDFスキーマ(RDFS)によって知識表現とオ

    Java/JRuby開発者のためのセマンティックWeb入門
    kenichiice
    kenichiice 2008/11/06
    「RDFストレージとRDFS推論、それにSPARQLクエリの実行に関する部分についてはSesameライブラリを利用し、」
  • net-snmpについて一覧

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    net-snmpについて一覧
  • ApacheModuleでWebアプリケーションをつくろう

    1.はじめに Webアプリケーション開発の現場で使用されている開発言語には、JavaPerlPHP、最近であればRubyPythonなどがあります。この分野ではC言語も、CGIによるWebアプリケーション開発で旧来から用いられていますが、最近の開発者にはあまり馴染みがないかもしれません。当時の新技術であったJavaと比較して、あまりにも遅い結果が出ていたからとも言われています。 しかし、Webサーバの「Apache」、データベースの「PostgreSQL」「MySQL」、OSの「Linux」など、各所でオープンソースソフトウェア(OSS)の開発言語には、依然としてC言語が多く用いられています。このようにC言語は、Webアプリケーション開発の現場で使われるケースは減ったものの、現在でも重要な開発言語の一つです。 そこで今回は、Apache 2.2のmod_dbdで実装された「データベー

    ApacheModuleでWebアプリケーションをつくろう
  • 作って覚えるRuby再入門一覧

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    作って覚えるRuby再入門一覧
    kenichiice
    kenichiice 2008/10/20
    「RubyとCursesを使ったコンソールテキストエディタ」
  • オープンソースC++用クラスライブラリPOCO活用講座一覧

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    オープンソースC++用クラスライブラリPOCO活用講座一覧
  • BoostでC++0xのライブラリ「TR1」を先取りしよう一覧

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    BoostでC++0xのライブラリ「TR1」を先取りしよう一覧
  • pthreadについて一覧

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    pthreadについて一覧
  • 【RubyKaigi'08】詳細レポート : 多様化するRuby(続):CodeZine

    kenichiice
    kenichiice 2008/06/27
    「Rubyistであれば、or、and、notの3つの演算子を利用しないものだが、」
  • 「Google Collections Library」でJavaのコレクションを補完する:CodeZine

    はじめに 何年も前のことですが、私が初めてJavaに興味を覚えた理由の1つは、Javaプラットフォームに標準でコレクションライブラリが組み込まれていたからでした。当時、C++の世界ではまだSTL(Standard Template Library)が定着しておらず、開発者たちは適当なコレクションライブラリを購入して利用するか(Rogue Waveが流行っていました)、自分の手でライブラリを書くしかありませんでした。正確な数は忘れましたが、私自身も、さまざまな目的でさまざまな種類のプリミティブやオブジェクトの連結リストを実装しました。さらに、もっと複雑なコレクションや平衡2分探索木、ハッシュテーブルなども自分で実装しました。そのようにしてソフトウェア工学の原理を絶えず意識することは決して無駄なことでありませんでしたが、生産性を考えるとそうとばかりも言えませんでした。 しかし、Javaによって

    kenichiice
    kenichiice 2008/04/22
    「これはJavaにおけるジェネリックスの実装上の抜け穴を突いたもので、補助クリエータnewHashMapに型シグニチャを渡すことは実際には必要ないのです。」