iPhone 故障で Suica 引き継げずに新しい iPhone になってしまった場合には iCloud.com から削除する

iPhone 交換前に Suica 登録してるか聞かれなかったんだけど、僕のあとに来た人とかはみんな「モバイル Suica 使ってますか?」って聞かれていて「おや?」となり、
交換後の iPhoneSuica のところ見たらエラーになって引き継げず詰んだと思った。

が、以下の記事にある通り Mac から iCloud に繋いでオフラインになった旧 iPhone から Apply Pay 削除することができてそうするとしばらくしてから Suica が戻ってきてくれる
(クレジットカード含めて全部削除しちゃって問題なし)

iCloud: iCloudの「設定」でApple PayとWalletからカードを削除する

メールアドレスのドメインチェックで問題ないやつがエラーになる

node でメールのアドレスのドメインチェックするのに dns 使ってるんですが、

dns.resolveAny(domain, (err, records) => {
  if (err) {
    // 1. ドメインが存在しないのでエラー
    return;
  }

  const mailRecords = records.filter((record) => {
    return record.type === 'MX'
      || record.type === 'A'
      || record.type === 'AAAA'
  });

  if (mailRecords.length === 0) {
    // 2. ドメインあるけどメール使えないのでエラー
    return;
  }

  // 問題なし
});

の 2. に関してたまにエラーになって欲しくないやつがあって困る。
例えば softbank.ne.jp の結果が

[
  {
    "value": "ns003.bbtec.net",
    "type": "NS"
  },
  {
    "value": "ns004.bbtec.net",
    "type": "NS"
  },
  {
    "nsname": "ns003.bbtec.net",
    "hostmaster": "root.softbank.ne.jp",
    "serial": 2019010901,
    "refresh": 1200,
    "retry": 600,
    "expire": 2419200,
    "minttl": 1800,
    "type": "SOA"
  }
]

みたいになったりする。
どういう状態なんだろうか?使い方間違ってるのかなぁと思いつつたまにしかエラーにならないしわからん。

builderscon tokyo 2018 行ってリフレッシュしてきました

前夜祭の朝から気合いを入れて行きました


前夜祭の IoT 話楽しかった

闇の話、ヤバいしか書けないないけど「あー、使ってたライブラリの開発が終わってしまったから書き換えないといけないのかー」がとても小さく思えるレベルだった。

ペパボのデモ、かわいくてよかった。

もう1つの発表の歯ブラシスタンドで「光らないんですけど笑」がネタっぽくなってて笑っちゃったけど上手くいってるのか失敗してるのかわからないから光らせるの大事なのねと理解した。


初日朝に電子名札いじった

「会場のネットワークが設定済みです」的なこと書いてあったんだけど、「 Mac から直接画像突っ込むし、まぁ関係ないよね」と思って画像突っ込んで再起動したらネットワークなくてQRコード取りに行けなくなっちゃったみたいでエラーになった。ということで会場で設定し直して上手くいきました。とりあえずでやるとこういうことあるけどそういうの含めて楽しかったので良い良い。


懇親会と HUB 良かった。

ぼっちだったので懇親会では隣りにいた人を捕まえて話をした。オンプレでインフラエンジニア1人な環境の人で、技術話だけじゃなく会社の話も面白かった。こういう集まり、隣りの知らない人に話しかければ何かしら面白い話できる。

HUB ではスタッフの人たちと話してたらすぐに終わってしまった。話足りなかったなー。ボウモア美味しかったです。


多目的教室2倍くらいの大きさが欲しい

懇親会で話した人も言ってたけど、多目的教室すぐ満席になってしまうので多目的のトークいくつか聞くの諦めてしまった。「メインホールとイベントホールに居ればいっか」みたいな感じに。

入ることができた場合でもスクリーンが1つだったため、逆側一番前に座るとほぼ真横向く上に隣りの人の動きが気になっちゃうっていう辛さあった。

のだけど、これはすぐに反応してもらって机の向きが変わってました。すごい!
(残念ながらそのあと僕は座ってないのでもしこれによって良くないことがあったら僕のせいですごめんなさい)


今年も ajitofm 聴けました

