読者です 読者をやめる 読者になる 読者になる

The paradigm shift

saboyutaka’s diary なんかかく(ブログn回目)

Splatoonのフレンド状況をメニューバーに表示する

すごい今さら感があるけど、書こう書こうと思ってずっと書いてなかったので書いておく。

f:id:saboyutaka:20160622225157p:plain

イカリングで友達入ってるのかとか、Twitterスプラトゥーン ステージ情報botでこの後のステージなんなのかとか毎回調べるのめんどうですよねぇ。メニューバーに表示されてたら楽なのにって思って表示させるようにしました。

Bitbar

表示させるツールとしてはBitbarを使いました。Shellスクリプトでもいいし、好きな言語で標準出力に出せば表示できるのは便利です。 最初、Shellスクリプトで書いてたけどeachとかArray#joinとか使いたくなってRubyに書き換えました

getbitbar.com

Bitbarで実行するRubyのコード

#!/usr/bin/env /Users/yutaka/.rbenv/shims/ruby

require 'splapi'
require 'time'
require 'httparty'

puts 'Splanet'
puts '---'

client = SplAPI::Client.new

def print_stage(h)
  puts "#{Time.parse(h['start']).strftime('%H:00')}~ #{h['rule']}: #{h['maps'].join(', ')} | color=blue href=https://splatoon.nintendo.net/schedule"
end

puts 'Stages & Rule | size=16'
res = client.gachi_now.body
print_stage(res['result'][0]) if res['result'][0]

res = client.gachi_next_all.body
res['result'].each { |h| print_stage h } if res['result'].any?

puts '---'
puts 'Friends | size=16'

# ここはイカリングにログインして、Cookieに入っているwag_sessionをコピーしてください
wag_session = 'K25YUzJVYUxXTGU2YzJaSjRpWUNuR3VzTlM4ZXZPclJvdEFjdWk0Q2RYVVZGRFNGYVdUQ1hVRkJJT0luY295UG5WUzJPLzMVINHhIVE5aREQ0ckNJU2JZMVVZa0NOdFFkbWFqa1MzODhFQTR5cHcvY1dMNmRCRTBZemQ0SS82bkpnQTkzK2RqSVM0dDc5anV1aVhHUHFEYjQ5RDZFMFA3eXpGNllrdFdoUlpQWU9ZdHNMNnhYbEtKN1dFN0J6QUF5VzRvbUNpSVRIaFlFQStuYWhqcko5V0ZHc1BPTjVRTUJjcEY1SFVGcDMzeURieHJoOXhQQzJSTWZyQ0xxY2U2cG1rNzBaYW9KZjZaMkJTemZYUnVONmRsTEY1RUlsdlkvTVJtVnpack5uanJEVm9HRG5BU1VYaXZIUUVtcjkyZXMyYUtjeUtjOCtkenNjTzIrQkx4NUpmMjc1NjRDSEJqcDZodWNmOFV5LS1vdHVVTHA1TkRoU2d5QnZOeDFhVUNRPT0%3D--7bd8f9569'

res = HTTParty.get('https://splatoon.nintendo.net/friend_list/index.json', headers: { 'Cookie' => "_wag_session=#{wag_session}"} )

res.sort_by {|h| h['mode'] }.each do |h|
  puts "#{h['mii_name']}: #{h['mode']} | color=black href=https://splatoon.nintendo.net/profile/#{h['hashed_id']}"
end

Rubyの実装

  • rbenv使ってるので #!/usr/bin/env /Users/yutaka/.rbenv/shims/ruby とした
  • httparty, time, splapi gem を使う
  • splapiでステージ情報を取得する
  • friend_list/index.jsonでフレンド情報を取得する
  • session情報をcookiewag_sessionという値を使ってるのでここだけは最初にブラウザでログインして、自分で取得する必要がある。

splapi gem

splapi - スプラトゥーンのステージ情報がとれるやつを作っている方がいたのでgemを作成させてもらいました。

github.com

ステージの情報はこちらから取得してます

まとめ

PCから簡単に友達がログインしてる状況を把握できるようになりました。便利。 イカ、よろしくー。

Railsを学ぶのに必要な最低限の知識

って何が必要だろうと思って思いついたやつを羅列してみる。 Railsを理解する前にWebアプリケーションやWebの仕組みをざっくり理解するとRailsを学ぶにあたって役に立つと思うのでおすすめ。

Webアプリケーションに必要な事

Macでの開発で必要な事

RailsでWebアプリケーションを書くのに必要な事

Webアプリケーションに必要な事はRuby, Rails以外(PHPやNode.js, Perl, Python, Javaなどなど)で書く場合にも必要な知識です。 これらが何のために使われてて何が嬉しいかが少しでも理解出来てるとRailsがやってる事が少し理解できそう。

