BLOG in Atelier.Minami

ゲーム攻略、読書感想文など。

プログラマ視点でみたシリコンバレー シーズン2(3)

2019年01月22日 15時51分54秒 | テレビ番組
シーズン2もいよいよ折り返しです。
ちなみに6話は吹き替えより字幕の方が笑えます。

<ネタバレあり>

第5話「サーバ・スペース」

新たに6人のプログラマを雇うことになったパイド・パイパーは新オフィスへの移転をすることになります。
しかし、ギャビン・ベルソンの圧力によりどこからもサーバを借りれなくなったため、自前のサーバを構築することと引き換えにオフィス移転は取りやめになります。

ところが隣に住むノアという老人が文句をつけに来ました。実はこのあたり一帯は商業地区ではないため、アーリックの屋敷で業務を行うことは違法だからです。
困ったリチャードですがノア自身も飼育を禁止されているフェレットを飼っていることを偶然目撃したためノアの口封じと、ついでにジャレッドに部屋を貸させることができました。

フーリーではXYZの部長バナーチェクが、まったく役に立たない副部長のビッグヘッドをはずすようギャビンに進言しますが、聞き入れられず辞職します。
かわりにビッグヘッドが部長へ昇進しました。
また、ニュークリアスのリリースに先駆け、総合格闘技UFCの4K画質によるライブ配信をニュークリアスが行うという決定を発表しますが、大幅にスケジュールが遅延している開発陣は不安を隠せません。

ギルフォイルのせりふにあった「パブリックのクラウドは性能が読めない」について解説します。
パブリッククラウドはクラウド会社が提供するサーバの中のどれかが割り当てられます。基本的には利用者が決定したスペックを保証されますが、サーバの筐体レベルは他のユーザとの共用になるため、その影響はゼロではありません。
また、同じスペックのサーバ同士でも主にCPUなどハードの世代によって多少の性能差はでます。つまり割り当てられるサーバに当たりはずれがある、という現実があります。ネットではこれをガチャに例えて揶揄します。
同じくギルフォイルのセリフに出てきた「ビットコイン・リグ」ですが、これはマイニングを行う装置を指します。マイニングは説明すると仮想通貨から話さないとならないので省略しますが、要は高速なCPUの演算力を必用とする装置にリチャードのアルゴリズムを使ったらバカ早くなったということでしょう。
サーバ構築用にギルフォイルが購入したラデオン7850は実在のGPUです。GPUとはリアルタイムの画像処理に特化した演算装置で、最近はスペックが劣る代わりにコストに優れたCPUを内蔵したGPU(GPGPU)も多いです。GPUは、PCはもちろんPlayStationやNintendoSwitchなどのゲーム機にも積まれています。



第6話「ホミサイド」

ニュークリアスによるライブ配信は大失敗に終わりました。
開発の遅れをまったく知らされていなかったことにショックを受けたギャビンは、マーケティング会社に依頼してニュークリアスを搭載したフーリーフォンのユーザアンケートを行いますがひどい結果になります。

モニカはパイド・パイパーでも同じことをしてニュークリアスに差をつけることを提案します。
飲料会社のホミサイドが、宣伝のためのカースタントのライブ配信を企画しており、そのCEO、通称”ダブルA”がアーリックの大学時代の後輩であるというつながりから、ホミサイドとライブ中継の契約を行います。
しかし、アーリックは、ダブルAが自分を師匠のように慕っていると勘違いしていることから、空気が悪くなりアーリック抜きでの交渉を行います。
ダブルAとリチャードの打ち合わせはスムーズにいきますが、中継画面にパイド・パイパーのロゴを入れる点はダブルAが首を縦に振りません。怒ったリチャードはダブルAに禁句ともいえる悪口を言ったためこの話は白紙になりました。
かわりに自然史博物館が行っているカリフォルニアコンドルの巣にある卵をライブ配信することになりました。もっとも卵が動くはずはないので静止画と見まがうような絵面ですが。

