oinume journal

Scratchpad of what I learned

2017年に買って良かったモノ・サービス

LINE Pay

買ったモノじゃないけど、LINE Payをちゃんと使い始めた。

  • ポイントが2%つく。これはかなり太っ腹だと思う
  • 決済するとすぐにLINEに通知が来る。自分はPebbleに通知を送っているので、いくら使ったのかがすぐわかってこれが地味にありがたい
  • オートチャージ的な機能が便利

というのが良い点。これがJCBじゃなくてVISAだったら最高だけど、日本だったらだいたいどの店でもJCB使えるのでそれほど困っていない。LINE Payカードのおかげでほぼ現金を使わなくなった。微妙な点としては

  • PINコードでの認証ができない(手書きのサイン)。コンビニとかではサイン求められないけど、この時代にサインはないわ...
  • 明細がLINEでしか見れない。MoneyForwardとかでは見れるけど会社の経費精算する時にこれでいいのか感が否めない

あたりかな。

マキタのコードレス掃除機

「ちょっと部屋が汚れてるなー」という、わざわざルンバを起動するレベルじゃない時にすごく便利。ウチは子供の食べこぼしがひどいので、食事の後にさらっとこれで掃除している。コードレスなので、クイックルワイパーをかける感覚で掃除機かけられるのが良い。バッテリーは20分しかもたいないけど、1回あたり5分ぐらいしか使わないので意外と困らない。気軽に掃除機かけられるので、一人暮らしの人にもオススメ。

Withingsの体重計

測った体重をスマホのアプリでグラフで見れる。ちゃんと毎日この体重計に乗ることでダイエットのモチベーションになると思う。計測大事。Nokiaに買収されてしまったのが微妙だけど、プロダクト自体は良い。

Handling uploaded files in Go

Handling uploaded files in Go is quite easy. Here is a complete example.

The Go Programming Language (Addison-Wesley Professional Computing Series)

The Go Programming Language (Addison-Wesley Professional Computing Series)

エストニアに行く前準備

今日からエストニアに6日間出張に行くのでその前準備に何をやったかをメモしておく。

エストニア出張の目的

  • ちゃんとしたマイナンバーがある
  • 選挙の投票や、学校の授業の成績管理などが電子化されている
  • e-Residencyなにそれかっこいい
  • スタートアップ界隈が熱い

というのを見てみたくて行く感じ。特にスタートアップシーンはTransferWiseやPipedriveという会社は日本にも支社があるぐらい成功しているらしい。エストニアは人口が130万人と少ないので、国内である程度うまくいったらヨーロッパやアメリカに事業を展開するというモデルらしい。

エストニアの概要

  • 人口は130万人(参考:福岡の人口が160万)
  • 主要産業は製造業、卸売・小売、不動産、運輸、建設等。製造業は、主に機械、木材、製紙、家具、食品、金属、化学等が中心。エネルギー資源関連では、オイルシェールを産出、主として発電に利用している。IT等のイノベーション産業の誘致・育成を積極的に進めている。
  • 首都のタリンの旧市街は世界遺産になっている
  • 英語が通じる
  • 観光地はクレジットカード(デビットカード)の決済がメイン。中国みたいにQRコード決済はない

航空券

  • アエロフロートだと1人10万円以下で行ける。ただし、行き14時間、帰り18時間ぐらいかかる
  • FINAIRだと10万ちょいかかるけど、行きも帰りも12時間

あたりが狙い目。

宿

エストニアは宿泊費用が安い。ホテルも1泊5千円ぐらいあればそこそこのに泊まれそう。自分たちは今回はAirBnBにしたけど、4人それぞれの寝室がついていて1泊2万円ぐらい。タリン周辺にはAirBnBの部屋はたくさんあるけど、1週間前を切ると急に埋まりだすので余裕をもって2週間前までには予約しておくと良さそう。

今回泊まるのは↓の部屋。

www.airbnb.jp

申し込んだ現地のツアー

www.likealocalguide.com

これが良さそうだったので申し込んでみた。日本語でのガイドも可能なのとPipedriveのオフィスも訪問できる。値段も30ユーロで良心的。ちなみにこのLike a Local Guide というサイトには他の観光ツアーもいろいろあるのでオススメ。

SIMとWiFi

現地で買えば良さそう。3GBで30日間使えるSIMが3.99ユーロらしい。安い!またWiFiも整備されているっぽい。

最後に

というわけで行ってきます!

未来型国家エストニアの挑戦  電子政府がひらく世界 (NextPublishing)

未来型国家エストニアの挑戦  電子政府がひらく世界 (NextPublishing)

ハワイでのSIMはKDDI x h2o が良かった

9/1から1週間ほどハワイに行ったのだけど、現地でのネットワーク環境どうしようかと悩んでいて色々調べた結果KDDI mobile x h2o のSIMが良かったのでレポート。良かった点としては

  • 安い
  • 4G LTE使える
  • 電話もかけられる
  • auのiPhoneだとSIMロック解除してなくてもそのまま使える
  • SIMは日本のAmazonで事前に買える
  • 現地でトラブルがあっても日本語でのサポートがある

というところ。以下で詳しく説明してみる。

料金

30日未満の利用で3GBで$30。1週間の滞在で自分は1GBも使わなかった。もっと大容量が必要な場合でも、$40で6GBなのでかなりオトクな感じ。 詳しくはプランの詳細を参照。

