ほつた@はてな

ほつたが技術的な事や個人的な出来事を中心に投稿します。

SeleniumConf Tokyo 2019 メモと所感 #SeConfTokyo

主に2019年4月18日(木)~2019年4月19日(金)に行われたSeleniumConf Tokyo 2019に行って、適当に興味のあるセッションを聴いたものの、セッション会場においてTwitterでツイートできない環境(Wi-Fiのパスワードが分からない、LTEの通信が出来ないほど電波が弱い)ことがあり、ツイートしそびれてメモとなってしまった1つのセッションのメモとカンファレンス全体の所感を公開する。

なお、個人的に適当かつ乱雑にメモったメモであり、正確性といったことは保証できない。

このメモは正確ではないということを十分に理解したうえで、自己責任で活用していただきたい。

Twitterまとめ

有志がハッシュタグでツイートしたものをまとめていたようなので、自分のツイートや他の方のツイートも含めて確認していただけると幸い。

togetter.com

togetter.com

ヘッドレスでSeleniumテストを高速化 (Alissa Lydon / Samantha Coffman , Sauce Labsで働いている方のセッション)

  • ユニットテストの重要さ、ピラミッド
    • ピラミッドをバケツと表現
  • ピラミッド型、バケツ型は金が掛かる
  • E2Eとユニットテストは同じくらいの大きさになるはずである!!!
  • ピラミッドを書いたのは…いいことを書いてはいたが、
  • マーケットの変化が起こっている
  • Seleniumは、使われ方が変わってきていて、新しい課題に対処する必要がある
    • 文化的なシフト、早い時点で変化、コードを書かずにテストが出来ることが重要で、QAとDevの壁をなくす、リソースを共有するのが重要
      • コンテキストスイッチ、これやって次のタスクにやるが、戻ってくることによって生産性が下がる
        • シフトレフトテスティング(?)といったもので対処する必要がある
  • コンサルタントを連れてきて、テストの文化を変えるのは本当に難しい
    • 組織の中でシフトレフト、これまでのタイムベースのテストをするのは良くない
      • イベントベース、プルリクエスト、コミット毎にテストを行う必要がある
        • 重要度が同じになってきていて、質の高いコードを書く必要がある
          • シフトレフトしようとした組織は、開発者と密に接して、QAチームから開発チームへ素晴らしい経験を提供しなければならない
            • 自動化というモノが信頼されることが重要で、自動テストが及ぼすメリットは非常に大きい
  • 開発フロー
    • WRITE CODE: コードを書く、ユニットテストを書く
    • TEST IT LOCALLY: ないとをっち
    • SUBMIT PR: CI CDでプルリクエスト毎にテストを行う
  • デベロッパーは、E2Eへの理解が不十分
  • リソースを共有して、SaaSといった開発コストが高いものでリソースを共有するのは避けたい
  • Sauce Labsでも同じ問題が起こったことがある
    • ヘッドレスで構築した(?)
      • これにより、フィードバックが得やすくなって開発が高速化し始めた
  • ヘッドレスブラウザで問題を解決することが出来るだろうとソースラブズは思いついた
  • ヘッドレスブラウザは、早いブラウザとして考えられてきた
    • スピードのメリットより、メモリが少ないや並列化しやすいというメリットがめちゃくちゃ大きい
  • ヘッドレスブラウザとは?
    • 従来は、VM上でGUIベースでブラウザを動かしてきた
    • ヘッドレスブラウザは、UIがない、ノーGUIのためスピードどころかメモリの制約といったメリットが非常に大きくて助かっている
    • OS部分を共通化できている、簡素的に出来て最高!!!
      • コストを4分の1に下げることが出来た
  • ヘッドレスブラウザによって、テストのスピードも向上する
  • ヘッドレスブラウザのテストは、既存のテストを書き換えるものではない
  • ロームドライバは1番早い、狐と比べて10%早い

自分からの質問

  • IEのヘッドレスブラウザをどう実現しているのか、私気になります!!!
    • 意訳: もちろん、出来るわけないじゃん、IEつらすぎでしょとのこと

