k2wankoの技術的なanything

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

Node学園17時限目に行ってきました!

行ってきました。

懇親会でアルコールを取ってしまって帰ってすぐに書けなかったんですが感想を書いていきます。

「flyjs」 by @jbucaran

github.com

ES6のAPI(generatorやPromise)を使ったビルドシステムです。

gulpに疲れきっていた僕の目にはすごくシンプルに映りました。

@jbucaranさんと話て聞いて実際シンプルなのを意識しているそうです。

pluginの作成もとってもとっても楽ちんそうです。

「npm v3について」 by @watilde

npm3がbeta版がリリースされました。

以下のコマンドでnpm3を使うことができます!

$ npm i -g npm@3

オプションやコード周りで大幅なアップデートがされたそうです。

特にnode_modules内をフラット化しようというのが 僕はインパクトありました。

ネストしてなんぼのもんだと思ってたので

でもフラット化しても特に意識することはあまりなさそうでした。

詳しくはスライドが参考になります。

npm3 ❓ // Speaker Deck

あとセッションとは関係ないんですが

npmにあるブラウザライブラリをbrowserifyで読み込んだりというのは既に一般的なんですね

最近はその辺の情報を収集してなくてもうbowerいらない子になってるんですかね

まぁbowerは成果物までgitで管理してるのがあれだなーと思ってたので大歓迎です

JavaScriptでIoT」 by @yohei_kawano3

milkcocoaさんのLTでIoTのセッションです

JSが動くBoardやcylonjsとかのリモートで動かせるライブラリとかの紹介があって

これはやらねば と思いました。

まとめ

勉強会はやっぱやる気出るので楽しいですね

普段自分が観測できてないところを気づけたりできるので

あとNode学園祭2015の告知もありました。

今年は行けそうな気はするので楽しみです。

去年もそうでしたけどWebが最新技術使われてるし面白いです

nodefest.jp

最近は趣味プログラミングはGoでサーバーというかGAEでAPIサーバーを作るにはーみたいなことばっかりやってるのでJSに触れてなかったんですが

APIサーバーができたらクライアントを作るわけなのでその時に思う存分JSを楽しみます(予定)

YAPC::Asia 2015 Hackathonに行ってきました

前回の記事でYAPC::Asia 2015にいったことを書いたのですが

そこで読みをヤプシーと言ってたり色々恥ずかしい感じでした

どうもヤっプシーみたいですね。

YAPCはせっかく集まったので前後にイベントがありHackathonは2年後しにやったそうです。

ElectronについてBenさんとmizchiさんによるトークが午前中にあり

後は適当にハッカソンって感じでした

作ってたもの

最強のTwitterクライアントを作ろうってのが話題だったので

自分も最強のクライアントを作ろうじゃないかと思い「ニコ生のコメントビューア」を作ってました。

途中成果物 : k2wanko/yapc-hackathon-app · GitHub (多分動かない)

nicoapiというライブラリは3月くらいに作ってて でも致命的な点がコメントを送信する部分がなくて

結局ちゃんとはできてません

設計がひどいので書きなおそうと思ってます。

あとGoでも書こうかなと思ってます。

予定

GoのAPIクライアントを作るのとElectronのPolymer Bootstrap的なのを作ろうかなと予定してます。

感想

スピーカーやスタッフの人がめちゃめちゃ元気にハッカソンしててYAPCでスピーカーするには

あれだけ体力が必要なんだなと思いました。

モノクロームさんのようにもっと前に出るために

とりあえず身内でイベントを開いて少しでも前で話すことに慣れていこうと思います。

YAPC::ASIA 2015に行ってきました!

YAPCです!

わい・えー・ぴー・しーではなく

ヤプシーだそうです。

GoCon 2015 Summerで@motemenさんに教えてもらったおかげで

この3日間、間違えずにいえてました!

 

この記事では感想だけで

内容については後ほど気になって検証したやつだけ書こうかなと言う感じです。

前夜際

聞いてきたトーク

僕はOSSのコミュニティ活動をもっともっとやりたいので

仕事としてのOSS活動とはどんなんだ?とか

