k2wankoの技術的なanything

プログラミングとか技術系の情報とか書いてます。

スプラトゥーンのガチマッチのウデマエA+ランクで長生きするコツ(またはAランクの目指し方)

毎日スプラトゥーンが楽しすぎて楽しすぎて。

ナワバリバトルというステージを塗りたくったほうが勝ちのルールも、まったりしたいときには楽しいし、

ガチマッチはウデマエを賭けて大量のお金が手に入るのでヒリヒリしたい時に楽しいです!!

ちょうどプレイ時間200時間を記念して休憩がてらウデマエA+を維持する自分なりのコツみたいなのを書いとこうと思います。

まだAになれない!って人にも参考になればと思います。

チームの勝利を優先する

いろんなブログでも言われてますがいくら個人でキル数を稼ごうとノックアウトで負けてはなんの意味もありません。

よく周りを見て守備が薄いところにいって倒さなくとも牽制するように心がけるだけで勝率はグンッと上がります。

マップを見る余裕を持つ

勢いでガチエリアを確保したら流れで敵陣に攻めに行くのは多くとも2人までにしましょう

またガチエリアへと通じる道は3箇所ありますので同じ場所を3人以上で見に行くといったことはしないようにし

余裕が有るときはマップを見て敵がどこからせめてこようとしてるのか把握します。

マップを見る余裕がつくれるようになるとA-からAくらいはすぐに行けるようになると思います。

マップをみるタイミングは基本的には敵の姿を確認できない時がベストかと思います。

また片目でテレビを見てもう片方でマップをみたりするのも有効なのではないかと思ってます。(できないけど...)

立ち回りを覚える

スプラトゥーンは立ち回りが命です

ステージによって注意すべきポイントは様々ですがとりあえず大別して2つ

ガチエリアが1箇所のやつと2箇所のやつです。

ガチエリアが1箇所の場合、ガチエリアを奪いに行く時は仲間とは別ルートで攻めに行くほうが一網打尽にされる確率が減ります。

ボムラッシュやスーパーショットのスペシャルがあるなら溜めてから攻めると相手のガチガチの包囲網も突破できます。

ガチエリアを守る場合もできるだけバラけて通路を防御します。

牽制だけでも十分ですが別に倒してしまっても構いません。

注意点はガチエリア内で死ぬのは極力避けるようにしましょう。

取ったら即離脱を心がけるといいかと思います。

ガチエリアが2箇所の場合は少しやっかいです。

いろんな動き方がありますが1番気をつけたほうがいいと思うのは1つ目のエリアを守り切ることかと思います。

1つのエリアは狭いので1人だけでも守りきろうと思えばいけるので

ほかの人が2個目に向かって1個目のガチエリアに誰もいないという状態なら1人でも守りに入ったほうが確実です。

ホッケふ頭では特に効果的で2個目に向かった仲間が倒されてもジャンプポイントになれるので、

どんどん攻められるのでなるべく1つ目のエリアは死守するように心がけると良いと思います。

視点は常にベストに保つ

ジャイロ操作がたまに変な感じの視点になった時Yボタンでリセットして 自分のちょうどいい角度でゲームパッドを持つように心がけるとエイムも安定します。

ブキに合ったギアを選ぶ

B+からA-の壁があるとすればギアの差ではないかと思います。

お店の品は1日おきに切り替わるようなので毎日見に行くようにしたり

広場のイカたちの中からギアを探したりしましょう

イカは僕的におすすめなブキとギアの組み合わせです。

96ガロン

ガチエリアで人気のブキです。

射程と攻撃力の高いブキです。96ガロンには攻撃力UPがメインのギアを2つつけると

防御をつけてる相手でも少し離れた距離からでも2発で仕留められます。

塗りはサブのスプリンクラーで塗りつつインク補充はスペシャルでやれるようにうまく調整するのがいいかと思います。

シャープマーカー

射程が短く攻撃力も低めですがまっすぐ飛ぶので実はキルにも塗りにも適しているいいブキです。

シャープマーカーにも攻撃力メインのギア2つかスペシャル増加量UPのギアを付けておくといいでしょう、理想はメインは攻撃力UPでサブにスペシャル増加量UPがついてるのがいいと思います。

シャープマーカーの強みであるキューバンボムラッシュをガチエリアでかますと効果的ですので敵がいっぺんに攻めてきた時に使えるようにスペシャルを溜めるように意識しておくといいと思います。

プロモデラーMG

僕が1番気に入ってるブキです、これ一本でA+まで行きました。

