2018-02-27

LINEから「MM号」うつと、DMMのMM号のアダルトビデオのジャケットを返してくれるLINE Botを作成しました。

とりあえず動作確認したので、メモとして保存。
LINEで「MM号」と打つと、MM号のジャケット写真返してくれます。
本当は動画を返したいのですが、リファクタリングしてから作成したいので、とりあえず途中成果物をここに乗っけておきます。
(もちろんほかのキーワードでもいけます。)

2018-02-25

JavaScriptでDMM APIのJSONを取得する

この概要は表示できません。投稿を閲覧するには ここをクリック してください。

javascriptのfor inに連想配列使うときに騙された

javascriptの連想配列を、for in で取得したいときに、うまくいかなかったので挙動確認したときのメモ。



2018-02-24

DMM APIを使うときのAFFILIATE IDがどこかわからなくなってしまってInvalid Request Errorが出たときの解決法

DMM APIを使うときのAFFILIATE IDがどこかわからなくなってしまってInvalid Request Errorが出たときの解決法をまとめておく。


【GAS】相席ラウンジの混雑情報を、LINE Botに聞くと教えてくれる相席コンシェルジュを作ってみた

これまでの経緯


Google Apps Script上で、相席居酒屋の在席情報を一時間おきに取得し、そのデータをスプレッドシート上に保存していました。そしてそれらの値をリアルタイムでWebサイトに更新する方法を、いままで挑戦していました。


これをLINE BOT化して、どんなユーザーでもつかいやすいようにしてみました。

創ったもの


相席コンシェルジュという、LINE Botを作成しました。


Oriental Lounge Eveという相席居酒屋の、混雑状況を分析できるLine Botを作りました。QRコードから登録できます。なう→現在の混雑状況、ぶんせき→時系列データの分析ページ、あくせす→公式ページのリンクを出します。渋谷、新宿、町田店に対応しています。

以下のQRコードから友達追加することができます。



2018-02-21

Google Apps ScriptのdoGet関数・doPost関数を解説

Google Apps ScriptのdoGet() doPost()について解説


Google Apps ScriptのページのURLに、GET・POSTリクエストが送られたときに、関数を実行することができます。主に、doGet関数と、doPost関数を利用することで、これを実現できます。これらのトリガを利用して、APIを実行したりできます。ドキュメントが英語だったので、日本語にまとめます。


Google Apps ScriptでWebアプリを作る




Google Apps Scriptで、Webアプリを作ってみたいと思います。
前回までに、以下のようなことをやってきました。


相席居酒屋の客数の時系列データを、スプレッドシート上で可視化できるようにしました。しかし、これだと実際にユーザーが利用する場合、スプレッドシートにアクセスしなければならないので、すこしユーザービリティに問題があります。


今回は、Google Apps Script上で、Webアプリを作る方法についてまとめました。
完成したものはこちらです。




2018-02-20

Google Apps Scriptでスクレイピングが捗る5つの理由




Pythonでいろいろスクレイピングしてきましたが、Google Apps Scriptでのスクレイピングがかなりよいです。
今回はGoogle Apps Scriptでスクレイピングをオススメする理由を、Pythonを利用する場合と比較して解説します。


【GAS】IMPORTXML関数で取得した値を、1時間おきに定期実行で行を追加する

IMPORTXML関数で取得した結果を、一時間おきに新たに行に追加する




前回は相席屋の空席情報をIMPORTXML関数を利用して、スクレイピングしました。

相席居酒屋の空席状況をリアルタイムでスプレッドシートに更新し、グラフ化することで男しかいない糞相席屋を撲滅する試み

糞相席屋を撲滅する試み 昔友達とネタで相席居酒屋に入ったら、男しかいなくて「相席でもなんでもねえじゃん」と思って遺憾の意だったため。行くまで空席状況がわかりにくいというのが問題だと思う。

今回は、Google Apps Scriptのスクレイピングを、IMPORTXML関数で行い、その結果をGoogle Apps Scriptで定期実行プログラムを組むことによって、時系列データを取得してみたいと思います。これをすることによって、リアルタイムの1点の値ではなく、時系列データを取得することができるようになります。


2018-02-18

相席居酒屋の空席状況をリアルタイムでスプレッドシートに更新し、グラフ化することで男しかいない糞相席屋を撲滅する試み

糞相席屋を撲滅する試み


昔友達とネタで相席居酒屋に入ったら、男しかいなくて「相席でもなんでもねえじゃん」と思って遺憾の意だったため。行くまで空席状況がわかりにくいというのが問題だと思う。これは可視化しなければいけないと思った。


