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

gRPCを使ってみた

gRPC for Javaをいじってみたので、使い方のまとめ gRPCとは Googleが開発した、RPC(Remote Procedure Call)を実装するためのフレームワークです。 Protocol Bufferを利用した高速通信、.protoによるインターフェース定義、JavaやNode.jsなどを含む、多数の…

Spring Boot で組み込みDerbyデータベースを使う

【2016/06/14 追記】 JPAの部分は、Spring Data JPAの機能を利用するとpersistence.xmlを書かなくても動かせるはずです。コードを直したら、本ブログも修正する予定です。 コメント頂いた@makingさん。ありがとうございます。 先日のJava Day Tokyo 2016では…

ローカル環境のWebLogic Serverに、warを自動デプロイする

WebLogic Maven プラグインには、ビルドした成果物をテスト環境に自動デプロイする機能があります。 今回は、この機能を使って、ローカルPCで稼働するDockerコンテナ上のWebLogic Serverに、Mavenから自動デプロイしてみます。 この機能の本来の用途は、イン…

東京Node学園 20時限目で発表してきました

約1週間ほど立ってしまいましたが、4/5に開催された東京Node学園 20時限目に、発表者として参加してきました。 東京Node学園 20時限目の全体のまとめについては、すでに受付の方が書いてくださったブログと、Togetterがありますので、この記事では、各発表資…

WebLogic Mavenプラグインを使って依存モジュールの解決を楽にする

jBatch×WebLogicのネタも考え中ですが、閑話休題ということで。 以下のような開発をしているエンジニアの方は、WebLogic Mavenプラグインを利用するのがおすすめです。 WebLogic Serverで動かすアプリケーションを開発している アプリケーションのビルドにMa…

パーティショニングを使ったjBatchのサンプルアプリケーションを作った

本記事では、先日のWebLogic Server勉強会で、デモに使用した、jBatchのサンプルアプリケーションを紹介します。 このアプリケーションでは、jBatchのパーティショニングを利用した並列処理を実装しており、ジョブの開始時に、パーティション数とスレッド数…

Dockerコンテナ上にWebLogic Serverのクラスターを構成する

先日のWebLogic Server勉強会 特別編では、DockerコンテナでWebLogic Serverのクラスターを構成するデモを紹介しました。 Oracle公式のDockerfileのリポジトリにいくとreadmeにコマンドの使い方が記載されていますが、勉強会では若干アレンジして使っていた…

2/16 WebLogic Server 勉強会に登壇しました

2/16にオラクル青山センターにて開催された、WebLogic Server勉強会 特別編に登壇いたしました。会場まで足を運んで頂いた方も、リモートで聴講頂いた方も、ご参加いただきありがとうございました。 当日の資料は、SlideShareのOracle Fusion Middlewareアカ…

Cygwin 環境構築手順の備忘録

Cygwinに関しては、本格的に使うようになって約半年程度の初心者ですが、追加パッケージの導入など環境の変更がだいぶ積み重なってきました。 そろそろ何をやってきたか思い出せなくなりそうなので、やった作業と手順の参照先を残しておくことにしました。 u…

WebLogic Server 12.2.1で、動的クラスターの自動スケーリングを試してみた

WebLogic Server 12cR2では、クラスターのメンバーを自動的に増減する機能が追加されました。この機能では、スケジュールベース、メトリックベースの動的スケーリングをサポートしています。 スケジュールベース 予め指定されたスケジュールで、クラスターメ…

Oracle Database Express EditionにjBatchのJobRepositoryを構成する(Dockerコンテナもあります)

jBatchを使うには、JobRepositoryと呼ばれる、ジョブのステータスやシリアライズされたcheckpointinfoを保持するデータベースが必要です。 Oracle WebLogic Serverでは、デフォルトではDerbyの組み込みデータベースを利用しています。しかし、これはあくまで…

jBatchを使ってバッチアプリケーションのサンプルを作ってみた

WebLogic Serverも、先日リリースされた12cR2でJava EE 7に完全対応となりました。 そこで、Java EE 7から加わった仕様である、jBatchを使って、簡単なサンプルアプリケーションを作ってみました。 jBatchそのものに関しては、主に以下の資料で勉強させてい…

WebLogic Server 12.2.1 + サンプルドメイン がインストールされた Docker コンテナを、Vagrant のゲストOS上に構成する

