皮膚が弱く、靴を履くと足が蒸れてしまい荒れるという問題がある。
普段の外出では百均で買ったクロックスみたいなサンダルを使っていたのだが、先日壊れてしまった。
https://quyo.hatelabo.jp/items/5d80bda96c82530004000001quyo.hatelabo.jp
代わりになるサンダルを探している。増税前最後なので今日買うつもり。
皮膚が弱く、靴を履くと足が蒸れてしまい荒れるという問題がある。
普段の外出では百均で買ったクロックスみたいなサンダルを使っていたのだが、先日壊れてしまった。
https://quyo.hatelabo.jp/items/5d80bda96c82530004000001quyo.hatelabo.jp
代わりになるサンダルを探している。増税前最後なので今日買うつもり。
最近は夢の中に電子機器が登場することが多い。Slackのワークスペースで from:me in:#dream
*1というクエリで探すと効率的に夢の記録を辿ることができる。
SlackやLINEによくわからないことを書いていて、朝起きてログを見返すとそんなことはない、というのを何度もやっている。 ひどいときは夢の内容をSlackのチャンネルに書く夢を見ていて、起きたら当然そんな記録はなくて混乱する。
*1:夢の内容を記録するチャンネル
ついに自転車が戻ってきた。自転車はじつは1ヶ月前に撤去されていたのだ!
防犯登録の写しに書いてあった番号が違うので(!)照合することもできず、忽然と消滅していたように見えた。 撤去扱いになっているので、保管所で2300円を払って受け取り、警察署で盗難届の取り下げ手続きをして一件落着した。
うちのマンションには駐輪場といえるものがなく、階段の下か歩道に停めることになっている。 歩道に停めても大丈夫ですと4年前に聞いていた。 どうやら現在では事情が異なっており、帰省に行っている間に路上駐車とみなされて撤去されてしまったらしい。
明日にでも管理会社に電話して、もうちょっとなんとかなりませんかと聞いてみようと思う。
自転車の盗難届を今になって出した。いろいろな気づきがあったので共有します。
新しい自転車を探そうと思います。
トングをカチカチしてパンを威嚇するTシャツ
https://booth.pm/ja/items/1385948
OFUTON DYNAMICS Tシャツ (White)
https://shapoco.booth.pm/items/994571
ツイッターやめろTシャツ
https://booth.pm/ja/items/1125516
肉体人類向けチャ・ゲバランTシャツ
現在入手不可能
めちゃでかめんだこTシャツ
https://suzuri.jp/moko_oxygen/1903248/t-shirt/l/white
決戦Tシャツ
https://suzuri.jp/shoshokaki/812875/t-shirt/l/natural
ぱちょこんTシャツ
https://minne.com/items/2715511
食べて応援!うなぎ絶滅防止キャンペーンTシャツ
https://www.ttrinity.jp/product/4110344
OBEYめんだこ
https://suzuri.jp/moko_oxygen/1899664/wash-t-shirt/l/white
少女終末旅行 ほね
https://www.amazon.co.jp/dp/B077FRP44G/
葉巻を吸うおパタ
https://suzuri.jp/moko_oxygen/1921103/t-shirt/s/indigo
シスター・クレア Tシャツ(白)
https://booth.pm/ja/items/952228
キズナアイ×Yunomi コラボTシャツ
https://2018hello.world の物販で購入
一人月Tシャツ
https://booth.pm/ja/items/1033854
https://suzuri.jp/hatena/457167/t-shirt/l/royalblue
https://pr.hatenastaff.com/entry/hatenatshirts2016
はてなという会社で1ヶ月インターンに参加していました。 はてなのサービスは普段使っているものが多く、じぶんが使っているものを便利にしたいなと思っていたことや、今年のインターンどうしようかなと思っていたところまだ応募できると聞いたことなどが応募・参加するきっかけでした。
要約すると、めちゃくちゃ充実した4週間が送れて最高でした。
インターンに参加するには応募をしないといけません。 応募するために、ポートフォリオを書いてROT13を実装しました。 よく手になじんでるPythonで実装したのですが、そういえばPythonの標準ライブラリにはROT13があります。
import codecs codecs.encode('hoge', encoding='rot13') # => 'ubtr'
これでも確かに要件は満たしていたと思いますが、拡張性に乏しいのでこれは没にしました。
引数からオフセットを指定できるようにし、テストも書いて提出しました。
GoとTypeScriptを使って日記サービスを実装する、という課題をやっていました。 どちらの言語も静的型やlinterがあるので、VSCodeを入れて拡張機能をぽちぽち入れるとすごく快適に書けました。
1週目は、午前中に講義を聞いて、午後は講義をもとに機能を追加するということをやっていました。 なんとなく知ってることから初めてのことまでいろいろやっていて、たぶんこの週がいちばん疲れていたと思います。 とくにGraphQLやReactなどは雰囲気はなんとなく知ってるみたいな感じだったので、講義で体系的に知ることができたのでよかったし、実装で致命的に詰まるみたいなことはありませんでした。
2週目は、日記サービスに好きな機能を実装していました。 私はbuilderscon tokyo 2019に行く予定にしていたので、実装時間がかなり短かったです。
id:ergofriend とともにブログチームに配属され、GoとTypeScriptを書く暮らしから一変し、Perlを書くことになりました。 7年ぐらい前までPerlで掲示板を作って大喜びしていた*1という感じなので、実質本格的にPerlを書くのは初めてでした。
Perlが難しくてめちゃくちゃ困るみたいなことはなくて、はてなブログのコードベースは大きいけど丁寧なので、id:hogashi に見てもらいながら関数定義を見つつやっていく、という感じで実装できました。
DESTROY
はおそらくリファレンスが回収されたら走るのだろうな、みたいなことにどんどん詳しくなっていきました*2。
手元のDocker環境がときどき壊れて再起動したり、負荷が高いとテストが落ちるなどがあったりしました。たぶんマシンパワーで殴る必要があります。
この記事がTwitterにシェアされた様子を見てなにか気づきませんでしたか?*3 これはアイキャッチ画像自動生成機能といって、アイキャッチ画像が指定されていない記事のタイトルと本文から自動でアイキャッチ画像を生成する機能です。
作例です。
“あなたとJavaダウンロード - Sexually Knowing” https://t.co/J9Y9joPuEe
— こはる (@cohalz) 2019年9月11日
社内ブログで連載していた小説『ひとでクロニクル』を公開します https://t.co/e8HiJdsuDd
— こはる (@cohalz) 2019年9月11日
社内でもウケが良い機能になったと思っていて、発表もかなりうまく・おもしろくできていたと思います*4。 おかげさまで投票の結果優勝することができました。
インターン優勝出来ました🎉🎉🎉@utgwkk 4週間ペアありがとうございます!
— かす (@ergofriend) 2019年9月13日
ブログチーム並びに、スタッフの皆様ありがとうございました pic.twitter.com/joPOumG02X
私はおもしろいTシャツを買って着るのが趣味なので、インターン中は毎日違うTシャツを着て出社していました。
はてなのインターンは一貫して丁寧だなと思いました。 前半でも後半でも、問題が解決するまでメンターの方が付きっきりでサポートしてくれました。
参加するのを迷っているのであればとりあえず応募してみることを強くおすすめします。 とくにあなたが普段はてなのサービスを使っているのならなおさらおすすめです。 一部日程だけどうしても予定があるという場合でも、数日ぐらいならなんとかなると思います(なりました)。
京都に住むのは5年目で、自宅からオフィスまで通う生活をしていました。 やっぱりよく慣れた土地だと調子がめちゃくちゃになりにくい気がします。 そういえばほぼ毎日飲酒してた気がするけど遅刻することはありませんでした。
まかないがおいしいので昼食どうするか考えなくてよいのがいいですね。参加前に比べて体重が増えました。
参加してみて分かったことは、じぶんが普段よく使っているサービスに直接コミットできてフィードバックが得られるのはあまりにも体験が良いということです。 じぶんのモチベーションの源がどこにあるのかのヒントが得られた気がします。
繰り返しになるんですけど、参加するかどうか迷っているならまずは応募しましょう。 こんなに充実した4週間はなかなか送れるものではありません。
*1:そのころはモジュールとかパッケージとかなにも知らなかった
*2:こういう言語機能の挙動を見るのは実際面白い
*3:この機能のために、この記事では一切写真を入れないように注意しました。
*4:id:ergofriend が自己紹介でいきなり韻を踏んだときは度肝を抜かれた
*5:id:lunastera になった
ISUCON9に参加しました。チーム名は :innocent: で、チームメンバーは id:wass80 と id:nonylene です。去年と同じチームで、id:nonyleneにインフラ周りを全て見てもらいながら私と id:wass80 で実装を見るという作戦でした。使用言語はPythonです。
最高得点は5410点、最終得点は0点で、予選は突破できませんでした。
唯一前日から用意していたこととして、こういったスクリプトを書いていました。 これを実行すると各言語実装のディレクトリに対応するgitignoreを置くことができるので、リポジトリが肥大化するのを防ぐことができます。
categories
は固定なので、毎回DBから引くのではなくアプリにベタ書きしました。
当初は /initialize でDBから引いたものを使いまわすようにしていたけど、 なぜか flask.g
に書き込んでも読み込めなくて断念しました*1*2。
デバッグ出力からdictをコピーしてきたけど空白が入るなどでけっこうバグってしまい、もうちょっとスムーズにやりたかった……。
item_simples
に対して get_user_simple_by_id
を回していて明らなかN+1だったので潰しました。
今回はINNER JOINじゃなくてSELECT ... WHERE id IN (...)を発行していたのですが、ロジックはこっちのほうがわかりやすい気がします。
GET /new_items.json とだいたい同じですが、 transaction_evidences
や shippings
はLEFT JOINで引っ張るようにしました。
pt-query-digestの結果を見つつ次の2つのインデックスを貼りました。
create index items_seller_id on items (seller_id); create index items_created on items (created_at);
当日マニュアルを見ると、商品一覧の表示順はユーザの編集が反映されてさえいればなんでもよいように見えたので、じゃあ高価な商品をトップに持っていけば点数が出るのでは? ということは検討していたけど、結局やらなかったです。やってもよかったけど競技終了ギリギリになってしまった……。
外部APIが2つあって、どちらもHTTPSかつHTTP2でレスポンスが返ってきていたので、これをうまく使えないか? とか、どんなレスポンスヘッダがあるかとか実はキャッシュできるのでは? とか今になって考えているのですが、そこまで手が回りませんでした。 GET /users/transactions.json でN回外部リクエストを送っているのが明らかにやばくて、これはチームメンバーに改善を託していました*3*4。でももうちょっと気合を出してじぶんも実装を見たほうがよかったな……。
最初はVSCodeでリモート編集をしていたのですが、htopを見たところVSCodeのサーバがめっちゃメモリを食っていたので、落としたところ点数がかなり増えました。 それ以降はずっとリモートのvimでコードを書いていました。
当日は id:wass80 が東京にいたので、Slack callとzoomを駆使して音声や画面を共有していました。 チャットで書くよりも音声のほうがやっぱり高速に意思伝達できるし、画面共有でペアプロやペアオペが可能なのはすごく便利でした。
非同期処理の実装はずっと眺めているだけだったのですが、Pythonで非同期処理をスッと書くのは難しそうでした。 Node.jsに逃がす作戦も検討されていたのですがこれはふつうに時間が足りなかった気がする。
自然と書き忘れてた、これが一番大事!!!!!!!!!!
3人いて誰も複数台構成にしてよいことに気づかず、あ~今回はサーバ1台か~って言いながら競技終了まで実装をしていました。こんなことある?
python app.py
ってやったほうがスコアが出たこれはマジで何だったんだろうか……。しっかり調査したい。
思い返してみると今回の予選問題、ゆるめの本戦みたいな感じでけっこう攻めないといけなかった気がしてきた。やっぱり参加者のレベルがどんどん上がってきているのだろうな #isucon
— うたがわきき (@utgwkk) 2019年9月8日
年々どんどん参加者のレベルが上がり、そして問題のテーマもおもしろくなっています。 N+1を潰してインデックスを貼れば学生なら予選突破できる時代は終わり、アプリケーションの本質的な改善に手をつけないといけない時代になっているのですが、身体が追いついていないですね。
毎年こんなに面白いテーマの問題が出てくるのすごいなあと思っています。