Kengo's blog

Technical articles about original projects, JVM, Static Analysis and TypeScript.

2023年のOSS活動状況まとめ

昨年のに引き続きOSS活動状況をまとめます。2022年12月16日時点の情報です。 概要:OSS活動はもっと減った GitHubのプロファイルページによると今年は8,153 contributions、過去最多でした。ただこれはprivate repoでの活動を含む値で、これを除くと514 cont…

SLF4JとLogbackは2023年末現在で積極採用していいよ

2年前のブログが未だにブクマされるので、念のため掲題の件について書いておきます。 端的に書くと、あのブログで挙げた懸念事項が解消されたのでどんどん使うと良いと思います。 SLF4J v2の安定版がリリースされた 良かったですね。ちなみにv2.0.9から slf4…

プログラマのフルリモートワークにダジャレが向いている理由とその功罪

株式会社ヘンリーでSREなどをやっている id:eller です。 この記事は株式会社ヘンリーAdvent Calendar 2023の4日めの記事です。一昨日の記事はkobayangさんのアラートを早く上げる・早く拾うでした。 さて、以下は筆者の日頃の業務を切り取った図です。みな…

spotbugs-gradle-plugin v6の安定版をリリースしました

spotbugs-gradle-plugin v6のリリース候補版(RC版)をお試しください で紹介したバージョン6の安定版が出ました。 今回の大きな目的はGroovyとJavaの混成で書かれていたプロジェクトをKotlinで書き直すこと、最新のAndroid開発環境でのテストに対応すること…

AccelerateとState of DevOpsをもとにした、DevOps問題意識の移り変わり

Accelerate 第1版(以下単にAccelerateと呼ぶ)はDevOpsに関するトレンドを抑えるうえで基本となる本なのですが、もはや古く最新の知見が書いてあるとは言えません。State of DevOpsは毎年アップデートされているのですがコンテキストを丁寧には抑えてくれず…

新しくチームを持ったときに伝える、開発体制に求めること 2021

2021年に書いた下書きが出てきたので整理して供養します。今見るとチームが十分に大きいことを前提にしていますね(レビュアーを2人確保するとか)。 ぶっちゃけIndividual Contributor各位が快適に開発できれば何でもいいんですが、一応ビルドやリリース周…

プログラミング言語が抱える課題を解決するには言語を乗り換えるのが一番いい、かもしれない

この記事は集まれKotlin好き!Kotlin愛好会 vol.47の懇親会でちょっと触れた内容を、膨らましてブログ用にまとめ直したものです。 注意点として、Java用静的解析OSSの開発保守を長年やってきたJavaプログラマがKotlinに乗り換えて1年経ったころに書いている…

spotbugs-gradle-plugin v6のリリース候補版(RC版)をお試しください

spotbugs-gradle-plugin v6のリリース候補版(RC版)が出たので、GradleでSpotBugsを実行している方はぜひお試しください。 github.com 主なBreaking Changes effort と reportLevel を型安全に書けるようにした関係で、ビルドスクリプトの更新が必要なケー…

元toB系プログラマが医療情報技師の勉強をして面白かった部分

今年の医療情報技師能力検定試験に向けて、医学医療編・医療情報システム編の学習を進めてきました。toB系プログラマとして働き始めてから見てこなかった単語や発想がたくさんあって面白かったので、印象的だったところをまとめます。 医療現場はロールベー…

私がとあるOSS開発から手を引いた経緯

ホットな話題に乗っかって、私がSpotBugsというJava向け静的解析ツールのOSS開発から手を引いた理由をまとめてみます。 自分がJavaを使わなくなった 先のブログでも指摘されている通りで、自分がそのソフトウェアを必要としなくなったというのは大きな理由に…

ティール組織わからん、を掘り下げる

組織の話が好物なので色々読んできたのですが、結局ティール組織はよくわからないままでした。最初に本を読んだのが5年も前なんですね。 ティール組織は面白くなかったというか、個人的にはそこまで響かなかった。歴史書読んでるみたいな感覚で……。リーンス…

Threaddump, JFR, JMC周りの知識のアップデート

久々に古い知識を整理していて、けっこう更新されているものが多いのでここにまとめる。 JDK Mission Control (JMC) JMCはOracleのウェブサイトからダウンロードできる。 標準ではOS標準のロケールが利用される。UIを日本語化する場合は jmc.ini で user.lan…

Gradle用のGitHub Actions勘どころ(2023年夏)

前回書いたのがもう4年前でビビったのと、最近いろいろ進展があったのでまとめてみます。 actions/setup-java の依存キャッシュを使わない これ自分が実装した機能なのでホント申し訳ないんですけど、今なら gradle/gradle-build-action を使ったほうが良い…

両利きの経営を読んだ

両利きの経営(増補改訂版)―「二兎を追う」戦略が未来を切り拓くを読みました。自分の15年間の社会人経験は探索と深化が半々という感じだったこともあり、マネジメントに加えて現場の人間の感覚でも楽しく読むことができました。 この本の結論はとても単純…

Cloud RunがImage not foundと言ったときの原因事例集

Cloud Runはとても便利なのですが、エラーメッセージがわかりにくいことがあります。特にデプロイしたときに遭遇するこちらのエラーが厄介です: ERROR: (gcloud.run.deploy) Image 'asia-northeast1-docker.pkg.dev/foo/bar/baz' not found. コンテナを引っ…

