Love training

It's hard and painful to love people...

170921-24[一週間目] バンクーバー滞在記

9月21日

バンクーバー

2017年9月21日、とうとう17時20分発エアカナダでバンクーバーへ出発。大手SIerを辞めて2ヶ月半、あっという間に出発の日が来た。エアカナダでは日本の映画も用意されており、「3月のライオン」を見てなぜか今回の決意がさらに固まった。フライト時間は8時間半ほど、あまり熟睡はできなかった。

バンクーバー国際空港

バンクーバー国際空港に到着後、入国手続きへ。Kioskと呼ばれるタッチパネルの端末で入国審査を行うが、日本語が用意されており大変助かった(というか英語だったらわからなかったかも)。Kioskで入国審査後、発券された紙を持って入国審査官の元へ(第一外国人)。入国審査官はかなりイカつい感じだったが「カナダで勉強するのか?」と聞かれ、「Yes(カナダ初英語)」と答えて就学ビザ発給通知書と入学許可書を提出してあっさりパス。 次は、受託荷物受取りへ。これも特に問題なく荷物を回収。そして、イミグレーションへ。

カナダらしさを感じさせてくれたイミグレーション

イミグレーションに行くと、すでに10人弱が座っていた。列で並んでいることに気付かず進んで行ったらインド系の男性がとても怒っていらっしゃった(当然か)。イミグレーションの審査官は処理を開始せず談笑、やっと始まったかと思ったら3人いた審査官が1人になりシングルスレッドへ。一人ひとりの処理も時間がかかり途中昼を挟んだせいか結局イミグレーションで2時間ほど待たされた。やっとこさ、ここで一番重要な就学ビザをGET。これがマイペースと言われているカナディアンらしさかと感じた。

入国

ビザを手に出口へ向かい入国。色々緊張していたが、イミグレーションで時間がかかったくらいで特にトラブルは発生しなかった。到着ロビーで送迎の方(日本人)と会ってホームステイ先へ。

ホームステイ先

バンクーバーへ着いて速攻ホームステイ先へ。ホームステイ先はダウンタウンから少し離れた場所。着いたものの送迎の人が呼び鈴を鳴らしても誰も出てこない。。。送迎の人がエージェントを通じて電話するなどしてやっと出てきた。いい感じのおばちゃんで少し安心。

ホームステイ先はルームシェアだった

最初の衝撃が走る。ホームステイの家族と同じ家で生活すると思ったら違った。ホームステイ先は他にも学生などがいるルームシェア形式の家だった。

compassカード

ホストマザーとcompassカードを購入しに最寄りの駅へ。日本で言うsuicaのようなチャージ式のICカード

  • 一ヶ月定期があるが購入月の翌月の1日からなので今月は使用できない
  • そのため、今月の分もチャージ
  • このカードでトランスリンク社の「スカイトレイン」「シーバス(水バス)」「バス」に乗れる

9月22日

オリエンテーション

今回の留学のサポートしてもらったエージェントの事務所でオリエンテーションが行われるので、ダウンタウンのwaterfront駅へ。最寄り駅からは20分ほど(1zone内)。オリエンテーションの内容はほぼ携帯の契約と銀行口座の開設がメイン。

  • 携帯の契約
    • FreedomMobileのお店へ。持参のsimフリーASUS Zenfone2 Laserにfreedommobileのsimを刺すもネットワークが使えず使えないと言われた。(後日、nexus5も試したがダメだった…携帯契約についてはまた来週検討)
  • 銀行口座の開設
    • TD銀行で口座開設。日本人スタッフがおり資料も日本語。本当にここに住んでいて英語できるようになるのか少し不安になった。

ここで同じ学校に通う日本人3人にも会った。(全員同じ学校で全員同じコース)

ダウンタウン散策