前回の記事に引き続き、WebLogic Server 12.2.1 がインストールされた Docker コンテナを、Vagrant のテストOS上に構成します。 今回は、WebLogic 公式のサンプルである、medrec ドメインを構成し、サンプルアプリケーションを動かしてみます。 本記事の手順…

WebLogic Server 12.2.1 がインストールされた Docker コンテナを、Vagrant のゲストOS上に構成する

本記事では、Oracle 公式の Dockerfile とスクリプトを利用して、WebLogic Server 12.2.1 がインストールされた Docker コンテナを、Vagrant のゲストOS上に構成します。 この手順により、以下のような構成の WLS 12.2.1 環境が出来上がります。 -----------…

Oracle Linux 7.1 の Docker コンテナに SSH で接続する

今回は、表題の通り、Oracle Linux 7.1 の Docker コンテナにSSHでアクセスするために必要な手順を紹介します。 前提として、VirtualBox 上の Oracle Linux に Vagrant でゲストOSを構成し、そこに Docker コンテナを立てているものとします。今回は、この D…

英字キーボードで [CapsLock] と [Ctrl]、[ESC] と "`~" を入れ替える

今回は、入力装置系の記事です。 英字キーボードで、以下のようなキー配列の変更をする方法を紹介します。 キー配列 [CapsLock] <-> [Ctrl] [ESC] <-> "`~" OS Windows 7 Professional x64 普段エディタとしてVimを使っていると、[ESC] を頻繁に利用すること…

Vagrant + Docker で Oracle Linux 7.1のコンテナを使う

Vagrant で Virtualbox 上に Oracle Linux 7.1 を動作させ、その上で Oracle Linux 7.1 の Docker コンテナを動かしてみました。 前提の整理 今回作成した環境の構成は、以下のとおりです。 ホストマシン Windows 7 Professional x64 Cygwin Vagrant Oracle …

JRockit JVMのガベージコレクションのまとめ

JRockit JVM の ガベージコレクションの仕組みを、公式のドキュメント読んでざっくりまとめてみました。 改めて調べてみると、HotSpot JVM とほとんど変わらないみたいです。既にご存知の方には釈迦に説法ですが、JVM のメモリ管理について初学者の方は、参…

Windows + Cygwin + Vagrant で WebLogic Server を動かす ~ java、WebLogic インストール編

前回の記事に引き続き、VirtualBox 上のゲストOSに、java と WegLogic サーバーをインストールしていきます。 本記事は、Vagrant を使ってゲストOSを構成する記事の続きですが、手順自体は Vagrant に依存するものではありません。Linux に WebLogic サーバ…

Windows + Cygwin + Vagrant で WebLogic Server を動かす ~ ゲストOSセットアップ編

Window 上に Vagrant のゲストOSを立てて、WebLogic Server の開発環境を作成しようとしています。2回の記事に分けて手順を紹介する予定で、今回はVagrant でゲストOSをセットアップするまでの手順をまとめてみました。 前提 ホストマシン プラットフォーム …

Developer Cloud Serviceのビルド成果物をMavenリポジトリに公開する

Developer Cloud Service(以下、DevCS)は、Gitリポジトリ、バグトラッカーなどの開発ツール群を一括で提供する、Oracle社のクラウドサービスです。 DevCSでは、HudsonベースのCI(継続的インテグレーション)ツールでMavenビルドをおこない、さらに成果物…

OracleのID管理系製品群を整理してみた

Oracle社のID管理製品について学ぶ必要が出てきたのですが、似たような名前で複数の製品が出ているので、それぞれの役割の違いを整理してみました。 ここに上げた以外にも多くの製品があるようですが、代表的と思われるものに絞ったつもりです。 OUD Oracle …

Oracle Stream Explorer サーバーのインストール手順

Oracle Stream Explorerは、Oracle社が提供しているCEP(Complex Event Processing)製品です。 今回は、Windows 環境に、Stream Explorer サーバーをインストールする手順を紹介します。 インストール手順 0. JDKをインストールする JDKをおなじみの手順でイ…

ロジクールのマウスM510のチルトボタンに、ウィンドウスナップを割り当てる

ロジクールのマウスは、SetPointというアプリケーションにより、各ボタンの機能をカスタマイズすることができます*1 しかし、中にはSerPointでも割り当てられない機能があって、例えばウィンドウを画面の右/左半分に寄せる、ウィンドウスナップが該当します…

