tech::hexagram

personal note for technical issue.

2015年GWまとめ

今日でGWが終わるのでまとめておく。

今年は5/7(木)、5/8(金)を有給休暇でお休みしたので9連休。 連休をとったものの、関東圏内から出ることはなかったが飲み遊び学び色々と充実していた。

買った

ロードバイクを買いました。5/4に納車。 車種はcannondale SuperSix Evo 105。

http://www.cannondale.co.jp/jpn_jp/2015/bikes/road/elite-road/supersix-evo/supersix-evo-5-105www.cannondale.co.jp

パーツや工具なども揃えて大体1ヶ月分の給料くらいの大きな買い物をしたけど、周りでも乗っている人が多いしこれから買った額以上の体験ができそうで楽しみ。

初日は羽田空港まで試運転をした後帰宅。今日は赤レンガ倉庫に行ってみた。 サイクルコンピュータで図ると平地でも信号待ちで止められない限りは30km/hくらいは普通に出るし、少し下り坂が入ると40km/h手前くらい出るからもう怖い。

安全運転を意識しつつ、距離を伸ばしていけたらと思う。

作った

いつもの通り1週間分。先週の土曜と今週の土曜作った分を上げておく。

5/2

f:id:manji602:20150510224959j:plain

f:id:manji602:20150510225009j:plain

  • かぼちゃの煮っ転がし
    • 冷凍カボチャを煮るだけのいつものやつ
  • なすとじゃがいもと玉ねぎのカレー
  • なすの揚げ浸し
  • 大根の味噌汁
    • 今使っている味噌が大根を具にするとすごく美味しくできるので作ってみた。細切りがなかなかうまくできなくて適当に切ったら見栄えが微妙なことに…
5/9

f:id:manji602:20150510224905j:plain

f:id:manji602:20150510224912j:plain

  • かぼちゃの煮っ転がし
    • 冷凍カボチャを煮るだけのいつものやつ
  • 豚汁
    • 豚コマと豚汁の水煮、しいたけのあまりも入れて少しアレンジ
  • ほうれん草のおかか和え
  • ネギとしいたけと豚肉の生姜焼き
    • 本当は玉ねぎを使いたかったけどちょうどいい量で売ってなかったので適当に入れてみた。まぁまぁ美味かった

食べた

f:id:manji602:20150510224948j:plain

5/3にすき焼きを食べに。定期的に自分が幹事をして肉を食べる集まりがあり、富士見台の牛蔵という店が最近のもっぱらのチョイスとなっている。

遊んだ

f:id:manji602:20150510224930j:plain

5/5は同期とゲーセンに遊びに行った後焼き肉を食べ、そのまま同期宅でリアル猫集め。動物慣れないので手懐けるのが大変だった。

f:id:manji602:20150510224857j:plain

買ったチャリンコで横浜赤レンガ倉庫へ。海沿いを涼しい気候の中走るのは快適だった。

あとはラブライブ1期・2期一挙放送を一挙に見て目から汗をかいたり。

学んだ

  • 詳解Objective-C2.0を読んだ

    • 第10章くらいまで。流し読みしつつポイントをまとめている最中。半分くらいまでは読み進めることが出来たのでまた折を見て読みたい。
  • Rails Tutorialを進めた

    • 第7章まで。ユーザー登録まで出来たので次週以降はサインイン・サインアウトをやりつつ、会社の勉強会の課題のリポジトリも作り始めるつもり。

振り返ってみると結構充実してたんでいい息抜きになって良かった。 来週からまた仕事復帰なので頑張ります。

LINE Developer Dayに参加してきた

最近あまりカンファレンスに行けてなかったものの、渋谷開催で近かったのもあって久しぶりに参加してきた。

ラインナップとしては以下のとおり。細かいスライドの内容はgistに張ってあるのでそちらを参照してもらえると良いかと。

A-1 オープニング

10:30-10:40

A-2 LINE Global Cluture

10:40-11:00

A-3 LINE Messenger for the World

