Skills Matter社の破産とロンドンで登壇予定だったScalaミートアップのキャンセルについて

f:id:takezoe:20191130222308p:plain

ロンドンで技術系イベントを多数開催していたSkills Matter社が10月末に破産してしまったそうです。

www.cbronline.com

Skills Matter社はScalaDaysを除けばヨーロッパで最大のScalaカンファレンスであるScala Exchangeを毎年開催していたりと、Scalaコミュニティでも大きな存在感がありました。自分も一昨年のScala ExchangeでGitBucketのライトニングトークをさせていただきました。

takezoe.hatenablog.com

実は今月末にSkills Matter社が定期的に開催しているScala MattersというScalaミートアップで登壇させていただく予定だったのですが、11月頭に担当の方にメールで連絡を取ろうとしたところ、自動返信メールでAdministrationに入ったということを知りました。ミートアップがキャンセルされるのか知りたかったのでLinkedIn経由で連絡を取ってみたのですが、「何もわからない、数日後に発表があるはず」という返信を貰いました。

数日後、CEOであるWendyさんからLinkedIn上の記事で、予定されていた資金調達に失敗して会社を畳まざるを得なかったことが語られました。

www.linkedin.com

現在はSkills Matter社のWebサイトもクローズされ、有料イベントのチケットを購入してしまった人は管財会社に電話で問い合わせるようにとのメッセージがあるのみです。

旅費をカバーしてもらう関係でロンドンまでのフライトやホテルは最短の日程かつキャンセルできない格安チケットで予約してしまっていたのですが、ミートアップが開催されないとなるとわざわざ往復20時間以上かけてロンドンまで弾丸ツアーをするのも疲れるだけなので残念ながら今回のロンドン行きは取りやめることにしました。

管財会社はSkills Matter社の資産の買い手を探しているとのことでしたが進捗はあったのでしょうか。Skills Matter社はWebサイト上で過去のイベントの動画なども公開していたのですが、これらの貴重なリソースが失われてしまわないよう祈るばかりです。

マルチペアリング可能なUS配列のBluetoothキーボード

家のデスクが狭いので二台のクラムシェルモードMacBookを一式の入力デバイスで切り替えて使いたいと思い、マルチペアリングの可能なBluetoothキーボードを探していたのですが、マルチペアリングできてUS配列のものがなかなか見つからず、結局以下のものを購入してみました。

実際に使ってみて、Bluetoothの接続自体は問題なく機器の切り替えもスムーズです。機器は3台までペアリングでき、Fn + 1 or 2 or 3で接続先を切り替えることができます。今どのデバイスに繋がっているかはLEDインジケーターで分かりますし、電池式でなく充電式なのもよいです。配列は至って標準的でキーストロークやクリック感もそれなりにあるのですが、筐体が薄すぎるのと、筐体とデスクの間に空間ができるのでタイプしていてやや不安定な感じがあります。付属のポーチをキーボードの下に敷いて使うと安定していい感じです。

とりあえず目的は達成できたのですが、やはり入力デバイスは実際に触って買わないとダメだなと感じました。ただ、US配列のマルチペアリング可能なBluetoothキーボードは選択肢が少ない上に家電量販店などにもなかなか置いていないので悩ましいところです。日本国内にいる限り、日本語配列の方が既製品の選択肢が豊富なので、そういう意味で日本語配列を選ぶのはありかも知れないと思います。

以前のエントリで触れたNizのものは価格がそれなりに高いのと、最近HHKBとThinkPadキーボードを併用していてパンタグラフのキーボードの方がキーストロークが浅くて疲れにくいと感じていたのでこちらを選択したのですが、本当はThinkPadキーボードのBluetoothモデルがマルチペアリングできるようになると一番良いですね。ThinkPadキーボードは現行モデルが出てからもう何年も経つのでそろそろモデルチェンジしてもよさそうな気もしますが…。

ちなみにマウスもマルチペアリングできる手頃なものということで以下のロジクールのものをセットで購入しました。こちらは単三電池式でBluetoothだけでなくUSBアダプタも付属しています。2台までペアリング可能でマウスホイール手前のボタンで簡単に接続先を切り替えることができます。マウスの使い勝手自体は可もなく不可もなくという感じです。

Airframe Meetup #3でLTをしました

去る10月23日(水)にトレジャーデータの東京オフィスでAirframe Meetup #3が開催されました。

airframe.connpass.com

