今年のTrinoへのコントリビューションをまとめてみた

前半は仕事が忙しすぎてOSS活動どころではなかったのですが、後半から少し余裕ができたのでTrinoにも細かい改善やバグ修正などいくつかPRを送って取り込んでもらうことができたので記録のためにまとめてみました。

年末までにまだ増えるかもしれないので増えたら追記します。

GitBucket 4.40.0をリリースしました

Scalaで実装されたオープンソースのGitサーバ、GitBucket 4.40.0をリリースしました。

https://github.com/takezoe/gitbucket/releases/tag/4.40.0

このバージョンでの大きな変更および新機能は以下の通りです。

デフォルトブランチが変更可能に

これまでmaster固定だったデフォルトブランチ名ですが、設定で変更可能になりました。デフォルトは引き続きmasterのままですが、将来のバージョンでmainへの変更を検討したいと思います。

イシュー/プルリクエスト検索でカスタムフィールドをサポート

イシューやプルリクエストをカスタムフィールドで検索できるようになりました。

検索ボックスでfield_name=valuefield_name<valueといった検索条件を指定できます。

フォークしたリポジトリのデフォルトブランチからプルリクエストを作成可能に

これまでフォークしたリポジトリのデフォルトブランチからはプルリクエストを作成できなかったのですが、これが可能になりました。

ニュースフィードで参照可能な全リポジトリのアクティビティを表示

これまでダッシュボードのニュースフィードでは自身が管理者として所有しているリポジトリのアクティビティのみ表示されていましたが、参照権のあるすべてのリポジトリのアクティビティを表示するようになりました。

これによってこれまでは表示されていなかったコラボレーターとして登録されているリポジトリのアクティビティもニュースフィードに表示されるようになりました。

Java 8サポートの廃止

GitBucketの実行環境としてJava 8はサポートされなくなりました。もしGitBucketをJava 8環境でお使いの場合、Java 11以降へのアップグレードをお願いいたします。

git pushのパフォーマンス改善

git pushのパフォーマンスを改善しました。巨大なリポジトリではこの改善では不十分な可能性がありますが、引き続き改善策を模索していきます。

今回のバージョンではこの他にもWeb APIを中心に様々なバグフィックスを行っています。詳細についてはIssueの一覧をご覧ください。

Scalatra 3.0.0をリリースしました

サーブレットベースのScala用WebフレームワークでScalatra 3.0.0をリリースしました。

github.com

機能面では2.x系と基本的に変更はなく(非推奨になっていたモジュールを削除したりはしています)Scala 3とJakartaへの対応がメインとなっています。Jakarta対応に伴って各モジュールのアーティファクト名に-javaxまたは-jakartaというサフィックスが付くようになっていますのでご注意ください。

// for javax
libraryDependencies += "org.scalatra" %% "scalatra-javax" % "3.0.0"

// for jakarta
libraryDependencies += "org.scalatra" %% "scalatra-jakarta" % "3.0.0"

周辺ライブラリのScala 3対応待ちもあり、最初にマイルストーンビルドを出してから1年以上経ってしまいましたが、先日最後のブロッカーだったTwirl 1.6.0が無事リリースされたのでScalatraも正式にリリースすることができました。サンプルやドキュメントなどがまだ更新できていないのですが、量がかなりあるので少しずつ修正していきたいと思います。

今後についてですが、Scalatraは新規に使い始めるユーザさんより既存のアプリケーションで使用していてアップグレードしたいというケースの方が圧倒的に多いと思うので互換性を維持しつつ最新のScalaやライブラリに対応していくだけで十分かなとは思うものの、SPA以前のWebフレームワークなのでAPI開発には使いにくいと感じる部分もあり、そのあたりは強化してもよいかもしれないなぁと感じています。

GitLabに学ぶ 世界最先端のリモート組織のつくりかた ドキュメントの活用でオフィスなしでも最大の成果を出すグローバル企業のしくみ

