LINE にインターンしました
インターンをしました。
概要
1ヶ月で40万円もらえます。
line-hr.jp
選考
応募→技術テスト→面接でした。技術テストで提出したのはこんな感じのものです。
github.com
github.com
前作った声優ブログの解析を少しいじって提出したりしたので(●・▽・●)終わりだよ〜かと思っていましたが、面接に通過してびっくりしました。面接ではバックエンドに興味があるみたいな話をしたと思います。
来年受かりたい人は声優ブログを題材にしたサービスを1つ作っておくことをお勧めします。
LINE内部の様子
ヒカリエの上の方にあります。
キャラクターがたくさんいて可愛いです。
あとはカフェがあって100円から120円で無限に糖分が摂取できます。キャラメルラテを頼み続けていました。
綾鷹も無料で選べます。
10円でコーヒーが無限に飲めます。カップを設置し忘れると全て虚無に消えていくので悲しい気持ちになります。
やったこと
社内アプリケーションのUI作成のお手伝い + 新規で1つ作成しました。仕事でコーディングするのが初めてだったのでコードレビューなどがとても勉強になりました。
所属した部署が韓国の方・中国の方・フランスの方・タイの方という感じで東工大も真っ青なグローバル環境だったのが結構面白かったです。
感想
今まで家で寝ている人間だったので社会的な活動ができるか不安でしたが、1か月普通に仕事できたので安心しました。node.jsの本書いたマンや趣味がリバースエンジニアリングマン、OpenJDKのコミッター(こちらは福岡)などがいて強いなあと思っていたりしました。
あなたもLINEインターンに行って強みを得ましょう。
Korean ADC Runeのお話
全世界で戦争を引き起こしているKorean ADC Runeのお話をします。
Korean ADC Runeとは
パッチ6.12でのNatural Talentのバフ以降、KT ArrowをはじめとしたLCK勢が採用しているルーン・マスタリーの事を指します。
従来のルーン・マスタリー
新ルーン・マスタリー
何が違うか
数字で言えば
- 従来
- LS・SV 2%
- AD 8.55
- AS 13.5%
- 新
- LS 1.5%
- AD 7.7 + 0.44 / lvl
- AP 3 + 0.67 / lvl
- AS 14.1%
どっちがいいのか
誤差です。
ドランを持ったAshe(AD54.74+2.26/lvl)がArmor35マンを殴ると仮定するとダメージ量・回復量は次の表のようになります。
Lvl | ダメージ(従来) | 回復量/hit(従来) | ダメージ(新) | 回復量/hit(新) |
---|---|---|---|---|
1 | 54.48 | 2.72 | 54.18 | 2.44 |
2 | 56.16 | 2.81 | 56.18 | 2.53 |
3 | 57.83 | 2.89 | 58.18 | 2.62 |
4 | 59.50 | 2.98 | 60.18 | 2.71 |
5 | 61.18 | 3.06 | 62.18 | 2.80 |
6 | 62.85 | 3.14 | 64.18 | 2.89 |
誤差ですね。
レベル6の頃にはBFが1本くらいあると思うので誤差力がより大きくなります。
ちなみにレベル3のAsheが棒立ちで殴りあうとAA13発目で同時に死にます。ASの差で新Asheが勝つかもしれませんが恐らく誤差です。
結論
誤差です。
従来のルーンは誤差レベルでサステインが多いのでレーンが楽な気分になると思います。
新ルーンは誤差レベルでダメージが出るのでLHが取りやすい気分になると思います。
GraphQLを勉強してる
GraphQLのクエリを見たぼく「すごい」
GraphQLのクエリを定義しているぼく
dotfilesを管理するツールを作ってる(現在進行形)
以前dotfilesの管理方法の妄想をしましたが、妄想を実現するためにツールを作りました。
GitHub - popkirby/chiery: manage dotfiles like collecting clovers
インストール
npm install -g chiery
使い方
- 最初にとりあえず:
chiery init
- githubからインストール:
chiery install popkirby-dotfiles/vim
この時にpostintall hookでchiery postinstall
を走らせることで、指定した感じにsymlinkが貼られます。 - 一覧:
chiery list
- 編集したい:
chiery edit vim
- パスが欲しい:
chiery get vim
手法
npmがgithubからpackageを取ってこれることと、npmの機能の一種であるscoped packageを利用して実装しています。
chieryに投げる設定はpackage.json
のchiery
フィールドに全て突っ込んでいます。installとかはnpmにぶん投げています。
edit, list, getあたりもpackage.json
のdependency
を見ているだけです。
緒方智絵里ちゃん
緒方智絵里ちゃん
JavaScriptの行末セミコロン
一種のポエムです。自分は行末セミコロンを書かない派です。
仕様
英語版はここです。
和訳
- パース中に文法上許可されないようなトークン(offending token)に出会って、かつ以下の条件のどれか1つ以上を満たしていればセミコロンを挿入する
- offending tokenとその前のトークンの間に1つ以上のLineTerminatorがある
- offending tokenが}である
- 1つ前のトークンが ) であり、セミコロンを挿入時にそのセミコロンが do-while 文の最後となるセミコロンとして扱える
- EOF
- パース中文法としては正しいが、文法の定義で "[no LineTerminator here]" が入っている場所に LineTerminator が出現した場合、パースしているトークンの直前にセミコロンを挿入する
ただし、セミコロン挿入後に空文となるか、for文のヘッダーのセミコロンになる場合は挿入しない
3番目が引っかかりやすいポイントですね。
return true;
とかの奴です。ひとまず ReturnStatement, ThrowStatement, ArrowFunction, YieldExpression に注意すれば問題ありません。
逆に挿入されなくて困るパターンとしては
a = b + c (d + e).print() if (a > b) else c = d
が挙げられています。「行頭にカッコを置かない」ことを守ればよさそうです。最近はあまりIIFEも書かないので困ることも少なそうです。
dotfiles 管理手法の妄想
例によってdotfilesをgithub上で管理していますが、どうもしっくりこないので現在考えている妄想を備忘録的に書いておきます。
現在の不満点
dotfilesの編集が面倒
できるだけホームディレクトリにファイルを展開したくないけど、いちいち vim dotfiles/vim/rc/encoding.vim
みたいに書くのが面倒。
これは vim プラグインを書いて解決するべき問題かもしれないです。
そもそもの話として、設定ファイルを分割すると編集は面倒なので、分割をやめるかもっと厳格に分割方法を決める必要がありそうに思えます。
branch を用いた変更がお辛い
例えば最近 vim が true color 対応しましたが、1週間試してみようと vim/true-color
みたいなブランチを切って vimrc を書き換えたとします。その間、tmux のアップデートにより何らかの機能が追加され、そちらも試してみようと tmux/new-feat
ブランチを切ろうとします。
このブランチはどこから生やすべきでしょうか。あとでやっぱり true color はやめようとなった場合、tmux の新規機能ブランチはどう扱うのか……みたいな話になって面倒そうです。
vim/true-color
から生やした場合、masterへのmerge前にrevertするとか、cherry-pickするとか、歴史を改変するとかはどれも辛い手法に見えます。
master
から生やすとそもそも2つの変更が共存できません。
誰か同一リポジトリでできるいい感じの手法を知っていたら教えてください。
妄想している解決方法
後者の解決にしかならないですが、手法としては homebrew とか vim-plug 系みたいなのと似た手法を考えています。
例えばpopkirby-github/vim
のようなリポジトリを作って、それをclone、所定のインストールスクリプトの実行、みたいなことをするツールを作成することを考えています。
変更時はそれぞれのリポジトリでブランチを切ればいいという考えです。
前者は考え中ですが、vim 上で :dote
的なコマンドを作ることを考えています。