ちぎっては投げるブログ

Programming, Android, RaspberryPi, Digital Devices, Kinkuma Hamster...

2020年に買って良かったもの

釣りばかりしていたので釣り関連ばかりになるが、釣りをしない人にもお勧めできそうなものを書く。

JYXETOV 結ばない靴紐

https://amzn.to/381VM5m

靴紐が苦手である。 気づいたらほどけるし、脱ぐのはめんどうだし、と常々思う。 なので、出来るだけスリッポンな靴などを選ぶ。最近はメレルのジャングルモックが安く買えたので履いている。

しかし、アウトドア用の靴はスリッポンタイプは少ない。アウトドアで歩き回ってるときに靴紐がほどけると非常に面倒だし、場合によっては危険である。そこで、上記の結ばない靴紐に変えたのだが、これが良かった。見た目は悪いが、結ばずに済むし、締め具合の調整も出来る。値段も安いし、良い買い物だった。

おたふく手袋の下着上下 ボディータフネス

https://amzn.to/38RGu1Z

https://amzn.to/3aYeAnQ

ユニクロのヒートテックよりこっちの方が暖かいように思う。最近は毎日これを着ている。ワイシャツの下もこれを着ている。

防水靴下

https://amzn.to/2WW4fAH

雨の日や釣り船での釣りで、靴下の更に上からこの防水靴下を履くことにした。思ったよりも水が貫通してこないし、単純に靴下が二重になり暖かい。洗濯で乾かすときが少しめんどくさいので常用はしずらい。

ハクキンカイロと電子ライター

https://amzn.to/2WYutT4

アウトドア界隈では有名なハクキンカイロだが、たばこを吸わないのでライターもないし、使いにくいと思ってこれまで買ってこなかった。しかし、釣りを始めると、ラインを焼くことがあり、そのために電子ライターを導入した。

https://amzn.to/2X0Dkno

これとの相性がよく、最近はいつもポケットに入っている。通常のカイロより暖かいのと、水に多少濡れても発熱出来るのが気に入っている。

年末に書いたからか、防寒具ばかりになった。まだまだ寒い新年も、これらを使って過ごそうと思う。

お題「#買って良かった2020

2020年のふりかえり、主に技術と趣味

いつかのために雑多に書く

仕事

去年はTypescriptばかり書いていたが、今年はSwiftがメインで、下期は少しJavaだった。 Javaはテストの整備だったが、ViewとModelが密になってしまっている実装を渡されて、単体テストを書くのは辛かった。 密になっているだけならまだしも、単体テストでUIのテストも一部書かれており、そのテストがエミュレータでたまにこける問題が最後まで解決できなかった。

SwiftはMVPで実装したが、ViewがWebViewで作られていて、果たしてMVPにした意味があったのかはいささか疑問が残るが、少なくともJavaのスパゲティ実装よりはだいぶ良かった。 新規実装であんなにぐちゃぐちゃなコードを書く人がいて、そして実はそのタイプの人のほうが弊社には多いのかもしれないという体験はできれば得たくはなかったが、今後には役立つように思う。

とにかく、チームとしての体を保つための仕組みつくりに腐心した。 他者の意識は変わらないから「仕組み」で防ぐのがエンジニアと思っていたが、しかし、仕組みをいくら作ろうとも、あっという間に仕組みが腐るのには困った。 腐らない程度の簡単な運用で、しかしチームとして進めるための仕組みを作り続けていき、なんとかアプリのリリースはできた。 ただ、チームはリリースを持って解体された。 願わくば、チームメンバーが今回の体験を次回に活かしてほしいと思う……。

会社にTeamsが導入されたのも今年からで、それまでは勝手に建てられたチャットサーバなどを使っていたが、いっきに使いやすくなった。 ただし、偉い人の理解不足は相変わらずだなと落胆した。

コロナの影響や、最近の会社の悪態度(特にリモートワークとボーナスまわり)もあり、退職者が非常に多かった。 身近な人もやめていき、優秀な人からやめていっているなという印象が強い。 自身も、身近な人は信用できるが会社そのものは全く信用できないと思い始めている。 なので、会社に依存しないスキル磨きを続けていきたい、と思っていたが、次のチームはややレガシーな分野のチームになりそうである。メンバーは良い感じなのだが。個人で何か進めるべきだろうか。

今年に得られた主なスキル

  • Swift
  • Macの操作全般
  • モバイルアプリの単体テスト
  • モバイルアプリのUIテスト(一部)
  • モバイルアプリの脆弱性対策
  • fastlane
  • NodeJS
  • Pupetter
  • Azure DevOpsでのタスク管理
  • Azure Pipelineでのモバイルビルドと自動単体テスト
  • オンラインでの勉強会運営(難しい…)

趣味のこと

趣味はひたすら釣りをしていた。 累計で年間50回は行ったと思う。そのわりに釣れていない。 竿とルアーが増えて困る。 VJをひたすら投げるようになったのも今年からだと思う。

今年はキャンプにはあまり行けなかった。 おそらく1回のみ。

ブログはほぼまったく書けていない。下手するとこの振り返り記事が年初かもしれない。

ハムスター

f:id:mczh:20210103205726j:plain

以前のキンクマが病気で亡くなってしばらく飼わないでいたが、五月にまた飼い始めた。今度はジャンガリアン(パールホワイト)にした。ジャンガリアンの方が明らかに警戒心が低いのがわかる。警戒心が低いと言うより、アホなだけなようにも見える。基本的にペレットがメインの生活をしているのにも関わらず太っていて困る。

Windowsでwebpack-dev-serverに環境変数を渡す方法

最近はJavascriptを少し触っている。

課題1

開発環境と本番環境でJavascriptのコードを切り替えたい。

解決方法1

もとからprocess.env.NODE_ENVには設定に応じて値が埋まっている。

if (process.env.NODE_ENV === 'production') {
 // 本番環境
}

if(process.env.NODE_ENV === 'development')){
 //開発環境
}

課題2

開発環境内で更にコードを切り替えたい場合が出てきた。 process.env.NODE_ENV はdevとprdしか自動では定義していないように見える。

解決方法2-1

調べていてよく見るのは、package.jsonのnpm scripts部分で、

$ ENV=hoge webpack

のように、環境変数を付与する方法だが、これはWindows(というよりコマンドプロンプト)では動かない。

SET ENV=hoge&& webpack

とするといいぞ、という記事も見たが、webpack-dev-serverでは

process.env.ENV

はundefinedになっていた。

解決方法2-2

そこで、webpack cliのオプションを見てみると、

webpack.js.org

--define : Define any free variable

というオプションを見つけた。

これで、例えば

$webpack-dev-server --define HOGE=true

とすれば、 Javascript側でHOGEがtrueとして定義されるので、

if(HOGE)){
  console.log('HOGEが定義されてるよ')
}

とすることで、指定した環境向けだけ特定コードを通るように環境変数で切り替えができた。

さらに、上記のコードで

$webpack-dev-server --define HOGE=false

のようにfalseを指定した場合には、webpackのminifyが効いてデッドコード(通ることがありえないコード)はbundleせずに消してくれているようだった。便利。