Fight the Future

Java言語とJVM、そしてJavaエコシステム全般にまつわること

programming

Jackson JSONで出力日付フォーマットを指定する

Ismail Seyfi's Blog: How to control Date formatting when Jackson JSON Processor is used with Spring 3.0 import java.io.IOException; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; import org.codehaus.…

Mavenでコンパイルの文字コードを指定する

Windowsでmvnしたら文字コードのエラーが出たので。 <build> <finalName>xxx</finalName> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.6</source> <target>1.6</target> <encoding>UTF-8</encoding> </configuration> </plugin> </plugins> </build>

Google Collection Library

commons collectionsは下位互換のためgenericsには対応してないので、Google Collection Libraryを使った。APIの感じはほとんど一緒。 Lists.transform(list, new Function<F, T>() { @Override public T apply(F from) { T to = new T(); return to; } }); 個人的</f,>…

プログラミングにおけるフォント

Consolas 13pt が最高と思った。

Tomcat6を使ってMavenでJSTL 1.2をリポジトリからダウンロードして作ったアプリをデプロイするときのもろもろ

JSTL 1.2は標準のリポジトリに存在しない。Java.netのGlassFishのリポジトリから取得する。ちなみにApache TaglibsのJSTLは開発が終了しているので注意する。 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> </project>

TomcatでのJNDIのデータソース

<Context> <Resource name="jdbc/xxx" auth="Container" type="javax.sql.DataSource" username="xxxxx" password="xxxxx" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/xxxxxx" /> </Context>

メソッドチェインするときのeclipseフォーマット設定

Java - Formatter →Qualified invocations →→Line wrapping policy →→→Wrap all elements, every element on a new line

MavenのTips

settings.xmlで個人設定をする。-DdownloadSources=trueを常に追加するようにしたければ要素に追加する。 <settings> <profiles> <profile> <id>xxx</id> <properties> <downloadSources>true</downloadSources> </properties> </profile> </profiles> <activeProfiles> <activeProfile>xxx</activeProfile> </activeProfiles> </settings> pom.xmlに記述すると個人で…

Apache-Tomcatの連携おさらい

# yum install tomcat5 tomcat5-admin-webapps tomcat5-webappsTomcatのconf/server.xmlを編集して8080番ポートを使用しないようにする。

Mavenでコンパイラのバージョンを指定する

pom.xmlに記述する。 <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin></plugins>

TomcatのJVM設定とマネージャロール

-XX:MaxPermSize=512m -XX:PermSize=256m -Xms512m -Xmx1024m <role rolename="manager"/> <user username="admin" password="admin" roles="manager"/></user></role>

Jettyを組み込みサーブレットコンテナとして利用する

import org.mortbay.jetty.Connector; import org.mortbay.jetty.Server; import org.mortbay.jetty.handler.ContextHandlerCollection; import org.mortbay.jetty.nio.SelectChannelConnector; import org.mortbay.jetty.webapp.WebAppContext; public clas…

MacのEclipseでSJISエンコーディングしたいとき

Text File Encodingを設定するところで、プルダウンリストに、SJISとEUC-JPが無くて「どうしたもんか?」と思ったんですが、どうやら、直接手入力でSJISEUC-JPと入れれば、そのエンコーディングになる MACのEclipseのテキストファイルエンコーディング: シン…

q4eのupdate siteのアドレスが載ってるとこ

Installation - q4e - Installation of the plugin. - Q for Eclipse is an Apache Maven plugin for the Eclipse IDE - Google Project Hosting

ソフト参照を使ってメモリの枯渇に対処する

Java魂―プログラミングを極める匠の技作者: Robert Simmons Jr.,福龍興業,佐藤直生,木下哲也,石井史子出版社/メーカー: オライリージャパン発売日: 2004/10メディア: 単行本購入: 9人 クリック: 116回この商品を含むブログ (83件) を見る でソフト参照につい…

Scalaの日本語本

ついにScalaの日本語本が出ました。Jolt Awardにノミネートされた本です。Scalaスケーラブルプログラミング[コンセプト&コーディング] (Programming in Scala)作者: Martin Odersky,Lex Spoon、Bill Venners,羽生田栄一,長尾高弘出版社/メーカー: インプレス…

findとsedでディレクトリ内のファイルからある文字列を一括置換する

いろんなところにあるけど、自分用にメモ。 find . -name "*.hbm.xml" -exec sed -i 's/hibernate-mapping-2.0/hibernate-mapping-3.0/g' {} \;ここでの例はHibernateのマッピングファイルでDTD宣言を書き換えてる。