カンファレンス全体所感

  • 日本語翻訳がめちゃくちゃ助かった

    • 海外で行われるカンファレンスはその場の日本語訳がもちろんないので、セッションの全てを把握するのが自分の英語力次第となってしまう
    • もちろん、現地でしか翻訳サービスはないため、英語セッションを重点的に聴くことにしました
  • Wi-Fiの案内用紙がなくて、Wi-Fi難民に..

    • Wi-Fi情報を入手
    • Wi-Fi遅い、使い物にならない
  • 会場に電源がない

    • 会場下のカフェで電源があることを確認、電源補充
    • 5Fホール前の休憩所に電源が生えていて、スタッフに許可を取って充電
    • 1日目の夜に電源コーナーが設立された👍👍👍
      • 運営すごーい
  • LTの発表を決めてきた

    • LTは日本人と海外の方を併せて9人の発表者がいた
    • 通訳の方と打ち合わせ
      • 主にWaitar(ウォーター)といった技術用語の発音の仕方を共有
      • 通訳をしていただく方に、ゆっくりしゃべってねと忠告された...
      • 事前に打ち合わせしているため、その場で翻訳している訳ではなく、通訳者の方は理解して通訳していることを把握
    • 発表終了後、様々な方に「面白かったよ」などとリアルでフィードバックをいただいたのが本当に嬉しかった
    • Twitterの全解放DMでのみお願いします!と宣言したにもかかわらず、わざわざ名刺を渡しに2社の方が自分のところまで来てくださり、後日連絡します!ということになった
      • 後日としっかり言ったので、気が向いたら連絡したい

※補足 おそらく、ご相談はTwitterでのみお願いしますと言いそびれたか、強く強調出来ていなかった気がしていて、そもそも別にTwitterのDMにこだわるつもりは1ミリもなかった。面倒なことを引き起こしてしまっただけであったのに少し後悔。そもそも、自分は可能性となる選択肢をわざわざ必要性がないのに潰す愚かな人間にはなりたくないのである。

  • 自腹でカンファレンスに参加することとなったものの、LTの発表が決められたからか本当に楽しかった
    • コミュニティの方々に超絶感謝
    • スタッフの方々お疲れ様でした...
      • スタッフの悲鳴が聞こえてきて、「スタッフ超絶疲れるよね。めちゃくちゃ分かる。」という気持ちになった(カンファレンススタッフ数回経験者)。

以上、「SeleniumConf Tokyo 2019 メモと所感 #SeConfTokyo」でした。

海外旅行中にフル使いしたPixelbook総評

この記事は前回の続き。

hotuta.hatenablog.com

前回のおさらい。

数ヶ月前にMacBookのキーボードがいかれてしまうも、タイミングがなくて修理が出来ずに苦しみを味わいながら開発をしていた中で海外旅行する機会が訪れ、修理を出すことに。

そこで、去年のGoogle I/Oで幸運にも安く入手出来たPixelbookを叩き起こして旅行中にフル使いすることとなった。

前回はPixelbookで開発をするのがツラいことを書いた。まるでRailsのレールを外れるかのような感覚。ツラい。とにかくツラすぎる。

よって、Pixelbookで開発することを諦めた。旅行期間中は開発なんか出来なくても何とかなる。コーディングなんて紙とペンさえあればできるのだから。

開発を諦めたところ、タブレットとしてSlackをチェックするなどする時にMacBook以上に幸せになれることが判明したのである。

なんと言っても、Slackを横画面でなく縦画面でPC表示のChromeを縦表示でチェックできるのが良い。横画面の2倍近くはチェックが捗る。最高すぎる。 Slackに投稿したいときは、タブレットからPCに戻してキーボードを使う。やはり文字を打つのなら物理キーボードだ。

Slackをチェックする用途として最高すぎることがわかり、今後もPixelbookを活用し続けるだろう。

しかし、今は絶対にPixelbookで開発はしない。レールを待っている。

Pixelbook(ChromeOS)で開発する時代は近いが、まだMacBook

MacBookのキーボードがいかれていて、イラッとしていたので旅行直前に修理に出した。そして、Pixelbookで旅行中は過ごすことにしたのである。

去年のGoogle I/Oにて、PixelbookでLinuxアプリが動くと発表されたとき、ついにChromeOSの時代がやってきたかと思った。バカ高いMacBookを投げ捨てて、いざPixelbookで開発する時代がやってくるのではないかと。