プロモデラーは塗りも攻撃もできるしサブのチェイスボムは攻めにも逃げにも使えるので扱えるようになると便利です。

ギアにはスペシャル増加量UP系とイカニンジャがおすすめです。

プロモデラーは攻撃力が低いのでイカに敵の近くでインクを撃ち込めるかの勝負になりますのでイカニンジャはかなり有効です。

スプラローラーコラボ

標準を合わせるのが苦手な人でもローラーのインク飛ばしなら簡単にものにできるのではないかと思います。

A+で強い人には結構ローラーがいるのでおすすめです。

ローラーにはインク効率UPとスペシャル時間延長を付けておくと便利かと思います。

できれば防御UPのギアもつけておくと生存率が上がるかと思います

安全靴が便利

ギアのおすすめを書きましたがほぼ全てに共通しておすすめしたいのが安全靴です。

敵のインクに乗ってると結構なダメージを受けるのでそれを軽減してくれる安全靴は強いです。

また移動速度が下がるのも軽減されるのでAランクの激しい攻防の中でも生き残るには足元を塗られても逃げれるようにしたほうが良いと思います。

Aランクの殆どの人は安全靴をつけてるので安全靴をつけてない人は付けておくと全然違ってくると思います。

まとめ

色々ごちゃごちゃ書いてしまいましたが

要は「安全靴が強い!」です。

立ち回りはうまい人の動画を見て参考にしたりしたほうがいいと思います。

負けが続いたら部屋を変えたりして気分転換するのも大事です。

最後にフレンド募集してますのでよければ送ってください!

イカID(任天堂ID)はkokicheeseです。

AnsibleでMacの環境を整えたついでによく使うツールの紹介

気づけばゴールデンウィーク前です。

本を買ったのでゴールデンウィーク中にSwiftの勉強をしてiPhoneアプリを作れるようになろうかなと画策中です。

さて最近MacBookProを新調しましたので環境構築をAnsibleでやります。

なぜAnsibleでやるのかというとYAMLで簡単に記述でき いろいろ細かいことができるからです。

環境

OS: Mac OS X 10.10.3 Shell: zsh

GitHubemacs.dとかzshのコンフィグを置いている。

github.com

github.com

GitHubにコンフィグ置くときはパスワードとかAccessTokenとかを公開してしまわないように注意してください。

ざっくりAnsibleのインストールと使い方

github.com

AnsibleはPlaybookというYAMLで記述されたコンフィグを元に環境構築をしてくれます。 Roleとかいろいろ用語があるのですが 今度きちんと勉強した時に詳しく書ければ書きます。

インストールはHomeBrewでやります。

# Install HomeBrew
$ ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"

# Install python and ansible
$ brew install python
$ brew install ansible

ちなみにこのコマンドはシェルスクリプトにまとめておくと楽です。

実行は以下のコマンドで

$ ansible-playbook development.yml -i hosts

ちなみにdevelopment.ymlって書いてますがよく使われる名前はsite.ymlだそうです。 別に決まりがある感じはしなかったので参考サイトを真似させてもらいました。

HomeBrew caskについて

HomeBrew caskはHomeBrewのプラグインです。

Google ChromeGoogle 日本語入力、iTermやAndroid Studioなどはここからインストールができます。

Macを買ったらSafariを開いてChromeをダウンロードしてきていたのですが

caskを使えばターミナルだけでインストールできてしまいます。

Playbookに含まれているパッケージについて

僕が環境構築に作ったPlaybookに含まれている中から 適当にざっくり説明していきます。

iterm2

標準のターミナルよりも高機能だったり 画面分割できたり細かくカスタマイズがいろいろできるので便利です。

zsh

シェルプログラムです。

コマンドの補完機能が優れているのでオススメです。

oh-my-zshを合わせることでCUIを綺麗にしたり様々な補完機能を簡単に設定できるので一緒に入れておくと便利です。

hub

GitHubCUIクライアントです。

aliasでgitにhubを指定させることでgitを拡張する感じで使うことができます。

forkやpull-request、CI statusの確認をコマンドラインからできます。

よく使うのはbrowseでリポジトリのページをブラウザでさっと開けるので便利です。

tig

CUI内でグラフィカルにGitのログを確認できるツールです。

慣れてしまうとtig以外ではログを見返すのが辛くなります。

tigの設定方法は以下の記事を参考にするといいと思います。

qiita.com

rbenv

Rubyのバージョンマネージャーです。

バージョンの切り替えが楽なのでオススメです。

nodebrew

Node.jsのバージョンマネージャーです。

