“x“: WindowProxy’s screenX attribute. “y“: WindowProxy’s screenY attribute. “width“: WindowProxy’s outerWidth attribute. “height“: WindowProxy’s outerHeight attribute. https://www.w3.org/TR/webdriver/#resizing-and-positioning-windows The Get Window Rect command returns the size and position on the screen of the operating system window corresponding to the current top-level browsing context. https://www.w3.org/TR/webdriver/#get-window-rect Interesting. The get window rect command returns outer stuff. The actual screenshot size is the inner one like:More
[iOS]Xcode 11.4 new interesting features for automation
This article is a note for me in Xcode 11.4 https://developer.apple.com/documentation/xcode_release_notes/xcode_11_4_beta_release_notes/ Simulate push notification xcrun simctl push com.example.my-app ExamplePush.apns Like Android’s adb command, finally, we can simulate push notification on the local!! The local execution helped me so much when I achieved automation. Handle privacy permissions xcrun simctl privacy grant photos com.example.app, xcrun simctl privacy…More
米国における就労ビザ(O1)を取得した話
少し前に米国で就労するためのO1ビザを取得しました。友人の何人かに内容を聞かれたことと、日本語による米国ビザ取得の話もあまりない為、ここに少し内容を残しておきます。どなたかの、今後の手助けになればと思います。 私はいくつかのきっかけが重なり、1年ほど前からある米国スタートアップでSenior Software Engineerとして働き始めました。米国における就労はビザの都合上できないため、ずっと日本の自宅から働いています。就労ビザ取得までには1年程度かかったことになります。流れとしてはH1への申請、その抽選に漏れてからのO1申請という形です。 ここでは、そのスタートアップで就労しはじめてO1ビザ取得までの全体の流れを残しておきます。O1ビザの取得にはUSCISが要件を出しています。この要件は見せ方など含めて移民弁護士との調整に依存することも多いので、ここではいくつか私の例に触れる程度にしておきます。また、ソフトウェアエンジニア以外の話はわからないので、ご了承ください。 私について ソフトウェアエンジニアとして米国で就労する場合、H1あたりを取得することがおおいと思います。O1はH1に比べて条件が多く、申請者の状況に依存します。そのため、ここではまず私がどういう活動をしてきたのかに軽く触れます。 私は2011年からソフトウェアエンジニアとして働き始めています。ソフトウェアテスト・品質方面に関わりたくキャリアを歩み始め、テスト・QAエンジニアから今ではシニアソフトウェアエンジニアとして自動テスト・製品評価やモニタリングを支援する環境を提供するスタートアップで製品開発を行っています。今のところ、一貫してソフトウェアテスト・品質の話題を主軸に関わり続けていることになります。 私は日本国内におけるソフトウェア工学の修士号を持っています。ただ、博士号や国際論文への実績はありません。2016年程度から、ある自動化を支援するOSS[1]のコアメンバーに入り、申請時点においても貢献を続けていました。そのOSS繋がりで、申請前の段階ではいくつか海外カンファレンスで発表したり、日本国内における国際カンファレンスの運営にも関わりました。また、ソフトウェアテスト・品質方面の活動では、日本国内でいくつかのカンファレンスで発表させていただいています。日本語ではありますが、寄稿や共著もあります。 [1]: iOSやAndroidが主ですが、WindowsやmacOSなど多数の自動化ツールのハブとして機能するものです H1とO1 H1やO1といったビザの種別の説明は省きます。こちらの公式ページを参照ください。 私もビザ申請前にO1ビザの取得可能性を調べていました。日本語、英語情報をみる限りでは、ソフトウェアエンジニアにおけるO1取得には博士課程の有無が言及されていることが多かったです。その為、私の実績で大丈夫なのか不安でしたが、結果としては大丈夫だったようです。いくつかおおまかな指標が要件に提示されていますが、実際に移民弁護士が提出した資料を見る限りでは国内や前職の実績以外にも、国際的な貢献も含めて実績があれば条件をクリアできるようです。 O1の申請において、H1同様にビザスポンサーが必要です。ビザの種類によって弁護士費用といった費用の差はありますが。O1では前職までの実績、公表されているような実績を提示し、米国にとって私が役に立つことを提示する必要があります。私は公表されているような実績の提示のみかと思っていましたが、弁護士の人曰く、前職までの社内含めた実績も必要とのことでした。例えば、何らかの賞を社内で取得していたり、社内で達成したこと、会社の名前を借りてカンファレンスなどの場で発表するなどです。 O1で特に重要なのは推薦書を集めることです。移民弁護士からもらったチェックリストには6~10程度の推薦書を、多様な人から集める必要があると書かれていました。集めた推薦書によって申請者の提出資料の信頼性を担保する形のようです。推薦者が何らかの立場を持っていたりすると良いようですが、それよりも申請者の実績を支援できるような立ち位置である/であったこと、その上で支援すると表明できる人であることのほうが単なる”距離のある立場を持つ人”よりも重要なようです。 私は2018年12月から現在の企業で働き始めたので、まずは時期的にも費用のかからないH1を受け、ダメだった時に他の手段(LかOなど)を考えようとなりました。結果、H1には選ばれませんでした。その為、O1の申請を進めることになりました。会社が移民弁護士などの対応を行ってくれた為、私は基本的に自身の実績や推薦状を書いてくれそうなツテなどを移民弁護士とやりとりしながら進めました。 時系列 H1からO1の流れを時系列でまとめます。 2019年 2、3月 H1の申請に向けた大学学部、修士時代の成績証明書、卒業証明書を取得 H1の申請 6月頭 H1の抽選に漏れたとの報告をうける 7月後半 LかOで申請が可能か検討する 所属企業の規模など含め、O以外は申請しても望み薄と判断される 8月前半 O1取得に向けて移民弁護士とやりとりを始める 受け取ったチェックリストを元に、私のもつ様々な実績や証明書を提供する 提出する資料は英語、もしくは英語訳(全文の直訳ではない)が必須なため英語情報をあつめる、もしくは英語訳を用意する 私の多くは日本語資料であったため、証明書関係以外は自分で英語の要約をつけ、必要なものには移民弁護士側で翻訳署名書の取得などしてもらいました 卒業論文のアブストラクト、証明書関係は日本の専門サービスを利用しました 8月後半 ビザの推薦状のテンプレートを受け取る(2名) 9月、10月 日本語資料の英語要約、その共有 ビザの推薦状テンプレートを受け取る(追加の2名) 11月後半 合計4枚の推薦状が揃う 日本に住む人から1枚、他3枚はカナダ、米国、英国に住む人たち 日本国内の私の活動を支援してくれる人、前職の実績を支持してくれる人、OSSなどにかかわる日本国外(強いては米国においても)実績を支持してくれる人 12月中盤 申請 カレンダーで14日以内に返信を要求できるpremium processingを追加費用を支払い申請 申請がない場合、3ヶ月程度以内に返信が来る(がいつ頃か具体的にはわからない)状態 後になり知ったのですが、このpremium processingの申請は途中から申請することも可能なよう 2020年 1月2日 Approval noticeを受け取る O1ビザの要件を満足していることを知らされる…More
Read “バイリンガル教育の方法”
I read バイリンガル教育の方法. The book was about the education for bilingual. The topic was very interesting for me since I’ve been interested in linguistics, and I’ll relocate to the US soon. Hopefully, we’d like to get children. Then, this kind of problems will be for us. According to the book, the process to learn a…More
A part of books I read in 2019
Listed a part of books I read in 2019, and pushed in this blog. Programming 「Suspend関数のはなし」を読んだ Read「APIデザインケーススタディ」 Read “n月刊ラムダノート Vol.1, No.3(2019)” Test A note about “Software Testing” Read “iOSアプリ開発自動テストの教科” Read [改訂新版]マインドマップから始めるソフトウェアテスト Others A note of reading “A Philosophy of Software Design” Read “An Elegant Puzzle: Systems of Engineering Management” Read “Atlas des relations internationales” Learned…More
Recap 2019
This page is in English edition of Japanese one to recap my 2019 and go toward to 2020. My work style has been changed in late 2018 since I changed work company from Japane-based one to US-based startup. Thus, I should have worked remotely with overseas colleagues until I get a working VISA. (Personally, I…More
2019年振り返り
毎年行っている内容の今年分です。昨年はこちら。 今年を振り返ると、就労環境がかわり同僚が米国在住中心になったために必然的にフルリモートの就労形態になったこと、執筆を行ったことが特に大きな出来事でしょうか。 だいぶ今までの働き方と比べて大きな変化が生まれたと感じます。家で仕事をすることも問題ないくらいには集中して作業できています。私はある程度の頻度では出勤して同僚と対話したりしておきたいたちなので、予定している就労ビザを無事に取得して同僚と近場で働きたい気持ちは結構あります。なお、出勤などの時間が基本的になくなり、家の中で仕事をこなすために家事をこなす割合も格段に増えました。これはだいぶ良いです。 年の中頃から仕事以外で利用するブラウザと検索エンジンをデスクトップ、モバイル共にBraveとDuckDuckGoにしました。大きく困ることは今の所ないですね。adsやtrackersにどれだけ囲まれているのかが見えてきます。検索結果の表示も調整されていてみやすいところもそれなりにありました。 会社関係 現在、HeadSpinという米国ベンチャー企業に勤めています。技術領域としてはサーバー側のアプリ・環境構築周り、モバイル・ネイティブアプリ自動化に関わる周辺に関わっています。開発言語はほとんど触ったことのなかったPythonが主になりました。そのほか、SwiftやJava、Kotlinであったり、JavaScriptです。Goも私はガッツリではないのですが、たまに触れます。パフォーマンス向上のため、システムプログラミングも避けることできなさそうな感じです。従来までのテスト・QAエンジニアから比較すると、完全に開発する役回りとしてがっつり1年過ぎたかたちになりました。 設計、技術スタックの理解、その適応や応用など含めて今までの大学以降の知識や経験にだいぶ助けられています。基本、米国にしか一緒に仕事をするメンバーはいないので、ある程度のまとまった方針の相談はできつつも細かなところは一人でやることが多いです。方針や実装のヒントを得たりするきっかけを見つけること含め、今までの知識や経験はフル活用な感じです。OSSの経験もだいぶ助けになりました。 今進んでいる就労ビザ関係がうまくいき米国で働くことができるようになるとまたオンコール対応などが増えたりと働き方やタスク内容が変化する可能性が高いです。が、今は堅調に成果を出していきたいですね。相手から成果以外が見えにくい分。 英語である程度問題なくチーム活動ができるようになったらまた前職に似た役回りができるようにはなりたいなという思いはあります。今の段階で、技術的なやり取りや意見交換を行う程度は大きく英語が弊害になることはないですが、QAやリーダーのような役回りをするほどの十分なコミュニケーションをとれるほどの言い回し力は足りていないと感じています。他の同僚の文化圏理解はまだまだですし。ユーザーの目に触れるドキュメントの記述も、特に英語の表現に関するレビューは必須な状態ですし。 そういえば、意思決定や優先度の付け方、コミュニケーションのとり方や注意のやり方など、色々と今までの私が属していた環境との違いを感じることは多いです。それは私の慣れ・文化理解に依存するところも大きいのですが、初めのうちは違いに戸惑いもしました。ただ、全般的に私の就労環境が他の同僚とは大きく異なるのでだいぶ気にしてもらっている気がします。 OSS周り 引き続き、Appiumを中心に開発を続けています。今年はXcode 11/iOS 13対応、Android 10対応周りも継続して行いました。WindowsやmacOSも少し見はじめました。Flutterのことを考えて、flutter driverのプロトタイプを作ったりしてみました。 Appiumコミュニティも堅調に大きくなっていってきていると感じます。AppiumConf 2019がバンガロールで開かれましたが、そこにコミッターとして参加してカンファレンスの最後のパネルディスカッションを経験したことは本当に良い経験でした。インド英語の容赦ない環境でも、聴衆の反応を見ると英語でのあの程度のやり取りは問題なくできているようでした。飲みのときの雑な会話はまだ聞き直しが必要な時もあります。 そのほか 大きなものとして、文章を書きました。iOSテスト全書とベリサーブが出している記事の特集記事です。iOSテスト全書で感じたのですが、共著でも、やはり書籍に落とし込んでまとめることはだいぶ私生活面で負荷が高いですね。。本読んだりする時間がだいぶ減りました。 SeConfTokyo 2019を実行委員の1人として運営しました。Seleniumメンバーからのメッセージから始まった、構想から数年を経ての実現です。その達成は良い経験でした。参加者の半数程度は非日本語話者の環境だったのですが、概ね好評な結果に持っていけてホッとしました。毎年という間隔で継続して行うには色々と体制を整備する必要があるのでできませんが、隔年とかでは東アジア圏という枠でこういうことができると良いですね。 他にもカンファレンスの手伝いや発表を行いました。モバイルでも性能計測の一般化が本格化してきた感じがするので、そこらへんの話を私の体験をもとに話始めたりも。 まとめ 2018年にきっかけがうまれたSeConfやiOSテスト全書を無事に終えることができました。仕事は環境自体には慣れたものの、同僚とのコミュニケーションは時差が異なることもあり一部の人とだけという感じです。やっぱりリモート云々より、時差が大きく異なるチームはコミュニケーションで差がうまれますね。ただ、今のタスクの進め方でいうと、私は大きくそれが問題になる領域は進めていないので弊害になるまでではないです。 働き方が変化したことで、日頃の時間の使い方やそれに伴う税理関係などの知識がつきました。これは良いことな気がします。 2020年〜 2020年は、まずは居住地域がどこになるか次第で大きく変わりそうです。引き続き日本にいるのであれば、おそらく仕事方面では大きな変化はないでしょう。私生活含めて。ただ、米国に行くことになれば特に家族含めた生活環境が大きく変化します。いくつかの活動を制限して、私生活周りを固める年にする必要がありそう。 どうなるかな。うまく話が進んだら、別途その内容をまとめようと思います。 OSS関係は引き続き。読みたい書籍もまだあるので、しっかりと読んでいきたいです。More
[WebDriver]Roku WebDriver
I found an interesting project by Roku. They provides OS for TV. I haven’t used them, but I found their interesting blog post. https://blog.roku.com/developer/automated-channel-testing https://developer.roku.com/en-gb/docs/developer-program/dev-tools/automated-channel-testing/automated-testing-overview.md It is very impressive the movement to provide well used/known protocol to developers to help their work.More
“iOSテスト全書”を書きました
書籍を書きました。 iOSテスト全書 著者: 松尾 和昭,細沼 祐介,田中 賢治,平田 敏之,玉城 信悟, 製本版,電子版 PEAKSで購入する PEAKSから発売されている今までの書籍も拝見していますが、いずれもよくできていること、周りの期待感も高いこともあり、はじめに企画への参画を打診された時にどうしようかと悩んだことを覚えています。 iOSに対するわたしの持ち札はiOS全般のテストツールや、経験を含めた深さでいうとUIテストに関わる範囲です。あと、ソフトウェアテストや品質に関わる専門性のところでした。Appiumというネイティブアプリを主な対象としたOSSの自動化ツール開発も行っているので、テストツール側の挙動に対する知見なども持っていました。 結果、蓋をあけると1章と8章を書きました。そのほかの章は、主には概念的な話やツール、XCUITest付近でいうとちょっと突っ込んだところまで執筆時にレビューに参加したりしていました。8章では、XCUITestの内部挙動のような話にも踏み込もうと思ったのですが、文量や初学者という対象読者を考えるとXCTestツール近辺の知見を最低限要求する事になるので、発展的な内容に繋がるような言及は止めました。(例えばこんな付近の話) 個人的な想いとしては、ツールの使い方よりも基礎となる話をしるきっかけになって欲しいと思っていたので、1章も長くならないようにしつつも、ある程度話が飛ばされる方面の内容を文章に組み込んでみました。”人は間違える”という話や自動化に進んでいく話とかですね。同様の内容は数年前に社内ブログで書いたことがあるのですが、全般的に反応がよかったためです。”テスト技法”などに踏み込むときも、書籍などから辿ることもできるように。ここら辺はAndroidテスト全書にはない内容も含まれるので、Androidテスト全書購入者でも楽しむことができるかと思います。 ちなみに、他の章でもXCTest、XCTest(UI)などの話やそれらを使ったいくつかのテストコードの書き方、CI/CD環境の構築話もあります。iOSのテストに関わる入門書という位置づけでも、ツールの話だけではなく考え方も散りばめられているのでお勧めできる内容かなと思っています。 それでは、Happy Testing 🙂More
Read “Atlas des relations internationales”
Read “現代地政学 国際関係地図” which was originally titled as “Atlas des relations internationales : 100 cartes pour comprendre le monde de 1945 à nos jours ” in French. It is increasing the opportunities to communicate with overseas persons recent years. On GitHub, as a colleagues and conferences, for example. Then, I felt I should know outside my…More