Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。この本では、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...
New JavaScript library brings Java to browsers without applets JavaPoly.js imports existing Java code and invokes it directly from JavaScript Melding the worlds of Java and JavaScript, JavaPoly.js extends native Java Virtual Machine support to browsers via a library serving as a polyfill. JavaPoly.js enables developers to import existing Java code and invoke it from JavaScript. "It finally allows
TL;DR JDK(tools.jar)中、com.sunパッケージ配下に、javacが内部的に使っている「com.sun.tools.javac.util.List 」が含まれており、これは不変データ構造としてのリストのように(Cons セルベースのリストのように)利用できる。 はじめに ScalaのコードをGroovyやJavaなどに移植する際に、いつも悲しい思いをするのが不変データ構造に基づいたリスト処理ライブラリが見あたらない、ということでした。JDKの標準コレクションライブラリには、Scalaのscala.collection.immutable.Listのような、不変データ構造を用いて実装されているリストがありません。 ここで言う不変データ構造に基づいたリストとは、JDKのjava.util.Collections.unmodifiableList()等で取得できるような変更禁
A version of this post updated for Java 9 is available on Medium.com First off, let me be perfectly honest, if you have any choice besides using JNI, do that other thing. Dealing with native libraries has been my number one source of pain when supporting Java applications. Now with that warning out of the way, sometimes you just can't avoid using JNI. For those who must go there, I hope this examp
by Tomasz Nurkiewicz Several techniques for running programs concurrently and tools for asynchronous programming Despite popular belief, Moore's law is still holding. However, due to physical limits hardware manufacturers are no longer increasing the frequency of single-core CPUs. Instead we see more cores and more CPUs, even on mobile devices. Java is not behind with respect to this trend. In thi
scalaでjavaのcollectionを使う場合は、scala.collection.JavaConversions以下をimportしておけば、便利なimplicitのmethodが定義されているので、自動でscalaのcollectionに変換されます。 それの実装がどうなっているかのメモ。(versionは2.8.1) たとえば、java.util.Listを変換する場合どうなるかというと、 implicit def asScalaBuffer[A](l : ju.List[A]): mutable.Buffer[A] = l match { case MutableBufferWrapper(wrapped) => wrapped case _ =>new JListWrapper(l) } というasScalaBufferというmethodが定義されていて、暗黙的に、muta
Hot on the heels of our 1.0 milestone release, we are very excited to bring you RoboVM 1.1! Let’s run through the new goodies. Make sure to read until the bottom, a special surprise awaits! Interface Builder Support (alpha) Interface Builder integration is free to use until the 1st of May 2015! This includes users of our free open-source package as well as users with a license key! Up until now, y
ScalaのFutureといえば、 import scala.concurrent._ import scala.concurrent.ExecutionContext.Implicits.global をimportしてfuture関数を使うんだよみたいな話だと思いますが、Javaのjava.util.concurrent.ExecutorServiceやjava.util.concurrent.Executorも使用することができます。 まあ、そんなに面白い話しでもないですし、知ってはいましたが試してみたくなったので。 とりあえず、普通にScalaのFutureを使う簡単な例は、こんな感じ。 import scala.concurrent._ import scala.concurrent.ExecutionContext.Implicits.global import scala.c
最近、ちょっと身の回りでコマンドライン引数の処理が話題に挙がりまして、ちょっとJava系でどんなのが使えるのか調べてみました。 ちなみに、もともと話が出たのはJavaでしたが、このエントリでは加えてGroovyとScalaも書きたいと思います。 実行するコマンドのお題は、以下とします。 指定されたメッセージを、指定された回数表示するコマンドLoopEchoを実装する 「-m」オプション(ロングオプション「--message」)で表示するメッセージを指定し、必須項目とする 「-c」オプション(ロングオプション「--count」)で表示回数を指定し、任意項目とする(デフォルト値:3) Java/args4j このエントリを書く元になった仕事の上では(残念ながら自分が実装するわけではないので)、Commons CLIになったのですが、今回はこちらを使用したいと思います。 args4j : Jav
以下のような経緯で、BigDecimalをいじっていて、知らなかったことがいくつか出てきたので、まとまりが無いですがとりあえずわかったことを順に書いていきます。 前提知識として、BigDecimalはDoubleなどで表しきれない大きな数を表すためのクラスです、そしてscala.math.BigDecimalは、java.math.BigDecimalの薄いラッパーです。単に、BigDecimalといった場合、どちらのこと言ってるのかわかりにくい・・・。 play2scalaz という自作のライブラリで、テストが途中で停止する(?)問題に遭遇 スレッドダンプ取得してみたら、BigDecimalがあやしい Play2のJsonの数字を表すJsNumberは、内部で一旦scalaのBigDecimalとして保持している*1 なので、play2scalazのテストで、BigDecimalからJs
最近いくつかlombokが話題になってた lombokで快適Java生活 サイバーエージェント公式エンジニアブログ JavaでIDEのアクセッサ生成よりlombokを使ったほうがいい理由 Java特有の冗長なコードを簡潔に記述する「Lombok」 codezine ので、twitterなどでは何度かつぶやいた私見を、改めてblogにも書いておこうかと思います。Scalaもlombokも好きなので、ある意味「Scala使えばいいじゃん」という単純な意見に対する反論でもあります。 lombok自体のそれぞれの細かい機能の紹介は、先ほど上げたリンク先で既に語られてるのでしません。 lombokがScalaに比べて優れている点 IDEの恩恵 (自分はeclipseである程度やっていましたが)ほぼ素のJavaを書いているときと同じくらいの快適さです。対して、Scalaでは、IDEAだろうがeclip
"Scala Improvement Process" という新機能などの提案のための機構があって、最近SIP-21「Spores」というものが提案されました。 http://docs.scala-lang.org/sips/pending/spores.html 最終的にそれの話をするのですが、その前に前提としてJavaやScalaのクロージャや無名クラスの話をするのと、それらについて調べたら自分も知らなかった事実が発覚したのでそれについても書きます。 まず、Javaの話。ちなみに環境は1.7.0_21です。 以下のようなclassを用意して、ScalaのREPLでFの無名クラスについて調べてみます。 以上から、 Fの無名クラスは、コンストラクターで外部のクラスのインスタンスを受け取る かつ、それをfieldに保持している Fの無名クラスは「IntegerからStringの変換」という処
MapReduceを調べていて、少し前のScalaとHadoopを使ったプログラムを書くと、Hadoopがインナークラスをメソッドの引数に強制するので、面倒、という記事を見かけました。 要は、こういうやつです。 override def map(key: LongWritable, value: Text, context: Mapper[LongWritable, Text, Text, IntWritable]#Context) { 型引数も省略できないので、面倒ですよね〜という話でした。 staticでないインナークラスを引数に取る時は、こんな書き方をするのかぁ…と思い、知らなかったのでちょっと試してみることにしました。 *パス依存型と言われるものは、以前にマクロとかで使いましたけど これを実行した環境は、 Scala 2.10.1 sbt 0.12.2 Java 1.7.0 upd
ふと、書いてみたくなりまして。だいたいスクリプト系の言語で、よく忘れてしまうのが書いた動機です…。 記載パターンは、以下の2通り ファイルの中身を全て読み込んで、1つの文字列として変数contentsに格納 ファイルの中身を全て読み込んで、改行無しの1行を要素としたリストの変数linesに格納 あと、前提は以下の通り 読み込むファイルの名前は「input.txt」で、中身のエンコーディングは「UTF-8」とする ファイルを開く時に、エンコーディングは「UTF-8」と明示的に指定する 実行効率は求めない ファイルの中身がメモリに乗り切らないなんて考えない 言語の標準ライブラリだけで実装する 要は、簡単なスクリプト的にファイルを読み込みたい時に使うことを想定してます。 最後に、読み込んだ内容を出力します。 では、いってみましょう。 Java いっつも面倒だと思っていたのですが、JDK 7からだ
Twitterで流れているのを見て。 自分は、このブログを書いている時はJavaでもsbtを使うことが多いですが(たまにGradle)、そういえばアーティファクト名についてはあんまり気にしてなかったですね…。 だいたい、runして終了!ってパターンが多いからですか。 元ネタは、こちら。 http://stackoverflow.com/questions/8288859/how-do-you-remove-the-scala-version-postfix-from-artifacts-builtpublished-wi/8291387#8291387 何の話をしてるかって、例えば build.sbt name := "hello-world" version := "0.0.1" organization := "littlewings" src/main/java/HelloWorld
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く