​そもそも高学歴大学を卒業する意味はあるのか? 高学歴大学を卒業するメリット

​ここ最近、テレビを見ているとやたら高学歴大学生がクイズ番組に出る機会が増えてきました。それだけ世間的にはまだ「高学歴」というコンテンツがウケているのだと思います。





高学歴大学を卒業するメリットってなんなんでしょうか。高学歴大学を卒業する側としては、そもそも改めてメリットを考える機会はないですし、しなかった側は体験してないので本当にメリットがあるかは分かりません。


そもそも高学歴大学を卒業する意味はあるのか考えてみます。


2018-02-17

ICUの受験対策はどうすればいいの?受験科目から、おすすめの受験対策方法をまとめてみた

ICU生の特徴は?

この記事はICUの受験対策についてまとめています。

  1. ICUの受験対策はどうすればいいの?受験科目から、おすすめの受験対策方法をまとめてみた ← この記事
  2. 【ICU生の特徴は?】現役ICU生100人に徹底調査した記事まとめ
  3. 【ICU生に聞いた】受験時の志望動機と現状について①
  4. 【ICU生に聞いた】受験時の志望動機と現状について② 調査結果
  5. 【ICU生に聞いた】受験時の志望動機と現状について③ まとめ編
  6. ICUの偏差値は高いの?ICU生の偏差値と、ICU生が受験した大学の合否を調べてみた
  7. 【ICU生264人に聞いた】ICU生の出身高校はどの都道府県にあるのか
  8. ICUの学費とICU生の通っていた小学校、中学校、高校を見たら、お金持ちばかりだった話
  9. ICUの就職はいいの?過去3年間のデータをもとに、評判・年収・業界・就職先を調べてみた

ICUの受験対策は何をすればいいの?


ICUは普通の大学の入試問題とかなり違います。僕は2013年入学、2017年卒業でしたので、いまの入試問題とは少し違います。が、ほとんど入試対策は変わっておりません。


ICUは過去問がかなり特殊なので、しっかりとICU用に受験対策しないといけないんですよね。今回は、ICUの受験対策について解説してみたいと思います。

目次


1 一般入学試験[A方式]
1-1 .総合教養【ATLAS】(多肢選択のマークセンス方式、試験時間約80分、配点80点)
1-2 .「人文・社会科学」または「自然科学」(いずれか1科目)
1-3.英語(リスニング含む)(多肢選択のマークセンス方式、試験時間 約90分、配点90点)
2. 一般入学試験[B方式]
2-1. 第一次選考
2-2. 第二次選考


1 一般入学試験[A方式]

ほとんどの人が受けるのが、一般入学試験[A方式]ですね。こちらの問題についてみていきたいと思います。

1-1 .総合教養【ATLAS】(多肢選択のマークセンス方式、試験時間約80分、配点80点)


実はこれはつい数年前から導入された新しい問題となっています。僕の時代はリベラルアーツ適性検査という問題で、IQクイズみたいな問題でしたが、今は大きく変わりました。


実際に講義の音声を聞いて、その後配布された論文を読んで回答するというような問題となります。

「数量的領域」「言語的領域」「分析的領域」におけるリベラルアーツ教育への適性を測るとともに、試験の内容に「講義を聴く」要素が含まれる試験です。
迅速かつ的確な判断力、論理的な思考力、これまで学んできた知識や考え方を柔軟に問題解決に応用する能力などを評価します。

2017年度のATLASの過去問は、こちらのリンクから見れます。
https://www.icu.ac.jp/admissions/docs/17ATLAS.pdf


問題としては、現代文 X リスニングのような問題となっていますね。


1-2 .「人文・社会科学」または「自然科学」(いずれか1科目)


人文・社会科学もATLASと同様に、日本語の長文問題となっています。
これは僕が受験したときと同じ問題ですね。


人文・社会科学の問題に関しては、普通の現代文を読む力 + 教養力が必要とされます。なので、例えば倫理・政経などの知識がいきなり文章題の中で出題されたりすることもあります。

「人文・社会科学」または「自然科学」のいずれか1科目を選択。「自然科学」は、数学、物理、化学、生物の4分野から2分野を選択して解答します。 出題範囲については、「人文・社会科学」は文学、哲学、芸術、宗教、政治、経済、歴史、社会などの分野から出題されます。「自然科学」は以下の表を参照してください。


1-3.英語(リスニング含む)(多肢選択のマークセンス方式、試験時間 約90分、配点90点)


