Pytestを使ってみる(その1:準備編)
Pythonでプログラムを書いていて「TDD(テスト駆動開発)」にトライしてみたいと思ったことは無いでしょか? そんなときは「テスティングフレームワーク」がおすすめです。 JavaではJUnitが有名ですが、Pythonにもテスティングフレームワークが用意されています。 Pythonには標準装備の「unittest」というテスティングフレームワークがありますが、今回は人気のある「Pytest」を紹介します...
記事を読むNode.js v19.7で実験的に導入された Single Executable Applications で単独実行可能ファイルを作成する
Rust/Golang/GraalVM/.NetのSingleFile等、昨今は実行環境を必要とせず、単独で実行可能なバイナリファイルにパッケージするものが多いかと思います。 これにより、事前のランタイム環境のセットアップが不要となり、環境構築やデプロイ作業が大幅に簡素化されてきました。 JavaScriptでは、Denoがこの実行可能ファイルへのコンパイルを標準搭載していますが、Node.jsは公式にサポートしていませんでした。 そこで最近以下の記事を目にしました...
記事を読むOIDCトークンによるAWSの一時的な認証情報の取得方法
庄司です。 2023年1月4日の CircleCI のセキュリティインシデントのレポートの中で、セキュリティのベストプラクティスの1つが次のように書かれています。 可能な限りOIDCトークンを使用し、CircleCI に長期間の認証情報を保存しないようにする。 AWS のための CI/CD では、GitHub Actions には AWS for GitHub Actions リポジトリの configure-aws-credentials に OIDC トークンを使用する実装があります...
記事を読むGitHub Code Search で世界中のコードを検索する
GitHub Code Search は GitHub にホストされているリポジトリのコードベースから検索できます。当然のことながら Google 検索などの汎用検索サービスよりソースコード検索に特化したサービスになっています。昨年プレビュー版がリリースされ waitlist で順次利用可能になっていました...
記事を読むTypeORMのスキーママイグレーションを使う
少し前ですがJavaScript/TypeScript版ORマッパーのTypeORMの導入記事を書きました。 この記事は予想に反して(?)多くのアクセスをいただいており、JavaScript/TypeScriptでのORマッパーの需要は結構高いのかなと思いました。 そこで今回は、その時に紹介できなかったTypeORMのスキーママイグレーションの機能についてご紹介しようと思います。 TypeORM Doc - Migrations 一般的にRDBではスキーマのバージョン管理は非常に重要です...
記事を読む音声合成マークアップ言語 - Speech Synthesis Markup Language (SSML)
庄司です。 現在では様々なところで、コンピュータを使用した音声合成を聞くことができます。 音声合成のマークアップ言語の仕様として、W3C による「Speech Synthesis Markup Language (SSML) Version 1.1」があります。 この SSML をサポートするサービスには次のようなものがあります...
記事を読むSLF4J 2.0のfluent logging APIでログ出力も流暢に
昨年8月にリリースされたSLF4J 2.0の一番の目玉はJava9で導入されたモジュールシステム対応ですが、もう一つの目玉としてfluent logging API(fluent API)の追加があります。ログ自体が地味な機能のためあまり注目されることはないですが、少し使ってみたところイイ感じだったので今回はこのAPIを紹介したいと思います。 旧来のAPIとfluent APIの比較 # 難しいAPIでもないので実際の例を見てもらうのが一番早いです...
記事を読む新米スクラムマスターの思考メモ(その5 まとめ)
はじめに # 前回の記事よりも少し間が空いてしまいました。先月末で社内案件のスクラムチームから離れ、本業の教育案件の方に戻りました。 このシリーズの最終回として、私がスクラムについて感じたことをまとめてみたいと思います。今回も個人的主観を多分に含んでお送りします(笑)。 なお、Sprint Review や Refinementについては、今回は執筆を見送ることにしました。ということで、この記事が本シリーズの一応の最終回となります...
記事を読む品質保証者の憂鬱「管理か保証かそれが問題だ」
前回の投稿から随分と時間が空いてしまいました。 申し訳ありません。 前回は”品質”と品質保証部、その役割と課題などについて述べさせていただきました。 今回は”品質”というワードで必ず登場する”品質管理”と”品質保証”について、筆者の思うところを述べてみたいと思います。 新参者の品質保証者の悩み # 筆者が開発部門から品質保証部門に異動して間もない頃、品質保証部門は品質保証部員を、開発部門が開催するもろもろの会議(レビュー会議、進捗会議、フェーズ移行提案会議などなど)に積極的に送り込んでいました...
記事を読むGitHub Packages - マルチレポによるライブラリ管理とGitHub ActionsとMavenを使ったCIの実行
マルチレポで管理しているモジュールのCIを行うにはパッケージレジストリが必要となります。今回はこのパッケージレジストリにGitHub Packagesを使った例を紹介します。 記事の背景 # Mavenは依存ライブラリをパッケージレジストリから取得しますが、実行対象のモジュール(jar)が他のリポジトリのモジュールに依存している場合、その依存ライブラリはパッケージレジストリ経由で取得する必要があります。このためマルチレポのCIではなんらかのパッケージレジストリが必要となります...
記事を読むVSCodeのESP-IDF拡張機能「Espressif IDF」を使ってみる
以前のIoT記事にてArduino IDEを紹介しましたが、いつも使用しているVSCode(Visual Studio Code)でESP32のプログラムを作成できたら便利だなと思っていました。 今回はVSCodeでESP32のプログラムが作成できる ESP-IDF拡張機能「Espressif IDF」を紹介します。 ESP-IDF とは # ESP-IDF は”ESP-IoT Development Framework” の略です...
記事を読むKafka Streams パイプラインを迅速に作成できる ksqlDB を触ってみる
ksqlDB は、Kafka クラスター上にリアルタイム性の高いアプリケーションを構築するための、ストリーム処理に特化したデータベースです...
記事を読むTypeScript5で導入されたStage 3のDecoratorを眺めてみる
TypeScriptでDecoratorって使っていますか? DecoratorはJava等のオブジェクト指向言語ではお馴染みのアノテーションです。DI/AOP等のメタプログラミングでよく使われているものです。 Decorator自体はECMAScriptの仕様として、かなり昔(2014年)から存在していました。 現時点(v4.9)のTypeScriptでサポートしているDecoratorは、Stage 2(Draft)の仕様です...
記事を読むGitHub Pull Request マージキュー(beta)を試す
GitHub で PR のマージキューがパブリックベータになりました。 Pull request merge queue (public beta) | GitHub Changelog --> Information2023年7月12日にマージキューが GA になりました...
記事を読むWindowsでRust開発環境を作ってみる(VSCode+BuildTools+rustup)
最近はRustが人気と聞き、”技術ミーハー”な筆者としてはRustの開発環境を構築してみたくなりました。 Rustはプログラムの実行が高速であり、C/C++が不得意であったメモリの安全性を確保するなどの特徴を持ち、C/C++に取って代わるプログラミング言語になりえるステータスを持っています。 今回はWindows10+VSCode+BuildTools+rustupでRustの開発環境を構築してみようと思います...
記事を読むSystem.Loggerって知ってる? - Javaの標準Loggerインタフェースに今更気がついた
筆者が普段から使っているHelidonの4.0.0 ALPHA-4のリリースノートを眺めていたところ"Logging: Change JUL to System.Logger in most modules"という変更が目に留まり"System.Logger"ってなんだ?と調べてみたところ、なっ、なっ...
記事を読む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」を紹介したいと思います...
記事を読む