io.jsも使えるしバイナリーをダウンロードして設置できるのでインストールも早いです。

dockerファミリー(docker-machine, docker-compose)

dockerを使うことでクリーンなコンテナ環境で開発ができます。

docker-machineでDockerのホストを作って

docker-composeでコンテナ間の連携とか記述します。

virtualboxを入れていれば以下のコマンドでboot2dockerがすぐに入るのでオススメです。

$ docker-machine create -d virtualbox dev

httpie

RESTなどのコマンドラインツールです。

curlに比べ 簡素な記述方法とレスポンスの色付けをしてくれるので

API Serverの開発の時にとても便利です。

jq

JSONの解析をしてくれるCUIツールです。

curlなどからパイプで渡せば簡単にJSONを解析できます。

emacs

ショートカットでサクサク書けるエディターです。

漢のプログラミング言語Lispを使ってカスタマイズができます。

マスターするとプログラム仙人になれるとかなれないとか...

vimはよく知りません。

atom

GitHub製のEditorです。

Chromeベースで最近使い始めたのですがMarkdownを見ながら書くのに使っています。

まとめ

GitHubemacszshのコンフィグを置いておくことで無くす可能性も低くなりますし

Ansibleを使えばMacが増えてもすぐに環境構築ができるようになりました。

サーバーだけじゃなくクライアントもコード化しとくと便利ですね。

Ansibleの参考

HomebrewとAnsibleでMacの開発環境構築を自動化する | mawatari.jp

AnsibleでHomebrew, Cask, Atomエディターのパッケージを管理する - Qiita

nodeschool tokyo 東京Node学園 入学式行ってきました!

nodejs.connpass.com

僕はメンターとして参加させてもらいました。

初めての経験でとてもいい勉強になりました。

nodeschoolとは?

Node.jsを勉強しようという人たちから始まったものらしく

実際に手を動かしながら学べるカリキュラムを提供してくれてたりします。

Node.jsを勉強したいなーって方は以下の公式サイトを確認してみてください!

NodeSchool

イベントは5月にもまたやるそうなのでぜひお時間がある方は参加してみてください!

Node.jsを学ぶことができますしわからないことは聞くことができます!

ワークショッパーについて

ワークショッパーはNodeSchoolが提供している勉強用のアプリで

黒い画面(Macの初期は白い画面)のターミナルで動かします。

ほとんどのワークショッパーは英語なんですが NodeSchool Tokyoの方がローカライズしているものがありますので勉強会では日本語のものを使います。

問題が出されるのでそれを答えていくという感じです。

今回使われたワークショッパーは以下のものです

www.npmjs.com

www.npmjs.com

この2つは初心者向けのカリキュラムです。

www.npmjs.com

こちらはnpmというNode.jsのライブラリを管理してくれるパッケージマネージャというものです。

それの使い方とライブラリの作成から公開などの手順を学べます。

www.npmjs.com

こちらはES6というものを練習できるカリキュラムです。

中級者レベルなので慣れてきたらやってみるといいと思います。

まとめ

Node.jsはサクッとリアルタイムのサービスを作りやすいのでぜひぜひ学んでみてください!

Herokuなどのサービスを利用すると作ったWebアプリを簡単に公開することができます。

都合が付けば 次回のイベントも参加したいです!

蛇足

MacbookApple Watch店頭で展示されてたので見てきました!

f:id:k2wanko:20150412203928j:plain

f:id:k2wanko:20150412205404j:plain

f:id:k2wanko:20150412205256j:plain

ServiceWorker ハッカソンに行ってきました。

f:id:k2wanko:20150404203516j:plain

どうもk2wankoです。

気がつけば大学生活も半分終わってました。

春一番Google主催のServiceWrokerハッカソンに参加してきたのでメモを残しておこうと思います。

ServiceWorkerとは

イベント駆動によるJavaScriptの実行環境です。

ページからのリクエストにHookして色々操作することもができ、リクエストというのはXHRだけではなくとかのリクエストも書き換えることができるようです。

最近話題になったPushNotificationなども

ServiceWorkerから利用できます。

なのでWebでPushとか使いたいならServiceWorkerを制しておきましょう。

ServiceWorkerのデバッグ

docs.google.com

ここのスライドを参考にやります。

ChromeCanaryをインストールし

chrome://flagsにアクセスします。

デベロッパー ツールのテストを有効にするを有効にしたら再起動します。

ちなみにServiceWorkerはどこでも利用できるわけではなくlocalhosthttpsのみになります。