ICUの受験問題で一番難しいのは、英語だといっても過言ではないでしょう。相当長いリスニング問題と、長文が3つ出てきます。入試問題のリンクをこちらに貼っておきました。

https://www.icu.ac.jp/admissions/docs/17%E8%8B%B1%E8%AA%9E.pdf


入学後の「英語での学び」への適性があるかを評価しようとしています。通常の日本の大学入試に多く見られる英文和訳・和文英訳のような問題とは異なり、英語でものを考え、理解し、分析する能力を測ることを目的とします。 全体の意味と各文の論理関係を理解する力が求められます。 2部構成でまずリスニング(約30分)を行い、引き続きリーディング(60分)となります。

特に最後の英語の問題に関しては、フィーリングで文章を読んできた人では解くことができません。なぜなら、長文の中でかなり難しい文法問題が存在するからです。


2. 一般入学試験[B方式]


一般入学試験B方式は、入試方法が少し変わります。

2-1. 第一次選考


まず、一次選考では、以下の試験を行います。

1.総合教養【ATLAS】
2.英語(外部試験を利用)

英語の問題を、ELTS(アカデミック・モジュール)、またはTOEFLの公式スコアを利用できます。

英語の外部試験は、IELTS(アカデミック・モジュール)、またはTOEFLの公式スコア(出願締切日までに本学に到着したもの)を利用します。合格最低点をIELTS 6.5, TOEFL iBT79 (PBT 550) とします。

2-2. 第二次選考


そして一次選考に合格すると、個別面接に移ります。
入試問題は、下記のページにあるので、ぜひ問題をみてみください。

一般入学試験科目・過去問題|国際基督教大学(ICU)

他大学の試験とは大きく異なる選抜方法ですが、この試験そのものがICUから志願者の...

どうやってICU生向けの受験対策をすればいいの?


ICUを受験しようとして悩むのは、ATLASや人文社会科学という科目の知識問題をどうやって勉強したらよいかということです。ICU受験では、文理を問わず幅広い分野の知識を問われます。なので、広く浅く勉強することが重要になります。



全体としては人文社会科学の知識問題が多い傾向にありますから、日本史や世界史、地理などの社会系の科目は最低一つは勉強しておくべきですね。



僕がやっていた対策は、国立も併願するという選択肢でした。そうすると、文系で3科目しか受けないような場合でも、倫理・日本史・数学などの勉強を平行して行うことができます。


ICU対策には、スタディサプリが超おすすめ!





もう一つICU受験のための人文社会科学系科目の勉強手段としてオススメなのがスタディサプリですね。スタディサプリは、一流の講師の授業がネットで受講できるサービスになっています。



高校の普通科の科目はほとんど受講可能で、ネット環境があればいつでもどこでも受講できます。ICUの知識問題は「広く浅く」の出題を基本としていますから、スタディサプリの知識を一通りマスターするだけでICU受験の対策には十分なのです。


オススメは世界史とセンター試験対策政治経済です。これだけでICU受験には十分です。実際に過去問でも、かなりこの分野から入試問題が出ています。



予備校などの高い授業料と違って、仮に有料会員になったとしても、月980円ですので、登録しておいて絶対に損はありません。過去問を買うよりも、安く済むと思うので、非常におすすめですね。最初は無料体験から始められるようなので、インストールしてみて、よさそうだったら有料登録してみるのがよいと思います


参考)ここからスタディサプリの無料体験を試せます!



ICUに興味があるなら、この記事もおすすめ!


  1. ICUの受験対策はどうすればいいの?受験科目から、おすすめの受験対策方法をまとめてみた 
  2. 【ICU生の特徴は?】現役ICU生100人に徹底調査した記事まとめ
  3. 【ICU生に聞いた】受験時の志望動機と現状について①
  4. 【ICU生に聞いた】受験時の志望動機と現状について② 調査結果
  5. 【ICU生に聞いた】受験時の志望動機と現状について③ まとめ編
  6. ICUの偏差値は高いの?ICU生の偏差値と、ICU生が受験した大学の合否を調べてみた
  7. 【ICU生264人に聞いた】ICU生の出身高校はどの都道府県にあるのか
  8. ICUの学費とICU生の通っていた小学校、中学校、高校を見たら、お金持ちばかりだった話
  9. ICUの就職はいいの?過去3年間のデータをもとに、評判・年収・業界・就職先を調べてみた


2018-02-15

Visits OBっていうOB訪問サービスって何?評判やサービス内容をまとめてみた

Visits OBとは?




