英会話メモ My wife and me

My wife and I/me は正しいが I and my wifeは間違い

英会話中に指摘されて知ったのだが、英語には「三人称と ‘I'をandでつなぐといには必ず'I'があとに来る」というルールがあるらしい。 日本語ではどちらが先でも構わないが、英語の場合は他者の方を先に言う必要があるようだ(なぜだろう)

参考: https://www.hokkaidonuk.com/entry/diary-2019-02

そういうルールだと言われてしまえばそうなんだろうけど。

単語記憶用にQuizletというアプリを始めてみた

無料でも基本的な機能は使えるようだしWEBとAndroidアプリで使える。 有料版(アップグレード)は二種類あって、Quizlet Goは広告非表示とオフラインアクセス、Quizlet Plusは広告非表示、オフラインアクセスの他にフラッシュカードの問題に画像や音声を自分で追加したりフォントの書式設定などができるようだ。歴史や地理、科学系の言葉などを覚えたい場合には画像を使うと良いかもしれない。

英語メモ

単語

  • self-defense-forces (SDF),自衛隊
  • cooperative,協力的な、協同の
  • portend,〜の前兆となる
  • trustworthy,信頼できる、頼りになる
  • reliable,信頼できる、頼りになる
  • committed,熱心に取り組む、献身的な
  • context,文脈、状況
  • business-minded,ビジネス志向
  • accessible,アクセスできる、接近できる、利用可能な、行きやすい
  • relavant,関連のある
  • influence,影響を与える
  • fruitful,実りの多い、有益な
  • suitably,適切に
  • exposure,身をさらすこと
  • comprehension,理解, 理解力
  • articulate,はっきり述べる,話のはっきりした

英会話メモ

オンライン英会話をまた始めた(半年ぶり4回目くらい) 年の半分くらいオンライン英会話をやって半分くらいは休んでいたりするのだが、会社で契約してくれているオンライン英会話が他の安いオンライン英会話よりも良い感じだったので同じところでまた始めた。(前回は秋くらいで一旦終了した) BBTオンライン英会話というもので、テキストもしっかり作られているし先生の質も概ね高く満足度が高い。レッスン費用そのものが会社からの補助がないとなかなか個人では手が出しづらい金額だけあって、先生も「先生」としてきちんと説明してくれる人が多い。 DMM英会話等の安いオンライン英会話を使ったこともあるが、そちらは先生によって当たり外れが大きくただの雑談で終わってしまうことも多かった。その点、先生の質がある程度保証されているだけでも効率が違うと感じる。 リングフィットアドベンチャーを英語で紹介する 話の流れでスポーツやってるか?と聞かれ、毎週やっているようなスポーツはないがリングフィットアドベンチャーをやっている、というようなことを言った. しかし先生はリングフィットアドベンチャーを知らなかったので説明を試みた、がうまく説明できなかったので改めて文章で起こしてみる。 Ring-fit-adventure is an video game for excersize. Player takes many types of excersize to advance the game story. For example, to let player's charactor run/walk in the game world, player have to run in real world.To beat enemies, player have to do push-up, sits-up, yoga, and so on. I always have muscle pain everytime after I played the video game.If you don't have enough time in work day to go a gym for excersize, playing Ring-fit-adventure is good way. [続きを読む]

re:Invent2019に行ってきた(その1)

re:Invent 2019 に行ってきた

だいぶ間が空いたが今更ながらメモがてら行ってきた話を書きたい。 来年も行きたいな。

なお今年は日本から1700人以上参加したそうな、、、

最初は1ページで書くつもりだったけど、書いていたら長くなったのでその1とその2に分けることにする。 発表された内容とかEXPOで見かけたものはその2で書いていこう。

準備

荷物

ラスベガスの気温は日本とそんなに変わらない(ただしすごく乾燥している)らしかったので、冬の格好であとは普通の海外旅行と同じ準備をして行った。 冬は荷物がかさばるのがちょっとヤダな~と思ったので、Tシャツとか下着を2泊分にしてホテルで自分で洗濯して干していた。とても乾燥しているので、一晩あれば十分乾いたので助かった。

スーツケースは半分近く空けていった。主にEXPOでのお土産獲得と、普通にラスベガスのお土産を家や会社に買っていくためである。 帰りはほぼスーツケースがいっぱいになったので正解だった。

ホテルとリゾートフィー

直前で宿を取ったので結構高いホテルだった…

