2017年、あけましておめでとうございます

あけましておめでとうございます! 昨年12月に、初の自社サービス「botmart」をリリース致しました。

botmart.co

ベータ版でのスタートですが、早速ご利用いただけたり、いくつかお問い合わせをいただくことができ、とても嬉しく思います。

今年は一気にアクセルを踏むべく、色々と激しく仕掛けていく予定ですので、是非引き続きご注目いただければ幸いです。

現在は、わたくしCEOの齊藤とCTOの高丸2名体制で事業を行っておりますが、年内に目標10名くらいを掲げていこうと今決めました。 さらに折角Globalを意識しまくっておりますので、年内に2ヶ国事業所展開でもできたら、なんだかイケてる気がします。

やるからには浪漫を持って、ガシガシと進めていきたいと思います。

どうぞよろしくお願いたします。

HerokuからGoogle App EngineのImage APIを使ってGoogle Cloud Storageにある画像を動的変換する

はじめに

Chief Technology Officerの高丸です。

シンガポールは11-1月は雨季と言われますが、12月に入ってからは全然雨が降らなくなりました。(降ることは降るのですが、夜にさっと降ったりする程度です。)

梅雨明け太夫が、梅雨明け宣言したんですね。

日本のみなさん、シンガポールは暖かいですよ〜。

Heroku で画像変換

さて、HerokuなどのPaaSで運用している場合、たくさんのアドオンが用意されているので、基本、機能実装に困ることはないのですが、
ちょっとサーバーサイドで凝ったことをやろうとしたり、コスト安く済ませようとするとどうしようか考えることがあります。

その一つに画像変換があると思います。

Cloudinaryのアドオンを使えば、500MBまでであれば無料で使えますが、
それを超えると、次は$50/月(10GBまで)のプランになり、継続的に使っていくとコストに響いてきます。

f:id:takamario:20161217144345p:plain

画像変換のインフラ構成例

通常の構成例

前提

「アップロードされた画像を変換し、アプリケーションで使う」として話を進めます。

まず、画像アップロード先の容量をできるだけ気にしなくて良いようにするのがポイントだと思います。
となると、Amazon S3Google Cloud Storage(GCS)をストレージに選ぶことが一般的でしょうか。

(a) 画像変換サーバーを立てる

Amazon EC2Google Compute Engine(GCE)で、そこにApacheやNginxなどの画像変換サーバー(w/ small_lightモジュール)を構築し、S3やGCSから画像を返す、といったやり方が多くあると思います。

f:id:takamario:20161217160337j:plain

  • メリット
    • EC2/GCEインスタンスはスケールできる
  • デメリット
    • インスタンスの利用コスト
    • 画像変換サーバーの構築・管理が必要

(b) 事前に変換済み画像を用意しておく

最近だと、サーバーレスアーキテクチャということで、Lambdaファーストな構成が取られることも非常に多くなってきました。 LambdaのインスタンスにはImageMagickがインストールされているので、変換処理を書いてあげるだけです。

イベント駆動で非同期に処理できるのが魅力的で、画像処理といったものにも向いていたりします。

画像がアップロードされた時に発生するイベントをもとに、AWS LambdaまたはGoogle Cloud Functions(GCF)が動き、アプリケーションで必要な画像に変換します。

f:id:takamario:20161217161346j:plain

ただ、これは事前に作っておくタイプなので、動的と呼ぶには違う感じですね。

  • メリット
    • Lambdaはほぼ無料
    • Lambdaインスタンスはスケールできる
    • 画像変換サーバー構築不要(Lambda Function用のコーディングは必要)
  • デメリット
    • 使う前に、変換済のものを作成しておかなければならない
    • 変換パターンが増えると、既にアップロードされている画像は再作成必要

(c) LambdaをAPIとして使う(*2017-12-18追記)

このパターンを忘れていたので、追記しました。 LambdaのインスタンスにはImageMagickがインストールされているので、APIとして変換した画像を返すことも可能です。 おそらく、Amazon API Gatewayなんかと一緒に使うか、LambdaのInvoke APIをコールすることになると思います。 GCPでは、Cloud Endpoints→Cloud Functionsの連携がまだできないようで、HTTP Triggersを使って、Cloud Functionsをコールすることで、同様のことができそうです。

