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

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

async/awaitが手になじむまで色々書いてみるよ〜

現在運用中のプロジェクトのNodeのバージョンを7から8にあげたのでPromiseで書いていた箇所を徐々にasync/awaitに置き換えています。 簡単に書ける一方でPromsieに慣れすぎていたため、「これ並列処理になるんだっけ」とか、「てか、これ動く?」見たいなレ…

GAEにデプロイしたRailsからGoogle Cloud SQL に疎通できない時に確認すること

概要 さてさて、去年 Google App Engine に Ruby の runtimeが追加されたことにより、GAE上でRailsを稼働させることが出来るようになりました。 ちょっと時間が空いてしまいましたが絶賛いじり中です。 今日は、GAEに上げたRailsからGoogle Cloud SQLに接続…

UFW (Uncomplicated Firewall) を理解しておく

UFWとは? コマンドラインで簡単に設定出来るfirewall。 Ubuntu 8.04 LTSより新しいバージョンならデフォルトでインストールされているので、Ubuntuを利用している場合はこれを利用してfirewallの設定をするのが一般的。 解説 例えば以下の設定があったとす…

NodeでFCMを利用してAndroidにプッシュ通知を送る

すいません!すいません! めちゃくちゃブログの更新滞っちゃいましたねorz 概要 サーバーサイドのNodeからFCM経由でAndroidアプリにプッシュ通知を送る際の実装メモです。 FCMとは? Firebase Cloud Messagingのことで、Googleが提供するAndroidの通知サー…

ES2015でどこまでクイックソートを短くかけるか

やってみた。 function quick(arr) { if (arr.length === 0) return [] const [pivot, ...tail] = arr return [...quick(tail.filter( x => x <= pivot )), pivot , ...quick(tail.filter( x => x > pivot ))] } const sorted = quick([8, 1, 10, 5, 4, 5, 1…

Twitter APIで取得したプロフィール画像のサイズを変更する

api

Twitter認証でプロフィール画像を引っ張ってきた時にそのサイズを変更したいことって結構ありますよね。 なにも考えなければuserオブジェクトのprofile_image_urlというプロパティから48px x 48pxの画像が取得できます。 画像が小さい ただ、48px x 48px と…

1時間で終わる、圧倒的「確定申告」の方法

10代の頃からウェブサイトの広告収益をちまちま貰っては、確定申告で地獄を見てきたHayatoです。 今回は、最近よく聞かれる確定申告の流れをまとめておこうと思います。 サラリーマンとして普通に働きつつ副業で収入を得ている人が初めての確定申告をすると…

Sirenを使って iOSアプリに強制アップデート実装するよ

ハロー、こんにちは @hazumu です。 iOS App作ってますか? アプリをの開発に置いてサーバー側のAPIとアプリのバージョンを合わせるのって結構だるいですよね。 そんなときはAPIのバージョンをたくさん用意するのも面倒なのでアプリ側に強制アップデートを導…

Homebrewでインストールした MySQL の my.cnf の置き場所と一般ログの設定方法

my.cnf の置き場所 手持ちのMacにHomebrewでMySQLををインストールした場合にどこにmy.cnfを置けばよいか調べたのでメモ。 ただインストールするだけでは、ここ↓には設置されない。 /etc/my.cnf 以下のコマンドを叩いて設定を見る。 mysql --help Default op…

Xcode8.3, Swift 3.1にアップデートしたメモ

概要 先程Xcode のバージョンをアップデートしたのでその時に対応したことのメモです。 いつも通りXVimが起動しない 既にissueが上がっており対応してくれてた人がいるのでその方のリポジトリにあるコードで一旦対応。 本家にマージされたらまた乗り換えよう…

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の審…

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

(*)こちらのデータはタンタンタイガーの数値を基にして作成しておりますが、全てのデータ開示は会社の競争上で問題があるため、売上や単価など一部数値を変更しております。個別にご連絡いただければ開示・ご相談を検討します。 あけましておめでとうござい…

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 を利…

【2016年度受験】独学でネットワークスペシャリストに合格するための対策、勉強方法、勉強時間、参考書を公開するよ

※最終更新 2017.06.05 こんにちは。@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ぐらい入れてみる …