11:00-11:40

雑感

  • グローバル化を推し進める上で通信環境の差異を現地に足を運んで確かめるというのはすごく説得力があると思った。
  • レビューの星の数や本文を形態素解析し、モニタリングできるシステムを内製で作っているのでユーザーの声を拾いやすくする仕組みが整っているなと思った。
    • 弊社でもやりたい。
  • パキスタンからの通話のうち半数がサウジアラビアへの通話、1/4がパキスタン国内への通話というのが興味深かった。

A-4 LINE Platform Development Chronicle

11:50-12:30

雑感

  • サービスが拡大するにつれバックエンドの構成に問題が生じ、その度にスケールしやすく、レスポンスタイムが高速になるように最適化を行っていた。
  • マイクロサービスを作るときは短期間でiterationを回し、目的を達成したら縮小 or 解散。そのメンバー構成も組織図にとらわれないものというのはなかなか新鮮だった。

A-5 HBaseとRedisを使った100億超/日 メッセージを処理するLINEのストレージ

13:30-14:10

雑感

  • 専門用語が多くなかなか難しいセッションだったものの、HBaseの特性を活かしてテーブル設計しないと膨大なアクセスをさばくのは難しいことがわかった。テーブル設計は重要

B-3 グローバルなネットワーク環境と複数OSに対応するためのLINE Game Client Platform開発戦略

14:20-15:00

雑感

  • 通貨単位が大幅に違うと桁あふれが起きてしまうというのはなかなか危うい問題だと思った。

A-7 巨大化するスタンプ・着せかえ販売システム、その危機と復活の記録

15:10-15:50

雑感

  • ショップサービスの利用者数はLINEのユーザー x ショップサービスを利用する割合。このパラメータが短期的・長期的にどう変わるかを考えることでスケーラビリティを意識したサービス運用ができる。

B-5 ビッグデータを活用するための分析プラットフォーム 〜データ集計した先に求められる分析技術〜

16:00-16:40

雑感

  • エンジニア向けとプランナー向けでデータ分析のシステムを分けているというのが印象的だった。
  • サービスが拡大・グローバル化が進むに連れKPIが増えすぎて追えなくなる -> 自動化は避けては通れない道だと感じた。
    • 弊社も分析ツールがあるが、項目が多すぎて見切れていないのでは。
  • サービスが長寿化・多様化するに連れ訳の分からないフラグが増えまくる -> 共感出来すぎてヤバかった。

B-6 ベイズ推定とDeep Learningを使用したレコメンドエンジン開発

16:50-17:30

雑感

  • 望ましいレコメンド結果を手に入れるにはある程度の仮説や、パラメータのチューニングが必要。
    • 研究として扱うのであればそこもセンシティブに考える必要があったが、企業としてやっていくにはこれで十分なのでは。
  • システム構成が、インプットとロジックを変えるだけで様々なレコメンドに使えるというのは素晴らしいと思った。
  • 購買履歴がなくても画像の類似度でレコメンドができるというのは興味深かった。

Xcode6でオレオレライブラリをCocoapods経由で入れるときの注意事項

OSはMavericks。

pod spec lintでエラーが出ていないか確認する

$ pod spec lint targetfile.podspec

これを実行した際に、ERRORが出ている部分は修正する必要がある。自分は以下のエラーが出ていたので修正した。

Loading subst-jis...done
                    file.
    - ERROR | [name] The name of a spec should not contain whitespace.
    - WARN  | [source] Git sources should specify a tag.
    - ERROR | [iOS] [xcodebuild]  xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance
    - WARN  | [iOS] Unable to find a license file

Analyzed 1 podspec.
  • ERROR | [name] The name of a spec should not contain whitespace.

    • これはpodspecのnameパラメータにスペースが入っていたため削除。
  • ERROR | [iOS] [xcodebuild] xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance

おそらく2番目のエラーに起因すると思うが、Undefined symbols for architecture i386: "_OBJC_CLASS_ というエラーがコンパイル時に消えない場合はpod spec lintで確認すると良さそう。