f:id:takamario:20161218165119j:plain

  • メリット
    • Lambdaはほぼ無料
    • Lambdaインスタンスはスケールできる
    • 画像変換サーバー構築不要(Lambda Function用のコーディングは必要)
    • API GatewayでAPIの認証が可能
  • デメリット
    • API Gatewayの利用料がかかる
    • 画像変換のURLパラメーター処理を自分で実装する必要がある

デメリット少なそうですね。

(d) Google App Engine(GAE)のImage APIを使う

Google App Engine、日本にもやってきましたね。アツいんです!

GAEのインスタンスからコールできるImage APIというものがあり、それがなんと無料で画像変換を提供してくれています!

f:id:takamario:20161217162529j:plain

まず、(1)は通常のアップロードですが、(2)でGAE経由でImage APIをコールします。そうすると、ユニークなURL(ドメインはGoogleのCDN?)が発行され、このURLにパラメータを付けることで、(3)の動的変換が可能になります。

なので、アップロード後にユニークURLだけをDB等に保存しておけば、アプリケーションの中ではパラメータを付けたURLを作るようにすればOKです。

ざっくりとURLを発行する部分のコード(Go)ですが、

package server

import (
    "fmt"
    "net/http"
    "path/filepath"

    "google.golang.org/appengine"
    "google.golang.org/appengine/blobstore"
    "google.golang.org/appengine/image"
)

func init() {
    http.HandleFunc("/", handler)
}
func handler(w http.ResponseWriter, r *http.Request) {
    bucketName := r.URL.Query().Get("bucket_name")
    objectKey := r.URL.Query().Get("object_key")
    gsPath := filepath.Join("/gs", bucketName, objectKey)

    ctx := appengine.NewContext(r)
    blobKey, err := blobstore.BlobKeyForFile(ctx, gsPath)
    if err != nil {
        fmt.Errorf("%v", err)
    }

    opts := image.ServingURLOptions{Secure: true}
    url, err := image.ServingURL(ctx, blobKey, &opts)
    if err != nil {
        fmt.Errorf("%v", err)
    }

    fmt.Fprint(w, url.String())
}

と、google.golang.org/appengineのパッケージを使ってユニークURLを取得しているだけという、超簡単なものです。これだけで良いのです。

ただ、これは画像URLがGoogleのドメインになってしまうというデメリットもあります。また、画像URLに権限設定はできないので、公開しても良いということが条件になります。(URLはランダムなので推測されることはほぼないが、知られた場合誰でもアクセスできる。)

使い所は限られるかもしれませんが、サーバー構築なくほぼ無料で作成できます。

  • メリット
    • GAEは、28インスタンス時間(インスタンス数 x 時間)まで無料、Image APIも無料
    • GAEインスタンスはスケールできる
    • 画像変換サーバー構築不要(Image APIをコールするアプリケーションは必要)
  • デメリット
    • Image APIが、いつまで無料かは不明
    • Image APIのサービスレベルに依存する
    • URLがGoogleドメインになる
    • GoogleのCDNドメインのサービスレベルに依存する
    • 画像の権限付与は不可、公開前提となる
    • GAE Standard Environmentのため、GAEで動かすアプリは、Go/Python/Java/PHPに限定される(が、難しいコーディングはほぼない)

(もしかして、デメリット多すぎ。。?)

Image APIに関して

Image APIの制限としては、1回の処理で扱えるファイルサイズが32MBまでですが、フルサイズ一眼レフの解像度でなければそこまでは達しないと思うので、普通の規模であれば何も問題ないと思います。

