日記」カテゴリーアーカイブ

技術書典9に「浮動小数点数小話」を出します

昨日からオンラインで「技術書典9」が始まっています。昨今のアレで今回はオンラインです。だめぽラボでは1年ぶりに技術書典に出展しています。

今回は既刊「Haskellで戦う競技プログラミング」の改訂第2版を出したほか、新刊「浮動小数点数小話」を出します。

続きを読む

自作キーボードキット(Cassette42)を組み立ててみた

ダイヤルのついた小型キーボード(マクロパッド)があったらある種のアプリケーションの操作に便利そうだな〜〜と日頃から思っていた(日頃からそういうアプリケーションを使っているというわけではない)。

遊舎工房で物色すると、ロータリーエンコーダーの載ったマクロパッド(のキット)はいくつかあった。

その中から、Casette42というやつを選んで買ってみた。ロータリーエンコーダーが2個あるのでお得感がある。

続きを読む

Raspberry Pi 4を買った

最近、Raspberry Pi 3を自作HaskellライブラリーのAArch64での動作確認用に使っていた。だが何かとスペックが物足りないので、Raspberry Pi 4の最近新たに出たメモリ8GBモデルに環境を移行することにした。

色々あった結果、ラズパイ本体だけではなくストレージやOS(ディストリ)も変わった:

旧環境

  • Raspberry Pi 3 Model B (メモリ1GB)
  • /: microSD 16GB
  • OS: Ubuntu Server 18.04 LTS 64bit

新環境

  • Raspberry Pi 4 Model B (メモリ8GB)
  • /: USB接続SSD 250GB
  • OS: Ubuntu Server 20.04 LTS 64bit
続きを読む

リモート参列

先日、地元の親族が亡くなった。

この情勢下なので、人の移動は最低限とせざるを得ない。通夜と葬儀は、県内にいる親族のみで執り行うこととなった。たとえ家族であっても、県外にいる者は呼ばない。

筆者は県外にいる側なので、当然現地には行けない。しかし、世話になった故人の葬儀に立ち会えないのはもどかしい。県外にいる他の親族もそうだろう。

そこで考えたのが「リモート参列」だ。と言っても、SNSアプリのビデオ通話機能で、現地にいる人のスマホを使って中継してもらうだけなのだが。ロボットアームで焼香するとかそういう近未来的な話ではない。

なお筆者は発案しただけで、実際の作業は現地にいる弟がやってくれた(感謝!)。

スマホでのビデオ通話だと通信量が心配だが、こういう目的ならば多少料金をかけても納得できるだろう(まあ弟は大手キャリアの25歳以下の50GB無償化の対象だったらしいのでそういう問題はなかったようだ)。欲を言えば、式場に無料Wi-Fiが飛んでいてほしいところだ。むしろ式場に中継用のカメラやスタッフが用意されていてほしい。

映像が一時途切れるなどの軽微な問題はあった(音声は止まっていなかった。おそらくスマホかアプリの仕様の問題だろう)が、中継は無事に行われた。グループ通話機能を使い、筆者の他に数名リモート参列できた。

「リモート参列」は、この非常事態下で故人にお別れを告げる一つの方法だろう。葬儀の様子を知るだけなら録画でも良いが、こういう行事の類はリアルタイム性が重要な気がするので、手間をかけてでもリアルタイム中継する価値はあると思う(ちなみに、弟は中継の他に録画もやってくれていた)。

まあ、筆者の中で故人の死が実感を持つのはもう少し先かもしれない。そもそも、いつになれば堂々と帰省して墓参りができるようになるのか、現段階ではまだわからない。それでも、画面越しにではあるが葬儀を見守ることができたのは良かったと思う。

修士を取るのに5年かかった話

この3月に東京大学大学院数理科学研究科の修士号を取得しました。大学院に入学したのは2015年4月なので、5年かかりました。

おことわり

私の大学院生活については、ここに書くことが全てではありません。ここには書かない良い話、悪い話など色々あります。リアルで私を知らない人が、この記事を鵜呑みにして「大変だったね」あるいは「甘ったれるな」という風な感想を持つことは推奨しません。

続きを読む

MacBook Pro (Late 2013) のSSD換装

現在メインで使っているMacBook Pro (Late 2013)のSSDを換装した。(実際に作業したのは2月上旬)