今年も面白かったんだけど短い時間の中でたくさんのカテゴリ話さないといけないってなると深い話に行けずに回さないとで大変そうだなという感じだった。




今年も builderscon 楽しかったです!

トークについては feedback から返すことができてそこに直接感想送れるの良かったです。
聴いた中では kazuho さんのトーク は普段全然触れていないのでわからないところ多々あったんだけど「こういう問題あったよ」「こう解決したよ、まだこういう問題もあるよ」の流れわかりやすくてきっかけとしてすごく良かった。
「朝一セッション行こうかなぁどうしようかなぁ」と思ってたんだけどこのために早起きして良かった。

ということで今年も builderscon 楽しかったです!
全く知らない話に触れるきっかけたくさんあって普段の仕事の時と気分が変わる。
スタッフの方々も外から見てるとだいぶ余裕ある感じでわぁすごいという感じだった。運営ありがとうございました。

Google Analytics の「現在の訪問人数」を Mackerel に投稿する Google Apps Script

Mackerelサーバ監視入門 を読みまして、そしたらその中に Google Analytics のデータを Mackerel に送るやつがありまして、そういえばそれ欲しいやつだってなりました。
blog.a-know.me


ただ、 heroku の管理あんまりしたくなくて AWS にしようかと思ったけども軽くやりたいからそこまででもなくて、じゃあ Google Apps Script でやれるんじゃないかと思い上記の記事を参考にしながらちょこちょこやりました。丁寧に書かれてたので特にハマりどころもなく。ありがたい。

で、はじめは google-api-nodejs-clientgoogle.auth.JWT 使って書いたのだけども、 Browserify 使ってまとめてみたらファイルサイズでかすぎちゃって gapps upload でエラーになってしまったのでもういいやってなってサクッとベタに書きました。
github.com

結果20行程度のコードです。動いているのでよし。


Mackerel の本、Web のヘルプ同様な丁寧さで入門書として良かったです。

Mackerel サーバ監視[実践]入門

Mackerel サーバ監視[実践]入門

builderscon の個人スポンサーに速攻でなっていたんですが、気づけばスタッフやってました

f:id:lesamoureuses:20170805144314j:plain

