読者です 読者をやめる 読者になる 読者になる

俺、サービス売って家買うんだ

Swift, Vue.js, 統計, GCP / このペースで作ってればいつか2-3億で売れるのがポっと出来るんじゃなかろうか

Swiftで左から右にグラデーションがかかるViewを作る

連日のSwiftメモです。 作りたい物 こんな感じで左から右にグラデーションがかかるボタンを作ります。 ソースコード buttonViewがグラデーションをかける対象のViewとなります。 //グラデーションの設定 let gradientLayer = CAGradientLayer() gradientLaye…

Swift で○○秒前みたいにするエクステンション

こんにちは、はやとです。最近はSwiftばっかりやってて楽しいです。 Swift3.0で、SNSでよくある「○○秒前」みたいに表示するエクステンションを書いたので置いておきます。 環境 Swift3.0 extensionで実装 (Dateクラスを拡張) コード Date.swift import Found…

ExpressでGoogle Cloud Storageに画像をアップロードする

やりたきこと Expressで稼働しているWebサービスで画像をGoogle Cloud Storage(以下GCS)にアップロードする サブドメインで画像を閲覧できるようにする 各種バージョン Node 7.x Express 4.x 事前準備 以下は完了している ドメインは取得 Google Cloud DNSの…

【Swift】関数にオプショナルのブロックを渡す

