oinume journal

Scratchpad of what I learned

2019年の抱負

もう10日以上経ってしまったけど2019年の抱負。

大方針:アウトプット

今年のテーマは アウトプット を第一にする。昨年は本を読んだりUdemyでいろいろ勉強していたけど、雑でもいいからアウトプットすることで自分の血肉にしていきたいと思っている。

1日6時間以上寝る

よい自分はショートスリーパーなので、去年はだいたい1日5時間ぐらいしか寝ていない。ただ、これだと仕事でやる気が出なかったり、体調を崩したりする原因になるので、最低でも6時間は寝るようにする。朝はだいたい6:30には起きるので、0時にはベッドに入るようにする。

アルゴリズムもっと勉強する

とりあえずこの辺。

  • BTree
  • Graph
  • オートマトン

暗号技術を勉強する

暗号技術に対する理解が圧倒的に低いため、アルゴリズムを終えたら以下の本を読んでしっかり勉強する。

暗号技術入門 第3版

暗号技術入門 第3版

業務で必要なものを身につける

  • gRPC
  • Cloud Spanner
  • Cloud PubSub
  • SQLを復習する

英語を再開する

惰性でDMM英会話を続けているけど、まだまだ文法も表現力も少ないのでちゃんと自分の今の状態をmeasurableにしてステップアップして行きたい。そのためにIELTSを今年は受ける。目標としては6.5以上を目指したい。なぜTOEICではなくIELTSかというと、海外の大学の入学基準だったり、例えばカナダだとVISAの条件になっていて、TOEICより圧倒的に汎用性が高いため。

ブログ

ちゃんとした記事を月に1つは書く!

2018年の振り返り

あけましておめでとうございます。年末年始は親戚とハワイで過ごしていました。冬なのに海に入るという謎の体験をして、正月感はまったくなかったけどこれはこれで新鮮でした。

仕事

年始からチームを異動してPlatform開発の仕事をしていた。あまり具体的なことは言えないけど、メルカリのmicroservice化を進めるにあたり重要なコンポーネントの開発・運用をやっていた。自分にはこういうPlatformや基盤のようなものは向いていないかなと思っていたけど、やっていくうちにそれなりに知識がついてきて意外と楽しくなってきたのと、チームメンバーにも恵まれて自分の意見を臆せずバンバン言える雰囲気で良かったと思う。

2019年からはそんなチームを離れて、エンドユーザーに近い機能開発をしていく予定。

上海出張

gophercon.vn

年初の抱負に対する実績

今年は3ヶ月ごとに必ず振り返りをするということを行ったおかげでまったく目標が達成できない、ということはなかったように思う。ただ、やりたいことに対して圧倒的に時間が足りないというのは例年と変わらずで、2019年はやりたいことをもっと絞らないと駄目だと思っている。

アルゴリズム

  • ハッシュテーブルを実装した
  • 文字列検索でブルートフォースを実装した
  • 文字列検索でBoyer Moore法を実装した
  • 2分探索木を実装した
  • B木を実装中

ブロックチェーン

機械学習をやめて途中からブロックチェーンを学ぼうと思ったけど、途中からやる気がなくなりあまり進捗が良くなかった

lekcijeに課金機能をつける

途中からGKEに移行することを優先したので進捗がほぼない。

書いたブログ

2018年の前半はわりとブログを書く余裕があったのだけど、後半になって仕事が忙しくなってきてからはあまり書けていない。自分の学んだことをアウトプットしないとどんどん忘れてしまうので書きたいとは思いつつも後回しになってしまっていてこれは良くないなと思う。来年は月に1本ぐらいはちゃんとした内容のものを書きたい。

プライベート

サンフランシスコ行った

1月に奥さんの出張に付き合ってロス+サンフランシスコに家族で行ってきた

e-Residencyカードとマイナンバーカードを作成

2017年の12月にエストニアに行った勢いでe-Residencyカードという、エストニアに住んでいなくても銀行口座が作れたり会社作れたりするマイナンバーカードみたいなものを作った。ついでに日本のマイナンバーカードも作った。

