日本代表 vs コートジボワール代表 の敗因を考える

サッカー大好きなので書かないわけにはいかないな。

①左サイドのDFのバランスがおかしい
日本代表は前半開始直後から左サイド(相手の右サイド)を起点にされてどんどん攻められてしまいました。相手のセンタリングのミスやシュートミスに助けられて失点に至ったのは後半になってからですが、前半からいつ失点してもおかしくな状態でした。長友が負けてたとか香川がDF下手とかいう話ではなく、単に数的優位を作られてましたね。
これは香川真司の諸刃の剣というか、香川は攻撃の時にポジションを中央に寄せるので、日本代表は守備を開始する時に特に左サイドのフォーメーションが大きく崩れた状態からスタートすることになってしまいます。
サッカーでは攻撃する時に基本ポジションからの上下移動だけで攻めるのが一番安定するやり方で、かつてのイタリア代表のカテナチオとかはこういうやり方でした。まあ日本代表が攻撃的サッカーを目指すということは、このリスクと向き合っていかないといけないわけで、コートジボワール戦ではその弱点を本当に上手いことやられてしまいました。(研究されていた!?)
同点弾のシーンもそんな感じで、香川が中央にいる時にボールロストしてから左サイドを1対2にされてフリーでセンタリングを上げられてしまいました。

ここは戦術的に修正可能なところではあります。ストロングポイントどころかウィークポイントにされてしまった日本の左サイド。ギリシャ戦以降、香川真司サイドハーフとしてのタスクをどれだけ任せるのか。興味深いところです。


②ブラジル戦で見えた課題を対策してこなかった
まだ記憶に新しいコンフェデレーションズカップのブラジル戦での完敗。そこで分かったのは、中盤のプレスをドリブルでかわしてくる相手に対して、日本代表の戦術が全く機能しなくなるということでした。コートジボワールの選手たちもみなクオリティが高くてプレスに行っても取れないばかりか抜かれてしまうシーンが多々ありました。
ブラジル戦以降、オランダ等の強豪国相手の強化試合はこなしてきましたが、相手のDFとか守備的MFとかがプレスを抜きにかかってくるような相手とは試合をしてきませんでした。このグループではコートジボワールとコロンビアという個人能力に長けたチームがいるので、何かしら対策しておかなければいけなかったかもしれません。

これは今更どうしようもないので、コロンビアの守備的な選手のドリブルスキルが低い事を期待するしかないですね。


③謎のパスミス問題
これは原因がよくわからないのですが、とにかくイージーなパスミス/ボールロストを連発してしまいました。相手は強豪コートジボワールですから、悪い位置でのボールロストからの鋭いカウンターを仕掛けられまくったわけです。あれで2失点ですんだのは、吉田麻也を中心としたDFラインの奮闘があったからだと思います。この試合で唯一良かった点でしょうか・・・。最終ラインはコンディション良さそうです。
また、サッカーは心理ゲームでもありますから、安易なボールロストが何回も続くと日本代表の最大の長所である味方同士が連動した攻撃というのが出来なくなります。せっかくフリーランニングで前線まで上がったと思ったら味方が簡単にボールを奪われて、今度は全力疾走で自陣まで戻るというのを繰り返していると嫌になってくるものです。

今大会でスペインがオランダに大敗した時の現象ですが、前半はスペイン代表が優位に試合を進めていました。しかし後半になり土砂降りの雨が降り注いでからスペイン代表の様子が明らかにおかしくなり、まさかの5失点での大敗という結果になりました。連日の土砂降りがグラウンダーパス主体のパスサッカーに悪影響を及ぼしているのでしょうか。

まあそれは分かりませんが、とにかく日本代表みんなで「フリーな味方がいて、パスコースもある状態で、自分もある程度フリーになっている状態で、パスミスする」というなんだか大変なことになってしまっていたので、最低でもこの現象を改善しないことにはどのチームを相手にしても勝てないでしょうね。いったいなんだったんでしょう。


コートジボワール強い
つえー


ドログバやばい
まじ半端ない

Kalafinaにハマったんですが何か