オリエンテーション後は少しダウンタウンを散策。ダウンタウンは日本でも見たことあるブランドのお店がずらり(なので、あまり感動はなかったが)。ただテスラには少し興奮した(日本にもあるけど)。 入ったお店は

  • みんなのコンビニ屋
    • 日本人が経営している日本商品を取り扱っているお店。店員も日本人で、ここでも日本語だけでOK
    • インスタントみそ汁(20食分)、ボディソープを購入。計$20ほど。¥1800円くらい高い。
  • セブンイレブン
    • 馴染みのあるコンビニへ。ミネラルウォーター(1L)を購入。$2.99。¥270くらい高い。たぶん大丈夫だと思うけどいきなり腹壊すのは嫌なのでとりあえずミネラルウォーター生活

9月23日

そろそろ書くの疲れてきた。来週はもっと簡潔にしよう。写真を貼るのもめんどくなってきた

カナダプレース〜スタンレーパーク散歩

土曜なのでお休み。やることもないので、今日もダウンタウンへ。大きい船が止まっている観光名所のカナダプレース、バンクーバーの端で海に突き出したスタンレーパークの入り口まで散歩。

初スタバ

帰りはカナダ初スタバに挑戦。教科書通りの「A cup of coffee please」をかますも、店員に「talk about coffee?」 とか聞きかえされる。(この時点でホームステイ先の他の住人とのコミュニケーションも困難で自分の英語力に絶望していたが、さらに絶望する)。なんかオプションもよくわからず、フタなしのコーヒーが出てきた。フタなしってどゆこと? 来週、再度挑戦。

9月24日

もう本当に書くの疲れた。早めに寝たのにうちのボス的なイタリア人の大声の電話で起こされ目が覚める。ちょうど日本で始まったじゃんけん大会をニコニコで視聴し夜更かし….(ニコニコは海外からでも見れるんだね。Amazonプライム、hulu、dmmは海外からは直接は見れなかったよ)。結局起きたの12時前。 もう今日の時点でホームステイの住人達との関係はあまりよくない感じ。まいった笑

来週の目標

  1. もっと簡潔に。そして画像を入れる
  2. スタバカード作成
  3. 携帯契約
  4. バンクーバー図書館カード作成
  5. 英語でわからない時はわかったふりを絶対しない

エンジニア心得え-java-1

[エンジニア心得え-java-1]

□変数宣言時:変数のスコープとなるブロック({}で囲まれた部分)を確認する

[理由]

  • 同じ名前の変数があった場合に、どの変数が参照されるか判断できない
  • ブロックでソースを見る習慣をつける

[検証]

  • スコープが異なる同じ名前の変数を用意
    • 名前は同じでも出力される値が異なることがわかる。
    • 呼び出される変数はスコープで判断する。呼び出した位置から最も内側のスコープで定義された変数が使用される
public class ScopeTest {
    //this is member variable[m1].
    String var = "m1";
    public static void main(String[] args) {
        ScopeTest test = new ScopeTest();
        //this is local variable[l1] in main method.
        String var = "l1";
        System.out.println("①This var is :" + var);
        test.foo();
        System.out.println("②This var is :" + var);
        System.out.println("③This var is :" + test.var);
    }
    void foo() {
        //this is local variable[l2] in foo method.
        String var = "l2";
        bar();
        System.out.println("④This var is :" + var);
    }
    void bar() {
        //this refers 2nd line's member variable.
        var = "m1+";
    }
}
  • 実行結果
①This var is :l1
④This var is :l2
②This var is :l1
③This var is :m1+

エンジニア心得え-shell-1

[エンジニア心得え-shell-1]

□shellスクリプト内ではパスを絶対パスで記述する.または環境変数で設定したパスを利用する

[理由]

  • 一般的にcronでの実行時のカレントは実行ユーザーのホームディレクトリ($HOME)
  • 相対パスで記載しているとスクリプトがカレントに依存してしまい、cron実行時のカレントと相違が発生する(cron実行だと動かない問題)

