これがないと捗らない、僕がカスタムしてるAtom設定(late 2017)

  1. 1. Config
  2. 2. Keymap
  3. 3. Stylesheet

前回の「これがないと捗らない、僕が使ってるAtomパッケージ(late2017)」を受けて、さらに追加でカスタムしてる部分。
つまり前回紹介したパッケージが入ってないと関係ないのもあったり。
あの大量のパッケージ郡とこの必須設定、あと紹介しなくてもいい超個人的設定を足すことで、今の僕の快適環境ができあがる。

ここまでカスタムすると他のエディタで入力しようとは思わないので、最近いろんなMarkdownエディタが増えたりしてもまったく希望に合わないのが残念。というか世間が本当に求めてるのはMarkdownビューワー兼ファイラで、エディタは外部エディタがいいんじゃないか、と思う(僕が欲しい、とも言う)。しかもLintも効かないんじゃあねぇ……

そんなこんなで大掃除ついでに設定の棚卸し第二弾。

Config

基本はPreferencesから設定すればいいと思う。というかそっちから設定してもconfigに反映される。
必須というのは日本語の約物まわりだけ、これだけで日本語入力がかなり快適に。

config.cson
"*":
# デフォルトで入ってるbracket-matherに日本語の括弧系も追加
"bracket-matcher":
autocompleteCharacters: [
"()"
"[]"
"{}"
"\"\""
"''"
"``"
"“”"
"‘’"
"«»"
"‹›"
"「」"
"『』"
"【】"
"()"
]
# custome-title用設定
core:
titleBar: "custom-inset"
"custom-title":
template: "<%= projectName %><% if (relativeFilePath) { %> - <%= relativeFilePath %><% } else { %> - <%= fileName %><% } %> <% if (gitHead) { %> [<%= gitHead %>]<% } %> - Atom"
# editor内の設定
editor:
# 文字として扱わないものにデフォルト以外の記号と日本語約物を追加
nonWordCharacters: "/\\()\"':,.;<>~!@#$%^&*|+=[]{}`?-…_、。!?「」『』【】()・”’‘~"
"toggle-quotes":
# バッククォートを追加
quoteCharacters: "\"'`"

Keymap

一部抜粋のなのでこれをこのまま使うと他のとコンフリクト起こす可能性があるので、参考程度に。
基本はEmacsのキーバインドをベース。
ただ、修飾キー周りが煩雑として特にルールもないので最近ちょっと困ってる。
なるべく各アプリやOSのデフォルトキーバインドに寄せたいが、
そのあたりのルールも明確に基準があるわけでもなく、
かといって修飾キーベースで操作単位のスコープにしたい、という思いが上手く噛み合わなくて歯痒い。

ここに書いてある以外にも大量に設定してるけどわりと良く忘れてしまうのでなんとかしたい。

keymap.cson
# for all
# ------------------------------------------------------------
'body':
# ctrl-tabによるタブ変更順を設定
'ctrl-tab ^ctrl': 'unset!'
'ctrl-tab': 'pane:show-next-item'
'ctrl-shift-tab ^ctrl': 'unset!'
'ctrl-shift-tab': 'pane:show-previous-item'
# line-jumperによる複数行移動をEmacs的キーバインドにする
'alt-v': 'line-jumper:move-up'
'alt-shift-v': 'line-jumper:select-up'
'ctrl-v': 'line-jumper:move-down'
'ctrl-shift-v': 'line-jumper:select-down'
'ctrl-k': 'editor:delete-line'

# text-editor for editing
# ------------------------------------------------------------
'atom-text-editor':
# Emacsのsubword mode的なキーバインド、キャメルケース等でも単語づつの移動が可能になる
'alt-b': 'editor:move-to-previous-subword-boundary'
'alt-backspace': 'editor:delete-to-beginning-of-subword'
'alt-d': 'editor:delete-to-end-of-subword'
'alt-f': 'editor:move-to-next-subword-boundary'
'alt-shift-b': 'editor:select-to-previous-subword-boundary'
'alt-shift-f': 'editor:select-to-next-subword-boundary'

# text-editor for editing
# ------------------------------------------------------------
# TODO: github-commitview-editor内でmulti-cursorが動かない問題
'atom-text-editor:not([mini])':
# multi-cursor-plusのキーバインド操作をemacベースにして設定
'ctrl-l': 'multi-cursor-plus:mark'
'ctrl-p': 'multi-cursor-plus:move-up'
'ctrl-n': 'multi-cursor-plus:move-down'
'ctrl-b': 'multi-cursor-plus:move-left'
'ctrl-f': 'multi-cursor-plus:move-right'
'ctrl-alt-b': 'multi-cursor-plus:move-to-beginning-of-word'
'ctrl-alt-f': 'multi-cursor-plus:move-to-end-of-word'
'ctrl-a': 'multi-cursor-plus:move-to-first-character-of-line'
'ctrl-e': 'multi-cursor-plus:move-to-end-of-line'
'ctrl-alt-home': 'multi-cursor-plus:move-to-top'
'ctrl-alt-end': 'multi-cursor-plus:move-to-bottom'
'ctrl-shift-p': 'multi-cursor-plus:select-up'
'ctrl-shift-n': 'multi-cursor-plus:select-down'
'ctrl-shift-b': 'multi-cursor-plus:select-left'
'ctrl-shift-f': 'multi-cursor-plus:select-right'
'ctrl-alt-shift-b': 'multi-cursor-plus:select-to-beginning-of-word'
'ctrl-alt-shift-f': 'multi-cursor-plus:select-to-end-of-word'
'ctrl-shift-a': 'multi-cursor-plus:select-to-first-character-of-line'
'ctrl-shift-e': 'multi-cursor-plus:select-to-end-of-line'
'ctrl-alt-shift-home': 'multi-cursor-plus:select-to-top'
'ctrl-alt-shift-end': 'multi-cursor-plus:select-to-bottom'
# Emmet展開(AquaSkk,AutoCompleteの挙動と近づける)
'ctrl-enter': 'emmet:expand-abbreviation'
# snipet展開中のカーソル移動(AquaSkk,AutoCompleteの挙動と近づける)
'tab': 'snippets:next-tab-stop'
'shift-tab': 'snippets:previous-tab-stop'
# atom-notes がeditor内からでも呼べるようにデフォルトを上書き
'cmd-shift-l': 'atom-notes:toggle'

# Stylus記述用
# ------------------------------------------------------------
# Emmet展開
'atom-text-editor[data-grammar~="stylus"]:not([mini])':
'ctrl-enter': 'emmet:expand-abbreviation-with-tab'

# Markdown記述用
# ------------------------------------------------------------
'atom-text-editor[data-grammar="text md"]':
'ctrl-backspace': 'markdown:outdent-list-item'

# Autocompleteによる補完がある場合専用
# ------------------------------------------------------------
'atom-text-editor.autocomplete-active':
# 選択をEmac的上下で可能に
'ctrl-p': 'core:move-up'
'ctrl-n': 'core:move-down'
# Enter:改行, Shift-Enter:補完入力
'enter': 'editor:newline'
'shift-enter': 'autocomplete-plus:confirm'
# Snipet展開中の場合にtabで前後の入力に移動できるように
'tab': 'snippets:next-tab-stop'
'shift-tab': 'snippets:previous-tab-stop'

# Tree view
# ------------------------------------------------------------
'.tree-view':
# toggle-vcs-ignored-filesが気づかずに誤爆するので設定なしにする
'i': 'unset!'

Stylesheet

おそらくテーマにatom-material-uiを使ってないとUI周り、tree-viewとかはほぼやりなおしな気がする。
というか、atom-material-uiのそのへんが気にくわないので直してる感じ。

他は気づきたいものはちゃんと目立たせたりとか。
あまり必要なさそうなものは載せてない。

styles.less
// 全体的なUI設定
// ------------------------------------------------------------
// 全体のフォント設定
atom-workspace {
font-family: 'Noto Sans UI', 'Noto Sans CJK JP', -apple-system,
'BlinkMacSystemFont', 'Hiragino Kaku Gothic ProN', sans-serif;
}
// tree-view, bottom-dock, right-drawerの幅制御
atom-panel-container {
.left {
max-width: 240px;
}
.right {
max-width: 240px;
}
.bottom {
max-height: 240px;
}
}
// Tree-viewの文字サイズ、行間などが納得いかないのでカスタム
.tree-view {
font-size: 0.9rem;
}
.tree-view .full-menu {
padding-left: 4px;
}
.list-tree .list-nested-item > .list-tree > li,
.list-tree .list-nested-item > .list-group > li {
padding-left: 16px;
}
.list-tree.has-collapsable-children .list-nested-item > .list-item::before {
margin-right: 4px;
}
.list-group .icon::before,
.list-tree .icon::before {
margin-right: 8px;
}
.list-tree.has-collapsable-children li.list-item {
margin-left: 14px;
}
.list-tree.has-collapsable-children .list-nested-item > .list-tree > li,
.list-tree.has-collapsable-children .list-nested-item > .list-group > li {
padding-left: 24px;
}
.list-group li:not(.list-nested-item),
.list-tree li:not(.list-nested-item),
.list-group li.list-nested-item > .list-item,
.list-tree li.list-nested-item > .list-item {
line-height: 1.5rem;
}
.list-group .selected::before,
.list-tree .selected::before {
height: 1.5rem;
}

// リガチャのあるフォントに対応(Hasklig)
// ------------------------------------------------------------
atom-text-editor {
text-rendering: optimizeLegibility;
}
atom-text-editor.editor .syntax--string.syntax--quoted,
atom-text-editor.editor .syntax--string.syntax--regexp {
-webkit-font-feature-settings: 'liga' off, 'calt' off;
}
// ファイルやフォルダ、プロジェクト、コマンド検索で使われるミニエディタをカスタム
// -------------------------------------------------------------
atom-text-editor.editor.mini {
font-size: 1.2rem;
color: #fff !important;
padding-top: 0;
line-height: 1.75rem;
}
.tree-view-search-bar .editor.mini {
font-size: 1.2rem;
}
.advanced-open-file .editor.mini {
font-size: 1.2rem;
}
.advanced-open-file li.list-item {
line-height: 1.75rem !important;
font-size: 1rem;
}
// 全角スペースを目立たせる(idegraphic-space)
// ------------------------------------------------------------
atom-text-editor,
atom-text-editor.editor {
.highlight.ideographic-space {
.region:after {
color: #800000;
content: '×';
background-color: #cccccc;
}
}
.line-number.ruby-block-highlight {
background: rgba(215, 0, 0, 0.4);
}

.highlights {
.ruby-block-highlight .region {
background: rgba(215, 0, 0, 0.4);
}
}
}
// 対応する括弧を目立たせる(Bracket-matcher)
// ------------------------------------------------------------
.bracket-matcher .region {
background: rgba(215, 0, 0, 0.4);
border: 1px solid #b71c1c !important;
position: absolute;
}
// コメントが斜体にならないようにする
// ------------------------------------------------------------
atom-text-editor.editor {
.syntax--comment {
font-style: normal;
}
}
// document-outlineがダークテーマでも問題ないように
// ------------------------------------------------------------
.document-outline heading-node.list-nested-item.highlight {
background: rgba(255, 255, 255, 0.061);
}

