2017/11/11

ドワンゴの Scala 研修用テキストに Pull Request を投げた

ドワンゴ在籍時代に新人向けの Scala 研修がありました。
研修テキストはGitHubで公開されていて、間違いや修正点があれば Pull Reqest を投げることができます。
テキストを読んでいると、文とサンプルコードの整合性が取れていないのに気付いたので、修正の PR を出しました。
そうしたらマージされた。やったね。

2017/11/04

#vimconf2017 にいってきた

2017/11/04(Sat) に Vimconf 2017 があったのでいってきました。


所感

なんか全体的に高級感あった。
全席電源あるし、WiFiは問題なく快適だし。昼ごはんはおいしい(あと白い恋人も付いてくる)。
いんたーなしょなるかんふぁれんす感はかなりありましたね。


はやぶささんの発表

haya14busa さんの Vim 活の歴史。
みんなに助けてもらったとか、アイデアを貰ったとか。
とあるプラグインの一部をライブラリとして切り出してもらったりとか、ハートフルな話。
私は EasyMotion 使ってないし、紹介された plugin もあまり入れて無いので、私とは違うタイプの Vimmer っぽそう。
スライドの途中でもあったけれど「Vim ユーザには多様性があって良い」とのこと。
Windows ユーザも多そうだしね。
『VimScript はペイする言語』(うろおぼえ)
置換時の offest とかは知らなかった。 conceal はう、頭が。


key note by fatih

He told about vim-go includes golang histories.
I interested commands uses go using AST.
It means very power full 2-way communication between vim and golang.
Another hand can be actioned easily for other hand(like use go-fmt in vim).
It's very important and interesting factor the in recent languagse.
Multi-platform support is very difficult(like PATH).
He gets 40+ ebooks from users say `I used vim-go. Where I donate?`


おひるごはん

豪華なすき焼き弁当でした。美味しかった。


参加費用5400円ではあるけれど、良いものに出て赤字にならないのかな、と思ったら赤字だそうです。


鼎談(3 vim legends)

3人とも Windows ユーザなんだそう。
なので Win で動かなかったらパッチぶん投げたりする方々。
でも Bram の意思とか気分とかで取り込まれたり、取り込まれなかったりとか。
昔のものを掘り起こすと、意外に取り込んでくれたりするらしい。
Windows ユーザは大変そうだなー、という事を感じる。makeencoding とか。
あと壊れてたら自分で Contrubute する精神重要だよな、とも感じる。
卒論の時の yak shaving が元で vim に patch 作るとかすごいよなー。
「割と度胸あるよね」「新幹線の中で作ってきた」「俺達には共通言語のCがあるやん」などのパワーワードが乱舞する。


cocopon さんの話

cocopon さんの colorscheme の話。
icebarg と言えば知ってる人は知ってるそう。
vim で syntax highlight を作るにはどうするか、に始まり、どういう風に配色を作るかまで。
ちなみに私は colorscheme は default で使っているというテキトーさである。
それでもおさえるべき汎用的なポイントはあったかな。
  • コンセプトを決める
  • 困ったらコンセプトに立ち帰る
とか。
ですが、この辺から体調が悪くなり始めてダウン。帰っちゃいました。


まとめ

会場とか高級感あった。参加者の話も分かりやすくまとまってた。
mopp さんの司会も分かりやすく聞きとりやすい英語だった。
惜しむらくは体調不良かな。懇親会が本番説もあるのでそこまでいけなかったのは口惜しいですが仕方無し。
ブログを書くまでが勉強会、は達成できたので良しとしよう。
Vimconf 2017 運営の方々 & 発表者の方々 ありがとうございました。

2017/11/03

うっかり消してしまった iPhone の計算機アプリを復元する

iOS 10 のどこかから、標準でインストールされているアプリを消せるようになりました。
ヒントとか使ってなくて邪魔なのでガンガン消していく。
その中で、「計算機アプリを消しても Control Center に計算機あるから良いかな」と思って計算機アプリを削除。
そうしたら、Control Center にある計算機も消えてしまいました。困った。

なので計算機アプリを復活させたログ。


環境

  • iPhone: SE 64GB
  • iOS: 10.3.3


復活方法

AppStore の購入済みの項目には無い。AppStore で検索をしても出てこない。困った。
何故こういう形になっているかは不明ですが、復活したので良し。


参考

業務委託時の開発費には消費税がかかる

タイトルの通りらしいです。