私が勤務するトレジャーデータは現在フルリモート環境というわけではないのですが、パンデミック以前からチームはグローバル体制だったのでリモートワークや非同期コミュニケーションは必須で入社直後はそれゆえの難しさを感じることもあり、パンデミックでフルリモートとなって改善した点もあったり、オフィス回帰の流れとなっても結局チームメンバーがオフィスに揃うわけではないので以前の問題が解決するわけではなかったりと、グローバルチームにおいては時差や文化の差異など、単にリモート or オフィスに止まらない難しさがあり、何かヒントが得られればと思いこの本を読んでみました。

内容的には評価制度などあまりリモート固有ではなさそうなトピックもあったり、ドキュメントやオンボーディングなど気になっていたトピックがめっちゃサクっと終わってしまったり、「リモート組織のつくりかた」というだけあってやはり組織の強力な意志がないと実現が難しい部分が多く一社員が読んでどうこうという本ではないような気もしたりしましたが、カルチャーの話やコミュニケーションのルールなど個人でも参考になる部分もありました。GitLabの方が書いているわけではないので難しいのかもしれないですが、もう少し立場に応じた具体的な例や体験談があったりすると嬉しかったような気もします。

著者の方もパンデミックを機に自社をリモート組織に変革したとのことなので、このタイミングでの出版は仕方ない気もしますが、どちらかといえばオフィス回帰の流れな昨今、パンデミック初期に本書が出ていたらもう少し違った受け止め方をされていたような気もします。しかし自分がGitBucketを作り始めた頃はまだGitLabも法人化したかどうかくらいだったの時期だったと記憶しているのですが、いやはやすごい会社になったものだなぁと勝手に感慨に浸っていますw

WEB+DB PRESSと私

技術系情報誌の廃刊ラッシュを乗り越え20年以上の長きに渡り続いていたWEB+DB PRESSがまさかの休刊ということで、WEB+DB PRESSにお世話になったソフトウェアエンジニアの端くれとしてWEB+DB PRESSとの思い出を書いてみたいと思います。

gihyo.jp

私がWEB+DB PRESSに出会ったのはちょうど新卒で横浜のとある弱小零細偽装請負SES企業に就職した直後のことでした。自社で立ち上げるサービスを社員教育を兼ねて(今思えば新卒社員をいきなり現場に売るわけにもいかず)Javaで作るということで、Webといえば学生時代PerlCGIを書いたりはしていましたが、Javaを触るのはほぼ初めてだったので、創刊号のTomcatJSPの記事を読みながら一生懸命動かしていた記憶があります。

gihyo.jp

その後も都内各所に派遣されたり幽閉されたりしながらSI業界の底辺で働いていた若かりし日の私にとって、WEB+DB PRESSJAVA PRESSJava Worldといった技術情報誌は様々な分野の最新技術について学ぶことのできる情報源であるとともに、記事を執筆されているスーパープログラマーの皆さんは憧れの存在でもありました。また、Java専門誌だったJAVA PRESSJava Worldと違ってWEB+DB PRESSは記事のバラエティも豊富で、当時自分からは遠い存在だと思っていたキラキラWeb界隈の様子を窺い知ることのできる貴重な場でもありました。

その後、OSS活動を行うようになり、その絡みで雑誌やWeb媒体で執筆の機会を頂いたり書籍を出させていただいたりもするようになったもののWEB+DB PRESSだけは縁がなかったのですが、2005年ついにJSF特集の際に当時個人でOSSとして開発していたJSF開発用のEclipseプラグインを紹介する記事を書かせていただいたのは一生の思い出です(多分WEB+DB PRESSで記事を書かせていただいたのはこれが最初で最後だったと思います)。

gihyo.jp

