ほつた@はてな

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

Google I/O 2018 現地で聴いたWeb系厳選セッション3つ #io18jp

Google I/O 2018に現地参加して、ほとんどセッションを聴くつもりはなかったのですが、物凄く聴きたくて聴いたセッションが5つあります。

今回は、現地で聴いた5つのセッションのうち、マイナーな3つに絞って簡単(雑)にご紹介します。 基調講演やデベロッパーキーノートはもちろんYouTubeで今すぐ観た方がいいです(自分は後者をまだしっかり観れてません泣)。

今年も現地参加をして感じたことは下記をご覧ください!

hotuta.hatenablog.com

日本人えーじさんがreCAPTCHA v3について紹介した新規登録やログインに関するセッション

煩わしいreCAPTCHA v2は早く滅んで欲しいと切に願う自分にとっては感動のセッションでした。セッションの中でWebアプリでも新規登録やログインが指紋認証を使うことが出来るとのことだったので、早速試してみたいと思いました。

www.youtube.com

Googleがついにテコ入れ! 激遅のWordpressを高速化するセッション

インターンをしていた会社でGoogleWordpressを高速化したいのでそれに特化した求人募集があるぞと耳にして、なんかこのセッション面白そうだなと思って聴きに行ったところ、新しいWordPressプラグインで従来AMPに対応できないところもAMPに出来るという紹介などで自分にとっては滅茶苦茶面白かったです。

www.youtube.com

Google検索のSEO技術について楽天レシピを大々的に取り上げてナウいSEO技術実装手法を紹介したセッション

検索トラフィックを激増させた楽天レシピ凄いという話からナウいSEO技術実装手法が紹介されていました。 また、Google Search Console BETAの紹介もあり、初耳だったので実際に自分で使ってみたところ、従来の分かりにくいUIと比べて滅茶苦茶使いやすくて感動してしまいました。

www.youtube.com

以上、「Google I/O 2018 現地で聴いたWeb系厳選セッション3つ」でした。

Google I/O 2018に学生が現地参加した所感 #io18jp

今年も大学4年生としてGoogle I/O 2018に現地参加してきました。

なお、今年も宿泊代金と学生チケット代(航空券代約10万円は除く)をご支援していただいた日本Androidの会には、どう感謝をすればいいのか分からないくらい心より感謝申し上げます。 学生であれば、日本Androidの会 学生部に所属した上で当選することが出来れば支援していただけます。 ちなみに、去年も今年もちょくちょく学生でGoogle I/Oに現地参加している方を見掛けました。来年以降にGoogle I/Oに行ってみたいと思っている学生さんは日本Androidの会 学生部でお待ちしております。

今年のGoogle I/Oを一言で言うと、最高の野外フェスだったと思います。 そして、去年の微妙なところを改善して更に良くしていく改善が感じさせられました。

この記事では去年と今年の違いや個人的なハイライトを紹介したいと思います。 Google I/Oの現地でしか味わえなかったことなどについて別途記事を書きたいと思っています。

去年と今年の違い

設備面

  • 今年は会場が去年と比べて1.3倍くらいあったような気がしました。
  • 今年は公式シャトルバスの中にWi-Fiと電源が装備されてる車両もあった(しかし、電源やWi-Fiが欲しい車両には搭載されていないかパスワードが不明)。
    • 公式シャトルバスは去年より出発時間が適当で、シャトルバスなんか使うんじゃなかったと激しく後悔しました。

セッションの内容

  • 午前の基調講演は技術的な話が皆無で、Googleの取り組みや改善するところの紹介で顧客が本当に欲しいものが紹介されて物凄く盛り上がっていました。
    • 去年は座席番号200番台と後ろの方にいて、日差しが強くて日焼けしまくった上に盛り上がりを感じることがあまり出来ませんでしたが、今年は日差しが差さない前の方の席に座ったところ物凄く盛り上がってて驚きました。
      • 前の方の席を確保するためには、バッジピックアップの前日に現地入りして午前中までにバッジピックアップをしなければならないかと思います。
    • 去年はTwitterの開発者の方が登壇してPWAを流行らせるぞと確か基調講演であったような気がしますが、今年はGoogleという巨大企業が顧客が本当に欲しいものを作ったという紹介で午前の基調講演が終わってしまったのが個人的に気になりました。
  • 今年のWeb系のセッションは実装例を紹介するセッションが多かったです。去年は数字がこれだけ良くなりますよといった紹介や技術紹介だけが多くて少し違和感を感じていたので、少なくともWeb系のセッションは去年より良くなっていたと思いました。

個人的なハイライト

開発者向け基調講演に出遅れた

実は、去年は1人で現地参加して、現地で数多くのセッションを聴いて終わってしまい大後悔しました。 そこで、今年はセッションをほとんど聞かずに現地でしか体験できないことを沢山しようと決心していました。 それでも、基調講演を聴いた後、開発者向けの基調講演くらいは聴いておきたいと思っていて、開発者向けの基調講演は参加するはずでした。 しかし、お昼ご飯をゆっくり食べすぎたからか午前の基調講演に座っていた席に戻ることが出来ず、YouTubeでも観れるしいいかということで諦め、とっさにCodelabsに向って泥沼に足を踏み入れることとなったのです。

