さくらインターネット

から数日前に,お試し期間が終わるから VPS 代をクレジット決済するぞというメールが来ていた。 でも,決済自体は申し込んだ日に行われていたので怖くなった僕はさくらインターネットにメールした。 そうすると,決済は済んでいるので今回はメールで来たみたいな引き落としはなくて,次回は来年の 12 月 ですということで安心した。さくらインターネットってほら,なんか対応が雑みたいなので有名なので 怖かったんですよね。でもメールしたらその日のうちに返信来てた。 そういや,さくらインターネットがいつメンテナンスするって言い出すかっていうのがいつも怖くて, それはなんでかというとメンテナンスで壊されて自分で OS を再インストールしろと言われたという おそろしい話を Web でよく見るからです。OS インストールするの割と面倒くさかった,というか かなり苦労してインストールしたので,もう一度インストールしろって言われるとちょっと辛すぎるな,と。

Minecraft のセーブデータから地図を生成するやつを作った

VoxelMap というクライアント Mod を使っていて,この Mod は地図を PNG に書き出したり できるのだけれど,このところ書き出すところでクラッシュしていたので,セーブデータから 地図を生成するやつを自分で作ることにした。これを実現するためには Minecraft のセーブデータ をパーズする必要があるので,GitHub で適当に検索していたら良さげなのを発見。 matcool/anvil-parser 実際良いのかは分からないけど,なんかそこそこ動いてそうで,且つ最終コミットの日付が最近だったので これを使うことにしてみた。で,example っていうディレクトリがあって,一番上の非空気なブロック を画像に書き出すというものがあったので,それを参考にしながら作った。 作ってから分かったけどめちゃくちゃ遅い。生成にかかる時間はリージョンの中で生成されているチャンクの 数に依存するところはあるんだけど,だいたい 1 リージョン分の画像を生成するのに手元のラップトップだと 7 分くらいかかる。Python のオーバーヘッドだろうか。(知らんけど)

Minecraft のマップを表示するサイト作ってみた

なんかここに 画像は VoxelMap という MOD が生成したやつで,JS は数ヶ月前に作った「洪水シミュレータ」という訳わからん やつを改造しただけなので適当。あとはいつもの GitHub に push したら自動で更新されるやつを 設定した。これがないと更新する気にならないので。

Emacs 内でターミナルを使うなど

ターミナル内で Emacs じゃないです。Emacs 内でターミナルです。いつも軽い用途であれば M-x shell とかを使って, ちゃんと使いたいときは GNOME のワークスペースを増やしたりしてターミナルを使っているんですが, M-x shell はターミナルとしてはかなり機能が貧弱だと思っていて,ワークスペースを切り替えるのはターミナルを 見ながら書けなかったり Emacs のヤンクみたいなことができなかったり残念なので,Emacs 内でもっと 便利に shell にアクセスできないかなと。で,なんか M-x の補完を眺めていたら, term ってやつを 見つけて,適当に試してみたら,色もちゃんとついたりして意外と良さそうだと。 ちゃんと使うとなるとウィンドウを分割して使ったりできないと不便なので,やってみようと思ったら, そのへんのキーもターミナルに持っていかれるらしく,なんか残念だなと思いました。 あとヤンクとかもできない。なんじゃこりゃ。存在意義が。

Minecraft

以前は Java 版を買うことで Windows 10 版もくれていた気がするけど,近頃はくれなくなっているらしく, まあケチになったなと思ったのだけど,Windows 10 版をくれていた頃は Windows 10 版が出たばかりだったので なんとかして認知度を高めたかったのかなと思ったりした。で,その頃は Windows 10 版は 1000 円くらいで入手できて Java 版の廉価版みたいな雰囲気を醸し出していたのだけど,雑に調べた感じだと無駄なものをいろいろつけてきて 3000円強の価格で売っているらしい。なんか意味が分からない。でもまあ確かに今のシステムだと Java 版よりも Windows 10 版の方が買う気になるのかなという感じがしていて,なぜかというと Android や iOS とマルチプレイができるからだ。それに対して Java 版だと Java 版同士でしかマルチプレイできない。 あと,以前は Java 版以外は Java 版のサブセットみたいなところがあったが,最近はその雰囲気はかなり 薄れている気がする。あと Android 版も僕が買った頃は 700 円くらいだった気がするけど今は 1000 円くらい取るっぽい。

ブログをまた動かした