リクエストを置き換えられるのでセキュリティ的にhttpsじゃなきゃダメということですね。

とりあえずHTML等とローカルサーバーを用意してデベロッパーコンソールを開き

右にある歯車アイコンをクリックしてSettingを開きます。

左の項目にExperimentsを選択しShiftを6回クリックし非表示の項目を表示させます。

Service workers in Resources panelにチェックを入れるとResourceにServiceWorkersという項目が追加されて デバッグができるようになります。

Push通知の実装は以下のスライドにあります

docs.google.com

まとめ

前々から気になっていたPush通知を試せて良かったです。

今日のハッカソンでPush通知に少しハマったのがServiceWorkerを登録し直すとSubscriptionIdが変わるということに気づかなかったところです。

それとPush通知の利用シーンとしてはアプリを入れるまでもないしユーザー登録をするまでもないようなサービスに最適なんだなーと言うことを学べたので

何かサービスを作れるように頑張って見ようと思います。

参考リンク

Service Worker ハッカソン

最近やっていること

日々のルーチンワークで 今時分が何をしたいのかを忘れることがあります。

日記を書くといいと聞きますがブログにすると痛々しくなってしまうので

クローズドでMarkdownで書けるサービスかCMSないかなぁと思っています。(勉強に自分で作りたいなともぼんやり思ってたり)


アルバイト

アルバイトのことは書くとボロが出ると思うのでサラッと書く感じ。

Androidアプリを作ったりしてます。

どこで何を作ってるかってのは勉強会だと話のネタにするけどブログに書いても面白く無いかな。

個人プロジェクト

たぶんコレが一番メモしときたいこと

僕がだいたい一人でコツコツとやっていることです。

Minecraftサーバーのレンタルサービス

Minecraftという永遠に遊んでられるゲームがあります。

箱庭ゲームというものでレゴブロックのように自由にブロックを設置したり

クラフティングでアイテムを作ったり色々できるゲームです。

サバイバルもできるしJavaプログラミングができればその可能性は無限大です。

そのMinecraftのマルチプレイ用のサーバーを貸し出すサービスをやりたいなーってことで色々調べたりしてます。

海外だともういくつも既にそういうサービスがあるので差別化が難しそうです。

Railsで作ろうとしてますがRailsはあまり馴染めず苦労してます

ニコニコ生放送のコメントビューアー

大学に入る少し前Minecraftのニコ生してて

そこからニコ生に嵌まりました。

生主やってて気づいたことを元に既存のツールでは満足できない

基本設計から満足できなかったものがコメントビューアーです。

既に色々ありますが基本WindowsWindowsMacMacという形で作られたものばかりなので

どのパソコンからも同じデータを手軽にアクセスして使いたいということから開発してます。

プラットフォームはChromeをターゲットにしてますのでChromeが動く環境ならどこでも動くことを目指して作ってます。

Chrome Appsについては今はまだまだ市場が小さいですがChromeBookが日本でも発売されましたのでこれから増えていくだろうと思います。

 

コメントビューアーを作るにあたってChromeAppsのテストのしにくさを解消するために色々考えた結果僕が最近作っているのは

Node.jsでも動くニコニコ動画APIクライアントです。

k2wanko/nicoapi · GitHub

Node.jsとChrome Apps両方で動かせるライブラリを作ってます。

遠回りなことしてるなーと感じつつも書いたコードは無駄ではないと信じて

一人でIssueを作ってPullRequestを投げて承認して作業してます。

まとめ

とりあえず今年から就活に向けて動き出さないといけないので

夏前にはこの2つのどっちか作っておきたいなと

プラス、スマホ向けアプリも作らないとなってかんじです。

友達や後輩に教えたい技術書とかツールとか

たいしたことないのに つい先輩風を吹かしてしまいました。っべーよ(みさわ省略

 

さてそれはいいとして 翔泳社が開催している

「ITエンジニアに読んでほしい!技術書・ビジネス書 大賞 」

というものがあってその大賞になった本の一つが僕の愛読書だったので 何日かぶりにブログを更新しようと思い立ちました。

その愛読書が「GitHub実践入門」という本です。

GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus)

GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus)

この本の良さというか凄さというのは コレ一冊でGitとGtihubを仕事で使えるレベルになるということです。

たぶんGitを楽しく使うにはGithubと一緒に使うことが一番楽しいと思います。

そのGithubを使うための基本的なところをギュギュっとわかりやすく解説してる本だと思います。

またGithub以外にもレポジトリホスティングサービスがいくつかありますが