KalafinaコピバンのAnifalakさんのライブに行ったりしているうちに、今更ですがすっかりKalafinaにハマってしまいましたー。いやーいいものはいい!

曲も良いしライブでのパフォーマンスも良いし、もともとKalafinaは好きだったのですけれど、ちょっと一段感次元が上がってメンバーのパーソナリティを追ったりとかするレベルまで好きになってしまいましたよ!

知り合いに空の境界を劇場に行って全部見たけどKalafina知らないとかいう意味不明な人もいたので、ちょっとKalafinaを紹介してみようと思います。


Kalafina紹介

Kalafinaは映画『空の境界』の主題歌のために結成された、Wakana/Keiko/Hikaruの3人によるボーカルユニットで、すべての曲をあの梶浦由記がプロデュースしてます。
梶浦由記の曲と歌詞による幻想的で壮大な世界観を、3人のボーカルによるコーラスワークで表現するスタイルが特徴で、非常に完成度の高い楽曲を作り続けています。

メンバーの3人はみな歌唱力が高く、しかも誰が欠けてもKalafinaが成り立たないというくらい、それぞれ強い個性を持っています。

メンバーは以下の3人。

Wakana
Kalafinaの右側にいることが多い人。
美しく透明感があり伸びのある高音が特徴。
Kalafinaのコーラスワークの中心的な存在で、高音パートで楽曲に広がりと美しさを与える。また、いわゆるKalafinaっぽい曲ではWakanaが主旋律を担当してることが多い。

Keiko
Kalafinaの真ん中にいることが多い人。
太くて抜けのいい低音が特徴。
Kalafinaのコーラスワークを低音パートで支えて楽曲に厚みをもたらしている。また、主旋律を担当すると他のメンバーとは一線を画す力強い歌声で曲を表現する。

Hikaru
Kalafinaの左側にいることが多い人。
艶のある歌声と多彩な表現力が特徴。
クラシック風なものからワルツ・ロック・ポップス・バラード調のものまで多様な要素が詰め込まれた梶浦由記の楽曲を抜群の表現力と器用さで歌いこなす。


かなり主観まじりですが、そんな感じの3人組です。
Kalafinaの真骨頂である美しい歌声を奏でるWakana、力強い低音で支えるKeiko、どんな曲でも歌いこなすHikaru、といった感じの構成になっていて、本当に良い3人組だなと思います。

オススメ曲

oblivious

Kalafinaの最初の曲で、Kalafinaのイメージ曲といったらこれですね。

sprinter

Kalafinaの中でも珍しいポップス調の曲で非常に人気の高い曲です。主旋律を3人で次々と歌い回すところがかっこいいです。

Magia

魔法少女まどか☆マギカのED曲で、Kalafinaの中で一番有名な曲だと思います。

光の旋律

個人的にとても好きな曲。ソ・ラ・ノ・ヲ・トという謎のアニメのOP曲。CメロのWakanaとHikaruのユニゾンがやばい。

音楽

Kalafinaの曲には多種多様な曲がありますが、これは1曲に色々な要素を詰め込んだような曲。アップテンポのダンスビートを刻んでいるのでKalafinaの中でも屈指のノリの良い曲。

(番外編)あんなに一緒だったのに

梶浦由記の名曲『あんなに一緒だったのに』のカバー。Hikaruのポテンシャルの高さが光る(!?)



そんな感じです!いつかKalafinaのライブいってみたいなーーーー。

ニコニコ動画の人気動画を配信するtwitter botつくった(Go言語使ってみた)

golang書いてみようとふと思ってみんな大好きTwitter bot作りました。ニコニコ動画の人気動画を配信するという体裁のbotです。

作ったやつ→ニコニコ動画_Fav
ソースは→https://github.com/yfujita/nico-fav-tweet

動作

ニコニコ動画の公開RSSでランキングをXML形式で取れるので、毎時ランキングを定期的に参照して、トップ10で新しいものがあったらツイートしています。

Go言語つかってみた

以前Tour of Goはやったことあったものの、すっかり忘れていてゼロからのgolangでした。構造体とかポインタとか出てくるので、C言語書ける人はとっつきやすい印象でした。
ちょっと触った程度ですけど、復習のためにここまでやったことをまとめておきます。