VISITS OBとは最前線で活躍する社会人と学生をつなぐサービスです。いわゆる、OB訪問アプリです。


就活生は、このサイトで公開されている多くの素敵なプロフィールの中から会ってみたい社会人を選んで、話を聞きにいくことができます。


参加している企業もお金を払って採用目的で登録しています。また、登録している企業もかなり有名な企業が多いです。官公庁からメガベンチャー、一流企業ばかりですね。

visits obの料金は?


登録する企業は採用のためにお金をかけていますが。学生は原則お金がかかりません。完全無料で使うことができるようになっています!

visits ob 使い方




使い方は簡単です。まず、サイトに登録しましょう。ユーザーIDとパスワードだけで大丈夫です。そして自分のプロフィールを埋めます。


そのあと、実際にOBのプロフィールを見て見ましょう。各業界で活躍している大学OB/OGの プロフィールを公開しています。様々な条件を指定して、先輩を検索できます。


魅力的なOB/OGが見つかったら、フォローボタンを押しましょう。先輩にあなた
のプロフィールが表示されます。あなたのプロフィールを充実させると先輩からのメッセージや座談会の案内が届く事も!





コツとしては、プロフィールはESだと思って書きましょう。人事の人は、このレジメを見て合うか合わないか決めます。


もし運良く招待が来たら、参加ボタンを押すだけですね。


Visits OBに参加している企業は?


大手上場企業をはじめとして、メガベンチャー等多くの企業が登録しています。また、お金を払って登録しているので、採用目的の可能性が高いです。以下が登録している企業の一覧ですね。



  • Accenture
  • PWC
  • 経済産業省
  • 三井住友銀行
  • アビームコンサルティング
  • 外務省
  • トヨタ
  • ANA
  • 博報堂
  • マイクロソフト
  • デロイトトーマツ
  • ワークスアプリケーションズ
  • Plan Do See
  • サイバーエージェント



visits obの評判は?


すでにプロフィールが拡充されている社会人が5000名以上、かつ学生の登録者数も14000名。アクティブユーザーも5000人以上と、非常に成長しているサービスとなっています。

既に大手を中心に5,000名以上の社員がプロフィールを登録しており、就活生以外の大学1、2年生にも広く開放され、学生側の登録数も約14,000名となっている。学生のアクティブ率はMAUが67%となっており、アクティブ率も高い。

企業が社員のキャリア情報を掲載するOB訪問サービス「VISITS OB」、総額2.5億円を調達し代ゼミグループと資本業務提携 (THE BRIDGE)

学生時代に、会社で働くイメージをつかむための道はいくつかある。 OB・OGを訪れ、会社の話を聞くという方法は、広く知られたアプローチのひとつだろう。VISITS WORKSが提供する「VISITS O...

大学とも提携しているようでかなりちゃんとしているようですね。立教大学と提携していたりしています。

『VISITS OB』を運営する株式会社VISITS WORKSと立教大学キャリアセンターは、大学1年生からのキャリア教育強化のため、学生の動向・キャリア志向を解析できるシステムの共同開発に向けて業務提携を締結したことを発表した。

『VISITS OB』運営のVISITS WORKSと立教大学が業務提携...大学1年生からのキャリア教育を共同構築へ (Pedia News)

『VISITS OB』を運営する株式会社VISITS WORKSと立教大学キャリアセンターは、大学1年生からのキャリア教育強化のため、学生の動向・キャリア志向を解析できるシステムの共同開発に向けて業務提携を締結しタコとを発表した。今回の業務提携では、VISITS WORKSのデータ解析技術をベースに、大学が学生のキャリアに関する志向・動向を把握でき、進路指導に役立てていくための仕組みを共同で...


OBOGに会うべきなの?


OBOG訪問は必ず必要です。内定するだけでよければ問題ありませんが、その後の人生のことを考えると、かならずOBOG訪問はしておいたほうがよいです。採用媒体だけの情報は、正直かなり偏っていると思います。いろいろなアプリを使って、実際にOBOGに出会うのがよいと思います。下の記事には、就活中にいろいろな人に話すメリットと、どのようなアプリを使えばよいかまとめていますので、ぜひ読んでみてください。

参考)

就活で悩める人におすすめの記事

独学でも初心者が月5万円プログラミングで稼げるって知ってた?その方法をまとめてみた

プログラミングで副業を初心者がやっても稼げるの?


プログラミング初心者が、独学でお金を稼ぐのってなんだか難しそうですよね。
実は、初心者からでもがんばれば、プログラミングで副業することは十分可能です。
今回はプログラミング初心者がプログラミングで稼ぐための全容を紹介したいと思います。