OSSコミュニティを盛り上げるにはどうすれば?みたいなのがわかってよかったです。

あとPerlワンライナーで始めてちゃんと触りました。

(ワンライナーをちゃんとと言っていいのかは謎)

1日目

聞いてきたトーク

  • メリークリスマス!
  • Managing Containers at Scale with CoreOS and Kubernetes
  • TBD
  • WebAudio で入門する信号処理
  • Electron: Building desktop apps with web technologies
  • esa.io - 趣味から育てたWebサービスで生きていく

英語のセッションを半分聞いてて思ったのが同時通訳がすごいなーと(小並感)

おかげで英語のセッションでも苦労なく理解できて楽しかったです。

Matzさんのセッション(TBD)は言語デザインについてやStreemについてで、あとちょっとRuby3をどうしていくかという話でした。

趣味から育てたWebサービスで生きていくではesa.ioを法人化するに至った経緯などを話されてました

esa.ioは知らなかったのですが、なんかあのノウハウ共有サービスに似てるなーとかってのにも理由があったり

ざっくり理解した内容だと趣味サービスで生きていくにはハッカソンが大事ということでした!

(つまり、とにかく数で試せみたいな感じだったかなと)

2日目

聞いてきたトーク

  • Google Cloud Platformの謎テクノロジーを掘り下げる
  • 我々はどのように冗長化を失敗したのか
  • Docker3兄弟について
  • データ分析基盤を支える技術
  • 【特別企画】YAPCあるある(仮)
  • Profiling & Optimizing in Go

Google Cloud Platformの謎テクノロジーを聞くがためにYAPCに行ったようなものなのですが

改めてやべーって思いました。

大量のデータをどのように処理してるだとか どうしてAppEngineはコーディングに制限されてしまうのか

論文が公開されてるからそっちを確認してねーとか

Googleのサーバーすごいだろー全部自分で作ってるんだぜー、あっ ネットワークスイッチももちろん自前だぜー

と言った感じで色々圧倒されました。

まぁあくまで事業者向けなセッションだったんですが

でも今後役に立つなという考えが スケールがしやすいシステムがいいということです。

 

YAPCあるあるは勉強会運営のノウハウを聞けて楽しかったです。

どうしたら勉強会を大きくできますか?みたいな質問があって

法人にしたりとか色んな仕組みを整備するとか、むしろ負けを知りたいって回答だったんですが

僕の理解としては有名人になって(or 呼んで)物理で開催するってことなのかなと

 

あとProfiling & Optimizing in Go ではGo開発を助ける周辺ツールの紹介でpprofなどを駆使して

ライブコーディングでどうリファクタリングをするかみたいなのが知れて最高でした

僕的には一番エキサイティングしたセッションだったかなと

ちなみにライブコーディングではBradさんはEmacsを使ってて

タイムラインでEmacs派とVim派によるナワバリバトルが始まったり(?)(ちょうどスプラトゥーンでもフェスがやってたりしたので)

やっぱGoはEmacsで書くのがいいんです(Emacs派)

あとテストはしっかり書いたりベンチマークはしっかりやろう!と思いました

まとめ

ハイレベルなトークに出てくる用語を調べてるだけで手一杯でブログのメモのために メモ取ってなくて反省

あと次はないらしい(?)のですが 今後のためにもサボらずできるだけイベントにいったらブログを書くようにしようと思います。

では今日はYAPC::Asia 2015 Hackathonに参加してきます!

スプラトゥーンのカンストして1ヶ月半くらい経って思ったこと

S解禁間近なのでA+になるまでに心がけてたことを書いておきます。

カンスト維持とはいえ無敗というわけではなく

カンストして終わらせてるという感じですけど

ブキについて

なるべく色んなブキを使えるようになっておくと便利です。

ステージやルールに合わせれますので

僕がオススメしているのはワカバシューターとスプラシューターコラボです。

ワカバシューターはガチエリアの時に重宝しています

高い塗り能力と対イカ戦の時のギリギリバリアは相手の心にダイレクトアタックできます。