これがないと捗らない、僕が使ってるAtomパッケージ(late2017)

  1. 1. テーマ
    1. 1.1. UIテーマ
      1. 1.1.1. atom-material-ui
    2. 1.2. シンタックステーマ
      1. 1.2.1. gruvbox-plus-syntax
  2. 2. 共通
    1. 2.1. 選択系、変換、入力補助
      1. 2.1.1. Sublime-Style-Column-Selection
      2. 2.1.2. change-case
      3. 2.1.3. editorconfig
      4. 2.1.4. expand-region
      5. 2.1.5. highlight-column
      6. 2.1.6. highlight-line
      7. 2.1.7. highlight-selected
      8. 2.1.8. line-jumper
      9. 2.1.9. lines
      10. 2.1.10. toggle-quotes
      11. 2.1.11. toggler
      12. 2.1.12. trailing-semicolon
      13. 2.1.13. trailing-spaces
      14. 2.1.14. sequential-number
      15. 2.1.15. show-ideographic-space
      16. 2.1.16. symbols-tree-view
      17. 2.1.17. tabs-to-spaces
      18. 2.1.18. todo-show
      19. 2.1.19. multi-cursor-plus
      20. 2.1.20. pigments
      21. 2.1.21. regex-railroad-diagram
      22. 2.1.22. autocomplete-paths
    2. 2.2. ファイル、タブ、ペイン操作系
      1. 2.2.1. atom-fuzzy-grep
      2. 2.2.2. split-diff
      3. 2.2.3. advanced-open-file
      4. 2.2.4. douglas
      5. 2.2.5. expose
      6. 2.2.6. hey-pane
      7. 2.2.7. tree-view-filter
      8. 2.2.8. tree-view-git-status
      9. 2.2.9. zentabs
      10. 2.2.10. auto-encoding
      11. 2.2.11. convert-to-utf8
    3. 2.3. Linter系
      1. 2.3.1. linter
      2. 2.3.2. linter-ui-default
    4. 2.4. MiniMap系
      1. 2.4.1. minimap
      2. 2.4.2. minimap-autohider
      3. 2.4.3. minimap-find-and-replace
      4. 2.4.4. minimap-highlight-selected
      5. 2.4.5. minimap-pigments
    5. 2.5. HyperClick系
      1. 2.5.1. hyperclick
      2. 2.5.2. hyperlink-hyperclick
    6. 2.6. 汎用フォーマッタ
      1. 2.6.1. aligner
      2. 2.6.2. atom-beautify
    7. 2.7. その他
      1. 2.7.1. sync-settings
      2. 2.7.2. atom-notes
      3. 2.7.3. atomic-chrome
      4. 2.7.4. platformio-ide-terminal
      5. 2.7.5. tablr
      6. 2.7.6. preview
      7. 2.7.7. auto-update-packages
      8. 2.7.8. busy-signal
      9. 2.7.9. custom-title
      10. 2.7.10. file-icons
      11. 2.7.11. file-types
      12. 2.7.12. goto-definition
  3. 3. 各言語とか用途とか別
    1. 3.1. Git
      1. 3.1.1. gist
      2. 3.1.2. git-blame
      3. 3.1.3. git-plus
      4. 3.1.4. merge-conflicts
    2. 3.2. Markdown
      1. 3.2.1. markdown-preview-enhanced
      2. 3.2.2. document-outline
      3. 3.2.3. markdown-table-editor
      4. 3.2.4. markdown-writer
      5. 3.2.5. toggle-markdown-task
      6. 3.2.6. tidy-markdown
      7. 3.2.7. language-markdown
      8. 3.2.8. linter-textlint
    3. 3.3. JSON
      1. 3.3.1. atom-json-color
      2. 3.3.2. pretty-json
      3. 3.3.3. linter-jsonlint
    4. 3.4. Ruby
      1. 3.4.1. language-haml
      2. 3.4.2. language-slim
      3. 3.4.3. language-rspec
      4. 3.4.4. language-rabl
      5. 3.4.5. linter-rubocop
      6. 3.4.6. linter-erb
      7. 3.4.7. linter-haml
      8. 3.4.8. linter-slim
      9. 3.4.9. autocomplete-ruby
      10. 3.4.10. rubocop-auto-correct
      11. 3.4.11. rufo-atom
    5. 3.5. Rails用
      1. 3.5.1. autocomplete-rails-partial
      2. 3.5.2. rails-db-scheme
      3. 3.5.3. rails-open-rspec
      4. 3.5.4. rspec
      5. 3.5.5. ruby-block
      6. 3.5.6. rails-i18n-plus
      7. 3.5.7. rails-snippets
      8. 3.5.8. rails-transporter
    6. 3.6. JavaScript系(node.jsやメタ言語、フレームワーク含む)
      1. 3.6.1. atom-typescript
      2. 3.6.2. language-vue
      3. 3.6.3. linter-eslint
      4. 3.6.4. linter-coffeelint
      5. 3.6.5. prettier-atom
      6. 3.6.6. aligner-javascript
      7. 3.6.7. js-hyperclick
      8. 3.6.8. vue-hyperclick
      9. 3.6.9. vue2-autocomplete
      10. 3.6.10. gulp-snippets
      11. 3.6.11. jquery-snippets
    7. 3.7. HTML系(メタ言語含む)
      1. 3.7.1. language-jade
      2. 3.7.2. language-pug
      3. 3.7.3. linter-htmlhint
      4. 3.7.4. linter-pug
      5. 3.7.5. tag
      6. 3.7.6. emmet
      7. 3.7.7. indent-tooltip
    8. 3.8. CSS系(メタ言語含む)
      1. 3.8.1. Stylus
      2. 3.8.2. linter-stylelint
      3. 3.8.3. linter-scss-lint
      4. 3.8.4. linter-stylint
      5. 3.8.5. autocomplete-css-with-stylus-support
    9. 3.9. PUML
      1. 3.9.1. language-plantuml
      2. 3.9.2. plantuml-viewer
    10. 3.10. その他の言語系
      1. 3.10.1. language-apache
      2. 3.10.2. language-nginx
      3. 3.10.3. language-lisp

Atomのカスタマイズはパッケージだけじゃないんだけど、とりあえずパッケージ入れないことには始まらないってことで、2017年の棚卸し的に列挙しておこうと思う。

僕の場合、Ruby(Rails)とJavaScript,HTML,CSSを書くことが多いのでそのへんに特化してるカスタマイズになってるはず。使用パッケージが結構多くてそれぞれのパッケージ間でキーマップがバッティングしてたり、スタイルの競合がおこってたりするのでstylesheetとkeymapで弄ってたり、configで特別な設定してたりするけど、それはそれで別の記事に書く。

テーマ

UIテーマ

atom-material-ui

いろいろ設定できるし見やすいので。
ちなみに設定だけだと各種パッケージと上手く行かなかったりするので
ゴリゴリにStylesheet弄ってる。そこについては後日書きます。

シンタックステーマ

gruvbox-plus-syntax

ビビッドな発色も少なく丁度いい感じ。
すごい好きなんだけど、ややメジャーではないらしくエディタのテーマとか選べるツールとかにgruvboxテーマがないのが残念。

共通

選択系、変換、入力補助

Sublime-Style-Column-Selection

SublimeText的な矩形選択(見たままの四角の範囲を選択可能)。

change-case

選択した単語のキャメルケース、スネークケースとかを相互に変換。ケバブケースもドット記法なども幅広く対応しててうれしい。

editorconfig

コーディングフォーマット統一のためのeditorconfigをAtomで対応するためのパッケージ。

expand-region

選択範囲を文字、単語、クォートや括弧で囲んだ要素、と順々に大きくできる。

highlight-column

キャレットのある列をハイライト。

highlight-line

キャレットのある行をハイライト。

highlight-selected

選択してるものと同じものをハイライト。

line-jumper

設定した行数文だけキャレットを一気に移動する。僕はEmacsのページ送り的な送り用途として使用している。

lines

選択した複数行をA-Z順にソート

toggle-quotes

シングルクォートとダブルクォートのトグル変換。configで設定すれば例えばバッククォートも対応できたりする。

toggler

Booleanのような二元的要素をトグル変換。専用のconfigを設定すれば、自分で対応を文字列を増やせる。

trailing-semicolon

行末にセミコロンとカンマをつける。キーバインドで設定すると捗る。

trailing-spaces

行末のスペースを目立たせる。

sequential-number

複数行にわたって連番生成連番の文字列を生成。

show-ideographic-space

全角スペースを目立たせる。わかりやすくStylesheetでカスタムした設定すると良い感じ。

symbols-tree-view

メソッド定義などの一覧をドロワーにツリー型で表示。

tabs-to-spaces

インデントのタブorスペースをトグル変換。ファイル保存時にファイル全体に対して自動実行も可能。

todo-show

プロジェクト内に存在するTODOやNOTEなどのコメントを抽出して表示。

multi-cursor-plus

デフォルトより高機能なマルチカーソル。キーバインドがバッティングしやすいので僕はゴリゴリにkeymapを編集してる。

pigments

カラーコードになってる部分をその色で表示。CSSとか書くなら。StylusやSassの変数も対応してるので重宝する。

regex-railroad-diagram

正規表現をビジュアルで表示してくれる。

autocomplete-paths

path入力のAutocompleteアドオン、でもたまに邪魔なときがある気がする。

ファイル、タブ、ペイン操作系

atom-fuzzy-grep

プロジェクト内をag的なfuzzyGrepしてファイル表示。

split-diff

Paneで分割してDiff表示、見やすい。しかも保存してない状態でもDiffとれるので、長大な文字列とか大きめなオブジェクトを一時的に比較する時も重宝する。

advanced-open-file

ディレクトリ毎に絞り込みでファイルを開ける、フルキーボードで階層ごとに掘っていく場合に便利。

douglas

CLI用リポジトリ管理ツールghqのローカル管理下にあるプロジェクトのショートカット、全てのプロジェクトがGit管理されていればプロジェクトマネージャーはこれだけで十分だと思う。

expose

開いてるタブをmacのexpose的に表示、切り替えできるやつ。

hey-pane

複数paneで分割してる時にアクティブなペインを自動的にほぼ最大化する。フォーカスしたペインに自動的に適用したりもできる。

tree-view-filter

tree-viewで表示しているファイルをインクリメンタルに絞り込む。

tree-view-git-status

tree-view上でgit-statusによる色分け表示する。追加ファイルや変更したファイルとかが視覚的にわかりやすいし、未コミットのファイルもみつけやすい。

zentabs

最大タブ数の設定制御。設定数を越えると古いタブから自動的に閉じていれ変わる挙動になる。設定でピン止めしたファイルや、未コミットファイル除外したりもできる。たくさんファイル開きすぎてわかんなくなっちゃうので。

auto-encoding

エンコーディングの自動判別。

convert-to-utf8

マルチバイトのファイルをutf-8に変換。

Linter系

linter

Linter機能。各言語用は後述。ないと死ぬ。
各言語用のLintは後述。

linter-ui-default

Linter表示用。たぶんLinter入れると入ってくるはず。

MiniMap系

minimap

画面端にコード全体をざっと単純化して見わたせるようなやつを表示。他のパッケージで拡張可能。

minimap-autohider

ミニマップをスクロールしてない時以外は自動的に非表示。

minimap-find-and-replace

ミニマップ内で検索文字列を全てハイライト。

minimap-highlight-selected

ミニマップ内で選択した文字を全てハイライト。

minimap-pigments

ミニマップ内でカラーコード部分をカラー表示。

HyperClick系

hyperclick

コード中のいろんな要素がクリッカブルになる、キーバインドにも対応してるので対象の文字列にキャレットがある時にキー操作でも動作できる。**-hyperclick系のアドオンとかで拡張可能。言語特化のアドオンは、後述の言語別のところで。