早めに取ればAriaなど会場として使われているホテルでも1泊1.5万円~くらいで泊まれるようだ。 会場にはなっていないが近いところのホテルを選べばもっと安く上げることもできそう。でも古いホテルが多いので日本のビジホみたいに綺麗なところは少ない。

なおラスベガスのホテルはリゾートフィーというサービス料がかかりこれが結構な痛手になる。泊まるホテルによるがAriaだと 50ドル 近く取られてしまう。他のアメリカのホテルだとこういうものに当たったことが無いので、ラスベガス特有のものかな?

なおホテルによって開催されるセッションの傾向があるので、参加したいセッションの傾向(例えば機械学習関連を沢山みたいなら今年はVenetian)に合っている会場に近いホテルを選ぶことで時間の節約ができる。

re:Invent セッション予約

re:Invent自体の登録は大分早い時期から可能だが、セッション予約は今年は10月末くらいから可能だった。ワークショップなど、自分で手を動かす類のものはすぐに埋まってしまうので、できるならセッション予約が可能になった日に実施すべき。

セッション自体は後から動画が公開されるのでそっちで確認しても良いとは思うが、ワークショップなど一部の体験型のものは現地に行かないと参加できないのでワークショップ系を優先した方が満足度は高い。

日本からの経路と乗り継ぎ時間

残念ながら日本からマッカラン国際空港(ラスベガス空港)への直行便が無いので、基本的にはアメリカ西海岸のいずれかの空港を経由してアクセスすることになるはず。格安の経路ではハワイアン航空でホノルル空港経由という方法もあるようだ。

今回はサンフランシスコ空港を経由した。何回か国際線からアメリカ国内線へ乗り継ぐことを体験しているが、時間に余裕を持っていても毎度心配になる。 というのもアメリカ国内線へ乗り継ぐ場合、

日本で荷物預ける・手荷物検査受ける→アメリカ入りして入管→預け入れ荷物の受け取りして再度国内線へ預ける→もう一度手荷物検査/身体検査→アメリカ国内線に搭乗→現地入り

となる。国際線から国内線に入る時に荷物受け取り→再度預け入れ「しない」パターンに当たったことが無いのだがそういうルートもあるのだろうか。

アメリカの入国審査はKIOSKで簡略化されている空港もあるのでそちらを使うと大分楽ではあるが、それでもすごい人数が並ぶので国際線からアメリカ国内線への乗り継ぎは2.5時間程度は最低限確保しておいたほうが良い(自信が無ければ3時間)

復路は楽で、アメリカ国内線搭乗時に荷物預ける・手荷物検査を受ける→乗り継ぎ空港では移動のみ→国際線にそのまま搭乗して帰国

となる。往路に比べると楽だが、乗り継ぎ時間は往路と同様2時間程度はあった方が良い。アメリカ国内線は本当によく遅延するため。

ホテル到着後

レジストレーションと最初のSWAG

会場となっているホテル(か、マッカラン国際空港の中)で受付ができる。 受付では名前とパスポートを提示すると事前に登録しておいた顔写真入のIDカードが貰え、今後セッションに参加するときにはこのIDカードを入り口でスキャンすることになる。

会場となっているどのホテルでも空港でも、どこでも受付しても良いが、SWAGと呼ばれるパーカーなどのお土産が貰えるのは今年はメイン会場のVenetianに絞られており来年もその可能性があるので、移動当日は疲れているがVenetianまで行って登録ついでに早々にSWAGを貰う方が良さそう。

というのも毎年AWS印の入ったパーカーが貰えるようなのだが、各サイズは数に限りがあるため希望のサイズが残っているとは限らないためだ。実際私は1日目の午後に受け取りに行ったが、既にMサイズが無くなっていた。

会期中

会場と移動

会場として使われるホテルはどこもものすごく巨大(日本では見当たらないレベル)で、それを6つも使っている。しかもホテル間の距離が長く、例えばVenetianからAriaまで(混んでいる時間だと)バスで30分程度かかることもあった。 したがってセッション間は1時間程度開けている方がよい。ホテルを移動しないなら間が30分程度でもいけるが、開始の15分前くらいにはIDスキャンが始まるのでそれまでにセッション会場に並んでおく必要がある。

ホテル間はシャトルバスが頻繁に走っており、ホテル間移動でタクシー使った方が早い!というような状況にはならなかった。数年前はシャトルバス本数が少なすぎてタクシーを使う人が多かったようだが改善されたらしい。

Overflowルーム

