MicroProfile Fault Tolerance(2) - 例で理解する非同期編
MicroProfile Fault Tolerance(MP Fault Tolerance)を紹介する2回目は非同期呼び出しに対するフォールトトレランス処理です。今回も前回同様、MP Fault Toleranceから提供される機能とその設定を「こんなことをしたい」的な利用シーンごとに説明していきます。なお、MP Fault Toleranceの機能は豊富なため説明は前回の基本機能編、今回の非同期編、次回の設定編の3回に分けて行います。 記事はコードの抜粋を記載します...
記事を読むMicroProfile Fault Tolerance(1) - 例で理解する基本機能編
今回のテーマはマイクロサービスでは定番のタイムアウトやリトライ、サーキットブレーカーなどの耐障害性に関する機能を提供するMicroProfile Fault Tolerance(MP Fault Tolerance)です。MP Fault ToleranceはMicroProfileランタイムから提供される機能をコンフィグレーションして利用する形態となるため基本的に作りものはありません...
記事を読むNuxt3入門(第6回) - アプリケーションで発生するエラーに対応する
前回はNuxt3の設定情報管理について見てきました。 今回のテーマは実用的なアプリケーションに不可欠なエラーハンドリングです。 Nuxtはクライアントサイドだけでなく、サーバーサイドレンダリングもサポートするハイブリッドフレームワークです。 このため、エラー発生箇所に対応した適切なハンドリングが求められます...
記事を読むEnvoy OAuth2 Filter を使ったログイン
庄司です。 いくつか Envoy Proxy の JWT Authentication や External Authorization を使った認証や認可の記事を書いてきました。 今回は OAuth2 Filter を使った例を説明します。 あらためて説明すると、Envoy Proxy は C++ で書かれた軽量かつ高速なプロキシです。 Envoy Proxy は構成を動的に変更でき、ゼロダウンタイムで反映できる特徴を持っています...
記事を読むNuxt3入門(第5回) - アプリケーションの設定情報を管理する
前回はNuxt3のルーティング機能について見てきました。 今回はNuxt3が提供する設定情報の管理機能を見ていきます。 Nuxt3では、アプリケーションの設定はRuntime Config(またはApp Config)を通して管理され、グローバルに参照できます。 とはいえ、パスワード等の機密性の高い設定は、ブラウザ上では参照不可とするべきです...
記事を読むIoT を使ってみる(その7:MQTTクライアント paho編)
前回記事でMQTTブローカー「Mosquitto」を紹介しました。 今回はMQTTクライアント「paho」について紹介したいと思います。 paho とは # pahoはPython製の通信ライブラリです。 2022/10/14の段階でMQTT v5.0、MQTT v3.1.1、および v3.1 をサポートしています。 Python 2.7系、3.x系で使用できます。 paho インストール # 使い方は非常に簡単です。 pip または conda でインストールします...
記事を読むロボット開発インターンシップ紹介
社内のとある技術相談会で、所属しているグループのインターンシップを紹介したところ、内容が面白いので記事を書いてみないかということで書いてみました。 はじめに # エンジニアリングソリューション事業部には八王子を拠点としたロボット開発グループがあります。 新卒向けにロボット開発を体験してみようという名目でインターンシップを開催しています。 その内容について紹介したいと思います。 --> Informationロボット開発者を募集しております...
記事を読むオンライン研修の設計勘所(その1:学習内容の構造化)
はじめに # 前回は研修設計の全体像(プロセス)に関して記載いたしました。 オンライン研修の設計勘所(その0:そもそも研修設計とは研修設計していますか?) 以降、ADDIEモデルにおける D:Design「研修の設計」に一歩踏み込んでいきます。 今回は「学習内容の構造化」について記載いたします。 ここでは、学習内容を研修内で取り扱う学習トピックと捉えます。 この学習内容(学習トピック)を検討する際に気をつけなければいけない事は次の3つです...
記事を読むGitHub code scanning 結果を VS Code で確認できる SARIF Viewer 拡張
以前「GitHub の脆弱性検出機能 Code scanning alerts と CodeQL について」という記事で Code scanning alerts を設定して確認する方法を紹介しました。 先日 VS Code (と Codespaces) で動作する VS Code 拡張 SARIF Viewer for Visual Studio Code についてのブログが公開されました...
記事を読む猫を飼うべきこれだけの理由
今日は統計学の”堅苦しい数字”から少し離れて、ほのぼのする話をしてみましょう。 お題は”猫と生産性”です。 在宅勤務になり、仕事場と家庭が同一空間に # 2020年は新型コロナが流行し、在宅勤務にシフトした人も多かっただろうと思います。 私の場合、前職の2020年に在宅勤務に移行し、2021年には会社に出勤した日が10日に満たないような状況でした...
記事を読むNuxt3入門(第4回) - Nuxtのルーティングを理解する
前回はサンプルアプリのブログサイトがAPI経由でブログ情報を取得できるようにしました。 今回は、Nuxtアプリケーションでページ遷移に使うルーティングについて見ていきます。 Nuxt2でも同様ですが、Nuxt開発ではルーティング定義を個別に作成する必要はありません[1]。Nuxtではファイルシステムベースのルーティングを採用しており、pagesディレクトリ配下の構造でルートマッピング決まります...
記事を読むKafka を Java のテストプロセスに埋め込める EmbeddedKafka でコンシューマーをテストする
Kafka は人気の分散メッセージングシステムです。Spring for Apache Kafka を使うと Kafka トピックからのメッセージ取得を契機としてビジネスロジックを実行するコンシューマーの Spring Boot アプリを簡単に作成できます。 本記事では Kafka の環境を構築することなくコンシューマーの結合テストができる EmbeddedKafka を紹介します...
記事を読むIoT を使ってみる(その6:MQTTブローカー Mosquitto編)
前回記事でMQTTを紹介しました。 今回はMQTTブローカー「Mosquitto」について説明したいと思います。 MQTT通信のおさらい # MQTTはパブリッシュ/サブスクライブ(publish/subscribe)型のデータ配信モデル(以降、PUB/SUBモデルと略す)を採用したメッセージ通信プロトコルです。 PUB/SUBモデルは以下の3つの要素で構成されています...
記事を読むNuxt3入門(第3回) - ユニバーサルフェッチでデータを取得する
前回は簡単なブログサイトを作成し、Nuxtの基本機能や開発の流れを見てきました。 ただ、ここで作成したサンプルアプリのブログサイトは、表示するブログデータは固定値で保持していました。新しいブログを追加した場合は別途ビルドする必要があります。 実際のブログシステムでは、リアルタイムで最新ブログを取得したいところです。また、SEOや初期ロード時間を考慮して、クライアントサイドではなくサーバーサイドでレンダリングした意味のあるHTMLで取得できるようにしたいという要求もあるでしょう...
記事を読む豆蔵デベロッパーサイト 2022年7-9月のサマリー
2022年度第2四半期のまとめです。そろそろ1周年が近くなってきました。 記事数・執筆者数 # 8月に記事数が200本を超えました。100本到達は5月で半年ぐらいかかっていたので、かなり加速していることになります。現在、239記事が公開されています。執筆者数は19人、うちアクティブに執筆してくれてる人も9人に増えました。ランディングページが第1四半期から3つ増えて11になりました。 ランディングページ・連載の動向 # 「学び」 # 新設のランディングページです...
記事を読むMicroProfile RestClient 3.0の確認と小技機能の紹介
今回は前回,前々回の続きとしてHelidon 3.0から使えるようになったMicroProfile RestClientの機能を紹介します。ただしMicroProfile RestClientは差分となる機能が多くないため、その差分を簡単に紹介した後に代わりとして以前のバージョンからあった小技的な機能を併せて紹介します。なお、今回の記事は以前紹介した「らくらくMicroProfile RestClient」の理解を前提にしています。まだの方はそちらから読んでいただければと思います...
記事を読むAWS Outposts の紹介
庄司です。 IoT でクラウドサービスを活用しようとするときの大きな関心事の1つにレイテンシーがあります。 ここで、光の速度に関連した定義をみてます。 1983年の国際度量衡委員会(CIPM)によって「1メートル=光が真空中を2億9979万2458分の1秒の間に進む距離」と定められています。この秒数は、同じく1983年に確定した光の速度「秒速29万9792.458キロメートル(=秒速2億9979万2458メートル)」から得られたものです。 地球の外周は約40,075km とされています...
記事を読むWasmtime が Production Ready に
Bytecode Alliance は WebAssembly(WASM) のランタイムである Wasmtime が v1.0 に到達し Production Ready になったことを宣言しました...
記事を読むIoT を使ってみる(その5:MQTT編)
このIoTの連載の中で何度も「MQTT」という言葉が出てきました。 これまでMQTTの詳細について何も触れてこなかったので、今回はMQTTとは何かについて確認していきたいと思います。 MQTT とは # MQTTとは「Message Queue Telemetry Transport」の略で、パブリッシュ/サブスクライブ(publish/subscribe)型データ配信モデルのメッセージプロトコルです。 MQTTはTCP/IPを使っており、非常に軽量なプロトコルとして設計されています...
記事を読むNuxt3入門(第2回) - 簡単なNuxtアプリケーションを作成する
前回はNuxtの基本的なレンダリングモードを説明しました。 第2回は、実際に簡単なNuxtアプリケーションを作成し、Nuxt3の開発フローを見ていきます。 事前準備 # まずは、npx nuxi create sample-appを実行し、Nuxtのプロジェクトを作成します。 その後に今回使う以下ディレクトリを追加しておきます...
記事を読む