URLをクリッカブルにしてデフォルトブラウザで開けるようになる。

汎用フォーマッタ

aligner

オブジェクトの定義とか、連続して変数に値を入れるとき、=:をセパレータとして左右のインデントが揃うようにしてくれるフォーマッタ。言語別のものもある。

atom-beautify

ネストした要素のインデントをうまいこと整形してくれるフォーマッタ。JSONとかも良い感じにやってくれたり。けっこういろいろ対応してる。

その他

sync-settings

GitHubGist経由でAtomの設定を複数端末で同期する、アンインストールしたパッケージも同期できるようになって凄く便利になった、ないと死ぬ。

atom-notes

notational-velocityライクなノートシステムをAtomに組み込み、メモ系の集積ができてそれがカスタマイズした強力な補完機能のAtomで編集できるのは強み。ないと死ぬ。

atomic-chrome

同名のchrome-extensionをGoogle Chrome系のブラウザに入れることで、ブラウザで開いてるページのtextareaを同期的にAtomで編集できるようになる。例えばPull RequestなどMarkdown対応のテキストエリアをAtomで編集できるのはかなり便利。ないと死ぬ。

platformio-ide-terminal

Atom内でターミナルを動作させる。

tablr

CSVエディタ。

preview

プリプロセッサ言語から元言語へコンパイル後の表示。

auto-update-packages

パッケージにアップデートがあったら自動でアップデートする。ちょいちょい自分で確認しなくていいので楽。

busy-signal

ステータスバーに状況表示アイコンをプラス。確かLinterと一緒に入ってくるはず。

custom-title

Atomのウインドウに表示されるタイトルのルールを変更できるようになる。上手く好きなようにファイル名の表示とかにカスタマイズすると地味に便利。

file-icons

ツリービューやタブにファイルのアイコンを表示して視認性を上げる。わりとないと死ぬ。現在もアップデートが盛んでちょいちょい対応アイコン増えてるのがうれしい。

file-types

自動で判別されるファイルタイプのルールをカスタマイズを楽にする。

goto-definition

メソッドの定義元にジャンプできるようになる。

各言語とか用途とか別

Git

gist

GitHubのGistを編集したりアップロードしたり、挿入したり。Gist系はいくつかあったけどこれが一番使いやすかった。

git-blame

行ごとにgitで変更した人を表示する。

git-plus

よく使うgit操作をAtomから直でできる、Atomのコマンド補完が効くので便利、基本的なgit操作はこれだけでいける。わりとないと死ぬ。

merge-conflicts

gitでmergeしようとしてコンフリクトした時の編集サポート。コンフリクトの解消はGitKrakenでやってるけど、一応入れてる。

Markdown

markdown-preview-enhanced

デフォルトのMarkdownプレビューより高機能なプレビュー、TOCやプレゼンモードもあったりする。目次機能もあったり、いろいろと便利。

document-outline

右ドロワーに編集中のMarkdownの目次をページ内リンク付きで表示。

markdown-table-editor

Markdownのテーブル記法編集補助、うまいこと縦のカラム表示を整えてくれる。

markdown-writer

Markdownの全般的な入力補助。とりあえず入れてる。

toggle-markdown-task

Markdownのチェックボックス記法のチェック状態のトグル変換。そんなに使わないけどいちいちキャレットを移動するのが面倒なので。

tidy-markdown

Markdownのテーブル記法の整形や番号付きリスト記法の番号振りなおしなど、フォーマッタ。

language-markdown

デフォルトのものより高機能なハイライタ。

linter-textlint

特に日本語に強い自然言語用のLinter、textlintをAtomで使えるように。Markdown以外でも効く。

JSON

atom-json-color

JSONファイルを階層によってカラーリングを変えて視認性を上げる。

pretty-json

JSONファイルの整形フォーマッタ。

linter-jsonlint

JSON用のLinterアドオン。

Ruby

language-haml

haml用の言語ファイル。

language-slim

Slim用の言語ファイル。

language-rspec

Rspec(Rubyのテストフレームワーク)用の言語ファイル。

language-rabl

Rabl(Ruby用のJSONやxmlに特化したテンプレートサポートGem)用の言語ファイル。

linter-rubocop

Rubocop用のLinterアドオン。

linter-erb

erb用のLinterアドオン。

linter-haml

haml用のLinterアドオン。

linter-slim

slim用のLinterアドオン。

autocomplete-ruby

Ruby用のAutocompleteアドオン。

rubocop-auto-correct

Rubocopルールに従って自動修正。

rufo-atom

Ruby用フォーマッタのrufoをAtomから実行、まだsave時に自動でやってくれたりはしないもよう。JSのprettierな感じになってくれるとうれしいな。

Rails用

autocomplete-rails-partial

Railsのパーシャビュー名のための用Autocompleteアドオン。

rails-db-scheme

schema.rbを参照して自動補完や定義元にジャンプ。

rails-open-rspec

現在開いてるファイルに対応したRspecのファイルを開く。

rspec

Atom上でRspecをrun。

ruby-block

do``if``begenendなどの対になるブロック要素をハイライト。

rails-i18n-plus

Railsのi18n用のAutocompleteとHyperClickアドオンのセット。

rails-snippets

Rails用のスニペット集。

rails-transporter

Model,View,Controllerなど対応するファイル同士を素早く開けるようにする。

JavaScript系(node.jsやメタ言語、フレームワーク含む)

atom-typescript

TypeScriptの言語ファイルか補完や便利機能まで、IDE的サポート。

language-vue

Vue.js用の言語ファイル。

linter-eslint

JavaScript用のLintパッケージであるEslintのAtom-lintアドオン、prettierと連携もできる、ないと死ぬ。

linter-coffeelint

CoffeeScript用のLinterアドオン。

prettier-atom

JSのフォーマッタprettierをAtomから実行、save時に自動実行できる、ないと死ぬ。

aligner-javascript

JavaScript用のalignerアドオン。

js-hyperclick

JavaScript用のHyperClickアドオン。

vue-hyperclick

vue.js用HyperClickアドオン。

vue2-autocomplete

Vue.js用Autocompleteアドオン。

gulp-snippets

gulp用のスニペット集。

jquery-snippets

jquery用のスニペット集。

HTML系(メタ言語含む)

個人的にはPug(Jade)しか書きたくないけど、どうしても使わざるを得ないので他も少々。

language-jade

HTMLプリプロセッサJade用の言語ファイル。

language-pug

JadeはPugになりました。

linter-htmlhint

HTML用Linterアドオン。

linter-pug

Pug用Linterアドオン。

tag

HTMLの閉じタグのショートカットと補完。Pugで書けばいらないんだけどね。

emmet

html,css(プリプロセッサ含む)の強力なスニペット集。

indent-tooltip

Jade(pug)やStylus,Sassのインデントベース記法の環境で現在のキャレットの位置がどの要素のネスト中なのかツールチップで表示。

CSS系(メタ言語含む)

個人的にはStylusしか書きたくないけど、どうしても使わざるを得ないので他も少々。

Stylus

Stylus用の言語ファイルとスニペット集。

linter-stylelint

CSS用のLinterアドオン。

linter-scss-lint

SCSS(SASS含む)のLinterアドオン。

linter-stylint

Stylus用のLinterアドオン。

autocomplete-css-with-stylus-support

Stylus用のAutocompleteアドオン。

PUML

UMLをテキストから表現したもの。細かいレイアウトは難しいもののテキストならgit管理もできるし素早くかけるので覚えてよかった。

language-plantuml

PlantUMLの言語ファイル

plantuml-viewer

PlantUML用のUML図ビューワ

その他の言語系

language-apache

language-nginx

language-lisp

もう入籍から2年半もたってしまったけど結婚式をした。そんな時ぐらい惚気てもいいじゃあないか。

  1. 1. 自己紹介
    1. 1.1. 夫(僕)
    2. 1.2.
  2. 2. で、今さらだけど結婚式した
  3. 3. で、結婚式あげての感想
  4. 4. で、結婚してから思うこと
  5. 5. で、本題
    1. 5.1. 虫を怖がらない、それどころか触りたがる
    2. 5.2. 英語を喋れる
    3. 5.3. 僕の友人にも上手くつきあってくれる
    4. 5.4. ゲームにつきあってくれる
    5. 5.5. 創作趣味がある
    6. 5.6. 自然に詳しい
    7. 5.7. 僕のやりたいことを理解してくれる
    8. 5.8. 酒好き
    9. 5.9. 僕の気がつかないことに気がつく
    10. 5.10. 家事もちゃんとやってくれる
  6. 6. おしまいに

という、題だけどせっかくなのでこの記事は妻・夫を愛してるITエンジニア Advent Calendar 2017 (12/19)の記事にもなってたりします。書いてみて思ったけどあんまりエンジニア的な話とは関係なかった。

自己紹介

アドベントカレンダー経由で見る人もおられると思うので書いておこうと思います。

夫(僕)

  • エンジニアとしてのキャリアは長くない
    • 仕事ではサーバーサイド
    • 趣味はフロントエンド
  • いろいろ全く別の業界での仕事をいくつかしてエンジニアになりました
  • 世界をいろいろ旅をしてました
    • ユーラシア大陸を陸路で横断
    • 南米大陸を陸路で一周
  • 多言語話者
    • 日本語(母語)、英語、スペイン語、広東語
  • 元武道家
  • ゲーム全般が好き
    • アナログは中量級の読み合い重視のゲーム
    • デジタルはアクションゲー、元格ゲーマー
  • 料理好き
  • 革細工もたまにやります

  • 自然系の職業
    • 野外泊は余裕です系?
  • 動物大好き
  • 植物大好き
  • 編みものとか好き
  • 英語喋れる

で、今さらだけど結婚式した

出会った時には僕はもう南米に旅に行くことを決めてた。しかも当時は2年予定。それでも宣言どおり付き合って半年ぐらいで旅立った。一人で。で、まあいろいろあって、僕がパラグアイに居た時に妻さん(当時、彼女)の仕事の都合が1ヶ月ぐらい時間ができたので、合流してブラジルで農業したり、熱帯雨林のほうに行ったり、そんなんでプロポーズして。それでもまた一人で旅を続けて。別の理由から帰国を早めたものの、結局1年ぐらい待たせた。

僕の帰国後すぐ二人で住み込みで冬の山で働き、雪が融けて山を降りてすぐ入籍した。入籍もそれだけで、式もなければ指輪もない。別に二人ともそれに興味がなかったからなんだけど、それから約2年半、つい先日結婚式を挙げた。

入籍当初のまあ写真ぐらいは撮っておこうか、なんて話後回しにした挙句だ。どうせ写真撮るぐらいなら式を挙げてしまえ、と式をした。もっと先伸ばしにしたらきっとやらなくなってしまうだろうと思ったからやった。法律的に結婚してたけど神道的に結婚してないからやった。そんな感じ。

で、結婚式あげての感想

よかった。なんか一つのいい節目になった気がした。喉につかえてた骨がとれた気がした。両親と兄弟だけを呼んだ簡素なもので、披露宴もなく食事会で解散というごくごく小さな結婚式だったけど、すごくやって良かった。入籍して2年半、特に仲違いすることもなく来てるけど改めて縁を結びなおした感じ。

結婚式を挙げることになって、場所を見たり日取りを決めたり、あれやこれや決めたり準備したり、今まで知らなかった事が知れたというのと、やる側の体験をしたっていうのが凄くいい経験になった。大変さがわかった。世間はこれに披露宴とか二次会とか、はては新婚旅行やるのかと思うと尊敬する。それが身に染みて理解できただけでも良い経験になった。

