とりあえず日本の祝日のデータのyamlのみを含んだ holiday-jp/holiday_jp リポジトリを作りました。

https://github.com/holiday-jp/holiday_jp

従来のgemのreposは holiday-jp/holiday_jp-ruby になります。

holiday-jp/holiday_jp-ruby: Japanese holiday.

holiday_jp-rubyとかholiday_jp-phpとか作ってgit submoduleでyamlのrepoを取り込む感じで。

RubyKaigi中は過去に手をかけられてなかった自分のgemをメンテする絶好のタイミング。

pull requestいただいたmergeしてるけどrubygemsにpushしてないgemがよくあるのでこの機会にリリース。

holiday_jp | RubyGems.org | your community gem host

organizationに移る前に、色々PRを貰ってたのでリリースしました。祝日に山の日が増えてます。

RubyKaigi 1日目、各発表は他所のレポートをみていただくとして、Official Partyはやはり大事ですね。

@k1LoWさんとお話させていただく。

holiday_jpをwootheeみたいにorganization作って、言語非依存のyml(各言語用ライブラリではgit submoduleで読み込む)だけにしてはどうかという話。

それがいいですね。今夜やります。

やりました。

holiday-jp

@morygonzalezさんとお話。

  • Lokkaを今までのしがらみすてて作りなおそう。
  • 2人しかいないのにLokkaKaigiやって沢山人いる風にみせよう。
  • 福岡ダンボール問題。
  • リモートワーク手放しで賞賛するな問題。

ステッカー貰いました。

ss

@toyoshiさんとお話。

  • misocaのチーム構成やマネジメントの話。
  • 企業と連携の仕方。
  • 名古屋は紹介が重い話。(ちょっと親しいぐらいでは紹介しない問題)

僕らも今企業向けのサービスを作っているところなので非常に参考になる話をお聞きしました。

インターン、元インターンの方々とご挨拶。毎年のことですがリモートでやっててはじめましての人も多い。

しょうもない俺達と長く話さず沢山の知らない人にどんどん声をかけようという話。

今回は京都なので5人でAirbnbで一軒家を借りて前乗りしました。

おばあちゃんの家のようなカントリーサイドのティピカルジャパニーズハウスです。

https://gyazo.com/91aad256abf30d78b504f0582e131567

https://gyazo.com/2d1070b02ab578ab03891a0681c0816c

https://gyazo.com/d9ee44f8714982655d2edabfefb7764e

明日に遅れないようにAppleの発表は見ずに寝ることにします。

  1. GCPの管理画面から静的IPアドレスを割り当てる。
  2. Cloud SQLの管理画面からrootユーザーにパスワードを設定する。
  3. Cloud SQLの管理画面から上記IPアドレスを許可する。

接続できることを確認する。

$ mysql -u root -p -h xxx.xxx.xxx.xxx

Google Container RegistryはプライベートなDocker Registryです。Docker HubのPrivateは有料なので受託開発でGCPつかうならアップ場所はここがよい。

GCPにログインして、デフォルトのPROJECT_IDは設定しておく。

$ gcloud auth login
$ gcloud config set project PROJECT_NAME_12345

イメージにタグを付ける。タグ名はリージョン/プロジェクトID/イメージ名

リージョンは日本ならasia.gcr.ioがよい。

$ docker tag xxxxxxx asia.gcr.io/PROJECT_NAME_12345/MY_IMAGE

pushする。

$ gcloud docker push asia.gcr.io/PROJECT_NAME_12345/MY_IMAGE

Google Container Registryに管理画面でアップされていることを確認する。

今日は久しぶりにダッシュボーダーズ開催。

弊社は怖話と開発中サービス2つの話や @jishiha さんのまちクエストMonumentの荒らしユーザー対策の話、今盛り上がりつつある @bluerabbit777jp さんのshogi.ioの話など。

2nd seasonは以前とは違って自分のWebサービスを開発してる人が集まっての進捗報告・情報共有の会といったところ。

最後は俺絶賛の savannna.io をみんなで使うハンズオンが何故か行われました。やっぱりめっちゃ便利。

やっぱり俺は解決する問題と手段がハッキリしてるサービスが好きです。

今日はjs, go, railsを使う案件でDocker + GCPということでKubernetesのチュートリアルをチマチマ。

Pod, Deployment, Service, Containerと新しい概念・用語が沢山出てきて混乱しますね。AppEngine使えば楽そうなんだけどなー。

ユーザーの行動を記録して外部のサイトに送りたい。 アクション毎にリクエスト送ると無駄だから離脱時に一括して送りたい。 そういう時はbeforeunloadイベントを使えばいい。Mobile Safariでは動かないので代わりにpagehideイベントを使う。

主要モバイルブラウザ遷移時のイベントの種類と挙動 - Qiita

ただ、非同期でデータを外部に送ると送信を待たずに終わってしまうので同期リクエストにする必要がある。

しかし、今作っているのは色んなサイトに埋め込んでもらうJSプログラム。

それ入れると離脱時に待たされるとか言語道断なのでこういう方法は自サイトじゃないと使え無さそう。

古いgojiのエントリーばっかりで新しいgojiのが見つからないので。

package main

import (
    "goji.io"
    "goji.io/pat"
    "net/http"
    "golang.org/x/net/context"
)

func main() {
    mux := goji.NewMux()
    mux.HandleFuncC(pat.Get("/"), func(ctx context.Context, w http.ResponseWriter, r *http.Request){
        // ...
    })
    mux.Handle(pat.Get("/*"), http.FileServer(http.Dir("public")))
    http.ListenAndServe("localhost:8000", mux)
}

public以下に置いたファイルにアクセスできる。