ボクココ

熱海で開発するブログ

Web フォントを S3 から読み込む方法

AWS

これはハマった。。

WebフォントをS3に上げて、それを読み込もうとしたんだけどちゃんとDLできてるのにWebフォントが表示されなかった。

調べてみるとどうやらWebフォントには特殊なCORS(Cross-Origin Resource Sharing)設定がいるらしく、それをS3内で設定してあげる必要があった。

指定BucketのPermissionのEdit CORS Configurationにて、

<CORSConfiguration>
    <CORSRule>
        <AllowedOrigin>*</AllowedOrigin>
        <AllowedMethod>GET</AllowedMethod>
        <MaxAgeSeconds>3000</MaxAgeSeconds>
        <AllowedHeader>Authorization</AllowedHeader>
        <AllowedHeader>Content-*</AllowedHeader>
        <AllowedHeader>Host</AllowedHeader>
        <AllowedHeader>*</AllowedHeader>
    </CORSRule>
</CORSConfiguration>

といった感じで Webフォントを使うときは <AllowedHeader>Content-*</AllowedHeader> を入れてあげないといけないようだ。

Chrome Developer Tool だとちゃんとダウンロードできてるみたいだし、実際に URL叩いてもちゃんと取ってこれるから何が原因か特定するのに時間がかかった。

また一つ勉強になった!

3ヶ月で総額50万以上を手に入れた私の勧めるハッカソンで勝つための方法

最近は割と多くのハッカソンが企業で開催されている。種類は色々あって技術テーマというよりかはビジネスでやっていけるか的なものが最近多く出ている。それには企業から賞金が出たりする。

そんな中でハッカソンで総額50万円以上を3ケ月で達成した私の方法や考え方を紹介しようと思う。

複数チームに入ってリスク分散

一部のハッカソンでは複数チームに入ることを許容するところがある。例えば2日間開催のハッカソンである場合、昼間にまずはチームを組んでそのチーム内で開発を全うする。それとは別に個人開発プロジェクトとして帰宅後から深夜までの時間を使って基本アイディア勝負でもう一つプロダクトと資料を作る。たった1日の努力なので結構な無理をしてもなんとかなる。

審査員的に一人チームに優勝させるというのは他の参加者のことも考えたりするので、当日は全く関与してないけども一人チームに入ってもらって、発表についてきてもらうようにする。

こうするだけで入賞の確率は2倍に増える。エンジニアだから出来る技ではあるけども。

ハッカソンの趣旨を理解する

これをちゃんと理解しないでただ自分の作りたいものを作って発表しているチームが意外と多い。このハッカソンは楽しむ系なのか、ビジネスに繋げたいのか、なんかの課題を解決するものなのか。それを理解し、それにあった発表資料を作らないといけない。

むしろ趣旨さえちゃんとしたアプリなら、出来は3時間くらいで作ったプロダクトでも優勝できる。実際に私が優勝したハッカソンの一つはプロダクト3時間、資料作り1時間で優勝したものもある。それくらい何を作るかってのは大事だ。

楽しむ系だったらおもしろ系で攻めていけば OK。どんなにアプリが中途半端でも面白ければ何かしら受賞できる確率がある。ただこういう系は何が審査基準なのかかなりわかりにくいので、運の要素が強い。

ビジネスに繋げたい系ならお金が入りそうなサービスを考える。さらに自分達ならこういうこともできるみたいな強みなども入れておくと尚良い。アプリの完成度は普通でもそういった課題解決を明確に示せれば優勝できる。

課題解決系だったら、アイディア勝負でいける。本当にその課題を解決するものは何かに半日使ってもいいくらい。 プロダクトとか適当でもいけるので、発表者というかアイディア発案者に入賞がかかっている。

オリジナルライブラリの開発

ハッカソンではデモっぽいことがほとんどできていないチームが多い。短期間ならそれはよくある話で最も残念なパターンだ。大抵の理由は環境構築で詰まったり、基本的な実装に時間がかかったりなどである。

それをなくすために、基本的なアプリの処理は全て個人フレームワークとしてまとめよう。これをハッカソンのために用意しておくことにより、作りたいものに対して全力を注ぐことができ、どのハッカソンでもその特徴の出たアプリを発表することが可能だ。

ハッカソン初心者と何回も出ている人とではこの時点でかなり大きな差が出てきてしまっている。そのためエンジニア参加ならそういったことも用意しておくとプロダクト的により良いものができる確率が上がる。