ホミサイドのライブ配信はパイド・パイパーの代わりにエンドフレームという会社の技術を使って行われました。本当はパイド・パイパーがやっているはずだった美麗な動画配信をこのエンドフレームがやってのけました。
そしてエンドフレームとは、かつてVCのブランスコム社でミドルアウトの説明をさせて技術を盗んだ連中でした。

今回の話の肝となるSWOT分析とはハーバード大学で生まれた現状分析方法です。目標達成に向けた環境分析を”強味(Strengths)”と”弱み(Weaknesses)”という内的要因と、”機会 (Opportunities)”と”脅威 (Threats)”という外的要因、計4つのカテゴリに振り分け、強味をどう生かすか、弱みをどう克服するか、といった使い方をします。
ギャビンがフーリーフォンのひどさの例えとしてWindowsVista、iPhone4、Zuneをあげ、部下がAppleMapと例える名シーンがありますが、iPhone4は手で持った時に電波が悪くなる不具合、AppleMapはリリース当初にでたらめだらけの地図を表示した不具合をさしていると思われます。Zuneはマイクロソフト製の音楽プレーヤーですがアメリカとカナダでしか発売されていないことを考えるとその性能は推して知るべしかもしれません。
ホミサイドはこの1話だけの登場ですが無駄に凝ったウェブサイトがあります。

プログラマ視点でみたシリコンバレー シーズン2(2)

2019年01月22日 01時11分13秒 | テレビ番組
シーズン2の続きです。全シリーズの登場人物の中で最も頭のネジが飛んでいる男ラス・ハンネマンがついに登場します。



<ネタバレあり>

第3話「悪貨」

リチャードはギャビンの提案をのんでフーリーに加わる事に決めますがパイド・パイパーの面子は全員反対します。
やむを得ず、一人でフーリーに移籍しようとするリチャードの前に現れた投資家のラス・ハンネマンはパイド・パイパーへ出資すると言います。
ハンネマンから500万ドルの出資を受けたため、開発を継続しますが、全米最悪の男といわれるハンネマンの出資はラビーガをはじめみんなから嫌がられます。
ハンネマンは会社にきてリチャードのやり方に口出ししたり、出資した資金の一部で勝手に巨大な看板広告をだしたりとやりたい放題。

しかし巨大看板を自社の目の前に設置されて怒るギャビンは、顧問弁護士の献策でビッグヘッドを出世させて「パイド・パイパーを開発していてもおかしくないほど優秀な人物」という虚像を作り、裁判で戦う準備を始めました。

ディネシュが人員要請の際に言った「リファレンス・コード」とは、開発者がライブラリの仕様を理解しやすくさせるためのお手本となるソースコードのことです。開発者はそのコードを応用してスムーズに開発ができるようになります。
APIはライブラリの利用方法の説明書みたいなものです。有名なものだとJavaAPIがあります。開発者は利用したいライブラリがあるとき、そのAPIを見て使い方(引数の役割や戻り値の型など)を知ることができます。
ちなみにディネシュのせりふの中で「さらに二人をJavaやiOSやアンドロイドへの組み込みに」といっていますが、実際にはJavaではなくJavaScriptといっています。
JavaScriptは主にクライアント側で動作するスクリプト言語です。例えばWebページにあるプルダウンを選択したら別のテキストボックスが表示される、といった動作を制御します。もっとも最近ではJQueryやRiactなど、サーバサイドで動作するJavaScriptもメジャーではあります。




第4話「レディー」

リチャードは開発者の採用面接を行っていました。その中でめがねに適ったのはジャレッド・パタキアンという変わり者と、凄腕のプログラマであるカーラの2人。
しかしジャレッド・パタキアンの採用は、アーリックがかつてアビアトで雇おうとした際に苦い思いをさせられたことがあったために反対しますが、リチャードは聞き入れません。

