この度、ブログを独自ドメイン化しました。
http://www.thekingsmuseum.info
はてなブログもプロになったので広告やキーワードリンクなどを消しました。 (もしかしたらいつの間にか Google AdSense が入っていたりするかもしれません)
ついでにこっそりアイコンやニックネームを僕自身のものに変更しました :-)
今後ともよろしくお願いします。
この度、ブログを独自ドメイン化しました。
http://www.thekingsmuseum.info
はてなブログもプロになったので広告やキーワードリンクなどを消しました。 (もしかしたらいつの間にか Google AdSense が入っていたりするかもしれません)
ついでにこっそりアイコンやニックネームを僕自身のものに変更しました :-)
今後ともよろしくお願いします。
去年の12月に受験した TOEIC の結果が返ってきた。
Listening | Reading | Total |
---|---|---|
425 | 445 | 870 |
あわよくば 900 超えないかなーなんて思ってたけどそんなことはなかった。 パート2の問題文がまともに頭に入ってこなくて(理由は不明)、かなり適当にマークしてしまった割にはとれたかな。
これまでの TOEIC のスコア推移は次の通り。
受験日 | Listening | Reading | Total |
---|---|---|---|
2017/12(今回) | 425 | 445 | 870 |
2017/3 | 430 | 415 | 845 |
2016/3 | 350 | 400 | 750 |
細切れにしか勉強時間が確保できないから、勉強してる実感はあまりないけど、スコアはちゃんと伸びてきてる。 毎日、少しずつ、ってのは勉強の王道ですね(特に言語学習では)。
前回、845 取ったときは「これぜったい上振れでしょ…」と思ってたけど、今回は 850 を超えたわけで「TOEIC 850 〜」くらいの位置にはいるんだよね。 でも、これくらいのスコアが取れるようになってきて、スコア 900 レベルだと自分のイメージしていた「英語ができる姿」にぜんぜん届かないことが分かってきた。
2年前英語を勉強し始めた頃は「TOEIC は最終的に 900 超が目標かな〜」なんて思ってたが…。
数日前、「暴かれる王国 サウジアラビア」を字幕無しの英語音声で見たけど、
って感じで、ゴールの遠さにちょっと絶望した。
でもまあ、ポジティブな面を見れば、Reading に関してはかなりレベルアップした。そこらへんの Developer Guide 程度の文書なら苦労なくスラスラと読めるようになったし。ちょっと砕けたブログとかエッセーだと途端にすらすら読めなくなっちゃうけど…。
ということもあって、900 点を目標にしていると自分のイメージするゴールに全然到達しないので、まずは目標再設定して 950 点を今年の目標にした。
一般的には Listening のスコアが高くなる傾向があるみたいだけど、自分は感覚的にもスコア的にも Reading の方が明らかに得意。Reading のスコアが高い人の方がスコアが伸びやすいと書いてある記事を目にしたので頑張れば今年中の 950 も夢じゃないかも?とハードルを高めにしてみた。
本当は今までやってきたこととか、今年やろうと思ってる英語ネタを書き連ねようと思ったけど、長くなったので一旦これで終わりにして時間があったらまた書きます。
2 年前くらいに Gauche を勉強したいなーと思ったんだけど、いろいろあって途中でやめてしまってたのを再開した。
Scheme は SICP を Streams くらいまではやったので、簡単なプログラミングクイズみたいなのは解けたりするけど、普段使いできるレベルじゃない感じ。
目標は、
という実務的なところと、
と本に書かれていた意味を理解できるようになる、という興味的なところかな。 まあ、現時点でもひとつ目はなんとなく理解できるけど。
言語を勉強する時って「Hoge を勉強する理由」みたいな話になりがちだけど、Scheme に関しては「単純に興味があるから」くらいしか理由はない。
ここ数年はキャリアに効きそうなことを重視して勉強していたけど、単純に興味あることに少しは時間を費やしてもいいかなーと思ったのもある。 プロゲーマーのウメハラが「最近、なんとなく昔使ってたキャラをメインに使い始めたら、なんとなく人生が楽しくなってきたんですよね。昔、ゲーム始めた頃に持ってた感覚というか、そーゆーのが戻ってきた。」みたいなこと言ってたのに少し影響を受けた。
別に俺は昔 Scheme 使ってたわけじゃないけど、学生の頃に Lisp ってできるハッカーが使いこなしてるイメージがあっていつか使いこなしたいなーと思って。自分の興味あることを勉強する単純な楽しさみたいなものがここにある気がする。
あと Emacs の Scheme 用のキーバインドをちゃんと使いながらコード書こうとしてるんだけど、ぜんぜんうまくできないのがそれはそれで結構楽しい。 身体と頭が一致しない感じは子供の頃にキーボードの配置覚えた頃を思い出させる。外側の S 式に行こうとして、キーを押したら内側の S 式いっちゃったり。四苦八苦。
でも、頑張って練習してると昨日よりちょっとうまくカーソル動かせたりするとこれが嬉しかったりするんだよなー。
2歳半になる息子が、毎日できないことにもがきながらもどんどん成長している姿を見て、歳をとってもそういう姿勢は持っておきたいなーと感じた。
Effective Java の 3rd Edition がついに発売するようだ。
ここからなら EPUB で買えそう。(そうすれば Kindle で読める)
また解説記事書こうかな。。。
Effective Java 3rd Edition のまとめを書き始めました。
ISUCON というプログラミングコンテストに参加し予選敗退した(100位近辺でした)。
予選の一ヶ月くらい前に、会社の同僚から「今度 ISUCON に参加しません?」という話があって、会社のメンバー三人で参加することにした。
準備として、
あたりをやった。
予選問題をやった感想としては、プログラムとかサーバー構成はかなり簡素だなぁと思った。 デフォルト実装はかなり荒い感じ。 だからこそ、高速化する余地あるということなんだろうけど。
ただ、競技時間8時間という時間制限はなかなかシビアだなぁと思った。
予選は初日に参加。奥さんに子供の世話を頼んで、朝から会社に行った
気合い入れて 9:00 に会社に行ったら開始時間延期になって 12:00 開始の予定と言われ、暇を持て余してしまった。結局、さらに遅れて最終的に始まったのは 13:10 くらいかな。 (二日目も遅れたのはさすがに…)
競技開始直後は、3 台あるサーバーの設定を同僚にまかせて、コードを見つつ高速化ポイントを探す。
お題の Web アプリにブラウザからアクセスしてみるとアイコン画像のロードが明らかに遅い。 MySQL に画像データ入っていて毎回クエリで取り出してるようだ。それは遅いわ。
データをファイルにエクスポートし Nginx で裁くように変更。 ついでにサーバー設定も見直して 50000 点くらいになった。 ここで3時間くらい経過だったかな。
この時、ファイル名はデータの sha1 だからアイコン変更があってもキャッシュ破棄しなくていいですねーとかって話は出てたんだけど、実はうまく 304 が返ってなかったようだ。これをちゃんと 304 を返せるようになってれば高いスコアが出たらしい(検証してないから分からんけど
この後の次の一手がなかなか決まらなくて時間を浪費してしまった。 結局、「グローバルなキャッシュが欲しいよね」という話になって、急遽触ったことのない Redis を導入することに(サーバーが1台なら concurrent-map とか使うだけだけどね)。 「まぁ、Get と Set と Delete さえやっとけば大丈夫でしょ」みたいなノリでがりがり実装開始。
結局、導入したけどバグ取りに追われて気がつけば残り時間わずか。 残り10分くらいになって諦めかけたていたところ、奇跡的にバグの原因を見つける。
「これはまさか奇跡の逆転勝利ってやつかな?」と脳内で盛り上がったが、ベンチマークしてみたらスコアが下がって 40000 点くらいで FINISH でした。
目標は予選突破だったから「結果は出ませんでした」なんだけど、いくつかポジティブな面もあったかな。
「バグでスコア 0 点でした〜」ではなかったし、画像ファイルをエクスポートするところまでの流れは良かったと思う。
特に触ったことない Redis を導入するって決断ができたのも個人的にはよかった。 こういう思い切ったチャレンジを本番でやって、一応導入まで持っていけたっていうのは結構満足している。
こういったチャレンジがきっといつか身を結ぶのかなーなんて思ったり。
二手目の Redis 導入が大した根拠なく進めてしまったのはよくなかった。
プロファイルをちゃんと見たり、スコアの計算方法を見直したり、やるべきことは沢山あった。 プロファイル用の Go ライブラリも調べてはいたけれど、今回のデフォルト実装で使ってたフレームワークと合わなくて導入を諦めてしまった。 もう少し時間を使ってでも導入するべきだったな。
スコアに反映されないのに無意味に /fetch
を高速化してしまったりしたのは典型的なダメパターンなのでかなり反省した。
最後の方はさすがに疲れてしまって明らかに頭が働いてない感じがあった。 いい仕事をするためには疲労は大敵だなーというのは改めて感じた。体力やエネルギーはうまく使わないと…。
あと、開始時間のズレとかで一人参加できなくなってしまって二人だけでやるのはちょっと辛かった面があったかな。
結局、技術的なことぜんぜん書いてないが Technical な面はちゃんと書かれたブログが他にたくさんありますからね・・・。
とりあえず、ちゃんと 304 が返ってるかはきちんと確認しようね、っていうのは大事だなと思いました。
IT と全然関係ない話。
たまーに「このニュースのこの数字は覚えておきたいなー」と思うことがあって、そういう時どうしようかなーと思ってたけど、ささっとブログに書いておくことにした(ブログ更新頻度維持のためにも)。
今回はこのニュース。
まとめると、
という話。
1 番目も 2 番目もそれなりにインパクトあるなぁ、と思ってたけど、3 番目は特に印象深い感じ。
確かに都内のコンビニやファストフード店のバイトの人ってほとんど外国人だもんね。
Go を触っててデバッグビルドしようと思って調べる。 いたるところで次のようにしろ出てくる。
go build -gcflags '-N -l' ...
で、この -gclags
と -N
と -l
は何なのか。
コンパイルツールに渡す引数を指定できるフラグ
-gcflags 'arg list'
arguments to pass on each go tool compile invocation.
ref: go - The Go Programming Language
それぞれの意味は次の通り。
-N
: 最適化オフ-l
: インライン化オフ-N
Disable optimizations.
-l
Disable inlining.
(c) The King's Museum