で、結婚してから思うこと

前にも書いたけど、結婚契約書は作って良かったと思う。契約を決めることが良いんじゃなくて、契約を決めるにあたっての暗黙の了解とか勝手に思いこんでる部分に関してちゃんと話しあうきっかけになったのが良かった。

それでもまだまだ意見が合わない部分があるなぁ、と日々思う。が、妻さんじゃなかったらもっと合わないと思う。僕は自分で理屈屋で偏屈な部分があって、自分の決めた意見に関しては強い主張がある人間だと思う。意見が合わないといえども冷静に見れば多分妻さん以上に良い人に巡り会えないだろうと思ってる。そう思ったから結婚したんだけども。

で、本題

じゃあウチの妻さんのここが良いってところを、せっかくのこの節目に挙げていこうと思う。

虫を怖がらない、それどころか触りたがる

僕も虫は刺したりして痒くなったり痛いのが続いたりする奴以外は全然大丈夫。旅の最中で蚊やブヨ、百足にダニに南京虫に比べれば刺さない虫なんてどうということはない。妻さんもそんな感じ。むしろ、そこらにいる虫、バッタや蜘蛛なんかは率先して掴まえにいって可愛がるタイプ。

僕は人が虫嫌いになるのは後天的だと思ってて、小さいころは掴まえたりして遊んでたのに大人になるにつれ嫌いになると思ってる。それは人間社会で嫌うのが常識、みたいになっているがゆえの社会的理由だと思ってる。害はないどころか場合によっては益虫も▽いるのに。

それを、見ただけでキャー!飛んだらキャー!なんてドタバタされるとうるさくてかなわん。虫よりうっとおしい。なんかそういう過剰に拒絶反応する人が僕はとても苦手。わりと女性にそういう人が多い傾向にあると思う。だから女性で虫を苦手じゃないってのはかなり得がたい嬉しいポイント。

英語を喋れる

僕が海外をフラフラしてたので海外の友人がけっこう多い。で、その友人達がたまに日本に遊びにきたりする。そこへ妻さんも同席したりする。もし仮に英語ができなかったら話がまったく入れない、もしくは僕が通訳しなきゃいけない。直接コミュニケーションがとれない、ってのは身振りや雰囲気でつたわるし、カタコト英語でも通じることもあるからどうでもいいんだけど、僕と友人の話に入れないって状況だったら大変だと思う。

僕らの場合、相手が外国人の場合はなるべく僕ら夫婦も英語で会話して友人にも僕らがどういう会話してるかわかるようにしてる。そうするとみんなハッピーでしょ。それが簡単にできるので英語ができる妻ってのは、僕が英語に不自由なくてもかなりありがたい。

僕の友人にも上手くつきあってくれる

海外をフラフラしたたり、職をいろいろ変えたり、ネットで遊んでたり、武道もやってたり、地元の友人がいたり、そんなことをしてたら僕はわりと友人が多いほうだと思う。そんな和なかにも妻さんも入ってきてくれるのがありがたい。誰でも初対面はそれなりに構えるしエネルギー使うし大変だと思う。今ではけっこうな数の僕の友人達が妻さんともちゃんと友人になってくれて、すごく楽しい。

ゲームにつきあってくれる

僕はけっこうゲーマーなんだってことをわりと最近気づかされた。妻さんもちょっとゲームはやるとはいえ、僕ほどガチじゃない。それでも一緒にやったりしてくれるので、楽しいひとときを過ごせている。ガチの対戦系はさすがに年季が違うのか、僕のほうが優勢すぎてやらないけど、それでも僕が好きでやってるゲームに興味をもったりしてくれるのはありがたい。

ゲームをやらない人だとゲームをやってる僕が遊んでばっかり、みたいになってしまうので理解がある妻でほんと良かったと思ってる。

創作趣味がある

僕は常々、趣味は創作趣味と消費趣味を1つづつは最低持つべきだと思ってる。ほんとに余力がないとどんなに好きでも創作趣味が難しい時がある。それで消費趣味が必要なんだけど、かといって消費趣味だけだといろいろとキツい。満足感とかコスパとか。

僕もいろんなものを自分で作りたがりなので、例えば僕がパソコンをカタカタしてたり、革細工をやってる横で編み物してたり、という光景をふりかえると幸せな一時だなぁ、って思う。

自然に詳しい

僕が逆に自然に詳しくないからなんだけど、自然に詳しいことによって僕と妻さんでは見てる景色が明確に違う。二人で外を歩いてるとよく草木を見てる。単に草木の名前を知ってるだけじゃなくて、生息に関する情報を知ってるとなると、同じ木を見て得る情報量が全然違う。

素直に尊敬する。ややもすると羨ましいとさえ思う。自然からそれだけの情報がわかるんだったら楽しいだろうなーって思わせてくれる。自分にはあんまり興味なかったことを気づかせてくれて、教えてくれるのはそれだけで尊い。

僕のやりたいことを理解してくれる

僕は忙しかろうが週末にもジムにいったり、勉強会に参加したり。ゆっくりした日でも夢中でコード書いてたり、なんか作ってたり、ゲームに没頭してたり、ずっと本読んでたり。家のこともそこそこにいろんな事に手を出してる気がする。そんなことを続けてても基本的に咎められないのはありがたいなーと思ってる。

僕は、何か自分にとってやりたい事を決めたら他のことをほっぽってもやるタイプ、自分が多少しんどくても決めたことはやる、向上に繋がることはどんどんやる、というタイプなので容認してくれるのはありがたい。

酒好き

妻さんも僕のお酒飲むのが好き。ほぼ毎晩飲んでる。一人だけで飲むのはつまらない。僕の母は下戸で、僕の父親は晩酌派だったけど、父はいつも一人でちょっと寂しそうに飲んでる。だからこそ一緒に飲む相手と一緒に生活してるってだけで幸せなことだなぁと思う。二人で飲みながらゲームとか最高でしょ。

僕の気がつかないことに気がつく

僕はかなりシングルタスクで、いろんなことに気がつかない、気がまわらないことが多い。そして、気にしないことも多いなあと思う。気にしないことが多いのは利点でもあったりするけど、自分だけで生きられない以上、欠点にもなりうる。そういうときに気にしてつっこんでくれたりする存在がいるっていうのはありがたい。

家事もちゃんとやってくれる

僕は自分で家事も料理もやる。というか、当たり前なんだけど。妻さんも僕以上に家のことやってくれる。世間では家事は妻の仕事とされてるケースも多いと聞くけど、僕の中でそれはない。ありえない。家事は女性も男性も不自由なくできる仕事だから僕の中でやって当たり前の仕事。妻にだけ任せる理由がない。だから妻さんがご飯作ってくれるだけでもありがたいと思ってる。一人暮らしだったら全部自分でやるところ分担してできるだけで僕の中ではありがたいんだよなぁ。

おしまいに

と、まあこんな感じで挙げればキリがない。逆に合わないことも挙げようと思ったらそれなりにあるけど、そこは僕が気にならないからいい。今までの外国人と暮らしたりする経験の中で、そもそも言わなくてもわかる、常識を共有してる、と思うこと自体が非常識な世界で暮らしてきた。なので合わないことがあっても、大したことじゃない。さっきも言ったように、それ以上に合うこと、ありがたいと思うことが多すぎて妻さん以上の人が居ないと思ってるから幸せでしかたがない。

ずっと一人の旅人暮らしをしてきたもんで、自分のことは自分でするのが当たり前。なんだって自分でするように、できるようにしてきた。というかせざるをえなかった。むしろ頼ってたまるかこのやろう、と思ってやってきた。今でも一人でも何の不自由なく暮らしていける自負はある。

そんな昔をベースに考えたら今はいろんな事が助かって仕方がない。家事も食事の用意も分担してできるし、違う国の人との暮らしを考えたら合うところが多くて楽すぎて仕方がない。自然に詳しいし、自然的にハードな環境に強いのは逞しくて頼りになって仕方がない。

妻さんが必要かどうか、という問いがあったとしたら、ドライに答えれば不必要と言えるのかもしれない。僕の妻が、というより妻という存在が、なんだけど。その意識は結婚する前から変わってない。だって一人で身の周りのことができない男なんかカッコ悪いでしょう。そんな男で居ることは僕自信が許せない。

じゃあ妻さんと一緒に居る意味はないのか、というとそんなことは全くなく、むしろ結婚する時に「僕もあなたも一人で何の不自由なく生きていけるだけの強さがあると思う。でもあなたと一緒なら一人で居るより絶対楽しく生きていける自信がある。」と言った気持ちは今も変わってない。

ちなみに入籍をする時も、結婚式を挙げた今も「あなたを幸せにします」とは言ったことがないし、言うつもりもない。幸せになる、ならないは自分の気持ちの持ちようなので、相手の幸せは僕のコントロール範囲外だ。「幸せにします」は嘘になるので言わない、絶対。無責任にそんな約束はしない。逆に僕の幸せを担保して欲しいとも思わない。僕の幸せは僕がコントロールすることであって妻さんに任せてはいけないと思ってる。各々が各々の幸せを自分で上手いことやって、そんな二人が一緒だったらもっと幸せ、という話。

そんなこんななんやかんや結婚に対してネガティブな意見があったりするけど、全然そんなこと思ったことない。一緒に居てありがたくて、楽しくて、幸せな日々を過ごしてる。合うところ合わないところも全部ひっくるめて結婚して良かったなぁ、と思う日々です。

ゲムマ作戦記 2017年秋の陣 2日目

  1. 1. 時系列日記
    1. 1.1. 前日譚
    2. 1.2. 当日オープン前
    3. 1.3. オープン直前
    4. 1.4. オープン後、前半
    5. 1.5. 中盤
    6. 1.6. 終盤
  2. 2. 教訓
    1. 2.1. 前日までの準備
    2. 2.2. 待機準備
    3. 2.3. 参加中
  3. 3. 頒布側がこんな感じならうれしい
  4. 4. 感想
  5. 5. 今回の収穫(順不同 敬称略)
    1. 5.1. 買ったもの(レビューはそのうちできたらいいな)
    2. 5.2. 試遊したりしてめちゃめちゃ欲しかったけど諦めたもの(順不同 敬称略)

さる12月2、3日、東京ビッグサイトでゲームマーケット2017秋が開催された。そこへ行ってきたので早い話、レポートです。ほんとはすぐに書きたかったんだけどいろいろ忙しくてなかなか時間がとれなかった。ちなみに今回が初めて。

時系列日記

前日譚

事前にAmazon経由で買ってあったゲームマーケット地図とTwitterとにらめっこ。というのも、お作法というか状況が初めてゆえに全然読めない。大手が出すものでさえ売り切り再販なしとかざらなので、後悔のないようにしたいという思いが強かった。

Twitterで見かけた初参加者向けのお作法として小銭と千円札を十分に用意してお釣りが出ないように配慮するといい、とあった。ATMで9000円を何回かに分けておろしてきた。(最寄りのATMは10千円で1万円札が出てくる仕様だった)これは実際かなり有用で、ぴったりだすと、本人も受けとる側も、まだかまだかと後ろで並ぶ人もみんなハッピーになれる。

今回の目的、ゲムマに行くと決めたきっかけだったのはCygnusさんが作ってるボドゲ用の道具いろいろ。それ以外にも事前情報を見てみると面白そうなものいっぱいある。せっかくなので楽しみたい、そう思ってゲムマの公式サイトで日曜出展ブースの置いてあるものをかたっぱしからチェック。事前情報はもちろん、土日両日出展ブースはTwitterでも情報をチェック。特に気になったのは「売り切れるのか?いつまでに買えば間に合うのか?」。