[検証]

  • cron実行時のカレント調査
    • 相対パスでcron実行
    • 出力ファイルのパスを確認
* * * * * date > temp.txt
$ find `pwd` -maxdepth 1 -mindepth 1 | grep temp.txt
/Users/shouhei/temp.txt
* * * * * env > cron_env
$ cat cron_env
SHELL=/bin/sh
USER=shouhei
PATH=/usr/bin:/bin
PWD=/Users/shouhei
SHLVL=1
HOME=/Users/shouhei ★
LOGNAME=shouhei
_=/usr/bin/env

for文の()内の型宣言した変数は、for文の中だけ。覚えてください by HKT研究生

このままだと推しのようなブログになってしまいそうなので、とりあえず何かを書く(笑)

Javaの以下の問題で引っかかった。。 問は下のコードでコンパイルエラーが起きるので、エラーを無くしてくださいと。

問題

以下のプログラムはコンパイルエラーになります。エラーを無くすにはどのようなにすればよいですか?

int[] a = {11,13,17,19,23,29};
int t = 29;
for (int i=0; i<a.length; i++) {
    if (a[i]) == t) break;
}
System.out.println(i + 1 + "番目の要素がヒットしました");

タイトルのとおり、 for文の()内の型宣言した変数はfor文の中だけ有効。 なので、上記のコードではfor文の外でfor文の()内で型宣言した変数iを使おうとしているのがコンパイルエラーの原因ということらしい。

回答

変数iをfor文の外で宣言する。

int[] a = {11,13,17,19,23,29};
int t = 29;
int i;
for (i=0; i<a.length; i++) {
    if (a[i]) == t) break;
}
System.out.println(i + 1 + "番目の要素がヒットしました");

上記の修正でいいのかな。

教訓

  • for文内での変数の型宣言
    • for文の()内で型宣言すると、この変数iはfor文の構造の中だけ有効。for文の外部でiという変数を使っていてもそれとは無関係にローカル変数としてiを利用できる。逆にiをfor文の外で使おうとするとコンパイルエラーとなる。

PS HKT三期生だとティファニー推しです。それにしても本当に教科書に書いてあることを書いてるだけのブログだなぁ(笑)

AKB 44thシングル劇場盤の抽選申込み開始とサイレントマジョリティー

初投稿からアイドル話(笑)。早速ブログの本来の主旨から外れてスタート。

タイトルの通り、とうとう今年の総選挙の投票券付き劇場盤の抽選申し込みが今日の18時から開始。

私の推しメンは佐藤すみれですが、正直、去年の総選挙で49位ランクインに加えてフューチャーガールズのセンターでかなりやりきった感が個人的にあるので、今年はどの程度のモチベーションで行くか悩み中。

去年は一昨年の圏外を受けて選対さんもかなりがんばったようで、今年はすみれ界隈が総選挙に対してどの程度のモチベーションで望めるのか?というところは個人だけでなく全体としてあるのではないかと思っている。

すーちゃんもあまり総選挙に関しては語っていないので、まだアクセルがかからないなぁという現状かな。

でも、去年のピーターパンのお茶会みたいにすーちゃんに泣きながらお願いされたらどうせ本気出しちゃうんだろうけど。本当ヲタクはチョロいってやつです。(去年の総選挙前の時期はすーちゃんのメンタルがかなり来てて、それも相まって、なんとかランクインさせなきゃ卒業しちゃうんじゃないのという焦燥感もあった)

と、まあ、ぼちぼち今年も始まったなという感じ。

そして、今日は欅坂46のデビューシングル「サイレントマジョリティー」の発売日。こんなに待ち遠しかったのっていつ以来だろう(笑)。もうyoutubeのMVで完全にやられました。ツボにハマりまくり。乃木坂は登らなかったけど、欅坂は登ることになりそう。とりあえず、てちと鈴本さんとベリカというミーハーな感じから入っていこうと思います。

ん〜、このブログ公開にする必要あるのか?(笑)