タグ

2013年3月14日のブックマーク (20件)

  • Arquillianで結合テストをしてみる - Splash of waters - 2nd. Season

    単体テスト(JUnit)では起きない(=パスする)けど、システムテストで見つけるのでは遅すぎる、そんな類のバグを結合テストで検出したい。ってことで、Arquillianを使うことにした。 毎回ちまちまとやってる同じような回帰テストを継続的に自動実行できるようになればいいかなと。まだ使い始めだけど、チュートリアルから触ってみたメモを述べておく。 Getting Startedで紹介されているWeld EE 1.1では、@StatelessのついたEJBはDIできない。実際に使う場合のEJBのテストは素直にJBoss ASとかGrassfishを使おう。 JBoss AS5.1.0.GAでは、「Embedded」のコンテナは使えない。結合テストをさくさくと実施するなら、予めASをたちあげておいて、「Remote」を使うか、「Managed」を使おう。 ArquillianはGradleやAnt

    Arquillianで結合テストをしてみる - Splash of waters - 2nd. Season
  • リソースクラスにGuiceでオブジェクトをDIする(Jersey版) - Splash of waters - 2nd. Season

    JerseyとGuiceの連携の例。 Jerseyを使うとJAX-RS準拠のRESTfulなHTTPサービスを作ることができる。 この時リソースクラス(クラス宣言に@Pathをつけたクラス)は、自動でHTTPリソースとして登録されるので、特別インスタンスを取得することはない。ただ、DIコンテナとしてGuiceを使っている場合、リソースクラスはGuiceの管理下におけない。そんな場合にも、ビジネスロジックやStringなどのインスタンスをリソースクラスにDIする時のやり方についてまとめておく。 準備 Jerseyの各種jarファイルと、Guiceのjarファイル(今回はguice-3.0-no_aop.jarとjavax.inject.jarのみ)をビルドパスに通しておく。 DIなしの場合 まずはメインクラス。 package sample; import com.sun.jersey.ap

    リソースクラスにGuiceでオブジェクトをDIする(Jersey版) - Splash of waters - 2nd. Season
  • Gradleを使ったWebアプリケーションのさくさく開発(Jenkins連携編) - Splash of waters - 2nd. Season

    今回はGradleをJenkinsで使う場合の話です。 Jenkinsを使って前回作成したプロジェクト(gradle-sample-webapp)のビルドを行います。 リポジトリからソースコードを取得 ユニットテストの実施 war作成 Javadoc作成 Jenkinsにプラグインをインストール Jenkinsの動いているところまでは終わっているものとして、Jenkinsに必要なプラグインをインストールしていきます。普段の開発でJenkinsを立てる場合(良い事ではないですが)無計画に必要なものを入れてごった煮にしてしまってるのですが、今回もそこは改善していません…。 赤字で書いているのが今回の実施に必須なもの、それ以外は静的解析のために今後使いそうなもの、普段のプロジェクトでよくインストールしているものになります。GradleとGitのプラグインだけが必須ということになりますね。 Sta

    Gradleを使ったWebアプリケーションのさくさく開発(Jenkins連携編) - Splash of waters - 2nd. Season
  • Gradleを使ったWebアプリケーションのさくさく開発(war作成とJUnit編) - Splash of waters - 2nd. Season

    時間とモチベーションに余裕のあるうちに行けるところまで調べていきます。というわけで、今回はwarの作成と、Jettyでの起動確認。 コード 需要はないと思いますがGitHubに公開します(EclipseからGitを利用するのに妙にハマりました…。Gitはあまり使い慣れていないので余計なファイルが混ざってるかも…) https://github.com/tq-jappy/gradle-sample-webapp アプリケーションを作成する 作るwarはとりあえず何でもよいので、基的なGETでメッセージを返すHelloServletを含むwarにします。 作ったファイルは以下の3つ。 sample.servlet.HelloServlet.java(src/main/java) HttpServletを継承して、Get時にリソース内のファイル"hello.txt"を読み込んで、中身をそのまま

    Gradleを使ったWebアプリケーションのさくさく開発(war作成とJUnit編) - Splash of waters - 2nd. Season
  • Gradleを使ったWebアプリケーションのさくさく開発(トラブルシューティング編) - Splash of waters - 2nd. Season

    さくさく開発を目指しているのに、トラブルシューティングに時間をとられるのもいかがなものかと思いつつ…。 Build Gradle Model for xxx 昨日作ったgradle-sampleプロジェクトが、今日Eclipseを起動した時にタスクが何も実行できなくなってしまいました…。新規にGradleプロジェクトを作ろうとしてもやっぱりダメ… Address family not supported by protocol family: 接続 Could not fetch model of type 'EclipseProject' using Gradle distribution 'http://services.gradle.org/distributions/gradle-1.2-bin.zip'. 参考にしたサイト。 ここでEclipseのメニューバー[Window]→[

    Gradleを使ったWebアプリケーションのさくさく開発(トラブルシューティング編) - Splash of waters - 2nd. Season
  • Gradleを使ったWebアプリケーションのさくさく開発(セットアップ編) - Splash of waters - 2nd. Season

    IvyやMavenもまともに使ったことはないですが、Gradleを使いはじめました。 目標と前提条件 Gradleがどこまで面倒見てくれるかは何も考えずに立てた条件がこちらの通りです。 Jettyで動作する実行可能なWAR(java -jar sample-app.war -p 8080みたいな形で)を作成したい。 もちろん、WARなので、そのままデプロイしても使える。 WARの作成、テスト(ユニットテストや性能テストなどカテゴリ別に指定出来れば理想)、デプロイは最低限タスクとして実行できるようにする。 Checkstyle, FindBugs, Coberturaを使った静的解析結果をレポートする。結果はJenkinsから参照できるようにする。 開発はEclipse 3.7。 依存するライブラリには、Mavenリポジトリに存在しない独自jarも含む。 非Java EE。 とりあえずこんな

    Gradleを使ったWebアプリケーションのさくさく開発(セットアップ編) - Splash of waters - 2nd. Season
  • Grails2.3でのエンコーディング・エスケーピング・XSS対策の向上(MLのメモ) - leftovers...

    これの話。(ザックリメモ書き程度なので、詳しくはMLから追って読むかコードを見てくださいね。) http://grails.1312388.n4.nabble.com/Grails-2-3-encoding-escaping-xss-prevention-improvements-td4642167.html 3月の前半頃、Lari Hotari氏が、エンコーディング・エスケーピング・XSS対策関連の作業を開始するとの報告がMLに入り、興味深かったのでちょっとメモ。 JIRAの内容的にはコレ http://jira.grails.org/browse/GRAILS-9906 仕様は1年ほど前にMarc Palmer氏とPeter Ledbrook氏が議論して定義した内容の実装 https://github.com/grails/grails-core/wiki/Default-Codecs

    Grails2.3でのエンコーディング・エスケーピング・XSS対策の向上(MLのメモ) - leftovers...
  • Gradleを使ったWebアプリケーションのさくさく開発(マイグレーション編) - Splash of waters - 2nd. Season

    さくさく開発にかかせないのが、データベースのマイグレーション。 今回は、Flywayを使って、GradleのタスクとしてFlywayのマイグレーションが実行できるようにします。FlywayはJava向けのDBマイグレーションフレームワークの一つで、個人的にはシンプルで扱いやすいかなと思って気に入ってます。機能面での比較は、Flywayのトップページの下の方にあります。強いてマイナス面を挙げるなら、ロールバック(=スキーマのダウングレード)ができない点くらいでしょうか(その辺の見解はFAQで言及されています)。 GradleとFlywayの連動を行うにはいくつか選択肢があります。素直にgradle-flyway-pluginを使ったり、GradleからAntタスクを呼び出す方法なども検討しましたが、最終的に、FlywayのコアAPIを使ってカスタムタスクを独自に作る方法を採用しました。 とい

    Gradleを使ったWebアプリケーションのさくさく開発(マイグレーション編) - Splash of waters - 2nd. Season
  • monによるMySQLのデッドロック検知とロギング - FAT47の底辺インフラ議事録

    更新が激しいDBMySQL)でInnoDBのロック競合が発生し、アプリケーションサーバが詰まる状況が発生してしまいました。 障害監視はmonというアプリケーションで行なっているのですが、 今回はこのmonを使ってMySQLデッドロックの検知とロギングを行いたいと思います。 monについては下記の資料をご参照ください。 Mon, Muninによる楽々監視生活 デッドロック解析は下記サイトのSQLを利用しています。 MySQL InnoDBにおけるロック競合の解析手順 前提 ・MONのサーバは既に構築済みであること ・DBサーバはMySQL5.5であること(MySQL5.1+InnoDB pluginでも可) 〜〜〜 以下、監視対象のDBサーバにて作業 〜〜〜 SNMPインストール yum install net-snmplockを検知するスクリプト作成 vim /usr/local/sbi

    monによるMySQLのデッドロック検知とロギング - FAT47の底辺インフラ議事録
  • スクラムによるプロジェクト管理を推進するUI·TrackerTracker MOONGIFT

    TrackerTrackerはPivotal Trackerのデータをスクラムにあった形で表示してくれるソフトウェアです。 最近のプロジェクト管理のスタイルはアジャイルが多いように思います。また、その中でも人気があるのはスクラムです。Pivotal Trackerのデータをスクラムにしてビジュアル化してくれるのがTrackerTrackerです。 カラムがステータス、その中にタスクが入っています。 タグによる絞り込みが可能です。 タグは複数設定できます。 イテレーションのステータスやベロシティをグラフ化できます。 TrackerTrackerはPivotal TrackerのデータをWeb API経由で取得して表示しています。さらに表示だけでなく、操作による書き込みにも対応しています。複数プロジェクトの出し分けにも対応しており、よりアジャイルプロジェクト管理に最適な画面を提供します。 T

    スクラムによるプロジェクト管理を推進するUI·TrackerTracker MOONGIFT
  • Syn の独り言 : IT エンジニアがこの先生きのこるには - livedoor Blog(ブログ)

    March 13, 201320:39 カテゴリ仕事IT エンジニアがこの先生きのこるには 昔、大学を卒業して就職するとき、「プログラマ35歳定年説」なんて話を聞いた。 (今でも言うのかな?) ざっくり話すと、「35 歳までに一部の例外であるスーパーエンジニアになるか、マネージャやプリセールスへ転向しないとダメ。」という内容だと思う。 この話を初めて聞いたとき、学生だった自分はこう思った。 「むしろ、管理職や営業職になるか技術職のままでいるか決めるのに、35 歳まで猶予があるのか!」と。 当時の自分は技術力の優れたエンジニアをこんな風に考えていたと思う。 職人気質で、自分の納得のいかない物は世に出さない。 ドキュメント作成なんてやらない。(単価の安いプログラマにやらせる) 当然、営業や PM と衝突する事も多く、周りからは気難しい人と思われる。 ただ、彼らは当に良い物とか分からないか

  • United States

    Doctors weaponize AI in insurance battles over patient care authorizationsPhysicians are pushing back against automatic denials from healthcare insurance providers by allowing AI tools to write their appeals.

    United States
  • 状態のあるコードに対するテストの自動生成 - 西尾泰和のはてなダイアリー

    BLUE*アルゴリズムを実装してみたので、せっかくだからテストの自動生成をやってみた。 今回テスト対象にするコードの仕様は 開く、閉じる、書き込む、の3つの操作ができる 開いてないのに書き込んだり閉じたりしたらエラーになる というもの そしてこちらがそれの「バグのある実装」: class Target(object): # bad impl. def __init__(self): self.opened = False self.closed = False def open(self): self.opened = True def write(self): if not self.opened: raise RuntimeError if self.closed: raise RuntimeError def close(self): if not self.opened: rais

    状態のあるコードに対するテストの自動生成 - 西尾泰和のはてなダイアリー
  • git 1.8.2 リリースノートを眺めて、新機能把握と設定を追加 | Act as Professional

    世の中はGoogleリーダーで盛り上がってる中、Livedoor Readerに移行した@HIROCASTERでございませう。 そんななか、ひっそりと git 1.8.2 がリリースされました。 リリースノートを眺めていたら知らない機能があったので書いておきます。 git check-ignore * “git check-ignore” command to help debugging .gitignore files has been added. 1.8.2からの新機能です。 .gitignore ファイルに記述されてい内容と実際のファイルが該当するかチェックできます。 例えば .gitignore ファイルに /tmpと書いたとします。 $ git check-ignore -v ./tmp .gitignore:1:/tmp ./tmpのように1行目の設定に該当して、exclu

    git 1.8.2 リリースノートを眺めて、新機能把握と設定を追加 | Act as Professional
  • Web制作で面倒な作業を自動化するビルドツール、Grunt v0.4 入門

    Web制作で面倒な作業を自動化するビルドツール、Grunt v0.4 入門 2013-03-14 / 2014-03-12 Webサイトの表示速度を気にすると、CSSJavaScriptのminify、gzipCSS Sprite、画像の最適化などの面倒な作業が発生します。 Grunt.jsとは? Grunt.jsは、サーバーサイドJavaScriptのNode.jsを使用したCUIのビルドツールです。 タスクを設定しておき、それらを自動化します。 コマンドプロンプトやターミナルなど、いわゆる「黒い画面」を使います。 Grunt.jsの現在のバージョンは0.4.1です。 バージョンが0.3から0.4になったことで、大きく仕様が変わりました。 Grunt.js v0.4ではgrunt-cliをインストールしてプロジェクトごとにGruntやプラグインをインストールして使用します。 プラグイ

    Web制作で面倒な作業を自動化するビルドツール、Grunt v0.4 入門
  • ファビコン(favicon)とは?代表的なサイズと基本の作成方法 | 株式会社LIG(リグ)|DX支援・システム開発・Web制作

    ファビコンはサイト閲覧時のタブ以外にも、多くの場所で使われていることがわかります。 また、上記以外にも検索結果画面にも表示されるため、そのサイトを表す適切なアイコンを設定するようにしましょう。 作成時のサイズは512px × 512pxのみでOK これだけサイズがあると、全て用意するのかと不安になってしまいますが、WordPress4.3以降のバージョンであれば512px × 512pxのPNG形式ファイルを作成すれば全てに対応してくれるようになりました。 複数作成する必要はないので安心してください。 WordPress以外の場合 WordPressを利用しておらず上記のような自動適用の機能がない場合、またはWordPressが4.3以前のバージョンの場合は、各サイズのアイコンを用意する必要があります。 各ブラウザのファビコン表示サイズは先ほどの表の通り16px × 16px が一般的です

    ファビコン(favicon)とは?代表的なサイズと基本の作成方法 | 株式会社LIG(リグ)|DX支援・システム開発・Web制作
  • Spring3とCDIの比較 - makotanのブログ

    あくまで2012年の第四半期頃に触ったCDIとの比較なので、今の最新版はいろんなものが解消されてる・・・といいな〜 DIとしての機能 CDIはclassのスキャンを基にしてアノテーションだけで済まそうとしてる ただし、空っぽのxmlファイルは一つ絶対に必要 SpringはXMLでの定義が基 Scopeの違い CDIはSeamから継承してるスコープがある(conversation scope) Springは昔から変わってない 両方とも独自スコープを追加できるのであんまり絶対的な比較にならない気がする(Seasarは出来ないんだよなぁ〜) AOPの違い CDIはアノテーションでAOPを使う事を宣言して実際に適用するものはbean.xmlに書く SpringはXMLに書く必要がある。困ったことにいろんな書き方、種類があるので迷う。 ぶっちゃけSpringって駄目じゃんって思うのはいつもここ

    Spring3とCDIの比較 - makotanのブログ
  • ASSIOMA(アショーマ) » オラクルの考える カスタマー・エクスペリエンスとは?

    今日は日オラクル社主催の「調査データから読み解く、カスタマー・エクスペリエンスを活かす企業コミュニケーション勉強会」に招待されたので参加した。 カスタマー・エクスペリエンス(顧客経験価値)とは “品質”や”機能”といった商品・サービスそのものの価値ではなく、購入したり使用する過程の”経験”から得られる価値。商品の付加的魅力として差別化要因になる。 「物を売るのでは無く、経験や価値を売る」とはここ数年マーケティングの世界で耳にする機会が増えてきた。スターバックス等の成功例を題材にセミナーが開催されていることも良くある。しかし、オラクル社の独自調査によれば「実践」している企業となると、少ないようだ。 93%の経営幹部がカスタマー・エクスペリエンスの満足度向上が今後二年間の最優先課題の一つであると認識し、97%が他社との差別化にかかせないものだと考えているにも関わらず、80%の企業がカスタマー

    ASSIOMA(アショーマ) » オラクルの考える カスタマー・エクスペリエンスとは?
  • これからはじめるフロントエンドJavaScript

    これからはじめるフロントエンドJavaScript:はじめまして。JavaScript(1)(1/2 ページ) はじめに 一昔前、リッチなWebサイト、WebサービスUI構築は、Flashを代表格とするプラグインを利用したUIの構築が一般的でしたが、近年、Flashなどのプラグインを搭載しないモバイル端末の登場により、その情勢が変わってきました。 もともと、2000年代前半からJavaScriptによるリッチなUI構築に関しては注目されてきましたが、ブラウザが搭載するJavaScript実行エンジンのパフォーマンスや、体系的に構築するためのフレームワークがそろっていないこともあり、まだまだ普及するレベルではありませんでした。 2000年代後半から、prototype.jsを皮切りに、JavaScriptを実行する際に頭を悩ませてきたブラウザ間の仕様の違いを吸収してくれるようなライブラリ

    これからはじめるフロントエンドJavaScript
  • メジャーなプログラミング言語とそれらの役割を、素人でも分かるように教えてください。 - Knoh (ノウ) | The Knowledge Hub

    プログラマーたちは、使用するプログラミング言語と驚くほど密接な関係を持っています。プログラミング言語はあなたをイライラさせ、また教え導いてくれます。あなたはそのうちにプログラミング言語の内部構造や、ちょっとした変な癖を学ぶことになるでしょう。それはあなたの頭のなかにも入り込み、考え方をも変えるでしょう。 正しいプログラミング言語を選べば、新しくて美しい何かを一緒に作り上げることができます。間違った選択をすれば、もちろん面倒なことになります。 言い換えれば、プログラミング言語を選ぶことは、恋人を選ぶことによく似ているのです… (注: 私はストレートの男性です。それ以外の方は、自分の興味に合わせて自由に脳内変換してください) PHP は、あなたが高校時代のある夏、不器用ながらも付き合った初めての彼女です。もっと真剣な関係を築こうとしてはいけません。この子は複雑な問題を抱えています。 Perl