2020/02/13 日記

HHKB Professional HYBRID Type-S のファームウェアをアップデートした

macOS 専用のファームアップツール がリリースされていたのでアップデートした。

ファームウェアをアップデートするときは Bluetooth 接続ではなく、有線接続が必要だった。 Mac に付属の Type-C 充電ケーブルで Mac と HHKB を接続後、Fn + Control + 0 で有線接続に切り替えた。

ファームウェアが 2 種類同梱されていて、英語配列だったので HHKB800_FW_A041.hfb を指定した。 ファームウェアのアップデートに 4 分程度かかり、有線接続でも、Bluetooth 接続でも問題なく使えている。

Windows でも問題なく使えるかはまだ未検証。

なお、macOS 専用のキーリマップツールは 2020 年 5 月頃に公開予定とのこと。

2020/01/12 日記

Nike Training Club

自宅で簡単に体を鍛えたかったので iPhone にインストールした。

App Store で「自重トレーニング」で検索して、良さげだったのでこれにしてみた。App 内課金はあるようだが最初は無料で始められた。

インストールしてから分かったが自重トレーニング以外もあるようだ。まぁとりあえずやってみよう。

https://apps.apple.com/jp/app/nike-training-club/id301521403

2020/01/11 日記

HHKB Professional HYBRID Type-S 省電力を無効にしてみた

HHKB を Bluetooth 接続で1ヶ月弱使った。

仕事で平日1日8時間、私用で毎日1時間程度使ってきたが、電池1の残量2は 100 % のままだ。

HHKB のデフォルト設定だと、Bluetooth 接続でキー操作が30分間ない場合、自動的に HHKB の電源が切れてしまう。 電池の消耗を抑えるための、いわゆる省電力モードだ。

電池の消耗を抑えてくれるのはいいのだが、その状態から復帰するには HHKB のキー操作をしても復帰しない。 復帰するには、HHKB の電源ボタンを 1 秒以上長押しして、再度電源をオンにしないといけない。

これを回避するには、HHKB の6番目の DIP スイッチを ON にすれば良い。 どの程度、電池の消耗が激しくなるのかは未知数だが、エネループを使う想定なのでコスト面は問題ない。

この設定でしばらく様子を見てみよう。

マニュアル HHKB Professional HYBRID Type-S / HYBRID(英語配列 / 無刻印)

Perculia

MacBluetooth 接続している機器の電池残量を見れるアプリのはずだが、見れなかった・・。 Windows では見れるからよしとしよう。

https://apps.apple.com/jp/app/perculia/id1462633284?mt=12

esa.iomarkdown ライクな入力を実現する Chrome 拡張

esa.io の中の人が作成した Chrome 拡張。昔から使ってて、私用の Mac にはインストールしていなかったのでインストールした。

ブラウザで markdown 書くのが捗る。

esarea

ブラウザで開いているページを markdown のリンク形式でクリップボードにコピーしてくれる Chrome 拡張

これも esa.io の中の人が作成した Chrome 拡張。同じく、私用の Mac にはインストールしていなかったのでインストールした。 単機能なのがお気に入り。

・・が、更新が 2015 年 1 月で止まってるせいなのか、クリップボードにコピーされないなぁ。

Markdown Linker


  1. 電池は製品に付属していた単三の乾電池を使用している

  2. WindowsBluetooth 設定画面から、電池の残量が確認できる

2020/01/10 日記

NEC Wi-Fi 6 対応ルータ

ついに発表された。 物欲をそそられるが、対応している手持ちのクライアントが iPhone 11 しかないのが難点だ。

https://pc.watch.impress.co.jp/docs/news/1227872.html

はてなブログで今日の日記を書くブックマークレット

3 回同じことをやったら自動化するって偉い人が言ってたので Chrome で動作するブックマークレットを作った。

特定の URL に遷移後、何か処理を実行することができなかったので、2つに分けた。

javascript: location.href = 'https://blog.hatena.ne.jp/tikkss/tikkss.hatenablog.jp/edit';
javascript: (() => {
  const yyyymmdd = new Date().toLocaleString('ja-JP', { year: 'numeric', month: '2-digit', day: '2-digit' }).split(' ')[0];
  document.querySelector('#title').value = `${yyyymmdd} 日記`;
})()

JavaScript には Ruby でいう #strftime のような日時をフォーマットする関数がない。 ググる#getFullYear などで、整形するサンプルが沢山ひっかかるが煩雑である・・。

代替として #toLocaleString を使って実装した。 実装されているブラウザは限られるが、ブックマークレット用途で使うブラウザは Chrome なので問題なし。

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleString#Browser_Compatibility

#toLocaleString の options は下記を参照した。

http://www.htmq.com/js/date_toLocaleString.shtml