Maven4の動向メモ

Maven 4は2年近く前から開発されていて、最近alphaバージョンがリリースされています。自分がMavenを使うことは殆ど無いとは思うのですが、傾向だけでも把握しておきたくてリリースノートやメーリングリストに潜ってみました。 4.0.0-alpha2 Release Notes 4…

パッケージなメガベンチャーから医療機関向けサービスを提供するスタートアップに転職して6ヶ月して感じたこと

いよいよ試用期間が終わりまして、ドメイン知識はともかく同僚の働き方はだいぶ掴めてきた気がします。6ヶ月何をやっていたかは会社の方のブログに書いたので、こちらでは感じたことを書いておきます。なお入社2ヶ月時点での所感を別の記事に記載しています…

2022年に試した開発ワークフロー関係の機能やツール

数えてみたら意外と数あったのでまとめます。 release-please Google謹製のリリース自動化ツール。monorepo対応のRelease Drafterという感じですが、リリースはDraft Releaseの安定版への昇格ではなく、PRのマージによって行います。PRでリリースするという…

2022年のOSS活動状況まとめ

昨年のに引き続きOSS活動状況をまとめます。2022年12月20日時点の情報です。 概要:OSS活動は減った GitHubのプロファイルページによると今年は4,513 contributionsでした。ただこれはprivate repoでの活動を含む値で、これを除くと1,263 contributionsと昨…

医療向け基幹システムを提供するスタートアップに入社しました

前回の退職エントリに続けての入社エントリです。 2022年7月1日より株式会社ヘンリーにSREとして入社しています。Java→Kotlin、AWS→GCP、Ansible→Terraformなど技術的には大きな変化を伴う転職でしたが、SREとしての観点や課題解決プロセスへの習熟、そして…

Gradleのjvm-test-suiteプラグインがテスト周りの定型コードを排除するのに便利そう

Gradle v7.5の時点ではまだIncubating段階の機能ではあるのですが、Gradleの新しいプラグイン jvm-test-suite がいい感じなので紹介します。 docs.gradle.org 解きたい課題:サブモジュールや統合テストが出てくるととたんに面倒になるビルドスクリプト Grad…

GitHub Actions 最近のやらかし一覧(2022年夏)

2020年のやらかし一覧 に続いて、最近のやらかしも残しておきます。 PRがマージされたときだけPR番号を取得しそこねる PR番号を取得するのに GITHUB_REF を使いがちですが、マージされたときだけはマージ先ブランチ名が入ってきてしまうので完全ではありませ…

13年ぶりにストレングスファインダーをやった

ストレングスファインダー、今はクリフトンストレングス(CliftonStrengths)と呼んでいるそうですが、13年前に新卒入社したときも本を買ってテストを受けたことがありました。 当時は慎重さ・戦略性・規律性・内省・収集心が強みだという結果が出ていました…

退職エントリ

14年勤めたソフトウェアベンダーを今月末で退職します。私が入社したころは新卒が3年で辞めるという話があって、漠然と自分も似たような感じになるのかもと思っていたので、まさかここまで長く在籍することになるとは想像していませんでした。お世話になった…

オブジェクト指向か関数型か、という話題に私達はどう接するべきか

私がコードを書くときには「オブジェクト指向でいくか、それとも関数型か?」みたいなことはほとんど気にしていません。特にオブジェクト指向については人によって定義から違うこともままあるため、この手の議論がとても遠回りになることも多いと感じます。 …

「非nullのint配列」をアノテーションで表すのは `@NonNull int[]` ではない

正解は int @NonNull [] です。な、なんだってー! 本当です。Java言語仕様書にも記載がありますが、配列を修飾する場合は [] の手前にアノテーションを書く必要があります。JVM仕様書に記載の例のほうがわかりやすいかもしれません: @Foo String[][] // A…

リリース自動化の嬉しみとその手法

DevOpsやCIOps、GitOpsなどを通じて生産性向上を突き詰めていくと、コンパイルやテストだけではなくリリースまで自動したくなってきます。リリースには必要な作業が多く、また頻度も高くないため毎回思い出したり間違えたりが発生するためです。 特に変更内…

Gradle/Kotlinで開発する私的ベストプラクティス2022

こちらのエントリーが素敵だなと思ったので、最近書いてるKotlinプロジェクトのベストプラクティスをまとめてみます。一部はJavaプロジェクトにおいても利用できるはずです。 zenn.dev 基本方針 参加障壁を下げる。OSSプロジェクトでもプロプライエタリ・ソ…

--add-exportsをMaven/Gradleで使う

--add-exports なんてオプションは使わないに越したことはないのですが、依存先ライブラリの都合でどうしても必要という私のような人のためのメモ。 ポイントは javac だけでなく javadoc ないし java (テスト実行)コマンドに対するオプション提供も必要と…

JavaScript Actionsをnode16で動かすようにする

この記事はCI/CD Advent Calendar 2021に参加しています。 先日GitHub ActionsがNodeJS v12のみならずv16でも動くようになりました。 github.com 今まではNodeJS v12しかサポートされていませんでしたが、このv12は来年の4月でサポートが切れます。速やかにv…