エンジニアであり、プランナーであれ

このどちらも持っている人というのがとても少ないから、今は勝てていると思っている。

技術系ならせっかくハッカソンに参加するなら新しい技術使いたいみたいな人が多い。が、それだと作りきれないリスクがあったり余計な時間がかかったりしてしまう。

プランナーだったらせっかくいいアイディアがあってもその時にいたエンジニアが作れなければそれで終わり。ただ一部のハッカソンではアイディア勝負で勝てるところもあるので、プランニング能力があればむしろこっちの方が優勝できる確率は高い。注意したいのは、プランニングしかできない人は何しにハッカソンに来たの?的な感じでデザイナーやエンジニアから疑問を目を持たれる場合が多い。

ということで、どっちもできればいいだけの話なのだ。

やるなら全力で

最近はハッカソン開催期間が3ケ月とかで、その間に開発してプロダクトを出して。みたいなハッカソンが多く出てきている。これは優勝賞金もかなり高いし、本当の開発能力が求められるため、よりレベルの高いハッカソンである。この段階だとプランニングしかできない人は不要になるよりシビアなハッカソンだ。

これに勝つには至難の技だ。というのも、会社単位でそのハッカソンに応募し、ハッカソンで出しつつそれが終わったら実際にプロダクトとしてリリースするくらいの勢いで参加する人たちがいるからだ。彼らは本気でお金の事を考えるし、デザインもこだわる。個人でふらっと参加するレベルの私たちが彼らプロフェッショナルに勝てる要素はほとんどない。

賞金が高ければ高いほど、そういった方々が出てくる。それにも勝つにはもう自分もそのハッカソンにかなりの時間を費やして開発するしかない。

それに見合う努力ができるか、それでも勝てるものが作れる自信があるか。それがない限りこういったハッカソンでは勝てないので週末だけ開催みたいなのに参加するのが無難なのかもしれない。

スタートアップの経験を持つ

スタートアップにはピッチという文化がある。投資家に向けて自分たちのサービスがどんなに魅力的で、投資対象に入れるべきかをアピールする場だ。

これとハッカソンは似ている。ピッチでフィードバックをもらったりすると、サービスに関してどういうことを考えなきゃいけないのかなどが理解できる。

それを経験すると、より課題解決系のハッカソンで優勝できる確率は高まる。審査員の心を打つプレゼンも自然とできるようになるだろう。優勝できるのはそうした環境に飛び込んで経験とスキルを積んだ人たちなんだと思う。

大企業でも何かしらの技術イベントで発表ってので経験を積む方法はあるにはあるが、お金の要素がないので聞いている人は本気じゃないし、どう改善すべきかなんて教えてくれる人はいない。そういう意味では「ピッチ」こそがハッカソンで勝つための経験を積むいい方法なんじゃないだろうか。

さいごに

技術と企画の両方の力を試せられる賞金の出るハッカソンに参加してみましょう!

私自身、これからも何かしらの機会で参加していくと思うので、お会いした際は良きライバルとしてよろしくお願いします。

サンフランシスコ・シリコンバレー観光

旅の最後のブログは観光写真を載せていこう!

人が載ってる写真が多く、なかなか風景だけの写真が少なかったけど、町の雰囲気をお伝えできればと思う。サンフランシスコは基本的にほとんど雨が降らず、気候も15℃前後だったため、非常に快適に過ごすことができた。7日間の滞在の中で雨が降ったことは一度もなかった。

食事はアメリカそのもの。とはいえ日本食や中華もあるにはあるのでどうしようもないってほどではないけど、やっぱり日本の食はおいしいと再認識できる。

サンフランシスコの街をちょっと外れるだけでスラム街があって結構危険だった。途中何度か知らない人に話しかけられたり触られたりしてビビる場面もあった。そのエリアに行かなければいいだけの話ではあるが。

少ないけども写真で振り返ろうと思う。


空港着いてから、CalTrain という電車を使って移動。これがまた文化を感じさせる古い電車だった。

f:id:cevid_cpp:20160122104637j:plain

f:id:cevid_cpp:20160122105658j:plain

宿は Sunny Vale 駅から歩いて20分程度のところ。なかなかいいホテルだった。

f:id:cevid_cpp:20160122154525j:plain