なんか,前は Emacs Lisp で動く CMS でブログを動かしていたのだけど,なにしろ Emacs Lisp で拡張していくのはあまりにも苦行なので VPS を移行するのと同時に書き直すことにした。 VPS を移行したといっても今も昔もさくらの VPS なので,その部分は変わってないのだけど, 前は Minecraft のサーバーを動かす必要があってそこそこハイスペックなものを借りていて毎月の出費が痛かったので, それを小さいものに移行したという話。さくらインターネットはスケールアップだけじゃなくて ダウンする方も実装してくれていいのではと思う。(そういや最近さくらインターネット炎上してたなあ。。。) で,CMS を書き直した話だけど,変な言語で書きたいけどあまり辛い思いはしたくないな, ということで Bash で動くやつを書いてみた。といってもなんか結局割と苦労したが。 辛い思いをしたくないのであれば Wordpress などといった既存の CMS を使ったらいいじゃないかという話 なんだけど,ウェブインターフェースで記事を書かないといけないところとか RDB で管理されるところとか が後で動かしたくなったときに辛そうな気がして,なんとなく気が進まず,自前で用意している。 ブログサービスなんかを使うという手もあるけどその場合,前者の理由に加えて,他人の場所を使っているということで S/N 比を気にしてしまうところがあって,やっぱり自分で作るという結論になってしまった。 まあ Emacs で動かしていたころも S/N 比どうでもいいにも関わらずあまり書いてなかったわけではあるが。

gsettings で変更したい設定メモ

ウィンドウのボタンの配列を変更 Unity の頃の Ubuntu に慣れすぎて Windows なレイアウトに慣れないので, mac 風のレイアウトに変更. ※ 決して Windows が嫌いだからとかそういう理由ではない. $ gsettings set org.gnome.desktop.wm.preferences button-layout 'close,minimize,maximize:appmenu' CapsLock を潰す 鬱陶しいので. あとついでに Caps の位置に Ctrl があるのに慣れといた方がいいかな, と. $ gsettings set org.gnome.desktop.input-sources xkb-options "['ctrl:nocaps']" gsettings ではないけど,linux console で CapsLock を Ctrl として使うには, /etc/default/keyboard に以下を追加する. XKBOPTIONS="ctrl:nocaps"

Android の Factory Image を Linux でマウントする

Google からダウンロードできる Nexus用 (もしくは Pixel用) のFactory Image は Linux でそのままマウントすることはできません. $ sudo mount system.img system mount: /home/kofu/Downloads/razorg-JLS36C/tmp: wrong fs type, bad option, bad superblock on /dev/loop6, missing codepage or helper program, or other error. これをマウントするためには, simg2img というコマンドを利用します. APT で入ります. $ sudo apt install simg2img $ simg2img system.img out.img $ sudo mount out.img system simg ってのは何かというと, img の空の領域を圧縮してサイズを小さくしたものらしい (simg2img の simg とは何か? (make_ext4fs コマンドなど)).

C++標準ライブラリのマニュアルページをインストール

Ubuntu (をはじめ多くの GNU/Linux ディストリビューション) では C 言語のマニュアルページは最初から標準で入っていますが、 C++ のマニュアルページは入っていません (C++ にはマニュアルページを見る文化がないのだろうか…)。 という訳で、自分でインストールする必要があります。 $ sudo apt install libstdc++-8-doc で、見るときは、 $ man std::vector みたいな感じで std:: までつけないといけないみたいです。

Surface GoにUbuntuをインストール

まずはじめに、Surface Go に Ubuntu をインストールするモチベーションは何かというと、 Surface Go を買ったときにとりあえず (とりあえずかどうかは議論が分かれるところですが) 入っている OS は当然ながら Windows 10 なわけですが、ずっと GNU/Linux の何らかのディストリビューションを使ってきた 僕としては Windows がどうしても使いにくかったということです。Surface Go は大きさとしては なかなかコンパクトで持ち運びしやすいのでこのサイズで OS が Windows じゃなかったら (婉曲?) 最高だなと思ったってのもあります。 まあそんなわけで (まとまらなかった) インストールの手順を書いこうと思います。 インストーラの USB をつくる ここが一番大変だったかもしれません。 自分の場合、USB の Type A から Type C に変換するアダプタを持っているので、それを使ってインストール用の iso を焼いた USB をつないでいたんですが、どうにもこうにも起動しない。最終的には起動させられたんですが、 いろいろ試しすぎてどれが要因なのか分からないです。 何のおかげでうまくいったのかを調べようと思わなくもなかったんですが、それまでの試行錯誤で疲労困憊していて、 そのモチベーションがなかったので。 という訳で、とにかく試したことを書きます。