誠に僭越ながら私もLTをさせていただきました。Java時代からのDIの変遷を振り返るという老害的なテーマだったのですが、だいぶグダグダな感じになってしまったのでもう少し時間をかけて準備するべきだったと反省しています。

www.slideshare.net

ちなみにどういう風の吹きまわしか、11月にロンドンで開催されるScala Mattersというミートアップで同様のテーマでお話しさせていただくことになっています。こちらは45分のセッションとなるので気合いを入れて準備して臨みたいと思います。万が一当日ロンドンにいらっしゃる方が居られましたら是非お立ち寄りいただければと思います。

skillsmatter.com

MacBookを二枚立てられるようにしてみた

以前書いたように自宅ではデスクが狭いのでまな板スタンドでMacBookを立てて使っています。

takezoe.hatenablog.com

ここのところ諸事情によりもう一台のMacBookと使い分けているのですが、都度置き換えるのが面倒なので二枚立てできるスタンドを購入してみました。

以下のような感じでしっかり二枚のMacBookを立てられるようになりました。

f:id:takezoe:20191020020747j:plain

Amazonは最近治安が悪いし、聞いたことないメーカーのものなので大丈夫かなと思っていたのですが、作りもしっかりしてるし立てる部分の幅も調節できていい感じです。お洒落度は微妙なところですが、ノートPCだけでなくタブレットを立てたり、キーボードを立てたりするのにも使えそうです。デスクを広く使えるようになりますね。

ちなみに外部ディスプレイは一枚しかないのですが、片方のMacBookHDMI、もう片方をDisplayPortに接続しておくことでディスプレイ側の入力を切り替えるだけで使い分けられるようにしてあります。

いまのところキーボードは有線のHHKBを差し替えて使っていますが、マルチペアリングできるBluetoothマウスとキーボードがあれば線を差し替えずに二台の使い分けができるようになるはず…。以下のNiZというメーカーの静電容量式キーボードが気になっています。もうキーボードは積まないと固く心に誓ったのですが…。

データ指向アプリケーションデザイン

監訳者の@taroleoさん経由で発売前に頂いたのですが、分量が多く(約600ページ)内容もぎっしりで読むのに時間がかかってしまいました。紙媒体のものを希望してお送り頂いたのですが、あまりの厚さに持ち運びが困難なので電子版にすればよかったと若干後悔しました…。

データ指向アプリケーションデザイン ―信頼性、拡張性、保守性の高い分散システム設計の原理

データ指向アプリケーションデザイン ―信頼性、拡張性、保守性の高い分散システム設計の原理

近年クラウドの発展に伴い、小規模なアプリケーションといえども分散データシステムに関する知識が不可欠になってきました。AWSなどのクラウドプラットフォームでは手軽に分散ストレージや分散データベースを利用することができますし、WebアプリケーションとRDBを使うシンプルな構成のシステムでもクラウドプラットフォームの機能で冗長化が可能になりました。マイクロサービスアーキテクチャによるシステム構築にも分散システムへの理解が必要不可欠です。

このような時代において、分散データシステムに関する基礎知識を一冊で、かつ日本語で効率よくインプットすることができるということは非常に価値があります。600ページという分量もさることながら、各章毎に列挙された参考文献のリストからもこの書籍の密度がわかります。読破するのに時間はかかると思いますが、これだけの情報源に自分で当たることを考えればそれも納得というところでしょう。内容も分散システム固有の話だけでなく、前提知識となるデータモデル、ストレージ、レプリケーション、パーテーショニング、トランザクションといった基礎的なトピックがしっかりと押さえられており、データシステムに関わるソフトウェアエンジニアであれば読んでおいて損はありません。

自分自身、日本語で読んだ方が数十倍は効率が良いので日本語訳の出版には感謝しかありませんが、それでも1周では理解が追いついていない箇所が多いので繰り返し読み込みたいと思います。冒頭でも書いた通り、紙媒体のものはかなり重量があって持ち運びに向いていないのと、リファレンスに使うような本でもないので個人的には電子版がおすすめですw

GitBucket 4.32.0をリリースしました

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

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

Scala 2.13.0およびScalatra 2.7.0へのアップデート

今回のバージョンからGitBucketはScala 2.13.0およびScalatra 2.7.0でビルドされるようになりました。これはGitBucket上で動作する全てのプラグインScala 2.13およびSCalatra 2.7でビルドされたものでなくてはならないということを意味します。すべてのオフィシャルプラグインGitBucket Community pluginsで提供されているプラグインおよび以下のプラグインについてはすでにGitBucket 4.32.0で動作するバージョンがリリースされています。