ギャビンは新部門「XYZ」の立上げをマスコミに発表し、その部長に外部から招聘したロボット工学の権威であるバナーチェク、そして副部長にビッグヘッドを起用すると発表します。
何が何だかわからないビッグヘッドでしたが、やりたいことをやっていいといわれ安心します。

パイド・パイパーの取締役会が開かれました。
ハンネマンが議決権を2票持っているとはいえ、リチャード、アーリック、ラビーガ代表のモニカで3票あるため、ハンネマンの勝手は通さずに済むはずでしたが、ハンネマンが提案した3万ドルの販促グッズの制作にアーリックは賛成してしまいます。

カーラがパイド・パイパーで働き始めましたが、ギルフォイルとディネシュの前でわざと彼らより優遇されているふりをしてからかい、リチャードから注意を受けます。
リチャードはアーリックの意思を尊重し、ジャレッド・パタキアンの雇用を見送る決意をし、不採用の電話を彼にしますが、なんとハンネマンが自社に横取りしていました。


カーラが面接で言っていたVP9とは動画圧縮コーデックのことです。コーデックとは圧縮・解凍ができるソフトです。
WebRTCはビデオチャットのようなストリーミングをブラウザで利用するためのAPIです。

プログラマ視点でみたシリコンバレー シーズン2(1)

2019年01月18日 22時02分33秒 | テレビ番組
今回からはシーズン2のレビューです。個人的にはこのシーズン2が一番好きですね。



<ネタバレあり>

第1話「サンド・ヒル・シャッフル」<原題:Sand Hill Shuffle>

テッククランチの優勝から数か月後、パイド・パイパーはVCたちから注目され続け出資の話が引く手あまたでした。しかし本命は起業時から5%の出資をしているラビーガに決まっており、ラビーガの代表ピーター・グレゴリーがアフリカから帰国し次第条件を詰める予定でした。
ところが、ピーターがアフリカで亡くなったという訃報が入ってきます。

ピーターのいないラビーガはあてにできないと、アーリックとリチャードは以前から出資の打診をしてきていたVCのひとつ、スターン・テイラー社へ出資の依頼をしにいきました。
そこで意外にも冷めた反応をされますが、リチャードがその態度に怒りを露にすると手のひらを返したように評価額と出資金を値上げしてきました。
これに味を占めた二人は他のVCに赴いてはわざと無礼な態度を働き評価額と出資金を釣り上げていきます。そしてついに評価額7500万、出資金1500万までいきます。

一方、ピーターの後を継いだローリー・ブリームはパイド・パイパーをつなぎとめるため、評価額1億、出資金2000万を提示。リチャードはラビーガと契約することに同意します。
しかし、モニカはその話を断るようにこっそり伝えてきました。身の丈に合わない評価額は自分の首を絞め、ダウンラウント(増資による株価低下)につながるからです。

ピーターの告別式でローリーと再会したリチャードは、評価額5000万、出資金1000万の条件で交渉し、彼女も同意します。
しかしその告別式の最中、リチャードへ顧問弁護士のロンからメールがきました。
ギャビンがパイド・パイパーの所有権を主張し訴訟を起こしたというのです。

今回は新シリーズの第1話ということもあり出演者が豪華です。
冒頭のAT&Tスタジアムで登場するドリュー・ヒューストンはDropBoxの創業者、ウィンクルボス兄弟は映画「ソーシャル・ネットワーク」でマーク・ザッカーバークと因縁を持つエンジェル投資家として登場します。仮想通貨の取引所を持っており、このシーンのセリフの中にもビットコインがでてきています。告別式のシーンでスナップチャットを擁護している人はスナップチャットのCEOエヴァン・シュピーゲルです。



第2話「暴走する評価減」<原題:Runaway Devaluation>

ギャビン・ベルソンから訴訟を起こされたため、ローリーはパイド・パイパーへの出資を取りやめます。
そこでリチャードとアーリックはほかのVCに出資の依頼に行きますが散々失礼な態度をとってしまったことが仇となりことごとく断られます。