我々エンジニアは、業務委託の際、
  • ソフトウェアを開発し、その対価として報酬を貰う
ということをしています。

  • (2) 対価を得て行う取引
などに相当します。
なお、フリーランスである個人事業主も事業者として扱われます。
よって、報酬には消費税が課税されるので注意してください。

しかし、世の中には知らないと損をすることが多すぎる。


宣伝

ちなみに、この記事を書いている 2017/11 時点では、 2017/12 以降の仕事がありません。
なので絶賛お仕事募集中です。詳細は随時更新される atton.github.io にて。


参考

2017/11/01

tmux のバグを踏んだので Pull Request を作ったら Terminal.app のバグだった話

さて。私は tmux の線を ascii にするパッチを自分であてています。
tmux は線を ascii で表示するか、UTF-8 で表示するのオプションがあります。
今日日 UTF-8 非対応というのは稀なので、基本は UTF-8 で表示される筈です。


問題

tmux の線に使われている文字が曲者で、EastAsianAmbiguous という文字種です。
これは文字幅を1にするか2にするか、言語圏によって決めます。
そんな文字を分割線に使うと、言語圏によって線の長さが変わってしまいます。
幅を決める部分は tmux の内部実装と glibc と utf8proc があります。
それらが EastAsianAmbiguous に対応していると問題ないのですが、 全部非対応。これはつらい。

UTF-8 で表示する際は、EastAsianAmbiguous を幅固定の線にする Pull Request を作りました。


Pull Request による変更点

単に文字の置換です。

という変更をしています。
両方とも固定で幅が1なので、言語圏に依存しません。

例えば、このように表示が崩れていた場合でも
この Pull Request によってこのように綺麗に表示してくれます。やったね。

修正と文字リテラル

さて、当然ですが、文字を置換するにはソースをいじる必要があります。
tty-acs.c というファイルに文字テーブルがあるのでそれらを変更。具体的には x と q です。
さてこれで修正完了、と思ったら "\342\224\200" という謎の表記がある。

実はこいつが分からなくて今まで PR を作ってませんでした。
q に相当する ─ (0x2500) のページを見つめていると、
  • UTF-8 (binary) 11100010:10010100:10000000
という表記が。

こいつをさらに良く見ると8進数で 3bit ずつ表記されていることに気がつく。
修正する予定の ᅳ(0xffda) は
  • UTF-8 (binary) 11101111:10111111:10011010
なので
  • 11 101 111:10 111 111:10 011 010
  • 3 5 7: 2 7 7: 2 3 2
  • \357\277\232
で書いてみると動いた。やったね。
単に私がこの文字リテラルを知らなかっただけなのですが、閃いた時は楽しかったですね。


メンテナのコメント

この PR で EastAsianAmbiguous を排除するので言語圏に依存せず正しい線が引けます。
なのでマージされると思っていましたが、メンテナの環境では上手くいかないらしい。

んで、以下のオプションを試してくれと
set -as terminal-overrides ',*:U8=0'
こいつを .tmux.conf に書くも、やっぱり私の環境だと上手くいかない。

UTF-8 表示に強制するオプションのようなのですが、そいつを修正するパッチなのに……
正確には ACS というものを使って線を描画するようです。

ちなみに Terminal.app + Ricty では上手くいかない。こうなります。

動かないよって文句を言ったら、「ACS サポートしてないターミナル使ってない?」と。

いやいや公式の Terminal.app ですよと内心思いましたが、iTerm2 と xterm を試すことにしました。
そうしたら何と綺麗に表示されるではありせんか。

どうやら Terminal.app は ACS をサポートしていないようです。つらい。

iTerm2 に乗り換えを検討しましたが、今度は EastAsianAmbiguous に対応しているか問題に変わる。
面倒になったので今まで通りの
  • Terminal.app
  • 独自パッチの tmux
で運用していこうと思います。

しかし tmux のバグだと思ったら Terminal.app だとは。
流石にそれは修正できない。

これはちょっとしたぼやきなのですが、Terminal.app は結構バグがあるらしい。
Terminal Multiplexer のメンテナが言うからには、色々あったんだろうな、と察する。
しかし nicm さん対応が早い。最初のコメントは10分とかでついた気がする。
反応が早いのはこちらとしても助かるし、いろいろと助言を貰えました。
まー助言の結果 Terminal.app は残念というオチなのですが。

ということで、tmux のバグを踏だので Pull Request を作ったら Terminal.app のバグでした。


環境



参考