このlinker errorに数週間悩まされていたので解決してよかった。。

今回、Nend SDKをcocoapods化したのでその際に見ていたサイトもリンクしておく。

Vagrantメモ

http://lab.raqda.com/vagrant/index.html

こちらを読んで、最低限利用するために必要な部分だけまとめた。

Vagrantとは

簡単な環境設定/複製可能なマシン/業界標準の技術で構築された1つの一貫したワークフローによって制御される可搬的な開発環境を提供してくれるツール

ダウンロード:http://www.vagrantup.com/downloads.html

初期化

カレントディレクトリにvagrantfileを作成。

$ vagrant init

BOXのインストール

仮想マシンをすばやくクローンするためのベースイメージをBOXと呼ぶ。

$ vagrant box add precise32 http://files.vagrantup.com/precise32.box

HTTP経由でprecise32のboxをダウンロードし、precise32として保存する。 追加されたboxは複数のプロジェクトで再利用可能。

いろいろな仮想環境のboxはこちらでリストアップされている。

http://www.vagrantbox.es/

BOXをVagrantfileに適用する
Vagrant.configure("2") do |config|
  config.vm.box = "precise32"
end

ここで「2」はVagrantのバージョンを定義しているもので、こちらで変更する必要はない。

# All Vagrant configuration is done below. The "2" in Vagrant.configure
# configures the configuration version (we support older styles for
# backwards compatibility). Please don't change it unless you know what
# you're doing.

仮想環境に接続

仮想環境を起動する

$ vagrant up

VirtualBoxを入れていない場合、以下のエラーで怒られるのでここで入れておく。

No usable default provider could be found for your system.

Vagrant relies on interactions with 3rd party systems, known as
"providers", to provide Vagrant with resources to run development
environments. Examples are VirtualBox, VMware, Hyper-V.

The easiest solution to this message is to install VirtualBox, which
is available for free on all major platforms.

If you believe you already have a provider available, make sure it
is properly installed and configured. You can see more details about
why a particular provider isn't working by forcing usage with
`vagrant up --provider=PROVIDER`, which should give you a more specific
error message for that particular provider.

仮想環境にSSH接続する

$ vagrant ssh
プロバイダ経由で起動する
$ vagrant up --provider=vmware_fusuion
$ vagrant up --provider=aws
仮想環境で作成したファイルはどうなるのか

仮想環境での/vagrantディレクトリ配下が、Vagrantfileが格納されているカレントディレクトリと同期されるため、仮想環境上で/vagrant配下にファイルを作成すると自動的にローカルに反映される。

仮想環境を止めるときは
  • 保留:vagrant suspend 仮想環境の現在の状態を保存し、停止する。復帰が早いものの、仮想環境はホストマシンのディスク容量を消費し、RAMの内容もディスクに追記するため容量を食う。
  • 中断:vagrant halt 仮想環境のOSをシャットダウンし、電源を切る。ディスク内容を保存しつつクリーンな状態で起動が行える。仮想環境によりホストマシンのディスク容量は消費したままとなる。
  • 破壊:vagrant destroy 仮想環境をすべて削除する。ホストマシンのディスク容量は、vagrant upを行う前の状態に戻る。

Vagrantfileの便利な設定

プロビジョニング

vagrant upした際に、ソフトウェアもインストールしてくれる機能。 ローカルでVagrantfileが格納されているディレクトリに、bootstrap.shを作成しておく。

Vagrant.configure("2") do |config|
  config.vm.box = "precise32"
  config.vm.provision :shell, :path => "bootstrap.sh"
end

すでに起動しているboxに設定を反映させるにはvagrant reloadを実行すればOK。

ポートフォワーディング

ポートフォワーディングを行うには、以下のように設定する。

Vagrant.configure("2") do |config|
  config.vm.box = "precise32"
  config.vm.provision :shell, :path => "bootstrap.sh"
  config.vm.network :forwarded_port, host: 4567, guest: 80