前回に引き続き builderscon に行ってみようと思い、個人スポンサー募集があってすぐにスポンサーになった(チケット番号が #7 だったので早かったはず)んですが、気づけばスタッフをやっていてしかもイベントホールを任せられるという流れになってました。

経緯

5/9にいきなり牧さんから連絡が来る

f:id:lesamoureuses:20170806222054p:plain

そこで

  • もしかするとイベント当日不在にする可能性ある
  • YAPC でコアスタッフやってて経験あるから手伝えないか
  • 事前にやる作業はほぼ無しで、もし不在にならない場合に仕事忙しければ来なくても大丈夫

という話をいただきました。


ウチの会社零細企業で6人しかいないため引き受けて仕事の都合で手伝えないと迷惑かけてしまうことになるから難しいかもという話をしつつ、事が事だけに手伝えることがあれば手伝いたいということで快諾しました。

当日の話

前夜祭は14時集合でしたがいざ集まってみるとノベルティ詰めの仕事もなく、受付始まる17時ごろまでほぼ何も仕事ありませんでした。これすごい。この後も所々で感じましたが、今回は今までのイベントの経験からか、すでに対応済みのことが多かったり、コアスタッフの方々のおかげで仕事が簡略化されていたりで、当日スタッフのやる仕事がだいぶ削減されていてびっくりしました。

それもあってイベント終了後の僕の感想がこれです。

これ、削減されたことで参加者の方を直接考える時間が増えて本当に良いなと思いました。
以前は何も考えずひたすら手を動かすなんて時もあったのだけども、今回は例えば受付の流れだったり、全体の把握だったり、そういうのにどんどん時間が使えた気がします。
この辺のハードルが低くなればなるほどイベントをやろうと思う人が多くなるはずなのでとても良いですね。


で、受付前の空いた時間に幕間動画観てたら見覚えある人出てきて「あれ、この方転職したのかー、今知ったー」みたいな感じで眺めてたら富士通クラウドテクノロジーズさんでした。そういえば名前が変わったんだったってなりました。


あ、あとそういえば昔バックパネルを初めて導入した時に比較検討なり相見積もりなりをして結構思い出深いので物が進化してることに感動してしまいました。

(が、この水袋に穴が空いてて惨事になるってのを今回経験しました)

イベントホール担当

前夜祭のタイミングでそれぞれの部屋の担当スタッフが決まってなく、「初日の朝の受付準備でドタバタしたことあったなぁ」という怖さから Slack にとりあえず投げてみたらイベントホールのリーダーお願いと任されました。

f:id:lesamoureuses:20170806231943p:plain

たまたまの流れでしたが前職のランチセッション #ajitofm の準備も手伝えて久しぶりな人たちにも会えたのでなかなか楽しかったです。

builderscon.io

そういえば1日めのランチセッションでは弁当配布が間に合わず迷惑をおかけした(10分でお弁当配るのにサクッといけるだろうと甘く考えてた)んですが、その失敗を活かして2日めは事前に机に準備しつつ、すでに外で待っている方には配布してしまう、ってことをやったら5分で配布し終わり着席し終わりで完全勝利でした。よかった。

f:id:lesamoureuses:20170805120541j:plain

この辺り含めて一緒にイベントホールを切り盛りしたモリゾーさん、やまちょさん、おださん、コーエンさん、つばささんには感謝してます。
打ち上げの際には盛り上がりましょう。

次回への活かし

  • スタッフのやり取りは Slack でしたが、既読がわからないので対応中なのか誰も気づいてないのかわからなくて辛い。絵文字つけるだけでも良いからリアクションあった方が良さそう。今回は後半 @channel 使いまくってしまった(重要度がわからなくなるのであんまり使いたくない)。
  • 朝食をもっと食べてもらううまいやり方。多分円卓に人が座っちゃうと手を出しにくかったと思われるのでもっと良い方法があったんだろうと反省(それか食べ物のせいかも?)。
  • イベントホールの正しい椅子の積み方は真ん中に足が来るようにする。

f:id:lesamoureuses:20170804160342j:plain

今回のシール

前回同様、子がシール帳に喜んでペタペタしてました。

www.instagram.com


f:id:lesamoureuses:20170806225724p:plain

builderscon のシールは子にあげました

builderscon tokyo 2016 に行ってきました。

今回は2トラックかつ1日だったのでサクッと終わったなと思う反面、濃縮された濃ゆい感じを受けました。
あとで動画が観られると思うので見たセッションについて思ったことをざっくり以下に。

OSSWindows で動いてこそ楽しい

「服を着た mattn さんを見られるなんて GitHub か builderscon くらいだ!」と早起きした甲斐がありました。
Windows に絡めた Go の話、 Vim の話、質疑応答の「頑張る」の話、親父ギャグ、どれもネット越しで見てる通りの内容で面白かったです。
「動かないから動かしたい、動くと楽しい」「OSS の関わりが Vim だから恩返ししたい気持ちもある」みたいな技術者のモチベーションの話にも触れられていて、「淡々と話しているのにすごい内容どんどん出てくる」という驚きが続きました。

php.iniについて知る

php.iniの話 // Speaker Deck
時間前からトークが始まり時間オーバーしてもまだまだ続くよ的な笑い多めの内容でした。
話が進むたびに罠ばかり出てくるので「これ、CSS でいうところのリセット的なやつ設定しちゃうのが良いんじゃないの?」と思い質問してみたら「一応そういうの使ってるよ」と教えてくれました。
github.com
が、そもそも誰かがphp.iniを設定してた場合にはその人の意思があるはずだから1個1個見ないといかんよね、完全にこっちが正しいとか言えないし、という話もしていて「なるほどー、辛い」と思った次第。笑いに変えてポジティブに捉えていくのは見習いたい。

The Open Beer Server - theory and the implementation

Open Beer Server - theory and the implementation // Speaker Deck
いい感じのビールサーバ自作で作ると「9万かかるよ」という話でした。
moznion さん、デモも含めて目をそらす暇を与えてくれないから最高です。

C 言語で行う Web フロントエンドプログラミング

Emscripten って全然知らないや」って思って聞いてたけど、asm.js やら WebAssembly って単語が出てきてそういう流れなのかと頭が追いついていきました。
理解しやすいようにだいぶ軽めな感じにしてくれてたようなのでゲームの仕事やってるような人だともっと聞きたいこと感じだったのかな?その辺よくわからない。

Simulating old computers using Arduino microcontrollers.

昔のコンピュータをシミュレートしたよ的な話だったけど、そもそもその昔のコンピュータを知らなかったので 「へーへー、そうなんだ」みたいな歴史の授業感で見てました。

「片手間JavaScripter」にも知ってほしい、Vue.jsで実現するMVVMパターン、Fluxアーキテクチャとの距離

jQueryだと厳しい状況 -> Vue.js 使って MVVM の説明 -> 「我々は注意深くない」 MVVM は難しい -> Flux の話 -> Flux の設計で気をつける部分
という流れで話が進み、疑問をどんどん潰していくのでわかりやすかった。そして子どもがかわいかった。

そろそろプログラマーFPGAを触ってみよう!

そろそろプログラマーもFPGAを触ってみよう! - Qiita
知らない情報だらけで面白かった。ビットコインの CPU -> GPU -> FPGA -> ASIC みたいな具体例とともに話が進んでいくから面白み増した。
自分が触る機会はまだまだなさそうだけど「これを仕事で使うようになるにはどのくらいの大きさのサービスになればいいのかなぁ」って考える程度には距離が近い話で夢があった。

一から始めるJavaScriptユニットテスト

GitHub - shibayu36/bcon-js-unit-test
ワークショップやペアプロやってるような丁寧さあって良かった。
「テスト書きたいのにどっから調べて手をつけていいかわからない」みたいな人にとってすごくわかりやすい内容。
サンプルコードも一歩一歩進められるように丁寧に作ってあって「あー、これ一周教えるだけでだいぶレベル上がるのでは」という感じだった。

Bluetooth キーボードの作りかた

ビールサーバのセッションと同じで「何かをイチから作ってこうとする力すごい!!!!」って尊敬しちゃう話だった。
わかりやすく進んでいくから「よーし、何か作ろうと思ったらこの辺の単語をもとに調べていけばいいんだな」みたいな気分になるんだけど、「ここまでできるようになるまでにはあとどのくらいのギャップがあるんだろう?」がわからなくて感心ばかりだった。
面白そうと感じるだけに話を聴けたのはすごく貴重だった。

その他

隣りの部屋から軽く笑い声が聞こえたり、 Twitter でもう一方のセッションの面白そうな雰囲気が流れてきたこともあり、「これ結局動画で全部観ることになるだろうな」と感じるくらいに楽しい1日だった。

「知らなかった、を聞く」が題になっているとおり、話を聞きながら「あー、この辺の話普段触れないけど面白いな」と思うことが多々あったのでまた来年も楽しみにしております。スタッフの方々ありがとうございました。

シール速攻で貼って喜んでました

ELB 使ってる時と使ってない時で nginx の X-Forwarded-Proto を変える

https かどうかをサーバ側で判断したいんだけど、ELB 経由で nginx に繋いでいるか、直接 nginx に繋いでいるかで値が変わってくるのでどうしようかなと思って調べた。

ELB 経由の場合は ELB で https を受け取って、後ろに http で投げてくる。
$scheme = http, $http_x_forwarded_proto = https
な状態。
直接 nginx に繋いでいる場合は
$scheme = https, $http_x_forwarded_proto = ''
な状態。

ということで、 server ブロックの外で

map $http_x_forwarded_proto $my_forwarded_proto {
  default $http_x_forwarded_proto;
  ''      $scheme;
}

と書いて、「default で $http_x_forwarded_proto の値を使うんだけど、空の時は $scheme 見る」みたいにして、 server ブロックの中で

location / {
   proxy_set_header X-Forwarded-Proto $my_forwarded_proto;
   proxy_pass http://backend_node;
}

と書いて解決した。

参考
stackoverflow.com