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

Fight the Future

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

RxJava 2.0 is released

I've translated a InfoQ's article about RxJava 2.0 into Japanese. www.infoq.com RxJava 2.0 quite differs from version 1.0. Summary of differences is in RxJava's website. github.com By the way, JDK 9 supports Reactive Stream (JEP 266). JEP …

Introduction to Javaslang

I translated this article into Japanese in InfoQ. www.infoq.com I haven't known Javaslang library for now. What is Javaslang? Javaslang's website is below: http://www.javaslang.io/javaslang-docs/ Javaslang brings functional programming to …

Pivotal Cloud Foundryを始めてみる

Pivotal Cloud Foundry(PCF)を試す機会をいただきました。ローカルのPCF Devではなく、パブリッククラウドのPCFの方です! 今後少しずつ、使ってみたログを残していこうと考えています。 今回は、PCFにサンプルのSpringBootアプリケーションをアップすると…

what is JSRs in 900s

Now max JSR number is 380, but JSR has 900s number. For example, JSR 901 is "JavaTM Language Specification". The Java Community Process(SM) Program - JSRs: Java Specification Requests - List of all JSRs What are these? They are completed a…

How to get an application class loader in Java Agent method

In Java Agent method, such as premain() or agentmain(), class loader is system classloader, not application class loader. If you intent to change bytecode of class loaded by application class loader, you will need an application class load…

material of my session in JJUG CCC 2016 fall

I talked about Java Agent and bytecode manipulation libraries in JJUG CCC 2016 fall. My session room was filled to capacity with bytecode fans! This is a material of this session. JJUG CCC 2016 fall バイトコードが君のトモダチになりたがって…

How can I get a web application classloader in Java Agent's method agentmain()

I implement Java Agent which transform classes of a web application running in an application server. To do so, I need a web application classloader which load these classes. I know Instrument#getAllLoadedClasses() method. But this method …

Use @GetMapping, @PostMapping in Spring 4.3 or later