end

これにより、http://127.0.0.1:4567にアクセスするとWebページを見ることができる。

TODO

  • AWS環境のboxを作るための手順を調べる
  • chefとの連携方法
  • 開発環境のプロビジョニングで必要なことを洗い出す

陰陽座全国ツアー2015「雷神」に行ってきた

陰陽座全国ツアー2014「風神」に行ってきた - tech::hexagram

これの続編。ぐぐったらセトリが出ていたので、日が開いてしまったながらもこれをみながら所感を書いてみる。

陰陽座のライブは一般発売の直後に指定席を買うのがいつもの流れで、座席は第1バルコニーの上手側の最前列。 DVD化するため撮影機材が入っていて時々視界が遮られたが、メンバーとの距離は今までで一番近かったように思えたので今回は結構良い席だった。

雷神創世

雷神創世

本編は、雷神創世の曲を全曲やっていったので所感をまた簡単に書く。

本編
雷神
天獄の厳霊

荘厳なオープニング曲。天獄の厳霊は、なんとなくジャケ写の後ろの飾りがグルグル回っているイメージを勝手にしてしまう。

夜歩き骨牡丹
千早振る
百の鬼が夜を行く
神鳴忍法帖

おなじみ忍法帖シリーズ。忍法帖の中では割りとおとなしめな曲な気がする。

組曲鬼子母神」~鬼拵ノ唄
天狗笑い

天狗笑いは招鬼作曲、瞬火作詞の兄弟作。ふわっとした歌詞がついたとMCで紹介していたのでゆるふわ枠らしい。前作の狩姦ペアの曲もよかったので、毎作1曲くらいは各メンバーが作曲なり作詞なりしてくれるといいなと思った。

読みはかさね と ひぐらし。かさねは見た目が醜いだけで殺されてしまった子供の逸話を元に作曲された悲しい曲。ひぐらしはそれと対になるようなエンディングっぽい雰囲気があるという黒猫のMCが印象的だった。

晴天の三日月
人首丸
組曲鬼子母神」~鬼子母人

しっとりしてきたのでここからまた激しい曲やるぞー!という煽りのあと激し目の曲をまとめて披露。人首丸はこのアルバムの中で一番好きな曲。

吹けよ風、轟けよ雷
而して動くこと雷霆の如し
雷舞

そして一気にラストまで。雷舞はもうホントにライブ向けの曲。盛り上がるし、旋律も歌いやすい音程を沿っていってるからカラオケとかでも歌いやすそう。

アンコール1回目

組曲鬼子母神」~徨 組曲鬼子母神」~膾

ダウンチューニング多めなので、とのことで鬼子母神の曲がアンコールに!こういうコンセプトのアルバムじゃないと、なかなかアンコールにも来ないだろうと思う。 そして前回のツアーではあまりなかった兄上の長話!20分位はあったような。これを聞かないと陰陽座のライブに来たという実感がわかないので聞けてある意味ほっとした。

アンコール2回目
組曲義経」~悪忌判官
魔王
がいながてや

おなじみ極楽地獄。久々に卍が聞けてよかった!魔王の歌舞伎調なくだりの歌詞の部分はいつ聞いてもすごいなぁと思う。

アンコール3回目
喰らいあう

最近の大トリは喰らいあうか生きることとみつけたりな気がするけど、安心して聞ける曲な気がする。 兄上の喰らいあうのラストのシャウトが年々進化しててすごい。地声の2オクターブ上のラまで行ってて正直鳥肌が立った。

全体的に雷神創世はダウンチューニングの曲を揃えていたので、風神界逅に比べて激しい曲が多く、ライブ後の首の疲れが酷かった。

「今年の陰陽座はしつこいぜ」(「ぜ」はどこぞの方言)とのことで、夏にもライブがあるとのこと。 最近仕事が忙しくてしんどいけど、それを糧にまた毎日頑張っていこうと思う。