ノマドなみなさん、ワイヤレス診断使ってますか

カフェなんかでWifiを使う時に複数wifiがあってどれが一番速いんだろって時どうしてますか。 全部接続して速そうなやつ使ってますか、そうですか。

Macにワイヤレス診断って便利なのがあるので使ってください。

f:id:saboyutaka:20160128144609p:plain

使い方

f:id:saboyutaka:20160128144629p:plain

  1. メニューバーのWifiアイコンをOptionキーを押しながらクリックするといつもより詳細な表示が出ます。
  2. "ワイヤレス診断"を開く をクリック f:id:saboyutaka:20160128145158p:plain

  3. すると ワイヤレス診断のダイヤログが出ます。けどこれは無視でいいです。メニューバーから ウィンドウ > スキャン を選択します。(⌘+4 のショートカットキーでもいいです) f:id:saboyutaka:20160128145258p:plain

  4. スキャンの画面が出ました。ここを見ます。

主に見る項目

ネットワーク名

表示されてるSSID

プロトコル

802.11みたいなやつ。ざっくり言うと ac > a/n > b/g/n 順に良い。

ac は比較的最近の技術でこのwifiルーター使ってるところは新しいルーターを使っているということなのでちょっと評価して良い。 簡単にいうとacだとMacの通信が速い。

RSSI

wifiのアクセスポイントとの電波強度。主にここを見る。数値は-で表示され、この数値が低ければ低いほど電波強度が強くwifiにつながりやすい。

バンド

プロトコルによって2.4GHz か 5 GHz が使われる。2,4GHz帯だと電子レンジと似た周波数なため電子レンジが稼働すると繋がりにくくなる。 (よく行くカフェはお昼時は電子レンジが稼働してつながらなくなるのがこれでわかった。)

ざっくりつながりやすいwifiはどれ

  • RSSIの数値が低いやつ
  • RSSI が同程度ならば ac > a/n > b/g/n 順に良い。

私からは以上です

Fitbit Flexを購入してHealthkitの連携した

Fitbit Flexを購入した

f:id:saboyutaka:20160117191532j:plain

Fitbitとは

アクティビティ記録デバイスなどの情報が得られる Fitbit オフィシャルサイト

Niki Fuel BandやApple Watchのようにアクティビティを取得してデータ化し、視覚化する事が出来る。

Fitbit Flexには

  • サイレントアラーム
  • 歩数トラッカー
  • 睡眠のトラッカー

など。上位機種(Charge HRなど)は脈拍も取得可能。

比較はこちら

www.fitbit.com

なぜfitbitを買ったか

これまでにNike Fuel Bandを2世代使っていたので前々からアクティビティを取ることはやってた。 だけどFule Bandは使い始めて半年後くらいに壊れて、2つともダメになってしまった。 運動を視覚化するとちゃんと運動しないとなぁとか思うので結構良い。しかしウェアラブルデバイスの弱点は耐久性が低いことにあると思う。

flexを選んだ理由

悩んだのはFlexCharge HRだった。 ZipやOneなどはポケットに入れるタイプだがポケットに入れる系のものは絶対になくすのでそもそも選択肢にない。 Charge買うぐらいならChargeHR買う。SurgeやBlazeは高機能すぎて必要ない。 なのでFlexかCharge HR。

エンジニアとしては脈拍を常時取得できるCharge HRなんかは気になる。 だけど脈拍が運動したいという気分になるかというとあまりそんな気はしていなくて、あの時高かったんだなぁというデータにしかならないかなと思った。 flexが9000円くらいでCharge HRが19000円くらい。脈拍を取るために1万円多く払うのにちょっと躊躇した。

またFuel Bandからの教訓で求めるのは耐久性と正確性。Charge HRはリストバンドそのものが本体に対して、Flexは本体は中のデバイス。リストバンドはシリコンラバーなので傷が目立ちにくい。また本体がシリコンに守られているので衝撃にも強いのではと思った。

取り出して見た図

f:id:saboyutaka:20160117201614j:plain

ここにはめ込んでいるだけ

f:id:saboyutaka:20160117201636j:plain

またシリコンのリストバンドが特別に機能があるわけではないので、リストバンドが消耗した場合Amazonでも買えるみたい。 サードパーティ製のもあるっぽくて良さそう。 www.amazon.co.jp

またもし壊れたりなくした場合でも9000円だとまた出して買ってもいいかなと思えるけど19000円は次買うのに躊躇するなと思った。

fitbit を長く使ってるエンジニアの先輩の@hmsk さんに聞いてみた所そんなに壊れやすいものでもなさそう。

結果Flexを選択した。

flexを使い始めて

