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

2013年のふりかえり

昨年に引き続き、今年をふりかえってみたいと思います。仕事の感想はブログだと書きにくいので、それ以外の部分で。ただのメモみたいなものですが。 書籍 購入した書籍のリストです。 JBoss Enterprise Application Platform 6 構築・運用パーフェクトガイド…

レガシーテストコード改善ガイド #TddAdventJp

TDD

はじめに このエントリーは、TDD Advent Calendar 2013 - Qiita [キータ]の参加エントリーです。前日のエントリーは、@PoohSunny(swimming_pooh)さんによる「2013年のTDDイベントをまとめてみた」でした。今回が初のAdvent Calendar参加になります。どうぞよ…

Replica Setとfluent-plugin-mongoでハマった話

久しぶりのブログになってしまいました。リハビリも兼ねて、手短なネタでも書こうと思います。Advent Calendarではないですが、FluentdとmongoDBの話です(ちょどブログをサボっていた時期はNode × mongoDB × Fluentdを組み合わせたアプリケーションの開発な…

Gradleのチートシート

以前Twitterでつぶやいたのですが、Gradleのチートシートが欲しかったので、自分で作ってみました。 ソースコード https://github.com/tq-jappy/Gradle-CheatSheet ダウンロード 内容はもっと洗練させていきたいですが、ひとまず以下に公開します。https://g…

GlassFish Users Group Japan 勉強会 2013 #1

久しぶりの勉強会エントリですが、GlassFish Users Group Japan 勉強会 2013 #1に参加して来ました。勉強会の内容は、サブタイトルの「Java EE 7リリース記念・集中勉強会」の通り、先日リリースされたJava EE7の機能についての紹介がメインでした。個人的な…

Gradleを使ったWebアプリケーションのさくさく開発(環境ごとの設定ファイル管理)

ちょうどキクタローさんが「Challenge Java EE ! - maven-war-pluginで環境ごとの設定ファイルを管理してみた」を書かれていたので、便乗してGradleでやってみようと思いました。 前置き Gradleで設定情報を外出しして環境ごとに切り分ける方法については、…

Gradleを使ったWebアプリケーションのさくさく開発(Herokuデプロイ編)

久しぶりのGradleシリーズです。これまで作ったアプリケーションをHerokuにデプロイしてみます。昔はRailsアプリケーションに限っていたようですが、現在のHerokuではベータ的にGradleもサポートされています。 Q: Does Heroku support Gradle builds? A: Ye…

ページオブジェクトパターンとマッパーを使ったメンテナンスしやすいSeleniumテストケース

Selenium Webdriverを使ったテストで、前回のスローテストと別に起きる大きな問題が、テストコードのメンテナンス性の悪さでした。SeleniumのJUnit4テストコードを作るために、今までやっていたことは以下のような方法です。 Firefoxの「Selenium IDE」プラ…

WebDriver(Firefox)の起動・停止を抑制してスローテスト問題を緩和する

以前からSelenium WebDriverを使ってWebアプリケーションのテストを行なっているんですが、ずっとつきまとっていたのがスローテスト問題(テストに時間がかかる!)。スローテスト問題は、テストの並列化やテスト数の削減などの解決策とともに随所で議論され…

CoffeeScriptとKnockout.jsのサンプル

JavaScriptのMVVMフレームワーク「Knockout.js」を使ってみました。 Knockout.jsを選んだ理由 深い理由はないですw双方向バインディングがイメージしやすく、ライブラリ自体が軽量で他のライブラリに依存しないので、シンプルでわかりやすい印象を受けたか…

CoffeeScriptとJSフレームワークによるHTML5 Canvasアプリ(2)

アイテム(○、△、□、コネクタ(不完全)、直線、曲線)の追加ができるようにしてみました。フレームワーク使わずに野良MVC(MVVM?)でやってますが、今のところ楽しいです。Canvasはともかく、上のツールボックスはKnockout.jsとかを使うとうまく扱える…のかな…

Sublime Text 2でよく使う基本キーバインド

CoffeeScriptで開発している時に覚えたものから。 Ctrl ] インデント Ctrl [ アンインデント Ctrl / コメントアウト Ctrl + フォントを大きく Ctrl - フォントを小さく

CoffeeScriptとJSフレームワークによるHTML5 Canvasアプリ

諸般の事情により、今までは少し遠目で見ていたCoffeeScriptに踏み込んでみることにしました。とりあえず慣れとか開発のノウハウをためるのに、行ったことをメモ的に書いていこうかなと。 目標 簡単にWebで使えるマインドマップツールを作るやりたいことに近…

Gradleを使ったWebアプリケーションのさくさく開発(マイグレーション編)

さくさく開発にかかせないのが、データベースのマイグレーション。今回は、Flywayを使って、GradleのタスクとしてFlywayのマイグレーションが実行できるようにします。FlywayはJava向けのDBマイグレーションフレームワークの一つで、個人的にはシンプルで扱…

Gradleを使ったWebアプリケーションのさくさく開発(Jenkins連携編)

今回はGradleをJenkinsで使う場合の話です。Jenkinsを使って前回作成したプロジェクト(gradle-sample-webapp)のビルドを行います。 リポジトリからソースコードを取得 ユニットテストの実施 war作成 Javadoc作成 Jenkinsにプラグインをインストール Jenkin…

Gradleを使ったWebアプリケーションのさくさく開発(war作成とJUnit編)

時間とモチベーションに余裕のあるうちに行けるところまで調べていきます。というわけで、今回はwarの作成と、Jettyでの起動確認。 コード 需要はないと思いますがGitHubに公開します(EclipseからGitを利用するのに妙にハマりました…。Gitはあまり使い慣れ…

RHEL4でのdaemon起動スクリプトの注意点

/etc/init.dにおく起動スクリプトを書く時の注意点。RHEL4の場合、/etc/init.d/functionsにあるdaemonシェル関数でpidfileオプションが使えないので、注意が必要です。startに daemon --pidfile=${pidfile} "${cmdline} &" のように書いてしまうと、「Usage:…

Gradleを使ったWebアプリケーションのさくさく開発(トラブルシューティング編)

さくさく開発を目指しているのに、トラブルシューティングに時間をとられるのもいかがなものかと思いつつ…。 Build Gradle Model for xxx 昨日作ったgradle-sampleプロジェクトが、今日Eclipseを起動した時にタスクが何も実行できなくなってしまいました…。…

Gradleを使ったWebアプリケーションのさくさく開発(セットアップ編)

IvyやMavenもまともに使ったことはないですが、Gradleを使いはじめました。 目標と前提条件 Gradleがどこまで面倒見てくれるかは何も考えずに立てた条件がこちらの通りです。 Jettyで動作する実行可能なWAR(java -jar sample-app.war -p 8080みたいな形で)…

Redmineでのエラー「リポジトリに、エントリ/リビジョンが存在しません。」

Redmine設定のピンポイントなネタです。日常的にRedmineを使っていくと、バージョン管理システム(VCS)との連携なしでは考えられなくなってくるので、エラー「リポジトリに、エントリ/リビジョンが存在しません。」なんてのは運用上、致命的。GitやMercurial…

Developer Migration 2013

Developer Migration 2013に参加しました。有用な話が多々聞けてとても充実したイベントでした。 開発者は仕事でリーダブルなコードを書けるのか?(株式会社クリアコード 須藤 功平さん) プレゼンメモ: コードは書いた人の意図を語る→書いた人の意図がわ…

アジャイル開発とスクラム 顧客・技術・経営をつなぐ協調的ソフトウェア開発マネジメント

デブサミで購入した本ですが、読み終えました。買ったきっかけは、エクシード千葉さんの「Opsから挑むDevOps」でテンションが上がって、その中で参考文献として挙げられていたからです。単行本でも中身は大変濃く、よくまとまっている本だと思いました。自分…

Developers Summit 2013に参加してきました。

目黒雅叙園で2月14と15日に開催されたDevelopers Summit 2013(通称デブサミ)に行ってきました。発表者、参加者、スポンサー、スタッフの皆さま、おつかれさまでした。聞いたセッションは以下の9つ。内容未定の時点で申し込んだとかも含まれてますが、概ね…

IndexErrorを起こさないArray#transpose

Rubyの基本的なメソッドの話題です。Rubyで配列の配列を行列と見立てて、転置行列を求める場合、Array#transposeを使いますが、このメソッドは、各要素数が異なるとIndexErrorが発生します。これを、要素数が異なっていても、後ろの要素にnilが入ってるとみ…

Java ♡ HTML5 Nightに行ってきた。

先日、Oracle本社にて開催されたJava ♡ HTML5 Nightに行ってきました。JJUGとhtml5j.orgの初の共催イベントらしく、とてもためになる内容で、面白かったです。主催、スタッフ、参加者の皆さま、おつかれさまでした。資料は公開されるのかどうかわからないで…

SinatraをJerseyと比べながら試してみた

Ruby on Railsのintegrationテストを真面目に書いていたら挫折しそうになったので、色々と寄り道しながら調べていたら*1、Ruby on Rails以外のRuby製WAFとしてSinatraを知ったので、試してみました。簡単なRESTfulアプリケーションを作りたいという時の選択…

rbenvとVirtualBoxで0から作るRuby on Railsアプリ開発環境

2013年最初のエントリは、rbenvとVirtualBoxでRuby on Railsアプリの開発環境を作る手順です。入門編。簡単にきっかけなんかを書きます。今の仕事では、Railsプロジェクト用の開発サーバ(CentOS)が存在し、そこに各メンバーがログインして、開発するスタイル…