GitHub Packages - マルチレポによるライブラリ管理とGitHub ActionsとMavenを使ったCIの実行
マルチレポで管理しているモジュールのCIを行うにはパッケージレジストリが必要となります。今回はこのパッケージレジストリにGitHub Packagesを使った例を紹介します。 記事の背景 # Mavenは依存ライブラリをパッケージレジストリから取得しますが、実行対象のモジュール(jar)が他のリポジトリのモジュールに依存している場合、その依存ライブラリはパッケージレジストリ経由で取得する必要があります。このためマルチレポのCIではなんらかのパッケージレジストリが必要となります...
記事を読むKafka Streams パイプラインを迅速に作成できる ksqlDB を触ってみる
ksqlDB は、Kafka クラスター上にリアルタイム性の高いアプリケーションを構築するための、ストリーム処理に特化したデータベースです...
記事を読むGitHub Pull Request マージキュー(beta)を試す
GitHub で PR のマージキューがパブリックベータになりました。 Pull request merge queue (public beta) | GitHub Changelog --> Information2023年7月12日にマージキューが GA になりました...
記事を読むTypeScript5で導入されたStage 3のDecoratorを眺めてみる
TypeScriptでDecoratorって使っていますか? DecoratorはJava等のオブジェクト指向言語ではお馴染みのアノテーションです。DI/AOP等のメタプログラミングでよく使われているものです。 Decorator自体はECMAScriptの仕様として、かなり昔(2014年)から存在していました。 現時点(v4.9)のTypeScriptでサポートしているDecoratorは、Stage 2(Draft)の仕様です...
記事を読むSystem.Loggerって知ってる? - Javaの標準Loggerインタフェースに今更気がついた
筆者が普段から使っているHelidonの4.0.0 ALPHA-4のリリースノートを眺めていたところ"Logging: Change JUL to System.Logger in most modules"という変更が目に留まり"System.Logger"ってなんだ?と調べてみたところ、なっ、なっ...
記事を読むWindowsでRust開発環境を作ってみる(VSCode+BuildTools+rustup)
最近はRustが人気と聞き、”技術ミーハー”な筆者としてはRustの開発環境を構築してみたくなりました。 Rustはプログラムの実行が高速であり、C/C++が不得意であったメモリの安全性を確保するなどの特徴を持ち、C/C++に取って代わるプログラミング言語になりえるステータスを持っています。 今回はWindows10+VSCode+BuildTools+rustupでRustの開発環境を構築してみようと思います...
記事を読むVue 3 と D3.js で作る可視化アプリ
筆者は Scrapbox を愛用しており、Scrapbox プロジェクトのページ間のグラフ構造を可視化するためのツールを作ったりしています。 GitHub - mamezou-tech/sbgraph: Fetch Scrapbox project data and visualize activities. このツールは Graphviz の dot 形式ファイルを出力するので手軽にグラフ構造の可視化が可能です[1]...
記事を読む機械学習モデル可視化ツール「Netron」を使ってみる
前回、ディープラーニングモデルのオープンフォーマット「ONNX(Open Neural Network Exchange)」を紹介しました。 その時に機械学習モデル可視化ツール「Netron」の存在を知りました。 今回は「Netron」を紹介したいと思います。 Netron って何? # Netronは、機械学習モデルを可視化するツールです。 ブラウザを含むクロスプラットフォームで動作します...
記事を読むペアワイズ法テストケース生成ツール「PictMaster」の直交表を使う
前回はペアワイズ法テストケース生成ツール「PictMaster」の”原型シート”機能(因子編)について紹介しました。 今回はペアワイズ法ではなく直交表を使って組み合わせテストケースを生成してみます。 直交表ってなに? # 直交表とは,複数の因子・水準の組み合わせにおいて、任意の2因子について「水準の組み合わせが同じ回数だけ現れる」という性質をもつ”組み合わせ表”を指します。 複数因子・水準を組み合わせてテストする時、因子間に「交互作用」が存在すると、テスト結果が影響を受ける場合があります...
記事を読むディープラーニングモデルのオープンフォーマット「ONNX(Open Neural Network Exchange)」を使ってみる
ディープラーニング・アプリケーション開発キット”OpenVINO”を調べていた時、「ONNX」という単語に出会いました。 筆者の知らない単語だったので調べてみると、ONNX は「ディープラーニングモデルのオープンフォーマット」であることがわかりました。 今回はディープラーニングモデルのオープンフォーマット「ONNX」を紹介したいと思います...
記事を読むAstro 2.0 + MDX + Recharts で Markdown ページにインタラクティブなチャートを描画する
人気の静的サイトジェネレーター Astro 2.0 がリリースされました。 Astro 2.0 | Astro Content Collections API、Hybrid Rendering、Hot Module Reloading などの新機能が追加されました。 --> InformationAstro の概要については、昨年9月に1.0がリリースされた時記事にしましたので、参考にしてください...
記事を読むDocker+Wasm で WASM をコンテナとして実行する
昨年10月に Docker+Wasm がテクニカルプレビューとして発表されました。WebAssembly ランタイムをターゲットとしてビルドされた WASM バイナリーを OCI 互換の環境で実行できるようにするものです。 Introducing the Docker+Wasm Technical Preview | Docker ブログから、Docker+Wasm の実行イメージを引用します...
記事を読むAmazon Cognito user pools の認証フロー
庄司です。 Amazon Cognito user pools は Web やモバイルアプリケーションの認証、認可、およびユーザ管理機能を提供する Amazon Cognito のユーザディレクトリサービスです。 Cognito user pools を使用するといわゆる JWT 認証 (基本から理解するJWTとJWT認証の仕組み) に利用できる AccessToken、IdToken などを得られます。 Cognito user pools を利用する目的は、大きく次の2つがあるでしょう...
記事を読むSpring Boot で作る Kafka Streams アプリケーション
Kafka Streams は Apache Kafka のクラスター上でデータのストリーム処理を実現するためのライブラリです。 Apache Kafka の公式ドキュメントには以下のようにあります(Google 翻訳による)...
記事を読むOptionalの見直し – Java9で追加されていたメソッドが便利すぎることに今更気づいた
OptionalクラスはJava8で追加された当初はStream APIやラムダと同じように大いに話題になり、ネットで取り上げられることも多かったですが、その後はOptionalクラスがJavaの標準APIとして定着するに従い、注目されることもなくなっていきました。そんなOptionalクラスですが地味にJava9で便利なメソッドが追加され進化していることに(今さら)気がつきました...
記事を読むGitHub Actions - 構成変数(環境変数)が外部設定できるようになったので用途を整理する
GitHub Actions ワークフローで Configuration variables (構成変数) がサポートされました。 GitHub Actions - Support for configuration variables in workflows | GitHub Changelog 従来の環境変数とシークレット # 従来もワークフローファイルに env キーワードで環境変数を宣言することはできましたが、ハードコーディングだしワークフローファイル内でしか利用できません[1]...
記事を読むApple Touch ID Keyboard を使ったパスワードレス認証
庄司です。弊社では隔月で有志によるハッカソンを開催しています。 1 月のハッカソンで、私は年が明けてすぐに購入した「Appleシリコン搭載Macモデル用Touch ID搭載Magic Keyboard - 英語(US)」を、昨年公開した記事「WebAuthn でパスワードの無い世界へ」の通りに利用することをテーマに参加しました。 試してみたところ、いくつか課題が見つかりました。 旧記事の通りに進めようとした場合の課題は次の通りです...
記事を読む今さら聞けないMaven – インタフェースと実装のスコープを分ける
インタフェースと実装のモジュール(jar)が分かれていてアプリはインタフェースしか使ってはいけないハズだったがウッカリ実装側のクラスを使っていたという経験はないですか? このようなことを防ぐにはCheckStyleやArchUnitなどの静的解析ツールで検知することや属人的にコードレビューで指摘するといった方法も考えられますが、一番リーズナブルなのはdependencyのスコープをcompileとruntimeに分けて定義することです...
記事を読むディープラーニング初心者がOpenVINOを使ってみる(その2:MobileNet画像分類編)
前回、ディープラーニング・アプリケーション開発キット OpenVINO のインストールと動作確認を実施しました。 今回は、ディープラーニングモデルの中の画像分類モデル「MobileNet V3」を見ていきたいと思います...
記事を読むGitHub Actions - オーガニゼーションレベルの required workflows (public beta) を試す
GitHub Actions の required workflows が public beta として公開されました。 GitHub Actions - Support for organization-wide required workflows public beta | GitHub Changelog required workflows の概要 # オーガニゼーション内のリポジトリで Pull Request が作成された時に特定のワークフローの実行を強制する機能です...
記事を読む