セッションが人気の場合Overflowルームが追加されることがある。OverflowルームはAria等の会場で用意されている、でかいディスプレイでセッションの中継を見ることができる場所で、ヘッドホンを付けて音声を聞くことができるので会場で聞くよりも英語が聞き取りやすかった。正直Overflowルームで受けた方が快適だったり。

食事

各会場で朝食、昼食は提供される。正直あまり美味しくないがチケット料金内に含まれると思えばまぁいいかな、、、というところ。 食事については日本人にはAriaが合っている気がする。ホテルごとに出てくる料理の傾向が異なるのだがAriaはアジアンフードが多かった。 聞いたところによると初日だか二日目だかの朝食には味噌汁も出たようだ。

夜のイベント

昼はセッションなりワークショップなりに参加するが、夜は何かしら特別なイベントが開催されている。

例えば開催前日の日曜日夜にはミッドナイト・マッドネスというイベントがあり、今年はそこでDeepComposerが発表された。月曜日にはマンデーナイトライブ、火曜日はAWS Heroに会うイベントやJTB主催のJapan Nightなど様々である。

https://aws.amazon.com/jp/blogs/news/reinvent-2019-midnight-madness-aws-deepcomposer/

Japan Nightは別途申し込み(有料)が必要だが、AWSが主催するイベントはほぼ全部無料である。

夜のイベントでは概ねご飯が提供されるので、そういったところでご飯にありつくこともできる(が、ご飯目当てで行くよりも皆様交流しましょうね)

会期後

ホテルからマッカラン国際空港へ移動する。 日本へ帰る場合、早朝に出発する便で日本までの国際線が飛ぶ空港まで移動することになる。聞いた話だと早朝でも渋滞することがあるらしいので、結構早めに空港まで行ったほうが良い。マッカランの受付はJTB主催のre:Inventツアーの人たちもいて日本人でごった返していたので早めに行くべし。

あと帰りはスーツケースが色々なSWAGで重くなっているはずなので、預け入れ荷物の重量制限には気をつけた方がいい。エコノミーで1つ32kgだった。

その2に続く

その2は画像多めでお送りします

Google Cloud Vision APIでPDFにOCRをかけてみた

給与明細にOCRをかけて自分の給与を記録したい 会社から発行される給与明細はPDFファイル。しかもフォント埋め込みで埋め込まれてるフォントが有償?恐らく通常手に入らないRICOHのフォント。 データを抜き出せないかとGoogleDriveでPDFからGoogleDocumentsに変換してみたり、各種ツールでwordとかテキストに変換してみようとしたが一切うまくいかない。 そもそもコピペすらできない(コピペしようとしてもフォントが無いから?????になる) ということでOCRをかけてみた。 OCRの機能差 調べてみたところ、AzureやAWSにもOCRを使う機能はある。 しかし認識率についてはGoogleがトップであるようだったので、GCPを利用してみることにする。(普段AWSばかり触っているのでたまにはGCPも触ってみようと思った、というのも理由) Google Cloud Vision API (Go言語) ということでGo言語でGoogle Cloud Vision APIを利用してみた。 と言ってもほぼサンプルのままで動作する。 事前準備 先にGoogle Cloud Storageに対象となるpdfファイルを置いておく必要がある。 またバケットに対して読み取り、書き込みの権限も付与してある必要がある。 なお今回はローカルで動作させるのでサービスアカウントのキーを作成しておく。 参考: https://cloud.google.com/vision/docs/quickstart-client-libraries?hl=ja 事前に環境変数として発行したキーをexportしておく。 export GOOGLE_APPLICATION_CREDENTIALS="/path/to/key.json" ソースコード ほぼサンプルのままで動作する。 結果は dst_uri := "gs://path/to/result.json" にjsonとして保存される。 // Sample vision-quickstart uses the Google Cloud Vision API to label an image. package main import ( "context" "fmt" "os" "io" vision "cloud.google.com/go/vision/apiv1" visionpb "google.golang.org/genproto/googleapis/cloud/vision/v1" ) // detectAsyncDocument performs Optical Character Recognition (OCR) on a // PDF file stored in GCS. [続きを読む]

TypeScriptに入門したいのでJavaScriptに入門してみる(文と式)

