java

JavaOne 2017 全レポートへのリンクまとめ

JavaOne 2017 レポートのリンクをまとめておきます。 nobeans.hatenablog.com nobeans.hatenablog.com nobeans.hatenablog.com nobeans.hatenablog.com nobeans.hatenablog.com nobeans.hatenablog.com nobeans.hatenablog.com

JavaOne 2017 レポート 10/6 Day-6 帰国日&総括

さて、帰国日。 JavaOne 2017レポートも今回で完結です。 観光ウォーキング 今回の往復空路は羽田発着JAL便。 出発は16:05 SFO発なので、飛行機の時間まで結構時間があります。 ホテルのチェックアウトリミットは12:00ですが、ギリギリまで引きこもってるの…

JavaOne 2017 レポート 10/5 Day-5 千秋楽はMariottホテルで

いよいよ正真正銘JavaOne最終日です。 会場もMoscone WestからMariottホテルに場所を移して、なんとなくもう終わるんだよ感が漂ってきます。 今年は最終日のランチチケットがついてなかったので、参加者同士で「コスト削減でランチ配給もないのか!」などと…

JavaOne 2017 レポート 10/4 Day-4 Moscone会場最終日

翌日の最終日(Day-5)はMariottホテルの会議室がセッション会場となるので、Moscone Westに通うのはこの日が最後です。 そろそろ終わりもみえてきて、並行して会場撤収なども始まるので、この辺りからだんだん寂しい雰囲気が漂い始めます。 Polyglot Adventur…

JavaOne 2017 レポート 10/3 Day-3 技術セッション+謎のキーノート

さて、もう10日は経っていますが、粛々と3日目のレポートです。 Refactoring Design Patterns the Functional Way (in Scala) ちょっと最初の15分ほど遅刻してしまいました。 GoFのデザインパターンをいくつかピックアップして、関数型言語として良い書き方…

JavaOne 2017 レポート 10/2 Day-2 キーノート&技術セッション

さて、Day-2からがいよいよ本番です。 これ以降、技術的セッションとか真面目に掘り下げると色々破綻するので(理解できてないとか時間が足りないとか)、ざっくり駆け足のレポートでお茶を濁していきます。 なお、当日の見聞きした(気がしている)そのままであ…

JavaOne 2017 レポート 10/1 Day-1 Community Day

JavaOneの初日はCommunity Dayということで、コミュニティ主催だったり、どちらかというと技術よりもコミュニティ活動自体にフォーカスしたセッションの多い日です。 この日にトークを控えていたスピーカの方には大変心苦しいですが、個人的には耳慣らし&気…

JavaOne 2017 レポート 9/30 Day-0 サンフランシスコへ

1年以上放置してたはてなブログ、久しぶりの投稿です。 2010年、2011年から長い充電期間を経て、6年ぶり3回目のJavaOneに参加してきました。 一応、今回も会社の出張です。ありがたやありがたや。 以前はHilton、Nikko、Parc 55あたりの会議室でやっていたの…

Java8のInvokeDynamic実装一新によるGroovyのindyモードの性能改善効果が凄すぎた件

本日、Java Day Tokyo 2014に来ています。 で、ついさっきのセッションで「JDK8ではInvokeDynamic(以下、indy)の実装を一新したのですごく速くなったよ」という話を聞いたので、Groovyのindyモードで試してみました。 Groovyは2.0(現在は2.3)でindy対応され…

標準バンドルのVisualVMのウィンドウが空っぽになってしまったらキャッシュを削除すべし

経緯的な 9月にTwitterにぼやいた件のその後。 7u40のretina対応のおかげでjvisualvmもくっきりきれいになってるなー— Yasuharu Nakano (@nobeans) 2013, 9月 12 と思って、7u25と比較したりしてたら、メインウィンドウに何も表示されなくなってしまった...—…

"Java SE 7 リリース記念 特別イベント"懇親会LTでのGParsのFork/Joinについての宿題の解答