歩数やスリープトラッカーの取得制度が結構正確

  • 仕事でPC作業してる時などにつけっぱなしで仕事してるけど歩数が増えてない。歩いていない時をちゃんと区別して計測してていい感じ。
  • スリープトラッカーが寝てたら自動でログを開始して、動き始めると終了する。この精度がけっこう優秀。

ちゃんと運動をDriveしてる

つけ始めて歩くことを意識するようになったし、ちょくちょくAppを見るようになってる。まぁ買ってすぐなのですぐ飽きるかもしれないけど。。今のところは。。w

今のところ満足度が高い。

充電する頻度もそんなに多くなくてもよいし、つけててもあまり気にならないので毎日つけれる。

友人とのチャレンジがおもしろい。

何がきっかけでFitbitが流行ってるのかわからないけど、自分の周りにFitbitを購入した人が1ヶ月の間に6人くらいいる。 その人達とチャレンジ(期間を設けて歩数を競う)をすると結構おもしろかった。

Healthkit、Withingsとの連携

iPhone, iOSのHealthkitを使うことで他のHealth系Appと連携することが出来る。Fitbitは公式ではAppleとの提携をやめてしまったみたいだけど、FitbitはAPIがしっかりしてる。API最高!! なのでFitbitのAPIを叩けばHealthkitと連携することが可能。

自分はSyncSolverというAppを購入し連携することにした。 Healthkit to Fitbit と Fitbit to Healthkit が分かれているみたいなので両方購入した。

Sync Solver for Fitbit

Sync Solver for Fitbit

  • James McAndrew
  • Health & Fitness
  • $2.99

Sync Solver - Health to Fitbit

Sync Solver - Health to Fitbit

  • James McAndrew
  • Health & Fitness
  • $2.99

脈拍は別のAPIらしくて対応してるアプリはない?or少ない?、flexでは脈拍取れないので関係なくあまり調べてない。 SyncSolverではここを見ると対応していないのがわかる。

自分のHealthkit連携環境

f:id:saboyutaka:20160117202339p:plain

Withingsの体重計で

を取得し、Healthkitと連携している。 体重計には毎朝乗って自動でWithingsアプリに連携される。

これをSyncSolverを使ってHealthkitからFitbitに連携する。

f:id:saboyutaka:20160117201309p:plain

できた。

これでHealthkit, Fitbitで

などが見れるようになった。

まとめ

Flex買ってよかった。やはり数値化されるとやる気出ますね。数値化したりAPI触ってみたりはやはりエンジニアからすると面白い。 体重74キロスタートで70キロくらいに戻したい。 今年こそはヘルシープログラマーを目指したい。

1週目は結構頑張って運動できたのでこれを継続していきたいですね。。

おわり

p.s.

fitbit 買って友達になりましょう!

ギークハウス沖縄をrebuildしたい

この記事はギークハウス Advent Calendar 2015 - Adventarの4日目です。

f:id:saboyutaka:20151204015321j:plain

ギークハウスと自分

去年9月にギークハウス秋葉原に引っ越して来たのが自分のギークハウスデビュー、なのでギークハウスが始まって7年も経っている歴史の中で僕が知ってるのは結構最近の方だけ。1ヶ月秋葉原に住んだ後に、ギークハウス新宿に引っ越して今年の10月まで居たので約1年とちょっとギークハウスに住んでた。

ギークハウスの良さ

前回ギークハウス新宿を退去したエントリーにだいたい書いた。

ギークハウス新宿の雰囲気はとても好きなのでこういう場所が全国にも増えればいいなぁと思ってる。 最近、長野の王滝村、岩手三陸大船渡が出来てもう少ししたら北海道の夕張にも出来るみたい。

沖縄にギークハウス

去年まではギークハウス沖縄は@kimihito_さんによって運営されていたけど私情があり、積極的に継続してやろうと思う人も居なかったため解散になったみたい。その辺のエントリーは元ギークハウス元住吉住民、現在恵比寿周辺在住ホームレスニートの種さんが書いてる。ギークハウス沖縄解散パーティとギークハウスの終わり

で、今回沖縄に引っ越してきたのでせっかくだから再発進、rebuildしたいなーと思っているので今回アドベントカレンダーに参加してみました。 twitterとかFacebookとかでちょこちょこつぶやいてると

ありがたいことに、twitterとかを見てくれた方が時々こえかけてくれたり。ありがたいかぎりです。

沖縄にギークハウス作りたい理由

いくつか自分なりに思うこと。

地方にこそギークハウスは必要

