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で便利なメソッドが追加され進化していることに(今さら)気がつきました...
記事を読むMicroProfileの仕様体系 - Umbrella仕様とStandalone仕様
MicroProfileはご存じのとおり、Jakarta EEをベースにマイクロサービスアーキテクチャで必要となるAPIや機能の提供を目的とした仕様ですが、この仕様には大きく2つの区分けがあります。 1つはUmbrella仕様と呼ばれるMicroProfileのコアプラットフォームに相当する仕様と、もう一つはStandalone仕様と呼ばれるオプショナルな仕様になります...
記事を読む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 が作成された時に特定のワークフローの実行を強制する機能です...
記事を読むディープラーニング初心者がOpenVINOを使ってみる(その1:インストール編)
今回から数回に分けて「ディープラーニング・アプリケーション開発キット”OpenVINO”」について紹介したいと思います。 実は、数年前に一度トライはしたものの、当時はまだWindowsプラットフォームでの運用が推奨されておらず、Windowsでの動作確認を断念していました。 最近はWindowsやRaspberryPiの運用報告もあるようなのでまた興味が出てきました。 今回は第一回目ということで「OpenVINOのインストール」と「チュートリアルの動作確認」まで行いたいと思います...
記事を読むペアワイズ法テストケース生成ツール「PictMaster」の原型シートを使う(因子編)
前回はペアワイズ法テストケース生成ツール「PictMaster」の”原型シート”機能(水準編)について紹介しました。 前回は水準のみ変更しましたが、今回は「因子」を変更してみようと思います。 既存のテストケースに因子を追加する # 以下の例で考えてみましょう。 因子が a, b, c の3個で、それぞれが2水準の値を持っている場合を想定します。 2因子間網羅のテストケースは以下のようになりました。 テストケース数は合計4個でした。 次に、因子d(2水準)が追加になった場合を考えてみます...
記事を読むIoT を使ってみる(その13:温湿度センサモジュールDHT11編)
前回は FreeRTOS の「セマフォ」を紹介しました。 今回はIoTデバイスに接続して使用する「温湿度センサモジュール DHT11」を紹介致します。 温湿度センサモジュール「DHT11」 # DHT11は、温度と湿度を同時に計測することができるセンサモジュールです。 ネットでDHT11を検索すると4ピン(単体版)のものと、3ピン(モジュール版)のものが見つかりますが、今回使用するのは3ピン(モジュール版)の方です...
記事を読むペアワイズ法テストケース生成ツール「PictMaster」の原型シートを使う(水準編)
前回はペアワイズ法テストケース生成ツール「PictMaster」の”カバレッジ指定”機能について紹介しました。 今回はPictMasterの”原型シート”機能について紹介したいと思います。 既存のテストケースを再利用する # ペアワイズ法を使えば複数の因子・水準からテストケースを効率よく生成できますが、網羅すればするほどテスト実行には時間も労力もかかります。 テスト対象の一部が変更になった場合に、”変更になった部分だけ”を追加でテストするテストケースを生成したい場合があります...
記事を読むKafka の Web UI を提供する kafka-ui を試す
人気の分散メッセージングシステム Kafka では、オペレーション用のシェルスクリプト群は提供されていますが GUI は提供されていません。「Topic を作成する」、「Topic の Partition 数を増やす」、「Topic を流れるメッセージを確認する」、「Consumer によるメッセージ処理の進み具合を確認する」といったオペレーションには CLI を駆使する必要があります...
記事を読むIoT を使ってみる(その12:FreeRTOS排他制御編)
前回は「FreeRTOS」のタスク優先度を考察しました。 今回は「排他制御」について見ていきたいと思います。 排他制御とは # 複数のタスクが並列実行するプログラムにおいて、複数のタスクから利用される”共有資源"が存在する場合、複数のタスクが同時に”共有資源”にアクセスすると、”共有資源”に不整合が発生する場合があります。 ”共有資源”には、メモリや外部機器などが該当します...
記事を読む豆蔵デベロッパーサイト 2022年10-12月のサマリー
新年明けましておめでとうございます。豆蔵デベロッパーサイト2022年度第3四半期のまとめです。 記事数・執筆者数 # 12月末時点で記事数は318本に達しています。執筆者は28名に、アクティブな執筆者も10名を超えてきました。平日1本程度は更新されていることになり、かなり活発ではないかと思います。 ランディングページ・連載の動向 # フロントエンド # フロントエンドのランディングページを新設しました...
記事を読む品質保証者の憂鬱「負のループを断ち切る」
筆者はこれまで35年ほどソフトウェア開発関係の仕事に従事してきました。 35年間の内訳は 25年間:ソフトウェア開発者(後半の数年は開発&品証の二足のわらじ) 10年間:ソフトウェア品質保証者 としてです。 社会人になったばかりの頃はソフトウェア開発部門に配属されました。 それ以降、ずっとソフトウェア開発を生業にしていこうと思っていたのですが、ある時先輩社員から「ソフトウェア品質」について熱く語られ、”ソフトウェア品質って面白いな”と考えるようになりました...
記事を読むMicroProfile JWT Authがやってくれること・できること
今回のテーマはJSON Web Token(JWT)を使ったMicroProfileアプリケーションの認証・認可に関するMicroProfile JWT Auth(MP JWT)です。MP JWTの仕様にはJWTをはじめBearerトークンやOpenID Connect(OIDC), Jakarta EE RBACなど他の規格や標準が多数登場するため難解でかつ、どこまでがMP JWTの話でMP JWTは結局なにをやってくれる仕様なのかがとても分かりづらくなっています...
記事を読む新米スクラムマスターの思考メモ(その4 DailyScrum編)
はじめに # 「新米スクラムマスターの思考メモ」の4回目の記事です。これまでの記事は以下の通りです。 新米スクラムマスターの思考メモ(その1 スクラムマスターになるまで) 新米スクラムマスターの思考メモ(その2 Retrospective編) 新米スクラムマスターの思考メモ(その3 Sprint Planning編) 今回の記事では、DailyScrumではどのようなことを感じ、行動したかについてまとめてみたいと思います...
記事を読むViteベースの高速テスティングフレームワークVitestを使ってみる
現在JavaScriptのスタンダードなテスティングフレームワークと言えば、Jestかと思います。 Jestはそれ単体でテストランナー、マッチャーからモックまでテストに関する一通りの機能を網羅する万能なフレームワークです。 とはいえ、プロダクトがある程度の規模になってくるとテスト実行時間に不満を持っている方もいるかもしれません。 今回はJestに代わる新しいテスティングフレームワークのVitestを試してみたいと思います...
記事を読む