最後が若干投げやりですが、やっとまとまりました。 はじめに 先週の7/7(木)に"Java SE 7 リリース記念 特別イベント"の懇親会でLTをしてきました。 JavaSE7 Launch Event: Java7xGroovy View more presentations from Yasuharu NAKANO "Java7のその機能Groo…

JavaOne2010 9/23 -- Writing Domain-Specific Languages (DSLs), Using Groovy

Groovyコミッタ、我らがPaul King*1のセッション。全面的にGroovyでお送りしております。 JavaOne最後のセッションなので、リアルタイムついったー実況、いわゆるtsudaりに挑戦してみました。 というわけで、ツイートを補足する感じでまとめてみます。 from …

JavaOne2010 9/22 -- Polyglot Programming in the Java Virtual Machine (JVM)

9/21の「Code Generation on the Java Virtual Machine: Writing Code That Writes Code」と同じく、Groovyベースのデスクトップ系GUIアプリケーションのフルスタックフレームワーク(長い)であるGriffonのPJリーダのAndres Almirayのセッション。Groovyの…

JavaOne2010 9/22 -- Project Lambda: To Multicore and Beyond

ついにJavaにもクロージャ導入か!?という、注目のProject Lambdaのセッションです。実際のところ、クロージャと言うより、匿名内部クラスよりは見やすい新たなラムダ式の記法ってだけなんですけども。とりあえずメンドイし、厳密な定義とかあまりよく知ら…

JavaOne2010 9/22 -- A Lean, RESTful Java Architecture for Building Rich HTML5 Web Applications

HTML5+RESTで今時のリッチなWebアプリを構築するテクニックかと思ったら、普通にSpringMVC 3.xのオレオレ語りセッションだった。 なんだかタイトルではよく分からないセッションが多いなぁ。こういうものなのか。 とはいえ、SpringMVCをあまり知らない自分に…

JavaOne2010 9/21 -- Speedy Scripting: Productivity and Performance

JavaFXの開発者で、KawaというJVM上のSchem実装の開発者でもあるPer Bothnerによる、高性能スクリプト言語を設計する際のポイントを説明するぜ!という超ニッチなセッションでした。言語設計者のためのセッションであり、スクリプトを速く書くためのノウハウ…

JavaOne2010 9/21 -- The Modular Java Platform and Project Jigsaw

Javaには膨大な数のライブラリがあり、我々開発者としてはそれらを使うことで既存の枯れた機能を簡単(?)に利用できてウハウハな訳ですが、ライブラリのJarファイルの管理はどうにも大変ですね。 Jar同士の依存性管理とか、手動でがんばるとありえないし。 と…

JavaOne2010 9/21 -- New Java Virtual Machine Tricks: Enhanced Hot Code Replace and Mixin Generation

RooのBen Alexと、Spring LoadedのAndyの二人で、前半と後半を担当したセッション。 前半のBen AlexのRooパートは、前日(9/20)のRooセッションのそのままダイジェスト。 うえぇぇという感じだけど、例のGoogle騒動で急遽追加されたセッションなのかなぁ。 ま…

JavaOne2010 9/21 -- Code Generation on the Java Virtual Machine: Writing Code That Writes Code

Groovyベースのデスクトップ系GUIアプリケーションのフルスタックフレームワーク(長い)であるGriffonのPJリーダのAndres Almirayのセッションです。ホントは、Canooの同僚であるHamlet D'arcyの担当セッションだったんですが、なにやらの事情でAndresが担…

JavaOne2010 9/20 -- Extreme Java Productivity: Enterprise Applications in Just Minutes

タイトルからはわかりづらいけど、要はSpring Rooのセッションです。 スピーカは、最近GDDにも出没したらしいBen Alex(ホント?)。 http://www.springsource.org/roo Java開発者向けの、使いやすく、拡張しやすい、テキストベースのRADツール。 RADとは【R…

