monolog

monora log #=> ものろーぐ

第51回 情報科学若手の会に参加しました

雑記

こんにちは。きょんたんです。最近は「いいえ」というのが流行っています。いいえ。

情報科学若手の会という情報科学オールジャンル若手オンリーイベントに参加しました。でも最近は若手オンリーじゃないみたいです。 前回が初参加で、初参加なのに突然肩を叩かれて幹事になったので今回は幹事としての初参加になります。

ちなみに幹事ってなんだよみたいな話とか私が気になるお金とかの話とかもろもろは代表幹事のkurochanさんが書いていますので興味がある方はご参照ください。

発表のテーマとしては毎回様々あるのですが、なぜか近いテーマを複数人が発表するという事象があり、前回はブロックチェーンで今回は機械学習とかプログラミング言語といったテーマがそれに当てはまっていた気がします。

個人的に一番分かりが多かったのは Segment Routing の話で、なるほど経由地を含めた経路のルーティングとかができて便利そうみたいな気持ちになりました。OpenFlow とかでもできそうですが、ラベルスタックで表現するとハードウェア実装のスイッチとかで高速に実装できて良さそうだなって思いました。

コンテナデータセンターの話は個人的に一番聞きたかった話で、法的な側面でどういった解釈をしてどのように実現するのか、という話やコンテナの魅力が延々と伝わって来て面白いなと思って聞いていました。狭い部屋が好きなのでコンテナを自宅に改造して住みつつ隣のコンテナをデータセンターにしたいですね。

生物から学ぶ深層学習という話は深層学習概論みたいなところがあり、どういった歴史背景でどのように深層学習というものが生まれ、アカデミアとしてはその研究がどのように進んでいて、進んでいくのかというところの傾向が分かって面白かったです。 その次のPFNでの深層学習の話は色々なネットワークの紹介なんかがあり、例えばGANに関する説明なんかは腑に落ちるところがありました。 GANで作られた画像とかはTwitterとかで見ることがしばしばあったのでGはGenarativeのGかな〜ぐらいの認識をしていたのですが、あれは敵対的ネットワークというものでノイズを基になんらかの解釈ができるような(それらしさを持つよう)に延々と学習するんだな、みたいな説明があってとても納得しました。分かってきた。

どの発表も難易度がそこそこ高かったなと思いつつ割と個人的には適度な難しさだったなとは思うんですが、それはたまたま自分が知っている知識がそのあたりに偏在していたからだと思っていて、一般的にみるとそこそこ難易度が高めな発表が多かったのでは、と思っています。 前回は割とテーマ的に自分が知っているところと被らないテーマが多かった気がした(うろ覚え)ので、このあたりは難しいですね。

会場的な話としては、前回は伊東の山喜旅館だったのですが今回の会場は軽井沢の軽井沢研修所というところでした。軽井沢研修所、温泉がない以外は個人的には一万点みたいなところがあり、過ごしやすくて良かったです。ちなみに散歩したところ裏で温泉を掘っていたので来年も軽井沢だったら温泉に入れると良いなって思ってます。 温泉の問題は個人的にはあまり問題視していなくて、それはなぜなら帰りに温泉に行ったからです。軽井沢はそれ自体が温泉地で例えば星野リゾートの発祥地である星野温泉(トンボの湯)というのがありますが、そこから山を越えると草津温泉や万座温泉、鹿沢温泉などがあり、最強の温泉地帯が広がっているわけです。このエントリで書く内容ではないので割愛しますが万座温泉は青白色のにごり湯で最高でした。 幹事として何をしていたかというと概ね無なので来年はもう少しがんばります。 :innocent:

こんにちは。きょんたんです。最近は「いいえ」というのが流行っています。いいえ。 情報科学若手の会という情報科学[…]

ISUCON8 予選に参加して再起動試験に落ちました

Infrastructure Programming

おはようございます。名取さなにハマっている kyontan です。

[caption id="attachment_1879" align="aligncenter" width="620"]

最終スコア[/caption]

チーム「hhkb」で同期3人 (自分 @kyontan, @hogashi, @h-otter) 2回目の参加で2日目で Go 実装でした。学生枠突破ならずでした、悔しい。というよりは 55,982点で全体4位の点数で落ちました。ちなみに hhkb は h-otter, hogashi, kyontan, :boom: ???? の略です。 スキルセット的には、 @h-otter がインフラ(ミドルウェア含)なんでもできる+Goの経験が一番あるマンで、 @hogashi がアプリケーションなんでもできるマンで、 @kyontan はアプリとインフラとDBを一通り見られるマンみたいな感じでした。

今回の参加に向けて、取り組んだことをつらつらと書きます。

今回は真面目に本戦に行きたかったので前々日に ConoHa で ISUCON7 の予選を解き直して練習しました。具体的には ConoHa の練習用イメージを使って 1GBプラン x3台で予選環境を再現しました。結果、10時間程度で 5,204点から509,190点まで持っていけることが分かり、計測と試行の反復を効率的に行えば ISUCON の予選は突破できるという確信を深めていました。 また、前回は最後の最後でベンチマーカを走行させた結果点数が下がって落ちたので、前回の直後に「泣きの1回はやらない」というスローガンを掲げ、1年越しでそれを達成しました。

[caption id="attachment_1875" align="aligncenter" width="620"]

ベンチマークの初回走行の結果しばらく1位になった[/caption]

事前に準備したのは Prometheus のサーバ (@h-otter がいい感じにやってくれた)と、やること/できることチェックリストぐらいでしょうか。だいたい大会では開始した瞬間にテンパってそのまま撃沈するのが常なので、思考停止状態でもコピペで動くようなコード片とかを用意しておくと便利ですね。あとは思考が無になったときに確認するべき事項とかを作っておくと良いのではないでしょうか? 頻繁に無になって帰りたくなりました。メンタルは大事。

例えば下のような感じです。

当日は3人がローカルで開発し、本番環境のVMへバイナリを転送して検証する、という進め方でやっていました。Go はクロスプラットフォームでのビルドがしやすいのが便利ですね。