2018-02-14

2018年1月の振り返り

1月の結果


  • プログ
    • 9486円(Adsense)
    • 31969PV
  • Note
    • 12420円
  • A8
    • 1100円

メガベンチャーに就職するときに知っておくべきことをまとめてみた





僕は学生時代、ベンチャー企業で働いていました。設立からちょうど一年目のスタートアップと呼ばれるような教育 X ITの会社で、従業員規模も10人しかいないような会社でした。


その後新卒で入社した会社がメガベンチャーと呼ばれる、従業員規模が1万人規模のIT企業でした。インターンもしている有名なところです。


働いてみて、実体験を踏まえてメガベンチャーがどんなものかを、ベンチャーと比較して解説してみたいと思います。


相性のよい人とは、好きなものよりも嫌いなものの共通点が多い人なのかもしれない




彼氏・彼女に求めるものはなんだろうか。
容姿・身長・胸・お金、性格、いろいろなもの要素があると思う。


その中で、僕が数十年いきてきて、自分が恋人に求めるものが分かってきた。
それは、お互いがアンチパターンを共有していることである。


ぶっちゃけ、One Night Loveであればそんなものはいらない。
二人で楽しいこと、心地よいことをやっていればよいと思う。嫌いなものの共通点なんてあるより、ちょっともりあがるような話題でよい。


だけど、一緒に住むとか、そういう話になると、大事になるものは変わる。
理想だけではどうにもならなくなる時がある。そしてだいたい人が嫌いになるのは、二人の生活の中で、我慢できなくなる時が出る時だ。いろいろな家族がうまくいかなくなる時、それは趣味が合わないとか、好きなことが合わないとか、そうじゃなくて、ささいなことに我慢ができなくなる時だ。


人をつなぐのは、実はお互いの好きなもの以上に、嫌いなものの共通点なのかもしれないと思った。何が正義かより、何が悪なのか、それが一致するのが相性がよいのかもしれない。

就活中には、なるべく採用担当以外のリアルの経験を聞くべき5つの理由

就活中に、採用担当官以外の話を聞くべきだと体感した話


新卒で就活して、採用担当以外の人にも話を聞いたほうがいいと、のちのち感じましたので、そのことについて書いてみたいと思います。


2018-02-13

出る杭を伸ばす幼児・小学生向け算数教材「RISU算数」のインターンをしてみて、衝撃を受けたこと




こんにちは、DAIです。僕は2014年から2017年まで、RISU Japanという、算数のタブレット教材を提供する会社で、インターンをしておりました。(今は別の会社に就職しています)教育ITベンチャーはとっても新しい気づきが多かったので、卒業を機にRISU Japanのインターンで衝撃を受けたことを書いていきたいと思います。


2018-02-11

Google Apps Scriptでスクレイピングを定期実行して、News Picksのソーシャルデータを取得する方法をまとめてみた

Google Apps Script(GAS)でスクレイピング




Google Apps Scriptで、Web上のデータのスクレイピングを定期実行する方法をまとめてみたいと思います
Google Apps Scriptは、ExcelでいうVBAのようなもので、Googleの純正アプリケーションの上に、JavaScriptを書くことで動作をさせることができます。このGoogle Apps Scriptを使って、スクレイピングツールとして利用する方法について、解説したいと思います。

初心者でもできそうです


Google Apps Scriptは、Javascriptの知識があれば簡単にできるので、初心者にもおすすめですね。

News Picksのプロフィールページの、フォロワー数といいね数をスクレイピングを定期実行しスプレッドシート上に保存


今回は、News Picksというニュースソーシャルサイトでどんなことを書いたら、いいね数やフォロワー数が増えるかを分析するシチュエーションを想定して、1時間起きにGoogle Apps Script上で、News Picksのプロフィールページから、フォロー数、フォロワー数、いいね数を取得してみたいと思います。ちなみに結果はこんな感じになりました。(1分おきと書いてしまいましたが、1時間おきでした。)





2018-02-10

Google Apps Scriptで、正規表現でスクレイピングする方法を方法を初心者向けにまとめてみた




僕が作ったわけではないのですが、Google Apps ScriptによるスクレイピングというYoutubeの動画から写経して、Google App Scriptのスクレイピングコードを勉強します。
できることとしては、Ted talksの全動画のタイトル、スピーカーをすべてGoogle Spread Sheetに取り出すことができるというものです。(詳しくは動画を見てください。)


Google App Scriptを使って、スクレイピングするメリット


