パルカワ2

最近はFlutterをやっています

服買い替えてる

悲しいことに30歳に近づいてきたので、そろそろ大学生のときに買った服着るのやめるかと夏頃思い立ち、服を買い換え始めた。

僕は何事にもレベルがあると思っていて、なにか新しくやるときはレベルを大きく3つくらいに分けたあとに次に目指すべきは何か考える。

今回は、「シャレてない」「外してない」「シャレてる」の3つに分けて、自分は言わずもがな「シャレてない」の部類だったので、まずは「外してない」を目指すことにした。

「外してない」になるために必要なのはなにか考えて、以下を満たせば「外してない」のでは?と思ったので、それを満たすように服を買った。

  • 上が明るい色の時は下は暗い色にする
  • 下が明るい色の時は上は暗い色にする
  • 白黒だけにはならないようにする
  • 一昔前の量産型大学生にならないようにする
  • チェック柄やボーダーは買わない
  • 雑誌を見て、良さそうならそれを買う
  • 金額はあんまり気にしない

やってみると結構お金がかかってつらい事がわかった。
あと変化に気づく人が案外多くて、CTOには「色気づいた」などと小馬鹿にされましたが無視しました。

ButterKnifeのView lists便利

AndroidアプリのViewのXMLは、平べったくなるように書いてる。
今までは、ある条件を満たす時にはAとBとCを消して、満たさない時はAとBとCを表示するみたいな事をやりたい時に全部のViewを指定していた。

そうすると後で何かViewを追加した時にどちらかの方では変更し忘れるとか起きうる。変化に弱い。

@BindView(R.id.hoge_name)
View hogeNameView;

@BindView(R.id.hoge_address)
View hogeAddressView;

@BindView(R.id.hoge_tel)
View hogeTelView;

void onCreate() {
  ...
  ButterKnife.bind(this);
  ...
}

public void hideHoge() {
  hogeNameView.setVisibility(View.GONE);
  hogeAddressView.setVisibility(View.GONE);
  hogeTelView.setVisibility(View.GONE);
}

public void showHoge() {
  hogeNameView.setVisibility(View.VISIBLE);
  hogeAddressView.setVisibility(View.VISIBLE);
  hogeTelView.setVisibility(View.VISIBLE);
}

ButterKnifeのview listsを使うとこう書ける。ひとまとめに出来るので、変更が起きた時も変更しやすい。

@BindViews({
  R.id.hoge_name,
  R.id.hoge_address,
  R.id.hoge_tel
})
List<View> hogeViews;

void onCreate() {
  ...
  ButterKnife.bind(this);
  ...
}

public void hideHoge() {
  ButterKnife.apply(hogeViews, new ButterKnife.Action<View>() {
    @Override public void apply(View view, int index) {
      view.setVisibility(View.GONE);
    }
  });
}

public void showHoge() {
  ButterKnife.apply(hogeViews, new ButterKnife.Action<View>() {
    @Override public void apply(View view, int index) {
      view.setVisibility(View.VISIBLE);
    }
  });
}

ただこのブログを書いてる時に以下のようなコードを書いた場合、値はどうなるんだろうなぁと思った。確かめてはないけど、VISIBLEのままだとハマったりしそう。

@BindView(R.id.hoge_name)
TextView hogeNameView;

@BindViews({
  R.id.hoge_name,
  R.id.hoge_address,
  R.id.hoge_tel
})
List<View> hogeViews;

onCreate() {
  hogeNameView.setVisibility(View.VISIBLE);

  ButterKnife.apply(hogeViews, new ButterKnife.Action<View>() {
    @Override public void apply(View view, int index) {
      view.setVisibility(View.GONE);
    }
  });

  hogeNameView.getVisibility();  //=> ???
}

もっと早く使っとけば良かった。もしくはもっといい方法があれば知りたい。

インターネットヤミ市に行った。

100円払って同僚の家の灯りを付けたり消したりする権利とキラキラ光るステッカーもらったりした。人が多いのが苦手なので、遅めに行ったんだけど、まだ人が結構いてびっくりした。頭にデカイなにか付けた人とか全身白タイツの人とかいて、わあって思った。すごい熱気だった。

見終わった後に良さげなビールバーがあったのでそこで飲んでたら、インターネットヤミ市の人たちが来たので一緒に飲んだ。そこで合い挽き肉Tを買った。気に入ったので常用したい。

そこで「よくわからない飲み会がありますが、来ますか」と聞かれたので「行きます」って答えてよくわからない飲み会に参加した。

良さげな飲み屋も教えてもらったし、面白かった。

8月にドライヤー買い替えた

ドライヤーの風がめっちゃ弱まっててクソがと思ったので買い替えた。
実家で使ってるやつと同じタイプのを買おうと思ったら1万円超えてて「は?」と思ったけど、実家で使った時めっちゃ早く乾いたので買った。ドライヤーも進化してるんやね…

今見たら9月に新型出てて、ン!!!ってなった。

追記

ISUCON6

ISUCON6に出ました。結果は5万点ほどで予選突破ラインが9万くらいだったので予選突破できず。メンバーはいつもどおり、kenjiskeywalker, soh335, hisaichi5518でした。

ISUCON前日まで

Azureに入れるようになっておこうということでhisaichi5518が入れるようになった。isuconアカウントを何度招待してもアカウント一覧に反映されないので諦めた。

あとアジュレと読むのではなくアジュールと読むと同僚に教えてもらった。

ISUCON当日

流れ的にはまさにこれです。


Try

  • 15時くらいに1度、散歩しましょう(いつも15時くらいに頭打ちになるため

Keep

  • 数人でコード読むの良かった
  • ベンチマークがどのエンドポイントに来るのかすぐ理解出来てよかった

感想

上位チームの人たちのやったことを見てると、自分は知識量も閃きもまだまだダナ〜と思うので、頑張りたい。

僕個人のISUCONテーマは毎年「楽しむ」なんですが、今年もワイワイと楽しめました。運営のみなさん、ありがとうございました。

見極め判断と妄想判断

僕は働いていく上で「理解する力」「考える力」「伝える力」「実行する力」が非常に重要だと思っていて、「考える力」は判断を下すことを含めているとも思っている。

最近、判断について考えていて、つい妄想で判断してしまうことがあるなと感じたのでその気持ちをしたためました。