Splatoonのフレンド状況をメニューバーに表示する
すごい今さら感があるけど、書こう書こうと思ってずっと書いてなかったので書いておく。
イカリングで友達入ってるのかとか、Twitterのスプラトゥーン ステージ情報botでこの後のステージなんなのかとか毎回調べるのめんどうですよねぇ。メニューバーに表示されてたら楽なのにって思って表示させるようにしました。
Bitbar
表示させるツールとしてはBitbarを使いました。Shellスクリプトでもいいし、好きな言語で標準出力に出せば表示できるのは便利です。 最初、Shellスクリプトで書いてたけどeachとかArray#joinとか使いたくなってRubyに書き換えました
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情報をcookieのwag_sessionという値を使ってるのでここだけは最初にブラウザでログインして、自分で取得する必要がある。
splapi gem
splapi - スプラトゥーンのステージ情報がとれるやつを作っている方がいたのでgemを作成させてもらいました。
ステージの情報はこちらから取得してます
まとめ
PCから簡単に友達がログインしてる状況を把握できるようになりました。便利。 イカ、よろしくー。
Railsを学ぶのに必要な最低限の知識
って何が必要だろうと思って思いついたやつを羅列してみる。 Railsを理解する前にWebアプリケーションやWebの仕組みをざっくり理解するとRailsを学ぶにあたって役に立つと思うのでおすすめ。
Webアプリケーションに必要な事
- Webアプリケーションとは
- Webの基礎知識
- セキュリティ
- Dos攻撃
- SQLインジェクション
- マスアサインメント
- リレーショナル・データベース
- ブラウザ
- HTML
- CSS
- Javascript
- 開発ツール
Macでの開発で必要な事
RailsでWebアプリケーションを書くのに必要な事
- Ruby
- Rails
- Webアプリケーション・フレームワーク(WAF)
- MVCパターン
- HTTP
- RESTful
- Assets
- Asset Pipeline
- CoffeeScript
- SCSS
- セキュリティ
- strong parameters, マスアサインメント
- サニタイジング, SQLインジェクション
- リレーショナル・データベース
- Migration
- Job, Sidekiq(optional)
- Redis
- Webアプリケーション・フレームワーク(WAF)
Webアプリケーションに必要な事はRuby, Rails以外(PHPやNode.js, Perl, Python, Javaなどなど)で書く場合にも必要な知識です。 これらが何のために使われてて何が嬉しいかが少しでも理解出来てるとRailsがやってる事が少し理解できそう。
ノマドなみなさん、ワイヤレス診断使ってますか
カフェなんかでWifiを使う時に複数のwifiがあってどれが一番速いんだろって時どうしてますか。 全部接続して速そうなやつ使ってますか、そうですか。
Macにワイヤレス診断って便利なのがあるので使ってください。
使い方
- メニューバーのWifiアイコンをOptionキーを押しながらクリックするといつもより詳細な表示が出ます。
"ワイヤレス診断"を開く をクリック
すると ワイヤレス診断のダイヤログが出ます。けどこれは無視でいいです。メニューバーから ウィンドウ > スキャン を選択します。(⌘+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 順に良い。
私からは以上です