GAEのドキュメントには、リサイズとクロップ程度しかパラメーターは載っていませんが、いくつかあるので以下に載せておきます。

  • パラメータ

    • ハイフンでつなぐ
      • e.g. http://[image-url]=s200-fh-p-b10-c0xFFFF0000
  • リサイズ・クロップ

    • s640 — 長辺を640pxに合わせて、縦横比そのままで、リサイズ
    • s0 — オリジナルサイズ
    • w100 — 幅を100pxに合わせて、リサイズ
    • h100 — 高さを100pxに合わせて、リサイズ
    • s(値なし) — 縦横比変えて、リサイズ(w・hと合わせて使う)
    • c — クロップ(値なしは画像中央正方形切り抜き、w・hと合わせると縦横比は変えずに、指定した幅・高さで切り抜き)
    • p — 顔判定クロップ(プロフィール画像用?)
    • cc — 円形クロップ
    • ci — 短辺に合わせて正方形クロップ
  • 回転

    • fv — 垂直回転
    • fh — 水平回転
    • r{90, 180, 270} — 時計回りに回転
  • フォーマット変換

    • rj — JPEG出力
    • rp — PNG出力
    • rw — WebP出力!
    • rg — GIF出力

おわりに

今回は、QCDでいうCを抑えるべく、お手軽なやり方ということで、GAEを使ってみました。

個人的な経験として、リサイズ程度であれば、動的変換の負荷で困ることはほとんどなく、むしろアプリケーション仕様として、画像サイズのパターンが増え、その対応をひとつひとつやらなければいけないことの方がよっぽど大変でした。

GCPのプロダクト、およびGAEに関しては、また記事を書いていきたいと思います。

参考

suguru03.hatenablog.com kaichu.io stackoverflow.com qiita.com

日本円 → シンガポールドルの引き出し方

はじめに

Chief Technology Officerの高丸です。

日本からシンガポールやってきて困ることの一つにお金があります。もちろん、ないと生活できないですからね……。

日本のお金は、国際キャッシュカードやクレジットカードのキャッシング、あるいは海外送金でシンガポールドルとして受け取ることができますが、手数料が馬鹿になりません。

そこで、いろいろなお金の引き出し方について、これからシンガポールに来られる方のためにまとめておきます。

日本のお金の引き出し方

国際キャッシュカード(PLUS、Cirrus)

PlusがVISA系で、CirrusがMasterCard系です。
f:id:takamario:20161210154756p:plain:w300

お手持ちの銀行キャッシュカードを確認してみてください。

メガバンクやネット銀行のカードには、だいたいこのロゴが入っていると思います。
もし入っていないでも、クレジットカード機能付きやデビッドカードには入っている可能性は高いと思います。

これを使うと、上記海外キャッシングサービスが対応しているATMであれば、お使いの日本の銀行口座からそのまま外貨として引き落とせるのでとても楽です。

が、S$1000下ろすと、3,000〜4,000円ぐらいの手数料がかかります……。

クレジットカードでキャッシング

これも、上記のキャッシングサービスを利用してのキャッシングになりますが、クレジットカードでの支払になります。

加えて言うと、これは借入なので、返済しないと利息が発生します。
ちなみに、JCBやダイナースはCirrus系に含まれます。

ただ、クレジットカードでキャッシングした場合、S$1,000(約80,000円)をちょうど30日後に返済するとなると、だいたい年利が15〜20%だと思うので、

80,000 × 15% ÷ 365 × 30 = 986.3(円)

約1,000円 となり、若干国際キャッシュカード利用よりも安く済みます。

赤色で示した日数が長くなるほど利息が増えるので、
できれば、

  • カード利用締め日にキャッシングする(借入を30日間に抑える)
  • インターネットで繰上返済(例:PayEasy)できるカードでキャッシングする(セディナカード(旧OMC)がおすすめ)

と、よくあるお小遣い稼ぎブログには書いてますね(笑)

海外送金

まとまったお金を移動させるのであれば、海外送金(仕向送金)になるかと思います。 先述のキャッシングは、ATMの利用限度額などもあり、1日に大量のお金を引き出すことはできません。

海外送金で一番面倒なことは、海外転出する前に(日本の住所がある状態で)、手続きを済ませておかなければいけないことです。

最近ですと、マイナンバーの提出がないと、海外送金できないようになっています。もし、海外転出される際は、早めに手続きをしておきましょう。

このブログは比較サイトではないので、使えそうな海外送金サービスのみを挙げておきます。