このMacBook Proについて

私がメインで使っているマシンは、6年前に買ったMacBook Pro (Late 2013) である。

Apple公式オンラインストアでMacを買う際には、スペックをある程度カスタマイズができる。メモリに関しては標準より多い16GBを選択した(これを買う前に使っていたMacBookはメモリを最大6GBしか積めなくて辛かった)。

一方、ストレージに関してはカスタマイズせずに256GBのモデルにした。

前に使っていたMacBookはHDDを換装して1TBにしていたのでそれと比べると256GBは狭いが、SSDの容量を増やすと値段が跳ね上がる。写真などの大容量のデータは面倒でも外付けHDDに入れれば良いということにして、多少我慢してでもお金を節約することにした。

また、メモリは換装できないが内蔵SSDは交換できる、みたいな情報をどこかで見た(伏線)ので、購入時のカスタマイズではSSDよりもメモリの増設を優先した。

それから6年。MacBookも世代交代が進み、このLate 2013モデルも古さを感じるようになった。具体的には

  • USB Type-C/Thunderbolt 3に対応していない
  • グラフィック性能が低い(4Kディスプレイに60Hzで出力できない)
  • macOS CatalinaのSidercarの対象外になった
  • 最新のMacBook ProにはTouch IDがあって羨ましい
  • 動画編集をするには圧倒的にスペックが足りない

などだ。

そしてそれ以上に困るのが、SSDの容量が少ないことだ。ちょっと重たいアプリケーション(具体的にはWebブラウザ)を使っているとDisk Fullが頻発し、その度に再起動したりアプリケーションを終了させてメモリを空ける必要がある。内蔵ストレージが256GBは人権がなかった。

SSDの空きがないと、メモリ使用量が増大した時に「「「詰む」」」

内蔵SSDを空けるための涙ぐましい努力の一部は過去の記事にも書いた:

まあすでに6年も使ったのだからそろそろ買い換えても良さそうだが、今はタイミングが良くない。次のモデルチェンジで「物理escキーを持つMacBook Pro」が誕生するかもしれない。なので今すぐ買い換えたくはない。でもSSDが狭いのは辛い。そうだ、SSDを換装しよう!

SSDの換装の準備

このモデルのSSD換装については昔調べたことがあるが、秋葉館で売られているサムスン製の換装用SSDはやたら高かった(5万円以上した)。しかし、改めて調べてみると割安な(2〜3万円で買える)換装用SSDが出ている。これは換装してみても良いのではないか?

ググったりしてもう少し詳しく調べてみると、この世代のMacBook Proの内蔵SSDは端子の形状が特殊で、市販されているm2 SSDをそのまま取り付けることができない。しかしアダプターを介せば市販のm2 NVMe SSDを取り付けることができるらしい。

秋葉館で「秋葉館オリジナル」として売られているのはm2 NVMe SSDとアダプターのセットのようだ(アダプター自体はAmazonとかでも買える)。

内蔵SSDの形状が特殊ということは取り外したSSDを外付け用ケースに入れて使うことができないということでもある(単なるストレージとして使う必要性は少ないだろうが、万が一の場合に元の内蔵SSDからブートしたり内容を参照したりできると安心だ)。まあサムスン製のSSDなら対応外付けケースが↓で売られているようだが、個体によってSSDのメーカーが違うのでそういう場合は使えない。

TranscendのJetDriveというのだったらケースとセットでSSDが売られているようなので、どうしても取り外したSSDを外付けで使いたい、というのであればそれが最善手だろう。

今回は取り外したSSDを無理に外付けで使う必要はないと思ったので、「秋葉館オリジナル」のセットを買った。

macOSのバージョンにも注意する必要がある。私のMBPに入っているのはmacOS 10.14 Mojaveだが、まっさらなSSDを取り付けた後だと製造時のOSが古すぎて新しいSSDを認識しないんだったか、インターネットから最新のmacOSを取ってきて10.15 Catalinaが入ってしまうんだったか、なんだかそんな話だった。なので、USBメモリ等で10.14のブートメディアを作っておくと良いらしい。

ただ、そもそもSSDの残量が少ないので、OSのアップグレードをしたりApp StoreからMojaveを改めてダウンロードしたりすることができない。そこで、別の方法を取ることにした。

