15 min/d

ぼうずやのにっき

Factorio 日記

今週の目標はあと↓だけど、何もしていない。

  • blog.bouzuya.net 4.5 をつくる
  • QMK をすこしでも読む

代わりに Factorio で遊んでいる。

蓄電池の製造を整えた。ただ油田を一箇所しか確保していないので、集中的に製造するとプロパンガスがなくなってしまいそうで困る。

どんどん場所を広げている。うまくできているのかは分からないけど、楽しいなあ。

Let's Split の記号レイヤーの配置を変えた / Factorio 日記

2017-09-10 にしたキーボードの設定変更のことを書く。

ぼくの Let’s Split 向け設定の v10 をつくった。

主な変更点は↓のとおりだ。

  • オートフォーマット時の読みやすさのためにキーコードの定数の長さを揃えた
  • 記号用レイヤーの配置を文字コード順に近づけた

前者はどうでもいいとして、重要なのは後者だ。ぼくはいままで記号の配置に不満を持っていた。規則的でなく分かりづらい印象を持っていた。今度の配列はいままでと比較すると分かりやすい。

 ,-----------------------------------------..-----------------------------------------.
 | 1    | 2    | 3    | 4    | 5    |RESET ||      | 6    | 7    | 8    | 9    | 0    |
 |------+------+------+------+------+------||------+------+------+------+------+------|
 | :    | ;    | ,    | -    | .    |      ||      | Left | Down | Up   |Right |      |
 |------+------+------+------+------|------||------+------+------+------+------+------|
 | /    | @    | [    | \    | ]    |      ||      | ^    | _    |      |      |      |
 |------+------+------+------+------+------||------+------+------+------+------+------|
 |      |      |      |      |      |      ||      |      |      |      |      |      |
 `-----------------------------------------'`-----------------------------------------'

簡単に言うと、ほぼ文字コード順だ。左から右に進み、折り返して、上から下へと並んでいる。「ほぼ」と書いたのは例外も多いからだ。 JIS キーボードと同様のロジカルペアリング(入力文字の下位 4bit がシフト前後で一致)を採用しているのもあって、文字コード感が強い。

順に見ていく。

いきなり例外だが、数字キーは伝統的な並びを踏襲している。文字コード順に厳密に従うと 0 開始だが、数字がひとつずつズレているのには慣れられない。通常のキーボードを触る機会を 0 にはできないので、混乱を小さくするため、伝統的な並びに従った。

また例外だが、カーソルキーおよび特殊キーレイヤーへの切り替えを HJKL; の位置で確保した。利便性の都合だ。