JavaOne2010 9/20 -- What's New in Grails 1.3?

GrailsのPJリーダのGraeme Rocher*1によるGrails1.3の機能紹介。 正直なところ、JGGUGのワークショップでさんざん山本さんが発表されてるのでほとんど新しい情報はないですが、一応メモをとったので書いておきます。 "2006年ごろからサイトのトラフィックが…

JavaOne2010 9/20 -- Groovy: To Infinity and Beyond

GroovyのPJリーダのGuilliame Laforgeが体調不良でJavaOneに参加できなくなったため、急遽Grails開発メンバのJeff Brownが代役で登壇。 流れとしては↓のような感じ。 過去編:Groovy1.6以前の振り返り 現在編:Groovy1.7で追加された機能 未来編:Groovy1.8…

JavaOne2010 9/20 -- Java SE: The Road Ahead

JavaOneも先週終わってもう一週間経とうとしている今日この頃、今更感が超濃厚ですが、セッション内容をまとめざるを得ない事情が色々とあり、せっかく書くならということでここにも晒しておきます。変なところがあったら突っ込んで下さい。 *** Java SE …

システムプロパティでプロキシを指定する正しい方法とは?

※元々は1つのエントリだったのですが、Grapeの話とはあまり関係ない方向に進んだので、エントリを分離してみました。 -DproxySet=trueって必要? なんか色々ぐぐってみると、Javaでプロキシ指定する場合はproxySet=yes(or true)というプロパティも必要だ、…

100%ピュアJavaでeachやcollectを実現してみたら、ワリと普通だった...

はじめに 100%ピュアJavaでダックタイピングを実現してみたら、違う何かになっていた・・・ - 豆無日記 のダックタイピングに引き続き、rubyっぽい何かをJavaでやるとどうなるのかと妄想したシリーズ第2弾。今度は、eachやcollectで有名なイテレーション処理…

100%ピュアJavaでダックタイピングを実現してみたら、違う何かになっていた・・・

2013/9/29 追記 CodeReposがなくなってたのでgithubにアップしておきました。 https://github.com/nobeans/jduck 今回のポイント 100%ピュアJava 動的言語を裏で呼び出すとか、そんなことはしません。普通にJavaのみ。 デフォルトのライブラリのみ バイトコ…

メソッドジェネリクス構文と型推論によるキャストの限界

Hoge hoge = new Hoge(); hoge.hoge()Javaの型推論Utilsクラスのカラクリ 知らなかった....。使えるなコレ。でも、汚いなぁ。 戻り値型に依存した型推論を利用するCastUtilsを使ってたんだけど、mavenでコンパイルしたときだけ Test.java:8: 型パラメータ E …

JDKを5→6にしたらEclipseでDaoのテストだけエラーになった

事象 Caused by: java.lang.NoClassDefFoundError: Could not initialize class sun.text.normalizer.NormalizerImplといわれて、derbyの接続ができない。http://forums.java.net/jive/message.jspa?messageID=223834↑に書かれているようにもう一度JDK6、JRE…

xerces でutf-8なXMLの日本語コメントの解析に失敗してエラー

Eclipseではテストが通るのに、maven2で実行するとこんなエラーが出る。 org.xml.sax.SAXParseException: Invalid byte 3 of 3-byte UTF-8 sequence. とか、 java.io.UTFDataFormatException: invalid byte 3 of 3-byte UTF-8 sequence (0x3f) 原因は色々考…

3項演算子とジェネリクスの戻り値形依存タイプとの相性

組み合わせによってイヤンな場合があるようだ。 // (1) Set<String> hoges1 = Collections.emptySet(); //--> OK // (2) Set<String> hoges2 = (true) ? Collections.emptySet() : new HashSet<String>(); //-->NG:コンパイルエラー // (3) Set<String> hoges3; if (true) { hoges3 = Collect</string></string></string></string>…