具体的にやったことを羅列します。というか @h-otter が書いていたのを未承諾引用します。順番は適当

  • SELECT * する系のクエリを必要な列しか取らないようにした

  • /api/users は user_id で reservations を全部とってきて、アプリ側で処理してやったらめっちゃ速くなった ここでベンチマーカが重いと言ってくるエンドポイントが /users/:id から /api/events/:id/actions/reserve になった

    getEvent を getEventWithoutDetail と分けた getEvent と getEvents を2クエリに sheets へのクエリを消す

  • 効果があったのかは良くわからない

    MariaDB のチューニング Prometheus と Grafana で可視化 ログインのクエリを1つに パスワードを平文で突っ込むようにした DB にインデックス張った (けどあまり良い結果がでなくてもんにょりした)

  • 最初に mysql コマンドでインデックス張ったけど結果が全く変わらなくて、なぜ? と思ったら毎回 /initialize でテーブルを作り直していることに気がついた。

    IN句を使いたかったので DBにアクセスするライブラリを sqlx に切り替えた トランザクションの開始がおかしいところがあったので直したり デッドロック時にエラーを返さずリトライするようにした 最後は予約時のシート決定を高速化するコードが安定化しなくて入らなかったり、Redisでいい感じにやろうぜみたいなことを思うだけ思ってやらなかったりしました。多分ここができると数万点上がったはず。

あとはスコアに関係ないけど作業便利になる系として、 エラーログでソースコードの行番号を吐くようにしたり、 Makefile 弄って1コマンドでデプロイできるようにしました。 開発は3台のサーバでバラバラにやっていましたがDBは1台だけを参照するようにしました。これはDBのチューニングとかがあって、1台でやった変更を他に反映したりするのが面倒くさかったので。こうすると、やりたい人間が適当にベンチマーク対象のサーバを変更して実行してやればいいので楽でした。

ソースコードは GitHub で管理し、いい感じにやりました。コミットログは下の通りです。

数字がタグに付いていることがありますが、これはいいスコアが出た時にバイナリごとコミットしてタグつけておこうぜ、みたいな感じにした結果でした。

今回の僕の活躍はよく分からなくて、いい感じデバッグ担当だった気がします。PRを見るなりとりあえずマージしてベンチマーカを落としたりバグ探しをしていたりしました。とにかく @h-otter がぶち壊しつつ @hogashi がいい感じに安定化するコードを書いてくれてよかった感がある。

Webサーバはh2oで十分高速だし、画像のトラフィック詰まりもないしで、とにかくアプリケーションコードの改善に注力した/するしかなかった8時間でした。

最終的に残り30分でベンチマーカを叩いたところ3万点前後のスコアが5万点に若干跳ねてそこで打ち止め。一度再起動をしてブラウザからアクセスできることを確認し天命を待ったところ、無事再起動試験で落ち失格となりました。天命……

(追記: スコアが跳ねたのは、最後に実行先サーバを変えた時に インデックスを張る処理を init.sh に書いたサーバで実行したからかもしれないことを思い出した。)

なぜ失格になったのかは分かっていなくて、おそらく /admin/api/reports/events/:id/sales の処理が遅くて不整合が起きて落ちたのかなあなどと思っていますが、2回連続で落ちるのは運が悪かったなと……

なんやかんやでやることがなくならない8時間で、やることが見つからない8時間よりは良かったのではないかと思います。

https://twitter.com/sukukyon/status/1040457052307447810

イキっているなどと言われてもこれは事実だと信じていて、典型的な N+1 を潰すなどすれば予選は通過できるはずなことは分かりましたね。くぅ〜〜

来年はちゃんと本選に行けたらいいですね。頑張りましょう。

そして、参加会場を提供していただいた mixi 様、惜敗の悔しさを教えてくれる最高のコンテストを運営をしていただいたISUCONの運営の皆様、お疲れ様でした、ありがとうございました!

以下は画像です

