#chiroito ’s blog

Java を中心とした趣味の技術について

CPUによるOpenJDKのビルド時間の推移

OpenJDK の開発環境を E3-1265 V2 から i9-9900K へ変えてみたのでビルド時間を計ってみました。 それぞれの性能はこんな感じです。 E3-1265 V2 は 4コア、ベース動作周波数 2.5GHz、ターボブースト時の周波数3.5GHz i9-9900K は 8コア、ベース動作周波数 3.…

Windows Subsystem for Linux を使って OpenJDK をビルド

Windows 上で Windows Subsystem for Linux (WSL) を使用して OpenJDK 14 の Windows バイナリをビルドする方法をまとめます。 やりがちですが、Windows Subsystem for Linux (WSL)側のUbuntu 側で hg するのは必須ではありません。(やった) Windows側で好…

エンタープライズ向けのシステムを自動構築するツール

エンタープライズで使われるミドルウェアを使うためには、環境が使えるようになるまで構築に膨大な時間がかかるほか、開発用途などでちょっと使うだけで莫大なライセンス料がかかります。 クラウドが当たり前になって、ライセンス料が非常に安価になって触り…

OpenJDK を開発する流れ

自分が使うコマンドをうっかり忘れるときがあるのでその備忘録のために、開発の流れとそこで使ってる内容をメモ。 公式のガイドはこちらを参考にしてください。The OpenJDK Developers' Guide OpenJDK の開発は以下のような流れで行います。 バグを上げる 開…

Oracle Management Cloud エージェントをインストールしてみる

はじめに システムを運用するときは、ログやメトリックをモニタリングします。オンプレのシステムでは決まった台数を監視すれば良いことが多いです。また、ストレージが書き込める限り、あとからストレージからログやメトリックを収集できます。クラウドでは…

OSが起動したままマウントしてる XFS のサイズを増やしてみた

/ の領域が足りなくなってきてしまったけど、仮想マシンからデタッチして、他の仮想マシンにアタッチ・マウントしてからサイズ増やして、また戻してからマウントするの面倒臭いなと2ヶ月ぐらい思っていたら、growpartというツールでマウントしたままパーティ…

Terraform を使って Cloud上に OpenJDK の開発環境を整えてみた

OpenJDK のビルドやテストは時間が非常に掛かるので、クラウド上で大量の CPU リソースを使って短時間化できないかを試してみました。 今回作った環境に自分で書いたパッチを置いて Terraform を実行すると、あとはクラウド上で大量のリソースを使ってビルド…

OpenJDK のテストをデバッグ実行するためいろいろ試みてみた

Java のコードをデバッグ実行するには-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=127.0.0.1:12345みたいな感じのを付けます。これを使って OpenJDK の Java 部分のデバッグができるだろうなと思って試してみました。 jtreg で実行する…

JShell 自体をデバッグしてみた

Java Bug System を見ていたら JShell 自体のデバッグを見つけたので、パッチを書こうと思いJShellについて調べてみた。 使い方や 2 つの JVM が動くぐらいは知っていたけど、具体的には知らないので調べてみました。 試しにjshellコマンドを実行してからjmc…

Yumによるパッケージの自動更新を無効にしてみた

VirtualBox 上で動かしている Linux が yum のキャッシュのせいで時折ディスクフルになっていた。これまでは毎回yum clean allでキャッシュを消してたけど、根本原因を探ってみた。 yum-cronなるものがあると定期的にyumを実行するようだ。 # rpm -qa | grep…

Terraform で Oracle Cloud Infrastructure を構築する

Terraform を使って以下のような構成の Oracle Cloud Infrastructure を構築してみました。 Terraform で作成する環境 設定を以下の 4 つに分けて紹介します。 パラメータ OCI プロバイダの設定 インフラの設定 インスタンスの設定 パラメータは terraform.a…

Oracle Cloud Infrastructure で Terraform へ入門してみた

Oracle Cloud Infrastructure (OCI) で Terraform へ入門するため準備とその確認を以下の手順でしていきます。 Terraform のダウンロード OCI を使った Terraform ファイルを作成 Terraform の初期化 OCI プロバイダの実行 Oracle Cloud Infrastructure の T…

電車情報を使ったIoTリアルタイムストリーム処理

この記事はOracle Cloud Advent Calendar 2018 - Adventar」の12月22日の記事として書かれています。 今回やること これまで仕事で散々 IoT やストリーム処理をしてきたので簡単に作ってみたいと思います。 作ってみたシステムは下図のように東京メトロさん…

Oracle Cloud Infrastructure でインターネットからの通信を許可する

この記事は「Oracle Cloud その2 Advent Calendar 2018」の12月10日の記事として書かれています。 セキュリティ・リストで入力方向の通信を設定をします。 変更することは滅多に無いものの、設定画面までの遷移が非常に長いのでいざ変更しようと思うと大変で…

Oracle Digital Assistant のチャットボットのフロントエンドを Facebook Messanger にしてみた