逆にやられた時の動揺もでかいですが...

それとスプラッシュボムも強いです

慣れるとリッターもダイナモもぽぽぽーんとハジケさせれます。

今度余裕があればスプラッシュボムの使い方を解説したいとですね

スプラシューターコラボはガチヤグラの時に重宝しています

キューバンボムはヤグラに貼り付ければ相手を自分の射程に誘い込むことも可能ですし

運が良ければ複数の敵を倒すことができます。

またスペシャルのスーパーショットは追い詰められてる時の起死回生の一手になります。

A+ばかりの部屋だとスプラシューターコラボがかなりいます。

明日のアップデートでスーパーショットの発動に必要なポイントが増えるようですので

これがどう影響するかシューターコラボ使いとしては気になるところです。

 

基本的にこの2つを使いまわしていますが

動きたくない時はリッター3Kだったりジェットスイーパーを使ったりしますし

頭を使わずに敵を倒したいときはローラーコラボを使ったりしています。

ギアについて

ギアは基本的にイカニンジャかマーキングガードのどちらかをベースにコーディネートして います。

イカニンジャの時は頭も足もイカ速度アップを付けてなるべく速度を上げるよう心掛けてま す。

基本的に攻撃力アップとイカ速度アップは付けるようにして

サブパワーにサブインク効率アップやインク回復速度アップを加えています。

ギア厳選はガチに籠もってるとお金が貯まるので300万くらいたまったら100万くらい 一度に使ってサブパワーを揃えたりしています。

現在のギア f:id:k2wanko:20150805062108j:plain

ガチエリアについて

特定のエリアを塗って占領して占領している時間を競うルールです。

僕がガチエリアをする時気をつけてるのが占領した時は周りを塗りつつ相手が奇襲をするために使ってくるルートで待ち伏せです。

ステージによって奇襲ルートは違いますが

例えばハコフグ倉庫なら自陣から見て中央右の方からローラーやブラスターがやってくることが多いので仲間がやられないように待ちぶせしとくとカウントを稼げます。

逆に占領された時はスペシャルを溜めて相手を1度に3杯程度は葬るよう心がけてます。

カウントをストップされた時も相手を倒すよりもエリアの確保を優先するようにしたり するとウデマエを上げることができるのではないかと思います。

ただチャージャーに狩られないような立ち回りやローラーに潰されないような距離感をつかむほうが先なので

敵はそれなりに倒せるけど試合結果に反映されないという人はこの辺を意識するといいのではないかと思います

ガチヤグラについて

ガチエリアはヤグラを奪われてもガチエリアと違ってペナルティが対してありません

距離が遠いとかその程度なのでこれの対策はなるべく仲良死を避ける事だと思います。

時として仲間を囮にして仲間がヘイトを集めていてくれてる時に隙をついて倒しましょう

タッグマッチで4人組で戦える時は2−2でわかれてヤグラ中心に動く人と先行して敵を倒す人で役割を分けると良いのではないかと思ってます。

ソロプレイの時はまずはチームメンバーの気質を確認するように努めるといいかもしません

ヤグラに乗ってくれそうな人がいれば露払いに徹したり、乗ってくれる人がいなければ自分が乗るようにしたりですね。

僕がガチヤグラで注意しているのがヤグラは敵側に押しててヤグラの上に誰も乗ってなく絶賛攻められてる時で

この時ヤグラが中央に戻ってしまわないように敵からの攻撃を避けながらなんとかヤグラの上に触れて戻さないようにしています。

そうすることで時間を稼げるのとヤグラを壁にすることもできるのでオススメです。

この戦い方を助けるためにもヤグラの周りは余裕がある時はできるだけ全面塗っておきたいですね。

 まとめ

結局どっちにも共通する対策が地面は塗っておきましょうですかね

これだけ意識するだけでも勝率は変わってくるのではないかなと思います。

まぁでもチームメンバーの力量が相手と吊り合わないと無駄無駄だったりするので

日頃の行いを良くして引きを強くするとかのがいいかもしれませんね(適当)

スプラトゥーンのガチマッチのウデマエ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