Codelabs

CodelabsではGoogleが公開しているチュートリアルを現地でやってみるというもので、Googler(グーグル社員)の方が分からないことがあればサポートしてくれます。 しかし、このCodelabsは大きな罠が隠されていて、一瞬で終わりそうなものが中々終わりません。 理由としては、1箇所の会場からGCPにアクセスをしてしまっているので、GCPが謎のエラーを出したり、GCPのプランが一番安いプランでデプロイに15分掛かるものなど外部へアクセスするCodelabsにはいくつもの罠が隠されているからです。 自分は最初にRuby on RailsGCPにデプロイするCodelabsに取り組み、最後のデプロイに普通に待つと15分掛かるという物凄く痛い目にあって泣く泣く撤退しました。 翌日、作戦を変更して会場のPCに用意されたWebStorm上で完結するWeb系のCodelabsに取り組みました。 PWAのチュートリアルは物凄く分かりやすく、WebStormが最高に使い勝手が良くて30分程度で終えられました。 引き続き、AMPにも取り組み1時間ほどで終えてシールを4枚コンプリートしました。 来年のチケットが当たると嬉しいですが、数十人がコンプリートしている中で当選人数が4人らしいので高倍率みたいです...。

イベントに参加する技術

セッションをほとんど聞きにいかない(あとでYouTubeでじっくり見る)

上にも書いたのですが、今年は去年の教訓を活かしてセッションをほとんど聞きませんでした。 セッションのほとんどはYouTubeでリアルタイムに公開されていて、現地で聞く必要は皆無なのです。 現地でセッションを聞くと満足してしまいますが、何してたんだっけと何も残らないことを去年経験して嘆きました。 結局、今年は去年の屈辱をはらすために、最大でも1日3セッション程度しか聞きませんでした。 あとは現地でしか経験出来ないことを重要視して、Codelabsに行ったり、Sandboxにいったり、昼寝したり...。 去年の屈辱を見事晴らすことに成功しました。 本当は他の人にも同じような屈辱を味わって欲しくなかったのですが、日本にいると理解が出来ない忙しさに見舞われてブログを書くことすら出来ませんでした(ごめんなさい)。

英語が出来ればもっともっと更に楽しめたに違いない

また、去年も思ったのですが、英語が出来たほうがもっともっと楽しめたに違いないと思いました。 しかし、英語が出来なくても凄い技術を持った日本人が集まっていて、英語が出来なくてもどうにかなってしまう部分が多々あります。 去年は1人で行動していて、海外の方に話しかけられてもほとんど話すことが出来ませんでした。 今年は同級生の友人と2人で行動していて、話しかけられて2人で協力しあって、ほんの少しでも会話することが出来て、去年より楽しめました。 もしGoogle I/Oに参加することになってこの記事を読んだのであれば、2人以上で現地参加することを強くおすすめしたいです。

トラブルには英語で会話するチャンスが用意されていて、海外の方と話すことになりました。 海外の人と話す機会を最高のものにしたいという気持ちが少しでもあるのであれば、今すぐに英語の勉強をするべきでしょう。

なお、さらに詳しい現地参加術は別記事か同人誌や技術書などで別途書きたいと思っています。

以上、「Google I/O 2018に学生が現地参加した所感」でした。

7日間無料で試せるオンライン英会話ネイティブキャンプ(NativeCamp)が意外と良い話

実は、明日からGoogle I/O 2018に参加するために渡米します。

去年の英語の出来なさを痛感したのと同時に英語をしっかり勉強したいと思っていたのに全く勉強することがなく、一昨日くらいから直前になってオンライン英会話ネイティブキャンプ(NativeCamp) で勉強をし始めたら楽しい上に教材とか案外良くてもっと早くこれで毎日勉強してみたかったという話です。

誰もが中学生あたりから大学生まで英語の授業を受けることになるのですが、やはりピザが1枚で食べれる人数を超えた集団教育は自分には合わないなと思っているのと、白黒で退屈なプリント課題を出されて、そもそも英語って面白いというのを教えてくれないところが問題かなと思っています。 面白いとか楽しいとかそういう気持ちがあるか、必要に迫られてやるとならないと英語の勉強なんてしないですよね。

自分の話になりますが、去年に渡米するまでは英語なんてGoogle翻訳でどうにかなるし、別に英語なんて学ばなくて全く問題ないでしょと思っていたのですが、渡米したことによって自分の中で根強かった英語不要論が崩壊したように感じました。 しかし、結局その後に英語を自分から学びにいくようなことがなくて、開発系のインターンを色々な会社でさせてもらって技術を高めさせていただいて、いざ就活をしているうちに日本で雇われて働くのってどうなのと自分の中で猛烈に違和感を感じ始めました。 日本にあるWeb系の会社は、何かワクワクさせられるようなことをしていなくて保守的で面白くないんです。 英語が出来ればもっと選択肢が広がるんじゃないかなと今更気づく始末です。