そんなこんなで、絶対買う、優先的に買う、試遊してみて面白かったら買う、試遊だけして後日買う候補、などに分けてからお目当てのブースの位置を地図に書きこむ。絶対買う、優先的に買うのに効率的な周りルートを決める。どこで何をいくら分買うか計算しておく(どうせここまでやるならブースごとに分けてお金を用意しておけばもっとスムースだった)。

とめちゃめちゃ準備して気合いれたけど、終わってみて考えるとここまでは必要なかった気がする。

当日オープン前

朝10時にオープンで、待機列の開始は8時とのこと。。8時に最寄り駅の国際展示場に到着。そこからテクテク歩いて会場まで。実は今回の会場はビッグサイトの中でも一番奥な上に、オープン前用の待機列はさらに遠い駐車場になる。結局列に並んだのは8時20分ぐらい。後続で並ぶ人いないなー、おかしいなーと思ってたら実は1列目の最後尾だった。ちなみにここで約200人強。

完全な屋外だったけど寒いといえど日射しが暖く、風も強くなかったので助かった。けっこうみんな地べたに座ってた。100均のミニパイプイス持ってきたらよかったなぁ。そして座れるならmac持ってくれば作業もいろいろできたなぁ。なんて思った。僕は一人だったのだけど、周りは友人どおしゲームで遊ぶひと、地図を見ていろいろ考えるひと、など。でもこれ雨だったらけっこうキツかっただろうね。

ちなみに水分の摂取は抑えめで並ぶ前に行っておいたのでトイレに行くことはなかった。とはいえ列が動くまでは1人でもトイレに行っても大丈夫そうな感じ。

オープン直前

開場まで30分といったところで列が動く。開場前までみんなで移動するようだ。ふと見回すと1列目よりも遥かに長い2列目、3列目が。合計で1000人ぐらいはいそうな感じ。ちなみに待機列からの入場は本ゲートではなく別の入口からになる。時間になってオープン、みんなでチケット代わりの地図をかかげて入場!

オープン後、前半

あたり前だけど開幕ダッシュなんて絶対ダメ。とはいえみんなこころなしか早足になってる。僕もまずは最大のお目当てCygnusブースへ。おそらく5人目くらいかな。地図に書きこんでたリストを読み上げて購入品を伝える。前もって金額も計算してたので素晴しくスムーズ!が、受けとったら予想以上に板が大きくて鞄にしまえない、というアクシデント。ただゆっくりもしていられないし、後ろに並んでるお客さんもどんどん増えていくのでさっさとどいて次のブースへ。

もうこの時点で僕がゲムマに来た目的の7割は完了したに等しいけど、お次は優先的に買うリスト入りしてるブースへ行って買う、の繰り返し。Cygnus板が大きすぎて手持ちがいろいろと不便だったので公式エコバッグを買って入れたらすっきりした。

ひとまず絶対買う、優先的に買うものはやっつけたので試遊して面白かったら買う、もしくは話を聞いて欲しくなったら買うものブースへ。全部のブースが試遊卓があるわけじゃないのでしかたない。試遊してる間に売り切れとか嫌なのでここもなるべく優先準位つけたものから。

中盤


一段落ついたので、ブースを隅々まで回ってみることにした。特に企業系協賛ブースは入口あたりにあるので待機列組で入場場所が違った僕は中盤になって始めて入口まで。いろいろ見たり、話を聞いたり、時に試遊したりして楽しむ。あっという間に2時。

昼食を摂ることに。開場出てすぐのところに軽食系とか焼きそばやロコモコ丼とか売ってたけどイマイチ魅かかれなかったのでパス。ビッグサイトの内部にもいろいろレストランがあって、このころだと待つこともなく普通に入れたのでカレーを食べた。ここで買ったものを整理して大きすぎてエコトートに入れてたものもギリギリバックパックに詰めれた。これで多少身軽に。

終盤

さて、開場に戻ってまたブースを回ったり、話を聞いたり試遊したり。特に開発者の人の話が直接聞けるのが楽しかった。何が楽しいってみんな凄い良い笑顔。ざっくり言えば「ぼくのつくったさいきょうのボドゲ(もしくはお道具)」展覧会なわけで、みんなそれぞれに思い入れとか「このゲームのここが面白いんだぜ」っていうのが伝わってきて、そのパッションがものづくりの一端を担う僕にも良い刺激になったのが一番の収穫。

気になってたゲームのほか、最初に優先的に購入したボドゲも試遊できれば試遊することにした。というのも友人達とやるとき、僕がインストしなきゃいけない。なので説明書を熟読するより、一番詳しい人についてもらいながら1プレイしたほうが理解が早いと思って。

そういえばゲムマ大賞の発表はどこがステージかわからなくて見なかったなぁ。

そんなこんなであれよあれよと言う間に終了。終わってみるとどっと疲れた一日であった。帰ってから買ったゲームのスリーブ入れ作業が待っている。僕はかどまる派なので、どれだけの角をカットしなければならないのか…… そんなことはいったん忘れて、会場のお祭ムードの余韻にひたっておこうと思った。

教訓

ゲムマに参加しての教訓。

前日までの準備

お釣りの出ないように小銭と千円札の準備は本当に良かった。絶対買うものはいくらなのかメモっておくともっとGOOD。販売側はスーパーのように専用レジがあるわけではないし、専門の接客でもないので支払いの手際の良さを求めてはいけない。といっても殺気立つような急ぐ場面もなかったけど。

個人的には逆に開幕並ぶような人がガっと買って「いくらですか?」って万札出した時にはちょっと引いた。自分のためにも相手のためにも紳士のマナーを。

気になるゲームは予習とどこにあるかチェックしておくと良い。会場ではパっと見での情報はそんなに多くない。むしろ事前にルールや紹介動画みたり事前にできることはやっておいたほうが良い。ここはワーカープレイスコーナー、ここはトリテ、などと分かれてるわけでもなく、ブースの場所は完全にバラバラなので好みのゲームぐらいはチェックしておくと吉。

待機準備

外で待つのはやっぱり寒い。ちゃんと防寒具、荷物の容量とトレードオフだけど簡易イスがあってもいいかも。暇潰し用具も忘れずに。

ちなみに地図確認と経路のチェックはここでやっても良いかもしれない。ただ、どんな頒布品がいくらなのか、という情報は地図にはないので事前に見てなければ、ネットで見ることになる。僕は事前にチケット代わりのマップを買ってたけど、当日、待機列でも買うことができた。カタログも売ってた。前日までにマップを買ってなくても安心。

参加中

まず冬ということもあって、乾燥してる。そしてボドゲと接客という喋る要素満載。これは風邪の心配がやばい。飲みもののみ可なので、持ちこんで意識的に摂取しよう。

温度は暑いことはなかった、うっすら寒いかもなぐらい。コートを着て脱ぐには寒いが着てるのは少し暑いかも、ぐらい。マフラーしてたら暑いぐらい。そんな温度。(体感には個人差があります)

運送会社があって、買ったものを預けたり配送できたりしたが僕はしなかった。後から思えば利用しても良かった。もしくは会場外のコインロッカーに預けるなり。とにかくボドゲはかさばるし、重量はそんなにないとはいえやはり一日歩きまわって持ってるのはそれなりに大変。荷物は早めに切り離すべきだったな、と思う。終わった後の疲労度に大きく影響するはずだ。

開始早々売り切れることは滅多にない感じ。思ったのは、焦って開幕に買うより、話聞いたり可能であれば試遊してから買うべきだったなぁと思う。予算にも我が家の収納スペースにも限りがある。当日の限定効果+売り切れるかもという不安は危ない。財布がどんどん軽くなる。危ない。

名作と言われるボドゲでも、面白そうだと思ってプレイしてみて、あ、これ僕の好みじゃないな、ってことは往々にしてあると思う。言わんや出たばかりの同人ゲーだ。限りがないブルジョワジーならともかく。僕のような一般ピープルは吟味して買わなきゃいけない。そう簡単に売り切れないのでどうしても欲しいもの以外は焦らなくていいと思う。

例外的には土日両日で、土曜のぶん、日曜のぶんで分けないで頒布してるところ。今回の僕のように日曜だけ参加の場合、人気によっては日曜開幕の時点ですでに在庫僅少の可能性があるので。そういうところはあんまりなさそうだったけど。

最近ではネット販売もしてたり、ゲームショップやボドゲカフェに置いて委託販売してたりする例も多々あるので本当に焦らなくていいと思う。今回僕は確実にネットで手に入りそうなものは絶対買おうと思ってたものもスルーした。後日買えるので。だけど、当日の熱気が過ぎさって、限定効果も消えれば、試遊してもなお、買うのを様子見しておこうと思うものもあった。

こんなこと言っては作り手側には迷惑かもしれないけど、できれば試遊、最低でも実際に見たりブースの人と話したり、そしてその場でしか手に入らなそうなら、一旦落ちついてから考えてみてそれでも欲しかったら買う、ぐらいのスタンスで良かったかもしれない。買ったけどプレイされないゲームを所有してしまうよりかはよっぽど、自分にもスペースにも財布にもゲームにも優しい気がする。

可能であれば友人と何人かで来れたら良かったなーと思う。試遊するとき、一人だよ4人ゲームをするのに人が来るのを待たなきゃいけない、となるとちょっと尻込みする。4人で来れたら、みんなでやればいいし、2人はプレイしてもう2人は他の人達、仲間のプレイしない2人は他ブースみたりプレイを見てたりと幅広い行動が効率的にとれる。時間は有限だからね。

それに買うものも分散できる。コレクターじゃない限り、ボドゲは仲間で1つあれば事足りるので。今回残念ながら我が友人達はこぞって忙しく不参加だったのはけっこう悔やまれる。

ちなみにリアルカタンという資源を渡されて交換で全種類集めるイベントは、僕の持ってる麦がなんか不人気で木材の人と交換できずに終了。でも知らない人と話す良いきっかけになって楽しかった。

頒布側がこんな感じならうれしい

これは完全に傲慢な意見かもしれないけど、参考になれば。

ブースの場所番号をわかりやすく書いておいてくれるとうれしい。有名なサークルじゃない限り開発者ではなくゲームの名前で覚えてるもので。かといってマップにはゲームの名前ではなくサークル名で出てるわけで。あとは今どのへんに居るのかがわかりやすくなるので。

大まかでも在庫数が分かるとうれしいなー。今即決しなきゃいけないのか、悠長に試遊したり他のブースを見てきても間に合うのか、僅少じゃなくてもどれぐらい決断を後にまわしても良いのかがわかると嬉しいな。一般ピープルなので吟味する時間が欲しいんです。

マーケティング的には当日前に出せる情報はどんどん出してくれたほうが良いように思う。ルールブックが公開されている、されてないで判断材料としては全然違ってくるし、目星もつけやすい。ルール説明動画はもちろん、プレイ動画なんかもガンガンあったほうがいいんじゃないかな、人が楽しそうにプレイしてるだけで注目してしまうよ。

感想

本当にどの出展ブースも同人ゲーと思えないぐらいのクオリティですごいと思った。やっぱりビジュアルで突出してるところは目を引くなぁ、と思った反面、元々DTP畑出身の僕としてはここをこうしたらもっといいのに、と思うこともそれなりにあった。カード効果のフォントサイズが小さかったり、フォントと雰囲気がちょっとあってなかったり、ルールブックのレイアウトがまだまだ追い込みようがあったり。

