CloudNativeDaysTokyo2020でカンファレンスプラットフォームを開発した

9月8日と9月9日に開催されたCloudNative Days Tokyo 2020の実行委員として、カンファレンスプラットフォームを開発しました。とても楽しく、良い経験ができました。

もともと、実行委員としては去年の末ごろから参加して準備を手伝っていました。その時の主な担当はウェブサイトで、Hugoで作ったりしていた。あとはコンテンツ周りも関わっていたかな。

これまでカンファレンスで登壇はしてきたのですが、開催する側はやったことがなかったんですね。ミートアップくらい。なので、開催する側もやってみたくて参加ました。

結果として、これまでのオフラインイベントの開催は体験できませんでした。しかし、オンラインカンファレンスという新しい体験に関わり、とても楽しく良い経験ができました。

cndt2020は去年と同様オフラインイベントの予定だったのだけど、新型コロナウイルスの流行により、オンラインイベントに変更しました。そして、オンライン化にあたり配信などをどうやるかが課題となりました。

いくつかのサービスを検討したが、結果としては自分たちで作る決断をし、自分は決断した後、7月ごろから開発に参加しました(雑誌の執筆でバタバタしていた)。

技術スタックとしてはRailsとHeroku、Auth0、Vimeo、sli.doを使用。時間もあまりなかったので、外に出せるものは出した。そのため技術的にめちゃくちゃ難しい、というものはそこまでなくて(websocket周りの経験が無かったくらい?)、素朴にモデル設計やUIをどうやるかというところが難しかった。

開発メンバーはメイン2名、スポットで時々参加する人が数人で、デスマーチではないがやや大変だったかなという印象です。

カンファレンスプラットフォームとして大事にしたのは使い勝手で、プレイベントのrejektsで分かったUIの問題などを本番までに改修できたのはよかった。

本番のイベント中は負荷の監視をしたり参加者のフィードバックやアイデアを実装、デプロイしていました。素早い対応ができたのは自前実装の利点ですね。

今後、カンファレンスで同じプラットフォームを使うとなると破壊的変更が難しくなるので、エンジニアリングとしても難易度は上がりそう。UIをよりよくするためにはReactやVueのようなフロントエンドフレームワークが必要かもしれないという話をしていて、ここは新たなチャレンジじゃないかなと思います。

WEB+DB PRESS Vol.118の特集記事を一部書きました

https://gihyo.jp/magazine/wdpress/archive/2020/vol118

すでに発売から1ヶ月ほど経過していますが、8月24日に発売されたWEB+DB PRESS Vol.118の特集に寄稿しました。特集の内容としてはリモートワークをいかに実践するか?という話で、僕は仕事環境についての章を書きました。

リモートワークに取り組みたいけどどうすればいいのだろうか?とお困りの方は読んでみてください。

UserScriptを使って、Confluenceエディタのショートカットを一部無効にする

僕は日本語のかなに切り替える際、Ctrl-Shift-jを使っている。Ctrl-Shift-k、英字なら Ctrl-Shift-;だ。かな・カナ・英字を瞬時に切り替えられてとても便利なのだけど、最近Confluenceを使い始めて困ったことが発生した。それは、 Ctrl-Shift-jのショートカットがConfluenceのエディタにもあり、かなに切り替えるとエディタ側のショートカットも発動してしまうのだ。ショートカットとしてはJiraのチケット検索ダイアログを表示するというもので、これはこれで便利なのだけど僕としてはかな切り替えの方が優先順位が高い。複数のマシンでCtrl-Shift-jをかな切り替えに使っているし、そこは譲れない。

Confluence側の設定でショートカットを無効にできればよかったけどどうもそうはいかないようだったので、10年ぶりくらいにUserScriptを書いて制御することにした。

// ==UserScript==
// @name        Disable ctrl+shift+j in Confluence editor
// @namespace    http://repl.info/
// @version      0.1
// @description  Disable ctrl+shift+j in Confluence editor
// @author       Ryo Takaishi
// @include */editpage.action?*
// @include */createpage.action?*
// @run-at document-idle
// @grant        none
// ==/UserScript==

document.addEventListener('DOMNodeInserted', function() {
    if (tinyMCE) {
        if (tinyMCE.activeEditor) {
            tinyMCE.activeEditor.shortcuts.remove("ctrl+shift+j");
        }
    }
}, false);

tinyMCEを使っているので、このようにショートカットを削除すればOK。JavaScriptを知っているとこういうちょっとした改善をシュッとできるので便利ですね。

Thunderbolt3に繋ぐドッキングステーション、CalDigit TS3 Plusを導入した

メインマシンとしてMacBook Pro 16を使っているのだが、Thunderbolt3のポートしかないので有線LANが繋げなかったりType-Aケーブルを繋ぐためにハブを複数繋いだりして不便だったのでエイヤとドッキングステーションを導入した。

導入したのはCalDigit TS3 Plus。背面にType-Aのポートが4つあり、キーボード・トラックボール・ウェブカメラ・マイクを繋ぐことができる。また、LANポートも備えているのでデスクで使うときは有線LANを使える。87Wの電源供給、Type-Cでモニタへ接続もできるのでデスク上がすっきりしたと思う。

ケーブルがまだゴチャゴチャしている

付属品は電源ケーブル・電源・TS3ケーブル。電源がかなり大きい。僕はデスクのしたのケーブルトレーに置いた。

横幅は本体より大きい。厚みはそんなにない。

裏面はポートがこれでもかと詰め込まれていて、見応えがある。今はType-Cケーブルでモニタと繋いでいるけど、DisplayPortが余るのでそっちで繋いでもいいかも。

裏面の様子。

UHS-IIのSDカードスロットもあるし、このドッキングステーションで当面は困らなさそう。レビューにも書かれていたが、本体が結構熱を持つのでそこは少し心配。

iMacを処分

先日自宅で使うマシンを更新したので、それ以前に使っていたiMacを処分した。

2014年に購入した27インチ late 2013モデルで、メモリを自分で32GBに変更して使っていた。結構快適だったけどストレージがSSD256GBにしてしまったのでちょくちょく容量が足りなくなってしまったりしていた。モノは良かったのだけど、箱がめちゃ大きくてかなりスペースを圧迫して困っていたので今後iMacを買うことはないかも。

メルカリなどで売れないかな〜と思ってしばらく出品していたけど売れなかったので買取サービスで買い取ってもらった。お世話になりました。