病気になって人生初入院

こいぬめ氏の扁桃炎を被弾して自分も扁桃炎にかかる。息子はなんと扁桃腺を手術で切除する事態に... 自分はそこまではいかなかったけど、血液検査したら「今すぐ入院しないとまずいレベル」と医者に言われて即日病院送りに... 5日間入院して、ひたすら点滴を打つ毎日。

KORN

退院した直後にKORNのライブを観に行った。

副業的なもの

友達の仕事を手伝うなどした。まぁWordPressのセットアップをしてデータをサルベージしただけなんだけど。

2019年に向けて

まず仕事が忙しくなるとブログを書かなくなったり個人の勉強をおろそかにしてしまうのが本当に良くないと思っている。そもそも仕事が忙しいこと自体、自分にも責任があるのでちゃんとコントロールするようにしないといけない。この辺の課題をクリアしつつ、もう40歳になってしまうので、人生設計を真面目に考えないとマズい...

  • 達成したい目標を絞る
  • 仕事を忙しくし過ぎない
  • 今後10年の大まかな計画を立てる

あたりを2019年は頑張ろうと思う。

Satisfying a large interface quickly in Go

Sometimes it's painful to safisfy a large interface in Go. Here is a simple answer for this, just embed interface on struct like bellow:

package main

import (
    "fmt"
)

type Foo interface {
    MethodA()
    MethodB()  
    MethodC()
    MethodD()   
}

type FooImpl struct {
    Foo
}

func (fi *FooImpl) MethodA() {
    fmt.Println("MethodA called")
}

func main() {
    foo := new(FooImpl)
    foo.MethodA() // Implemented
    foo.MethodB() // Not implemented, runtime error will happen
}

You can check the result on https://play.golang.org/p/0y8ICTWCfpy.

  • MethodA called is printed
  • And then a runtime error happens by calling foo.MethodB

This technique is useful in unit test.

2018年10月の振り返り

アルゴリズム

BTreeをやっているけど、時間がなくて実装ができずに止まっている。

ブロックチェーン

進捗なし

lekcijeのインフラ引っ越し

CircleCIでdocker buildしてGoogle Container Registryにpushするところまではできたので、あとはKubernetesのyamlをひたすら書いていく。

↑に関連して、静的ファイルの配信をVPS + NginxからCloudFlare + GCSに切り替えた。少しハマりポイントがあったので今度ブログにでもまとめようと思う。

読書

CAREER SKILLS

CAREER SKILLS ソフトウェア開発者の完全キャリアガイド

CAREER SKILLS ソフトウェア開発者の完全キャリアガイド

これを読んだ。ソフトウェアエンジニアになる近道とか、プロのエンジニアとしてやっていくには、みたいな心得集のようなもの。情報のポイントがまとまっているので、一通り網羅したい人にはオススメできる内容だと思う。

CODE COMPLETE

CAREER SKILLSで言及されていたので読んでいる。

CODE COMPLETE 第2版 上 完全なプログラミングを目指して

CODE COMPLETE 第2版 上 完全なプログラミングを目指して

プライベート

  • 楽天マガジンを解約したので本を読む時間が増えた。
  • 10月はDMM英会話をほぼやらなかった。そして3週間ぶりにレッスンを受けたらすごく新鮮な気持ちで楽しかったし、意外と英語力が衰えていなかった。

direnvから.envをロードする

.envrcファイルに dotenv と書くだけで、現在いるディレクトリの .env ファイルを読んでくれる素敵な仕様を発見した。これでdirenv使いながら.env形式しか受け付けないアプリケーションにも対応できてめでたしめでたし。

以下は具体的な例。

$ cat .env
PORT=12345
ENV=local

$ cat .envrc
dotenv

$ direnv allow
direnv: loading .envrc
direnv: export +ENV +PORT

$ echo $ENV $PORT
local 12345