とはいえ、本当、どれも同人ゲーのクオリティを遥かに越えている気がした。ゲームの作りこみはゲーム作者である以上とことんやるだろうけどそれ以外のできない部分、ビジュアルだったり、装丁だったり。しかも得てして初見ではその部分の作り込みが注目度を分けることも少なくないと思う。

今回、道具は大満足だけどゲームの購入に関しては予算や環境を加味すると様子見できたなぁと思う。正直に言えばちょっと勢いで買いすぎたな。とはいえ沢山のゲームを試遊できるお祭りだし、来年も行きたいなぁと思った。

今回の収穫(順不同 敬称略)

買ったもの(レビューはそのうちできたらいいな)

試遊したりしてめちゃめちゃ欲しかったけど諦めたもの(順不同 敬称略)

  • RAMCLEAR
    • ヘルトウクン
      • めちゃめちゃ面白かったけど、2人プレイ限定なのと2人プレイのメイン相手の妻さんには合わなそうだった
  • グランドアゲームズ
    • キャプテンダイス 第2版
      • 予算切れ+ネットで買えそうだったので。たぶん将来的に買ってしまうぽい。
  • 梟老堂
    • イアルへの道
      • 予算切れ+ネットで買えそうだったので。これもたぶん将来的には欲しい。

そのほかのもたくさんたくさん。お金と置くスペースはいくらあっても足りません!

約8年ぶりに髪を切ってもらった

  1. 1. 散髪を人に頼らなくなった話
  2. 2. 8年ぶりに髪を切ってもらった話
  3. 3. 髪を切る周期の余談

近年ずっと自分で髪の毛を切ってたけど、ぼちぼち結婚式っていうのもあって久々も久々、約8年ぶりとなる美容室に行ってきた。

散髪を人に頼らなくなった話

自分で切りはじめたきっかけは、オーストラリアにワーホリでいった時。髪が伸びてきたから美容室に行くことにした。探してみたら日本人がいるところがあって、値段も手頃だし、当時まだ英語に自身がなかったのもあってそこに行くことにした。

で、担当してくれた人とクソ話が合わなかった。その男性はオーストラリアに来て文化の違いに文句を言ってばっかりだったし、仕上がりも最悪だった。そこで腹たった。なんで金はらって嫌な思いせにゃならんのか、と。

それ以前の日本に居るときも特に不都合に感じてなかったけど、美容師さんに妥協してた。うーん、なんかちょっと…… でもまぁいいかなぁ、って感じで施術が終わって、だいたい2週間ぐらいすると馴染んできてまあ納得行く、みたいな。頼むのが下手だったのかもしれないけど。

で、それから自分で切り始めたんだけど、最初の頃は後ろ側はなかなか上手くできなかった。前と横に関してはそれなり。回を重ねるごとに上手くなってって、今ではもうすっかり問題ないレベル。たまに不揃いだったりもするけど言わなきゃバレないレベル。

やらない、って先入観があるだけでやってみたらできることって本当多い。髪だって自分で余裕で切れるもんだよ。

髪を自分で切ってなにがいいって、自分の好みの長さに自由に調節できるところ。気兼ねがないところ。予約がいらないところ。風呂場でことたりること。お金がかからないこと。失敗さえしなければいいことずくめ。マジオススメ。

8年ぶりに髪を切ってもらった話

まぁそんなわけで今日、久々に美容室へ行ってきた。割と男性も慣れてるようなところっぽいところを選んだ。

美容師さんとの話も普通に会話できて、昔とは大違い。昔は一方的に話かけられるか、まったく話かけられないか。僕のコミュ力が上がったのかな。

仕上がりはというと、ちゃんと伝わる美容師さんに会えればこんなに満足行くものか、とびっくりする出来。最後がクソみたいな経験だったのでそもそもまったく期待してないっていうのと、自分で切ってるから難しさが分かってる、という補正がかなりかかってるかもだけど、上で上げたメリットを考えつつもまた来てもいいな、と思えるぐらい良かった。

といっても自分でできるレベルで満足するものを人にやってもらうのは、もったいないし技術が錆びるのでこれからも基本は自分でやっていく方針。ただ、半年とか1年に一度はこういう良い美容師さんにやってもらうのもいいなって思った。

髪を切る周期の余談

余談だけど、僕の髪を切る周期は偶数月の月末と決まってる。これはウチの風習で年明けを身綺麗にして向かえるために年末に散髪することに由来する。つまり12月末ごろの散髪は外せないし、それが基準になる。だいたい2ヶ月ぐらいで切りたくなるぐらい伸びるので偶数月の月末。

人に切ってもらって良かったーって話だけど、自分で切るの本当オススメ。なにごとも「できない」って先入観はとっとと捨てたほうがいい。

書こうと思ったときにちゃんと書こう

  1. 1. 海外の友人達の襲来ラッシュが終わった
  2. 2. 日記を書く

そういうわけなのでブログを書く。内容はただの日記です。

海外の友人達の襲来ラッシュが終わった

前回も書いたんだけど、偶然示し合わせたように海外から友達が入れかわりくるような状況で、ウチに泊めたり一緒に観光したり。それとは別に進めてた結婚式の段取りも合わせて忙しい週末ばっかりだったけどようやく落ちついた。

けっこう疲れたけど良い経験でもあったかなぁと思う。大好きな友達だけどやっぱり泊めてみると文化が違ったり、みんなノープランで来るから観光案内と食事はいつも何をチョイスしていいか困ったり。

ただ、あらためて思うのは僕も色んな国で色んな友人達に世話になった。泊めてもらったりもあった。おとなしくやってると思ったけど、その裏ではやっぱり苦労や迷惑かけてたんだなぁっていうがようやく身を持って実感できた。

それとともに妻にも感謝しても感謝しきれないなとも。僕は当然僕の友人なので問題ないけど、やっぱり自分の直接じゃない友人を泊めるのちょっと気がひけるでしょう、普通は。それに外国人だし。そして外出も誘ったらついてきてくれるし。なにより妻も英語を喋れるのはありがたい。僕が友人と話してる場に居ても一緒に会話できるし、理解もできるから退屈にもならない。

実はこの言葉の問題はけっこう根が深くて、例えば海外で出身国が同じ同士の友人が集まると自国語を使いだして、話に入れない状況ってのはけっこうある。かといってなかなか咎めるわけにもいかなければ、一々訳すのも大変。共通語としての英語はやっぱりできるにこしたことはないね。

で、ここ最近プライベートの時間は英語のほうが多いぐらいの日を過してたんだけどけっこう英語力戻った感ある。正確に言うと英会話力。細かく間違っててあとから気づくことは多いけど、それでもだいぶ楽に喋れる感覚が戻ってきてよかった。といっても使わなったらすぐにまた錆びつくんだろうけど。

かたやスペイン語はだいぶ落ちてたのを実感したなぁ。聞けばまだだいぶわかるけど、それでもなかなか言葉が出てこない。たぶん単語の覚えなおし、特に動詞の活用周りを重点的にやればまだなんとかなる気がする。一番喋れた当時でも時制も含めた動詞の変化が覚えきれてなかった感ある。

日記を書く

と、こんな感じで日記でもいいから書くことって大事だなぁと思った。僕は1日1記事! とか目標もないし、ネット上での承認欲求なんてまったく発露しない。中身のない情報をタイトルでつってなんとかブックマークに載って嬉しがる趣味もない。むしろちゃんとした情報のググラビリティが低下するからそんな記事なら書かないほうがマシだとさえ思う。

だけど「あ、これアウトプットしよう」と思うことはそれなにある中で、熱いうちに打たないと形にならずに消えてしまうのが最近わかってきたのでやっぱり「これ書こう」と思ったときになるべく早く書く意識を持つようにすることにした。

ネット全体から見ると内容のない情報を増やすことは害悪だと思うけど、個人的にはたくさんアウトプットすることは良いことなので、ちょっとここはひとつ我侭を通させていただこう。

何度目かもうわからない近況報告

  1. 1. 近況報告
    1. 1.1. 結婚式することにした
    2. 1.2. なんか海外の友人達がたくさん来る
    3. 1.3. ToDoアプリ的なやつ作ってリリースした
    4. 1.4. 入力環境がわりと極まってきた
    5. 1.5. ブログをなんとかしようと思う

どうも、どうもどうも。
ブログはいつも書こう書こうと思いつつ月日が過ぎてしまうね。
今回もまただいぶ期間があいてしまいました。書きたいネタは実はけっこうあるんですが、どうにも手をつけるのが苦手な様子。そんなこんなでまた、近況報告からやってみようと思う。

近況報告

結婚式することにした

最近の一番の関心ごとと言えばコレ。念願だった世界旅行から帰国してそろそろ3年、結婚して2年半。だいぶ遅いなぁと思いつつもそれでも今を逃したらやらなくなってしまうだろうなぁと 思ってやることを決意。

別エントリに詳しく書きたいけど、うちの場合、本人と親兄弟のみで式と会食(お食事会レベル)という最小規模。それなのにそれなりに準備が大変で。一般的によくあるパターンを考えるとこれに披露宴と旅行が加わると思うと本当大変だと思う。前職はイベント制作会社だったけど、お金貰わないのにイベントディレクションなんかやりたくないなぁ😣

なんか海外の友人達がたくさん来る

結婚式のアレコレでわりと土日に用事があることに加えて、なんか示し併せたように海外の友人が日本に遊びにくるのが重なっている。すごい嬉しいことなんだけど。結婚式のこととコレと、1つの波だと思って、乗り越えるしかないこのビグウェーブを。

遊びにきてくれてあんまり沢山おごってあげれないので、もうすこし沢山稼げてたらなぁ、とほんのちょっぴり思う。僕は今までの旅の中でいろんな人に沢山助けてもらったけど、その当人達に全然恩返しできてない。だから日本に来てくれた友人達には楽しんでもらいたいし、助けてあげたいと思う。

みんな割と良いやつばかりなので遠慮するんだけど、決まって「自国で他国の人と会った時に親切にしてあげてくれ。僕はそうやってポジティブな助け合いをつなげていきたい」と伝えてる。そう、例えばあのトルクメニスタンのチャイハネで助けてくれた家族なんかに恩返しいくことは相当難しい。だからそうやって広い意味で恩返しをしてるつもりになってる。

ToDoアプリ的なやつ作ってリリースした

これについてもまた機会を見てちゃんと紹介記事を書きたいと思ってる。早い話「ぼくのつくったさいきょうのToDoアプリ」って感じ。実用的になるまではわりと楽しく作れてたんだけど、しっかりテスト書いたり、紹介ページ作るのが結構大変だった。

とはいえそれによって得れた知見はかなり多くて、こういう自分の欲しいものをガっと作る、ってのはこれからも実践していきたい。これによって仕事が捗るようになったかっていうのはまた別のお話なんだけど……

入力環境がわりと極まってきた

今は贅沢にもErgodoxを家と職場の両方で使ってる。職場ではまあわりと良いんだけど、家の環境がなんかしっくり来てない。多分机と椅子が上手く噛みあってないというか。ここに課題が残りつつもそれでも割と極まってきた感ある。

ソフト的な入力環境としても、みんな大好きKarabiner-ElementのカスタマイズとAquaSKK、Atomの環境を上手くならしたらだいぶ良い感じになってる。余談だけど、Markdownが浸透してきていろんなエディタが出現してきたけどなんでみんなそんなエディタを欲しがるのかがちょっと理解できない。編集は自分の使ってるカスタムしたエディタが一番良くない?補完もリントも思い通りに効くし。