これから設置するSSDの端子はm2 NVMeなのでその辺で売られている外付けケースを利用できる。そして、古いSSDのままMBPをブートした状態で、外付けケースに入れた新しいSSDにデータをコピーする。コピーが終わったらいよいよSSDを交換し、MBPを起動する(実際に起動する前に外付けの状態から起動できるか確認した方がいいかもしれない)。

というわけで、秋葉館のセットとは別にNVMe SSD用のUSB外付けケースを買った。5000円未満で買えた。(m2 SSD用のケースはNVMe専用のやつとSATA専用のやつがあるので注意しよう。安いやつはSATA用だったりする)

あとはもちろん忘れてはいけないのがドライバーだ。このMacBookの裏蓋を開けるには普通のプラスドライバーやマイナスドライバーではダメで、星型の特殊なドライバーを使う必要がある。また、内蔵SSDのネジは六芒星みたいな形の溝が6つあるタイプ(ヘクスローブ)らしい。というわけで、ドライバーも秋葉館で買った(物自体はAmazonとかでも買えるはず)。

秋葉館で買った、SSD換装セット(m2 NVMe SSD + アダプター)とドライバー2本
その辺のアキヨドで買った、NVMe SSD用のケース(5000円弱)

換装

手順は

  1. 買ったSSDを外付けケースに入れる
  2. データを移行する
  3. 外付けケースからSSDを出し、MacBook Proの内蔵SSDと交換する

という流れになる。

まずはSSDを外付けケースに入れる(手順1)。何も迷うことはない。「やるだけ」だ。(強いて言えば、この段階でSSDに付属した放熱シートを貼っても良かったかもしれない)

新しいSSDを外付けケースの基板に取り付ける

手順2のデータの移行に関しては、ディスクユーティリティでの「復元」がうまくいかなかった(最近のMacでは「復元」はサポートされていないらしい?)ので、Time Machineで行った。SSDの読み書き速度は速くても、Time Machineのバックアップ先はHDDなのでその速度に縛られる。ワクテカしながら正座待機しよう。

手順3のMacBook開腹に関しては、ググったら色々出てくる。筆者は

を参考にした(MacBook開腹以外の、データ移行のやり方などは違う)。

まずは10箇所ぐらいあるネジを回して、裏蓋を開ける。ネジを緩めてもすぐには外れないので、「テレホンカード」あるいはそれに類するものを使うと良い。

MacBookの中は、ファンの周辺に埃が溜まっている可能性があるので、ついでに掃除すると良いだろう。ただし息を吹きかけるのはやめたほうが良いらしい。

SSDを換装する前に、バッテリーのコネクタを外しておこう。筆者はコネクタの部分に紙を挟んで接触しないようにしておいた。

MacBook Proのバッテリーのコネクタと、挿さっている旧SSDと、新SSD(および外付けケースの基板)

あとはまあSSDを交換すれば良い。詳しくは写真を見てくれ。

取り外した旧SSD、新SSD&アダプターと、外付けSSDケースの基板。旧SSDと新SSDの端子の形が違うのがわかる
新SSDにアダプターと放熱シートを取り付けた様子。旧SSDと寸法がほぼ同じになる

新しいSSDをMacに取り付ける際には、かなり奥まで挿し込まないとネジで固定できない。頑張ろう。

SSDの換装完了。あとは裏蓋を閉じるだけ

SSDの換装を終えて裏蓋を閉じれば、Macが起動できるようになっている(データの移行はすでに済んでいるので)。お疲れ様でした。

SSDを換装すると「新しいマシン」扱いになるようで、おなじみの「Macを設定」みたいなやつが出てきた。Dropboxも新しいマシン扱いになるので、無料プランで3台以上で使っている人は注意しよう。

換装を終えて(感想)

換装後はトラブルもなく起動でき、SSDの空き容量も増えていた。あっけない気もするが、トラブルがないことに越したことはない。

SSDの容量の心配をしなくても良いのはすごい。人権を感じる。でかいGitリポジトリをチェックアウトしたり、Unity等のでかい開発ツールをインストールできる。仮想マシン用の仮想HDDも気兼ねなく作れる。~/.stack/ の掃除とか考えなくて良い。

結論:大容量SSDは正義。