現在では技術情報はインターネットで最新の情報をいくらでも得ることができる時代ですが、自分から情報を取りに行くというスタイルだとどうしても自分が興味のある分野に偏りがちです。WEB+DB PRESSのような雑誌は自分が普段興味のない分野の情報にも触れることができますし、著者の方独自の知識や経験に基づいた記事など、単なる技術情報を超えたコンテンツも大いに魅力のあるもので、最近も気になる特集記事がある場合はちょこちょこ購入させていただいていました。

振り返ると駆け出しの頃にWEB+DB PRESSに出会っていなければ現在の私はなかったといっても過言ではありませんし、同じようにWEB+DB PRESSに育てられたという方も多いのではないかと思います。これで残る紙媒体の主要な技術系情報誌は同じく技術評論社さんのSoftware DesignだけになってしまいましたがWEB+DB PRESSの分まで末長く頑張って欲しいです。

エンジニアのためのマネジメント入門

スタッフエンジニア本のインタビューで「過去にマネジメントやってたときの経験が今でも活きている」という話をさせていただいたのですが、よくよく考えるとSI時代はマネジメントと言ってもプロジェクトマネジメントが中心でしたし、前職の時点でもまだ世の中的に形ばかりの1:1などが導入され始めたくらいでエンジニアリングマネジメントに関する知識が一般化されているとは言えない時期でした。

結局その後ICとして現職に転職しマネジメントからは離れることになりましたが、最近では日本国内でもエンジニアリングマネージャーというロールが一般的になってきてはいるものの、一言でエンジニアリングマネージャーと言ってもその果たすべき役割は組織の状況によって様々だなーと感じることが多く、また現職でも様々なタイプのマネージャーと接する機会があり、いろいろ思うところもあったのでこのあたりで一度自分の考えを整理しておきたいと思いこの本を読んでみました。

内容はマネジメント入門というだけあってコミュニケーションの基礎から組織のマネジメント、予算管理、採用・評価、技術戦略など浅く広く触れられています。実務を通じてなんとなく思っていたことがきちんと言語化されており、当時こういった知識があればもう少し違った振る舞いができたかもしれないなーと思うなどしました。これらの知識は自身がマネージャーでなくてもチームで仕事をする際に活かすことができると思いますし、こういった視点を持っておくとマネージャーと意思疎通がしやすくなるというメリットもあるのではないかと思います。

個人的に読んでいて面白いなと感じたのは「チームのフェーズによって必要なリーダーシップのスタイルが異なる」という話で、確かにそうだなと実感するところはあるものの、実際は同一のマネージャーがころころとスタイルを使い分けるのはなかなか難しいのではないかと思いましたw

TACTICAL FRONTIER 進化型サッカー評論

footballistaの人気連載を書籍化したもので昨年発売された本なのですが、近所の書店で見かけて面白そうだったので購入して読んでみました。

サッカーの戦術だけでなく、育成やマネジメントなどファンとして試合を見ているだけではなかなか見えづらい部分も含めた幅広い領域をアカデミックな視点から紹介するというもので、難しい部分もありましたが新鮮な切り口でとても面白かったです。また、元々雑誌連載ということもあり1つ1つの記事が適度な長さで完結していて読みやすいのも良かったです。自分はヨーロッパサッカーに興味を持ち始めてから20年ほど経ちますが、本書は近代サッカーを振り返る内容でもあり、当時の選手のプレーやチームの戦術など、確かにそうだったなぁと思い返したり、そういうことだったのか!という発見があったりもしました。ただ、監督のリーダーシップに関する研究を紹介する記事でのベンゲルの分類に関しては若干疑問がありましたが…w

ライトなサッカーファンに新たな視点を紹介するという意味ではとても意義のある本だと思いますが、できれば参照している記事や論文など情報源へのポインタがあるとそこから読者がさらに掘り下げていくこともできるのでもっと良かったのではないかと思いました。しかしこの本が発売されてからまだ1年ちょっとですが、すでにヨーロッパサッカーの状況が変化しつつあるのも驚くべきことです。進化の速度がどんどん早くなっている気がしますね。