Kengo's blog

Technical articles about original projects, JVM, Static Analysis and JavaScript.

Maven

FindBugsのバグパターンを実装する

SLF4J用PMDルールセットの実装に限界が見えたのでFindBugsに乗り換えました。で、FingBugsプラグイン実装関連の日本語情報がわりとないようなので、試行錯誤の過程を残しておきます。まだ自分も完全にはできていないので、情報をお持ちでしたらぜひご指摘く…

Maven使いのためのPMD入門(2012年夏)

PMDは「枯れた技術」だと思うしネット上にも日本語情報は多いですが、わりと古いものが多い気がするし1箇所にまとまってたほうが便利だと思うのでまとめてみます。 なお著者のスペックの都合上、SBTのようなナウでヤングなビルドツールは対象にしていません…

SLF4JのポカミスをPMDで自動検出する

※本記事は昨日世に出た個人プロダクトruleset-for-SLF4Jの宣伝と解説です。 SLF4Jをお使いの方はで有用でコントロールしやすいログを出すための工夫の一貫として、Logger生成時に生成元クラスを渡しているはずです。 private final Logger logger = LoggerFa…

ruleset-for-SLF4J is now on Maven central!

I am excited to announce the ruleset-for-SLF4J is now on Maven central! Many thanks for sonatype!So, you can use it easily with Maven like: <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-pmd-plugin</artifactId> <version>2.7.1</version> <dependencies> <dependency> <groupId>jp.…</groupid></dependency></dependencies></plugin>

log: 2012/Jul/16~22

Interests A survey of client MVC frameworks I like spine.js because it's easy to read and enough to use, but I have no product which fits this framework. I think backbone.js is the best choice for PARTAKE. technical events in Shanghai Fina…

memo: How to generate code automatically for Java project

There are many way to generate code automatically. I think that the most common way is Annotation Processing Tool and Pluggable Annotation Processing API, but always I use PMD or ASM because I'm familiar with these libraries. Annotation Pr…

Is Maven3 in attic?

I found a tiny problem of latest Maven3 last week. I issued at official Jira, but currently there is no discussions. And I found that no issues are closed in the last 30 days. Maven 2 & 3 - jira.codehaus.org It looks strange because I know…

Maven tips in my repository

Currently my GitHub has 22 repositories. I think reading all of them is little hard. So I've picked up some tips from them, they'll be helpful for you. rejecting old maven To force user to use new Maven, you can use prerequisites property. <prerequisites></prerequisites>…

我流・Jenkins実践 概論

日本の知人からJenkinsの使い方について相談したいというありがたいお話を頂いたので、具体的な話をはじめる前に自分が考えている総論についてまとめておきます。 なお私のJenkins歴は長くないですしコミュニティに対する貢献も残念ながら皆無です。ガキ大将…

jsr305-maven-plugin 1.1 released

Today I've released new version for jsr305-maven-plugin. eller86/jsr305-maven-plugin · GitHub This plugin injects precondition check into class file. It means that you don't have to code boring check logics like if (argument == null) {...}…

How to generate simple parser with ANTLR3

I've found that dynjs depends on ANTLR3. I have to learn ANTLR3 to read dynjs, so I'm trying to use it with Maven3. pom.xml To use ANTLR3, we have to write 1 dependency and 1 plugin in pom.xml. Sample is here. <dependencies> <dependency> <groupId>org.antlr</groupId> <artifactId>antlr-runtime</artifactid></dependency></dependencies>

新たに技術者となった知人におくるはなむけの言葉

