読者です 読者をやめる 読者になる 読者になる

Fight the Future

何かを始めたら、半分成功したのと同じ

JSTLでの通貨フォーマット

pg

<fmt:formatNumber type="CURRENCY" value="${xxx.xxx}" />currency="JPY"とすると「JPY 4,000」とか出てしまうので注意。</fmt:formatnumber>

Javaでサムネイル画像のような縮小画像を作る

pg

意外にもメジャーなライブラリはないっぽい。JDKのImageIOを使う。 import java.awt.Graphics2D; import java.awt.RenderingHints; import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; impo…

linuxのTomcatにJVM引数を渡す

pg

$ sudo vi /etc/sysconfig/tomcat6 or $ sudo vi /etc/tomcat6/tomcat6.conf で CATALINA_OPTS="-Xms512m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=256m"を設定する。どちらの設定ファイルが優先されるかはディストリビューション依存?らしい。 僕は/e…

Mavenで${basedir}/src/main/webappディレクトリにあるファイルをWARから除外する

pg

パスがわからなくてはまった。 <project> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <configuration> <warSourceExcludes>*.hoge</warSourceExcludes> </configuration> </plugin> </plugins> </build> </project> カレントが${basedir}/src/main/webappらしい。

MavenでWebアプリケーションを作成するときのアーキタイプ

pg

よく使うだろうからこれだけピックアップ。 mvn archetype:create -DgroupId=xxx.xxxxx -DartifactId=xxxxx -DarchetypeArtifactId=maven-archetype-webapp

MavenでWARにパッケージするときに特定のファイルを除外する

pg

pom.xmlに次のように記述する。 <project> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <configuration> <warSourceExcludes>**/*.xml</warSourceExcludes> </configuration> </plugin> </plugins> </build> </project>これだとXMLファイルを除外する。

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

pg

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でコンパイルの文字コードを指定する

pg

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

pg

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,>…

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

pg

Consolas 13pt が最高と思った。

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

pg

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のデータソース

pg

<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フォーマット設定

pg

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

MavenのTips

pg

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の連携おさらい

pg

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

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

pg

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

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

pg

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

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

pg

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エンコーディングしたいとき

pg

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

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

pg

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

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

pg

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

Scalaの日本語本

pg

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

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

pg

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

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

pg

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

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

pg

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

Google App EngineにJava登場!

pg

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

pg

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

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

pg

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

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

pg

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

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

pg

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

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

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

Javaで日数計算

pg

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

pg

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()は融通が利く

pg

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になる。

関数脳のつくり方

pg

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

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

pg

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

Twitter message queues move to Scala!

pg

Twitter message queues move to Scala | The Scala Programming Language mixiのScalaコミュニティ経由。 TwitterのメッセージキューがRubyからScalaに! これは大きなニュースだと思う。 たしかに現在のアプリの主流であるWebアプリにScalaを使うことはま…

IE版Greasemonkey「Trixie」

pg

Trixie GSと違ってメタデータセクションがすべて必要なので注意する。 // ==UserScript== // @name // @namespace // @description // @include // ==/UserScript==

フレームのロケーションを変える

pg

window.frames["フレーム名"].location = 'URL';

PostgreSQLで一時ビューを作成する&削除する

pg

CREATE [OR REPLACE] TEMPORARY VIEW department AS query OR REPLACEはPostgresの独自拡張で、すでに同様の一時テーブルが存在していても置き換える。 一時ビューやテーブルは「DBの」セッション内でだけ有効だけど、 Webアプリとかでコネクションプールし…

Yahoo! UI LibraryでJSONからツリービューを生成する

pg

改修プロジェクト。 もともとツリービューがあったのだけど、レスポンスが遅いと。もとはDestroydrop » Javascripts » Treeを参考に プロトタイプを作ってビューを生成していた。 要素の数だけnewしていたため、とても遅かった。 サーバーサイドでJSON形式に…

このコードにしびれた!

pg

CollectionUtils#collect() public static Collection collect(Iterator iterator, Transformer transformer, Collection collection) { if(iterator != null && transformer != null) { Object obj1; for(; iterator.hasNext(); collection.add(obj1)) { Ob…

Antのbuild.xmlで複数のディレクトリをまとめてコンパイルする

pg

javac要素の子要素でsrc要素を複数記述する。 <target name="compile"> <javac destdir="${dest}" debug="on" classpathref="classpath"> <src path="../src1/"></src> <src path="../src2/"></src> </javac> </target>

TomcatでJNDIのDataSourceをDBCPを使って設定する

pg

CATALINA_HOME\conf\Catalina\localhostのコンテキストXMLを次のようにする。 <Context path="/PATH" docBase="WORK_SPACE" workDir="WORK_DIR"> <Resource name="jdbc/name" scope="Shareable" type="javax.sql.DataSource"/> <ResourceParams name="jdbc/name"> <parameter> <name>factory</name> <value>org.apache.commons.dbcp.BasicDa…</value></parameter></resourceparams></resource></context>

正規表現:文章中から文に「?」がない文だけを抽出する

pg

^[^\?]+$

eclipse font size changerのアップデートサイト

pg

http://eclipse-study.sourceforge.net/font-size-changer/updates/site.xml

eclipse3.4でJadclipseを使う方法

pg

Jadclipseはeclipse3.3までしか公式には対応していない。 3.4でJadclipseを使うには、%ECLIPSE_HOME%\configuration\org.eclipse.equinox.simpleconfiguratorディレクトリにあるbundles.infoに下記内容を追記する。 net.sf.jadclipse,3.3.0,file:dropins\ecl…

AntでOutOfMemoryがよく出る

pg

コマンドプロンプトで一時的に環境変数に設定する。 set ANT_OPTS=-XX:MaxPermSize=256m -Xmx512mやっぱりAntはコマンドからに限る。

eclipse3.4からのプラグイン追加

pg

dropinsディレクトリに追加していく。 直下にJARを置いてもいいし。 eclipse plugins features という階層を作って置いてもいい。

Scalaの型

pg

http://itpro.nikkeibp.co.jp/article/COLUMN/20090106/322252/ 以前コメントもいただいた水島さんの記事。 Scalaの型について。 共変、反変が整理されていてわかりやすい。 Scalaは言語仕様そのものが興味深いんだよね。おもしろいんだ。 『Wicket in Actio…