ゾゾスーツをポチった
採寸ボディースーツ「ZOZOSUIT」を無料配布します。ZOZOTOWNにて予約開始。一瞬であなたの体型を採寸できます。プライベートブランドでの活用はもちろん、ZOZOTOWNでのお買い物も圧倒的に便利に。川上から川下まで、ボディーデータ利用でファッション産業を新次元に導きます。https://t.co/EBgCdbMWeG pic.twitter.com/8ZVIBSBj6c
— Yusaku Maezawa 前澤友作 (@yousuck2020) 2017年11月22日
無料で未来っぽいなにかが手に入るので是非!
関連Tweet
ZOZOSUITの話。#kobaka7_sketch pic.twitter.com/zaGh5AXWJ6
— こばかな (@kobaka7) 2017年11月22日
ZOZOSUITは本当に興奮したし、最高!と思って、こういう未来的なものかつオリジナリティがあるのが、日本のテック企業から出てきたのはすごい感動してしまった。。。
— けんすう (@kensuu) 2017年11月22日
WebSocket 関連メモ
WebSocket
The WebSocket API (WebSockets) | MDN
- サーバ、クライアントで双方向通信できるやつ(仕様
- 例) チャット, push通知, ゲーム, 同時編集 etc...
- HTTPとは違い、ステートフルな通信
- TCP/IP のソケット通信の知識・経験があるとよい
Socket.IO
WebSocket を使いやすくするライブラリ (WebSocket 以外の方法で通信することもできる) =>リアルタイム通信全般をカバーしたライブラリ
- WebSocket が使えない時に XMLHttpRequest でポーリングする
- WebSocket 切断時に、再接続を自動でやる
などのメリットがあったが、最近はブラウザもほぼ対応しているので、使う理由は減ってきている
Engine.IO
Socket.IO の下で使われているライブラリ
- Socket.IOの通信部分の部品になった
関連ライブラリ・サービス
Action Cable の概要 | Rails ガイド firebase.google.com www.twilio.com www.twilio.com pusher.com www.pubnub.com mlkcca.com
若い頃の j-will
特定のラベルのついたPRを拾ってくる
使い所
- "レビュー中" のPRをリマインドする
- まとめて複数PRをリリースするときの、PR一覧を知りたい (ラベル運用必須だけど)
などなど
API v3
#! /usr/bin/env ruby require 'rake' require 'octokit' GITHUB_TOKEN = 'personal access token' REPO = 'owner_name/repo_name' LABEL = 'label_name' namespace :pr do desc 'waiting for review' task :label do github_client.pull_requests(REPO).each do |pr| pr.rels[:issue].get.data.rels[:labels].get.data.each do |label| puts "#{pr[:title]} : #{pr[:html_url]}" if label[:name] == LABEL end end end private def github_client Octokit::Client.new(access_token: GITHUB_TOKEN) end end
API v4 (GraphQL)
#! /usr/bin/env ruby require 'json' require 'rake' require 'octokit' GITHUB_TOKEN = 'personal access token' REPO = 'owner_name/repo_name' LABEL = 'label_name' namespace :pr do desc 'waiting for review' task :label do graphql(query: pull_requests)[:data][:repository][:label][:pullRequests][:edges].each do |pr| puts "#{pr[:node][:title]} : #{pr[:node][:url]}" end end private def github_client Octokit::Client.new(access_token: GITHUB_TOKEN) end def graphql(query:, variables: {}) github_client.post '/graphql', {query: query, variables: variables}.to_json end def pull_requests(label: LABEL) owner, name = REPO.split('/') <<~"GRAPHQL" query { repository(owner: "#{owner}", name: "#{name}") { label(name: "#{label}") { pullRequests(last: 20) { edges { node { title url } } } } } } GRAPHQL end end
メモと所感
- v4 の GraphQL を使えばもっとラクにとってこれるのかなーと思ったけど、慣れが必要かなーという感じだった
- octokit の gem で返ってくるレスポンスは
Sawyer::Resource
になっててちょっと面倒 (GraphQL は、octokit 使わなくてもよかったかも) - debug のときに awesome_print 使ったら超絶便利だった
- せっかくなら、Go とかで書いてみればよかった