やあ (´・ω・`) めんどくさがらずにメールのリンクを開いてくれてありがとう。今月から技術者として働き始めたそうだが、経過はどうだろうか。貴方が私と同じ職種になると聞いた時には驚いたものだが、こうして実際なってみると意外と違和感ないものだね。…

Rakefile for enchant.js programming

I found that starting game programming with enchant.js is slow. It has a lot of steps like creating index.html, downloading enchant.js and plugins, downloading images for plugins... it's boring, isn't it? 最近enchant.jsによる開発の「初速」…

Reading source of Hatena Blog

Today I read a source (HTML, JS, CSS) of this blog. This entry is my impression. このブログのソースを読んでみたので、感想をまとめておきます。 CSS/JS isn't pre compressed? To load basic CSS files and JS files, this blog uses very long URI w…

Ruleset for SLF4J has been updated

Today I updated ruleset for SLF4J. There is no enhancement but many fixing. ruleset for SLF4Jを更新しました。バグ修正が主な変更となっています。 Comparing 3fefc4f29b...a9dd209 · eller86/ruleset-for-SLF4J · GitHub The biggest fix is avoiding…

How to use "Bootstrap, from twitter" in Maven site

Apache releases a skin for maven site which uses Bootstrap. So we can use bootstrap in our original project site easily. 各所で使われているBootstrapですが、ApacheがMavenサイト用のスキンをリリースしており簡単に使えます。これはとっつきやすい…

Deploying Maven's site to GitHub Pages

Are you using Maven's site feature? How about GitHub Pages? If you're using both of them, GitHub's site-maven-plugin helps you to host your site on Pages. MavenのsiteとGitHub Pagesを使っている方に朗報です。GitHub社がsiteをPagesにデプロイす…

新年快乐! (Happy lunar new year!)

Chinese new year holiday ends today. So I try to think my purposes for this year. 今日で中国の旧正月*1が終わります。せっかくなので今年の目標など。 programming I wrote 'I want to write Java tool or library with byte code creation' in 3 week…

Goodbye, checkNotNull

Precondition checking like null-checking is very important element for program, but sometimes it becomes boring because it's a defensive technique and far apart from our purpose -- hacking. nullチェックのような前提条件確認はプログラムにお…

released Brainf*ck implementation on Java7

I've released Brainjack at GutHub. It's a Java7 implementation of the Brainf*ck programming language. Brainf*ckのJava7実装をGitHubで公開しました。以前の記事で触れた、バイトコードを吐くコンパイラが含まれています。 eller86/Brainjack - GitHub…

JVM用KEMURIインタプリタとコンパイラを実装

最近JavaScriptばかり書いていたためか無性にJVMと戯れたくなったので、KEMURIの実行環境を作成しました。 eller86/JKEMURI · GitHub 単なるインタプリタとJavaのclassファイルを生成するコンパイラがあります。インタプリタは以前実装したことがあるのです…

eller86のpatch近況

最近ここにpatch送った記録を残していなかったので、まとめて。issue報告も混ぜてます。 node-esc Issue #1: `require('esc')` throws "Cannot find module" · pvorb/node-esc · GitHub 1つめはHTMLエスケープを行うNodeのモジュールがインストールできない…

HTML5ゲーム開発環境構築支援ツールを作った件

testlingの登場によりQUnitを捨てる可能性が出てきたeller86です。操作を間違ったときのリアクションがわかりにくい*1のですが、それを大きく上回るメリットを享受できそうです。大半のOSS開発なら無償プランでも充分じゃないかと。唯一の不安は、サイトが潰…

canvasで3Dレーシング

先週末の3連休で実装したゲームを9leapに投稿しました。canvasを使った3Dレーシングです。 9leap : D3 racing by eller86 - どこでも遊べる、投稿型ゲームサイト 本ゲームの特徴はcanvasで3Dを描画しているところでしょう。とは言えcanvasで3Dを描画すること…

Mavenプラグインで外部ライブラリをrepackageする方法

自作ライブラリを配布するときに、ライブラリが依存する外部ライブラリを同梱したい場合があります。しかしフツーに同梱・配布してしまうと、ライブラリを利用するプログラムの依存関係と衝突してしまってトラブルになりかねません。バージョンの違うロギン…