タグ

2014年11月4日のブックマーク (7件)

  • Mybatisの動的SQLでちょっとハマったところ

    Mybatisを聞いたことない人に簡単に紹介すると、MybatiってのはO/Rマッピングフレームワークのひとつです。 XMLで動的なSQLの記述ができるので、複雑なSQLでも発行できて、なかなか便利に使わせてもらってます。 今回ハマったところ、というのがこのMybatisが持つ機能のひとつ、WHEREの動的組み立てに関するもの。 <where>というタグを使って、WHEREを組み立ててくれるのですが、組み立てられた条件文字列の先頭が、ANDやORで始まる場合、これを除去してくれる、なんていう機能を持っていたりします。 便利なのだけど、実はこの機能、落とし穴がある。 ANDやORで始まっていた場合にこれを除去する、と言ってもこの表現、実は正確ではない。 正確には、 「組み立てた条件文字列の先頭が “AND "や”OR ” で始まっていた場合、これを除去する」 となる。 つまり、 組み立てた条

    Mybatisの動的SQLでちょっとハマったところ
    masa8aurum
    masa8aurum 2014/11/04
    MybatisのWHEREタグの動作はちょっと変。 「組み立てた条件文字列の先頭が “AND “や”OR ” で始まっていた場合、これを除去する」。タブ文字は考慮されない。
  • Tera Termソースコード解説

    Tera Termソースコード解説 はじめに 必要スキル モジュール構成 ライブラリ構成 プラグインサポート 設定ファイルの読み書き セキュアプログラミング 古いバージョンのWindowsとの互換性維持 デバッグ手法 マルチスレッド DDEによるプロセス間通信 TTSSHによるSSHの設計と実装 マクロ言語の設計と実装 キャレット制御 シリアルポート バイナリ転送プロトコル はじめに 文書では、Tera Termのソースコードについて解説をします。解説対象とするソースコードはバージョン"4.58"(2008年2月現在)のものをベースとしています。 必要スキル Tera Termのパッケージに含まれるほとんどのプログラムは、C言語で記述されています。一部のコードはC++言語で、MFC(Microsoft Foundation Class)が利用されています。Windows特有の処理を行うた

    masa8aurum
    masa8aurum 2014/11/04
    TeraTermソースコード解説
  • テキストエディタ実装技術

    masa8aurum
    masa8aurum 2014/11/04
    「テキストエディタ実装技術」を読みたい
  • スタブとモックの違い

    スタブとモックの違いがようやく分かりました。一言で言うと、 スタブとはテスト対象の間接入力をテストシナリオに合わせて都合よく書き換えるためのもの。モックとはテスト対象の間接出力が正しいことを確認するためのもの。 です[1]。 間接入力、間接出力とはその名のとおりテスト対象の間接的な入力、出力のことです。例えば、サービスクラスをテストする場合を考えてみます。 boolean createService(Entity entity) というメソッドをテストする場合、メソッドの入力はentity、出力はtrue/falseです。 直接的な入出力はこれだけですが、サービスクラスからDaoの処理を呼び出す場合、その処理結果が間接的にサービスクラスに入力されます。同様にサービスクラスはDaoクラスを呼び出すという間接的な出力処理を行います。 実際のテストコードを使ってスタブ、モックそれぞれの使い方を考

    スタブとモックの違い
    masa8aurum
    masa8aurum 2014/11/04
    スタブとモックの違い
  • インフラストラクチャ自動化フレームワーク「Chef」の基本

    DevOpsというキーワードに関連して、「Chef」というツールの名前を聞いたことのある人も多いのではないでしょうか。この記事では、インフラにおける構成管理、展開作業を自動化するChefの構造および基的な使い方について解説します。 インフラストラクチャ自動化フレームワーク「Chef」 Chefは、物理、仮想、クラウドといったさまざまな大きさのインフラに対して、サーバやアプリケーションの展開を容易にするための自動化フレームワークです。 Chefの重要な要素の1つに「Infrastructure as Code」という概念があります。インフラをどのように構築し、維持するべきかという定義はRubyの文法で記述され、ソースコードのように扱うことができます。つまり、あたかもRubyでプログラミングをするように、インフラの構成管理をコードによって行えることがChefの利点の1つです。 自然言語による

    インフラストラクチャ自動化フレームワーク「Chef」の基本
  • PostgreSQL 9.2 でタイムゾーンのデフォルト値が変わった話 - mallowlabsの備忘録

    PostgreSQL 9.1 から 9.2 にバージョンアップすると postgresql.conf に timezone の設定を書かなかった場合のデフォルトが「ローカルタイムゾーン」から「GMT」に変わってて命を落とした… 2014-03-31 18:36:12 via web PostgreSQL のタイムゾーンをローカル時間に合わせるために、postgresql.conf の timezone の設定を 設定しない(デフォルト)運用にしていた。 今回、PostgreSQL 9.0 → 9.3 にバージョンアップをする際に、タイムゾーンの設定のデフォルト値が変更されていて、大変な目にあったのでメモしておく。 PostgreSQL 9.1 以前 postgresql.conf を以下のように設定すると、PostgreSQL のタイムゾーンは サーバのタイムゾーンと同じ になる。(tim

    PostgreSQL 9.2 でタイムゾーンのデフォルト値が変わった話 - mallowlabsの備忘録
  • PostgreSQL date() with timezone

    Basically what you want is: $ select starts_at AT TIME ZONE 'UTC' AT TIME ZONE 'US/Pacific' from schedules where id = 40 I got the solution from this article is below, which is straight GOLD!!! It explains this non-trivial issue very clearly, give it a read if you wish to understand pstgrsql TZ management better. Expressing PostgreSQL timestamps without zones in local time Here is what is going on

    PostgreSQL date() with timezone
    masa8aurum
    masa8aurum 2014/11/04
    datetime - PostgreSQL date() with timezone - Stack Overflow