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を学ぶのに必要な最低限の知識

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

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

  • Webアプリケーションとは
  • Webの基礎知識
    • HTTP
      • GET, POST, PATCH, DELETE
      • URL
      • RESTful API
      • request
        • header
        • parameters
      • response
        • HTTP STATUS
        • HTML
        • JSON
    • TCP/IP
      • hostとport
      • well-known port
  • セキュリティ
  • リレーショナル・データベース
  • ブラウザ

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 順に良い。

私からは以上です