①なにはともあれTour of Go

A Tour of Goというgolang入門サイトに実際にコードを動かしながら学べるとても丁寧なチュートリアルがあるので、最初は何も考えずにこれやりました。

golangのインストール

http://golang.jp/installなどを参考にインストール。

Mercurialをインストール

go getする時にライブラリによってはMercurialリポジトリを使ってるので、入ってなければインストールが必要です。

④GOPATHの設定

環境変数GOPATHを設定します。

export GOPATH=/hoge/fuga

go getするとGOPATHにライブラリが格納されて、ビルドする際に自動的にGOPATHを参照して依存ライブラリを解決するみたいです。なので設定が必須。複数のディレクトリが設定が可能で、その場合はgo getした時には最初のpathにライブラリが格納されるらしいです。

Hello World!!!

Hello World!!!

package main

import(
	"fmt"
)

func main() {
	fmt.Println("Hello World!!!")
}

という感じのファイルを適当なディレクトリにhello.goという名前で作成して

go run hello.go

で実行できます。かんたん! mainパッケージのmain関数が実行されるみたいです。

⑥ソースファイルを複数に分けたい

package名さえ同じにしておけば複数のファイルに分けてかけます。別ファイルのソースの関数も構造体も自由に参照可能です。

go run *.go

とかで実行出来そう。

オブジェクト指向っぽくしたい

golangにはクラスという型はないですが、構造体にメソッドを定義出来ます。C→Javaの順番でやった人はクラスって構造体にメソッドを定義したものかなという感じで入ると思うのですが、まさにそれなのでクラスよりもこっちのがしっくり来ます!

type Hoge struct {
	Value int
}

func (hg *Hoge)showValue() {
	fmt.Println(hg.Value)
}

みたいな感じで定義して

func main() {
	hg := new(Hoge)
	hg.Value = 10
	hg.showValue()
}

みたいな感じでオブジェクト指向

⑧平行処理したい

golangにはgoroutineというのがあって、chan型と組み合わせて超簡単に平行処理がかけるみたいです。

func main() {
	ch := make(chan int)
	go func(ch chan int) {
		ch <- 1
	}(ch)
	fmt.Println(<-ch)
}

これだけ!(たぶん動く気がする)

「go 関数」と書くと関数が別スレッドで実行されるらしいです。
データの受け渡しはchan型を使うのがいいらしい。メモリ共有されてるので直接他スレッドの変数に値を書き込むことが出来るけどあんまりやらない方がいいっぽい。「ch <- 1」で値を格納。「<-ch」で値の取り出し。「<-ch」の時にまだ値が設定されてなかったら、勝手に実行スレッドをロックして値が設定されるのを待ってくれるらしい!便利!

⑨ビルドしたい。

ソースのあるところでgo build します!

⑩どういうディレクトリ構成にしたらいいのかよく分からない

githubのgoのコードとかみてもなんかすっごくシンプルな構成でよくわからない。というかみんなライブラリなんでmain packageがない。

と思っていたら素敵な記事がありまして

【翻訳】プロダクション環境でのベストプラクティス

SoundCloudではGoをガンガン使っているらしい!ディレクトリ構成についても書いてあって、リポジトリ下にmainパッケージのソースコードをガン置してることが多いらしい。(やっちゃ駄目と書いてある)

⑪パッケージ分けたい

mainパッケージにガン置きやっちゃ駄目となるとディレクトリつくってパッケージを分けるのが良さそうなので、分けてみる。

{project-dir}
 |-main.go
 |-sub
   |-sub.go

こうやっておいてmain.goから「import("sub")」ってやればいけるのかなとも思ったけどsubなんてないって怒られる。
依存ライブラリの解決にはGOPATHを参照しますが、GOPATHにsubなんてないよって言われる。

ってことはこれ毎回GOPATHをカレントに設定してかなきゃいけないのかー詰んだ。

と思っていたら

とのありがたすぎる助言を頂きまして、最初からGOPATHの中で作業してればすべて解決すると。その発想はなかった!

