Thanks Driven Life

日々是感謝

転職して2年が経過したので振り返ります

ほぼ2年が経過しました。早い。

初めての転職(& 一人暮らし)だったこともあり、節目であるこの時期に振り返ります。

ざっと振り返り

2017年 (9月〜12月)

  • 入社初日に前CTOの送別会が行われた
  • 入社して1週間後に「そろそろ移転するから」って言われた
  • 入社して1ヶ月後に年末調整機能の開発チームに入る(1回目)
    • 前職では1年に1回しか見ていなかったマルフ*1を毎日見ることに
    • 奥深い…人の手には余る…

2018年 (1月 〜 3月)

2018年 (4月 〜 12月)

  • 年末調整機能の開発チームに入る(2回目)
    • この年から React を導入
    • React わからない… Redux わからない…
  • 気合い入れるためにマルフTシャツ作った
  • つらい戦いが多く、周りに助けられてばかりだった
    • 感謝しかない

2019年 (1月 〜 3月)

2019年 (4月 〜 現在)

  • オフィス移転(2回目)
  • 年末調整機能の開発チームに入る(3回目)
    • この年から TypeScript を導入
    • 型さん…すごい…
  • 住宅ローン控除や団体扱い生命保険に対応
    • 更に奥深い…人の手には余る…
  • :memo: 今年は 10/1 から公開 *4

ざっと振り返って

  • 社内で一番長く年末調整機能に関わってそう
  • まだまだ把握しきれていない書類や手続きが多い
  • とにかく周りに助けられており、日々感謝

まとめ

2年、あっという間でした。

入社した当時、社員は30名ちょい(エンジニアは10名に満たない)だったのが、今では150名あたり(エンジニアは30名ぐらい)となりました。 この2年ですっかり古参の部類に入ってしまいました。とはいえまだまだわからないことも多々あり、 めちゃできるエンジニアもどんどん増えてきているので、みんなにいろいろ教えてもらおうと思います。

会社はこれからもどんどん突っ走っていく様相で、それに振り落されないようにシュッと食らい付いていく気持ちが高まっています。

おまけ(一人暮らしについて)

  • 自炊はしたりしなかったり
  • 東京の食べ歩きブログ、少しずつ溜まってきました
  • 歩くことを強いられがちな土地*5 & Fit Boxing 始めたので、転職前よりは健康かも

merciful-polluter 0.0.5 をリリースしました

概要

magic_quotes_gpc のエミュレートを ON にしている時、$_REQUESTエスケープされていなかった問題が修正されました。

例えば下記のようなサーバーサイドのコードがあるとします。

<?php
$request = new Gongo\MercifulPolluter\Request();
$request->enableMagicQuotesGpc();
$request->pollute();

var_dump($_GET);
var_dump($_POST);
var_dump($_COOKIE);
var_dump($_REQUEST);

次にクライアントとして下記コードを実行してみます。

$ curl 'http://localhost/?hoge=ho"ge' -X POST -d "huga=hu'ga" -b 'piyo=pi\yo'

その結果がこちら!

// $_GET
array(1) {
  ["hoge"]=>
  string(6) "ho\"ge"
}

// $_POST
array(1) {
  ["huga"]=>
  string(6) "hu\'ga"
}

// $_COOKIE
array(1) {
  ["piyo"]=>
  string(6) "pi\\yo"
}

// $_REQUEST
array(3) {
  ["hoge"]=>
  string(6) "ho\"ge" // 修正前は "ho"ge" だった
  ["huga"]=>
  string(6) "hu\'ga" // 修正前は "hu'ga" だった
  ["piyo"]=>
  string(6) "pi\\yo" //  修正前は "pi\yo" だった
}

まとめ

そろそろ enableRegisterGlobals() とか用意してもいいかもしれない( magic_quotes_gpc だけ有効化したい、みたいなケースに対応)

merciful-polluter 0.0.4 をリリースしました

実に5年ぶり & 令和初となるバージョンアップです。

概要

$_GET$_POST で同じキーにそれぞれ違う配列がセットされている時に、オリジナルとは違った結果になる不具合を修正しました。

解説

例えば下記のようなサーバーサイドのコードがあるとします。

<?php

if (version_compare(PHP_VERSION, '5.4.0', '>')) {
    require_once './vendor/autoload.php';

    $request = new Gongo\MercifulPolluter\Request;
    $request->pollute();
}

var_dump($foo);

// php.ini は下記を想定
//
// register_globals = 'On'
// variables_order = 'GP'

上記コードを、例えば PHP 5.3 で動かしてみると:

$ curl 'http://localhost?foo\[bar\]\[a\]=123' -X POST -d "foo[bar][b]=789"
array(1) {
  ["bar"]=>
  array(2) {
    ["a"]=> string(3) "123"
    ["b"]=> string(3) "789"
  }
}

こうなりますが、これを PHP 7.1 with merciful-polluter 0.0.3 で動かしてみると:

$ curl 'http://localhost?foo\[bar\]\[a\]=123' -X POST -d "foo[bar][b]=789"
array(1) {
  ["bar"]=>
  array(1) {
    ["b"]=> string(3) "789"
  }
}

もうお分かりかと思います。

  • エミュレート版 (merciful-polluter) はそのまま上書きしちゃっている
  • オリジナル版は array_merge している

この違いがありました。それを裏付けるコードがこちら

https://github.com/php/php-src/blob/php-5.3.29/main/php_variables.c#L647-L668

正確には「上書きする値と上書き先の値がどちらも Array だった場合 array_merge_recursive (相当の処理)を行う」がオリジナルの挙動でした。

まとめ

令和です。

Fit Boxing を始めて4ヶ月が経過しました

先月はこちら: http://gongo.hatenablog.com/entry/2019/08/02/073526

記録

開始 (8月上旬) 先月 今月 増減 (先月/開始)
98.8 95.4 93.8 -1.6 / -5.0 kg

f:id:gongoZ:20190901232039p:plain

  • 8月中旬あたりで一度増えるも、なんとか巻き返した
  • 下旬には一度 93.2 まで落ちた。92kg台も近い

体調

いたって問題なし

ネクストアクション

あわよくば 91kg 台に突入したい

builderscon tokyo 2019 に参加しました

この季節がやってまいりました。

まずは登壇された皆様、運営の皆様、参加者の皆様、お疲れさまでした & ありがとうございました! 今年も楽しかったです!

そんなわけで、以下、参加したセッションの雑な感想(前夜祭は不参加)

1日目

2日目

朝一は遅刻しました

総括

相変らず builderscon に参加すると「よっしゃ開発するぞ!」という気持ちになります。ちなみに前回 (builderscon 2018) 参加した時は emacs-nes を作るきっかけ を得られました。今回もちょっと作りたいのを思い付いたので、やっていき

おわり

来年も参加するぞー

Fit Boxing を始めて3ヶ月が経過しました

先月はこちら: http://gongo.hatenablog.com/entry/2019/07/03/084739

記録

開始 (6月上旬) 先月 今月 増減 (先月/開始)
98.8 95.0 95.4 +0.4 / -3.4 kg

今月は下がらず、現状維持

f:id:gongoZ:20190802073051p:plain

体調

7月はなんか膝を悪くしたので運動量を減らしました。 普段(6月あたり)は一日30〜40分ぐらいだったのを、7月は10分〜20分に。

  1. Fit Boxing の影響で、膝疲れる!!ってなることが多くなった
  2. その時「膝サポーターでも使ってみるかー」ってやったのが更に悪くした気がする
    • サポーターが悪いのではなく、自分の買ったやつがサイズが合わなかったっぽい

ネクストアクション

そんなわけでじょじょにペースを戻していこう

Emacs 上でニコニコ動画っぽくコメントを流せる emacs-nicomment

f:id:gongoZ:20190725011656g:plain

経緯

  • 最近は tooltip ? popup ? ライブラリとして posframe が流行っているらしい
  • API を見ると、たしかにシュッと使えそう
  • そんなある日、下記ツイートを発見

  • 真似したろ!!

API

  • nicomment-mode

    • global-minor-mode です
    • このモードの時のみ、下記 API によるコメントの追加と更新(移動とか消失)が行われます
    • なんかうまく消失しなかったりした場合も、mode を disable にすればシュッと消えてくれる(はず)
  • nicomment-add-comment

    ニコニコ動画のコメントで使える 基本的なコマンド は対応してみました。

    command (option) values
    position ue, shita, naka (右から左に流れるデフォルト)
    color 16進数カラーコード、red とか green とかの名前
    size large, small, normal

    lisp (nicomment-add-comment "わこ" :position 'ue :color "red" :size 'large)

実装の概要

  1. nicomment-add-comment を実行すると、それぞれにユニークIDを生成して渡す
    • この ID を posframe-show の第一引数で使っている
  2. 初回の posframe-show のみ poshandler 経由で posframe オブジェクトの位置を取得して、コメントの x, y をセットしている
    • nicomment--comment-start-at-right
    • poshandler を使わなくてもコメントが持っているフレーム情報は取得できるけど、今回はこの流れで
  3. 「コメントの位置移動」「コメントの削除判定」「生き残っているコメントの表示」をメインルーチンとして run-at-time で一定時間毎に実行している
  4. コメントの削除判定は以下の2つ
    • コメントが左端に到達した時
    • 移動しないコメント( :position 'ue とかしたやつ) は、一定時間を過ぎると消える
    • nicomment--comment-deletable-p

できていないこと

  • コメントの先頭が左枠に辿りついたらすぐに消えるようになっちゃっている
    • 本来は、ちゃんと少しずつ見切れていくようにしたかったけど…
  • コメントが残ってる状態でフレームサイズ変えるといろいろアレ

    f:id:gongoZ:20190725072749g:plain

    これはこれで面白いということで

  • 他にも多分あるはず

とりあえず雰囲気動いたので良しとしています

まとめ

posframe 、手軽で便利っぽい