会社の資金も底をつき始め、5人で等分するつもりだったテッククランチの優勝賞金にも手を付けざるを得なくなりました。
それを聞いてあわてたのがディネシュ。彼はいとこが開発したアプリ「ブロー」にクラウドファンディングで5000ドルだしていたからです。
賞金が手に入らないとなると、出資金が目標額に届いてしまった場合、本当に払わなければなりません。

その「ブロー」を使ってジャレッドがVCのブランスコム社の人間とつながり、先方から是非説明にきてほしいと依頼を受けました。
技術者も連れてきてほしい、という要望からかなり脈ありと感じたリチャードたち。

しかしその誘いは罠で、ブランスコムが投資している圧縮会社のエンジニアたちの前で技術の説明をさせて盗むのが目的でした。気づくのが遅くある程度の技術情報が彼らの手にわたってしまいます。

打つ手がなくなったリチャードにロンから連絡が。すご腕の法廷弁護士を依頼料8万ドルだけで雇えるという話でしたが、その8万ドルすら厳しい状況。
すると今度はギャビン・ベルソンから呼び出しを受けます。彼は、リチャードにフーリーにくるよう誘います。

ディネシュのいとこが使ったKICKSTARTERは実在のクラウドファンディングの会社です。
またギルフォイルがパイド・パイパーの説明に使っていたH.264は動画圧縮規格MPEG4のことです。

プログラマ視点でみたシリコンバレー シーズン1(4)

2019年01月17日 19時12分49秒 | テレビ番組
シーズン1のストーリー紹介続きです。いよいよ最終回。最後のカタルシスは必見です。


<ネタバレあり>


第7話「概念実証」<原題:Proof of Concept>

テッククランチ・ディスラプトの会場に乗り込んだリチャードたち。そこでリチャードはビッグヘッドから、このコンペに参加している旧知のシェリーが、リチャードに付きまとわれていると言いふらしている、という話を聞きます。
まったく身に覚えのない話ですが、それが気になって翌日のデモの準備が進みません。
リチャードとディネシュがホテルでデモの準備に取り掛かっている最中、パイド・パイパーのブースで留守番をしていたギルフォイルに隣のブースの女性エンジニアが、Javaのバグを直してほしいと声をかけてきます。

一方、アーリックは審査員のひとりに、かつて彼が妻を寝取ったダン・メルチャーがいることに気づきます。もしメルチャーに寝取ったことがばれているのだとしたら審査で不利に働くことはいうまでもありません。
真相を確かめるべく、メルチャーが留守の間を狙って彼の宿泊している部屋を訪ねてみると、寝取った妻ではなく、再婚した妻がいました。彼女から、メルチャーは過去のことは一切忘れている、と聞いたアーリックは一安心します。

ギルフォイルと入れ替わりでブースで留守番をしているディネシュに先ほどの女性がJavaのバグを直してほしいと声をかけてきます。意気投合した二人はその夜一緒に彼女の部屋で映画をみる約束を交わしました。
彼女の書いたJavaのコードは素晴らしいとほめるディネシュ。それを聞いたギルフォイルは大笑い。そのコードはギルフォイルが彼女に頼まれて書いたものだからです。

その夜、ついにアーリックはメルチャーの2番目の妻と関係を持ってしまいます。
過去がばれていなかったと確信したアーリック。コンペでパイド・パイパーの出番がまわってくると、アーリックが舞台でプレゼンを始めますがメルチャーに殴り掛かられます。



第8話「先から先までの最適な効率」<原題:Optimal Tip-to-Tip Efficiency>

審査員に殴られたパイド・パイパーに主催者は平謝りし、訴訟を起さないことと引き換えに決勝への出場とスィートルームの宿泊を手に入れました。

