Java 上の JavaScript エンジン Nashorn で Java ライブラリを使う

Nashorn スクリプトから外部 Java ライブラリを使うのは意外と面倒です。 Nashorn の基本的な使い方は以下を参照ください。 etc9.hatenablog.com ここでは、Nashorn スクリプトから Ivy を使い、外部の Java ライブラリを使う方法を紹介します。 クラスパス …

JUL を少しマシにする

JUL に対する不満 Java でログ出力する場合は、大抵 SLF4J + logback を使いますが、なるべく外部ライブラリに依存したくない時もあります(ちなみに SLF は Simple Logging Facade の略です)。 そんな時には Java 標準のログAPI Java.util.logger に手を出し…

Windows でファイル日付を変更する

Linux では touch Linux でファイルのタイムスタンプを変更するには touch でサクッとできます。 最終アクセス時刻を変更(2017年07月23日12時30分) $ touch -at 20170723123000 hoge.txt 最終更新日時を変更 $ touch -mt 20170723123000 hoge.txt -t は日時…

MXBean から取得できる情報あれこれ

Java Management Extensions の主要どころの簡単なまとめです。 RuntimeMXBean ランタイム関連情報の取得。 RuntimeMXBean runtimeMx = ManagementFactory.getRuntimeMXBean(); 以下のような情報が取得できます。 メソッド 出力例 説明 getVmName() Java Hot…

RebelLabs による Java ツール & テクノロジ 調査レポート 2016

RebelLabs による 2016年度の Java ツール & テクノロジの調査結果が公開されました。 2,040名の Geeks に対する調査結果ということで、気になった箇所をピックアップ。 Intellij IDEA が首位に Eclipseが過半数割れてIDEAが首位になりました。 JavaEEはどの…

2003年に IEEE から出された Michael Cusumano らによる国際的 Survey

前回のプロジェクトの成功率についての Survey に続き、国際的な Survey の結果紹介です。 etc9.hatenablog.com 2003年に IEEE から出された Michael Cusumano らによる国際的 Survey 2001年から2002年の間に以下の組織を対象に調査。 インド Motorola India…

ソフトウェア開発プロジェクトの成功率

Scott W. Ambler の Survey スコット・アンブラー(Scott W. Ambler)氏は定期的にITプロジェクトの Survey を出してくれています。 アンブラー・スコット と言えば、ディシプリンド・アジャイル・デリバリー(DAD)、アジャイルモデリング(AM)、アジャイル統一…

Java の上の JavaScript エンジン Nashorn の基本

Nashorn とは Java7 までは JavaScript スクリプティングエンジンとして Rino が同梱されていましたが、Java8 からは Nashorn が同梱されるようになりました。 ナースホルン(Nashorn)はドイツ語でサイを意味します。 Nashorn は ECMAScript-262 に準拠してお…

Amazon RDS(Oracle) の rdsadmin パッケージ

etc

RDS はマネージド・サービスなので、OSにログインしたり、sysdba でDBに接続することはできない。 その代わり rdsadmin という PL/SQLパッケージで必要な操作ができるようになっている。 よく使いそうなものは以下かなぁ。 Oracle RDS セッションの強制終了a…

Java8 で追加された Exact 系メソッド

Java8 の目立たない変更として、Math クラスにオーバーフロー時には例外を投げるExact (正確な) 系メソッドが追加された。 いずれも int または long を引数に取るようにオーバーロードされている。 算術演算の結果がオーバフローする場合には ArithmeticExc…

JSF ライフサイクルはソース見るのが手っ取り早い

JSF のライフサイクルを理解するにはソース見てしまうのが一番早いですねー。 いまさらですが、Mojarra 2.2.13 のソースでライフサイクルを追ってみます。いまさらですが。 大枠を眺めるため、ソースは大幅に削ったり加工したりしたものなのでご注意ください…

Payara Micro clustered CDI Event Bus -インスタンスを跨いだCDIイベント-

Clustered CDI Event Bus Payara Micro は Glassfish を元にしたマイクロサービス向けの JavaEE コンテナです。 Payara Micro の簡単な概要は以下を参照してください。 etc9.hatenablog.com Payara は Hazelcast でクラスタサポートをしており、Payara Micro…

macOS Sierra で NetBeans から GlassFish が起動できない (というか起動はするけど繋がらない)