サービス名 送金手数料(※) 受取手数料 備考
SBIレミット 1,480円 なし 受取はMoneyGram社経由なので、銀行口座がなくても受取可能。
楽天銀行 海外送金 750円 1,000円 受取手数料は、送金元口座で払うことも可能。円建てで送金する場合は、別途両替手数料3,000円が発生。
新生銀行 Goレミット 2,000円 なし 円建てで送金する場合は、別途両替手数料0.1%(最低1,500円)が発生。新生銀行は、シンガポールドルの外貨預金可。
enRemit 1,380円 なし 100,000円までは会員登録なしで送金可能。

(※S$1,000を送金した場合)

こう見ると、SBIレミットが受け取りやすく、手数料も安くておすすめですね。
シンガポールドルを日本でもそのまま利用するのであれば、新生銀行もおすすめです。 enRemitも結局はMoneyGram社経由なので、手数料が安いです。

他にも海外送金を対応している銀行や郵便局などもありますが、手数料が高くなってしまうため、除いております。

また、「FXの口座を使って外貨に両替をして、外貨対応の銀行に入金して、両替手数料を安く済ませる……」
という方法もお小遣い稼ぎブログにはよく載ってますね(笑)

シンガポールから日本へ送金(被仕向送金)

逆にシンガポールドルを日本に送金する場合は、どうでしょう。

いろいろ調べてみましたが、DBS・POSB・OCBC・UOBのようなローカル銀行であれば、直接銀行経由で送金してしまった方が、楽で手数料もそれほど高くありませんでした。

だいたい、S$25程度で送金できますが、日本円で受け取る場合は、両替手数料が発生します。
これも、「FX口座に振り込んでからの両替」や、「新生銀行に直接シンガポールドルで振込」という形で手数料は抑えられそうです。

もしかすると、ビットコインで両替するっていうのが、時代かもしれないですね。

おわりに

どうしてもシンガポールドルの現金が必要な際に、ATMとかに行くと面倒になって、3,000〜4,000円の手数料にも関わらず、勢いで出金してしまうこともよくあります。

3,000〜4,000円あれば、チキンライスは10杯ぐらい食べられますからね。

お金は大切にしましょう!

はてなブログを独自ドメインで運用しているネット企業のブログまとめ

こんにちは、Chief Executive Officerの齊藤です。

独自ドメインで会社のブログや開発ブログなどを運用する際に、どのサービスで運用していくか悩みますよね。弊社もほんの少しだけ悩みました。

しかし、よく調べてみたら、最近のイケてるネット企業は、WordPressではなく、はてなブログ で運用していることが多い(気がする)ことが判明しました。

そこで今回は、はてなブログを独自ドメインで運用しているネット企業のブログをまとめてみましたのでご紹介します!

ちなみに、はてなブログは、SEOで神ってる辻さんが激オススメしていたので、SEO的にもおすすめのようです。

staff.hatenablog.com

前提:その企業ブログが、はてなブログを使っているか見分けるポイント

  • はてなスターがナチュラルに使えたらはてなブログ
  • htmlソース内で最初の方に以下の記述が存在したらはてなブログ
data-admin-domain="http://blog.hatena.ne.jp"

はてなブログ系企業ブログ一覧

クックパッド開発者ブログ

http://techlife.cookpad.com/

Mercari Engineering Blog

http://tech.mercari.com/

mercan(メルカン)

http://mercan.mercari.com/

トレタ開発者ブログ

http://tech.toreta.in/

VASILY DEVELOPERS BLOG

http://tech.vasily.jp/

Gunosiru(グノシル) | はたらくを知り、 Gunosyを知る。

http://gunosiru.gunosy.co.jp/

inFablic

http://in.fablic.co.jp/

mixi engineer blog

http://alpha.mixi.co.jp/

pixiv inside

http://inside.pixiv.net/

VOYAGE GROUP techlog

http://techlog.voyagegroup.com/

Cybozu Inside Out | サイボウズエンジニアのブログ

http://blog.cybozu.io/

UZABASE Tech Blog

http://tech.uzabase.com/

さいごに

他にもイケてるネット企業ではてなブログを独自ドメイン利用しているところをご存知でしたら教えてください!

Crispyがオフィス構えている話題のコワーキングスペースSpacemobを紹介するよ

こんにちは!社長です。

Crispyは現在2名しかおらず基本的にPCだけで仕事ができているため、シンガポールのコワーキングスペースにオフィスを構えています。

