2013-01-01から1年間の記事一覧

H2Databaseを使用してみた

なんとなく軽量データベースを使用したくなったので、いじってみた。 使用するまでが一瞬、そして操作も簡単、組み込みも簡単と非常に手軽でした。 H2Databaseとは H2 Databaseとは、Javaプラットフォーム上で動く、ACIDリレーショナルデータベース。オープ…

Unix上のMYSQLで大文字でTableを作成後にlower_case_table_names=1とした場合に、大文字のTableが検索できない。

概要 OSがUnixかつ大文字でTableを作成後に大文字小文字を区別しないとした場合に、大文字のTableが検索できなくなります。(RedhatとCentOSで現象を確認、Windows7で発生しないことを確認) 詳細 MySQLでは大文字小文字の区別を行うかどうかは「lower_case_…

Tomcat6で動作していたJSPでTomcat7では例外が投げられる事がある

先日Tomcat6で動作していたアプリケーションをTomacat7で動作確認した所、いくつか例外が発生したのでメモ。 現象 JSPを表示した際に「org.apache.jasper.JasperException」が発生する。 私が遭遇した現象は2つ Attribute qualified names must be unique wi…

糞コードを見て思った事

先日、こんな糞コードをみつけた。 String hoge = ""; if (!a.equals(b)) { hoge = b; } else { hoge = a; } 最初見た時に違和感を感じたのでよく見たらこれは簡潔に書ける。 String hoge = b; 一応解説。 上記コードは「!」があるからわかりくい。*1 「!」…

ユニットテストの並列実行

経緯 現場でのJunit実践入門の読書会にてユニットテストの並列実行について話題になったので調べてみました。 JUnit、Ant、Maven、Gradleでの実現方法をメモ。全てのコードはgithubに置きましたので興味のある方はどうぞ。(今更ながらgithubに初push) 尚、…

Cobertura、Ant、Jenkinsでコードカバレッジを取得する方法

JenkinsでAntを使用してビルドする際に、Coberturaを使用してコードカバレッジを取得しようというお話。 GradleやらMavenが主流みたいで、日本語ドキュメントがあまりみつからなかったので書いてみます。*1 前提 Jenkinsは既に動作している Jenkins上でAntを…

Gebを使ってみた。

G*系の勉強会で何回か聞いたことあるので名前は知っていましたが、使ったことはなかったのでとりあえず使ってみました。 資料が少なすぎる、あっても古くてそのままじゃ使えない、色々わかってる前提で書かれてる等々、苦労はありましたがなんとか動作する所…

ランダムクラスを使用してhello worldを出力する件の解説

最初に Twitterで↓URLが凄いというのが流れていました。 java - Why does this code using random strings print "hello world"? - Stack Overflowコードを実行すると確かに「hello world」と表示される。 実行時に渡している数値を使用して乱数列を作成する…

Spockを使ってみた

G*界隈でよく聞くテスティングフレームワークのSpockを使ってみました。 名前や記事は良く見てたのですが、JUnit自体を殆ど使用していなかったので実践はしていませんでした。 が、JUnitをいくらか勉強してみたら興味がわいたので試してみた次第。 前提 IDE …

httpstatus コマンドで、HTTP のステータスコードをすばやくしらべる!(Groovy版)

一般的な Web Programmer ならば、HTTP Status code はすべて暗記していると聞きました。しかし、僕は初心者なので、なかなか覚えきれていないので、HTTPのステータスコードをさがすのに便利なツールを用意しました。 http://blog.64p.org/entry/2013/02/21/…

パラメータ化テストを行うか否か迷った話

テスト対象メソッド 下記のようなメソッドの引数に入出力のファイルPATHを受け取り、ファイル出力するメソッドのテストを作成した時のお話。 割りと紆余曲折があったのでメモがてらまとめます。 コードは書きやすいのでGroovyで記述していますが、Groovy知ら…

社内「JUnit実践入門」読書会第二回まとめ #junitbook

前回に引き続き、第2回目の「JUnit実践入門」読書会を開催しました。 社内「JUnit実践入門」読書会第一回まとめ #junitbook - 旧山pの楽しいお勉強生活今回は参加者は少なかったですが、本格的なJUnitの内容になってきたこともあり充実した読書会になったと…

groovyのleftShift(<<)で文字コードを指定する

前置き 私はGroovyをプロダクトに使えるような感じではないので、ちょっとしたツール作成やら、ちょっとした作業を自動化する時に主に使っています。 こういう用途だとファイルに出力することが結構多いので、「 new File("c:\\work\\output.txt") << "あう…

groovyでenumをネストするようにするとコンパイルが終わらない場合がある。

まともやenumにハマりました。 前回ハマったのはこれ → enumの抽象メソッドはgroovyでサポートされてない? #jggug #q - 旧山pの楽しいお勉強生活 現象 ↓のコードはコンパイルが終わりません。 public enum EnumSample { HOGE() public enum NestEnum { HUG…

MarkupBuilderで要素の定義を別で定義したい。

少しタイトルが変わってますが、MarkupBuilderで要素の作成を別メソッドにする方法がわからない。 - 旧山pの楽しいお勉強生活の続き。前回、delegateを使用することでクロージャを外部に定義する方法がわかった。 import groovy.xml.MarkupBuilder def xml …

JVMはDNSキャッシュを保持している

はじまり Tomcat上で動作しているWebアプリケーションで、設定しているホストに通信ができなくなったとの問い合わせ。 聞いてみたら、hostsに書かれていたIPアドレスを変更したとのこと。 状況 サーバ[localhost]上のWebアプリケーションは「example」という…

社内「JUnit実践入門」読書会第一回まとめ #junitbook

社内で「JUnit実践入門」読書会を開催したのでそのまとめです。 読書会初回、私がこのような催しを開催するのも初だったのですが、5人も参加していただけました。今回の対象範囲は本当に基本的な部分だったので、私がそれなりにまとめた資料を読み進めつつ参…

Windows7上のViretualBoxにCentOS5.8をインストールしてみた

概要 業務でLinux環境が必要になったが、既存の環境がいっぱいいっぱいかつ、事情によりローカルで管理したかったので仮想化して作成することにした。 仮想化のツールとしてはViretualBox、VMware、Virtual PCなどがあるようだが、違いがよくわからないので…

パラメータ化テストでの例外確認方法がわからない #junit #q

新年早々JUnitでテストを作成していたのですが、例外のテストがうまくできないことに気づいた。 (コードはjavaっぽく書いてますがgroovyで動作確認しています。) class ASample { public int method(int i) { if (i > 10 || i < 5) { throw new IllegalArg…

enumの抽象メソッドはgroovyでサポートされてない? #jggug #q

表題の通り。 groovyでenum書いててコンパイルできなかったのでメモ。 (構文ミスってるかと思って何度も確認したので。。。) 前提 javaではenumで抽象メソッドを定義することが可能です。 これにより、新たに値を増やした際に抽象メソッドの実装漏れを防ぐ…

2013年の目標

あけましておめでとうございます。 今年もよろしくお願い致します。1年を過ごす上で何かと指針となるので、目標というのはあった方が良いかと思います。尚、私は高い目標を立てて挫折するのが一番無駄だと思ってますので、難易度の高くない確実に達成できる…