Javaの正規表現での埋め込みフラグ表現

/^.+\\.(txt|csv)$)/iとかJavaの正規表現はできないから "(?i:^.+\\.(txt|csv)$)" と書く。これが埋め込みフラグ表現。 "(?オプション:正規表現)" なので(?imx:)とかも可。

GAE/Jで利用できるJREのクラスと各種言語や仕様、フレームワーク一覧

GAE/Jで利用できるJREのクラス一覧。 JRE クラスのホワイト リスト - Google App Engine — Google DevelopersGAE/Jで利用できる各種言語や仕様、フレームワーク一覧。 Google App Engine for Java | Google Groups 簡単に抜粋。言語はScalaやJythonも使える…

Google App EngineにJava登場!

Today, we're very excited to announce the availability of a new programming language for Google App Engine. Please welcome the Java runtime! Google App Engine Blog: Seriously this time, the new language on App Engine: Java™ レンタルサーバ…

Re:Bean Validation (JSR 303) hits proposed final draft

JSR303 Bean Validationのfinal draftが出たらしい。 バリデータ自体はこんな感じで作るみたい。 @Constraint(validatedBy = { SizeValidatorForString.class, SizeValidatorForCollection.class } ) public @interface Size { String message() default "{c…

JavaのシステムだからってテストコードがJavaである必要はないね

ThoughtWorksアンソロジー ―アジャイルとオブジェクト指向によるソフトウェアイノベーション作者: ThoughtWorks Inc.,株式会社オージス総研オブジェクトの広場編集部出版社/メーカー: オライリージャパン発売日: 2008/12/27メディア: 単行本(ソフトカバー)…

コメントには内容ではなく理由を書く

SimpleDateFormatで行う処理はsynchronizedされません。複数のスレッドから同時にこのクラスにアクセスされた場合、違う結果が返された、という障害が起りうるわけです。しかも再現が非常にムズい、修正者泣かせの障害でしょう。はい、わかりましたわかりま…

SimpleDateFormatがスレッドセーフでないってあんまり知られてないんだなあ

ので、スレッドセーフ?って人はstatic finalな変数に入れずに、 毎回SimpleDateFormatインスタンスを生成すること。 ちょっと慣れた人はsynchronizedブロックに入れること。 共通基盤系のクラスに手を入れられる人は、ThreadLocalに入れてしまうのもあり。 …

BigDecimalはvalueOf()でインスタンス作ろうぜ

new BigDecimal(10); BigDecimal.valueOf(10); も同じ値を持つインスタンスを生成するけど、valueOf()を使おうぜ。 この static メソッドは、よく使われる BigDecimal を再利用できるようにするために、long を引数とするコンストラクタの代わりに提供されま…

Javaで日数計算

1/1から今日までの日数求めるとか。 java.text.SimpleDateFormat format = new java.text.SimpleDateFormat("yyyyMMdd"); java.util.Date start = format.parse("20090101"); java.util.Date end = new java.util.Date(); java.util.Calendar calendar = jav…

Middlegenのbuild.xml

Middlegen IDEはeclipse3.4に対応してない?っぽいので、 build.xmlを書いた。JDK1.4 + Hibernateなので。。。 libディレクトリにMiddlegen自体のJARと、Middlegen\samples\libにあるJARを置いて使用する。 <project name="middlegen" basedir="." default="middlegen"> <path id="lib.class.path"> <fileset dir="lib/"> <include name="**/*.jar" /> </fileset> </path> </project>

DateUtils#parseDate()は融通が利く

org.apache.commons.lang.time.DateUtils.parseDate("2930", new String[]{"HHmm"}) (java.util.Date) Fri Jan 02 05:30:00 JST 197029:30が翌日5:30になる。

関数脳のつくり方

今回学んだmapとflatMapは実はScalaにおいて非常に重要な意味を持っています。関数型言語のひとつの山場といわれ,これを理解できれば悟りが開けるといわれる(笑)「モナド」という考え方に関係しているのです。しかし,Scalaのモナドは,mapとflatMapが理…

君は合成コンストラクタを知っているか?(2)

また合成関係で疑問が出た。 そもそも合成コンストラクタについては下記参照で。 君は合成コンストラクタを知っているか!(Java) - Fight the Future じゅくのblog staticネストクラスにprivate修飾子をつける。 package sample; import java.lang.reflect.C…