利用しているコワーキングスペースは、2016年9月にオープンしたばかりのシンガポールで一番新しい「Spacemob」というところです。我々は11月から利用しています。

このSpacemobですが、ちょうど昨日(2016/11/24)あたりに色々なテックメディアで紹介されておりまして、なんと$5.5million(2016/11/25現在のドル円換算で6.25億円くらい)も資金調達したみたいです!すごい!

というわけで、ちょうどわれわれも入居しておりますし、Spacemobってどんなところなの?というのをご紹介したいと思います。

オフィス環境を選ぶ際のポイント

一応オフィスを探した際のポイントは以下の5点ほどありました。探したというほど物件見ていませんが…

  • 安い
  • wifi環境が快適
  • 24h/7d 使える
  • 駅から近い
  • ランチに困らない
  • なんか勢い場所や環境

なぜSpacemobを選んだか

上述のオフィスを選ぶ際のポイントを踏まえつつ探していたら、Spacemobと出会いました。きっかけは友だちのツイートでした。

このときはまだ他のオフィスを無料で間借りさせてもらっていたので「ふーん」という感じでcheckしていたのですが、ちょうど10月初旬にオフィスを出なければいけなくなる、かつ、CTOが来星するということでオフィスを探し始めていたところ、Spacemobがピーンときてすぐに見学にいきました。

見学をして、案内してくれた担当者のお話を伺っていて「ここはイケてる…」と思ってすぐに契約しました。決めては以下。

安い

集中して仕事をしたいため固定席を契約したのですが、月S$550(税別)/1人です。シンガポール内の他のコワーキングスペースはS$700くらいかかっているので破格の安さでした。しかも12ヶ月契約なら月S$475(税別)/1人になります。日本円80円換算で言うと38,000円です。激安。後述の環境を見てもらえればその安さに驚きます。渋谷のコワーキングスペースとかと比べると半額くらいです。

wifi環境が最高

最高です。優先もひこうと思えばひけるぽいです。

24h/7d使える

スタートアップなのでなにかあったら24h/7d使いたい。そんなニーズにももちろん答えてくれます。最高。

シャワーがある

なんとトイレにシャワーがあります。

場所が最強

シンガポールを代表するイケイケスポット「オーチャード(Orchard)」の駅から徒歩5分ほどの場所にあります。日本で言うと銀座の数寄屋橋交差点にオフィスがある感じでしょうか。徒歩3分に伊勢丹やグランドハイアットがあるようなところです。

駅チカ

駅から5分

ランチに困らない

日本と比べるとシンガポールのどこにいってもランチに困るのですが、オーチャードはシンガポール内では比較的ランチに困らないと言えます。フードコートも近くに2箇所あり、マクドナルド、ケンタッキー、サブウェイなどのファーストフードもあります。個人的にはマクドナルドが近くにないところでは働きたくないですね。

世界初のミシュラン獲得ラーメン屋「Japanese Soba Noodles 蔦」が近くにある

2016年11月にオープンしたばかりの「Japanese Soba Noodles 蔦」が、徒歩2分のところにあります。最高以外のなにものでもありません。おいしいラーメン屋が近くにあるスタートアップは成功しやすいというジンクスも友だちから聞いたことがあります。 f:id:saisoz:20161025121947j:plain

blog.crispy-inc.com

場所に勢いがある

冒頭で紹介したように、すごい金額を調達していているので、運気が良さそうです。オフィススペース自体が調達してスタートアップしてるってそうそうない気がします。あやかりたい。

ランチが隔週に一度くらい無料で振る舞われる

おいしくてイケてるランチを無料で食べることができます!こういうサポートはスタートアップにとってめちゃくちゃうれしい! f:id:saisoz:20161028124533j:plain f:id:saisoz:20161124121800j:plain

交流イベントがある

タコパとかやりました。 f:id:saisoz:20161117172023j:plain

コーヒーが飲み放題、フルーツ食べ放題、朝食シリアル食べ放題

コーヒーいつでも飲み放題で最高。フルーツもバナナやりんごが食べ放題で最高。朝食にシリアル2,3種類が食べ放題もちろん牛乳も飲み放題で最高。 f:id:saisoz:20161125093249j:plain

Tシャツ無料配布