アメリカの学校のPCはChromeOSが主流らしく、将来的にはChromeOSで開発する時代がやってくると確信している。

そして、自分は時代を先取りして去年のGoogle I/Oで安く手に入れられたPixelbookの封印を解除して、旅行中はPixelbookで過ごすことにした。

結論から言うと、今はまだPixelbookで開発するのは難しい。なぜかというと、Linuxアプリのインストールがベータ版でバグが酷くて、Linuxアプリのインストールが面倒すぎるからだ。MacBookbrew caskコマンドを叩いて簡単にインストールできればPixelbookの時代だ!!!と叫んでいたはずなのだが、現実は違った。

Pixelbookと連呼しているが、ChromeOS全体の仕様を簡単に説明する。ChromeOSは名前の通り、Chromeが動く。それ以外に、Androidアプリも動くようになった。Chrome+AndroidのPCと思えばいい。開発をせずにChromeブラウジングやブログを書く、Androidアプリをインストールして終了するような使い方であれば、今すぐChromeOSに乗り換えるべきだろう。

しかし、自分はChrome+Androidでは生活できない生活をしていたことに気づかされた。頑張れば、VivaldiといったMacBookで愛用していたアプリをLinuxアプリとしてインストールしてどうにかなるだろうが、深刻なバグのせいで大ハマリしてやる気が失せた。まるでRailsのレールを外れたかのような気分だった。

改めてお気持ちを表明すると、Google先生brew caskに大金を支出してChromeOS向けにLinuxアプリが快適にインストールできる環境を数年以内に作り上げていくべきだろう。そうすれば、自分はMacBookを投げ捨て、ChromeOSを愛用するようになるはずだ。しかし、現状はMacBookに頼らなければならないことに気づかされた。数年後に期待している。

宗教上の理由でPowerPointを使わずに卒業研究審査会の発表を終えた

宗教上の理由でPowerPointを使わずに卒業研究審査会の発表を終えた

ついに今日、卒業研究(以下、卒研と略す)を実質終了した。おそらく、記述不足で再提出になる可能性は高いが、プレゼンテーションと比べて質問の受けごたえは最高だったと自画自賛しているので再発表になることはないだろう。以下は宗教上の理由でPowerPointを使わずに卒業研究審査会の発表を終えたことを記す雑なポエムであり、自分の今の気持ちと勢いをインターネットという海に流す。

正直、卒研がここまで大変だとは...

1月になるまで、卒研というものがこんなにも大変なことであるとは全く考えてもいなかった。

正直、卒研がある学科を選んで非常に面倒で大変すぎて失敗したなという思いは少なからずある。

それでも、就活と同じで終えた後はやりきった感がすごい。爽快感、そして突如に現れてくる疲労感。

そして、ひそかにで稼働し続けているWordを不要だと閉じる。あっそういえば...。

Word、PowerPointが大嫌い

卒研のための卒論は、主にTyporaMarkdown形式で書いた。PlantUMLに微妙にしか対応していないため、KibelaでPlantUMLの表示を確認したり、修正を行った。

自分の周りは、みなWordを使って卒論を書いていたが、自分はWordで卒論なんて書きたくなかった。

これは宗教上の理由である。

結局、Markdown形式に限界を感じてWordを使って卒論を整えることにした。もちろん、Markdown形式をWord形式に変換した上でだ。

さて、卒業研究審査会(以下、卒研審査会と略す)では、PowerPointで発表するようにという指定があった。しかし、自分は嫌だった。宗教上の理由である。PowerPointなんて新卒Webエンジニアの自分が触るものではない。PowerPointなんてレガシーなスライド作成手段は早く撲滅させたかった。Markdownでスライドを作りたい。この思いが卒論提出後のスライドづくりで少しずつ芽生えていた。

結局、自分は一切PowerPointを使わずに発表へ望むことになった。

Markdownでスライド制作といったらHackMD一択だろう。HackMDはreveal.jsでレンダリングしてMarkdownをスライド形式に表示もできるオンラインエディタ最高サービスである。

「直前に必要が迫られたらPowerPointに変換するようにしよう。」