SunnyVale からSan Francisco まではCalTrainで引き続き移動。$8で1時間くらい移動する感じだから結構な長い移動だ。 サンフランシスコ市内は坂がめっちゃ多くて、ケーブルカーと車がたくさん走っていた。

f:id:cevid_cpp:20160123035619j:plain

f:id:cevid_cpp:20160123065237j:plain

CalTrain の駅から結構距離のある場所が多かったりしたので、途中からはずっとUberを使ってた。3人で乗ればコストもそれなりに抑えられる。一人だとちょっと高い感じがする。

f:id:cevid_cpp:20160123093820j:plain

f:id:cevid_cpp:20160124084015j:plain

Microsoftストアーっていう日本じゃ珍しい施設があった。キネクト使ったダンスゲームをやってて、いい運動になりそうだった。 ダンスは苦手だけど。。w

f:id:cevid_cpp:20160125065118j:plain

デモする日だったそうで、この日は中絶反対の運動だった。何千人もパレードみたいに並んで道を塞いでいて、日本じゃなかなか見られない光景だった。

f:id:cevid_cpp:20160125065734j:plain

サンフランシスコの東にあるベイブリッジ。かなり長い。

f:id:cevid_cpp:20160126060418j:plain

サンフランシスコの美しい坂道。ケーブルカーに乗るとその素晴らしさがわかる。こういうところで暮らすってどうなんだろうな〜って興味の湧くような場所だった。

f:id:cevid_cpp:20160126083145j:plain

f:id:cevid_cpp:20160126075845j:plain

おわりに

今回の旅の目的は投資家にあってプレゼンをするということだったので、観光目的ではなかった。ということでブログにあげられそうな写真は限られてしまったけど、これらの写真だけでもサンフランシスコの美しさや住みやすさを感じていただけたと思う。

私自身、サンフランシスコ・シリコンバレーの地に足を踏み入れ、そこの人々に接したことでこの地にとても興味を持った。次訪れるときは、長期で滞在できるように予定を組んでみたい。

Amazon S3 でバケット配下を全て public read にする

AWS

Amazon S3 において、デフォルトではアップロードしたファイルや画像を部外者がそのままURL叩くと、Access Denied になって取得することはできない。

これに対応するためにはいくつか方法がある。

  1. S3 Console 上で対象フォルダ or ファイルを右クリック -> Make Public
  2. アップロードのコードで、AccessControl を public read に設定
  3. Bucket Policy を変更

個々のファイルごとに設定を変えたい場合は、1か2をする必要があるが、まとめて全部公開したい場合は3が有効。

Bucket の Property の Permisson にて、add bucket policyを選択。そこに

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AddPerm",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::YOUR_BUCKET_NAME/*"
        }
    ]
}

で適用。これで指定Bucketが全てpublic readになる。

すごい人とそうでない人について思うこと

この人はすごいな、と思う人とたまに出会う。そのすごいの定義は何だろうか。自分の考えをまとめてみる。

ブレない軸

得てして、すごいと思う人は「軸」がある。

"自分の最終的に達成したい目標はOOで、それを実現するために今はXXをやっている"

そう思うようになるきっかけや体験を持っていて、その話を聞こうとすると「これは話すと長くなるんだけど」みたいなとっておきのストーリーを必ず持っている。

軸を持っていない人はどうなるのか?それは「人や環境に影響を受けやすい人」になる。会う人それぞれに対して"自分もこうなりたいなぁ"と思いそれを実践してみるも、それはその人の本心から生まれるモチベーションじゃないので続かない。また違う人に会って感銘を受けるも、それをやっても続かない。

明確な軸を持っていると、他人の価値観を聞いたときに取捨選択が出来る。「この人のここは自分にも取り入れよう、とかこれはこの人の考え方だけど、自分はこうだ」と思うことで自分の信念を曲げることなく生きていくことができる。

軸を持っている人は自分を極めることができ、持っていない人は何をやっても長く続かない特徴のない人間になっていく。

軸のない生き方

先日あった友人がいい例だ。彼は昔から周囲に影響されやすい人間だった。厳しい学習環境に身を置いて、そこで負けないように、周囲と同じになるように頑張っていた。その環境が彼を上へ向かわせた。そして就職したとき、彼はその中で優秀な人間であった。就活が終わって同期を見渡した時、彼は「周りが緩すぎる」そう言い放った。