@t_wada さんの講演資料を読んだ

長かったが全部読み切った。

3種の神器のメタファ良いなぁ。 導入したときにすごい効果がありそう感が伝わってくる。

https://t-wada.hatenablog.jp/entry/clean-code-that-works

2020/01/09 日記

コミットメッセージ

いつからだろうか・・、VCS に記述するコミットメッセージが段々と長くなってきた。 変更の経緯などを細かく記述するようになったためだ。

コメントの話になると @t_wada さんのツイートを思い出す。

最近だと @sinsoku_listy さんのブログエントリが最高だった。

sinsoku.hatenablog.com

Git のコミットメッセージを自動改行してくれるやつ

Vim では出来た。 ・・が、日本語だと自動改行してくれない。惜しいなぁ。

https://stackoverflow.com/questions/11023194/automatically-wrap-long-git-commit-messages-in-vim

Add this to your .vimrc: au FileType gitcommit setlocal tw=72

RubyMine では不明。 IntelliJ IDEA には7年前に実装されているっぽいが・・。 RubyMine で同様な設定が見つからない。

https://youtrack.jetbrains.com/issue/IDEA-53615

They can be configured in Settings | Version Control [x] Commit message right margin (columns): 72 [ ] Wrap when typing reaches right margin

shebang

シバン って読むのかー。 シェバンッ って読んでた。

https://fjord.jp/kuroigamen/8.html

「黒い画面」にはスクリプトを単体で実行するために shebang (シバン)という機能があります。

それにしてもフィヨルドさんの説明は分かりやすいなぁ。

2020/01/07 日記

PostgreSQL

PostgreSQL default 0 な boolean カラムを追加したときに、既存のデータにおける追加した boolean カラムの値はどうなるんだっけ?

データマイグレーションタスクを作る必要が 0 であれば、ない。 NULL であれば、ある。

0 だった。当然といえば当然か。

HHKB Professional HYBRID Type-S

私用と仕事用のパソコンが違う。

それぞれ Bluetooth 接続しており、私用は数字キー 1 に、仕事用は数字キー 2 に割り当てていた。 しかし、逐一使用する機器を切り替えるのが面倒である。 1

私用と仕事用のパソコンは物理的に離れた場所にあり、同時に使うことはない。 そこで、どちらも数字キー 1 に割り当てて、逐一使用する機器を切り替えなくても使えないか?と考えた。

手順はこうだ。

  1. HHKB から、仕事用のパソコンのペアリング情報を削除
  2. 仕事用のパソコンから、デバイスを削除
  3. HHKB から、仕事用のパソコンを数字キー 1 にペアリング

この状態で、私用のパソコンにしれっと数字キー 1 で接続できれば目論見通りだったが・・世の中そううまくはいかないものだ。 私用のパソコンから接続できず、仕方なく私用のパソコンから HHKB のデバイスを削除し、再度数字キー 1 にペアリングすることでことなきを得た。

Bluetooth の機器登録は HHKB 側で保持しているようだ。 当たり前といえば当たり前か・・。

IntelliJ Platform 2020年ロードマップ | JetBrains ブログ

ついに JetBrains 系 IDE にも共同編集機能がきそう。 ペアプロ、モブプロが捗りそう。


  1. せいぜい 1 日に 2 回程度のことではあるが、プログラマは怠惰なのだ

DHHのRails 5: The Tourをやってみた

Rails5をいじるにあたって何かよいコンテンツはないかと思っていたら、タイミングよくRailsの作者であるDHHがYoutubeに動画をupしていたのでやってみた。

以下、気付いた点など

rake -> railsに変わってる

rake db:migrate -> rails db:migrateなど railsの方に統一されて、どっちだったっけ?っていうのがなくなって地味に良い(rakeでも動く)

ただ、rakeの方だとspringが効いて速いが、railsの方だとspringが聞かなくて若干遅いのはそういうものなんだろうか。 (rails db:migrateだと効かないが、rails consoleだと効いた。)

typo時にサジェストしてくれる

これはRubyの方だが、did_you_meanのgemが標準添付されたことで、NameErrorやNoMethodErrorが発生した際にこれが正解なんじゃない?という候補を表示してくれるようになった。これまた地味に良い。

Action Cable

WebSocketがお手軽に組み込めるという代物。どうやら標準のWebサーバがWebrick->Pumaになったのはこいつが関係している模様
generatorが提供されているので、雛形は簡単に生成できる(app以下にchannelsディレクトリが出来、channel用のファイルができる)
確かに簡単に双方向通信を実現できたが、どうやってスケーラビリティを確保するのかが疑問。

雑感

generatorでapp以下にカジュアルにディレクトリが掘られていくのが新鮮だった。

参考文献