{GOPATH}
 |-bin
 |-pkg
 |-src
   |-{project-dir}
     |-main.go
     |-sub
       |-sub.go

みたいな感じで、main.goからはimport("{project-dir}/sub")とするとsubパッケージがimportできました。この状態で{project-dir}で「go install」するとbinに実行ファイルも作ってくれたりしていたれりつくせりです。

ちなみに、githubにあるgoパッケージをgo getすると「{GOPATH}/src/github.com/userName/repositoryName/packageName」という感じでインストールしてgo installまでしてくれるようで、つまりgithubリポジトリにはpackageディレクトリだけおいとけばgo get可能ということっぽい!だからgithubにあるgolangリポジトリはどれもこれもシンプルな構成になっているんですね。すごくいいですね。

githubにうpしたい

git pushです!

githubにあげる予定のある場合は、最初から{GOPATH}/src/github.com/userName/repositoryNameのディレクトリで作業しておくとそのままgithubにうp出来てgo getもしやすくてすごい。



という感じで今のところやったことをまとめました。
継続して何かしたいけど何をしましょう。
このbotでもロギングとかエラー処理とかでまだ遊べそうかもしれないですが。

botは・・・

ニコニコ動画_Favを見ればわかりますが、1時間に1個くらいしかツイートしていない。。。 ニコ動の毎時ランキングの上位って意外と全然動きがないんですねー。botがあんまり喋ってくれなくてつらいです。それにしても、実況動画が多いですねw 超会議でも実況する人達みんなイケメンで女性ファンがすごかったらしいですし、すごい。

アニメのランキングサイト更新した (AngularJSつかってみた)

仕事の納期がひしひしとせまってきているプレッシャーに押しつぶされて「そうだ、AngularJS一度使ってみよう」と思ったので、もはやただの遊び場となっているアニメランキングのサイトを更新しました。
http://niconico.anirank.info/anirank/

ニコ動の動画の再生数とかをアニメタイトルごとに集計してごにょごにょしてランキングで表示するアプリです。

フロント部分をいじりました。ちなみにレスポンシブデザインつくるのがつらかったので、スマホでアクセスした場合はbootstrapでなんちゃってレスポンシブになってた昔のデザインで表示されます。

構成

  • フロント
    • Twitter Bootstrap
    • AngularJS
    • MAXIMAGE2
  • サーバーサイド
  • ストレージ
    • H2 DB(設定情報)
    • Elasticsearch(コンテンツ情報)

やったこと

AngularJS使ってみた

今まではサーバーサイドでHTML作ったりしてたのをやめて、サーバーからは静的なコンテンツを返してクライアントサイドでAngularJSでごにょごにょして遊ぶ感じにしました。
AngularJS入門を一通り読んで、記載されてるサンプルコードを動かしてみたりするだけで、ランキングサイト作るくらいはすぐに出来るようになりました。

基本的にはcontrollerで変数に値を設定して、HTMLに{{変数名}}って書くと表示される感じです。このAngularJSのHTMLテンプレートが機能豊富で、テンプレートを利用するだけでほぼ簡潔しました。directiveという以下のような属性をHTMLに書く事でいろいろな処理をシンプルにテンプレート内に埋め込めて、標準で用意されてるdirectiveを使うだけでマジいろいろ作れそう。

  • ng-model
    • 入力フィールドの値を指定した変数へ格納
  • ng-repeat
    • 配列などのコレクションを指定すると、ng-repeatを指定した要素を配列要素数分だけ繰り返して生成
  • ng-click
    • 要素がクリックされた時の処理を指定
  • ng-style
    • 要素のstyleの設定を変数で動的に設定
  • ng-show
    • 要素の表示非表示を変数で動的に設定

などなど。たくさんあります→ディレクティブ。自分でオリジナルのdirectiveも作れるみたい。