動的PDBスイッチングのメリット

Oracle WebLogic Server 12cとOracle Database 12cの組み合わせで、「動的PDBスイッチング」という機能を利用できます。 Oracle公式のホワイトペーパーでは、動的PDBスイッチングを利用しない構成を「Single data source per PDB」、利用する構成を「Single …

JCSとJCS-SXの違い

Oracle社が提供しいてるJavaのPaaSサービスには、JCS(Java Cloud Service)とJCS-SX(Java Cloud Service SaaS Extention)があります。 これらをどう使い分けたら良いかで迷ったので、調べて記事にしようと思ったのですが、既にOracleのサイトにまとめられてお…

Oracle VirtualBox上にOracle Linux 7.1をインストールするときにはまったこと

Oracle VirtualBox 上に Oracle Linux 7.1 のゲストOSを構成したとき、Guest Additionsのインストールにはまったので、対応方法をメモしておきます。 問題の症状 Oracle VirtualBox Guest Additions は、通常以下の手順でインストールします(ゲストOSのイン…

Oracle RAC周りの用語の整理

Oracle RAC周りの技術について学ぶ必要が出てきたため、周辺の用語を整理してみました。 RAC Real Application Clusters Oracle DBで、インスタンスをクラスタリングする構成 RACに接続するには、接続するアプリケーション側でそのための設定や実装が必要 FC…

Infinity Keyboard Kit 製作記(開封編)

MassdropでInfinity Keyboard Kitを購入し、先日自宅に届きました。今回は、Massdrop 、Infinity Keyboard Kitの紹介と、その開封の様子を紹介します。 Massdropとはなにか Massdropは、マニアックなPC用キーボードやオーディオ機器を手に入れたいときに有用…

CXFで生成したスタブにequals()やhashCode()が実装されるようにする

CXFを使ってSOAPのサービスを構築する際、多くの場合、wsdl2Javaを利用してWSDLからスタブを生成(XMLからJavaへのデシリアライズ)することになると思います。 このとき、単にwsdl2javaを実行するだけでは、生成されたクラスにはequals()やhashCode()などの…

'二次元のキーに対する値を保持するデータ構造'の実装方法(Java)

個人的に作成しているデータ集計用のプログラムで、二次元の表形式のデータ構造を利用したかったため、その実装方法を考えてみました。 実装方針を決める 軽くWebを探した限りでは、いずれのケースでも、JDKのCollection型を組み合わせて実現しています。組…

TLSチャンネルID(IETFドラフト)翻訳記事 目次

TLSチャンネルIDは、GoogleのWebブラウザ ”Chrome”で実装され、テストされている技術で、Cookie を特定のチャンネル ID と暗号で結び付けることで、セッションが乗っ取られるリスクを低減するものです。 過去8回に分けて、TLSチャンネルIDのIETFドラフトの翻…

TLSチャンネルID 翻訳 - 9. IANA Considerations

TLSチャンネルIDの翻訳シリーズの第8回です。今回が最終回です。「9. IANA Considerations」の翻訳結果を投稿します。 シリーズの過去の記事は、 以下を参照ください。 ー 第1回:「TLSチャンネルID 翻訳 - 1. introduction」 ー 第2回:「TLSチャンネルID 翻…

TLSチャンネルID 翻訳 - 8. Privacy Considerations

TLSチャンネルIDの翻訳シリーズの第7回です。「8. Privacy Considerations」の翻訳結果を投稿します。 このシリーズも、もう今回と、最終回を残すのみとなってきました。 シリーズの過去の記事は、 以下を参照ください。 ー 第1回:「TLSチャンネルID 翻訳 - …

TLSチャンネルID 翻訳 - 7. Use Cases

TLSチャンネルIDの翻訳シリーズの第6回です。「7. Use Cases」の翻訳結果を投稿します。 シリーズの過去の記事は、 以下を参照ください。 ー 第1回:「TLSチャンネルID 翻訳 - 1. introduction」 ー 第2回:「TLSチャンネルID 翻訳 - 2. Why not client certif…

TLSチャンネルID 翻訳 - 6. Security Considerations

TLSチャンネルIDの翻訳シリーズの第5回です。「6. Security Considerations」の翻訳結果を投稿します。 シリーズの過去の記事は、 以下を参照ください。 ー 第1回:「TLSチャンネルID 翻訳 - 1. introduction」 ー 第2回:「TLSチャンネルID 翻訳 - 2. Why not…

OAuth 2.0 の概要とセキュリティ

もうだいぶ前のことになってしまいますが、「OAuth 2.0 の概要とセキュリティ」というプレゼン資料をslideshareにアップしていたので、この場で紹介いたします。 OAuth 2.0 は、様々なWeb上のサービス同士が、APIで連携するための基礎となる技術です。モバイ…

TLSチャンネルID 翻訳 - 5. Channel ID Extension

TLSチャンネルIDの翻訳シリーズの第4回です。「5. Channel ID Extension」の翻訳結果を投稿します。 シリーズの過去の記事は、 以下を参照ください。 * 第1回:「TLSチャンネルID 翻訳 - 1. introduction」 * 第2回:「TLSチャンネルID 翻訳 - 2. Why not cl…

TLSチャンネルID 翻訳 - 3. Requirements Notation / 4. Channel ID Client Keys

TLSチャンネルIDの翻訳シリーズの第3回です。「3. Requirements Notation」と、「4. Channel ID Client Keys」の翻訳結果を投稿します(シリーズの過去の記事は、第1回と、第2回を参照ください)。 3. 要件の表記 3. Requirements Notation The key words "M…

TLSチャンネルID 翻訳 - 2. Why not client certificates

TLSチャンネルIDの翻訳シリーズの第2回です。「2. Why not client certificates」までの翻訳結果を投稿します (第1回はこちら)。 2, なぜクライアント証明書ではないのか 2. Why not client certificates TLS already supports a means of identifying cli…

TLSチャンネルID 翻訳 - 1. introduction

TLSチャンネルIDは、GoogleのWebブラウザ ”Chrome”で実装され、テストされている技術で、Cookie を特定のチャンネル ID と暗号で結び付けることで、セッションが乗っ取られるリスクを低減するものです。 昨年 (2013)、idconというOAuth、OpenIDなどの技術を…

ClockWorkWodでNexus 5のROMのバックアップを取る。PCに保存する。そしてリストアする

携帯のROMを頻繁に入れ替えるようになってから、カスタムリカバリ(ClockWorkMod)をいれてROMのバックアップをとるようになりました。 私の使っているNexus 5はSDカード非対応なので、systemと同じドライブにバックアップを置いておくしかなく、なんとなく不…

Android 4.3 でMVNOセルスタンバイ問題対策

MVNOのsimをスマートフォンに挿して利用すると、機種によっては、通話用の電波を掴もうとして探索を続けてしまう、「セルスタンバイ問題(*1)」が起きることがあります。 データ通信専用のsimでは通話用の電波を掴むことはできませんので、探索が永遠に続けら…

OAuth 2.0のJavaライブラリに何を選んだらよいか?

OAuth 2.0のConsumerやSPを実装するにあたり、使えそうなライブラリがないか調べてみました。 対象はOAuth 2.0本家サイトで挙げられているライブラリ群で、私がJavaエンジニアである都合上言語はJava限定にさせてもらってます。 結論から言うと、SpringやRes…

#idcon Vol.13

開店休業中ですが、ようやく更新 m(_ _)m #idcon Vol.13 に行って来ました。本業は一応デジタルアイデンティティ管理の領域なので。 取り急ぎ、メモをアップします。走り書きのなので多分に漏れや正確でないところがあるかと思いますが、ご容赦ください。 実…

InstapaperのAPIを実行するJavaプログラム(URL登録編)

前回の記事から大分空いてしまいましたが、引き続きInstapaperのAPIをJavaから呼び出すプログラムを書いていきます。 前回は、単にInstapaperのアカウントのユーザー名/パスワードで認証を行うだけでしたが、今回はURLを登録するAPIを実行します。これでよ…

InstapaperのAPIを実行するJavaプログラム(認証編)

先日ひょんな事から、InstapaperのAPIを使ったWebアプリを作ろうと思い立ち、JavaでInstapaperのAPIを呼び出すコードを書いてみました。まずは手始めと言うことで、認証のAPI(Instapaperのユーザー名/パスワードで認証する)から。 APIの基本的な使い方を…