I always use @RequestMapping in Controller. @Controller public class TestController { @RequestMapping(value = "test", method = RequestMethod.GET) public String index() { But in Spring 4.3, @GetMapping and @PostMappiing are provided. I was …

My proposal has been approved in Devoxx US 2017

My proposal has been approved in Devoxx US 2017. I have a Quickie session. Session title is "Web app that has one billion face images and Japanese "kawaii" culture". This is about an application which I have been developed, including not o…

Java SE 9 will be released at 2017/07/29

At now(2016/11/19), Java SE 9 will be released at 2017/07/29. 2016/11/19時点では、Java SE 9は2017/07/29にリリース予定です。

translation of InfoQ article about Project Valhalla in Japanese

Valhalla adds new bytecode instruction "typed".

InfoQのJava EEガーディアンズ関連の記事を翻訳しました

Java EEガーディアンズの結束理由や取り組みなどを知ることができます。 www.infoq.com www.infoq.com

InfoQ 日本語サイトにて翻訳活動を始めました

初めての翻訳が本日公開されました。 www.infoq.com Java関連の翻訳を中心に、英語力の向上と技術情報の収集を兼ねて、1か月に1つ2つ翻訳します!

A simple example of Gauge + Selenide tests #gauge #selenide

I tweeted as below, I received reply from Selenide creator. 次のようにツイートしたところ、Selenideの作者からリプライをもらいました。 @jyukutyo Wow! Can you share some "Hello world" example of Gauge+Selenide tests?— Andrei Solntsev (@asolnt…

indyとASMを使ってコードを難読化できるんだって

そういえばJavaOne 2015で「Protecting Java Bytecode from Hackers with the InvokeDynamic Instruction 」というセッションに出ておもしろかったことを思い出しました。 そこでデモ用のものが紹介されていたので、今更ながら試してみました。 github.com …

Spring MVCでConversion失敗をまとめて処理したいときは@ModelAttributeを使うしかないのかな?

Spring MVCでこういうコントローラメソッドがあるとする。 @RequestMapping(path = "hoge") public String index(@RequestParam @DateTimeFormat(pattern="yyyyMMdd") Date start, @RequestParam @DateTimeFormat(pattern="yyyyMMdd") Date end) { return "h…

Bean ValidationでSpring Expression Languageを使って相関バリデーションする

このエントリで実装を見ていたとき、思いついた。 jyukutyo.hatenablog.com Spring Expression Language(SpEL)でもバリデーションできそうだな〜と。Spring、Hibernate Validatorの利用が前提になってしまうけど。 @SpringELAssertアノテーションというの…

Bean Validation(Hibernate Validator)で相関バリデーションを使う

ここでは相関バリデーションを、「2つの値の関係性をバリデーションする」とする。 たとえば、日付で開始日と終了日があって開始日 < 終了日とならなくてはならない、など。 Bean Validation 1.1の仕様には、相関バリデーションはなさそう。ただ、Hibernate …

ScalaのSpring MVCコントローラに@AutowiredでInjectする

これの続き。 jyukutyo.hatenablog.com 素直に@Autowiredアノテーションつけるだけでできた。 package hoge import org.springframework.beans.factory.annotation.Autowired import org.springframework.context.ApplicationContext import org.springframe…

Spring MVCのコントローラをScalaで書く

やろうとした理由は…単なる思いつき。 調べたらいろいろな方が試されてました。手順をまとめておく。 既存のアプリケーションがMavenなので、Mavenで管理する方針で。scala-maven-pluginなるものがあるので、これを使う。 <pluginManagement> <plugins> <plugin> <groupId>net.alchim31.maven</groupId> <artifactId>scala-maven</artifactid></plugin></plugins></pluginmanagement>…

マイクロソフトのクラウドでのJava EE、そしてJavaエヴァンジェリストへのインタビュー...マイクロソフトのね。 #てらだよしおがんばれ

こちらのブログエントリの翻訳です。 Java EE in Microsoft's Cloud or Interview With Java Evangelist ...At Microsoft : Adam Bien's Weblog 著者のAdamさんおよびインタビューされている日本マイクロソフトの寺田佳央@yoshioteradaさんに翻訳許可をいた…

Groovyでのinvokedynamic

Twitterでのやり取りでGroovyのinvokedynamicの話題が出たので、まず簡単に試してみました。 まず以下のHelloWorld.groovyを作ります。 println 'Hello, world!' 普通にコンパイルする。 $ groovy -v Groovy Version: 2.4.0 JVM: 1.8.0_65 Vendor: Oracle Co…

SpringでBean ValidationのMethod Validationを使う

公式リファレンスにはこうあった。 Spring-driven Method Validation The method validation feature supported by Bean Validation 1.1, and as a custom extension also by Hibernate Validator 4.3, can be integrated into a Spring context through a M…

関ジャバを初めてマイクロソフト様にて開催しました

僕が運営メンバーをしている関西Javaエンジニアの会(関ジャバ)ですが、 1/22(金)にマイクロソフト 関西支社にてMicrosoft Azure + Javaにフォーカスしたイベントを開催しました。 直前に連絡をいただいたのですが、なんとピザとビール、ソフトドリンクま…

JDK 9ではJavadocに検索ボックスができる

JEP 225: Javadoc Search いるよね〜。みんなブラウザの拡張機能とか入れてたはず。 生成してみた。 $ java -version java version "9-ea" Java(TM) SE Runtime Environment (build 9-ea+99-2015-12-23-184955.javare.4146.nc) Java HotSpot(TM) 64-Bit Serv…

JDK 9ではちょっとしたコレクションはファクトリメソッドで作れる

JEP 269: Convenience Factory Methods for Collections コレクションへの便利なファクトリメソッドを追加します、と。 上記のページにはJavaでのコレクション生成についてのJDK 9以前の書き方がいろいろありました。 一番ベーシックなやつ。 Set<String> set = new </string>…

JDK9では文字列の連結にinvokedynamicが使われることになりそうだ

JEPにあり、JDK9のターゲットになっている。 JEP 280: Indify String Concatenation Change the static String-concatenation bytecode sequence generated by javac to use invokedynamic calls to JDK library functions. This will enable future optimiz…

Uber JARとは

とある資料を読ませていただいていて、「Uber JAR」なる単語が。 java -jar hoge.jarでアプリケーションを起動するタイプのものを指すのは理解できたのですが、 Uberって?っと思い検索してみました。 stackoverflow.com Über is the German word for above …

クラスファイルはすべからくjavapしよう

public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World"); } } javac HelloWorld.javaしてクラスファイルを生成します。さっそくjavap HelloWorldしましょう。javapコマンドはOpenJDK系(OpenJDKやHotSpot、…

try-with-resources 文のclose順序

超いまさらですが、JDK7で導入されたtry-with-resources文のclose順序です。 public class TryWithResources { public static void main(String[] args) { try (Resource r1 = new Resource("Resouce 1"); Resource r2 = new Resource("Resouce 2");) { // …

JPAでエンティティ以外のクラスにクエリの結果をマッピングする in Hibernate

JPAでそもそもそういう使い方するなよってことかもしれませんが。 ネイティブクエリを発行してその結果をエンティティ以外のクラスのインスタンスにマッピングしたいことがあるとします。 JPAの実装にHibernateを使っているときは、以下のコードで実現できま…

TomcatとGlassFishで動作が違った

ServletContext#getRealPath(String)がTomcat 6,8ではnullではなかったけれど、GlassFish 4ではnullを返しました。 This method returns null if the servlet container cannot translate the virtual path to a real path for any reason (such as when the…

Java Magazine Vol.21を読んでJava 20周年記念のステッカー(非売品)をもらおう!

Java Magazine Vol.20 「パフォーマンス特集」/Java Day Tokyo 動画・資料公開ほか【Java Developer Newsletter Japan】 Java Magazine Vol.21を読んでいただいたご感想をお寄せ下さい。 お寄せいただいた方には、Java 20周年記念のステッカー(非売品)を3枚セ…

JDK1.6だと出るけど1.7だと出ないエラー

Jenkinsのサーバを移行したところ、古いプロジェクトのユニットテスト実行時に出るようになった。 java.lang.NoClassDefFoundError: Could not initialize class javax.crypto.SunJCE_b at javax.crypto.Cipher.getInstance(DashoA13*..) SunJCE_bはjce.jar…

Jenkinsが死亡しました

死亡なんて出るんですね。ジョブ実行中にJENKINS_HOMEを削除したらこうなりました。死亡したらリンクをクリックして再度利用できるようにしないと、何も実行できないスレッドとなります。

Codehausはサービス終了しています

GroovyとかMaven関連でホスティングしていたCodehausですが、サービス終了していたんですね。 All Codehaus services have now been terminated. With increasing diversity in opensource hosting platforms like Github and Bitbucket - who are meeting t…

JavaのリリースにはCPUとPSUの2種類があります

Java™ SE Development Kit 8, Update 51 (JDK 8u51)がリリースされましたね。 僕もダウンロードしました。 さて、このJDK 8u51は「CPU」なリリースです。 実は、JavaのUpdateには2種類あります。1つは「CPU」、もう1つは「PSU」です。 CPUは「Critical Patch…

OracleでSJISのデータベースの文字列カラムにUnicodeの絵文字をJavaで格納するには

SELECT VALUE FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER = 'NLS_CHARACTERSET' -- JA16SJISTILDE SJISのデータベースの文字列カラムにUnicodeの絵文字を格納するには、NVARCHAR2型のカラムを使います。次にJavaではシステムプロパティに-Doracle.jdbc.d…

初OSS(MogileFS Javaクライアント)へのプルリクエストがマージされました

少し前の話になりますが、初めてのOSSへのプルリクエストがマージされました。 MogileFSのJavaクライアント「moji」です。 出したリクエストはこちらです。 fix ConcurrentModificationException in fm.last.moji.tracker.pool.MultiHostTrackerPool.getAddr…

Javaの良質なコンテンツを読みつつ英語に慣れよう!

Oracleが2ヶ月に1度、発行しているJava Magazineというデジタル発行物があります。 http://www.oracle.com/technetwork/java/javamagazine/index.html 記事は非常に良質で、SEの言語仕様やEEのパフォーマンス、ラズパイをJavaでやろうといった内容からJava開…

Java 8ではTLS 1.2がデフォルトですよ~

詳細はこちらで紹介されています。 Oracle Blogs 日本語のまとめ: [Java, Security] Java 8 will use TLS 1.2 as default ですが、どうしてもサーバがTLS 1.2に対応していない場合もありますよね。 そのときはシステムプロパティにて使用するTLSのバージョン…

関ジャバはJCPメンバーになりました!(+ JCP参加申込方法)

Congratulations! This e-mail message is to officially recognize that KanJava is now a JCP Member. ということで、関ジャバはJCPのメンバーとなりました! JCPは「Java Community Process」の頭文字をとったもので、JCPのメンバーになることで、Javaの…

JUGとは何か

java.netのこちらのページに詳しい記述があります。 https://www.java.net/jugs/java-user-groups 引用します。 Java User Groups (JUGs) are volunteer organizations that strive to distribute Java-related knowledge around the world. They provide a …

JITWatchでJITコンパイルを見よう!

この記事は JVM Advent Calendar 4日目 の記事です。 JVM Advent Calendar 2014 - Qiita JVM Advent Calendar 2014 - Qiita JITWatchについて JVMなみなさんは、JITコンパイルをご存知だと思います。 JITWatchは、アプリケーションにおけるJITコンパイルにつ…

関ジャバがJUGsへ入ると何が起こるのか!?

何がどうなるのかよくわからないけど、おめでとうございます。 > 関ジャバがJUGsに仲間入りしました! - Fight the Future http://t.co/SRmFSE3Wut— 口玉Scalaで女性を歓ばせるエンジニア (@Kuchitama) 2014, 11月 30 という疑問をいただいたのですが、基本…

関ジャバがJUGsに仲間入りしました!

関ジャバがJUGsに仲間入りしました! https://java.net/projects/kanjava JUGsの検索およびアルファベット順リストに出てきます。 MapはMLに地図情報を送れば登録してくれるようなので、これはTODO。 経緯 先日開催した関ジャバのJavaOne報告会で、次のよう…

JavaOne 2014のセッション動画とプレゼンテーション資料!

関ジャバでてらださんから教えていただきましたが、 JavaOne 2014のセッション動画とプレゼンテーション資料を入手することができます。 ただし、すべてではないようです。 https://www.parleys.com/channel/54254c82e4b0b39c12e10bf9/presentations https:/…

Java Champion / Java Rock Starとは!

関ジャバでも話題に上がったのですが、Javaには「Java Champion」と「Java Rock Star」という称号があります。 Java Championとは The Java Champions are an exclusive group of passionate Java technology and community leaders who are community-nomin…

関西Javaエンジニアの会スペシャル! JavaOne 2014 報告会を開催しました

関西Javaエンジニアの会スペシャル! JavaOne 2014 報告会 (2014/11/22 13:00〜) 関西Javaエンジニアの会スペシャル! JavaOne 2014 報告会 - connpass いつも来てくださる寺田さん、さくらばさんとスピーカーをしてくださった方々、ありがとうございました…