残りのスペースに、左から右、上から下で詰め込んでいる。並びとしては、各キーのペアのうち小さい側の文字コード順のつもりだ。機械的に並べたわりに良い。たとえば <, [, { が縦に並ぶ (( は並ばないのだけど……) 。左手人差し指の押しやすい位置に - が来る。

^, ~, _ が離れてしまっているのはやや気になる……とは言え、キー数からしてどうしようもない。

しばらくはこの配列で使って、慣れていこうと思っている。


Factorio 日記。

原油精製の施設をつくった。地形の都合で近くに油田が一箇所しかない。遠くに行かないと……。量が必要になったら電車でも通してみようかな。今回はドラム缶に詰めている。搬送ベルトで運べるのは便利だ。取り出しは面倒そうだけど……。

軍事サイエンスパックをつくれるようにした。ただ不安定だ。鉄板の生産速度が足りていない。資源の枯渇が怖くて大量生産できないで居る。ロケット弾の研究まで終わっている。こいつで巣が出てきたら破壊するんだ……。

bouzuya/blog.bouzuya.net 4.4 をつくった / Factorio フリープレイ開始

2017-09-10 につくった blog.bouzuya.net 4.4.0 のことを書く。

blog.bouzuya.net 4.4.0 ではスマホ向けの JavaScript を追加した。

4.3 までは HTML と CSS だけだったが、 4.4 からは JavaScript で動きを増やしていくつもりだ。……つもりだけど、 4.4 では動きがほとんど変わらない。大きな違いが出ないようになっている。

クライアントサイドでのレンダリングができるようになった。 HTML 全体を取得して再描画されていたところが、 JSON で一部を取得して必要分だけ再描画されるようになった。結果として速度が改善されている。切替時の一瞬ではあるが、体感で分かる差がある。

次に、都度の再読込がなくなったことによる変化だ。 CSS transition が効くようになった。具体的には一覧から詳細へと移動する際に、左右に記事が出入りするようになっている。左端の隙間の意味や、一覧・詳細の位置関係をイメージしやすくなっているはずだ。

横(右)から記事の詳細が入ってくる。 3.x では縦(下)からだったが、 4.x では横(右)からになった。上下を「前後の記事への移動」、左右を「一覧・詳細の移動」に統一するためだ。

まず、上下に両方を兼ねさせるとその意味が曖昧になるので、上下・左右で役割を分ける。次に、左右を「前後の記事への移動」にしてしまうと、一覧を横に並べないといけなくなる。横書きの一覧を横に並べないといけなくなる。これでは一覧性が落ちてしまう。一覧を縦に並べる。

ここまで説明すれば、上下が「前後の記事への移動」、左右が「一覧・詳細の移動」が自然だと分かる。全て上下で曖昧にならないように動きをつけられるが、 CSS transition で簡単に、とはいかなさそうなので妥協している。

さて、次は 4.5 。デスクトップ向けの JavaScript だ。細かいところを要求すると大変だし、スマホで見ることが主だと思っているので……そこまでこだわらずに済ませるつもりだ。


Factorio のフリープレイをはじめた。

キャンペーンの輸送ベルトの狂気を、細い道に 6 つのアイテムを通すところまで遊んだのだけど、「これ Factorio でなくてもいいな」と感じた。フリープレイに移行。そこからは夢中で遊んで、ソーラーパネルを大量に設置するところまで進めた。

Factorio キャンペーン新たなる希望をクリアした

Factorio のキャンペーンである新たなる希望をクリアした。

level-04 を終えた。 level-03 までは 2017-09-02 に書いた。

level-04 は小型飛行機の製造が目標だ。原油関連のものが登場した。

敵の攻撃の激しさ。

イージーでは難易度が低いと感じた。攻撃の激しさで言えば、 level-02 や level-03 のほうが厳しかった。適当に壁とガンタレットを置けば突破はまず安全という感じ。ある程度は巣を潰しての開拓もできた。 level-03 の経験が生きている。

流体の扱い。

原油関連の製造は流体の扱いが難しい。ぼくの感覚ではここまで流体と言えば水だけで、用途は発電に限定されていた。原油が出てくると流体の扱いは必須だ。

流体はパイプを引き回さないといけない。地下を通さないと通路に困るし、隣接させれば繋がってしまう。扱いづらい……。個体と違ってその場に放置できないので貯蔵タンクを用意しないといけない。ドラム缶に詰めればうまく扱えたかもしれないが、今回は試さなかった。

研究。

結局、赤・緑のサイエンスパックしか大量生産や研究をしなかった。たぶん、その先が必須になっていれば、もうすこし難易度が上がるように感じる。飛行機に必要な材料だけで言えば、ほんのすこしだけ設備を追加すれば十分だった。

落とし穴。

原油精製所は精製される流体をすべて処理しないと精製が進まない。炎が上がっていないのでおかしいと思って見ていたら、どうも、すべて処理しないと止まってしまうようだった。例の面倒なパイプが三本も一気に増える。慣れの問題か……。

組立機の入力に記された液体は一致させないと動かない。電池をつくる過程だったかな。硫黄の加工などで二種類の流体。

エコだと思ってレーザータレットを使っていたが、電力消費が厳しかった。補うためにソーラーパネルや蓄電設備を増やしたがダメだった。そういえば level-02 でも停電を引き起こしていた。相当な余裕がない限りは弾薬を大量生産するようにして、補充していくのが良さそうだ。

2017-W36 ふりかえり

2017-W36 をふりかえる。

2017-09 の目標

  • blog.bouzuya.net 4.x に区切りをつける
  • 本を読む

2017-W33 の目標 とその記事

目標。

  • [ ] Factorio 2-4 のことを書く
  • [x] blog.bouzuya.net 4.4 をつくる

記事。

ErgoDox EZ と Let’s Split のキー配列を触っていたら一週間が終わってしまった。

キー数の削減・レイヤー数の削減・日本語キーボード化・記号の配置。大きな変化だ。記号の配置変更についてはまだ書いていない。しばらくはこの形で使っていけると思う。

blog.bouzuya.net 4.4 は日曜日で対応した。スマホで見る分にはよくなってきた。また書く。

つくったもの

2017-09-04/2017-09-10

blog.bouzuya.net 4.4 とその実装である mr-jums 0.8 。スマホ向けの JavaScript を追加した。以前よりもページの切り替えが速くなっている。 blog.bouzuya.net 4.5 ではパソコン向けの JavaScript を追加するつもりだ。

その他

買い物。先週 (2017-09-03) に買った冷却パッドはなかなか良い仕事をしている (気がする) 。ただ、高さがあるのでディスプレイの配置を変えなくてはいけなくなった。ノートパソコンの後ろにディスプレイを置き、上下に並べていたが、できなくなった。仕方ないので左右に並べている。

映画。ほとんど書いていないけれど、映画を毎日のように見ている。

最後の『ダークナイト トリロジー』は今週にでも『ダンケルク』を観に行こうかという気持ちの表れだ。

ゲーム。Factorio はほとんどできていない。 2-4 で飛行機に向かって進めている。とりあえず、資源を確保するために地図右側のバイターを一掃したところだ。プラスチック棒まではわりと安定して生産できている。ただ電力にやや不安がある。

運動。首の痛みはひいた。なわとびも再開している。首も含めて、いろいろな箇所を鍛えたほうが良さそうだ。

読書。『数学ガール』は続きを借りて一日一章ずつ読んでいる。『それでも町は廻っている』を読んでいる。良い。

2017-W37 の目標

  • キー配列の記号の配置変更のことを書く
  • Factorio 2-4 のことを書く
  • blog.bouzuya.net 4.4 のことを書く
  • blog.bouzuya.net 4.5 をつくる
  • QMK をすこしでも読む

QMK の TAPPING_TERM や IGNORE_MOD_TAP_INTERRUPT を雰囲気で触る

4 日連続でキーボードの話になるのだけど……。ここまでの話は↓のとおりだ。

  • 2017-09-06 … Mod Tap で ErgoDox EZ のキー数を 36 まで減らした話
  • 2017-09-07 … Mod Tap で Let’s Split のキー数を減らせなかったが、レイヤー削減で 36 まで減らした話
  • 2017-09-08 … ErgoDox EZ を日本語キーボードに変えた話

2017-09-07 の記事を見て、@kmtoki さんから質問がきた。

そして助言。

TAPPING_TERM を試してみたのだけど、思ったように変わらなかった。↓はそのあたりを調べている様子。

結局 IGNORE_MOD_TAP_INTERRUPT を定義すると期待通りらしくなった。 ErgoDox EZ の config.h と Let’s Split のそれの差を見ただけだけど……。これを定義すると同時押しとして判定されにくくなる感じ、体感だと。

何が起きているのか、詳細を分からないままに使っている。コピペプログラマ的なアレだ。 QMK が何をしているのか、きちんと読むようにしたい。

ErgoDox EZ を日本語キーボードとして使えるようにした

2017-09-06 / 2017-09-07 に続いて 3 日連続でキーボードのことを書く。

ErgoDox EZ を日本語 (JIS) キーボードとして使えるようにした。

ErgoDox EZ 公式の Graphical Configurator では US English Layout だけが設定できるようになっている。これは macOS の設定で言うと「 ANSI (米国その他) 」と表示されるもので、いわゆる英語 (US) キーボードだ。記号の配置がタイプライターペアリングになっている。これは、たとえば Shift+2@ になるものだ。

ぼくは macOS の設定で言うと「 JIS (日本語) 」のものに慣れている。いわゆる日本語 (JIS) キーボードだ。記号の配置がロジカルペアリングになっている。これは、たとえば Shift+2" になるものだ。

この差を埋めるため、ぼくはいままで Shift を組み合わせたキーのために別のレイヤーを用意してきた。 QMK Firmware を触るようになったので、この問題を解決できるようになった。別のレイヤーも不要になった。良い。

結論から書くと /quantum/keymap_extras/keymap_jp.h を見ると良い。

keymap_jp.h を読み込むと keymap.hKC_* を元に JP_* が定義される。

これらを使って設定することで日本語キーボードとして認識されたときに違和感なく使うことができる。

ぼくの設定例は gist に ErgoDox EZ bouzuya v21 として置いてある

注意したいのは一部のキーコードは macOS では期待通りに動かないことだ。

  • 「かな」は JP_KANA でなく JP_LANG1
  • 「英数」は JP_EISU でなく JP_LANG2
  • \」は JP_BSLS でなく LALT(JP_YEN) (たぶん標準のキーボードでも起きるやつ……逆に ¥ がほしいなら LALT() は不要 )

これくらいのはず……。ほかは JP_* が期待通りに動くはずだ。

この記事にある keymap_jp.h / keymap_extras / JP_* の内容は特に難しい話じゃないのだけど、あまり見かけない気がする。もしかすると ErgoDox EZ を持っている層や QMK Firmware をさわる層は英語キーボードを使っている層と重なることが多いのかもしれない。