そもそも、Python使ってGoogle Apps Scriptかけばええでねぇかって話なので、なぜGoogle Apps Scriptを使うのかって話から。

- サーバーを準備せずとも、定期実行が簡単


普通にPythonなどで定期実行プログラムを組むと、どうしてもサーバー立てたりする必要があります。ちょっとしたスクレイピングをする定期実行プログラムを組むために、そこまではしたくない!みたいなときに超絶使えるのが、Google Apps Scriptです。


Googleがサーバーを用意してくれるので、定期実行するにしても、サーバーを自前で用意する必要がありません。まずcronが超簡単に使えるので、簡単な定期実行プログラムを組みたいのであれば、Python用意してサーバー立ててDBに保存したいみたいな場合でも、スプレッドシートで完結するので、非常に楽です。

- JavaScriptで書ける


Google Apps Scriptは、基本的にはJavascriptで書けるので、学習コストが低いです。
また、特別にLinuxがいじれたり、DBの構築も必要がありません。Javascriptしか書けないような人でも、かけてしまうと思います。ただし、すこし正規表現の知識がないと、スクレピングは難しいかもしれません。


- データの共有が簡単


スプレッドシートを共有するだけで、データの共有ができるので、さくっとスクレピングしてきたデータを共有するなんてことができます。


https://www.youtube.com/watch?v=xkk7OxsfTpQ



やろうとしていること

僕が作ったわけではないのですが、Google Apps ScriptによるスクレイピングというYoutubeの動画から写経して、Google App Scriptのスクレイピングコードを勉強します

1. データのスクレイピング


Ted日本語ページにアクセスし、ページャーの最後までの以下の値を取得します。

  • タイトル名
  • スピーカー名
  • 作成日時



該当するページのHTMLはこんな感じ。

<div class='media__message'>
  <h4 class='h12 talk-link__speaker'>Justin Baldoni</h4>
  <h4 class='h9 m5'>
    <a class=' ga-link' data-ga-context='talks' href='/talks/justin_baldoni_why_i_m_done_trying_to_be_man_enough?language=ja' lang='ja'>
    「男らしく」在らんとすることをやめた理由
    </a>
  </h4>
  <div class='meta'>
    <span class='meta__item'>
    Posted
    <span class='meta__val'>
    Dec 2017
    </span>
    </span>
    <span class='meta__row'>
    Rated
    <span class='meta__val'>
    Inspiring, Courageous
    </span>
    </span>
  </div>
</div>


タイトル名が

<a class=' ga-link' data-ga-context='talks' href='/talks/justin_baldoni_why_i_m_done_trying_to_be_man_enough?language=ja' lang='ja'>
    「男らしく」在らんとすることをやめた理由
    </a>

スピーカー名が

<h4 class='h12 talk-link__speaker'>Justin Baldoni</h4>


作成日時が

<span class='meta__val'>
    Dec 2017
    </span>

に該当します。


検索結果のページ番号が、URLのクエリに含まれています。

https://www.ted.com/talks?language=ja&page=2

であれば、page=2、つまり2番目のページが取得できます。

https://www.ted.com/talks?language=ja&page=3


であれば、同様に、3番目のページが取得できます。
なので、N番目のページが取得できるようにするには、最後のページの番号を取得し、一つずつ数字をあげていけば全部のページにアクセスできます。


2. スプレッドシートに書き込み


スクレイピングしたデータを、スプレッドシートに書き込みます。


3. 実際のソースコード


function MainFrame() {

  var url = "https://www.ted.com/talks?language=ja"; //ted日本語のURL
  var request = UrlFetchApp.fetch(url) //http responseの取得
  var content = request.getContentText();

  //最終ページの数字を取得
  var step1 = content.match(/page=\d*/g)
  var pages = [];
  for (var i=0; i<=step1.length-1;i++){
    pages.push(step1[i].replace(/page=/,""));
  }
  var maxnum = Math.max.apply({},pages);

  //空の配列を作る

  var Speakers = [];
  var Titles = [];
  var Dates = [];

  //スクレイピング実行部分

  for (var i=1;i<=maxnum;i++){

    var url = "https://www.ted.com/talks?language=ja" + "&page=" + i;
    var request = UrlFetchApp.fetch(url);
    var content = request.getContentText();
    var speakers = SpeakersArray(content);
    var titles = TitlesArray(content);
    var dates = DateArray(content);

    for(var n=0;n<=speakers.length-1;n++){
      Speakers.push(speakers[n])
    }

    for(var n=0;n<=titles.length-1;n++){
      Titles.push(titles[n])
    }

    for(var n=0;n<=dates.length-1;n++){
      Dates.push(dates[n])
    }
  }

  //2次元配列を作成

  var Data = [];
  for(var n=0;n<=Speakers.length-1;i++){
    var data = [];
    data.push(Speakers[n]);
    data.push(Titles[n]);
    data.push(Dates[n]);
    Data.push(data);
  }  
  //スプレッドシートのid

  var id= "14OEIoSZ0RodyHgi3krhHuLDQd8k37CDy2Mm8Csrhsdk"
  var File = SpreadsheetApp.openById(id);
  var Sheet = File.getSheets();
  Sheet[0].getRange(1,1,Speakers.length,3).setValues(Data);
}