さて、オンライン英会話ネイティブキャンプ(NativeCamp) の良いところは、 いつでもレッスンが受け放題なところ専用アプリが使いやすい教材が日本語と英語で1行毎に対になっていて英語ができない人でも英語が出来るように底上げしようとしているところだと思います。 いつでもレッスンが受け放題なので、予約などをせずに時間の縛りなく受けたい時に受けれます。なので、15:17など半端な時間でも英会話が出来ます。 時間帯によっては講師の数が不足気味で受けれないということがあるかもしれませんが、自分は気になりませんでした。 オンライン英会話というとSkypeが主流なのですが、自分としては使いやすいアプリで予約や教材を見ることが出来て滅茶苦茶良いです。 教材についてですが、自分からすると本当に分かりやすいです。学校はNativeCampの教材を採用したほうがいいんじゃないかというくらいです。

ざっと説明してみましたが、オンライン英会話ネイティブキャンプ(NativeCamp) の凄いところは7日間無料でレッスン受け放題をお試し出来るところであると思います。 新規登録後、日本語カウンセリングを予約してカウンセリングを受けてみるとレベル判定をしてもらえて、教材の提案や学習方法を教えてもらえるので、超絶おすすめです。 多分お試ししてみると多分自分のように良さが分かるかと思うので、試してみてはいかがでしょうか。

以上、「7日間無料で試せるオンライン英会話ネイティブキャンプ(NativeCamp)が意外と良い話」でした。

最近流行りのSPAは非公式APIがあるからスクレイピングしなくていいじゃん

この記事はWebスクレイピング Advent Calendar 2017 - Adventarの24日目の記事です。

身の回りのポチポチ作業の自動化やスクレイピングが大好きなほつたです。 今回は、今流行のSPAサイトをスクレイピングしようとして、スクレイピングなんてしなくていいじゃんと気づいた話をしたいと思います。 ざっと書いてしまうので、基本的なことやSPAについての説明は省きます。分からない方は適度にググって下さい。

きっかけ

最近流行りの出前サイトをスクレイピングしたいと思ったのですが、サイトが今流行のSPAで画面をスクロールする毎に情報が表示されるサイトをスクレイピングなんてしたくありません。 強引にスクレイピングをしようとしたのが2017年の中で1番苦痛だったかもしれません。 それでもどうにかスクレイピングをしたいと思っていたのでした。

ハブる大切さ

一苦労している中、APIがあったらいいなという思いでGithubを検索したところ、良さげなリポジトリを見つけました。 (コードに関してはググるんじゃなくて、早くハブれば良かったと思いました。)

github.com

コードリーディングをしたところ、なんと非公式APIを叩いて情報を取得しているのです。 (あぁ。そういえば、このサイトSPAじゃん...。) これはと思い、自分で非公式APIを叩いてみることにしました。

非公式APIの鍵:X-CSRFトーク

コードを読んでいると、X-CSRFトークンを手に入れた上でAPIを叩いて情報を取得しているようでした X-CSRFトークンはCookieと紐付いていて、Cookieを所持しない状況でAPIを叩くと情報が返ってきません。 最初、Rubyの標準添付ライブラリ net/http を使ってAPIを叩いていてCookieを所持しないため失敗してしまいました。 結局、大人気の rest-client というライブラリを使ってAPIを叩いてやっと情報を手に入れることに成功しました。

非公式APIを活用して完成したもの

redcycle.hatenablog.com

非公式APIを活用することにより、欲しい情報を手軽に得ることが出来て以下のものが出来ました。 残念ながら、用意されるべきGoogleマイマップのAPIがないためにSeleniumを使って強引にマイマップを更新しています。

まとめ

SPAサイトはスクレイピングよりも非公式APIを適度に叩いてみるのが手早いです。 SPAっぽいサイトだなと思ったら、ChromeデベロッパーツールのNetworkパネルで「api」と検索すればAPIっぽいのが見つかることが多いです。 何でもかんでもスクレイピングしたくなりますが、APIを叩く方が手軽かと思います。

以上、「最近流行りのSPAは非公式APIがあるからスクレイピングしなくていいじゃん」でした。

adventar.org

急成長中のBツーBベンチャー「SmartHR」でインターンをしてます

8/28(月)からBツーB *1ベンチャークラウド人事労務ソフトを開発しているSmartHRインターンをさせていただいています。 SmartHRでは、自分が入るまではインターンや新卒を受け入れた事がなく、初インターン生として暖かく受け入れて頂きました。 これまでの経緯や思ったことを簡単に書いてみました。

*1:2017/12/18追記

コメントでご指摘ありがとうございます。

http://b.hatena.ne.jp/chibikujira/20171218#bookmark-352000324

実は、B to BをあえてBツーBと好みで表記しています!

参考

SmartHR、企業向けベンチャーが大規模宣伝する事情とは… | 商社・流通・サービス ニュース | 日刊工業新聞 電子版

続きを読む