一方、ディスラプトの方はギャビン・ベルソンが登場し、ニュークリアスのプレゼンを行いました。
リチャードの開発した圧縮アルゴリズムをまねて作られたニュークリアスはパイド・パイパーと同じ圧縮スコア2.89を誇り、その圧縮アルゴリズムを使ったプロダクトの数は50を越えています。
同じ圧縮スコアのパイド・パイパーはプロダクトの数が5つしかなく、決勝でプレゼンをしてもニュークリアスの前に霞んでしまうのは目に見えていました。
決勝を辞退しようかと相談するリチャードたち。しかしアーリックだけは諦めません。会場の全員を手コキしてでも勝つと意気込みます。
そこから、持ち時間10分で800人も手コキできるのかという雑談が始まりました。
その雑談の中、「真ん中から始める」という言葉がリチャードに天啓を与えました。リチャードはこれまでのプロダクトをすべて削除し、ひと晩で「ミドルアウト」というまったく新しい圧縮アルゴリズムを完成させます。

翌日の決勝ではアーリックにかわってリチャードが自らプレゼンを行うことに。完成したばかりの圧縮プログラムは3.5という圧縮スコアをだしており、ニュークリアスを凌駕しているはずでした。
しかしプレゼンの途中、審査員から、実際に圧縮してみせろと要求され、渡された132GBの3D動画を圧縮すると、リチャードの予想の半分の24GBに圧縮されました。圧縮自体が失敗したと思ったリチャードでしたが圧縮は成功しており、スコアは5.2。これまでの限界の2倍の圧縮率をたたき出したのでした。こうしてパイド・パイパーは文句なしの優勝を飾りました。


ギャビンのプレゼンの画像にはHIGHWINDS、クラウドフレア、アカマイといった実在の企業のロゴがでています。
ロスレス圧縮とは、可逆圧縮ともいいますが、元のファイルとまったく同じに復元できる方式のことです。当たり前のように聞こえますが、動画、音声、画像などは元々のサイズが大きいため、この圧縮方法はとりません。
可逆圧縮の逆が非可逆圧縮で、jpg、mp3など画像、音声、動画ファイルはこの形式で圧縮するのが普通です。圧縮する際にデータを削りおとすことでオリジナルより劣化はするもののファイルサイズを可逆圧縮より小さくできます。
ニュークリアスやパイド・パイパーは圧縮性能が理論上の限界値までいくため、画像、音声、動画を可逆圧縮で扱える(データ劣化がない)のが売りというわけです。
圧縮効率の数値を意味する(らしい)ワイズマン・スコアという単語ですが、これは本作の架空のスコアです。ちなみにリチャードが圧縮ファイルのワイズマン・スコアを測定するのに使ったツールにはStanford ENGNEERINGの文字とスタンフォード大学のロゴがあります









プログラマ視点でみたシリコンバレー シーズン1(3)

2019年01月15日 23時07分52秒 | テレビ番組
今回もシーズン1の続きです。


<ネタバレあり>


第5話「シグナル伝達リスク」<原題:Signaling Risk>

アーリックはストリートの壁に落書きアートを描いているチューイ・ラミレスという男にパイド・パイパーのロゴ作成を依頼しました。
ジャレッドは勝手に契約したアーリックや、テッククランチ・ディスラプト(スタートアップのコンペ)に応募していたことを共有していなかったリチャード、社内にも拘わらず勝手気ままにふるまうディネシュ、ギルフォイルに腹を立てます。
そこで社内の現状を変えるためにスクラム開発を取り入れることを提案しました。

リチャードはテッククランチの参加は辞退すればよいと思っていましたが、思わぬところで波風を立てました。

ギャビン・ベルソンは、すでにラビーガから支援を受けてるパイド・パイパーがなぜ出場するのか理由を知りたがり、直接ピーターに尋ね、さらにその大会でフーリーの新圧縮アプリ・ニュークリアスの発表をすることを告げました。
宣戦布告をされた形のピーターは激怒し、2カ月後のコンペまでにデモ版を完成させることを命じます。
リチャードはその時初めて、ピーターの支援はギャビンへの嫌がらせが目的なだけで、自分たちに期待していないことを知り、おだてて起業させたモニカに腹を立てます。
元々5か月後の完成を見込んでいた製品をコンペにあわせて残り2カ月で仕上げることになりましたが、ジャレッドが提案したスクラム開発は効果を発揮していました。