おはようございます。名取さなにハマっている kyontan です。 [caption id="att[…]

リクルートのインターンに参加しました

雑記

こんにちは、kyontanです。最高のインターンに行ってきました。

.+のインターンに(参加(し(まし)?た)|行った)シリーズも気が付いたら3本目です。タイトルに統一感がない。

インターンの正式名称は 「WINTER INTERNSHIP 2018 -ENGINEER-」です。

ちなみに過去のエンジニアインターン参加記事は以下にあります。よければご参照ください。

多分この記事を参照する人の7割ぐらいは、そもそもこのインターン (業務委託契約なので実際にはインターンではない) の概要に興味があると思います。これは探すと若干数ヒットするので、こちらの偉大なる先達の記事をご参照ください。

Recruit Summer Internshipに参加しました. - 未来永劫 http://shopetan.hatenablog.com/entry/2016/10/13/133031 cormoran's note - Recruit Winter Internship 2017 参加記 https://blog.cormoran-web.com/blog/2017/03/rhd-winter-internship-2017/ DeNAのサマーインターンシップに参加してきました - たいむかぷせる2 http://studio-graph.hateblo.jp/entry/2017/09/16/211335> リクルートホールディングスのインターンに参加していたので,それはまた書きます。

リクルートのエンジニアインターンはランチがすごいという前印象があり、それを印象づけた記事があったと記憶しているのですが、ググっても引っかからなかった。 ぜひご連絡ください。ちなみに、実際ランチは感動しました。記事の下の方をご確認ください。

インターンの感想にありがちな NDA (秘密保持契約)でほとんど書けない状況なので、それ以外のことを少しだけ書きます。

選考

記憶にありません。 というのは建前として、実際にはコードテストや人事面談、エンジニア面接等のステップからなります。(追記: 2019年ごろ?にコードテストのシステムが変わったとか変わってないとか)

事前面談でメンターから超魅力的な提案をされて、「それは最高ですね、やっていきましょう」みたいな雑な返しをした気がします。振り返ればこの時点で優勝(注: 別に優勝という概念はない)していましたね。

やったこと

配属は RTC (リクルートテクノロジーズ) で、あの事業の分析基盤をフルマネージドクラウドで作り直すようなことをしていました。

データ(分析)基盤や、パイプライン/ワークフローみたいなものに興味があったこと、クラウドに知見がなかったのでそのあたりも吸収できるみたいな感じで、最高のテーママッチングだったと思います。

メンターは、あのデータ基盤の分野では日本で第一人者といっても過言ではない @yuzutas0 大先生で、とにかく最高のやっていきがあるチームでやっていってました。とりあえずブログを見ると知見が一杯あって便利です。なんでもできるのかこの方は……?

インターン参加記によくある困難とそれを乗り越えた系の話

パイプライン、結構色々なツールが絡んでくることが多く、そのあたりをいかに上手く結合させるかみたいなところでアーキテクト力が養われたと思います。

また、インターン感想記事では、「○○を検証しました!」「こういうの作って便利にしました!」みたいなのは比較的よく見かけますが、実際にプロダクションに載るところまではいかないことが多いと思っていて、今回はそういうの無しでちゃんと載せるぞみたいな意志でやっていました。

ただ、スケジュール感は破滅していて、当初やるぞって言っていたことの下準備に日程の9割が費やされてしまいました。しかし本題は2日で終わりなんとか間に合った。流石に見積もりが甘すぎた。とはいえ単純作業は少なく、終始創造的なことをやっていた気がする。Toil (学びのない繰り返しタスク) じゃなくて最高。

あと、やっぱりインフラをやった上での感想として、オンプレ系の知見はかなり活きました。その他に基礎的な知識はどこでも使えて便利。(例: シェル芸)

読み書きした言語は (J)Ruby, Python (2/3), Groovy, Java, SQL, Shell Script, node.js とかではちゃめちゃマルチスタックな感じです。無駄に手を広げておくと何かと役に立つことが分かりました。 特に個人的には Python はクソだと思っていて触りたくなかったんですが、逃れられずにやっていたらいつの間にかアレルギー症状が収まっていたので最後の2日に役に立ちました、でもクソだと思う。実用的だとは思いますが……

結果として、だいたい全部をゴリゴリやったらなんかだいたい全部できました。 惜しいことに実運用に乗せて切り替えまではいかなかったんですが、並行運用までいったので多分近いうちにいい感じになると思います。(よろしくお願いします。) (追記: 切り替わったらしい)

環境

最高の一言に尽きます。

これは面白イベントなのですが、インターン前日にメンターからメッセージが来て、メンター「MacBook ProがUS配列なんだけど」私「じゃあJISキーボード持ってきます」メンター「(本体とキーボードが分離しているのは)疎結合でいいですね????」みたいな会話がありました。既にこの時点でコミュニケーションが雑になっていて、疎結合は最高ということが分かる。(???)

そして、やはり有名なインターンに来る学生はやはり優秀な学生が多い。ここでもまた知り合いに会ってしまい、世界は狭いなと思いました。インターン生交流イベントもあって、特に参加を強制されて面倒、という感じではなく普通に楽しい。良かったですね。

ところで社員証のストラップをこれにしたらモチベーションが主観で3割ぐらい上がりました。ぜひblessing softwareの一員としての意識を持って仕事をしましょう。

[amazon_link asins='B01NAIDKN5' template='ProductAdMonora' store='monora09-22' marketplace='JP' link_id='eef6befd-3348-11e8-b166-018151754d97']

コミュニケーション

これは心理的安全性が確保されていました、の一言で済む話です。伝われ。

メンター (@yuzutas0) が最高なのは上にも書いたんですけど、上手く文脈の疎通ができて良い意味で雑なコミュニケーションが取れるというのはとてもいい環境です。 とくにオンボーディングはよく整理されていて、上司力の高い上司でした。多分僕も部下力を発揮したと思う。

https://twitter.com/sukukyon/status/964476088775667712

ところで Slack のアイコンを普段使っているもの (凪のあすからの汐留美海)に変えたところ、メンターに「版権アイコンじゃん(笑)」と煽られたのはまだ根に持っています。

マジでほぼ1~2日に1回の頻度で1on1をして、予想される不安から取り除けるものは取り除いたり、設計についてアドバイスをもらったり、レビューで突っ込まれたりdisられたりしてとにかくコミュニケーションの密度は高かったです。

Slack は雑に #times_kyontan に延々と思考を書き連ねていたら割と色々な人が絡んでくれて議論もできて技術的雑談ができる環境最高だなって思いました。 流石RTC 、噂に聞く色々な人がいるなと……

やっていきがある環境って多分こういうことなんだなって思います。

生活

明日から毎日11時にくるぞ

12:25出社予定です、すみません……

14:55出社予定です

14:30ごろ出社予定です

流石に最後に「もっと早く来られると良かったね」とか煽られるかなとドキドキしてたんですけど、特に何も言われませんでした……

(そういえば事前面談で「朝弱いんですけど、遅くてもいいですか」「日が昇っている時間に出社していれば」「なるほどね」みたいな会話をした気がする。)

結果的に、毎日座れる時間に通勤して、いい感じにやって、座って帰って寝る、みたいな最高の生活をしていました。 東京駅直結(ホーム→自席が5分)は最高でしたね。

ちなみに最終日はグリーン車で通勤しました。これはその様子です。

https://twitter.com/sukukyon/status/978810821672251392

その他、なんかバランスボールが転がっていたので1週間ぐらいその上でふよふよしながら仕事してました。 さすがにふよふよしすぎて怒られるかなって思ったけど最後まで怒られは発生しませんでした。

夜に、疲れたのでルートビアを買ってきて飲んでいたらメンターに酒を飲んでると思われていが特に突っ込まれなかったというイベントもありました。それは流石に突っ込んで欲しかったですね。

あと、転がっていた Thunderbolt Display を使ったところ、遅延が少なくて割と最高なんですけど、グレアでかつ画面の位置が高く首が疲れたので、結局 MacBook Pro の解像度を 2560x1600 とかにしてやってました。

飯

飯の話が既存のブログ記事でされているからと言って飯の話をしないとは言っていない。

ランチは毎回色々な部署のすごい人と話すことができたのですが、私がインターンで一番上手く使えなかったのはこれに尽きると思います。人から話を引き出すのが下手すぎるので今後なんとかしたい。

画像を並べ立てても品がないのでもっと品がない感じで行きます。

https://twitter.com/sukukyon/status/966159507473747968

https://twitter.com/sukukyon/status/966882662597017601

https://twitter.com/sukukyon/status/967967280385724417

https://twitter.com/sukukyon/status/968341438051299330

https://twitter.com/sukukyon/status/971261973248839682

https://twitter.com/sukukyon/status/971613843309891584

https://twitter.com/sukukyon/status/973422432454369281

https://twitter.com/sukukyon/status/978134404039168000

あとは最終成果発表スライドから1枚引用します。

最終成果発表で飯の自慢をする時間がなかったので、上のスライドみたく全部のスライドの背景に飯やらなんやらを積めたんですけどあまり気付いてもらえなかったらしい。

 

まとめ

最終成果発表ですが、あまりにも話したい内容が多すぎてスライドが163枚になりました。3分ぐらいオーバーしました。ダメです。 とりあえず一番ウケた(と主観的には認識している)ので良かったとします。

(注: 優勝という概念はない)

今回は全能感を持ってやっていくというのを意識して立ち振る舞っていて、とにかく現状の構造だったり、社内ドキュメントだったり、場合によってはソースコードまで片っ端から目を通すようにして1ヶ月を楽しみました。

個人的には全能感があると、不安が減ったり精神的なハードルが下がってストレスも減ったりで良いことづくめなので、良い振舞いだったなと。

これは簡単なようでいて、そもそもそういったものが当たり前のように文書化されて構造化されている環境というのがそもそも恵まれていて、そういうところも含め最高でした。

統括

最高のインターンで最高にやっていきを発揮して最高の成果を出しました。でも色々惜しいのでやっていくことにします。

そういえば今回のインターンの報酬で Sublime Text 3 のライセンス買うわwwって開始時に言ったの思い出したので買いました。 日頃お世話になっているし今回も生産性が100倍ぐらいになりました。

お世話になったメンターやチームの皆様、関連部署の皆様、人事の皆様ありがとうございました!!

 

read more »

こんにちは、kyontanです。最高のインターンに行ってきました。 .+のインターンに(参加(し(まし)?た)[…]

2018年3月あたりの今日このごろ

雑記

こんばんは。

まさか2018年最初の記事が確定申告の記事になるとは思いもしませんでしたが、なんか生きてます。

最近は人生の楽しみを増やすみたいなことを考えていて、幸福とは……みたいな抽象的な問題を具体的に解きたい。 これは就職活動をしていて「将来何がやりたいの?」とか聞かれるからというのももちろんありますが、大学が春休みになり、インターンに行ったりすると環境が変わったり生活が変わるわけで、そうなると考える対象や思考の対象もがらっと変わり、その時に何を幸せに思ってるんだろうなあ、みたいな感じのことをふと思ったからです。

とりあえず諸事の進捗状況について

就職活動

まだやってる。まだやってるのか……と自分でも思いつつあり、最近は5月ぐらいまで続くんだろうなと思い始めた。続くのか……? 逆求人は飽きたのでやめました。というか数を追う気はないです。

単純にどこまでいけるんだろうみたいな感じでスコアアタックを始めたみたいな感覚が近いです。企業をスコアで計るなという意見には同意します。

ただ、どの企業に行ったら良いのか全く分かっていない。

多分どこでも死にはしないけどそれは果たして自分にとってアドであり幸福ですか……? みたいな気持ちになってしまう。 多分どこでも幸せにやれるしアドもあるんだよな……とは思っている。

方向性が近い企業ばかりなのであまり差異が出ないのかもしれない。

ソフトウェアエンジニアがやりたくて、インフラも好きだけど別にインフラだけがやりたいわけではない。とはいえインフラってやること広くて割となんでもできるのでそれでいいな、とは思っている。(グロースハックみたいなのはインフラの領域ではないと思うけど)

英語が流暢に喋れたらな、と今更後悔し始めた。なんとか読み書きリスニングができるのと思ったように議論ができるのは程度が違いすぎる…… なんか考えます。

アルバイト

やらなさすぎてそろそろ怒られそうだなって思っている。やります????

アルバイト先で作っている Arukas という Docker ホスティングのサービスがあり、ようやく正式サービスのリリースが出ました。

ここまで長かった……

インターン

やっている。

某所でインターンとして6週間いる予定。 尊敬できる人がめちゃくちゃいてはちゃめちゃにいい環境だと思っている。心理的安全性を爆速で獲得した。

朝の時間が縛られないのでとにかく最高しか言うことがない。とにかく朝が遅いと幸福な気持ちになる。

しかし時間は圧倒的に足りておらず、あと4営業日しかない。とにかく成果を出すぞという気持ちでやっています。

ところでこのインターン終わったら次のインターンがあるのですが、果たして……

エンジニアリング

やってる

最近はクラウド?っていうのを色々さわっていて、べんりですごい。

とりあえず GCP 色々触ってるんですけどやっぱり便利ですね。とはいえ僕はその中身に関心がある……

とにかく無限にスケールするお気持ちを感じるが無限にスケールされると一瞬で課金死してしまうのでやめて頂きたい。

オタク

あまりやっていない。

とにかく今期アニメ面白いはずなのに全然見られていない。家に帰って即座に寝る生活を繰り返している。

CD とかは買っていて、三ツ星カラーズのOPが最高。

あとは久々に続刊の溜まっている漫画を買った。超電磁砲とのんのんびより。 超電磁砲はとにかく良くて、可愛い女の子が俺TUEEE な感じで最高。

薄い本はちょこちょこ買ってる。スク水の薄い本は増え続けていますが置き場所がない。

箱はひとつ屋根の、ツバサの下でを買った。1ルートやったけど世界観とCGと音楽とキャラクターは良くてシナリオは雑でした。寮の部屋がブッキングして同居したいな…… あおかなを再インストールした。スタート画面で感動してまだ進められていない。 とりあえず体験版をオートプレイする動画が公式にあってリピートし放題で便利です。最後まで用意されて欲しい。

明日は深崎暮人展でいっぱい散財します。ところで初日に出海ちゃんのタペストリーが完売したらしくてとてもつらい。

酒

いっぱいやった気がする。

手違いで合コンみたいなやつに連れて行かれてHPがマイナスになったこともあった気がする。

美味しいお酒を気心の知れた人間と飲むみたいなのが好きです。毎日それだとアレかなとも思わずともないけどそれは将来の不安みたいなやつです。

旅

3月の最初の週に大阪に行きました。主な目的は恋×シンアイ彼女の聖地巡礼です。星奏ちゃんの抱き枕も出ますからね。 ところで上の Twitter Moments を oEmbed 展開したら長くてビビりました。こんなものを展開するな。

来週は北東方面に行きます。その次は北に行く予定です。

西の温泉地にも行きたいので頑張って検討している。

その他

同期がたくさん留年や休学や留学をしていて自由な世代だなと思っている。

 

とりとめのない感じになってしまった。近況報告だしこんな感じで良いでしょう。

こんばんは。 まさか2018年最初の記事が確定申告の記事になるとは思いもしませんでしたが、なんか生きてます。 […]

主に学生やアルバイト向けの確定申告一問一答

お役立ち情報

こんばんは。確定申告は終わりましたか?

とりあえずこの記事のヘッダにでも書いておきたい情報なんですが、「103万行ってないのに所得税取られたけど確定申告の期間過ぎたからいいやって思ってる人はまだ間に合うからやってないならやってみてくれ!!」です。

一介の学生であったはずなのですが、掛け持ちをしていること、そして業務委託契約の名ばかりインターンシップの報酬により年末調整を断られ、泣く泣く確定申告をすることになった kyontan です。

そんな確定申告初心者な自分向けの情報をまとめました。おそらく、似たような境遇の学生の方や、その他の103万円という数字に震える方が気になるであろう情報になっているかと思います。

(正しい情報になるよう努めてはいますが、自分自身、専門家ではないため誤った情報を含んでいる可能性があります。間違いがありましたら、ご指摘いただけますと幸いです。)

記事中の税率や税額のソースはできるかぎり示していますが、税制は毎年何らかが変わっています。この記事の内容は記事の更新日時点での情報とお考えください。 (ちなみに150万になるとか色々言われてますがあれは配偶者控除の話で扶養者は関係ないと思っています。)

また、個人事業主として開業届を出している場合については今回の記事ではスコープ外としています。業務委託契約の収入等と書いた場合、雑収入としての業務委託による報酬とお考えください。

以下、一問一答形式です。

2018-04-09追記: 2017/3/31 の国税庁サイトのリニューアルに伴いURLを修正しました。

read more »

こんばんは。確定申告は終わりましたか? とりあえずこの記事のヘッダにでも書いておきたい情報なんですが、「103[…]

2017年まとめ

雑記

こんばんは。この記事は生放送ではありません。

2017年もコミケで終わります。多分2010年ぐらいからコミケで終わっている気がします。 気になったのでコミケ遍歴を†封印の書†から過去を掘り返してみました。 初参加は忘れもしない2010年の冬コミ、C79でした。この時は1日目のみの参加だったようで、アニプレックスに並んで俺妹の桐乃セットを買ったのを覚えています。今もたまにTシャツ着てますね。

その次がなかなか記憶になくて、漁った所どうやら2012年の冬コミ(C83)らしい。夏コミとか行ってそうだったんですけど行ってなかったんですね。 そこからは毎回行っていて、C84に一度始発で行って轟沈してからは二度と始発では行かないぞと誓っています。

そこからは毎回ほぼ3日間参加していて、今回のC93で11回目の参加になるようです。

C90ではコミケにサークル参加したこともありますが、毎度スペースや誘導の変化を見ていると時代を感じたり感じなかったりします。 最初の頃は企業は西34だけでしたが、C90の前後では企業が2日間だけになり、3日目は西34がサークルになったりしました。そのときに自分のサークルが西34だったからです。

コミケは複数人で行くときのコミュニケーションが難しいなとしばしば思います。ファンネルとか言うらしいですね。僕はそういう規模で参加したことはないです。欲しいものは欲しいですが…… どうでもいいことを書くと、東1-3は外周が"A"で島が"B"~"サ", 東4-6は外周が"シ"で島が"ス"~"レ"、なんか多分前々回ぐらいからある東7は外周が"あ"で島が"い"~”の", 東8は壁が"も"で島が"ま"~"め"です。西34はなんかアルファベットでした。難しい。特に東78のひらがなは難しくて、音声コミュニケーションを破壊しに来ます。そもそも"シ"と"C"とか難しいんですが。それを言うと西もアルファベットで破壊しているんですが、西とか東とかをプレフィックスで言うので破滅しないことが多いです。 とにかく良いツールで解決していきたいがSlackはコネクションが貼れないことがしばしばあります。僕はこの3日間は大半がメールでした。偉大なそりゅーしょん。

さてどうでもいいことを書いていたら23:55らしく、爆速で統括をします。

今年の変化点は3月にシリコンバレーに行ったことで、とにかくそこで思考が変わって面白いなと思ったり、人間重視になりました。 あとは12月に就活の真似っ子をして破滅しました。もう何も信じたくないという気持ちがあります。

全然統括できていないですね、来年も色々動きがあると思うのでやっていきましょう。

皆様1年間お世話になりました。来年もどうかよろしくお願いいたします。

 

これは2017年最後のツイートです

http://twitter.com/sukukyon/status/947482473742528515

こんばんは。この記事は生放送ではありません。 2017年もコミケで終わります。多分2010年ぐらいからコミケで[…]

就職活動中? / 逆求人の感想 2017

雑記

こんばんは。kyontan (就職活動中)です。 括弧書きをするとそれっぽいですね。

この記事は 12月24日 に公開される予定ですが、とりあえず色々思うところもありこの部分は 12/11 に書いています。多分どんどん加筆するので長くなるでしょう。 もし24日にこの記事が公開されていたら、それは、 whywaita Advent Calendar 2017 が24日目であり、25日目には whywaita が記事を書くということです。 おそらく誰も遅刻しておらず、無事にクリスマスが迎えられるのでしょう。多分 WHITE ALBUM2 をプレイするといい感じに心が折れていいと思います。僕は多分まだクリアしていません。

さて、記事のURLにもありますが絶賛就活中です。本当に?

自分史上最も性格の悪い文章だという自負があります。途中で奢っていたりマウンティングがあったりします。しかもそんな文章が10000文字以上あります。 気持ち悪いと思ったらすぐにブラウザバックを推奨します。ブラウザバックって最近見ないですがご存知ですか? (→出口)

キーワードは「承認欲求」です。企業よりは人に承認されたいですね。とりあえず Just Because! の10話を見てください。

ちなみにこの記事で述べている過程については全部具体名含めて色々とメモを取っており、このページ (関係者向け) に色々書いてあります。見たい人は入部してください。ところでこの記事は UEC Advent Calendar とは関係ありません。

最後までお読みいただければ大して真面目にやってないな / お前クソだな、ということは伝わると思います。 真面目に就活をしているかは怪しいですが、とはいえ雑にインターンをしてそのまま就職したり、いわゆるTwitter就職/VR転職なんかをする能力/気持ちもないのでそれっぽいフローを実行してみています。そんな話です。

つまるところ、逆求人を一度やってみたかった人間が逆求人をやったので各サービスの雑感を書いただけです。 どのように振る舞ったかというロールプレイングの一例があることにより、これを誰かが読んで活かして頂けたら面白いかなとも思うので書いています。

 

read more »

こんばんは。kyontan (就職活動中)です。 括弧書きをするとそれっぽいですね。 この記事は 12月24日[…]

時給の上げ方 2017

雑記

こんばんは、kyontanです。お金を溜めて早く温泉付き一戸建てで暮らしたい。

この記事は whywaita Advent Calendar 2017 の17日目の記事です。枠が埋まっていてめでたそう。whywaita 先輩、元気ですか?

why「お疲れのところ恐縮ですが早く書け」

お元気そうでなによりです。

16日目は jackaleさんの 最後にwhywaitaと会ったのいつだっけ... - That Can でした。TUATでは最近Crystalが流行っている気がします? (N=2) 僕もやっていきたいですね。

今は完全に頭が回っていないので雑な文章を書きます。@whywaita が時給の上げ方について話して、と言っていた気がするのでそういう話をします。

過去にもこんな記事がありましたし、もしかしたら @whywaita とお金は切っても切り離せない関係なのかもしれません。

私は現在技術系のアルバイトをしています。技術系のアルバイトの良いところは何でしょうか? そう、好きなことをして勉強ができる上に、お金ももらえるというところですね。接客業をやったことがないので偏見があります。郵便の仕分けは最適化していたら楽しかったですが今思うとディープラーニングでなんとかしてほしい気がします。

@whywaita 先輩がどこで働いているのかは定かではないのですが、私は今はインターネットの会社とインターネットの会社でアルバイトしています。掛け持ちです。インターネットってすごいですね。

その他にも退職エントリが2件あることから、今の会社がそれぞれ3社目と4社目になると推測できます。(この夏のインターンを足すと5社になります)

最近インターネットを眺めていた所、とある知り合いがある会社へ就職する、というインタビュー記事を見かけました。就職するというだけでインタビュー記事になるのはすごいなと思いますが、記事中では "4社でインターン/アルバイトをしていた**「ジョブホッパー」**"として紹介されていました。そう考えると、私もジョブホッパーなのかもしれません。個人的にはあまり良い言葉だとは思っていないですが……

時給の上げ方は自分でも良く分かっていないのですが、皆さんも思う所があると思うので、とりあえず晒します。

この図を見ると、色々やった形跡がありますね。しかも掛け持ちしていることが良く分かります。 (なんと凡例にない色のプロットがあり感動しますがよしなに読み取ってください。)上がる会社もあれば上がらない会社もあります。最近は1年以上額が上がっておらずちょっとつらいです。ちょっとだけ。

もちろん会社によって評価体系も様々ですが、アルバイトだとそもそも給与交渉の機会もなく、突然「契約書の更新だからサインしといてね」と言われることもしばしばです。

「上げてほしいな〜」という文脈の話を一言話しただけで上がったこともあります。そんな話を上司にするのは強気ですって? ええ、当時は立場的に強気でしたね。そりゃ突然辞めたら案件進まなくなるような仕事をバイトがやっていたんですから……

概して、時給を上げる(下げる)には、大きく「転職をする」と「給与交渉をする(上長に評価される)」の2つがあると思いますが、そのどちらもを経験した身としては、おそらくアルバイトでは転職した方が上がりやすいです。 特に、エンジニア職のアルバイトは東京では比較的募集している所も多く、引く手はあまただと思うので、うまくやるとトントン拍子に上がるのかもしれません。うまくやるのがポイントで、うまくやらないと上がりません。図からも明らかですね。

転職では人間関係をうまくやりましょう。僕は下手なので遺恨を残してしまいがちです。そんなのどうでもいいという考えもありますが、平和であることに越したことはありません。僕は最近どうにか和解しました。本当かな……

ちなみに筆者は今のところ転職する気はないです。書いておかないと深読みされそうで怖いですね。 お金も大事だけど本当に好きな働き方ができる上に恵まれている環境はなかなかないです……

また、今思うと、「言い値でいいよ」と言われたとある会社でもっと言っておくべきだったのかもしれません。そんな後悔もなきにしもあらずですが、当時は逆にあの額にプレッシャーを感じてしまい色々あったので、やはり難しいですね。正当に評価されていきたい。

ちなみに、周囲の話を聞く限りでは1500円/時以上の額はなかなか耳にしないのですが、それは月給換算すると分かりやすいですね。バリューを出している人たちがもっと貰っているのも聞いているので、バリューを出せると良いですね。

短くなってしまいましたが、僕は自分で作った図を眺めて心が荒んでしまったので許してください。

@whywaita 先輩はどんなお考えをお持ちですか? また機会があったらお話してくださいね。

明日は @yu_ki_kun_1 さんです。あれ、毎回 @yu_ki_kun_1 さんでは……?

 

こんばんは、kyontanです。お金を溜めて早く温泉付き一戸建てで暮らしたい。 この記事は whywaita […]

CoreOS で Docker Swarm クラスタを作ってみた

Infrastructure

こんばんは。kyontanです。JobHunting 活動は順調ではないので頭を抱えています。

寒いです。12月10日です。10日ということは、 whywaita Advent Calendar 2017 の10日目ということです。なんとあと1枠らしいです。

9日目は @kadokusei (~= @hyr3k) さんで 体重 - /var/log/ でした。

ところで文脈もなにもないですが Just Because! が良いです。小宮恵那さん……

さて先日、 Twitter を眺めていたところ 「真っ赤な“1/4Uサイズ”のブレードサーバーが税込4,980円で大量販売中」  という記事が流れていました。 Core i5-2520M@2.5GHz / RAM2G / Diskless という構成ですが、Intel の GbE NIC x4 があるなかなか変態なマシンです。5000円だったのでつい3台買いました。IPMI もあります。ちなみに1台当たりで RAM が 4GB でした。

kamijin_fanta さんという方がこれに VyOS on Hyper-V をやっている記事があるので、こちらもご参照ください。

赤鯖にVyos入れて最高のインターネッツを手に入れた

これは A.T.WORKS というメーカーの国産サーバで、謎です。とりあえずドキュメントとかファームウェアの更新は公式ストアのダウンロードページに転がっています。

何故かシャーシも付いてきたので適当に突っ込みます。10台入るので、あと7台追加できますね。とはいえ部屋の室温で冷却するにはこの程度の密度が限界かと……

画像の左下にある赤いやつがそれです。雑ですね。周りも汚いですね……

さて、ディスクレスとはいえ開けてみると SATAポートもディスクベイもあるので、2.5インチのHDDを買えば普通に使えるでしょう。 しかし先立つものがなく、しかし他のサーバは余っているのでネットワークブートさせて遊んでみることにしました。

PXE とは

PXE とは…… ざっくりと説明するとネットワークブートのための仕組みの1つです。 NIC に書き込まれたPXEブートローダが、ネットワーク上のサーバから OS のカーネルを取得して起動する方法です。

基本的には起動時に DHCP でIPアドレスを取得する際に、サーバが IPアドレス等の情報と一緒にカーネル等が置かれているサーバ(TFTPサーバ)のアドレスを返すことで実現されます。 いわゆる大量のPCを管理する手間を減らしたい(~ シンクライアント化したい) 大学なんかでよく見かけますね。MMA部室の端末でも同様の仕組みを採用しています。 もちろん一般的な誤家庭でも、DHCPサーバとTFTPサーバ等を立てれば実現できます。近年では PXE を発展させた iPXE などもあります。こちらだと例えばカーネルを通常の HTTPサーバから取得するようにできたりします。便利ですね。 実際の実現にあたっては、 「PXE 構築」なんかでググって頂ければ山のように日本語の資料がヒットしますので割愛します。

Container Linux

今回はこれを用いて CoreOS Container Linux を起動させ、自動的に Docker Swarm クラスタを構築したいという話をします。

Container Linux は CoreOS 社が開発している、コンテナ基盤のための軽量Linuxディストリビューションです。docker や etcd と言ったコンテナで用いるソフトウェアがデフォルトで入っているほか、fleet というクラスタマネージャ (というか分散 systemd) なんかがデフォルトで入っています。 CoreOS 社は他にも Docker Registry の Quay やコンテナランタイムである rkt や cloud-config の代替を狙っている Ignition, エンタープライズ向け Kubernetes こと Tectonic の開発なんかもしていますね。

もうお察しかと思いますが、 Container Linux には fleet というクラスタマネージャがあり、更に Tectonic があります。つまり、 Docker Swarm の文脈にはかすりもしません。イケイケな皆さんは Kubernetes を構築すると便利だと思います。 (実は Kubernetes クラスタを構築しようとしたらオンメモリファイルシステムでは容量が足りなかったので Docker Swarm でお茶を濁しています) CoreOS は今回のよう物理ホスト(ベアメタル)に対して直接プロビジョニングをするためのプロダクトも用意しています。 Matchbox です。使ってください。 今回は使いません。

起動してみる

CoreOS はもちろん PXE での起動に対応しており、簡潔なドキュメントがあります。 これに従えば簡単に起動までは行なえます。やってみましょう。

最終的なディレクトリ構造としては以下のようになります。 /tftpboot は適宜 tftp のルートディレクトリに読み替えてください。また、 pxelinux.cfg/default の内容は下に書いてあります。

/tftpboot
├── coreos
│   ├── coreos_production_pxe_image.cpio.gz
│   └── coreos_production_pxe.vmlinuz
├── pxelinux.0
└── pxelinux.cfg
    └── default

default coreos
prompt 1
timeout 15

display boot.msg

label coreos
menu default
kernel coreos/coreos_production_pxe.vmlinuz
initrd coreos/coreos_production_pxe_image.cpio.gz
append coreos.first_boot=1

さて、対象のマシンは起動したでしょうか? 手元では30秒ほど OS の読み込みに掛かったあと、OS本体が約4秒で起動してくるのが観測できました。速いです。

ただ、おそらくログインもできず、ssh もできないでしょう。直接本体に接続されている端末にログインしたい場合は、ドキュメントにある通り、 coreos.autologin を設定すれば可能です。

実際にもうこれで fleet で遊んだりできます。この状況では、 /(rootfs) がメモリ上にあるので、メモリの空き容量分しか書き込むことができませんが、メモリが潤沢にあればこの上に Tectonic や kubeadm を用いて Kubernetes を構築したりもできるでしょう。ちなみに 4GB では足りませんでした。

Docker Swarm

Docker swarm というのは Docker 本体に取り込まれたクラスタリングの機能です。複数のノードでサービスという単位でコンテナの管理が行えます。 Docker 本体に統合されているので、Container Linux に docker がデフォルトで入っているということはそのまま docker swarm mode で既存のクラスタに join させればそのままクラスタの一員となります。 クラスタにはマネージャとワーカの区別があり、マネージャは Raft アルゴリズムで分散合意を行うため、本来であれば耐障害性のためにも3以上の奇数台を用意することが望ましいですが、今回は DHCP/TFTPにしたサーバをそのまま使います。

# docker swarm init
Swarm initialized: current node (hogefuga) is now a manager.

To add a worker to this swarm, run the following command:

    docker swarm join --token SWMTKN-1-... 10.0.xxx.yyy:2377

To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

上で表示されているコマンドを起動時に入力させればそのまま docker swarm のクラスタにジョインしてくれるでしょう。やっていきましょう。 (ちなみに、デフォルトでは docker swarm のマネージャ自信もコンテナが起動するホストの1つとなります。次のコマンドを打てばそのノードではコンテナが起動しなくなります。 docker node update --availability drain)

Ignition Config

起動時に任意のコマンド等を実行する方法といえば、あの cloud-config がありますね…… Container Linux では最近 Ignition というものに置き換えられました。直接書いてもいいですが、 cloud-config の記法で書いたものは ct (config-transpiler) というコマンドを用いて変換することができます。 ちなみにオンラインのバリデータがあって、 どちらの記法でもここでバリデーションができます。

では用意しましょう。ついでに ssh できるように authorized_keys なんかも追加できます。 ssh したくない? 確かに。 ともかく systemd unit を2つ書くだけです。ところで docker-swarm-leave.service がちゃんと動いてない気がするのでどなたか教えてください。

passwd:
  users:
    - name: core
      ssh_authorized_keys:
        - ecdsa-sha2-nistp256 ...
systemd:
  units:
    - name: docker-swarm-join.service
      enabled: true
      contents: |
        [Unit]
        Description=Docker swarm join script
        Requires=docker.service
        After=docker.service

        [Service]
        Type=oneshot
        ExecStart=/usr/bin/docker swarm join --tokenSWMTKN-1-... 10.0.xxx.yyy:2377

        [Install]
        WantedBy=multi-user.target
    - name: docker-swarm-leave.service
      enabled: true
      contents: |
        [Unit]
        Description=Docker swarm leave script
        Before=shutdown.target reboot.target halt.target

        [Service]
        Type=oneshot
        RemainAfterExit=yes
        ExecStart=/bin/true
        ExecStop=/usr/bin/docker swarm leave

        [Install]
        WantedBy=multi-user.target

 

さて、このファイルを実際に起動時に渡すためには ct で変換したり、 newc 形式のアーカイブにしたりする必要があるのでやります。

$ mkdir usr/share/oem
$ ct < container-linux.config > usr/share/oem/raw.ign
$ find usr | cpio -o -H newc -O oem.cpio
$ gzip oem.cpio

結果的にでてきた oem.cpio.gz を以下のような感じに配置します。

/tftpboot
├── coreos
│   ├── coreos_production_pxe_image.cpio.gz
│   ├── coreos_production_pxe.vmlinuz
│   └── oem.cpio.gz
├── pxelinux.0
└── pxelinux.cfg
    └── default

 

また、 pxelinux.cfg/default も修正します。は以下のようになります。 oem.cpio.gz を読ませているのと、実際にそれを参照させている部分の2箇所です。

 
default coreos
prompt 1
timeout 15

display boot.msg

label coreos
menu default
kernel coreos/coreos_production_pxe.vmlinuz
initrd coreos/coreos_production_pxe_image.cpio.gz,coreos/oem.cpio.gz
# append console=tty0 console=ttyS1 coreos.autologin=tty0
append coreos.first_boot=1 coreos.config.url=oem:///raw.ign

さて、起動させて見ましょう。マネージャ側で docker node ls とか叩けば分かると思います。 いい感じになりましたでしょうか?

あとは docker service コマンドでよしなにサービスを作ってやると、いい感じにロードバランスされたりヘルスチェックしたりライブアップデートできたりすると思います。 ポートの公開をすると、マネージャを含む全てのノードでそのポートが共有され、自動的にロードバランスされます。つまり、そのサービスのコンテナが動いていないノードにアクセスしても、内部のトンネル(VXLANです)を通ってコンテナへの疎通性が確保されます。

そのあたりは「docker swarm」とかでググると出ると思います。 nginx とかでも簡単にできますね。

ところでボリュームのマウントは癖があって、 bind なんかは各ノードのローカルファイルシステムを参照します。なので、そういったことをしたい時はよしなにやりましょう。 nfs とかを検証できると良いですね。

ちなみに再起動したりするとどんどん死んでるノードが一覧に増えますが気にしないでください。気になる時は docker node rm で消しましょう。以下がワンライナーです。

 
docker node ls | tail -n+2 | grep Down | cut -d' ' -f1 | xargs -r docker node rm"

さて、今回は簡単に Docker Swarm を用いたクラスタの構築をしてみましたが、実際により大きい規模でやろうとすると Kubernetes や DC/OS (Mesos, Marathon) なども候補に入るかと思います。 そちらについてもやっていきましょう。

ところで Docker / CoreOS をプロダクションでバリバリ使うサービスに興味のある方向けに、 こんな求人やこんな募集があります。もしご興味ありましたら Twitter 等でも良いのでお声掛けください。

では皆様、よいコンテナライフを!

こんばんは。kyontanです。JobHunting 活動は順調ではないので頭を抱えています。 寒いです。12[…]

資産管理術について 2017

生活

こんにちは、kyontanです。執筆時点での現金資産は 38558円 です。

今年も12月がやってきました。この記事は whywaita Advent Calendar 2017 の3日目の記事です。まだ10枠空いていますが、 whywaita 先輩、元気ですか?

kyontan / whywaita (@whywaita) って誰? という方もおられるかもしれません。彼と私は単なる大学の先輩後輩というだけで、それ以上の関係はありません。 それ以上の関係はないと明記すると怪しくて良いですね。ありません。 2日目は村山直紀さんの 自然気胸の話とか(その2) でした。 自然気胸、周りに発症している人が何人かいて、割とよくあるのかなと思っています。僕自身は入院したことは1度しかありませんが、なるべく健康であるに越したことはありませんね。  

皆さんお金は好きですか? 僕は好きです。たくさんあると嬉しい気がします。ただ、今の立ち回りとしては、仕事に求める要件は給与が高いことではなく朝遅いことです。あと早く温泉が家から湧出してほしいです。

将来はウン千万プレイヤーでバリキャリでイケイケになるであろう、尊敬すべき whywaita 先輩に必須のスキルはなんでしょうか? そう、資産管理術ですね。 バリキャリという表現からはまどかのお母さんである詢子さんを想起させるものがありますね。 彼は資産管理をしているのでしょうか。確か MoneyForward を使っていた気がします Dr.Wallet を使っているみたいです! (2017-12-03 13:45 追記)。貯蓄の額は知りません。とにかく寿司をごちそうしてください。

僕は詳しくないのですが、とくに最近はフィンテックとかブロックチェイン(これもフィンテックの文脈に入りますが)とかお金周りの技術進歩の話を目にすることも多いですね。家計簿サービスもその1つだと僕は思います。

私は資産管理に Dr.Wallet を使っています。家計簿アプリとしては他にも MoneyForward や Zaim がありますが、このアプリのイケているところはレシートをスマホで撮影して送信すると、店舗名やジャンル、額などを自動的に判定して登録してくれるところです。アプリもイケてて最高です。使いましょう。 (ただしディープラーニングでイケイケとかではなく、人力OCRみたいです…… 素直な解決方法デスネ)

read more »

こんにちは、kyontanです。執筆時点での現金資産は 38558円 です。 今年も12月がやってきました。こ[…]