この他のサードパーティプラグインについてはGitBucket 4.32.0では動作しません。もしそれらのプラグインを利用する必要がある場合はプラグイン側で対応が行われるまでGitBucket 4.32.0へのアップグレードを待ったほうが良いかもしれません。

また、Scala 2.13.0はScala 2.13系の最初のGAリリースであるため未知のバグや非互換などによる不具合が生じる可能性があります。GitBucketをクリティカルな用途に使用している場合はより安定した将来のリリースを待つか、十分にテストを行った上でアップグレードすることをお勧めします。

プラグインのネットワークインストールの廃止

GitBucket 4.32.0ではプラグインレジストリからのプラグインのネットワークインストールが廃止されました。従来のバージョンのGitBucketを使用している場合、引き続きプラグインレジストリからのネットワークインストールを利用できますが、プラグインレジストリは近い将来シャットダウンする予定ですので、その後は従来バージョンでのGitBucketでもプラグインのネットワークインストールは利用できなくなります。

GitBucket organizationでメンテナンスされている以下のプラグインについてはGitBucketに標準でバンドルされるようになり、デフォルトで利用可能な状態になります。

上記以外のプラグインについては手動でインストールを行う必要があります。

ドラフトプルリクエス

プルリクエストを作成する際にドラフトモードを選択できるようになりました。ドラフトモードで作成したプルリクエストはドラフトモードを解除するまでマージすることができません。

f:id:takezoe:20190808233239p:plain

プルリクエストがマージ可能な状態になったらドラフトモードを解除することができます。ドラフトモードを解除するとプルリクエストがマージ可能になります。

f:id:takezoe:20190808233255p:plain

コミットID間の差分比較

http://localhost:8080/user/repo/compare/commitId...commitId のようなURLでアクセスすることで差分比較ビューでコミットID間の差分表示ができるようになりました。

f:id:takezoe:20190808233313p:plain

プルリクエストのデフォルトプライオリティ

デフォルトとして設定されたプライオリティがイシューだけでなくプルリクエストにも反映されるようになりました。

f:id:takezoe:20190808233328p:plain

イシュー、プルリクエストタイトル編集時のフォーカス

イシューやプルリクエストのタイトル編集ボタンをクリックした際にタイトルのテキストフィールドにフォーカスするようになり、ボタンクリック後に即座にタイトルを編集することができるようになりました。

f:id:takezoe:20190808233343g:plain

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

ThinkPad USBキーボード(前モデル)のトラックポイントスクロールをMacで使えるようにする

以下の記事でも書いた通り、以前はThinkPad USBキーボードの前モデル(7列キーボード)を愛用していたのですが、MacをHigh Sierraにバージョンアップしてからというもの、どういうわけかトラックポイントのセンターボタンでのスクロールが効かなくなってしまい長らく使用を断念していました。

takezoe.hatenablog.com

ところがふと思い立ってKarabiner Elementsについてググっていたところ以下のような記事を発見しました。

applech2.com

もしやと思いあれこれ試してみたところ、見事センターボタンによるスクロールを復活させることに成功したのでその設定をメモしておこうと思います。

まずはKarabiner ElementsのDevicesタブでThinkPadキーボードのマウスデバイス側のイベント変更を許可しておきます(ThinkPadキーボードは同じ名前でキーボードデバイスとマウスデバイスの2つが表示されているはずです)。

f:id:takezoe:20190806002656p:plain

上記の記事にあるように https://pqrs.org/osx/karabiner/complex_modifications/ から「Change mouse motion to scroll (rev 1)」をKarabiner Elementsにインポートし、「Change button4 + mouse motion to scroll wheel (rev 1)」を有効にします。

f:id:takezoe:20190806002726p:plain

最後にSimple ModificationsタブでThinkPadキーボードのマウスデバイス側で「button3」を「button4」にマッピングします。

f:id:takezoe:20190806002739p:plain

以上でKarabiner Elementsの設定は完了です。あとはMac側の設定でスクロール方向やマウスカーソルの移動速度、スクロール速度などを調節すれば普通に使えるようになると思います。

完全に使用を諦めてずっと積みキーボードと化していたのですがこれで再び活用できそうです。このモデルは日本語配列のものしか持っていないのですが、使えるとなるとUS配列のものも欲しくなりますね…。しかし現在では入手困難でたまに出回ってもプレミア価格となっているようです…。