統計の話をしようじゃないか - ソフトウェア品質のための統計入門(No.3 代表値の使い分け:平均・中央値・最頻値)
はじめに # 「統計の話をしようじゃないか」第3回は、「代表値の使い分け」についてお話しします。 世の中にはデータが溢れています。 「データの中心って、どう表せばいいのか?」 統計の最も基本的な問いの一つがこれです。 品質データを扱うとき、よく「平均値」が使われますが、それだけで本当に適切な判断ができているでしょうか? 実は、「平均・中央値・最頻値」はそれぞれ違った特徴を持っており、使い方を間違えると誤解を招く恐れもあります...
記事を読む統計の話をしようじゃないか - ソフトウェア品質のための統計入門(No.2 データとの正しい向き合い方)
はじめに # 「統計の話をしようじゃないか」第2回は、統計を扱う前提となる「データそのもの」との向き合い方についてお話しします。 どれだけ立派な分析手法を使っても、元となるデータが適切でなければ意味がありません...
記事を読む統計の話をしようじゃないか - ソフトウェア品質のための統計入門(No.1 統計って何? ソフトウェア品質になぜ必要?)
はじめに # あるIT企業のとある部門。 部長(品質保証):「先日のリリース、バグがやけに多かった気がするんだけど、どうなんだ?」 開発リーダー:「そうですね…たしかにちょっと多かったかも、って印象はあります」 部長:「“印象”ねぇ…数字ではどうなってる?」 開発リーダー:「え、ええっと…」 部長:「それと、先月追加したテスト、あれ効果出てる? 不具合減った?」 メンバー:「体感では減ってる気はしますが…はっきりとは…」 こんな会話、IT企業の現場では珍しくありません...
記事を読むCCPM実践編:バッファ半減でも納期厳守!クリティカルチェーンで現場が変わる
はじめに # 前回の記事「CCPM理論編」では、CCPM(Critical Chain Project Management)の基盤となるTOC(制約理論)について解説しました。 CCPMは、タスクごとのバッファを集約して全体で管理し、制約リソースを最大限活用することで、プロジェクトの納期短縮とスループットの向上を目指すプロジェクト管理手法です。 個々のタスクに潜む「隠れたバッファ」を見える化し、プロジェクト全体で最適に活用することで、より現実的で信頼性の高いスケジュール作成を可能にします...
記事を読む「Rust × ESP32」で始める組み込み開発:Lチカまでの完全セットアップガイド
以前、WindowsでRust開発環境を作ってみる(VSCode+BuildTools+rustup)という記事を書きました。 記事の最後に「ESP32まわりの問題が片付いたら、次回の記事で報告したいと思います」と言い残し、随分と時間が経ってしまいました。 今回は、RustとESP32による開発環境を構築できたため、その手順を詳しく紹介します。 主に、こことか、ここを参考にしました。 はじめに # 開発環境は以下を使用します...
記事を読むElectron アプリから macOS Apple Intelligence の Writing Tools を使う
はじめに # 先月末に Electron 36.0.0 がリリースされました。 Electron 36.0.0 | Electron 目玉機能として macOS の Apple Intelligence の Writing Tools をコンテキストメニュー経由で使用できるようになりました...
記事を読むJavaでもローカル環境でWhisperを使って音声データ書き起こしをしたい
はじめに # 音声データを文字起こししたいというニーズは多くの場面で存在します。OpenAIがOSSで提供する Whisper は高精度な音声認識モデルとして注目を集めており、Python環境では比較的手軽に利用できます。しかし、業務や既存システムの都合でJava環境からWhisperを使いたいというケースもあるのではないでしょうか。 私自身、Javaベースのプロジェクトで音声データの書き起こしを行いたい場面があり、WhisperをなんとかJavaから使えないかと模索しました...
記事を読む「暗号の扉を開く2つの鍵」~公開鍵と秘密鍵の仕組みと、インターネットを守る暗号技術の話
あなたを守る2つの鍵 # ― 暗号の不思議な世界へようこそ ― # あなたの目の前に、1つの「金庫」があると想像してください。 この金庫は「銀行口座のパスワード」や「個人情報」など、他人に見られてはいけない大切な情報をしまっておくために使われます。 でも、この金庫はちょっと変わっています。開けたり閉めたりするには、2つの鍵が必要なのです...
記事を読むCCPM理論編:優秀なチームでも失敗?原因は「ボトルネック」!CCPM基礎のTOCを学ぶ
はじめに # 「優秀なメンバーで計画通りに進めているはずなのに、なぜかプロジェクトが遅延し、時には失敗してしまう…」 多くのプロジェクトで、このような経験はないでしょうか? その根本的な原因は、目に見えにくい 「ボトルネック(制約)」 にあるのかもしれません。 この「制約」に注目した手法が、 CCPM(Critical Chain Project Management) です...
記事を読むAWS AppSync Events のデータソース統合の使い方を整理する
昨年(2024年)に公開した以下の記事で、AWS AppSyncのEvent APIを紹介しました。 /blogs/2024/11/13/aws-appsync-events/ AppSyncといえばGraphQLが有名ですが、WebSocketベースのEvent APIが導入されたことで、リアルタイム通信がさらに簡単になりました。 それから約半年が経過し、Event APIには機能追加が続いています。 代表的なアップデートは次のとおりです...
記事を読む生成 AI 時代の新人さん向け「自分のコードに責任を持てる力」をつけるために
はじめに # 今どきの新人さんは、どのように技術について調べたり、学んだりしているでしょうか。Web 検索すれば、公式ドキュメント、数多くの技術ブログ(もちろん当サイト含む)などの記事がヒットしますし、X (Twitter) や YouTube にも有益な情報が溢れています。GitHub には多くの OSS が公開されており、簡単に試すことができます。Udemy や O'Reilly などのオンライン学習プラットフォームで効率よく学べるコースもたくさんあります。そしてなんといっても生成 AI...
記事を読むIDF Component ManagerとKconfig設定でハマった話(VSCode+ESP-IDF拡張機能)
前回、「ESP-IDFプロジェクトの構成とCMakeの仕組みを徹底解説!(VSCode+ESP-IDF拡張機能)」という記事を書きました。 その後、気をよくしていろいろ試していくうちに、esp32-cameraコンポーネントを使ってカメラサーバーを作ろうとして盛大にハマったので、その体験談をまとめてみました。 開発環境 # 開発環境は以下の通りです...
記事を読むESP-IDFプロジェクトの構成とCMakeの仕組みを徹底解説!(VSCode+ESP-IDF拡張機能)
はじめに # 以前、「VSCodeのESP-IDF拡張機能「Espressif IDF」を使ってみる」という記事を書いてから随分と時間が経過してしまいました。 今回は「ESP-IDFプロジェクトがどう組み立てられているか」「CMakeの仕組みはどうなっているのか」に注目して解説していきます。 ESP-IDF は、CMake という「ビルドシステムジェネレーター」を採用しています...
記事を読むWhisper を使って会議の音声データを文字起こししてみる
はじめに # 一昔前は、打合せ議事録は若手社員が一生懸命作成し、先輩方が確認した上でお客様に提出する・・というのが一般的でした。地味に労力がかかる作業でもありました。 最近は Zoom でも Google Meet でも録音を元に文字起こしから議事録作成まで全て AI がやってくれるようになりました。アカウント情報と紐付けて話者特定もされますし、精度もどんどん上がっています(若干微妙な纏めになることもありますが)。オンライン会議の議事録は AI にかなりお任せできる状況になりつつあります...
記事を読むSpringの小話 - MockMvcのテストをAssertJにしてみる
Spring の Controller を対象とした MockMvc テストでは、従来はアサーションに Hamcrest を使っていましたが、Spring Framework 6.2(対応する Spring Boot 3.4)からは AssertJ も利用できるようになりました。 AssertJ の利点として fluent にMockMvcテストが書けることが挙げられますが、筆者としてはそれよりも given-when-then のスタイルでテストを書きやすくなった点が嬉しかったりします...
記事を読むUMLで表現しきれない“動き”を、ペトリネットで可視化する
# UMLだけじゃダメ?ペトリネットを知れば、もっと深くシステムが理解できる # この記事の目的 # もともとUML Format2.5.1をひも解いた結果を記事にするつもりだったが、ひも解く上でペトリネットの考え方が必要になり ペトリネットのことを学習した。せっかくなのでその学習した結果を共有しようと思い、今回記事にした。 UMLは強力なモデリングツールだが、システムの複雑な動作や状態の遷移を表現するには限界がある場合もある...
記事を読む品質保証者の憂鬱「SLOCの深淵を覗く:ソース行数計測の「なぜ?」を徹底解剖」
ソフトウェア開発プロジェクトに参加したことがある人であれば、プロジェクトの中で色々なメトリクス(ソフトウェアを定量的に測るための指標)を収集した経験があるのではないでしょうか? メトリクスは工数だったり、工期だったり、規模、欠陥数、などなど様々だと思います。 今回はメトリクスの中でも特に「規模」についてちょっと考えるところがあり、改めて「ソフトウェア規模とは?」について深掘り(重箱の隅を絨毯爆撃)したいと思います...
記事を読むCUDA、cuDNN、CMake地獄を乗り越えて、激古GPU+llama.cppで量子化DeepSeekモデルを動かすまでの戦い
今回は、型落ち・中古の激安GPU搭載PCでも、話題の大規模言語モデル「DeepSeek」シリーズをローカルで動かしてみようという挑戦記です。 ただ、DeepSeekネタは 豆蔵デベロッパーサイトの記事として既に以下の記事が公開されています。 Ollamaを使ってオープンソースLLMをローカルホストしてみよう また、今回使用を予定している「llama」についてはPython版が既に以下の記事で公開されています...
記事を読む「もう残業しない!」マルチタスクの罠から抜け出し、最速で成果を出す方法
はじめに # 「今日も残業か…」とため息をついていませんか? 多くの人が、複数のプロジェクトやタスクに追われ、マルチタスク状態から抜け出せずにいます。 「忙しいから仕方ない」と思いがちですが、実はそれが残業の原因かもしれません。 この記事では、マルチタスクの「罠」をゲーム形式で体験し、シングルタスクで「最速で成果を出す」ための具体的な方法を解説します。 「もう残業しない!」働き方を、一緒に実現しましょう。 マルチタスクとシングルタスク # 最初にマルチタスクとシングルタスクの説明を行います...
記事を読むBadに振り回されて、Problemを見失う──ふりかえりで向き合うべき「課題」とは何かを考える
はじめに # 初めまして。デジタル戦略支援事業部の加藤です。 ふりかえりの場で、「何が問題だったのかよくわからないまま、次はこうしよう(Try)を考え始めてしまった」...そんな経験はありませんか? 仕事や日常のちょっとした場面で、理由がはっきりしないまま改善案だけを出して終わってしまったという経験は、多くの方に思い当たるところがあるのではないでしょうか。 今回は、私がジムで体験したある出来事を通して、「何が本当の課題(Problem)だったのか?」を改めて考えてみたいと思います...
記事を読む