続: JavaScript入門 これ の続き。 教材は https://jsprimer.net/ 文と式 JavaScriptは文と式で成り立つ。 式は評価すると値を得ることができ、この値のことを評価値と呼ぶ。 文は処理の一部として式を含むことがある。 式文 式は文になることができる。文となった式のことを式文と呼ぶ。 条件分岐 if, else if, else 省略 switch文 switch は言語によって結構差がある部分なので一応メモする。 switch (式) { case ラベル1: // something to do break; case ラベル2: // something to do break; default: // something to do break; } C言語などと同じですね。breakを忘れるとその下のcaseの内容も実行される。 ループと反復処理 while, do-while, for C言語と同じ。省略。 配列の forEach メソッド 他の言語と似てるが、メソッド名が forEach (Eが大文字) ですね。 // forEachにはコールバック関数を渡す const array = [1,2,3]; array.forEach( currentValue => { // 配列の要素ごとに呼び出される処理 }); 実例 [続きを読む]

TypeScriptに入門したいのでJavaScriptに入門してみる(関数と宣言)

続: JavaScript入門 これ の続き。 教材は https://jsprimer.net/ 関数と宣言 関数は function キーワードを使う。 function function_name(arg1, arg2) { // something to do... return return_value; } // 関数の呼び出し const result = function_name(arg1, arg2); 関数名のルールは変数名のルールと同じ 半角のアルファベット、_ (アンダースコア)、$ (ダラー)、数字を組み合わせた名前にする 変数名は数字から開始できない 予約語と被る名前は利用できない returnは必須ではない(値を返す必要がない関数はreturnを書く必要はない) returnの返り値を省略している場合、もしくはreturn 文のそのものを省略した場合は未定義の値である undefined を返す。 関数の引数 定義した関数の仮引数よりも呼び出し時の引数が少ない場合、余った仮引数には undefined という値が代入される。(エラーにならないんですね…) function echo(x) { return x; } console.log(echo(1)); // -> 1 console.log(echo()); // -> undefined また、引数の数が多い時は余分な引数は単純に無視される。 [ES2015] デフォルト引数 Pythonなどと同じくデフォルト引数が使える。 function echo(x = "hoge") { return x; } console. [続きを読む]

TypeScriptに入門したいのでJavaScriptに入門してみる(暗黙的な型変換)

続: JavaScript入門 これ の続き。 教材は https://jsprimer.net/ 暗黙的な型変換 等価演算子などで暗黙的に型変換される例が載っているが、必要性は薄く基本的には === を使うようにすべき。 暗黙的な変換は割とひどい仕様が載っている… 明示的な型変換 任意の値 -> 真偽値 Boolean("string"); // -> true 任意の値を真偽値に変換できるが、どの値がtrueに、どの値がfalseになるのかは falsy な値が falseになる falsy でない値は true になる というルールに従う。 falsy な値とは以下の6種類である。 false undefined null 0 NaN "” (空文字) 数値 -> 文字列 String(1); // -> 1 真偽値に対しては Stringで true または false という文字列になる。同じように null, undefined, シンボルのプリミティブ型の値に対しては変換は見た目通りの文字列を得ることができる。 オブジェクトを文字列にしたい場合は、 JSON.stringify などのより適切な方法を使うべきである。 シンボル -> 文字列 String(Symbol("シンボルの説明")); 文字列 -> 数値 ユーザからの入力を数値にする場合などに使う。 // ユーザー入力を文字列として受け取る const input = window. [続きを読む]

TypeScriptに入門したいのでJavaScriptに入門してみる(演算子)

続: JavaScript入門 これ の続き。 教材は https://jsprimer.net/ 演算子 + での文字列結合 const value = "hoge" + "moge"; console.log(value); // -> hogemoge 数値計算 JavaScriptでは数値は内部的には IEEE 754方式の浮動小数点数として表現される。よって整数と浮動小数点数の加減乗除も + ,- , * , / , % で実行可能。 [ES2016] ** べき乗演算子 ES2016から使えるべき乗を求める演算子 ** なお、旧来は他の言語と同じく Math.pow といったメソッドを利用していた様子。 console.log(2**4); // -> 16 console.log(Math.pow(2, 4)); // -> 16 単項 + または - 演算子 単項演算子の + はオペランドを数値に変換する(マイナスも同様) つまり文字列の "1" を 数値の 1 に変換してくれる。 let t = +"1"; console.log(t); // -> 1 console. [続きを読む]

TypeScriptに入門したいのでJavaScriptに入門してみる(nullリテラル~データ型とリテラルの最後まで)

