仕事遅い問題
前も書いたなこのお題…。
自分の仕事が遅くて仕方ないので、時間とやってることのメモを細かくとるようにしたら、かなり些細なところで長時間つまづいてるのがわかる感じになった。たとえばこういうやつ。
https://twitter.com/gaaamii/status/1019201848014602240
https://twitter.com/gaaamii/status/1019561987510898688
初めからドキュメント読めよって感じなんだけど、つまづいてる時はそのライブラリの使い方が原因ってことに気づいてないのでどうしたもんかという感じ。
自分はときどき、疲れてると特に、何となくで動かして挙動見がちなので、何を確認するのかを常に明確にして行動する必要がありそう。あとはエディタの設定やらwebpackのビルド時間とか地味に効きそうな環境改善も必要そう。
アプレンティスシップパターンを読み返した
前に買って本棚にあったんだけど、今読むとなおさら良い本だなと感じる。スキル不足やらキャリアに不安を感じていて、どうしたもんかと頭を抱えている自分のような人にオススメしていきたい。エモい。
この本には、見習いエンジニアにはたいていこういう問題があり、それにはこういう解決策があるというパターンがたくさん載ってる。全てが一対一できれいに解決できるように書かれているわけではなく、たとえば無知をさらすことと、無知と向き合うことのバランスについて触れられていたりして、そうだよな〜難しい〜と実感とともに読めて楽しい。
技芸を身に付けるにはチームの中で1番下手くそになるような環境に入るとよいというようなことも書かれている。そしてそうしたチームの中で、下手くそであるがためにうまく貢献できないときにはどうすりゃいいんだという問題についても、解決策が書かれていたりする。それは学習して成長していることを示したり、細かい面倒なタスクを引き受けることだったりする。
この本を読んで、結局のところ、これだけやれば明日から天才プログラマーになれるというような近道はないし、成長する上でつらいことはあるよなと改めて認識した。自分の好きなことのみ追求する芸術家や専門家ではなく、お客を喜ばせることのできる職人になるには、新しいことを学習したり失敗したりしつつ不安と向き合いながら、成長していく必要がある。
あと、何事もいきなり負荷をかけすぎると壊れる危険がある。そういう意味でも、短期間で急成長とかではなく、長い道のりをじっくりやっていくぞという気持ちにさせてくれて本当に良い本だなと感じた。
Bearが良い
Bearというアプリを、月額150円払って使っています。良いアプリだと思ったので良さを書きます。
書きやすさが良い
書きやすいです。とても気持ちよいです。
Markdownが良い
Markdownで書けます。WYSIWYG Markdown的なやつです。要は左にMarkdownを書いて右にプレビューを表示するような形ではなく、Markdownのテキストを書いてるそばから要素がいいかんじに表示されるような感じの挙動です。
タグが良い
タグ機能が普通に良いです。
Bear内リンク
[[]]
って書くとBear内の文書とリンクできます。
デザインが良い
なんか全体的にデザインが良いです。書いているときに見た目崩れてるとテンション下がるので見た目がいいのは嬉しい
何に使えそうか
プライベートなメモ書いたりするのに使えそう。
いつか自分で自分用の最高のメモ帳を完成させたいのでいろいろなメモ帳を触りながらこういう良さを感じていきたい。
英語に自然と慣れるの諦めてTOEIC受けるぞ
ソフトウェアエンジニアやってれば英語は読まないといけないし、仕事で英語ドキュメント読んでたらそのうち慣れるだろうという甘い見立てだったんだけど、3年くらい働いてみてあまり英語力向上してないので諦めて英語の勉強をしてTOEIC受ける。英語に自信がないままエンジニア続けるのしんどい。公式ドキュメントさっと読んですっと理解したい。
受験時期
テスト日程|TOEIC Listening & Reading Test|TOEIC Program|IIBCを見てみると、次は5月20日なのでまずはそこを目指してやっていこうと思う。
目標
900超えがネイティブに近い水準とのことなので、そこを目指す。大学のときに受けたときは630だったので1発で900なんて取れる気がしない。900超えるまで何度も受けるつもりでやっていきたい。5/20に受けると結果は6月下旬くらいに届くので、そこで900未満だったら次に申し込める9月の試験に申し込むみたいな。ベンダーIT資格みたいなやつに比べればましだけど、とはいえ一回5725円かかるのでそんな馬鹿みたいに何度も受けられない。早めに900いきたい。
勉強方法
普通にTOEICの熟語集とか問題集買ってちょっとずつやっていく。あとは普段の仕事で出会った知らない単語、熟語、イディオムをちまちまメモしたりもしていきたい。
ねらい
TOEICイコール英語力じゃないだろうというのは全くもって正しいと思うのだけど、ボキャブラリーを増やしたり文章読むスピード上げたり英語聞き取る訓練する機会を強制的に作る意味で良いと思ってる。
余計な小細工をする前に本体の最新バージョンを確認するの大事
Formikというライブラリを使ってフォームのReactコンポーネントを作っていたところ、なんだかおかしな挙動になってしまった。
textarea要素にテキストを入力しても、ボタンが押せるようにならない。
このフォームには、文字数は最低でも1文字以上というバリデーションをかけていて、正当ではないときはボタンを押せないようにしていた。期待しているのは、文字を入力しているときにその正当性がボタンの状態に反映されることだが、どうやらテキストエリアからフォーカスを外さないと、ボタンの状態に反映されないようだった。これは困った。
FormikのREADMEを読むと、validateOnChangeというpropsがあることがわかる。これをtrueにすればいいのか…?と思いきや、これはデフォルトでtrueになっている。関係なさそうだ。試しに明示的にtrueにしてみても、挙動は変わらない。うーむ。
Formikのissue一覧のページで、これを検索してみた。validateOnChangeがうまくいかないと嘆いている人が他にもいればしめたものだ。幸運なことに、こんなissueが見つかった。
答えとなっていたコメントはこれ。
しかしちょっと待ってくれ。フォームとして当たり前の挙動にしたいだけなのに、なんでよくわからん関数で包んであげないといけないんだ!
もう少しissueを眺めていると、こんなものが。
https://github.com/jaredpalmer/formik/issues/353
やはり同じことで困っている。
む、まてよ。
よくみると、こんなプルリクがこのissueを参照している…。
Fix #280. Fix the definition dirty and isValid #365 @justengland
プルリクの中身を見てみると、、どうだろう!!まさしく求めていた変更っぽいものが入ってるではないか!
このプルリクはマージされ、バージョン0.11.0としてリリースされていた。自分が使っていたのは0.10.5だったので、すぐさまバージョンを上げて実行すると…
直ってる!
バリデーションの結果がボタンの見た目に反映されてる!嬉しい!!
——
ということが、今日ありました。些細な例ですが、以下のようなことを学びました。
- github上で星が多いからといって安定したモジュールだというわけではない
- 当たり前の挙動を実現するために余計な小細工をする前に、本体が直されていないか(あるいは自分で直してPRを出せないか)確認するの大事
- だいたいライブラリを使っていて困ったときは自分だけではない
Elm入門者向けハンズオン行ってきた
集合した様子
おつかれ様でした(・∀・)#elm_tokyo pic.twitter.com/bXOcbZGNWC
— afroscript@メルカリでエンジニアの組織づくり (@afroscript10) 2018年1月27日
(懇親会後の写真。ハンズオン参加者はもっと多かった。指の形はElmのEらしい)
やったこと
- Elmな人の発表を聞いた
- チャットアプリを実装する課題をやった
自分のツイート
Elm入門者向けハンズオン に参加を申し込みました! https://t.co/sFJwasXaLn #elm_tokyo
— gaaamii (@gaaamii) 2017年12月27日
#elm_tokyo 遅刻します!13時くらいになります!すみません
— gaaamii (@gaaamii) 2018年1月27日
https://t.co/lw0UMN7EIJ すごい #elm_tokyo
— gaaamii (@gaaamii) 2018年1月27日
#elm_tokyo elm-repl で型シグネチャって書けないんでしたっけ?
— gaaamii (@gaaamii) 2018年1月27日
#elm_tokyo 関数ちょろちょろ書いてreplで試すのは普通に ./Hoge.elm に module Hoge exposing (..) みたいなのを書いておいてrepl内で import Hoge すればいいのか
— gaaamii (@gaaamii) 2018年1月27日
#elm_tokyo インデントに厳しい
— gaaamii (@gaaamii) 2018年1月27日
パイプ理解 #elm_tokyo
— gaaamii (@gaaamii) 2018年1月27日
https://t.co/ncTpNOGYUL #elm_tokyo
— gaaamii (@gaaamii) 2018年1月27日
感想
- Fringe81さんのUniposというプロダクトでElmが採用されているという話に衝撃を受けました
- Elm今後も書いていこうという気持ちになりました
- ABABさんにめっちゃ丁寧に教えてもらって感謝してます
- いきなり実装は難しいという意見はあったけど、座学の時間を長くしたとしても難しいことに変わりはないと思うので、今回のように最低限の説明→実装という形は良かったと個人的には思います(メンター陣がいなかったとしたら厳しそうだけど)。
auやめてLINEモバイルにした
ピザ頼むのより簡単だった。
自分が選んだのはこれ。
https://mobile.line.me/plan/communication-free
3GB、オプションは付けなかったので月額1690円。 自分は出先でほぼツイッターとLINEしか見ないのでこのプランが完璧に合ってると思う。
安いのももちろん嬉しいんだけど、契約情報見るのにいちいち使いづらいアプリやウェブサイトを開く必要がなくなったのが嬉しい。
LINEモバイルの場合は、LINEアプリでLINEモバイルアカウントを友達に追加すると色々確認できるようになってる。
便利。
あと、友だち招待コードみたいなのがあるのでほしい人はツイッターとかで言ってください
25歳になりました
25歳になりました。 24歳も無事生き抜くことができて嬉しいです。 25歳も頑張ります。
Elm Tutorial 読んでる
これ読んでる。
なんか趣味でReduxやろうと思ったけど、せっかく趣味なんだから何か変わったものを触りたいということでElm触ろうとしている。シンプルっぽくてよさそうだけど諸々理解が追いついてない。自分用Markdownエディタ作るところまではなんとか頑張りたい。
ISUCON7予選にくもキャストとして出場して敗退しました
ISUCONに初参加しました。
で発表されている通り、
217位 14,252 くもキャスト
でした。とても悔しい。
メンバー
- id:karur4n
- 自分
選んだ参考実装
ルールとかベンチ実行方法の把握
始まってまずよくわからないままベンチ実行してみたらエラーになった。レギュレーション読んだら3台サーバがあって2台はWebサーバー、1台はDBサーバーとのことだったので、ベンチ実行先は1台のWebサーバーに対してでいいんじゃないかってことで1台を決めてそこでずっと作業していた。
やったこと
- インデックスはる
- SQL直す
- Nginxの使い方をぐぐって設定ファイル更新して
sudo nginx -s reload
インデックス追加をふるかわくんがやってくれたり、N+1つぶしたら地味にスコアが上がったり、Nginx実践入門に書いてある通りにしてみたらスコアが1万5000点くらいになったりした。Nginxの設定についてはなんかキャッシュすれば速くなるだろうくらいの認識で、各directiveを理解してconfファイルを作ったとは到底言えない。
その他感想
- とにかく実力不足だった
- 各年のISUCON過去問や他社の社内ISUCONなどあれば今後も時折漁ってやっていきたい
- エンジニアやってるはずなのにHTTPサーバとかRDBMSがまだ深く理解できていないので疑問をつぶしていきたい
関連
ブログ全然更新してない
ブログ全然更新してない!!
何か思い出すための通知はすべてTwitter botに任せたい
何か覚えておきたいことがあっても、何かしら強制的に思い出させる仕組みがないと忘れてしまう。興味が薄いことや面倒で忘れたいことほど、その傾向はひどい。
興味があるはずの技術的なことも、普段使わない知識だとせっかく本を読んでも次の日には忘れていたりする。たとえば最近DNSの本を読んだはずなのに、ドメインに関するLTを聴いたときに、Zone ApexのApexってどういう意味?というのがすぐ思い出せなかったりした(ぐぐって「頂点」という意味だったのを思い出した)。立派な記憶力を持つことが目的ではなく、必要なことを必要なときに思い出せる程度でいいので、なにかいい方法はないか。
トイレに貼り紙
考えてみたら、トイレに貼り紙をしておく方法を思い出した。受験勉強や資格勉強のときなどはたいていこれをやって、良い感じだった気がする。しかし、日々の細かい予定やら忘れそうなこと全てを、トイレの貼り紙に詰め込むことは現実的じゃない。代わりに、トイレ的な場所をiPhoneの中に見つければいいのでは、と思った。
Twitter botに任せればよさそう
自分の場合はこれがTwitterだった。トイレの場合は考えるより先に身体がトイレへ行くように促してくるけど、Twitterもどういうわけかそれに近い感覚になってる。Twitterを開くときに、情報が欲しいとか誰かに何かを伝えたいとか、そんなことを考えていない。じゃあTwitter botに予定通知やら思い出したいこと通知を任せればいいのでは。
IFTTTで Google Calendar と Twitterを連携
予定であれば、Googleカレンダーに予定を入れて、それをTwitterのbotアカウントにツイートさせればいいと思った。IFTTTでその設定ができる。Googleカレンダーの予定が始まったときに@
付きのツイートが自分に飛んできていれば、Twitterを開いたときに今自分が何をしているべきなのか気が付く。
そのほかやりたいこと
- Scrapbox
- Scrapboxのメモをランダムでとってきて定期的にツイートさせたい。IFTTTで出来ると嬉しいけど今は出来ない。何か作るしかない。
- RunKeeper
- 走った記録も自分宛にツイートさせたい
検討したけど諦めた方法
iPhoneのpush通知
一生懸命見ずに通り過ぎてしまうので、あれをちゃんと活用するのは自分の場合無理そう。
メール
メールも流してしまうのでだめ。
なにがしたいのか
「◯◯を管理するアプリ」みたいなのがたくさんあって便利なんだけど、それすらも続けられないダメ人間なので、ジャンキーな情報がだらだら流れるところにその通知を集めれば少しはセルフマネジメント的なことがうまくいくのではないかという試み。