Tシャツくれました。やさしい。 f:id:saisoz:20161116135934j:plain

入居者用のwebサービスがいけてる

会議室予約やプリンタ利用、イベント情報の取得、支払い、福利厚生サービスの利用など、すべてSpacemobが内製したwebサービスやアプリで利用することが可能。Spacemob自体がいけてるスタートアップなのでイケてます。

全体的にオフィス内環境が最高

こちらは写真で見ながら紹介したほうがいいので一気にご紹介します。

Spacemobのイケてるスペース大公開

天井が高くて開放的。天井にあるのはミラーボールではなくて照明。 f:id:saisoz:20161125092948j:plain

ゲストがきたらiPadで入居者の名前を選んでピコ太郎すると、入居者に通知が行くシステム。 f:id:saisoz:20161125092956j:plain

イベントスペース。結構頻繁にイベントが催されている。ランチイベントやタコパなどもここで行われる。 f:id:saisoz:20161125093013j:plain

イベントスペースに併設されているカフェ。おいしいランチや無料のやつとは違ったイケてるコーヒーを購入することができる。もちろんキャッシュレス支払い。 f:id:saisoz:20161125093023j:plain

イケてるコーヒーや紅茶の料金表。 f:id:saisoz:20161125093032j:plain

いたるところにカジュアルに利用できるスペースがある。 f:id:saisoz:20161125093042j:plain

固定席を離れてどこででも作業をすることができる。 f:id:saisoz:20161125093058j:plain

座り心地抜群な味のあるソファ。 f:id:saisoz:20161125093210j:plain

いたるところに絵が飾ってあってクリエイティビティが刺激される。David Bowie様をグロくカットしてるのはけしからんですが。 f:id:saisoz:20161125092852j:plain

ビルの構造的に真ん中に吹き抜けがあり、その周囲をオフィススペースが囲う感じになっている。ビルの3階フロアすべてがSpacemob。 f:id:saisoz:20161125093123j:plain

執務スペースに入るときはカードでピッします。 f:id:saisoz:20161125093155j:plain

こちらはフリー席。イスの座り心地もよく、大変使いやすい。 f:id:saisoz:20161125093221j:plain

左に見えるのは郵便ボックス。入居者に与えられます。右に見えるのは会議室。 f:id:saisoz:20161125092856j:plain

会議室の大きさも大小あって使いやすそう。 f:id:saisoz:20161125092806j:plain

個室がたくさんあるほうの廊下。右にあるのは全部個室。 f:id:saisoz:20161125092912j:plain

とある個室。個室には窓があって閉塞感がなさそうでいい感じぽい。みんなかなり自由にアレンジしてる模様。 f:id:saisoz:20161125092906j:plain

こちらは防音室。電話したり精神と時の部屋として使ったりする模様。一度使ったが空調寒すぎてギブでした。 f:id:saisoz:20161125092840j:plain

大型冷蔵庫、電子レンジ、コーヒーメーカー、浄水器、食器などが揃っている。 f:id:saisoz:20161125093238j:plain

固定席スペース。ここは全18席。前と隣にちょっとした敷居板があるので席の独立性も確保できる。 f:id:saisoz:20161125093334j:plain

固定席を利用する人に与えられるロッカー。荷物ないので使ってないですが…。 f:id:saisoz:20161125093316j:plain

デスクはこんな感じ。やさしい木目が心を癒やす。電源収納もしっかりしていて配線もしやすい。収納もたくさんあって暮らせるレベル。 f:id:saisoz:20161125093751j:plain

椅子はハーマンミラーのセイルチェア!アームの高さ調整できるし座りやすい! f:id:saisoz:20161125093837j:plain

ハーマンミラー。 f:id:saisoz:20161125093823j:plain

最後に

シンガポールにお越しの際には是非お立ち寄りください!

またワールドワイドに熱い想いを全力でぶつけてチャレンジしたいスタートアップに興味のある元気モリモリな学生さんいらっしゃいましたら是非ご連絡ください!ビデオチャットランチやビデオチャットコーヒー、ビデオチャット飲み会でもしましょう。 連絡先はこちら!

Spacemob詳細

Spacemob https://www.spacemob.co/

8 Claymore Hill, #03-01

Singapore 229572