というわけでそのうちViewer的なものに特化した何かを作りたい。編集はお好みのエディタでできるようなやつ。

ブログをなんとかしようと思う

これはけっこう前から思ってる。特にちょっと前にブログデザインをリニューアルした時、AMPに寄せたんだけどTumblrでは自動的にスクリプトが入るので現状としてオリジナルなAMPを実現するのは無理そうだ。かといって生成タイプのAMPはまったくやる気がない。

で、一応サーバーサイドエンジニアのはしくれとして、自分でブログ的なCMSを勉強も兼ねて作ろうと思ってた。そんなところから考えが二転三転していまはHexoでやろうかな、と思ってる。

俺の好きなフォントで読ませろ2017年夏決定版

  1. 1. 俺の好きなフォントで読ませろ2017年夏決定版
  2. 2. 俺は俺の好きなフォントで読むぜ
  3. 3. Gist
  4. 4. ちょっと説明とか
    1. 4.1. 使用フォント
    2. 4.2. 上手く表示できないこと
    3. 4.3. 適用範囲
  5. 5. フォントに関してあれこれ

俺の好きなフォントで読ませろ2017年夏決定版

WebサイトにCSSを書くとき、font-familyをどうするか問題。そこに銀の弾丸はない。常々、サイト側がfont-familyを設定するのは装飾的な要素のフォントを使う時以外はエゴだと思ってる。かといってレガシーめなブラウザだとあまり美しくないフォントがデフォルトになってることもまだあるので、やはりfont-familyをある程度設定されるのは今のところは仕方ないと思ってる。

俺は俺の好きなフォントで読むぜ

そもそもだ、あまり読みやすさにこだわってるサイトはそんな多くない気がする。特に日本語のブログ界隈。そこで、もういっそ俺の好きなフォント設定で読ませやがれ、と思ってStylishで殴りつける方法で解決することにした。
註:Stylish:ユーザー側でスタイルシートを設定できるブラウザ拡張。

Gist

/*
Force global font setting
^(?!https?://(.*).?(localhost|192.168.)).*$
*/

