ミシガン大学: アメリカ滞在: 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の方が安くて動作も早いらしい。

 

python: pip 8.0.0 のバグ修正

pip が動作しない、壊れた? >> コードを一行修正して解決

(1)環境

MacOSX 10.10 Yosemite 

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

で解決した。

 

 

 

python pandas csvファイルを読み込む

(1) install

$ pip install pandas

Collecting pandas

....中略....

Successfully installed pandas-0.17.1

 

(2) 例

import pandas as pd

data1 = pd.read_csv('datafile.csv',sep=',')

for i in range(len(data1.OBJECT)):
     if ('U_' in data1.OBJECT[i]):
          print data1.vz[i]

 

データがdata1.OBJECT[i] みたいに格納できるのが便利。

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