そう強く思いつつ、強気でゼミの前日練習でHackMDを使ったスライド発表に望んだ。

しかし、この前日練習で大事件が起こったのである。HackMD上のMarkdownコメントアウトで発表者メモを作ってしまい、発表が悲惨な結果に終わった(お察しください)。詳細を書くのは面倒なので割愛する。(なお、この事件により、発表用原稿を別に用意することとなった。)

やはりPowerPointを使ったほうがいいのではないか。PowerPointは優秀だと認めざるをえないが、やはりreveal.jsの仕様上、PDFへは変換できるもののPowerPointへ気軽に変換出来ない以上はPowerPointなんか絶対に使うもんか。

ゼミの教授に相談したところ、「知らんから他の先生へ聞け」と言われた。

仕方ない。PDF形式でもOKか他の先生に聞いてみた。

そうしたところ、ディスプレイにスライドが映れば問題ないとのこと。

思わずガッツポーズをしてしまった。PowerPointを使わずに済む。大歓喜した。

そして、卒研審査会当日、自分のPCを持ち込んだ上で「宗教上の理由のため。Webスライド(HackMDを指すが分かるわけがないので分かりやすく言い換えた)で発表させていただきます。」

そう高々と宣言して、PDF形式にも変換せずにVGAをType-Cへ変換するケーブル付きの持ち込みMacBookで発表をした。

なお、PowerPointを使わなかったことは全く問題なかったが、発表は壊滅的な練習不足(スマホでHackMDで作った発表用原稿をほぼ読み上げ)とスライドにツッコミどころ満載であり、それ以上に論文に詳しく記述されていない知らない人は分からない点が死ぬほどあるのは理解していたため、質問は主に論文の記述不足についてであり、何度も「論文に記述できていないのですが...」と言ったのを今でも覚えている。それでも、自分の言葉ではっきりと説明出来たので、質問の受けごたえは最高すぎたと自画自賛自画自賛が大切。みんな、まずは褒めろ!もし、教授がこの記事を読んでしまったのなら、まずは褒めてくれ。誰もが褒められたいんだよ!!!

卒論を期限内に早く終わらせる

卒論は期限内に終わらせるのが最重要だと考えていたので、質が非常に低いのは十分承知であり、質について指摘されたら誤って直すしか無いという立場だ。仕事では、とにかく早く終わらせること、言われたら直すということをしなければ仕事に時間が掛かって仕方がない。仕事なんかしてられないです。

卒論は仕事であるという認識が個人的には強い。卒論をやったことにより、こういう考え方が確立したような気がする。

さいごに

卒研・卒論がない学部学科に転学するとか色々考えておけばよかったかもしれないが、後悔先に立たずである。

卒論で大失敗した経験がきっと自分を強くしてくれたはずなので、いつかまた経験が役に立るのであればいいかな感で、ツライことをよくやったと自画自賛しまくってます。

自分も、他に卒研審査会で発表した人、本当にお疲れ様!!!

以上、「宗教上の理由でPowerPointを使わずに卒業研究審査会の発表を終えた」でした。

YAPC::Tokyo 2019で"Perl on Rails"という面白いセッションについてと所感

卒論が一段落をしたので、ひさしぶりにYAPC::Tokyo 2019というカンファレンス参加してきた。

去年は学生支援制度を使って沖縄で参加して面白かったYAPCが東京で開催される、学生は申し訳ないほど優遇されて無料、東京で行われる、卒論終了後に開催ということ、さらにゲストが豪華ということで楽しみにしていて、真面目にセッションに参加したわけではない(出遅れた上にゲスト以外のセッションを生で観ていない)が十分楽しめたと思う。

個人的に1番面白かったセッションを軽くまとめた上で、ひさしぶりにリアルでカンファレンス参加をして思ったことを雑に所感として書く。

なお、筆者はPerlをとある正規表現処理のためにRubyでどうにかしたいとググっていたところ、偶然 Stack Overflow で見つけたPerlワンライナーをコピペしたことしかなく、RubyRailsちょっとできるレベルである。

  • Perl on Rails
    • 最近うまくいったことは何ですか?
  • REPLとは
    • 所感
続きを読む