アメリカで生活基盤を整える
アメリカで生活基盤を整えるためにやったことと必要だったもの。今後アメリカに移ってくる人は参考にしたりしなかったりしてください。
参考文献
ktdisk.hatenablog.com 家や車の契約、SSNの申請などかなり細かくログを書いてくれているブログで、かなり便利なので読んでおいたほうが良い。
移住時の自分の状況
- 到着日:2018年1月6日(土)深夜
- 移住先:Austin, TX
- ビザ:L-1 Blanket
- 勤務先:Indeed.com
- リクルートホールディングス籍で2015年4月に入社し、2017年6月まで勤続した後に2017年7月にIndeed Japanへ移籍。子会社なのでL-1 Blanketの要件を満たしている(ということになった)。
- 住所は決めず、ホテルに泊まりつつアメリカに着いてから探す戦略
- 三井住友銀行のVisaカード所持(口座にくっついてるやつ)
- 未婚
日本を出る前にやったこと
- 国際運転免許を取得する(正確には、昨年の出張時に取得したやつが有効なのでそのままにしている)。
- SIMフリーの携帯を用意する(Google Pixel北米版を上述の出張時に買った)。
- ANA Card USAを契約する(Mailing Addressは会社の住所を入れた)。
アメリカ駐在の方へおすすめ。アメリカのクレジットカード - ANA CARD U.S.A.
電話番号の取得(重要)
どうせPixelなんだしProject Fiでもいいかと思ったのだが、SIMが到着するまで1週間くらいかかるらしく、そんなに待つのもなぁと思って近所のBest Buyに行ってVerizonのSIMを買って挿した。説明書のとおりにWebで色々手続きすれば開通するが、iPadで進めていたらクレカ認証のところでJavaScriptがうまく動かず詰まった。PCを使おう。
電話が使えるようにしておくのは重要。アメリカの人々は雑で色々な手続きが行き当たりばったりで行われることや、こちらも日本から移動してきたばっかりで社会的な保証がなく、通常のフローで事務処理できないことが多いため、電話で相談したり確認したりということが多くなる。
銀行口座
必要だったもの:パスポート、国際運転免許証、(クレジットカード)
週末は開いてなかったので、平日を待ってから近くのWells Fargoに行った。Checking AccountとSaving Accountを両方開くことを勧められるので、そのようにした。Checking Accountは小切手やデビットカードの引き落としの対象となる口座で、Saving Accountは普通の預金口座らしい。
住所はホテルの住所を差し当たり書いておいて、後で変更するということですんなり通った。あと外国人なので日本での住所(信用情報の代わり?)を聞かれて、実家の住所を書いた。住民票を実家に移さずに直接海外転出の手続きをしたため、国際免許証に書いてある住所と違って少し揉めたが、そんなん言われても実家の住所とか今すぐ証明できんし……と言ったらまあしゃあないねという感じで通った。クレジットカードも一緒に作れないかなと思ったが、流石にSSNもなしで作るのは厳しいっぽく、代わりにデビットカードを作ってもらった。ANAカードがちゃんと届けばまあ問題はないはずだけど、念の為。
デポジットが各25ドル、合計50ドル必要だが、クレジットカードでも払えるので日本のカードで支払った。
口座さえ開いておけば日本からオンラインバンキングで送金できるかと思ったものの、三井住友銀行は日本で別途申し込みをしておかないと海外送金はできないようで、後述の家を借りるときに詰んだ。結局親に頼んで海外送金してもらったものの、資金の出処の証明だの、海外での受取人が存在する証明だのを要求されてかなり面倒だった。そもそも三井住友銀行も、送金先口座を登録するときに審査が入るなどと怪しい文言が書かれているため、一度海外に移住してしまったら日本の大手銀行はほぼ便りにならないと思ったほうがよさそう。楽天銀行や新生銀行はマシなサービスを提供しているらしい。
家
必要だったもの:パスポート、銀行口座、雇用契約書(雇用証明のため)、最新の給与明細
ルームシェアする予定の同僚が一週間遅れでくるので、それを待って家探しをした。条件を指定して物件を検索できるZillowというサービスを教えてもらっていたので、このサービスで適当に当たりをつけて内見を申し込んだ。
1/14(日)に2件ほど回った後、実際に見るまで判定が難しいのと意外と時間がかからないことに気付き、翌日は5件の予約を入れた。いくつか良さそうな物件があったのだが、結局一番最後に行った一戸建てが一番住みやすそうだったので即決した(余談だが、ここは内見の予約をWebで飛ばしても返事がなく、電話を掛けたら折り返しのSMSで根掘り葉掘り情報を聞かれて辟易し、途中で投げ出そうかと何度か考えた。実際に会ってみたらエージェントもオーナーもいい人だったので、SSNも持たない外人は色々難しいんだろうなぁと思った)。
家賃は月$2,750で、通常は家賃と同額をデポジット(敷金のようなものだけど、基本的には家賃が払われなかったときのための保険)として払うところ、クレジットヒストリーがないため倍の$5,500を払うことになった。これが意外と面倒で、銀行に相談しても通常の手段では送れないと言われ、結局Bank Checkという引き出した額を直接小切手にしたものを発行して支払った(後で調べたところ、Wire Transferという仕組みを使えば支払えるっぽく、こっちの説明が悪かったか、銀行員がポンコツだったかのようだ)。
電気、ガス、水道、インターネット
必要だったもの:パスポート、賃貸契約書
家を借りた後、インフラの契約をすることになった。電気と水道は同じAustin Energyという会社がやっており、ガスはTexas Gas Service、インターネットは複数あるものの、家主にGrandeという回線を勧められたのでそれにした。一番簡単だったのはガスで、住所とパスポート番号だけですんなり契約できた。Austin EnergyはSSNがないと電話では契約できず、オフィスまで出向くことになったが、特にトラブルもなくすんなりと終わった。GrandeもWebフォームからだとSSNか運転免許証番号を求められたが、電話したら別になくてもいいよということになり、無事に開通できた。
社会保障番号(SSN)
必要だったもの:住所、パスポート、I-94(入国証明書)
晴れて住所を取得したため、社会保障番号が取得できるようになった(ホテルの住所でも可能かもしれないが、ダメという記述をどこかで読んだので見送っていた)。Webサイトを見るとBirth certificateを出せなどと不穏なことが書かれているが、パスポートが大体のことを証明してくれるので特になくてもよい。必要な書類を持ってSocial Security Officeに行き、フォームを記入して待っていれば番号を呼ばれるので、適当に提出して終わり。1時間半くらい待ったが、提出自体は書類を全部見せたら何一つ質問されず、7〜10日でSSN Cardが届くよと言われて終わった。
提出が1/24(水)だったので届くのは2月かなぁと思っていたら、1/30(火)にはもう届いていた。こういうのにしては早い。
自動車
必要だったもの:住所、パスポート、SSN、国際免許証、最新の給与明細、賃貸契約書
家もSSNも揃ったので次は自動車を手に入れる。あまり自動車のスタイル等には興味がないので、適当にいくつかのディーラーで試乗して良さそうなものを買おうと思っていた。ところが近所にあるMazdaのディーラーで、3年くらいしか住むつもりがなくて、そんなに長距離を運転するのでもないならリースの方がいいよと言われたので、まあ確かになぁと思い、試乗したMazda 3のリースを組むことにした。メンテナンスも無料で受けられるし、アメリカを離れるときに売却のことを考える必要もない(買い取りたければ買い取ることもできる)。
試乗は国際免許証で問題なくできた(テキサスの法律や保険の関係で、テキサスの運転免許を持っている人が同乗する必要はある)。リースの開始にあたっても、冒頭で紹介したブログの人は国際免許証ではダメだったようだが、テキサスはゆるいのか国際免許証で問題ないと言われた。自動車保険は適当に検索して出てきたProgressiveという会社を使った。オンラインで申し込んで即日有効になる。運転歴がほとんどないので、半年で約$1,600というめちゃくちゃ高い金額になってしまったが、日本でも運転してないしどうしようもないだろうと思って諦めた。
クレジットカード
必要だったもの:(SSN)
上述の通り、クレジットカードは日本を出る前にANA Card USAを契約しておいた。入国予定日として連絡しておいた1/6(土)にはメールで審査開始の案内が届き、1/17(水)に受け取った。会員用ページにアカウントを作る際にはクレジットカード番号に加えてSSNの下4桁を本人確認のために要求されるが、登録時にSSNを渡していない場合は0000を入れると通る。最初から限度額が$10,000あり、現在まで半月で$3,500程度使っているが、つつがなく支払えている。
SSNを取得したら、ANA Card USAのサポートフォームからSSN Cardのスキャンを送ると登録してくれる、
2018年の目標
去年は怠惰すぎた。
アメリカで生き残る
早々にオースティンへ行ってしまうので去年とかなり状況が違う。生き残りたい。とりあえずライフラインの整備でミスらないといいですね……。あと英語がもっとうまくなりたい。
アメリカで太らない
最近太ってきたので、このままアメリカでさらに運動しなくなるとヤバい。ちゃんとジム行くとかして太らないようにする。
アニメや映画を10本見る
映画館に行かずとも、何らかの動画サービス等でちゃんと映像作品を見たい。教養。
本を読んでログを残す
小説10冊は達成できなかったものの、なんか漫画は結構読んでたなぁと思ったので、ざっくりと本をたくさん読むという感じにしておく。あとちゃんとログを残さないと後で見返すときに不便なので、読書メーターにログをこまめに残しておきたい。シリーズ物の漫画を一気読みすると面倒で登録をサボりがちなんだけど、別にページ数や冊数のカウントに強い興味があるわけではないので、最終巻だけ登録しとけばいいんじゃないかと気がついた。
旅行に5回行く
せっかくアメリカにいるんだし、アメリカの各地を旅行したり、南アメリカへ旅行したりしたい。
公開できるWebサービスをなんか作って運営する
仕事でしかWebアプリケーションを作っていないため、仕事に直接関わらない範囲の知見が全然たまらない。特にインフラ周りは分業によりあまり触らない&触るとしてもめちゃくちゃ時間がかかって厳しいので、趣味で触って知識を蓄えておきたい。
ICFPCで1位を取る
まあ言い得だよね。打倒UnagiとDiamondPrincess。しかし今年はICFPC開催時に日本にいない気がするけど、どうやってチーム組もう?
ゲームで遊ぶ
11月ころからゲームのボイロ実況を見ていて、楽しそうだなあと思っているのでちゃんとゲームで遊ぶようにする。去年は全然やってなかった。とりあえずSteamやMagic Online用にWindows機を買う必要がある。できたらボイロ実況も作れるといいね。
osak.jpを作り直す
放置しすぎなのでなんとかする。サーバもったいないし……。
今年の振り返り
人生三万日しかない。今年は有意義だったか?
ライブに10回行く
3/10。正月明けに行った水樹奈々、オースティンで行った謎バンド(名前忘れた)、同僚に誘われて行った分島花音の3回。12/30の夜になって原田ひとみの年末ライブに行きそびれていたことを思い出したりした。
映画を10本見る
たぶん6/10。最初の方はちゃんと記録を残していてるけどそれ以降が曖昧なので、覚えている限り書いてみる。
- 虐殺器官
- SAO
- Ghost In the Shell(ハリウッド)
- インセプション
- Guardians of the Galaxy 2 (英語で見たので全然分からなかった)
- ベイマックス
飛行機に乗ったことで、見たかったけど見れてなかったインセプションとベイマックスを見られたのが良かった。一方映画館に行く気力はなんか消えてしまった……。なのはReflectionもガルパンもアニゴジも見ていない。
小説を10冊読む
たぶん8/10。
- 野崎まど劇場1, 2(普通の小説ではないし、あまりにも軽いので1冊扱い)
- 不思議の国のアリス
- 鏡の国のアリス
- 戦闘妖精雪風
- グッドラック戦闘妖精雪風
- アンブロークンアロー戦闘妖精雪風
- ifの悲劇
- ディファレンス・エンジン(上)
野崎まど劇場は、以前にTwitterで流れてきた、将棋の大盤解説の話が面白かったので読んでみた。純粋なシュールレアリスムで攻めると言うよりは、小説本という体裁を保ったままいかに見た目を破壊できるかという点に賭けたような作風で、ストーリーそのものは薄味だった。文字で構成された絵本だと思う。
戦闘妖精雪風シリーズは、最初はファンタジー寄りのSFで面白かったが、巻数が進むにつれて哲学的思索を中心にしたハードSFになっていってしまい、読むのが辛かった。
アリスはICFPCの運営がジャバウォッキーを引用したものをツイートしており、そういえば原典を読んだことないなと思って読んだ。言葉遊びが中心なので、英語で読まないと面白さが分からなさそう。
旅行に10回行く
アメリカ出張に行ったせいで数え方が謎だが、少なくとも10回は行ってない。7/10ということにしとこう。
- 大阪(OSC大阪)
- アメリカ(Austin, TXに出張した後、@draftcodeさんに会うためSan Jose, CAに行った)
- メキシコ(メキシコシティ)
- 越後湯沢(ICFPC合宿)
- 城崎温泉(mikutter合宿)
- 舞鶴・天橋立(城崎温泉の後に@brsyweの案内で一泊した)
ICPCの手伝いでつくばも行ったけど、本当にイベント運営してただけなので旅行ではないカウントにする。あんまり旅行っぽいことしてないしね……。
連休とか、家でグダグダしてるくらいなら旅行行ったほうがいいなあと思った。OSCは各地でやってるし、今年は梓川もあず誕も行ってないし……。あと台湾行きたいですね。
Webサービスを3個作る
そんなものはなかった
mikutterのプラグインリポジトリを作ろうとしていたけど、1年経ってもできていない。厳しい。
ゲームを1本作る
そんなものは(略)
作るどころか、全然プレイしてすらいないな……。ワイルドアームズ2も途中で放置してしまったし……。
GitHubに200 Contributionsする
216っぽい。大半はICFPCのコミットなので、この数値に意味があるかはかなり謎。
ICFPCで1位を取る
6位だった。Unagiはあまり奮わず倒せたものの、他の競プロ勢チームであるDiamondPrincessは2位だったので国内1位にすらなれなかった。
Magic: the Gatheringをプレイする
定期的にドラフトをプレイしていた。しんでれら・まじっくは全部見た。MOはWindows機を買っておらず結局やってない。あまり勝ててないので強くなりたい。
MtG CardSmithをベースに色々切り貼りして、Unstableの拡張カード《Azusa, The Angelic》を作った。結構気に入ってるんだけどTwitterであまりウケてない。というか自分が本当に面白いと思ったネタはあまりウケない。
はてなブログのデザインを直す
は?
ブログで目標のトラッキングをする
アメリカ出張に行く前はちょいちょいトラッキングしていたけど、途中から面倒になってやめてしまった。やっぱり他人に何かを伝えたいというモチベーションがないとブログを書くのは難しい。単純にトラッキングしたいだけならもっといい手段があるだろうと思った。
その他
結構ボードゲームをやった。とりわけ、11月から12月にかけて遊んでいたパンデミック・レガシーは面白かった。ボードゲームのボードにシールを貼っていったり、カードに書き込みをしたりしていくキャンペーン型のゲームで、その新鮮さはもちろん、ゲームとしても頭を使うのが好きなメンバーでうんうん唸りながら最適手を考えていく過程はかなり楽しかった。
総括
アウトプット系の目標はおろか、インプット系の目標もまったく達成できてないのが辛い。仕事をして家に帰ってきた後は大抵ダラダラと時間を過ごしており、ニコニコ動画を延々と見たりTwitterを延々と眺めていたりした。休日もそんな感じで、あまり積極的に動こうとしなかった。アニメもけものフレンズとシンフォギアを見たくらいだし、全体的に無気力に過ごしていたように思う。仕事の方はそれなりにうまく行ったものの、人生的には1年を無駄に使ったような気がする……。 特にプログラミングに関して体系的なインプットをサボっているのがかなり怖い。プログラミングで生きていきたいと言っているのに勉強を怠ったら死んでしまう。
来年からはアメリカに移住するし、もっと有意義に人生を使うようにしたい。
海外引っ越しの手順
引っ越しに限った話ではないけど段取りが悪く、面倒なことが起きたり無意味にストレスを溜めたりしていたので、次回以降の引っ越しと他の人のためにメモしておく。 大まかに締め切りの早い順から書いていくので、上から順に消化していくとつつがなく引っ越せるはず。国外から戻ってくるときは適当に逆操作を取れば良いのでは(未検証)。
何か思い出したら追記される可能性があります。
- 食品の処分
- 粗大ごみの処分
- 退去の連絡
- 使える大型家具の処分
- 引っ越し業者の手配
- 不燃ごみの処分
- リサイクルショップに託す
- NHKの解約
- 可燃ごみの処分
- 郵便・宅配便の転送設定
- 銀行口座・証券口座等の住所変更
- 送るものの梱包
- インフラの解約
- 転居届の提出
- Tips
- あとがき
ICFPC2017
ICFPC2017にチームAdlersprungで参加しました。Adlersprungとはドイツ語でEagle Jumpという意味です。どこかで聞いたような名詞ですね。メンバーは
- mkut
- osa_k
- pepsin_amylase
- y3eadgbe
- yuusti
- kawatea
の6人でした。去年は8人いたけど、人数が多すぎて話がまとまらなかったりして面倒だったので少なくしました。それでも一般的なICFPCチームよりは多いという説があります。
リポジトリはこちら: github.com
概要
今年の問題は、対戦型ゲームのAIを作るというものでした。グラフGが与えられ、一人ずつ交互に辺を取って自分の色で塗っていきます。Gに含まれる頂点の部分集合L (Lambda Mine)ではラムダが産出するため重要度が高く、この頂点を起点としたパスを作るのが目的となります。具体的には、∀(l, v) ∈ L×V(G)について、(lからvまで自分の色の辺だけを通って到達できるか ? 1 : 0) × (lからvまでのG上での最短経路長)2を合計したものが点数となります。mkutがTicket to Rideだと言ってたけど、自分は1回しかこのゲームをやったことがないので、どれくらい似ているかは不明です。
自分はAI作成にはほとんど関わらず、ひたすらインフラをいじって遊んでいました。第一目標はもちろん優勝ですが、裏目標として
あたりを想定していました。
以下作ったものと知見です。
Ka Dingel
先史文明期の遺産であるところのJenkinsです。なんだかんだ言ってプロセスをWebインターフェースから走らせられたり、手軽にログの残るcronを仕掛けられたりするので重宝します。中にはたくさんのフレンズと数人のイーグルジャンプ社員が住んでいました。
GitHubにpushされた変更はとりあえず自動でビルドしておくという運用になっていたのですが、ビルド結果をコミットメッセージとともにSlackで通知するようなスクリプトをpepsin_amylaseが書いたところ、Slackの治安が終わりました。
Sandstar
AI担当のyuustiとkawateaはC++しか書かずJSONを読めない(boostがあるので頑張れば読めるはずだけどよく知らない)ので、触れたJSONをいわゆる競プロ形式に変換するRubyスクリプトが生まれ、Sandstarと名付けられました。いろいろな仕様をこのスクリプトで巻き取った(頂点IDは0〜N-1の連番とは限らない、ゲームの状態はシリアライズして保存する必要があるためグラフの管理をする等)ので地味に面倒くさく、Rubyで書き始めてしばらくしてから後悔しました。一度書き終えてからは大きなバグもなく安定していたものの、終盤ではこいつのI/OがボトルネックになってTLEする可能性を指摘されて冷や汗をかいた(結局AI側の高速化によって回避された)ので、こういう用途にスクリプト言語を使うべきではないなぁと思いました。Rustで書いていれば……。
Alpaca
ジャパリカフェ前に生えている草をむしることで、対戦結果を可視化してくれるフレンズです。Sandstarを書いていたらpepsin_amylaseが対戦をぶん回すためのスクリプト(Fennecと呼ばれていた)を書き上げていたので、じゃあ後はビジュアライザだなーということで書きました。Riot.jsがSVGを特殊なやり方でハンドルする(riot-cxのようなattribute名にしないとコンソールがエラーで溢れる)ので少しハマったものの、概ねサクサクと書き上がりました。Riot.jsいいですね。Intellijで正しくハイライトできないけど……。
AIをあまり触らなかったことの弊害で、あると超便利系の機能がAI班に言われるまで実装がほったらかしになっていたりして、相変わらずうまく行かないなぁと思いました。ユーザが6人であってもドッグフィーディングしないと分からないものですね。
Time Vault
ターンを溜めるすごいアーティファクトです。2日目が終わるあたりでSplurgeというルールが追加され、Sandstarの修正は済んだもののあまりやることがなくて暇だったので、機能テストがてらSplurgeを使うAIを実装しました。これは通常1ターンに1本しか辺を塗れないところ、直前Nターンをパスしておくと最大N+1本からなるパスを一気に塗れるというもので、一気に高得点が入るのでロマンがあります。本物のTime Vaultは自力では1ターンしか溜められないけどゆるして。
基本的には一番遠いLambda同士を一気に繋げるようになるまでターンを溜めて解放するというAIです。無理だったら一番点数の増えそうな辺を取ります。当時はすでにmkutのArtemis(めっちゃつよい)とkawateaのkawatea-v3(めっちゃつよい)が争っている魔界になっており、疎なグラフでターンを溜めていると橋を取られて死ぬという状況だったのであまり成果は残りませんでした。
Kaban
知能が発達しているためMySQLを読み書きできます。2日目の半ばあたりまでは対戦のログはすべてFS上に生のJSONとメタデータの組み合わせで保存されていたのですが、ランダムで大量のマッチをスケジュールするFennecが現れて、これAlpacaのトップページを表示するたびに数千ファイルを舐めることになるけど大丈夫か、みたいになったのでログをMySQLに突っ込むことになりました。最終的にMySQLだったから良かったという処理はしなかったので、かなり無駄だった気がします。MySQLにするとローカルでのデバッグがクッソ面倒くさくなるし……。あとgo getがちゃんと動くようなディレクトリ構成がわからずハマりました。今も良く分かっておらず、雰囲気でディレクトリを決めてGOPATH=pwd
go getしたら動きました。
総括
やったことはこんな感じです。1日目はひたすらインフラを整えていて、3日目はやることないのでTime Vaultを強くしていたのですが、2日目に何やったか完全に覚えていません。pepsin_amylaseから飛んでくるインフラの拡張要求に対応してたのかな……。
目標は概ね達成できたと思います。自己対戦インフラがちゃんと組めたので2015年よりは成長してるかなと思いましたが、Unagiは数百CPUとか回してたらしいので、まだ思い切りが足りなかったかなと思います。 あっ思い出した、CPUめっちゃ増やそうとしたらGCPのQuotaにぶち当たって諦めたんだった。増やして〜ってリクエスト送ったら増やしてくれたんではないかとは思いますが、そんなにたくさんいらんやろと言われたのでそっか〜と思って16CPUで満足してしまった。
Riot.jsはいいですね(2度目)。個人プロジェクトでWebpackなんか使いたくないし、なんならBabelとかBrowserifyも使いたくないので、ファイル1個置いておくだけでお手軽にWeb Componentsライクなタグとかモジュール化の恩恵を受けられるのはかなり良い。
インフラはやはり日頃から慣れ親しんでいるかによって、ハマったときの対応力が全然違うなぁと思いました。Jenkinsからnohupでdaemonを起動しようとしたら普通に殺されるという現象もしばらく気付かなかったし、気付いてからsystemd対応するのも結構時間がかかった。ユーザ単位のsystemd使おうとしてsudoするとXDG_RUNTIME_DIRが定義されなくて死ぬのとか、前もやったのに全く覚えていなかった。
コンテストそのものは、問題文を読んだ瞬間はLambda Lifterの再来かと思って身構えたけど、やってみると意外と面白かったです。AIに関わってないとはいえ、mkutやkawateaやyuustiが書いたAIの挙動を見比べているだけでも楽しかった。ただ、公式のスコアボードがないのはコンテスト感がないというか、何と戦っているのか分からないし自分がどれくらいうまくやっているのかも推測できないので、ゲーム性を下げてしまっていたと思います。
退職しました
6月30日付で2年と3ヶ月勤めたリクルートホールディングスを退職しました。7月1日からはグループ会社のIndeed Japan勤務になります。
そもそも元がリクルートに籍を置きつつIndeedでコードを書くという雇用形態だったので、何が変わるかというと何も変わらないと思います。給与は上がった。リクルートで加入していた諸々について、転籍に伴って書類を処理する必要が生じて精神が終わった。それくらいです。あとこれからは、勤めてる会社を説明する時に無駄なステップが省略できるようになる(籍はリクルートだけどIndeedで働いてるみたいな意味不明なマクラがいらなくなる)ので会話が楽になりますね。
せっかくだし退職エントリを書こうと思ったけど、想像以上に書くことがなかった。