2015-01-01から1年間の記事一覧
プロセスIDの取得 スレッドダンプの取得 Windowsでプロセスをサービス起動している場合 スレッドダンプを読む プロセスIDの取得 まずは Java のプロセスIDを取得するところから始める。jps で取得できる。 $ <JAVA_HOME>/bin/jps -l 主要なオプションは以下の通り(SunVM</java_home>…
wildfly-swarm とは JavaEE アプリケーションを Dropwizard や Spring Boot のようにコンテナごと fat JAR 化する 先日 1.0.0.Alpha4 がリリース WildFly 10.0.0.Beta1をベース 以前から要望のあった Netflix OSS サポート(Ribbon, Hystrix) Keycloak による…
管理にまつわる神話 開発に必要な手順書も標準集も揃っている。必要なことをすべて部下に教えられないだろうか スケジュールに遅れたなら、さらにプログラマを追加すれば取り戻せる ソフトウェアプロジェクトを第三者機関に委託すれば、リラックスでき、その…
blog1.mammb.com の続きで Phoenix。 Elixir 版 RoR の Phoenix Framework。現在のバージョンは V0.15.0。 公式サイト http://www.phoenixframework.org/ Github https://github.com/phoenixframework/phoenix 事前準備 必要に応じて以下を入れておく。 node…
導入 Homebrew での導入は以下。 brew update brew install elixir バージョン確認。 $ elixir -v Elixir 1.0.4 Erlang も入る。 erl -version Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 6.4 IEx (Interactive Elixir) 対話型シェルで、各種…
sun.misc.Unsafe とは sun.misc.Unsafe はネイティブメソッドを利用して Java のメモリモデルを書き換えるAPIを公開しています。 OpenJDKのJavaDocが以下で確認できます。 http://www.docjar.com/docs/api/sun/misc/Unsafe.html sun.misc.Unsafe のインスタ…
Instant Instant は時系列上のある一時点を表現します。 Instant の内部では、以下のように seconds と nanos というフィールドで、ある時点からの経過時間をナノ秒の単位で保持します。 public final class Instant implements Temporal, TemporalAdjuster,…
エラトステネスの篩とアトキンの篩って実際どのぐらい違うのか気になったのでー エラトステネスの篩 倍々しながら篩から落としていくアレです。 public interface Primes { /** * Sieve of Eratosthenes. * @param upperBound upper bound * @return List of…
blog1.mammb.com からの続きで、簡単な Hello Scalate をしてみます。 Scalate とは Scala で書かれたテンプレートエンジンで、以下のシンタックスがサポートされています。 Mustache: 多くの言語で実装があり どこでも使えるテンプレートエンジン Jade: 軽…
blog1.mammb.com からの続きで、簡単な Hello Scalatra をしてみます。 Scalatra とは web micro-framework とされている通り、非常にコンパクトな Web フレームワークです。 以下のような Sinatra 風の DSL が利用できます(Scala + Sinatra = Scalatra)。 g…
Scala のビルドツールと言えば sbt ですが、もちろん Gradle でも簡単に始められます。 ここでは Gradle の scala プラグインを使った Hello World を見ていきます。 プロジェクトの作成 Scala プラグイン Main オブジェクトの作成 アプリケーションの実行 …
気づいたら勢いで訳していたので貼っておきます。 名前 mustache - ロジックレステンプレート. 書式 典型的な Mustache テンプレート: Hello {{name}} You have just won {{value}} dollars! {{#in_ca}} Well, {{taxed_value}} dollars, after taxes. {{/in_…
Word ドキュメントを作成する ドキュメントにテキストを書き込む テキストのプロパティを設定する 段落に対してプロパティを設定する ドキュメントのテキストを取得する テーブルを作成する テーブルのサイズを指定する 需要はほとんど無いとは思いますが、…
blog1.mammb.com に引き続き、 blog1.mammb.com をKotlin化してみます。 設定ファイルなどは同じものを利用するので必要に応じてこちらを参照してください。 Resources.kt CDIの Produces を提供する Resources です。 package example; import javax.enterp…
Kotlin で簡単なサーブレットを。 HelloWorld.kt package example import javax.servlet.annotation.WebServlet import javax.servlet.http.HttpServlet import javax.servlet.http.HttpServletRequest import javax.servlet.http.HttpServletResponse [WebS…
Gradle で Kotlin 始める導入手順です。 Kotlin の Gradle プラグインは今のところ https://plugins.gradle.org に登録されていないので以下のようには書けません。 plugins { id "org.jetbrains.kotlin.kotlin" version "0.11.91.2" } buildscript でクラス…
Iterator から Stream を得る 配列から Stream を得る Enumeration から Stream を得る 文字列を split した結果から Stream を得る 乱数 Stream を得る 数列の無限 Stream を得る org.w3c.dom.NodeList からStreamを得る ソート済みの Stream を得る Iterat…
RxJava は ReactiveX (Reactive Extensions) の JVM 実装で、平たく言うと非同期のイベント処理を簡素に書ける、単なるライブラリです。 "Rx = Observables + LINQ + Schedulers" などと表現されます。なんですかこれ?大げさな抽象概念を掲げすぎて意味不明…
Kindle 本のゴールデンウィークセールが開催中です。 結構数が多いので、技術書を抜き出してみました。 Kindle 端末なくてもアプリ入れれば読めるので、60% OFFの機会に手に入れておくのもよいのではないでしょうか。 組織パターン作者: James O. Coplien,Ne…
Build Init Plugin init タスクで build.gradle などをよろしく作れます。 試験的な提供なので将来が計画されていますが、Gradle 2.3 時点でどのようなになるかメモしておきます。 (2017/02/22 追記) 現在は java-application が追加されているので加えまし…
Haskell Try it の所がコンソールになっていて、help と打つとインタラクティブなチュートリアルが始まります。 ロゴも美しくなっており、教材用のビデオも提供されています。 Kotlin groovy scala Swift python TypeScript Dart ceylon F# HAXE Rust elixir…
JavaFX8 を Gradle でビルドするのは色々と手間なことが多く、 (javafx-gradle plugin)https://bitbucket.org/shemnon/javafx-gradle/overviewを使うのが手っ取り早い。 現在 0.4.0 がリリースされているので、以下のような build.gradle を用意(gradleは新…
Spock では Groovy の動的な特性を生かした柔軟な Mocking テストが実現できます。 blog1.mammb.com 前回に続いて、Spock のモック機能について見ていきましょう。 Mock を作成する インタラクションを検証する Mock の振舞いを定義する Mock オブジェクトの…
Spock とは build.gradle HelloSpock 仕様(テストケース)の構造 フィールド fixture メソッド feature メソッド helper メソッド データドリブンなテスト @Unroll data pipe Stack の仕様例 例外の検証 例外とならないことの検証 タイムアウトを適用する Ham…
最近 Firefox に戻ってきていて、 スクリーンキャプチャ機能が すごくイイ ことに気づきました。 開発者ツール レスポンシブデザインビュー メニューから またはこちらのボタン このボタン押す 横のプルダウンでスクリーンサイズ変えたら このボタン ダウン…
JPA 2.1 で Criteria API 経由での一括更新と一括削除が可能となりました。 Criteria API の変更点 JPA 2.1 では CriteriaUpdate と CriteriaDelete インターフェースが追加され、 CriteriaBuilder の createCriteriaUpdate(Class<T> targetEntity) と createCr</t>…
簡単にできそうで意外と面倒な package 配下のクラス一覧を取得する方法について。 Guava の ClassPath 利用 Reflections 利用 Spring ライブラリ利用なし ToolProvider で取得 Guava の ClassPath 利用 ClassPath を使えば簡単に取得できる。 ClassLoader l…
Tomcat を組み込みで扱う最小限のサンプルです。 最小限の組み込み Tomcat main から最低限の設定をして組み込みの Tomcat を起動します。 package embed; import org.apache.catalina.Context; import org.apache.catalina.servlets.DefaultServlet; import…
JPA Read-Only マッピング JPA では今のところ読み込み専用で Entity を定義することはできない。 マッピングの定義で読み込み専用に定義することはできる。 @Entity public class Employee { @Id @Column(insertable=false) private int id; @Column(insert…
Converter の使用例 Converter の自動適用 Embedded 属性の変換 Collection 属性の変換 クラスレベルでの Converter 指定 orm.xml での Converter 指定 注意点 データベースのカラムと Entity の該当する属性の変換を Converter で定義できるようになりまし…