Sierra にアップデート後、NetBeans のサービスタブから GlassFish を起動しても応答が帰ってこない事象があり、あまり情報が落ちていないので書いておきます。 事象 NetBeans の GlassFish バンドル版をインストール時、インストールにえらい時間がかかる(…

日本人の名字をランダムに抽出する 〜 Alias Method 〜

なにがやりたいか 日本人の名字をランダムに取得したい。 ただし、佐藤さんや鈴木さんはより多く、大柿さんや桑畑さんは低頻度といった具合に、名字の分布に応じた確率で取得したい。 重み付きランダム 発生確率に重み付けされたランダムで、復元抽出(ある特…

JSF で JQueryUI Sortable を使う

最近すぐに忘れてしまうので、細かいことでも書いておこう。 テーブルの一覧画面の並び順や項目名、表示/非表示などをユーザが自由にカスタマイズする機能追加の対応があった。 ユーザ独自のビューとして画面で見たり、ダウンロードして他のシステムに投入し…

Class#getEnumConstants() って初めて使った気がする

Enum#values() ある Enum の値を取得したい場合は Enum の static メソッドである values() を使う。 public enum Fruits { APPLE, ORANGE, BANANA; } Fruits.values(); この values() の実装は、コンパイラが生成してクラスに埋め込む。 言語仕様的には 8.9…

リリース間近 JUnit5 に備えよう

はじめに JUnit5 のリリースが近づいています。現在は M2 で M3 の作業が進んでいます。 今のところの予定は以下のようになってます。 2016/10/21 M3 リリース 2016/11/30 M4 リリース 2016/12/30 M5 リリース JUnit4 とは(中身は)全く別ものです。が普通に…

Payara micro で Hello World

Payara とは Glassfish から fork した JavaEE アプリケーションサーバです。 Glassfish は Oracle による商用サポートの提供が廃止されましたが、Payara は Payara Team による商用サポートが提供されています。 Glassfish 4.1 のコードベースに対してバグ…

遅延初期化とvolatileにまつわるエトセトラ

JSON Processing Java API for JSON Processing (JSR 353) の RI 実装を見ていたらこんなコードがありました。 abstract class JsonNumberImpl implements JsonNumber { // ・・・略 // Optimized JsonNumber impl for int numbers. private static final cl…

Docker for mac 正式版が公開されたので改めて導入手順を見てみましょう

2016年7月28日 「Docker For Mac And Windows Is Now Generally Available And Ready For Production」というポストで Docker For Mac と Docker For Windows の正式リリースが発表されました。 2016年3月に公開された限定ベータ、パブリックベータを経た い…

ディシジョンテーブルをカルノー図で簡単化するか?

SlideShare でこんなスライドがあった。 エスイーが要件定義でやるべきたったひとつのこと from Yoshitka Kawashima www.slideshare.net ディシジョンテーブルはいいけど、カルノー図かいて整理してロジックに落としましょう。 という至極まっとうなもの。 …

未来を感じずにはいられないクラウドIDE 〜番外編 Codenvy〜

前回は Cloud9 で Java開発環境の構築について見てみました。 etc9.hatenablog.com Cloud9 による Java サポートはまだまだこれからといった感じでした。 今回は Eclipse Che が使えるクラウドIDE である Codenvy を簡単に見ていきましょう。 Eclipse Che と…

未来を感じずにはいられないクラウドIDE 〜Cloud9〜 Java開発編

前回は Cloud9 の導入方法を見てきました。 etc9.hatenablog.com 今回は Cloud9 IDE による Java 開発について見ていきましょう。 Cloud9 IDE の言語サポートは、今のところ PHP, Ruby, Python, JavaScript(Node), Go が手厚くなっています。 Java 向けサポ…

未来を感じずにはいられないクラウドIDE 〜Cloud9〜

Cloud9 IDE とは Webブラウザ上で動作する統合開発環境です。 クライアント環境に依存せず、Docker コンテナ上に構築されたワークスペースを共有でき、GitHub や Heroku などのサービスとの連携もスムーズです。 あらかじめ容易されたワークスペースのテンプ…

サーバサイドエンジニアのためのフロントエンド入門 〜ECMAScript編〜

フロントエンドの移り変わりが激しすぎてついていけない。 というサーバサイドエンジニア向けのフロントエンドの概要第3回目です。 より深い話題については他を当たってください。。 前回は CSS について見ました。 etc9.hatenablog.com 今回は ECMAScript …

サーバサイドエンジニアのためのフロントエンド入門 〜Sass編〜

フロントエンドの移り変わりが激しすぎてついていけない。 というサーバサイドエンジニア向けのフロントエンドの概要第2回目です。 より深い話題については他を当たってください。。 前回までで、node と gulp を導入しました。 etc9.hatenablog.com 今回は …

サーバサイドエンジニアのためのフロントエンド入門 〜環境編〜

フロントエンドの移り変わりが激しすぎてついていけない。 というサーバサイドエンジニア向けのフロントエンドの概要です。 より深い話題については他を当たってください。。 node とは 近年のフロントエンド開発は node が無くては始まりません。 説明の必…

JAX-RS でリソースを動的ディスパッチする

Subresource Locator JAX-RS では @Path アノテーションでリクエストURLを、@GET などのアノテーションで HTTPメソッドをマッピングします。 HTTPメソッドを指定するアノテーションを付けず、@Path アノテーションだけを定義し、戻り値としてリソースクラ…

これぐらいでイイ これぐらいがイイ Riot.js

Riot.js(ライオット) とは React と Polymer のコンセプトをすごくシンプルに体現したUIライブラリです(Riot 2.0)。 公式サイトでは大きく以下が挙げられています。 CUSTOM TAGS ENJOYABLE SYNTAX VIRTUAL DOM TINY SIZE しかし、一番のポイントは、「Small …

3人のプログラマの話

etc

あるIT部門で一人の男が難しい顔をしてPCに向かっていた。 「あなたはここでいったい何をしているのですか?」 「何って、プログラミングに決まっているだろ。朝から晩まで、設計書の内容を間違わずにコードに落とさなきゃいけないのさ。あんたにはわからな…