ちなみにハワイで1週間イモトのWiFi借りると1万円を超える。今回はSIM2枚で7000円ぐらいだったのでSIMの方が安上がりで便利。

auのiPhoneだとそのまま使える

ウチの奥さんはauのSIMロックされたiPhone5sを使っていたのだけど、WiFiがつながるところでSIMを挿してAPNプロファイルをインストールすればすぐ使えるようになった。

このh2oというキャリアはAT&Tのネットワークを使っているので、以下の周波数が使える。(参考)

  • Band 2 1900 MHz
  • Band 4 1700 MHz
  • Band 5 800 MHz
  • Band 12/17/14/29 700 MHz

au iPhone5s(モデルA1453)はLTE Band1、2、3、4、5、8、13、17、18、19、20、25、26に対応しているので、Band 17が使えていたっぽい。(参考)

SIMはAmazonで購入可能

旅行に行く前にAmazonでSIMを買っておいて、現地に着く日にアクティベートされるようにWebサイトから設定すれば使える。10/1からAmazonでデータ通信料金込みのSIMも発売されるようだ。

現地での日本語サポート

自分が持っていったNexus4では最初データ通信だけができずサポートに問い合わせたんだけど、日本語だったのですぐに解決できた。

現地での使用感

写真を撮り忘れてしまったけど、iPhone5sだとハワイでは2Mbpsぐらい出ていたらしい。ネットで調べ物をするとか、GoogleMap使うぐらいの用途であれば特にストレスはなかったけど、写真をアップロードするのは少し遅いかなーと感じた。まぁ日本のモバイルネットワークの帯域幅を期待してはいけないのでこんなものなのかなと。

あと、Air B&Bで借りた部屋でちょっとしたトラブルがあり、ホストに緊急連絡するのに電話が必要だったので、このSIMで電話もかけられてありがたかった。

使い終わったら

何もしないと次の月にまた利用料がクレカから引き落とされてしまうので、旅行が終わったら忘れずに customercare@kddimobilesim.com にオートリチャージの解除のメールを送っておこう。

gcloudコマンドを使わずにGoogle Cloud Storageにファイルをアップロードする

概要

gcloudコマンドを使わずにPythonとgoogle-cloudを使ってGoogle Cloud Storage(GCS)に頑張ってファイルをアップロードしてみる。google-cloudはPython向けのGoogle Cloud Platformの何かを操作するためのクライアントライブラリ。GCPの以下の機能の操作がサポートされている。

  • GA
    • Google Cloud Datastore
    • Google Cloud Storage
    • Google Cloud Translation
    • Stackdriver Logging
  • Beta
    • Google BigQuery
    • Google Cloud Natural Language
    • Google Cloud Speech
    • Google Cloud Video Intelligence
    • Google Cloud Vision
  • Alpha
    • Google Cloud Bigtable
    • Google Cloud Bigtable
    • Google Cloud DNS
    • Google Cloud Pub/Sub
    • Google Cloud Resource Manager
    • Google Cloud Runtime Configuration
    • Google Cloud Spanner
    • Stackdriver Error Reporting
    • Stackdriver Monitoring

gcloudコマンドはPython 2.7を必要とするんだけど、Python 2.7をどうしてもインストールできない環境で役立つ話だと思う。自分はHerokuでPython 3.6.x を使っていて、gcloudコマンドのためにPython 2.7をインストールできなくて困っていたのだけど、このgoogle-cloudライブラリを使うようにしてみた。

セットアップ

前提として

  • Python 3.4 以上
  • pip

がインストールされていること。

$ pip install google-cloud

でgoogle-cloudをインストールする。

認証

google-cloudのライブラリを使うにあたり、credentialが必要になる。おそらく一番ラクなのは

  • GCPのConsoleでService Accountを作って
  • そのcredential情報をJSONファイルとして取得し
  • GOOGLE_APPLICATION_CREDENTIALS 環境変数で指定する

ことだと思う。詳しい話は google-authのドキュメントに書いてある。その他の認証のやり方についても詳しく書いてある。

Pythonのスクリプトを実行する前に以下のコマンドで credential 情報のJSONファイルを指定すれば、Pythonのスクリプトでは特に何もしなくてOKだ。

$ export GOOGLE_APPLICATION_CREDENTIALS=/path/to/key.json

GCSにファイルをアップロードする

それでは本題。google-cloudのstorageモジュールを使ってGCSにファイルをアップロードしてみる。

  • get_bucketでバケットを取得して
  • blobオブジェクトを作ってアップロードする

感じ。

from google.cloud import storage
import sys


def upload(bucket_name, f):
    client = storage.Client()
    bucket = client.get_bucket(bucket_name)
    new_blob = bucket.blob(f)
    new_blob.upload_from_filename(f)


if __name__ == '__main__':
    if len(sys.argv) < 3:
        print('gcs.py <bucket> <file>', file=sys.stderr)
        sys.exit(1)
    upload(sys.argv[1], sys.argv[2])

まとめ

gcloudコマンドは早くPython3対応するかGoで書き直されて欲しい。

プログラマのためのGoogle Cloud Platform入門 サービスの全体像からクラウドネイティブアプリケーション構築まで

プログラマのためのGoogle Cloud Platform入門 サービスの全体像からクラウドネイティブアプリケーション構築まで