Web APIからコンテンツの情報をとる時は「$http.jsonp」というサービスが用意されてるのでこれを叩くだけです。(AngularJS ver1.2.1までだとIE11で$http.jsonpが動かないみたいです、、、)
ページ内のコンテンツを動的に表示させる時、jQueryとかだとDOMをごにょごにょしてたのが、AngularJSだと変数に値を設定するだけなので、コードがすっきりするかもしれません。逆にスコープの変数が大量に出来てごちゃごちゃしてくる感じがしなくもないので、controllerは小分けにした方がいいのかも・・・?

MAXIMAGE2使ってみた

氷菓 京アニ公式で使ってるのをみかけてかっちょいいと思って以来、使ってみたかったので使いました。
MAXIMAGE2
背景に画像を設定した場合に、スクロールすると途切れちゃったり、ブラウザの画面サイズによって画像のはじっこしか表示されないなど、背景画像が変な表示のされ方しちゃいますよね。そんな時はMAXIMAGEがすごくよくて、画像のサイズをブラウザのサイズに合わせていい感じに調整してくれます。

使い方もとっても簡単で、

<div id="maximage">
    <img src="/anirank/images/back3.jpg" alt=""/>
</div>

とHTMLに書いて、

$(function () {
    $('#maximage').maximage({
        isBackground: true,
        overflow: 'auto',
        verticalAlign: 'top'
    });
});

javascriptを書くだけ。すごい!

今後

  • サーバーサイドをgolangにしたい
    • だがnico-api-clientのGo版を作るところからになったりH2も捨てないといけないかなぁというところで重い腰が上がらない
    • 検索なんとかしたい。一応Elasticsearchつかっているものの、もともとDBの代わりに使い始めた所存、スキーマ設計とかが適当すぎてあんまりよくない。
  • いいかげんランキングのやつ以外にも別のあそべるサービスつくりたい

ニコニコ動画APIのJavaライブラリ

昔作って放置してたやつのリポジトリを変えました。
完全に別のリポジトリになってまつ。

https://github.com/yfujita/nico-api-client


ちょこちょこ直しました。
API叩くたびに毎回HttpClientをクリエイトするとかいう感じになってたので使いまわすようにしたのと、コンストラクタでHttpClientを渡せるようにしました。

あと、検索メソッドとかのパラメータにニコ動のWebAPI用の文字列をそのまま渡してたのをenum化しました。
下でenum化してくれていたforkがあったので、参考にしました。
https://github.com/takryo/nico-api-client/commit/cfff5a9c7180690808496c3e2ce769b1cbac099b


歩行者信号のある横断歩道を渡る時の危険度順位

交通事故には気をつけたい。
横断歩道を渡る時の危険度は以下のような順位になるかと思う。

1位 左右確認せずに赤信号を渡る。
2位 左右確認せずに青信号を渡る。
3位 左右確認して青信号を渡る。
4位 左右確認して赤信号を渡る。


左右確認せずに赤信号を渡る
これは普通に危険。死ねる。

左右確認せずに青信号を渡る & 左右確認して青信号を渡る
この両者にはあんまり差はない。そもそも左右の車は止まっているので。
青信号が危険なのは前後の車が動いている中で、車側がきっと止まってくれるだろうという期待の元でわたらなければならないので、事故る事故らないは左折or右折してくる運転手の手に委ねられる。あんまり歩道確認しないバカが来た場合、アンラッキーと諦めましょう。

左右確認して赤信号を渡る
一番安全。左右からは車は来ていない。前後の車は止まっている。


青信号には気をつけましょう。

2014年 春アニメ ランキング

冬アニメの咲全国編が終わってしまって魂抜けてますが、アニメのランキングサイトを更新して春アニメを追加しました。

http://niconico.anirank.info/anirank/


更新する時は基本的にアニメのタイトルをオンラインでGUIから入力するだけなんですけど、最近はどんどんタイトル数が増えていってそれだけで1時間くらいかかってしまう(;・∀・)

メカクシティアクターズラブライブが強いみたいですね。今後ジョジョがどれだけ伸びてくるかでしょうか。

個人的には一週間フレンズの原作が好きなので楽しみにしています。


あと、今期は咲1期とログ・ホライズンの再放送がやるので、これも楽しみですね。ログホラの序盤はアカツキが大活躍で最高ですね!