その中でもGithubを使うことの良さとして僕が推したい理由の一つとしてツールやサービスが揃っているってのがあります。

そのツールやサービスについても触れられていたりもします。

特にhubコマンドはGithubを使う上でないとPRも送れないくらいになってしまいました。

github/hub · GitHub

hubはGithubをターミナルで操作するためのツールです。

前はRubyで書かれてたんですがv2.0以降からGoで書かれています。

つまりバイナリ一個で動きます。

僕の作業環境はMacなので以下のコマンドでemacsでPRの内容を書いたらすぐにブラウザで確認することができたりします。

$ open $(hub pull-request)

おまけとしてGithubの文化というものにLGTM(Locks good to me.)というものがあり

自分がコードをレビューする立場になったら是非面白いLGTMを決めて欲しいという思いからChromeExtensionsをおすすめしときます。

LGTMでめでたさを伝えるChrome拡張をつくった - Thinking-megane

LGTM - Chrome Web Store


続いてオススメしたい本は「テストから見えてくる グーグルのソフトウェア開発」という本で

これは大学の先生から教えてもらった本です。

テストから見えてくる グーグルのソフトウェア開発

テストから見えてくる グーグルのソフトウェア開発

内容はGoogleがやっているソフトウェアのテストの仕方についてインタビュー形式で書かれたものです。

この本は初めて読んだ時ちんぷんかんぷんでしたが

少しずつTDD(テスト駆動開発)について勉強していく中で読み返すと徐々に内容がわかってくるので

自分自身の技術レベルの物差しとして活用してはどうかなという思いでおすすめです。


最後の一つはライトノベルです。

なれる!SE」というIT界隈で有名な本です。

なれる!SE 2週間でわかる?SE入門 (電撃文庫)

なれる!SE 2週間でわかる?SE入門 (電撃文庫)

でもたまに知らない人もいるので 布教

IT業界に入るかどうかはこれを読んでから決めるといいと言われています。

まだ学生なのでこの本のリアリティは語れませんが一つわかることは

IT業界に室見さんはいないということです...。

Dockerでio.jsの開発環境を作ってみる

いつものようにDocker Hubを眺めていたら

io.jsの公式Imageがあったのでこれはやるしかない!ということでやっていきます。

https://registry.hub.docker.com/_/iojs/

環境

Mac OS 10.10.1 Docker 1.4.1

figのインストール

figはDockerのコンテナをいい感じにしてくれるツール

設定ファイルを元に短いコマンドでコンテナを起動してくれたりします。

$ sudo pip install -U fig

package.jsonの作成

scriptsにstartとdependenciesにkoaを追加しています。

Dockerのイメージを作成する際にないとエラーになるので先に作っておきます。

{
  "name": "docker-iojs-project-example",
  "version": "0.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "node app.js"
  },
  "author": "",
  "license": "MIT",
  "dependencies": {
    "koa": "^0.16.0"
  }
}

Dockerfileの作成

Dockerfileを作成します。

onbuildは短くかけるし便利なのでドンドン使いたいです。

EXPOSEでポートを開けておきましょう

FROM iojs:onbuild
ENV PORT 3000
EXPOSE 3000

fig.ymlの作成

ここでどのようにコンテナを作成するか書きます。

volumesの項目ではカレントディレクトリをコンテナにマウントします。

これで毎回Docker buildせずに起動すればコードが反映されます。

web:
  build: .
  volumes:
    - .:/usr/src/app
  ports:
    - "3000:3000"

fig.ymlを作成したら以下のコマンドでbuildしましょう

$ fig build

koaのHello World

koaはES6のGeneratorsを使って作られたWeb Frameworkです。

Middlewareが書きやすくなります!(今度詳しく調べます)

app.jsという名前で以下のファイルを作成します

var koa = require('koa');
var app = koa();

app.use(function *(next){
  var start = new Date;
  yield next;
  var ms = new Date - start;
  console.log('%s %s - %s', this.method, this.url, ms);
});

app.use(function *(){
  this.body = "Hello World";
});

app.listen(process.env.PORT || 3000);

そしたら以下のコマンドでコンテナを作成して起動しましょう

$ fig up

http://docker-host:3000/にアクセスしてHello Worldが確認できると思います。

まとめ

今年はNode.jsとio.jsはいったいどうなるのか注目です。

Node.jsのFrameworkの定番もexpress.jsからkoaになるかもしれないのでそろそろ調べていこうかと思いました。

それと今度のNode学園ではio.jsについてトークがあるので 申し込みを忘れないようにしておきたいです。