function SpeakersArray(x){

  /*実際のHTML
    <h4 class='h12 talk-link__speaker'>Justin Baldoni</h4>
  */

  //スピーカー名を配列で返す
  var step1 = x.match(/<h4\sclass='h12\stalk-link__speaker'>.*<\/h4>/g);
  var extract = []
  for (var i=0;i<=step1.length-1;i++){
    extract.push(step1[i]
  .replace(/<h4\sclass='h12\stalk-link__speaker'>/g,"")
  .replace(/<\/h4>/g,"")
  .replace(/\n/g));
  }
  return extract;

}

function TitlesArray(x){

  //スピーチタイトルを配列で返す

  /*実際のHTML
    <a class=' ga-link' data-ga-context='talks' href='/talks/justin_baldoni_why_i_m_done_trying_to_be_man_enough?language=ja' lang='ja'>
    「男らしく」在らんとすることをやめた理由
    </a>
  */

  var step1 = x.match(/<a\sclass='\sga-link'\sdata-ga-context='talks'\shref='\/talks\/.*\?language=ja'\slang='ja'>[\w\W]*?<\/a>/g,"")
  var extract = []
  for (var i=0;i<=step1.length-1;i++){
    extract.push(step1[i]
    .replace(/<a\sclass='\sga-link'\sdata-ga-context='talks'\shref='\/talks\/.*\?language=ja'\slang='ja'>/g,'')
    .replace(/<\/a>/g,"")
    .replace(/\n/g,""));
  }
  return extract;
}

function DateArray(x){

  //日付を配列で返す

  /*実際のHTML
    <span class='meta__val'>Dec 2017</span>
  */

  var step1 = x.match(/<span\sclass='meta__val'>\n*[A-z]{3}\s\d{4}\n*<\/span>/g,"")
  var extract = []
  for (var i=0;i<=step1.length-1;i++){
    extract.push(step1[i]
    .replace(/<span\sclass='meta__val'>/g,"")
    .replace(/<\/span>/g,"")
    .replace(/\n/g,""))
  }
  return extract;
}


実行すると、スプレッドシートにデータがすべてスクレイピングされ、スプレッドシートに反映されるようになります。ただし、私の環境ではメモリ不足になり確認できなかったので、ほかのタイミングで再現してみたいと思います。

関連資料


UrlFetchApp.fetch()
https://developers.google.com/apps-script/reference/url-fetch/url-fetch-app

getContentText() : Gets the content of an HTTP response encoded as a string.
https://developers.google.com/apps-script/reference/url-fetch/http-response

match(): 正規表現を取得するメソッド
https://tonari-it.com/gas-regular-expression/

Math.max.apply:配列の最大値を取得するメソッド
https://qiita.com/YusukeHirao/items/e848f5de40beaa52e002










マニュアルを書いても誰も読まない理由を、SEOの観点から考えてみた

マニュアル書いても読まれない問題



前職(インターン)でも、営業チームのマニュアルを作っていたりしました。その時に、せっかく作ったマニュアルが読まれないということが多々あり、「なんでじゃろ」と思っておりました。


また、新卒で入社した会社でも、上司が作ったマニュアルをたくさんのマニュアルをかたっぱしから読んでいても、やはり調べていても検索に引っかからないマニュアルというものがありました。



その時に、「なんでwikiを作っても読まれないwikiがあるんだろう」と思って、結論が出たのでまとめます。



目次


  1. マニュアルを作る側は、包括的にwikiを書く
  2. マニュアルを読む側は、個別の問題を、部分的に検索する
  3. ほとんどのマニュアルは、ロングテールキーワードで記述されている
  4. ほとんどのマニュアル利用者は、ショートテールキーワードで検索する
  5. 読まれるためのSEO対策を、マニュアルにもする必要があるかもしれない
  6. マニュアルにも、導線が必要