括弧が多くて意味不明になったので一旦メモ。 func execute(completion: (() -> Void)?) { if let unwraped = completion { unwraped() } } execute { print("hoge") // hoge } これだとコンパイルエラー func execute(completion: () -> Void?) { if let un…

Moment.jsを使ってタイムゾーンがEtc/GMTの日付と時刻をAsia/Tokyoに変更する

iOSのIn-App Purchase の Auto-Renewing subscription (自動更新型の購読)を利用した開発では購入処理が走った際や、期限切れの際にAppleから得られるレシートの検証をAppleのサーバーにpostして行う必要があります。 当然ながら有効期限を表すexpires_date …

Vuexを利用せずに親子関係を持たないコンポーネント同士で通信する

しばらくぶりにWebのフロントエンドを書いてるので色々復習を込めて。 ReactやVueなどコンポーネント指向で実装できるフレームワークを利用して開発する際に親子関係を持たないコンポーネント同士で通信をしたい時ってありますよね。 とりわけシングルページ…

iPhoneゲーム、「荻月のゴマビィ」をリリースしました。

あけましておめでとうございます! @hazumu です。 前回 Hayato さんがめっちゃ質の高い記事を書いてたので新年一発目から尻込みしちゃいますね。 さてさてさてさて、一昨年の9月に途中まで作って放置していたゲームを去年の12月に作り込んで12末のAppleの審…

実店舗の売上データで分析する。(タンタンタイガー)

あけましておめでとうございます! Hayatoです。 去年の暮に出したかったんですが惜しくも間に合わず、年を越した渾身の記事から今年のblogをスタートです! 友人が店主の担々麺屋でタンタンタイガーってのがあります。2016年8月に開店したので、まだ半年し…

Google Analytics で AMP 対応ページへのアクセスを通常ページへのアクセスとして集約する方法

AMPとは Google社が主導するWEBページのモバイルを高速化するプロジェクトです。 詳しくはここ。 www.ampproject.org 詳細は省きますが実装方法は通常のモバイルページ加えAMP対応したページを用意した上で通常ページのメタタグに <link rel="amphtml" href="[url]?amp=1" > 上記の様にAMPページへの</link>…

【年末企画】広島県呉市の島しょ部のすすめ

ハロー @hazumu です。 年末気分だし、今年やろうと思っていた仕事はすべて終わったので気ままにブログを書いてみる。 何を書こうかなってーって思ったんだけど、ここ2,3数ヶ月釣りにも行ってないし。プログラミング系の記事を書いてもあまりおもしろい記…

カーネル密度推定とは何か?

こんにちは、Hayatoです。年末ですね。 カーネル密度推定をおさらいしようと何度かググったのですが良い感じの記事が見当たらなかったので、書き落としておきます。 Index カーネル密度推定って? どういうときに使うといいの? カーネル密度の算出方法 (実…

matplotlib, seaborn のラベルを日本語対応する。

iPythonでデータ分析するときに、当然matplotlibやseabornでグラフを描画するのですが、日本語対応されてなく文字化けを起こします。 グラフの描画はデータの概要を掴んだりビジュアライズしたりするためなので、文字化けを起こしていると割と致命的です。 …

webclip から url scheme でパラメータを渡してアプリを起動する

ユースケース エンドユーザーに任意のページを webclip してもらう エンドユーザーはiOSホーム画面に webclip されているページを Safari の standalone モードで起動する そのままネイティブアプリにディープリンクでリダイレクト その際に url scheme を利…

ネットワークスペシャリストに合格するための勉強方法、勉強時間、参考書まとめ

こんにちは。@hazumu です。 昨年度しれっと落ちたネットワークスペシャリストに今年はかろうじて受かったので、今後取得しようと考えている人に向けて勉強方法と、勉強内容をまとめておきます。 ギリギリ!!! ネット上には緻密に計画を練って合格している…

Vimの置換で後方参照とvery magic modeを利用してReactのJSXのclassNam属性を通常のHTMLのclass属性に一括変換する

やりたいこと ReactのJSXにCSS modulesなどを使って以下のように動的にクラスを適応したとします。 <div className={CSS.modal}> <div className={CSS.title}>タイトル</div> <div className={CSS.contents}>コンテンツ</div> </div> で、Reactの利用を途中でやめたので、className属性をのclass属性に変更したいと思います。 <div class="modal"> <div class="title">タイトル</div> <div class="contents">コンテ…</div></div>

Swiftのmap,filter,reduceに慣れる

勉強不足でSwiftのcollection型にmapやreduceなどの関数が存在していることを知らずfor文で回してたので慣れるためにも幾つか遊んで見る。 map 引き数のクロージャ内でコレクションの値を計算して新しいコレクションを返す。 計算する let arr = [1, 2, 3, 4…

なぜシリコンバレーなのか。

なぜシリコンバレーなのか? こんにちはHayatoです。 サンフランシスコ滞在も終盤になってきました。今回はなぜシリコンバレーに多くの優秀な人材が集まり、Google, Facebook, Pinterest, AirBnB,Uber などなど名だたるメガテックを生み出し、こぞってスター…

Let’s Encrypt + ApacheのSSL設定を間違ってAndroidからのアクセスを1/5にした話

あーあ、やっちまいましたね。 多分大丈夫だと思うけど既にSEO効いてるページを一気にSSL対応するの怖すぎる— hazumu (@hazumu) 2016年10月27日 こんなこと言ってたのに。 起こしたこと 10/26日に運営しているサービスをSSL対応したのですが、Apacheの設定漏…

東京Node学園祭2016に行ってきたよ

今年もNode学園祭に行ってきました! この春辺りからサーバーサイドをNodeで書くことが増えてきたので、新しい知識を手に入れつつ詳しくない分野の洗い出しができると思い今回もとても楽しみでした。 セッションを聞きながらメモったことを箇条書き。 nodefe…

Mac上にNginx、MySQL、Redis、Nodeが入ったDockerコンテナを準備してみる

そろそろ触ってみないとという謎の焦燥感に急かされて触ってみた。 結論から言うと今のところVagrant + Virtualbox + Ansibleぐらいで事足りてる気がするけど、実運用になると変わってくるのかな。 目標 DockerにMySQL、Redis、Node、Nginxぐらい入れてみる …

ハイエンドVR機器のスペックと関係する用語の解説をしてみる

VR

どうも〜 @hazumu です。 先月からVR機器に興味が出て、iPhone + ハコスコで色々遊んでるのですが割りと面白くて、そろそろハイエンド機器を買ってやろうかなと画策し始めました。 とは言え、現状VRでなくてもゲームをプレイするかって言ったらポケモンとア…

【Node.js】 requireで読み込まれたファイルのキャッシュを削除する

以下のExpressを利用したコードでjsonを返す。この時data.jsonは他の処理によって随時更新され、その反映をレスポンスに乗せたい。 本来ならアクセスされる度にその更新の反映がレスポンスのjsonに現れてほしいのだがNodeのrequireの仕組み上、無駄なファイ…

PHP + MySQLでsitemap.xmlを作る簡単なスクリプト

SEO対策でGoogle Search Consoleにsitemap.xmlを送ることが 、3年に一度ぐらいあるのですがその度に書捨てのスクリプトを書いてそのままどっかに行ってしまうので、いつか将来の自分のためにメモを残しておきます。 環境 PHP 5.3 MySQL 5.5 PHPのスクリプト …

Amazon Linux上のApacheにLet’s EncryptのSSL証明書でSSL設定をする

GoogleがSSL対応をページ表示順位の指標に入れたことをアナウンスしているのですが、数年間対応しないまま運営していたサイトがあったのでその対応を行ったメモです。 webmasters.googleblog.com (最近のことと思ってたけど、2014年のアナウンスだったのね。…

VRとは何か?

VR

こんにちは、Hayatoです。 サンフランシスコ生活もはや2ヶ月。たくさんブログ書くで〜、と意気込んだのにこの体たらくには笑っちゃいますね。 今回はサンフランシスコで情報収集する中で、VR(バーチャル・リアリティ)の可能性を大いに感じたので、そこらへ…

SPAサービスサミット #1 に行ってきたよ

今日はSPAサービスサミットというSPAでサービスを運営している会社の勉強会に参加してきました。 開発の話とか技術選定の話はよく聞くのですが、すでに数年間運用を続きけているサービスの話を聞くことができとても参考になりました。 参加したイベント pera…

VRに関するあれこれ

VR

Hello! @hauzmu です! 前回の記事で書いたVRの体験が、ゲーム、アダルト、メディアート以外でVRって使い道って有るんだけってって思っていた自分にとっては結構目新しくてVRバブルに感化されたので池袋のジュンク堂で何冊か本を読んできました。 今回はその…

Explore Your World in VR with CyArkでVR体験

Hi! @hazumu です。 サンフランシスコに住んでる Hayato氏に会いに数日前から妻と一緒にアメリカにやってきています。 到着して2日くらいはフラフラ観光しつつ、昨晩は Exploratorium でVRの展示に参加してきました。VR元年とか言われているのに本物を見たこ…

2016年上半期に読んだ本まとめ

※写真は山口の萩 こんにちは@hazumuです。 気がつくと2016年の上期も終わってしまいましたね。 ちょうど最近、 周囲の人と「この本面白かったよ」みたいな会話を結構する機会があったので上半期に読んだ本まとめです。 仕事関係 マンガでわかる! マッキンゼ…

TLS/SSL - 認証編

前回の記事(TLS/SSL - 暗号化編 - 俺、サービス売って家買うんだ)の認証編です。 TLS/SSLにおける認証とは? 開いているウェブサイトが本当にサーバーの持ち主のものか第三者に認証してもらう仕組み。 サーバー証明書 サーバーの正当性を保証するため認証局…

TLS/SSL - 暗号化編

数年間に渡りWebの仕事をしてきたのにまともに理解しようとしていなかったTLS/SSLについてまとめてみる。 TLS/SSLとは コンピュータネットワーク上でセキュリティを要求される通信を行うためのプロトコル。 TLS = Transport Layer Security SSL = Secure Soc…

ICMPまとめ

今日はICMPについて。 概略 ICMP = The Internet Control Message Protocol TCP/IPパケットの転送中において発生した各種エラーの通知や、動作の確認などを行うために利用されるプロトコルping等のツールで利用されている IPの上位プロトコルに当たるが、IP…

フレーム? パケット? - OSI参照モデル、各レイヤでの通信データの呼称

前回の無線LANの記事もそうなんですが、ネットワーク周りの知識が皆無なので基礎力を固めるためにも色々読んだりしてます。 @hazumu です。 ネットワークはなぜつながるのかの深掘りも兼ねて。 今回は、知らずに書籍を読むと混乱してしまう各レイヤで送信さ…

無線LANメモ① - そもそも無線LANとは

無線LANとは 無線通信を利用したデータの送受信を行うLANのこと WLAN(Wireless LAN)と呼ぶ 殆どの最近の無線LANは IEEE802.11規格に基づいている メリット 長さに制限のあるケーブルを利用しなくていい 一台のアクセスポイントや無線ルータにより複数の端末…

シリコンバレー 3ヶ月滞在のために日本で準備したこと

さて、今日からシリコンバレー(サンフランシスコ)で3ヶ月ほど働きます。 一番の目的はこっちの鮮度の高い情報を仕入れて日本にアウトプットしていくことです。 個人的にも10年前にAppleがiPhoneを発表したWWDCに参加して、いつかここで働きたいと思ってた…

【夏の定番】釣れたシロギスを「洗い」にして食べた話

こんにちは。@hazumuです。 一昨日までお盆休みだったので帰省して釣りに行ってきました。 時期が早いのですが、少しづつ釣果が出ているという情報を近所の釣具屋で仕入れ懲りもせずタチウオをねらいました。まぁ、今回の釣行でも一匹もタチウオが釣れなかっ…

【夏を楽しもう】今年も大丹波国際虹ます釣り場に行ってきたよ

先週末の7月30日に奥多摩にある大丹波国際虹ます釣り場という釣り堀に釣りに行ってきました。 ということで、不定期の釣り記事行ってみよー!

必要なサンプルサイズを計算する(Python)

どーもこんにちは、ハヤトです。 アンケートやオンライン広告を計画するときに、 どれくらいのサンプルサイズがあれば妥当な検証結果を得られるか知りたい 、なんて時が結構あると思います。 今回は、必要なサンプルサイズをPythonで計算します(ちょっと無…

UbuntuでJavaのtimezoneがUTCからJSTに変わらない時の確認事項

UbuntuでJava(Spring)アプリケーションを利用しているが、どうしてもJavaのタイムゾーンがJSTにならない場合の確認事項。 バージョン Ubuntu 16.04 Java 1.8.0_91 確認事項① /etc/timezoneをAsia/Tokyoに変更する これは Debian/Ubuntu系固有 確認事項② /etc…

20代のうちに買ってよかったもの8選

こんにちは @hazumu です。 この7月でついに30歳になりました。最高! さてさて、時間がすぎるのは早いもので20代もあっという間に終わってしまいましたね。 というわけで、僕が20代のうちに買ってよかったものを適当にランキングしてみました! 1位 ルンバ …

アメリカで流行ってる動画サービスを現地で調べてきた(VidCon)

こんちは。はやとです。 会社にアメリカ出張させてもらい、 VidCon という動画系サービスのカンファレンスに参加してきました。 その過程で、アメリカで流行ってる(流行ろうとしている)動画サービスをだいたい把握できたので、まとめて紹介しようと思いま…

無料で出来るウェブサービスの宣伝方法 まとめ

こんにちは。最近めっきりブログを書けなくなっていて、@hazumu に申し訳ない気持ちでいっぱいのHayatoです。 最近、Facebook AI Bot「アルフレッド」をローンチしました。今回はその時にやったウェブサービスの宣伝方法についてまとめておこうと思います。 …

React + Reduxでマウスについてくる星を作る

さて、皆様七夕の夜をいかがお過ごしでしょうか? 七夕ということで、マウスの軌跡を星が追従するJavaScriptを書きました。 作ったもの www.youtube.com DEMO ※一旦PCのみ もうホント簡単なんですが、Web1.0時代に流行していたマウスに画像を追従させるあれ…

Ubuntu16.04 (Xenial Xerus) を日本語環境にする

VirtualBoxにインストールしたばかりのUbuntuだと日本語が使えなかったのでマニュアルで設定する必要があった。 sudo apt-get install language-pack-ja-base language-pack-ja sudo update-locale LANGUAGE=ja_JP:ja LANG=ja_JP.UTF-8 source /etc/default/…

「クソゲー供養会」でメジェドくんを供養したらカヤック賞を頂いた話。

昨日、面白法人カヤックさんのイベント「クソゲー供養会」で、2014年に開発して、なんの話題にもならないまま、広大なアプリマーケットの海に投げ出されっぱなしにされていたゲーム「GO! GO! メジェドアドベンチャー」を供養してきました。 (と言ってもLTを…

Facebookボットを作った話

さてさて、このブログでちょくちょく記事を書いていたので、購読されている方は知ってると思うのですが、GWから密かにFacebook Messenger Platformを利用してBotを作っていました。 実はGW明けにはほぼ出来上がっていたのですが、Facebook側のレビューがなか…

プレゼントを選んで欲しい人向け AI Bot「アルフレッド」を公開しました

こんにちは。いつのまにか2016年も折り返しの6月に、雨断続的に降り注ぐTokyoで皆さんいかがお過ごしでしょうか。 今回は、今年1作目のウェブサービスを公開したので宣伝をさせてくださいっ。 Facebook AI Bot 「アルフレッド」 忙しい人のために、相手に喜…

家買うブログを始めて1年が経ちました

こんにちは@hazumuです。 本日でこのブログを始めて今日で丁度1年になります。\おめでとう/ 真面目にコンテンツを考えてブログを書くのは始めてだったので毎回記事を書くときには苦戦をしていますが、アクセスも少ないながら順調に推移し記事を書くのが結…

Solr勉強 その① - インストール編-

会社でSolrを利用することになりそうなので、下調べついでに学んだことを定期的に書いていこうと思います。 目的 Solrでできること/できないことを理解する Solrをインストールする Solrの使い方を理解する データの投入方法 クエリの投げ方 アプリケーショ…

Vue.js Tokyo v-meetup="#1"に行ってきたよ

今日はVue.jsのミートアップに参加してきました。 なんとVue.jsの生みの親のEvan YouさんのQ&Aセッション付き! vuejs-meetup.connpass.com 全体を通して、気になった箇所や今後調べておきたいことを箇条書き程度に。 気になったこと Vue.jsは学習コストが低…