続: JavaScript入門 これ の続き。 教材は https://jsprimer.net/ nullリテラル null 値を返すリテラルで、「値がない」ことを表す。 nullを参照した場合コンソール上では null と表示されるだけである。 undefined はリテラルではない undefined はただのグローバル変数で、undefinedという値を持っているだけ。したがって同じ undefined という名前のローカル変数を宣言することができる(もちろん非推奨) function fn(){ var undefined = 100; console.log(undefined) } fn(); true, false, null は変数ではなくリテラルであるため、同じ名前の変数を定義することができない。 オブジェクトリテラル const obj = { key: "value" }; オブジェクトの keyには 文字列またはSymbol を指定し、値にはプリミティブ型からオブジェクトまで何でも入れることができる。 オブジェクトが持つキーのことをプロパティ名と呼ぶ。※ここでは key がプロパティ名。 オブジェクトのキーを参照するにはドット . またはブラケット [] を利用する。 const obj = { "key" : "value" }; console.log(obj.key); console.log(obj["key"]); ドット記法ではプロパティ名が変数名と同じく識別子である必要があるので、数値から始まるような識別子は利用できない。 配列リテラル const emptyArray = []; // 空配列 const array = [1, 2, 3]; 配列の添字は 0 から始まる。他の言語と同じ。 [続きを読む]

DIYで家のネットワークをcat6aにした場合の費用はどのくらい必要か

新築時にcat6aケーブルを敷設する

持ち家のいいところの一つに、家の色々な部分を変更できるという点がある。 家を作るときに情報コンセント(モジュラージャック)を付けて、入居前に宅内LANを敷設してもらうことももちろん可能だ。 しかし家を建てるときに住宅メーカーにやってもらった場合、5箇所で10万~20万程度はかかってしまう。 更にcat6aなどは対応してくれない業者もあるので,それなら空配管だけ通しておいてもらって自分でやろう!と思った次第。

cat6aをDIYで配線する場合の費用概算

必須

cat6a ケーブル

100メートルでおおよそ1.5万円ほど。3LDK程度の家なら100メートルも要らないが、50メートルなどは見当たらないのと、空配管がどのようなルートで通っているのか建築後は把握できないため、余裕を持った長さを買った方が良い。

もっと短くても問題ないという確信があれば50メートル程度の端子のついたものを買って、端子部分を切って使う手もある。

モジュラージャックと成端補助工具

壁に情報コンセントを埋め込む。ホテルや会社の会議室などの壁にあるLANケーブルの差込口である。 日本製線という会社が出しているCat6A用JISアダプタキットが5セットで8000円程度。

cat6までであればPanasonicのぐっとす情報モジュラージャック、という有名な(そしておそらくDIYでやる人にとってはデファクトスタンダードな)ものがあるのだが、残念ながらcat6a対応は発売されていない。cat6まででOKなら一つ1000円程度で買うことができるためコストは抑えられる。

日本製線のものもパンドウィットのものも、成端補助工具があるときっちりはめ込めるのであったほうがよい。

通線ワイヤー

5000円~1万円程度。空配管の中をLANケーブルを通すための道具。

無くてもできるという人もいるが、個人的には絶対にあったほうが良いと思う。ビニールテープで通したという情報もネットで見て挑戦してみたが、空配管にうまく掃除機のノズルを当ててやって吸い込む必要があったり、空配管の角度がきついところを通すときは強く引っ張る必要がありその際途中で切れてしまうリスクがある。

通線ワイヤーならそんなリスクもないし、掃除機のノズルを頑張って当てる必要もない。

工具類

かしめ工具/圧着ペンチ(3000円~5000円程度)、皮膜剥き(2000円)、ニッパーがあればとりあえず何とかなる。

皮膜剥きは一応カッターなどでも代用できなくはないが、芯線に傷を付けたりして作業効率が悪くなるのであったほうがよい。

あると作業効率があがるもの

シリコンスプレー

LANケーブルを空配管に通線時にこれを吹き付けながら通していくと、抵抗少なくスルスル入っていくので力任せに引っ張る必要がなくなり非常に良い。 無くてもどうにかなるがあったほうが作業効率が上がる。

なお吹き付けながら通す必要があるので、LANケーブルを入れていく方に人がもうひとり必要になる。

スパイキ

LANケーブルの芯線は撚ってあるので、それをとくための道具。あれば楽だが無くてもどうにかなる。

総額

3.5万円~4万円程度となる。対応箇所が少ない場合は新築時に対応してもらったほうが安く上がるが、cat6a以上のケーブルを敷設したい、といった要望がある場合にはDIYが視野に入るかと思う。