MX ERGO

MX ERGOを買って2週間くらい使った感想なんだけど

総評は、値段ほどの価値はない、M570を2個買った方がマシ

MX ERGOが出てからずっと気になってたけどたけーから買ってなかった
M570が時々反応しなくなるようになり、保証も切れてたからつい買ってしまった
Webでレビューを見ると良いことばかり書いてあるけど、アレ本気でそう思って書いてるんやろか?
半分はアフィ稼ぐのに単価高い商品のがええからホンマに使いやすいかはどうでもえー人か、
残りは高いもの=良いって頭おかしい人がいるんだと思ってる


デメリットは悪いものから順位挙げると
・重い
・高い
・保証期間が短い
・ボールが指で取り出せない
・マウスの設定が(速度や高精度設定)時々リセットされる
・マウスがまれに無反応になる(カーソルが動かないけどクリックはできるなど、Optionsの設定消すと直ったりする)
・鉄板を外して使うとフラフラする&磁石が邪魔
・Unifylingを収納する所がなくなった

メリットは・・・特に無いかな
チルトやFlowとか使う人にはええんかもしれんけど、うち使わんし


サイドのボタンに別機能割り当てても高精細モードになったり、全体的にOptionsの動きがおかしい
何度か設定やり直してたら直ったけど

https://www.amazon.co.jp/gp/product/B074Z71C2Mwww.amazon.co.jp



2018/10/31追記
メリットが見つかった
M570に比べると分解が比較的分かりやすい(相変わらずトルクスが必要だったりするけど、M570のようにネジが隠れてはいない)
トルクスはM570持ってる人なら大体もってるやろし、うん、多分

分解して磁石を抜いたらM570と15gしか変わらん重さになった

3項演算子

3項演算子に対応した
3項演算子は正規化中にif文へ置き換えている
なんで正規化中かっていうとthen節とelse節をif文に付け替えてから正規化しないといけないし
かといって正規化前に3項演算子を処理しようとするとややこしい
結局3項演算子をちゃんと見つけてthen節とelse節の中身も正規化されるにはここしかないかなって
変だけど
f:id:zenu:20180927014256p:plain


3項演算子に対応している時にパーサがLALR(1)じゃなくてLR(1)?の表を吐いているって気が付いて
ムカついて対応を中断してた
ほんまクソ


classの対応しよ思ってうまくいかないから息抜きに3項演算子見てたせいでやる気がそがれたし

デッドプール2

恋人を殺されやけになったデッドプールがコロッサスに回収されてX-MENに加入する
ミュータントの子供を虐待したからといって一般人を撃ち殺してしまったので、子供と一緒に刑務所へ入れられる
ケーブルが刑務所まで子供を狙ってきたので流れで守る
子供はジャガーノートと仲良くなって孤児院の院長を殺そうとするので、でっぷーとケーブルが組んで子供を止める
でっぷーが子供を守ったので子供はいい子になりケーブルの未来の家族は救われる


まさかジャガーノートおじさんが半ケツにされ、ケツに電源ケーブル差し込まれ水に落とされ感電するなんて

デッドストック

TV局の未整理のテープ確認に回された主人公が確認そっちのけでホラー系の取材に行く
主人公とディレクターだけで取材に行き、タイガーマスクは現場に行かないけどたまにおいしい所を持っていく
冒頭で1本テープ確認するだけで、あんまり確認をしている風はない
基本的にはキャーキャー言う系なのでホラー描写はわずかに写るだけだけど
まぁまぁツボは押さえてる感じ


人形とはいずってくるこっくりさんが良かった
あと、エロ宮司に簡単にこまされる天使もえと

ヴァンパイアの話と主人公の母親がX-MENに殺された話は面白くなかった
特にX-MEN関連なげーし

サプライズ

弟が遺産目当てで両親と兄弟を殺す殺し屋を雇う
家族で集まって食事中に矢が撃ち込まれる
パニックになって家から飛び出るとワイヤートラップでのどチョンパ
家の中に侵入していた犯人に父母がやられる
ヒロインが弟と殺し屋がグルだと気づき犯人をひとりひとりやっつけていく
弟はミキサー葬とか珍しい殺し方をされ、ヒロインの彼氏もグルだと分かりぶちのめす
ぶちのめす所を警察に見られ撃たれるが、警察はヒロインが仕掛けていたトラップでかちわられる


パニック物から、ヒロイン主役のスプラッターに変わる

暗黙の引数がなぜか動作

ラムダ式の引数をいちいち書くのがじゃんくさいから$1とかで引数にアクセスできるようにしてみた
ひさびさにレキサをちょっと変更して名前解決の時に$1をArgumentsにぶちこむようなコードだけ書いたところ・・・なぜか完成した
なんでや、ILでは引数1個の関数をなんで呼び出し側が引数3個でうまく動くねん!

f:id:zenu:20180609223217p:plain

この時ILはこうなっていた
なるほど引数が違う関数ポインタをInvokeしてもおちないんだ・・・ええんか、これ?
.NETの呼び出し規約は呼び出し側が引数をpopするのか?よく分かんないや

f(=> print($1))
↓
newobj     instance void 'Bind_#5,0'::.ctor()
stloc.0
ldloc.0
ldftn      void 'implicit_param2.#5,0'(int32)
stfld      native int 'Bind_#5,0'::f
ldloc.0
ldftn      instance void 'Bind_#5,0'::Invoke(int32)
newobj     instance void class [mscorlib]System.Action`1<int32>::.ctor(object, native int)
call       void implicit_param2.f(class [mscorlib]System.Action`3<int32,string,int32>)

ラムダ式の戻り値の型を型推論

ラムダ式の戻り値の型を作った側が毎回書くのはじゃんくさい
関数の引数に使った感じから型推論できるように対応してみた

型推論の途中で戻り値なし、またはIntってゆーのを [Void | Int] みたいに表して
関数からフィードバックを受けて最後にVoidが残ったら戻り値無しよって感じにしてみた

f:id:zenu:20180605002521p:plain

変数にバインドした時はちょっと無理
でも、よくわかんなけりゃ戻り値ありに固定してもいいかもしれない

# f1は戻り値あり
var f1 = => 1
var a = f1()
need_Int(a)

# f2も戻り値あり、いらないかもしれないけどあっても困らない
var f2 = => 2
f2()