@font-face {
font-family: 'Noto Sans';
font-weight: 100;
font-weight: 200;
font-weight: 300;
font-weight: 400;
font-weight: 500;
src: local('NotoSans');
font-display: swap;
}
@font-face {
font-family: 'Noto Sans';
font-weight: 600;
font-weight: 700;
font-weight: 800;
font-weight: 900;
src: local('NotoSans-Bold');
font-display: swap;
}
@font-face {
font-family: 'Noto Sans CJK JP';
font-weight: 100;
font-weight: 200;
font-weight: 300;
font-weight: 400;
font-weight: 500;
src: local('NotoSansCJKjp-Regular'),
local('SourceHanSansJP-Regular'),
local('Noto Sans CJK JP'),
local('Source Han Sans JP'),
url(//fonts.gstatic.com/ea/notosansjapanese/v6/NotoSansJP-Regular.woff2) format('woff2'),
url(//fonts.gstatic.com/ea/notosansjapanese/v6/NotoSansJP-Regular.woff) format('woff'),
url(//fonts.gstatic.com/ea/notosansjapanese/v6/NotoSansJP-Regular.otf) format('opentype');
font-display: swap;
}
@font-face {
font-family: 'Noto Sans CJK JP';
font-weight: 600;
font-weight: 700;
font-weight: 800;
font-weight: 900;
src: local('NotoSansCJKjp-Bold'),
local('SourceHanSansJP-Bold'),
local('Noto Sans CJK JP'),
local('Source Han Sans JP'),
url(//fonts.gstatic.com/ea/notosansjapanese/v6/NotoSansJP-Bold.woff2) format('woff2'),
url(//fonts.gstatic.com/ea/notosansjapanese/v6/NotoSansJP-Bold.woff) format('woff'),
url(//fonts.gstatic.com/ea/notosansjapanese/v6/NotoSansJP-Bold.otf) format('opentype');
font-display: swap;
}
@font-face {
font-family: 'YakuHanJPs';
font-weight: 100;
font-weight: 200;
font-weight: 300;
font-weight: 400;
font-weight: 500;
src: url("https://cdn.jsdelivr.net/npm/yakuhanjp@2.0.0/dist/fonts/YakuHanJPs/YakuHanJPs-Regular.woff2") format("woff2"),
url("https://cdn.jsdelivr.net/npm/yakuhanjp@2.0.0/dist/fonts/YakuHanJPs/YakuHanJPs-Regular.woff") format("woff");
font-display: swap;
}
@font-face {
font-family: 'YakuHanJPs';
font-weight: 600;
font-weight: 700;
font-weight: 800;
font-weight: 900;
src: url("https://cdn.jsdelivr.net/npm/yakuhanjp@2.0.0/dist/fonts/YakuHanJPs/YakuHanJPs-Bold.woff2") format("woff2"),
url("https://cdn.jsdelivr.net/npm/yakuhanjp@2.0.0/dist/fonts/YakuHanJPs/YakuHanJPs-Bold.woff") format("woff");
font-display: swap;
}
*:not([class*="ico"]):not(.fa):not(.DPvwYc):not(i){
font-family: 'Noto Sans', 'YakuHanJPs', 'Noto Sans CJK JP', sans-serif;
-webkit-font-smoothing: subpixel-antialiased;
}
h1, h1 *:not(p), h2, h2 *:not(p), h3, h3 *:not(p), h4, h4 *:not(p), h5, h5 *:not(p),
li, li *:not(p), dd, dd *:not(p), dt, dt *:not(p), th, th *:not(p), td, td *:not(p),
figcaption, figcaption *:not(p), caption, caption *:not(p),
cite, cite *:not(p), label, label *:not(p), select > option {
font-feature-settings: "palt" 1;
}
pre, pre *,
code, code *,
kbd, kbd *,
samp, samp *,
var, var *,
.blob-wrapper * {
font-family: Hasklig, 'Source Han Code JP', monospace !important;
text-align: left;
}
p {
letter-spacing: 0.038em;
word-wrap: break-word;
font-feature-settings: "palt" 0;
}
:lang(en) p {
text-align: left;
}

ちょっと説明とか

使用フォント

以下のフォントを使ってるのでまんま使うならインストールしておいて下さい。

  • 源真ゴシック
  • Noto Sans
  • Hasklig
  • Nasu

完全に個人的な趣味。アルファベットはNoto Sansを使って、日本語は源真ゴシック。コーディングフォントはまだ納得行ってないけど今のところ良く使ってる構成で。こういう和英混植の場合の英字フォントを先に指定して、優先させるハックは好みのフォントを設定しやすいので好き。

もし好きなフォントがあって使いたかったら適宜CSSを修正してください。

上手く表示できないこと

コード表示まわりはいろいろややこしかったりするんですが、上手いこと全称セレクタとか:notセレクタとかで回避したつもりです。が、対応しきれない場合があります(特にアイコンフォント)。

行がぴっしりそろうように、スペースで単語を区切らない日本語を逆手にとったtext-align:justifyハックしてます。故に、日本語だけのときはいいんですが、長めのアルファベットが連続した場合、行の表示が変になることがあります。

適用範囲

頭の部分にコメントアウトしてあるけど、開発する時は当たってほしくないので正規表現でサイトを指定。Stylish側の設定が「正規表現がマッチするサイト」という形なので、正規表現は設定したドメインを「含まないもの」にしておく。お好みで。

フォントに関してあれこれ

一番いいのは、既存のフォントを元に自分の好きなフォントを組み合わせてつくれたら良いんだけど。Font forge使ってやろうとしたけどリガチャ回りとか上手くいかず挫折。そのうちまたチャレンジする。

次に良いのはブラウザ側の標準機能で、英字フォントはこれ、和文にはこれ、monospaceだったらこれ、みたいにできればいい。(現状ある程度は細かくできるけど)。ただし、これだと冒頭で言ったようにサイト側のCSSに設定されてるとアウトなので痛し痒し。これが「font-familyの決定版!」とか言うのにエゴだと良いたくなる元凶。

ただ、せっかく作ったサイトをあまり美しくないフォントで見られるのはたまらねえ、って意見もわからなくない。けど、それこそがエゴなんだけど。そんなことを言う前にletter-spacingline-heightを追いこめ。(上記設定でどちらにも触れてないのは、一律にStylishで汎用的に上書きするのが難しかった為、妥協した。)

OSのデフォルトフォントと、ブラウザのデフォルトフォントと、捨てられない下方互換が生んだ膿なんだろうなぁ。ブラウザのデフォルトフォント問題はそのうち解決されそう。なのでサイト側のCSS最適解がfont-family:sans-serif;だけになるのもそう遠くない日だろう。

最近Emojiについて思ったこと

  1. 1. Emojiは「絵文字」だったから受け入れられたんじゃないか
  2. 2. その英訳を許していいのか、まあいっか。
  3. 3. 絵文字って漢字圏的だよね、って話
  4. 4. もっとEmoji を使っていきたい

Unicodeでまた絵文字が増えるそうな。もはや世界語になり、世界共通認識となった絵文字。なんか最近のエンジニア文化的にどんどん絵文字を上手く使っていこう、みたいな流れってあるよね。

Emojiは「絵文字」だったから受け入れられたんじゃないか

Emoji。Emo、っていうのが正直ポイントで、実際Emojiになる前はEmoticon(Emotion+icon)と言われた時代もあった。そう、Emoで始まる語だったから世界標準になったんじゃないかって僕は本気で思ってる。アスキーアート的な顔文字、すなわちfaceiconとかfacemarkとかだったらこうはならなかったんじゃないかな。Emoji,という字や響きから割と直感的にEmotionを連想できた偶然はデカい。

その英訳を許していいのか、まあいっか。

先日、zshプロンプトを絵文字つかってわかりやすく、ってやってて絵文字のバリエーションをじっとみてた。そしたら天狗👺となまはげ👹がいた。なまはげさんは「Japanese Orge」。うむ、日本にはいろいろな鬼がいるけど、まあこれはいいと思う。しかし問題は天狗様。「Japanese Goblin」ってどういうことや。実際の正統派ファンタジーの原典に当たってないのでアレだけど、ゴブリンって低級とか低俗な小鬼的なアレじゃないのかね?天狗さまやぞ、天狗の仕業じゃー、の天狗さまやぞ。その訳でいいのか!
と、いいつつも、世界的なemojiに日本妖怪が2柱も含まれておりますので、すごいと思う。

ちなみにそこで作った、叩いたコマンドがエラーだとなまはげさんが出るプロンプトについてはそのうち書きます。

絵文字って漢字圏的だよね、って話

漢字ってのは一つの文字として圧縮形態だと思う。例えば文字としては音にのっとったカタカナ、ひらがなだけでも通用する。例えばハングルのように。漢字って正方形的なマスの中に意味と音と関連性を内包してる象形表意文字で、一文字あたりの情報量は世界屈指なんじゃなかろうか。字や単語を知らずとも意味も音もだいたいわかるっていうのはすごいと思う。

マスが正方形であり、象形文字。これはまさに絵文字の原型でしょ。しかもEmojiは漢字と同じくパっと見て状況がわかりやすい。それに一役かってるのが、Emoji は色つきのも大きい。キキとブーバじゃないけど、形はもちろん、色によっても連想するイメージが絞られるでしょ。緑と赤ならわりと世界的にどちらが安全でどちらが危険か共通認識として成立してる。

もっとEmoji を使っていきたい

そんなこんなで、ここ最近のテクノロジー界隈のEmoji使っていこうぜ、の流れにもっとのっていきたいな。その昔、メールのやりとりで絵文字がなくて「おこってる?」とかたずねられた意味のわからない疑問はおいておくとして、やっぱりEmojiが良いかんじに出てくるとなんかちょっと楽しい。なんかちょっと楽しい、ってのは害なく得しかないので大事にしていきたい。

Mac周りをいろいろと物理的にアップデートした

  1. 1. MacBook Pro 13inch BTOカスタムを買いました
    1. 1.1. カスタムの話
  2. 2. 4Kディスプレイを新調しました
    1. 2.1. Macと接続する話
  3. 3. Ergodox + MagicTrackPad
  4. 4. Macの移行とか
  • 7/2 解像度まわりに関してちょっと誤解があったため追記

いろいろたてつづけにMac周りの環境をアップデートした話。ちょっとお金に余裕ができたから環境をアップグレードしてみたら、Macを変えなきゃいけなくなって、結果的に予想以上にお金はとんでった。それでも環境も良くなったので幸せっちゃあ幸せ。その顛末の話。

MacBook Pro 13inch BTOカスタムを買いました

巷ではMacが出るたびにMacってそんなに良くないでしょ教とスタバでノマド宗が対立するわけだけど、彼等はコマンド叩かない派だろうなので別世界の闘争ですね。

そもそもそろそろとは思ってたもののMacを買い変える予定はなかった。だが、WWDCを控えたある日、リッドクローズ(クラムシェル)モードで使ってたMacBook Airに異変があったことに気づいてしまった。クローズできてない。殻を閉じてるはずの貝が半開きだ。確認したらバッテリーがわずかに膨張してた…。思いあたるのはなんか回してたプロセスが暴走してるなーって思ってたけどほっといたことがあって、長時間高負荷高熱状態が続いたんでしょう、きっと。

そんなわけで、WWDCもちょうどあってラップトップのアップデートが来るとの話もあり、買い替えることに。ちなみに瀕死のMacBook Airは修理に出して戻ってきたら妻さんにあげる予定。

カスタムの話

僕は今の職場の影響もあって現在はUSキーボードに慣れてしまったので、BTOモデルで。あ、印字がカッコイイとか見栄えのどうでもいい話じゃない。US配列のほうが記号系が打ち易い、あとSKK派としてはかな/英数キーとかどうでもいいです。必要でもKarabinerでコマンドキーをDoubleFunctionにすればいいし。普段は家で外付けキーボード使うけど、持ち出すこともあるので、一応US配列にしといた。これは後から変えられないし。

あとはメモリとSSD容量を増設。CPUはそのまんま。MacBookAirの時にやっぱり256GBだとちょっと窮屈だったり、外付けHDDと併用して整理する必要があったのでここは余裕を持たせる為に増設。メモリも念のため。CPUは一時的に高負荷になることはあるだろうけど、まあ予算的に泣いた感じで妥協した。

ともかく考えたのは、基本は今までどおり家での外付けをバシバシ繋げてデスクトップ的に使う運用をメインとしつつ、いざとなったら持ち運んでもそれだけで(いろんなもの持たなくても)大丈夫なように。という感じで。15インチか迷ったけど予算と持ち運び時の利便性を重視して13で。ということで、基本閉じてるためにTouchBarはないモデル。(あのオプション高いし、物理ESCキーは欲しいし、タッチバーって手元に近いところに視線を移す必要があるのはなんか違うんじゃないのかね)

4Kディスプレイを新調しました

職場でRetinaのMacBookProを使い出して、やっぱりフォントがくっきりパッキリキレイなのは良いなぁと思ってしまって。じゃあ家でもってことで4Kにすることにした。

で、結局買ったのが「KEIAN KWIN-4K32B 4K液晶ディスプレイ 32型大型ワイド」

結果的に言えば、ちょっと大きすぎた。大きくても27インチぐらいがベストだったかもしれない。ただ、しっかりと4KなのでQuickRes使って、HiDPIモードシステム環境設定の解像度調節をOptionキーを押しながら設定することで細かく調整できる。なのでRetina的な表示で1920x1080にしてるとかなり良い感じ。でもやっぱり27インチにしといても良かったと思いつつも、実はこのディスプレイ、DELLとかの割と安価なディスプレイに比べてもまだ安い。4K32インチで4万円をきってくるのはお買い得。しかもIPSパネル。

その分、発色まわりはちょっと残念かな、この辺は画質調整次第ですこし改善できるから良しとする。個人的のはグレアパネルが反射しすぎて苦手なのでノングレアなのもうれしい。それと、スタンドまわりはかなりやっかい。まず付属のスタンドはそんな良くない。僕はアーム派なのでどうでもいいと思いきや、VESAの200x100アダプタを噛ませたんだけど、なんとディスプレイ本体につけるビスの径が違う。具体的には通常だとM4規格なのにこの本体側の穴はM6。確かに32インチになると重さもあるのでそっちのほうがいいんだけど、普通にやったらハマらない。

で、結局アーム側のアダプタの穴をダイヤモンドヤスリでしこしこと削って拡張して合わせた。一つにつき円状に2mmづつ広げる、これを4箇所。丸一日かかりました。

Macと接続する話

でまわってるケーブルとかの情報は本当クソだ。HDMI1.4のものなのか、2.0のものなのか悪意を感じられるレベルで情報不足。どいつもこいつも「4K対応!」って謳いすぎ。4K/60Hz対応(HDMI2.0)なのか、4K/30Hz(HDMI1.4)どまりなのか全然わかりゃしない。というか4K!みたいに言ってる機器はほぼHDMI1.4なので本当注意が必要。つかませる気マンマンの意図が透けて見えやがる。

詳しくは調べてもらえばいいけど、「4K」とは通称で、4000を意味するのみ。解像度の長辺側がだいたい4000pxであればなんでも4Kといって良いらしい。HDMI1.4でも2.0でもどちらも事実上は「4K」出力は可能だけど、伝送量は桁が違う。1.4は3840×2160(30Hz)、4096×2160(24Hz)が限界だ。HDMI2.0であれば4096×2160(60Hz)でいける。ゲームとか動きの速くない動画じゃなければいいと思うかもしれない。だけどできるのにケーブルの問題でできないのは気にくわない。HDMIっていうれっきとした規格があるんだからそれを明記しないで、単に「4K!」と喧伝するのは本当底意地が悪い。

そんな中で、僕の選んだ接続環境は「AUKEY USB C ハブ 4K HDMI 出力 4x USB3.0 ポート ( USB Type c パワーデリバリー 充電ポート付き )」と「Plugable USB Type-C(USB-C)- HDMI 2.0 変換ケーブル」にした。MacBook Pro専用の二つのUSBを使って横にぴったりドック的に着くスタイリッシュなアダプタと悩んだけど、最終的にはこの構成に落ちついた。というのも

  • ドック的な奴でHDMI2.0対応明記がみつからなかったのと、どうも発熱問題があるっぽい
  • MacBook Pro専用よりかは汎用のほうがなにかと良いだろう
  • ドック的な奴でよくついてるカードリーダーは別にUSBの口さえあればUSBカードリーダーでどうとでもなる
  • 家以外の環境で使った時にHDMI-HDMIが必要な日が来るかもしれないのであるにこしたことはない
  • 家で使う分にはHDMIアダプタ経由にしてしまうとアダプタが劣化した時に面倒(以前にアダプタが接続不良になって難儀した)
  • Thunderbolt-HDMIのこのケーブルの公式で謳ってる説明の説得力

7/2 追記の補足。QuickResのほうがさらに細かく設定できるのは間違いないけど、純粋に倍のピクセル密度にしないと疑似になってしまうため、60Hzでず、30Hzで表示される。動画もあまりみないし、ゲームもMacではしないので大したことないと思いきやマウスカーソルの滑かさですでに驚愕だったので、60Hzつまり60fpsで動作させることを優先させた。

という理由から


現在の使ってる環境

  • macOS sierraでQuickRes使用のHiDPIモード、2048x1152の解像度
  • macOS sierraで解像度設定をOption押しながらの調節で1920x1080の60Hzで動作
  • default writeで外部ディスプレイ用のフォントアンチエイリアスを調整
  • Ergotronの100x100のVESAマウンタに200x100のアダプタ噛ませて、ビス穴拡張してKEIANと繋げた
  • Mac-Thunderbolt to HDMI2.0ケーブル-KEIANディスプレイ(直結)
  • USB接続はAUKEYのアダプタで、電源もパワーデリバリー経由で取る

Ergodox + MagicTrackPad

以前からつかってた変態キーボードKinesisですが、Ergodoxに乗り変えてしまった。セパレート型にあこがれて。
Ergodoxで情報を見るとよく親指Enterとかに慣れないって言うけど、僕の場合はKinesisで慣れたのでまったく問題ない。

スイッチは秋葉原に繰り出してCherry MXの打ち心地の違いを入念にチェック、スコスコ軽く打ててそれでいて音がしない感じが好きなので、一番肌に合ったのはピンク軸。ただ、Ergodox EZの場合、CherryMX互換のGeteronだからピンク軸はない(当時。現在もピンク軸はないもののErgodox EZの軸はCherryMXが正式採用された模様)。そこで、密かに試してみたかった赤軸+静音リング。ピンク軸まで満足度は高くないものの、十分満足できる範囲だったので、Ergodox EZ 赤軸 + 静音リング二つが現在の仕様。打ち心地に関しては満足してる。

そのうち紹介したいと思うけど、親指に割りあてたEnterBackspaceの配置をKinesisを使ってた時から逆にした。これが慣れずに誤爆すること多数。また、MagicTrackPadも未だ置き場所が確定してない。左右の間に置くのがいいのか、右のさらに右に置くのがいいのか。一つ言えるのは手全体の動きが少なくなるようにするのが良いので専用の台を仮につくったらちょっと使いやすくなった。この方向でもっと改良していきたい。

ちなみにキー配置に関してはけっこう弄ってる。ファームウェアのビルドもDockerで難なくできるし、カスタムもそう難しくない。タップと押し続けて違う動作をさせられるのでこれでKarabinerへの依存が減ると思いきや、挙動に納得行かずDoubleFunctionはKarabinerにまかせてる。どうせ他の機能の実現でもKarabinerに頼らざるを得ないし。

あとは細かいカスタムで言うと、ホームポジションのポッチがなくてわかりにくいのはいろいろ試した結果、ダイモ(エンボスのラベルテープが作れるテプラ的なやつ)で作ったテープを貼ったらすごく良い感じになったので、誰かに伝えていきたい。

Macの移行とか

僕はMacのOSをアップグレードする時とか、本体を乗り変える時、前のデータをまんま移行しない派。以前の移行アシスタントは信頼性に欠ける時代があったのと、環境をきれいにする良いきっかけになるから。

今回はBrew Caskを使い出したのでかなり楽にいろいろとインストールできたと思う。それに付随するようにいろいろ初期設定とかダウンロードとかやってくれるシェルスクリプトを書いて実行したんだけど、ちょっと上手くいかなかったこともあるのでもうちょっと改良していきたい。

ただ、それだけで当然カバーできない設定もけっこうあってこの週末でようやく整ったかな、って感じ。
ともあれ、ムダにデカいディスプレイもフォントをパッキリ表示してくれるし、キーボードも馴染んできたし、Macも速くなったので万々歳。一気にやったからお金がいっぺんに出てってしまったこと意外は大満足。

Macの初期設定やら、Ergodoxとかの話はもうちょっとつっこんでまた書きます。