ミシガン大学: アメリカ滞在: J1ビザ: 手続き
2016年7月1日に米国のミシガン大学(University of Michigan)にポスドクとして赴任。
任期は事実上2-3年。J-1ビザ。
手続きをほぼ時系列にとってまとめる。目的は自分用の記録+申請漏れを防ぐこと。大雑把に書いて、随時内容を更新する。
(1)研修Part1..事前研修 [Day-2 = 6/29]
(2)研修Part2..到着後研修 [Day-1 = 6/30]
(3)税金[Day -1 = 6/30]
-W4 for Federal government
-W4 for Michigan State
-日米租税条約に関すること: 結局Article20(第20条は2013年に廃止されたらしいのでJ1-visaの研究者(第20条に関係する人)は関係なさそう?)
(3)I9[Day-1 = 6/30]
-米国で労働するための書類。
必要な書類は
....パスポート
....DS2019
....滞在中のホテルの住所
....I94 : これはDS2019を見せたら印刷してくれた。"I94 print"でgoogle検索せよ。
(3)M-Card[Day-1]
-University of MichiganのID
-市内のバスを無料で乗れる
-後に銀行口座を作る時に「パスポート以外の別のID」として利用できた。
-「パスポート」「DS2019(正確には、そこに記載されているUM ID number)」が必要
-顔写真をその場でとってくれる。
-2分ほどで発行された。
(4)初出勤[Day-1]
-オフィスを教えてもらう
-オフィス名とがhotpads.comを教えてくれた。
(5)携帯を購入[Day1 = 7/1]
-Skypeで不動産屋に電話すると、「こみ合っているので折り返します」と言われる。
-結局折り返してこないんだがw
-多くの場面で携帯電話が有用。
-機種代は99ドル
-プリペイドで300分かけ放題で15ドル
-ホテルの住所ではない"permanent address"が必要。
-だが、住所がない人は業者がかってにカリフォルニアの住所を与えるwwww
(6)不動産屋に行く[Day1]
-電話はつながらないので直接行く。
-その場で9/1から契約したい旨を伝える。
-100ドルのapplication feeを支払う。
-application formに「Gross Salaly per month 月収」などを記入。
-パスポートを持参した。
-引っ越したばかりでSocial Security Numberなどはないことを話したところ、パスポートでOKと言われた。
-3営業日ほどたってから、「審査が通った。3日以内に電子署名して提出して」と言われる。
(7)Sublease(夏期等の短期間の又貸し)をさがす[Day1-2]
-University Off campusなんとかという公式なサイトでみつけた。
-メールを6人に送ったが、一人だけ帰ってきた。
-その人とはとんとん拍子に話が進み、その場で口約束で契約したい旨を伝えた。
(8)Sublease先に引っ越し[7/5]
(9)Physical Presence Check-In[7/7]
-かなり遅くなったが、米国に本当に滞在していることを証明する手続き。
-uniqname
-SSN申し込みのための書類を貰う
-誓約書に署名。
-保険...30日以内(7/30まで)に決める。
-SSN...4営業日たったら(7/14)、SSNの申請ができる(それまでに書類を作成する)。
-State of Michigan Personal Identidication Card...SSNが必要
http://internationalcenter.umich.edu/life/license.html#personal
(10)銀行口座[7/7]
-いろいろ調べたあげく、オフィスに近い銀行に決定。
-「パスポート」「M-Card」でIDができた。
-大学から給与をもらうので、「月末に1000ドル」預金されていれば口座の維持費はかからない。
-ほとんどの決済が電子決済でできることを知る。
-物理的な銀行カードはまだ貰えていない。Debit Cardも。後日郵送だろうか。
-口座は3種類あって、"Spending", "Reserving", "Growth"と呼ばれる。
-給料を "Spending"口座に入れるように手配してくれとのこと。
-翌日にOnline Banking Accountをactivateさせた。
(11)給与口座の登録[7/8]
-大学のアカウント経由で、給与の振込先を登録する。
(12)在留届を提出[7/7]
-デトロイト日本領事館
(番外)セブンイレブン[7/9]
-セブンイレブンでspongeを買おうとしたら止められるwwwww
====================
[to do list]
[SSN]
[State ID]
-SSNのカード, 給与明細
居住証明のために以下の2つが必要
-(給与明細) Pay stub or earnings statement issued with the name and address of the employee.
-(銀行のstatement) Account statement from a bank or other financial institution issued within the last 90 days. (Electronic copies are acceptable.)
http://www.michigan.gov/documents/sos/Applying_for_lic_or_ID_SOS_428_222146_7.pdf
NTFS for Mac - Yosemite Free
NTFS for Mac - Yosemite Free
Mac Yosemiteで、NTFSを読み書きする無料のソフトのインストール方法。
(背景)
TOSHIBAのHDD (HD-PD10TK)を利用中、HDDが読み込み専用になってしまった。
MacでNTFSフォーマットの読み書きを無料で(+無期限で)行えるソフトをインストールしたい。
(手順)
1. 「Paragon NTFS for Mac - Yosemite Free」のダウンロード
http://www.paragon-software.com/home/ntfs-mac-yosemite/registration.html?reg_status=ok
2. 誘導に従ってインストール
3. 誘導に従って再起動
4. 再起動すると、「System Preference」の画面で「Paragon NTFS for Mac OS X」というウィンドウ(#####)が自動で開かれる。
「Product state: trial (10 days)」とかいう表示が出ているはず。
その下の「Get Free Serial」をクリックし、誘導されたウェブサイトにメールアドレスを登録。
5. メールアドレスに「Product Key」と「Serial Number」が送られてくる。これらを(#####)のウィンドウに入力し、「Activate」ボタンをクリック。
6. (#####)の最上部が「Product state: Activated」になっていればうまくいっている。
(環境)
Mac OSX 10.10 Yosemite
(余談)
・googleで「TOSHIBA NTFS mac」で検索すると、「Tuxera NTFS for Mac」のページが表示される。
はじめは筆者もTUXERA Disk Manager (15日無料体験版)を利用していたのだが、製品版は31ドルする。
・一方、Paragon NTFS for mac というソフトならば比較的安価である($20)。
この製品版は、Yosemite以外のMac OS (例えば、OS X 10.11 El Capitan)にも対応している。
・Paragon NTFS for Macは、個人での利用に限り無料。
・どうやらTuxeraよりも、Paragonの方が安くて動作も早いらしい。
ipython
(1)図を表示:
ファイル(df_1_with_figure.ipynb)の最初に
%matplotlib inline
と宣言する。
(2)ipythonを起動
$ ipython df_1_with_figure.ipynb
python: pip 8.0.0 のバグ修正
pip が動作しない、壊れた? >> コードを一行修正して解決
(1)環境
python 2.7.11
pip 8.0.0
$ which pip
/Users/my_name/anaconda/bin/pip
(2)不具合
$ pip install -U pip
Traceback (most recent call last):
File "/Users/my_name/anaconda/bin/pip", line 4, in <module>
from pip import main
File "/Library/Python/2.7/site-packages/pip-8.0.0-py2.7.egg/pip/__init__.py", line 15, in <module>
from pip.vcs import git, mercurial, subversion, bazaar # noqa
File "/Library/Python/2.7/site-packages/pip-8.0.0-py2.7.egg/pip/vcs/subversion.py", line 9, in <module>
from pip.index import Link
File "/Library/Python/2.7/site-packages/pip-8.0.0-py2.7.egg/pip/index.py", line 29, in <module>
from pip.wheel import Wheel, wheel_ext
File "/Library/Python/2.7/site-packages/pip-8.0.0-py2.7.egg/pip/wheel.py", line 32, in <module>
from pip import pep425tags
File "/Library/Python/2.7/site-packages/pip-8.0.0-py2.7.egg/pip/pep425tags.py", line 214, in <module>
supported_tags = get_supported()
File "/Library/Python/2.7/site-packages/pip-8.0.0-py2.7.egg/pip/pep425tags.py", line 162, in get_supported
arch = get_platform()
File "/Library/Python/2.7/site-packages/pip-8.0.0-py2.7.egg/pip/pep425tags.py", line 119, in get_platform
major, minor, micro = release.split('.')
ValueError: need more than 2 values to unpack
(3)Stackoverflowを真似て解決。
まさに同じタイミング(数時間差)で同じような問題に遭遇している人を発見。
python - Upgrading to latest pip caused ValueError - Stack Overflow
これを真似て、
/Library/Python/2.7/site-packages/pip-8.0.0-py2.7.egg/pip/pep425tags.py
の119行目を変更。
変更前のファイル状況
$ cd /Library/Python/2.7/site-packages/pip-8.0.0-py2.7.egg/pip/
$ ls -l
total 736
-rw-r--r-- 1 root wheel 10431 20 Jan 17:11 __init__.py
-rw-r--r-- 1 root wheel 9332 20 Jan 17:11 __init__.pyc
-rw-r--r-- 1 root wheel 584 20 Jan 17:11 __main__.py
-rw-r--r-- 1 root wheel 505 20 Jan 17:11 __main__.pyc
drwxr-xr-x 24 root wheel 816 20 Jan 17:11 _vendor
-rw-r--r-- 1 root wheel 11429 20 Jan 17:11 basecommand.py
-rw-r--r-- 1 root wheel 8973 20 Jan 17:11 basecommand.pyc
-rw-r--r-- 1 root wheel 10465 20 Jan 17:11 baseparser.py
-rw-r--r-- 1 root wheel 11286 20 Jan 17:11 baseparser.pyc
-rw-r--r-- 1 root wheel 15921 20 Jan 17:11 cmdoptions.py
-rw-r--r-- 1 root wheel 15621 20 Jan 17:11 cmdoptions.pyc
drwxr-xr-x 26 root wheel 884 20 Jan 17:11 commands
drwxr-xr-x 6 root wheel 204 20 Jan 17:11 compat
-rw-r--r-- 1 root wheel 31715 20 Jan 17:11 download.py
-rw-r--r-- 1 root wheel 25825 20 Jan 17:11 download.pyc
-rw-r--r-- 1 root wheel 7741 20 Jan 17:11 exceptions.py
-rw-r--r-- 1 root wheel 12902 20 Jan 17:11 exceptions.pyc
-rw-r--r-- 1 root wheel 36776 20 Jan 17:11 index.py
-rw-r--r-- 1 root wheel 34211 20 Jan 17:11 index.pyc
-rw-r--r-- 1 root wheel 6137 20 Jan 17:11 locations.py
-rw-r--r-- 1 root wheel 5013 20 Jan 17:11 locations.pyc
drwxr-xr-x 6 root wheel 204 20 Jan 17:11 models
drwxr-xr-x 6 root wheel 204 20 Jan 17:11 operations
-rw-r--r-- 1 root wheel 7210 20 Jan 17:11 pep425tags.py
-rw-r--r-- 1 root wheel 7393 20 Jan 17:11 pep425tags.pyc
drwxr-xr-x 12 root wheel 408 20 Jan 17:11 req
-rw-r--r-- 1 root wheel 156 20 Jan 17:11 status_codes.py
-rw-r--r-- 1 root wheel 414 20 Jan 17:11 status_codes.pyc
drwxr-xr-x 22 root wheel 748 20 Jan 17:11 utils
drwxr-xr-x 12 root wheel 408 20 Jan 17:11 vcs
-rw-r--r-- 1 root wheel 32030 20 Jan 17:11 wheel.py
-rw-r--r-- 1 root wheel 26062 20 Jan 17:11 wheel.pyc
オリジナルをコピーして別名保存。
$ sudo cp pep425tags.py pep425tags_original_my_name.py
$ ls -l
total 752
-rw-r--r-- 1 root wheel 10431 20 Jan 17:11 __init__.py
-rw-r--r-- 1 root wheel 9332 20 Jan 17:11 __init__.pyc
-rw-r--r-- 1 root wheel 584 20 Jan 17:11 __main__.py
-rw-r--r-- 1 root wheel 505 20 Jan 17:11 __main__.pyc
drwxr-xr-x 24 root wheel 816 20 Jan 17:11 _vendor
-rw-r--r-- 1 root wheel 11429 20 Jan 17:11 basecommand.py
-rw-r--r-- 1 root wheel 8973 20 Jan 17:11 basecommand.pyc
-rw-r--r-- 1 root wheel 10465 20 Jan 17:11 baseparser.py
-rw-r--r-- 1 root wheel 11286 20 Jan 17:11 baseparser.pyc
-rw-r--r-- 1 root wheel 15921 20 Jan 17:11 cmdoptions.py
-rw-r--r-- 1 root wheel 15621 20 Jan 17:11 cmdoptions.pyc
drwxr-xr-x 26 root wheel 884 20 Jan 17:11 commands
drwxr-xr-x 6 root wheel 204 20 Jan 17:11 compat
-rw-r--r-- 1 root wheel 31715 20 Jan 17:11 download.py
-rw-r--r-- 1 root wheel 25825 20 Jan 17:11 download.pyc
-rw-r--r-- 1 root wheel 7741 20 Jan 17:11 exceptions.py
-rw-r--r-- 1 root wheel 12902 20 Jan 17:11 exceptions.pyc
-rw-r--r-- 1 root wheel 36776 20 Jan 17:11 index.py
-rw-r--r-- 1 root wheel 34211 20 Jan 17:11 index.pyc
-rw-r--r-- 1 root wheel 6137 20 Jan 17:11 locations.py
-rw-r--r-- 1 root wheel 5013 20 Jan 17:11 locations.pyc
drwxr-xr-x 6 root wheel 204 20 Jan 17:11 models
drwxr-xr-x 6 root wheel 204 20 Jan 17:11 operations
-rw-r--r-- 1 root wheel 7210 20 Jan 17:11 pep425tags.py
-rw-r--r-- 1 root wheel 7393 20 Jan 17:11 pep425tags.pyc
-rw-r--r-- 1 root wheel 7210 21 Jan 09:22 pep425tags_original_my_name.py
drwxr-xr-x 12 root wheel 408 20 Jan 17:11 req
-rw-r--r-- 1 root wheel 156 20 Jan 17:11 status_codes.py
-rw-r--r-- 1 root wheel 414 20 Jan 17:11 status_codes.pyc
drwxr-xr-x 22 root wheel 748 20 Jan 17:11 utils
drwxr-xr-x 12 root wheel 408 20 Jan 17:11 vcs
-rw-r--r-- 1 root wheel 32030 20 Jan 17:11 wheel.py
-rw-r--r-- 1 root wheel 26062 20 Jan 17:11 wheel.pyc
デスクトップに移動させて編集し、それを元の場所に持ってきてoverride。
$ sudo mv /Users/my_name/Desktop/pep425tags.py .
$ ls -l
total 752
-rw-r--r-- 1 root wheel 10431 20 Jan 17:11 __init__.py
-rw-r--r-- 1 root wheel 9332 20 Jan 17:11 __init__.pyc
-rw-r--r-- 1 root wheel 584 20 Jan 17:11 __main__.py
-rw-r--r-- 1 root wheel 505 20 Jan 17:11 __main__.pyc
drwxr-xr-x 24 root wheel 816 20 Jan 17:11 _vendor
-rw-r--r-- 1 root wheel 11429 20 Jan 17:11 basecommand.py
-rw-r--r-- 1 root wheel 8973 20 Jan 17:11 basecommand.pyc
-rw-r--r-- 1 root wheel 10465 20 Jan 17:11 baseparser.py
-rw-r--r-- 1 root wheel 11286 20 Jan 17:11 baseparser.pyc
-rw-r--r-- 1 root wheel 15921 20 Jan 17:11 cmdoptions.py
-rw-r--r-- 1 root wheel 15621 20 Jan 17:11 cmdoptions.pyc
drwxr-xr-x 26 root wheel 884 20 Jan 17:11 commands
drwxr-xr-x 6 root wheel 204 20 Jan 17:11 compat
-rw-r--r-- 1 root wheel 31715 20 Jan 17:11 download.py
-rw-r--r-- 1 root wheel 25825 20 Jan 17:11 download.pyc
-rw-r--r-- 1 root wheel 7741 20 Jan 17:11 exceptions.py
-rw-r--r-- 1 root wheel 12902 20 Jan 17:11 exceptions.pyc
-rw-r--r-- 1 root wheel 36776 20 Jan 17:11 index.py
-rw-r--r-- 1 root wheel 34211 20 Jan 17:11 index.pyc
-rw-r--r-- 1 root wheel 6137 20 Jan 17:11 locations.py
-rw-r--r-- 1 root wheel 5013 20 Jan 17:11 locations.pyc
drwxr-xr-x 6 root wheel 204 20 Jan 17:11 models
drwxr-xr-x 6 root wheel 204 20 Jan 17:11 operations
-rw-r--r--@ 1 my_name staff 7203 21 Jan 09:24 pep425tags.py
-rw-r--r-- 1 root wheel 7393 20 Jan 17:11 pep425tags.pyc
-rw-r--r-- 1 root wheel 7210 21 Jan 09:22 pep425tags_original_my_name.py
drwxr-xr-x 12 root wheel 408 20 Jan 17:11 req
-rw-r--r-- 1 root wheel 156 20 Jan 17:11 status_codes.py
-rw-r--r-- 1 root wheel 414 20 Jan 17:11 status_codes.pyc
drwxr-xr-x 22 root wheel 748 20 Jan 17:11 utils
drwxr-xr-x 12 root wheel 408 20 Jan 17:11 vcs
-rw-r--r-- 1 root wheel 32030 20 Jan 17:11 wheel.py
-rw-r--r-- 1 root wheel 26062 20 Jan 17:11 wheel.pyc
$ pip install -U pip
Requirement already up-to-date: pip in /Library/Python/2.7/site-packages/pip-8.0.0-py2.7.egg
pipは無事に全て完了。
python isochronesのための設定:Open MPI, CMake, mpi4py, MultiNest, PyMultiNest
(1)Open MPI
http://www.open-mpi.org/software/ompi/v1.8/
から openmpi-1.8.8.tar.gz をダウンロード。解凍。
$ cd openmpi-1.8.8
$ ./configure
$ make all
$ sudo make install
(2)CMake
$ sudo port install cmake +gui
(3)mpi4py [これは pymultinest に必要]
$ sudo pip install mpi4py
(4)MultiNest [これは pymultinest に必要]
$ cd
$ git clone https://github.com/JohannesBuchner/MultiNest.git
$ cd MultiNest/build/
$ cmake ..
$ make
[少し待つ]
# ここまで/Users/my_name/MultiNestへのインストールが完了。
# さらにPyMultiNestのための準備を行う。
$ cd ../lib/ #[MultiNest/lib に移動]
$ ls -l
-rwxr-xr-x 1 my_name staff 701512 19 Jan 19:21 libmultinest.3.10.dylib
-rw-r--r-- 1 my_name staff 814136 19 Jan 19:21 libmultinest.a
lrwxr-xr-x 1 my_name staff 23 19 Jan 19:21 libmultinest.dylib -> libmultinest.3.10.dylib
-rwxr-xr-x 1 my_name staff 715016 19 Jan 19:20 libmultinest_mpi.3.10.dylib
-rw-r--r-- 1 my_name staff 832704 19 Jan 19:21 libmultinest_mpi.a
lrwxr-xr-x 1 my_name staff 27 19 Jan 19:20 libmultinest_mpi.dylib -> libmultinest_mpi.3.10.dylib
# /Users/my_name/MultiNest/lib の中身を /usr/local/lib/ にコピーする。
$ sudo cp libmultinest.3.10.dylib /usr/local/lib/
$ sudo cp libmultinest.a /usr/local/lib/
$ sudo cp libmultinest.dylib /usr/local/lib/
$ sudo cp libmultinest_mpi.3.10.dylib /usr/local/lib/
$ sudo cp libmultinest_mpi.a /usr/local/lib/
$ sudo cp libmultinest_mpi.dylib /usr/local/lib/
# /Users/my_name/MultiNest/lib にある XXX.dylib の内容を持つ、 XXX.so という名前のリンクを作る。
# http://astrobetter.com/wiki/MultiNest+Installation+Notes の通りにすると一部不足する模様。全部やる。
$ sudo ln -s libmultinest.3.10.dylib libmultinest.3.10.so
$ sudo ln -s libmultinest.dylib libmultinest.so
$ sudo ln -s libmultinest_mpi.3.10.dylib libmultinest_mpi.3.10.so
$ sudo ln -s libmultinest_mpi.dylib libmultinest_mpi.so
# さらに、PATHをいじる。
$ cd
$ vi .bash_profile
[以下の内容を加える。]
#--------------------
# Added by me when installing MultiNest and PyMultiNest (19 Jan 2016)
export DYLD_LIBRARY_PATH=/Users/my_name/MultiNest/lib:$DYLD_LIBRARY_PATH
export PATH=$PATH:$HOME/.local/bin/
#--------------------
# 参考: http://johannesbuchner.github.io/pymultinest-tutorial/install.html#on-your-own-computer
# おそらく、MultiNest以外にも使う場合は
# http://johannesbuchner.github.io/PyMultiNest/install.html#id4 にあるように、
# $ export DYLD_LIBRARY_PATH=/Users/my_name/MultiNest/lib:/Users/my_name/cuba/lib:/Users/my_name/apemost/lib:$DYLD_LIBRARY_PATH
# のようにするのだろう(推測)。
(5)PyMultiNestインストール
$ cd
$ git clone https://github.com/JohannesBuchner/PyMultiNest.git
$ cd PyMultiNest
$ sudo python setup.py install
(6)テスト
(6-1)MultiNest
$ cd
$ cd MultiNest/bin
$ rm chains/*
$ ./eggboxC #binの中のプログラムなら何でも良い。
(6-2)MultiNest と mpi
$ cd
$ cd MultiNest/bin
$ rm chains/*
$ mpirun -np 6 eggboxC
これを走らせながら、新規ターミナルを開いて
$ top -o cpu
としてみる。いろいろ数字がモニターできる。
(6-3)PyMultiNest
$ cd
$ cd PyMultiNest
$ python -c 'import pymultinest'
# エラーメッセージがなければ良い。
$ python pymultinest_demo_minimal.py
# これでデモコードが走る。
※ が、翌日にpipが走らないという問題に遭遇した。
一連のインストールに問題があると思い、いろいろ試したが、結局
python - Upgrading to latest pip caused ValueError - Stack Overflow
で解決した。
yosemite [open filesを増やす]
yosemiteを再起動したら、どういうわけかfopenできる最大のファイル数が減った?ようでいままで動いていたプログラムが作動しなくなった。
(1)調べる
$ ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
max locked memory (kbytes, -l) unlimited
max memory size (kbytes, -m) unlimited
open files (-n) 256
pipe size (512 bytes, -p) 1
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 709
virtual memory (kbytes, -v) unlimited
==> 「open files = 256 だったので1000個のファイルが開けなかった。」
(2)解決策
(a)一時的な変更でいい場合は
$ [sudo] ulimit -n 10240
(b)永続的な変更
$ cd
$ echo kern.maxfiles=10240 | sudo tee -a /etc/sysctl.conf
$ echo kern.maxfilesperproc=10240 | sudo tee -a /etc/sysctl.conf
$ sudo sysctl -w kern.maxfiles=10240
$ sudo sysctl -w kern.maxfilesperproc=10240
$ ulimit -n 10240 10240
$ cd
$ vi .bash_profile
".bash_profile"に以下の内容を加筆:
#----
# Added by me to increase the max number of open file (13 Jan 2016)
ulimit -n 10240 10240
#----
ヒント:「"i"でinsertモード、保存して終了するには "Esc" ":wq"」
(3)参考
http://blog.mact.me/2014/10/22/yosemite-upgrade-changes-open-file-limit