福岡出身で学生の頃は残念な事に就職で東京に出てくるまでWeb系の会社やスタートアップというものが存在することすら知らず、大手のSIerに就職すればエンジニアとしてうまくやっていけると思ってた。実際は入ってみるとエンジニアとして仕事してるけどプログラミング未経験とか、使ってる技術が古いとかで自分には合わずに2年も経たずに辞めてしまった。SIer disではないです。知っていれば違う道も行けたと思うしそういうコミュニティが自分の住んでいる地域にあれば変わったとかもなと思う。全国にギークハウスがあれば、なんとなく東京や北海道に行くきっかけになるかもしれないし行動の幅が広がればいいなと思う。なので特に情報系の学生にはそういう場があるといいなと感じる。

沖縄は多くの人が遊びに来る

国内旅行で来る人が沖縄は特に多い。エンジニアも社員旅行や個人旅行やまたはふらっと来たりで沖縄に来てる人も多い。最近では都内の花粉から避難するために花粉疎開してくる方もいる。そんな感じで沖縄に来るわけだけど、ギーク達は沖縄に来ても(だいたいどこに行っても)インターネットがある場所じゃないと生活出来ないので、無料wifiのあるカフェとかに入り浸る。やはり沖縄にもギークハウスのようなホームみたいな場所がほしい。また、県外の人が遊びに来てくれることで交流がうまれたりするし、県外のIT業界の状況とか聞けたりするので良いのでは。あと最近海外旅行者も増えてる。ギークハウス新宿にはAirbnbを利用して世界中からエンジニアが遊びに来てて非常に面白いんだけど、もしかしたら沖縄にも来てたりしたら交流出来るとおもしろそう。沖縄は都内と違って滞在日数多そうだし。

逆にわかってないこと

県内の需要

県内の人で住みたい人っているのかなってところが一番大きい。県外の人が来ても県内の人が常時居ないとやはり遊びに来る魅力がなくなってしまうので出来れば5,6人は住んで欲しいところ。沖縄の人は実家ぐらしが多いイメージでわざわざシェアハウスしてまで人と交流したいとかいるのかなぁというところが不安っちゃ不安。

場所は那覇にするか、宜野湾にするか、または

あと場所を那覇にするか、個人的には宜野湾あたりにしたいなとか。

沖縄の都心部にあたる那覇、前回のギークハウス沖縄は那覇にあった。那覇は都会なので色々便利だし、買い物もできるし、空港からモノレールを使えば車がなくても行ける。けど那覇に住んでいない県内の人からしたら、那覇は毎日渋滞してるので行きづらいイメージがある。人も多いし。東京に住んでた身からすると、沖縄にまで来て人の多いところにあまり居たくない感じがある。

それよりは人が少なかったり、近くに海があったりの方が県外の人が想像する沖縄のイメージに近いと思う。宜野湾を候補地にしたいのは、車がなくても58号線という大きな道路が通っていてバスも通っている。那覇や空港からもぎりぎり行けなくはないなって距離。那覇ほど人が多くない、なんとなく西海岸の方が栄えてるので西海岸側が良い。結構でかいのがGwave cafeの存在。無料wifiがあるカフェがあるし、同じビル内にスタートアップとかが入ってるコワーキングスペースもあったりでたまに技術系の勉強会が開かれてたりする。あとは大学が近くにあるとか。あとは私的な理由としては自分が北谷に住んでるので宜野湾の方が近いってのもある。県外から遊びに来た人にとっては、沖縄に来てずっと那覇に居る人ってそんなに居ないのではとか思ったりする。車借りてる人も多いし、美ら海水族館とか行くために北部に行く人もいるし宜野湾とか遠くないのではとか思う。旅行中、目的さえあれば距離が多少遠くても来てくれたりする気がしてる。

まだ場所も決めかねてるので、アドバイスや要望があればmentionください。

こんなギークハウスにしたい

  • 県内のギークと県外から遊びにくるギークの交流の場所
  • 県外の人がいつでも遊びに来れる
  • 沖縄にショートステイ、ロングステイしたい人が泊まれる
  • 勉強会開催地
  • 花粉疎開避難所
  • Airbnbで海外のエンジニアとかも募集したい

こんな人が住むと良さそう

今のところ考えてるのはこんな感じ

まだやりたいなーという気持ちがあるだけで何も準備出来てないのが現状。来年の暖かくなる頃には作れたらなーと妄想しているレベルです。

花粉の出る2,3,4,5月はギークハウス沖縄に住んで、夏は北海道のギークハウス夕張なんかに住んで、秋は岩手の海岸沿いのギークハウスに住んで、たまに東京に行く時はギークハウス新宿に滞在。 仕事はリモートで。そういう生活もいいんじゃないですかねー。

住んでみたい!とか、こうしたほうが良いんじゃないかとか、何か反応があればモチベーションになると思うので気になる方はtwitterでもなんでも連絡もらえるとうれしいです。

明日はMasato Kawabeさんです。