今はどうなっているか。勉強しまくっていた彼は遊びに走り、日々クラブへ通い続けている。かつて勉強しまくっていた彼はもうどこかへ行ってしまった。

本当に達成したい未来があれば、そんな環境はすぐに捨て去って新しい環境に身を置くべきだ。それを彼は怠り、周りの環境に流されてしまった。そんなこと言っても彼は反論するだけだった。もっぱら私に「お前は若いんだからもっと遊べ」とか無駄な忠告をしてくる。そんな時は笑い飛ばして聞き流すだけだが。

サービスと生き方

サービスについても同じことが言えると思っている。パクリサイトはこの人に影響を受けやすい人生を送っている人に似ている。だがそれをやってみても、その軸を持った行動ではないので続かないし、熱意もない。なぜそれを今やっているのかが説明できない。

サービスについて"なぜ"を繰り返すと、行き着く先は自分の実体験がベースになっている。それが軸であり、軸がはっきりしたとき、そのサービスに対して何が必要なのかが見えてくる。そうやって成功するサービスは成功していく。

軸を持つには

すごい人になるのがいい人生かと言ったら、そういうわけでもないことを忠告しておきたい。先ほどのクラブへ遊び続けている彼は楽しい場所を見つけて毎日楽しい日々を送っている。価値観の違い。人それぞれということだ。

それでも自分の軸を持った人生を生きたい、という方に軸を持つ方法を紹介しようと思う。

自己分析 だ。就活みたいな話だが、これをしたことで私にもストーリーを持つことができた。やり方をちょっと簡単に説明すると

  • 生まれた時から今に至るまでの記憶に残っているイベント全てを列挙する
  • その中から特に印象に残った失敗や成功を洗い出す
  • そこで思ったこと、反省したことなどがその他のイベントの行動の軸になっていないかを分析する

なぜ高校のクラブはそこへ入ったのか。なぜ大学の学部はこれにして、サークルはこれにしたのか。なぜその職業を選んだのか。そうしたそれぞれのイベントに理由ができるようになる。人に影響されまくった人はそれに対して友達がそうしたからみたいな答えも出てくるだろう。それはあなた自身の性格だ。何か友達と一緒じゃないといけないみたいな体験をした理由がきっとあるはずだ。

全てがとある一つのイベントが原因だった、というのを見つけた時、自分の中の答えが見つかった気がしてスッキリするだろう。その瞬間、あなたの軸を持った次なる人生が始まるかもしれない。

サンフランシスコの移動ライフスタイル

アメリカは特に車社会で、バイクで走るのはほとんど見ない。道の端には所狭しと車が停車されている。そしてタクシーが少ない。日本のように駅前に所狭しと並んでいる姿はなく、たま〜に街中を動いている程度だ。電車はあるけどもあまり綺麗ではないし本数や場所もそこまで多くない。移動するには何かと不便な町だった。

そんな状況でサンフランシスコでは移動において新しいムーヴメントが発生している。

"RideShare" と呼ばれる文化だ。特に普及しているが UberLyft

これらのサービスはもはや自分だけの専属ドライバーのようだ。アプリを起動したら以下のような自分の周辺にいる車が表示される。

f:id:cevid_cpp:20150201142728p:plain

行きたい場所を入力するだけでドライバーが現在地にやってきてくれる。車のナンバーが表示されているし、電話で場所の確認もできるので会えないことはない。サンフランシスコで10回以上Uberを利用したが、その全てのドライバーのクオリティが高く清潔だった。とあるドライバーはサンフランシスコで育ったということで、自分たちのような観光客に対して移動費のみで街中を紹介してくれた。ライドシェアにはそうした付加価値を感じることができる。

目的地に着いたら"ありがとう"と言うだけだ。お金は全てアプリ内で完結する。こんなに手軽に移動できる手段が今までにあっただろうか?行きたい時に行く時、今までの交通全ては"行く時間"や"行くための場所"をそれぞれ調べていかなければならなかったが、UberやLyftは行き先だけわかればそれで終わりなのだ!これは移動のイノベーションと言えると思う。

街じゅうに止まっている車のフロントガラスを見ると、たくさんの Uber, Lyftステッカーが貼られている。日本じゃ見られない光景だ。これが自分がUberドライバーであることを示しているらしい。

行きたいと思った時にさくっといける。そんな世の中がアメリカを中心に始まりつつある。電車もタクシーもバスもいらない。これさえあればどこへでもいける。そんな未来が日本にもやってくることを期待する。