チャットボットを使ったシステムでは、フロントエンドのインターフェースとしてユーザが使い慣れた Facebook Messanger や LINE をインターフェースとして使うことが多いです。 Oracle Degital Assistant は様々なメッセージアプリをフロントエンドとして使…

Oracle Object Storage へマルチパート・アップロードしてみた

この記事はOracle Cloud Advent Calendar 2018 - Adventarの12月8日の記事として書かれています。 大きなファイルのアップロードにはマルチパートアップロードが有効です。今回はOracle Cloudのオブジェクトストレージにファイルをマルチパートアップロード…

Oracle Digital Assistantのチャットボットをエクスポートしてみた

この記事は「Oracle Cloud その2 Advent Calendar 2018」の12月7日の記事として書かれています。 Oracle Degital Assistant で作ったチャットボットをExportしてみましょう。 チャットボットの一覧画面でエクスポートしたいチャットボットのメニューを選択し…

Oracle Digital Assistantのチャットボット入出力をGoogle翻訳で翻訳してみた

この記事は「Oracle Cloud その2 Advent Calendar 2018」の12月6日の記事として書かれています。 Oracle Digital Assistant は外部の翻訳サービスを使って翻訳できます。 本例では、Google翻訳を使用して翻訳します。事前に Google Cloud Platform で Google…

Oracle Digital Assistant でチャットボットを作ってみた

この記事は「Oracle Cloud その2 Advent Calendar 2018」の12月5日の記事として書かれています。 Oracle Cloud の Digital Assistant を使ってチャットボットを作ってみます。 Oracle Digital Assistant の画面で左上のメニューから Development - Bots と遷…

Oracle Cloud Infrastructure CLIを設定してみた

この記事は「Oracle Cloud その2 Advent Calendar 2018」の12月3日の記事として書かれています。 Oracle Cloud Infrastructure (OCI) CLIを使うには、インストールしたあとに以下のようなちょっとした設定が必要です。 インストールがまだな場合はこちらの手…

Oracle Cloud Infrastructure CLIをインストールしてみた

この記事は「Oracle Cloud Advent Calendar 2018」の12月2日の記事として書かれています。 ほとんどの人は Oracle Cloud を初めて聞くと思いますが、Oracle はストレージのIOやネットワークのIOに強いIaaS、長年培われてきたミドルウェアをクラウドに対応し…

Data Miner のAssociation結果をそれっぽく見せる

select antecedent_items, p2.attribute_subname as consequent_item, p0.support, confidence, lift, p3.number_of_items from dm$p0assoc_ap_1_1 p0 left outer join ( select ip4.itemset_id, listagg(ip2.attribute_subname, ',') within group (order b…

Try Project Loom -Project Loomを試す-

JVM Language Summit に先立ち、Fri, 27 Jul 2018 15:33:05 +0100 に Project Loom がついにコミットされたので試してみたいと思います。 現段階ではまだまだ開発途中であるためクラスやメソッドが変更される可能性があるのでご注意ください。

Managed Cloud Service で Kafka アプリケーションを作成する

Spring-Cloud-Stream と Spring-Binder-Kafka を使用して Kafka のアプリケーションを作成してみます。 今回作成するアプリケーションは、Producer と Consumer を1つずつ作成します。Producer は一定時間ごとにメッセージを Kafka の Topic へ送り、Consum…

WebLogicコンテナを開発モードかつDebugモードで起動する

Oracle WebLogic Server をコンテナとして起動すると、本番モードで起動するため、開発に使うにはちょっと不便です。 設定を簡単に変えられるように開発モードで起動し、リモート・デバッグできるようにDebugモードで起動しましょう。

Getting started with swarm mode

Docker 17.06 を使用して Docker のSwarm mode を始める方法を紹介します。Swarm modeを始める事前準備、Swarm モードのクラスタを作成、クラスタへワーカーを追加、ワーカーが参加できたことを確認してみます。環境は Oracle Linux 7.4 を使用しています。 …

Running WebLogic Server on k8s

Kubernetes 上で Oracle WebLogic Server を動かしてみます。WebLogic Server のイメージは公式の Docker イメージを使用します。 以下の流れで紹介します。 Preparing Running WebLogic Server on k8s Access to WebLogic Server Console (Optional) Using …

k8s のデフォルト namespace を変更する

こちらを参考に Namespaces | Kubernetes 存在するネームスペースの確認 今のデフォルト namespace を確認 ネームスペースを変更 ネームスペースを変更 (Windows)

8 分で Kubernates クラスタを構築する

Kubernates (k8s) を試したり、複数の物理ホストを使ってクラスタを組みたくなったのですが、何度も作っては壊しをしたいため Vagrantfile を作成してみました。これを使えば複数の物理サーバ上でも簡単に k8s クラスタを構築できます。 今回は以下のように…

Hot Function でファンクションのレスポンス時間を短縮 @ Fn

リクエストを処理するために新たなコンテナを作成し、処理終了後にはそのコンテナを停止します。これをリクエストのたびに繰り返します。 コンテナの作成処理は非常に時間が掛かるため、レスポンス時間がとても長くなってしまいます。また、コンテナの作成処…