ググれ!って言っていい時と言っちゃいけない時の考察



プログラミング初心者の方のメンターをオンラインでやらせてもらっていて、ググれ!と思うことがあるのですが、ググれ!って言っていい時と言っちゃいけない時があると思ったため、ググるという行為について、考えてみるとします。


目次



  1. ググるには仮説が必要
  2. 仮説には自分の経験か、経験を得るためのリソースが必要
  3. ググれ!を過去の経験がない人に言うのは酷なのでは?
  4. メンターはググれの前に「経験判定」が必要かと思う

2018-02-04

フリーランス・エンジニアとして独立するときによさそうなミッドワークス(Mid Works)についてまとめてみた

ミッドワークスとは?

最近有名になりつつある、ミッドワークスの評判についてまとめてみました。


Midworksは株式会社BrandingEnginnerが運営する、フリーランス向けエージェントの一つです。担当営業との面談を受けた後、実際に案件を紹介してもらえるようになります。


最大の特徴はその保障制度。一般的にフリーランスには保障がありません。福利厚生もなければ社会保険料は全部自己負担が原則です。


ところが、Midworksなら、社会保険料の半額が保障され、書籍・勉強会費も月1万円まで受け取れ、さらに確定申告用の会計ソフトも無料で利用可能です。


また、適切な案件が見つからない場合も、自身のスキルから予想月単価を算出し、その80%を保障してもらえます。


3分で自動テストの全体像がわかるようにまとめてみた

品質保証チームにもうすぐ半年いることになります。ここ最近、自動テストの重要性が叫ばれています。しかし、実際の現場にいると、なんでも自動テストしようとするのは誤りであるという声を多く聞きます。また、過度な自動テストに対する期待を聞くことも多くあります。


今回は、自分の仕事の実体験を含めて、自動テストの全体像がわかるようにまとめてみたいと思います(新卒の知識なのでそこまであてにしないでください。)


システムテスト自動化 標準ガイド CodeZine BOOKS
翔泳社 (2014-12-17)
売り上げランキング: 17,628


自動テストを導入するとどんないいことがあるのでしょうか、また、どんな問題があるのでしょう。今回は、システムテスト自動化標準ガイドという本を参考に、まとめてみたいと思います。

ツイッターでの出会いが、なぜ面白いのか考えて出た結論




昨年から、過去にツイッター経由で、普段絶対会わないような人に会ってきたんですけど、ツイッターで出会う人はおもしろい人ばかりですね。ほんとに。


VR開発のディレクターさんだったり、プロのブロガーさんだったり、フリーランスの方だったり。普通に新卒で品質保証やってるだけだったら、なかなか出会えないです。ほんとうに勉強になる。


ツイッターでの出会いが、なぜ面白いのか



ツイッターで出会う人がなぜ面白いのか、それはおそらく出会いのデザインがよいからなんだと思います


普通に我々が知り合う人は、ある程度本音と建前を持ちながら、傷つけず、傷つけられずを考えて、相手との最大公約数を少しずつ探りながら、友人関係を築いていくのだと思います。(僕はこれが苦手なので、すぐ自分が好きなことをいい、相手が好きなことを聞き出そうとしてしまうため、ぶっちゃけ人付き合いが苦手です。)


ツイッターでの出会いで面白いのは、そういうプロセスがあまりいらないからなのかと思います。出会う人が普段どういうことに興味を持っていて、どんな風に感じるか。そんなことに気軽にメンションを飛ばせ、そんな中で出会うことができる。その人の一番正直な価値観がわかったうえでの出会いになるから、ギークな出会いがデザインされている環境だと思うんですよね。宮台真司さんの言葉を借りれば、島宇宙化された出会いのデザインだと思います。(オタクに優しい)


同じ価値観を持ったものだけで場を作ることを島宇宙化と定義している(wikipedia


人は、価値観と体験に恋をするとおもいます。それが、あらかじめオープンにされたうえでの出会いなので、普通に初対面でも、その辺の知り合いよりディープな話から入れるんですよね。


ギークな出会いをもっとデザインし、いろいろな面白い人に出会いたいと思います。

注目の投稿

めちゃくちゃ久しぶりにこのブログ書いたw 更新3年ぶりw > 多様性というゲームは尊厳と自由を勝ち取るゲームなのかもしれないな。  もともとツイッターでツイートした内容なんだけど、ちょっと深ぼる。 ----- 自分は男 x 30代x 二児の父 x 経営者 x 都心(共働き世...