日本でも似せたサービスが出つつある。その一つが LineTaxi http://linecorp.com/ja/pr/news/ja/2014/901だ。日本交通と連携したアプリのようでどこでもタクシーを呼ぶことができる。ただ日本交通のタクシードライバーまでという限定があるので、ドライバーの数や移動できる距離が限られてしまう。そういう面からUberやLyftのような仕組みにはならないと考えている。

日本における障壁

日本でこの文化が普及するには2つのハードルがあると考えている。現状の交通手段と法律だ。

東京の移動は便利すぎる。行きたいと思ったら最寄駅を調べてネットで乗り換え検索して行くというのが普通の流れだ。電車はすぐ来るし3,400円で移動できる。歩いて20分以上かかる駅なんて23区内だったらないんじゃないかってほどだ。そこから目的地に行くにはタクシーが所狭しとあるので使えばいい。

ただここまで通常の使い方を見ても、やはり面倒なことが多いと思わないだろうか? 現在地から目的地に一気に移動する手段があればそっちを利用すればいいのではないか?もしこの移動手段が普及すれば、電車、タクシー、バス全てを壊すイノベーションとなるだろう。

それが日本では法律として硬く守られている。彼らの仕事を壊さないようにするために。日本は保守的な国だ。日本では徹底的に出る杭を打とうとする。そことの戦いだ。アメリカでも法律があるにはあるんだけどみんな便利な方を利用していくからどんどん法律が変わりつつある。

Hitchme は日本でもこのサンフランシスコのような便利なRideshareを実現しようと活動している。もしこんな移動の実現に協力してくださる方がいれば、以下のGHORUSにて応援していただけたらありがたい。

GHORUS

シリコンバレーと日本人

f:id:cevid_cpp:20150126102151j:plain

シリコンバレーの風景。物静かで清々しい地域だ。

"シリコンバレー"と聞けば、プログラマーの憧れの地だ。スティーブ・ジョブズもこんなことを言っている。

シリコンバレーの存在理由は「世界を変える」こと。「世界を良い方向へ変える」ことだ。そしてそれをやり遂げれば、経済的にも信じられないほどの成功を手にできる。

そう聞くとそのシリコンバレーの地では半端ないプログラマーが集まって日々世界を変えるプロダクトを作っている、といったイメージが強いだろう。確かにGoogle, Apple, Microsoft, Yahoo! などシリコンバレーに本拠地をおいている。

ただシリコンバレーってのはちょっとしたマーケティング用語みたいなもので、実際の地名ではない。カリフォルニア州のサンフランシスコの南の地帯、特に "Mountain View" や "Sunny Vale" といった地域の総称を"Silicon Valley"と名付けられている。ヒューレットパッカードの人がここでビジネスを始めたことがきっかけらしい。

サンフランシスコ内の人に"シリコンバレー"って言っても通じないのは驚いた。

そこで働く方に「シリコンバレーのエンジニアと日本人のエンジニアの差ってあります?」って聞いたら、ほとんどは「むしろ日本人の方が優秀」と返ってくる。シリコンバレーの地ですらも超優秀なエンジニアってのは一握りだ。

そんなこんなで、今回のツアーではシリコンバレーで働く日本人コミュニティーの参加するミートアップに参加した。

シリコンバレーで働く日本人

シリコンバレーでは、先ほどのような名だたる大企業が本拠地を置いている。てことでそこに参加する日本人は基本的にGoogle, Apple といった企業に勤めている方が多かった。

日本ではサポートのみを扱っているような企業でも、この地ではバリバリのエンジニアが渦巻いているので、そこで働くってだけですごいことだ。

ただシリコンバレーの日本人スタートアップで実際に世界を変えようとしている人はまだほとんどいない。スタートアップで起業する人は最初はやはり日本で始めてしまう人が多いのかな。結局大企業だとそれ止まりで、自分が世界を変えるみたいな人ってのはなかなかいない。そこに日本人がこれから踏み入るべきところがある。

シリコンバレーで働くってのはすごいけど、シリコンバレーで起業するって人はもっとすごいと思う。だからこそシリコンバレーの大企業で働く方がどんどんチャレンジして行って先陣を切ってほしい。自分もいつかはあの地で, という思いが芽生えた。

夢は大きく。