モニカは個人的にパイド・パイパーに期待しているとリチャードに告げ、その証として自分の年俸の10%をパイド・パイパーに投資しました。


テッククランチ・ディスラプトはスタートアップのコンペで実在のイベントです。



第6話「外部インソーシング」<原題:Third Party Insourcing>

コンペに向けた開発の進捗はリチャードが担当するクラウド構築だけが大幅に遅れていました。
そこでケビン(通称ザ・カーバー)と呼ばれる凄腕のエンジニアを雇うことになりました。ケビンはかつて銀行のシステムにハッキングして破壊したという武勇伝を持っています。
ケビンの実力を疑うリチャードでしたが、彼は2日あれば全部構築できると自信を見せます。

その頃、アーリックの屋敷にギルフォイルの彼女タラが来ていました。みんなが想像していたのと全然違う美女にパイド・パイパーのメンバーは色めき立ちます。
さらにギルフォイルはディネシュに「タラがおまえとやりたがっている」と話します。

ケビンの力を借り、リチャードの作業は順調に進みますが、なんとそのケビンがシステムを誤って全壊させてしまったため、徹夜でリカバリーする羽目になりました。

ギルフォイルに唆されたディネシュは迷った挙句、タラに「君と性交渉したい」と告げますが、実はギルフォイルにからかわれていた、というオチでした。


医師との会話シーンでリチャードが「17歳の時、週末だけでRailsをマスター」と自慢するセリフがあります。RailsとはRuby on Railsというフレームワークのことです。ここでいうフレームワークとは、Webアプリケーションなどの構築に必用なプログラム以外の部分(定義ファイル、HTML、XML、DBとの連携等々)を連係させる基幹部分と、ものによってはOSS群が包含されたミドルウェアを指します。扱うにはそれらを設定する知識と、Webで動かす場合JavaScriptが必須といってよいです。
Rubyは日本人が開発したプログラミング言語で、インタプリタ式に実行されます(コンパイル不要)。ソースコードの読みやすさが特徴で、Web系の開発ではよくみかけます。
リチャードが、Ruby on Railsをマスターできたからクラウドもできるはず、という自信をのぞかせるのはやや違和感がありますが、単純にエンジニアとしての矜持でいっているのかもしれません。

リチャードとケビンの会話シーンにでてくる「キー・バリュー・ストア」とはDBの特性のひとつです。OracleやMySQLのような従来のRDB(リレーショナルデータベース)のように型を定義したテーブルにデータをインプットするのではなく、型に関係なく、格納したい各データに識別子(通し番号)をつけて複数のDBに分散して保管できるのが特徴です。クラウドでキー・バリュー・ストアといったらAWSのS3が思い浮かびますがそれを指してるかどうかは不明。もうひとつ「タプル」はいろんな使い方があるので、会話から具体的なものを推測することはできません。もしPythonのタプルであればListのようなデータ型を指すのですが。
リチャードが書いているソースはJavaです。ただコードが短いのでどういった処理を書いているのかまではわかりません。

復旧の確認をしているシーンではJenkinsを動かしています。これは自動化ツールで、主にテストを自動化するために使われます。たとえばGitHub、Selenium(自動テストツール)と連携させることで、GitHubにソースをアップロードするとJenkinsがそれを検知してSeleniumのテストプログラムを動作させる、という使い方が開発の現場でよくあります。設定は面倒ですが、たとえばソースを修正すると、その修正箇所に関わる大量のテストパターンを自動実行できる恩恵が大きいのはいうまでもありません。
あと、スキーマという単語がこの話の中で何度も登場しますが、日本のIT業界でスキーマといったらDBの構造定義のことを指します。が、会話の文脈的にはちょっと意味が違う様な。