Web APIサーバーをpython+falconで構築する

Web APIが熱いらしい。Web APIとはhttp://hoge/dataみたいなURLにhttpのGETメソッドをやると、レスポンスでjsonデータを返してくれるようなやつ。TwitterのAPIでタイムラインを取得するようなやつはまさにこれを使っている。RESTなAPIというらしい。言葉はどうでもいい。

“Web APIサーバーをpython+falconで構築する” の続きを読む

ピアソン相関係数とk-means法を使って嗜好の似ている人を特定するプログラムをpythonでやりたい

映画サイトとかでレビューってあるじゃない? あれのユーザーごとのレビューの評価データを集めて、自分と似てる人にオススメの映画紹介して欲しくない? それをpythonでやれたら素敵じゃない? という事でpythonでピアソン相関係数を用いて類似度を計算し、自分と似てる人を特定するというプログラムを作ってみた。

“ピアソン相関係数とk-means法を使って嗜好の似ている人を特定するプログラムをpythonでやりたい” の続きを読む

Unity5でメッセージ文を表示する方法

東北ずん子ちゃんのアクションRPGを作ろうとしてますが、メッセージ文を表示する方法がググってもなかなかこれだ! というのが出てこない。なので実装したソースを下記にメモ書き。「a」キーが押された時に下記のようにメッセージ文を出す実装をする。


DispMsg.cs

このスクリプトをプレイヤーにアタッチさせて、プレイヤーを動かすスクリプトPlayer.cs的なもので下記のようにdispMessage関数を叩くようにする。

上記ソースは「a」キーが押された時に、dispMessage関数で指定したメッセージを表示させる。
これをNPCとぶつかっている時つまりonCollisionEnter中で実装してやると、NPCと接触している時に任意の会話を喋らせたりできる。んでNPC側にtagを定義しておいて、tagごとにメッセージを変えれば、Player.cs中にそのマップのNPCの会話文を全て入れたりできる。と思う。
ただ、おそらくこういうのはスクラッチから書くのは良くない気がする。宴とか便利なライブラリを使ったほうが良い気もしている。まあでもこれでもいけそうなのでひとまずはこれで。

ドットインストールというプログラミング学習サイトが良すぎる件

 つぎつぎとやったことない種類のプログラミングをやらされる仕事してます。Y平です。
 大学と就職活動のインターンでCとJavaはかじったけれども。PythonやらJavascript、PHPやらC#。気軽に使えるとは言うもののあんまりやったことない言語って多い。で、「さあこの言語やってみよう」っつって本買ってやろうとするんだけれども、だいたい3章ぐらいで(‘A`)マンドクセってなるのは僕だけじゃないはず。つっても挫折しちゃう理由って明確で、要はこれやったら何できるの? っていうのが分からず、基本の文法覚えるだけじゃつまんないんだよね。
 そんな中。Unityでゲーム作ろうと思ってたときに「何かいい学習法ねーかなー」とネットサーフィンしてたら辿りついたのが下記サイト。
 ドットインストール - 3分動画でマスターする プログラミング学習サイト –
 いいポイントが5つある。
・説明が全て動画
・ゼロから実際に動くところまで解説してくれる
・1レッスンが3分
・このレッスンやったら何ができるかってのを必ず「最初に」説明してくれる
・レッスンの進捗管理をしてくれる
説明が全て動画
 本だとたまに説明が悪くてどこをどうやって操作したらいいのか分からないところがある。このアイコンを押してーとかこのオブジェクトをドラッグ&ドロップしてーとか本では説明しづらいところも動画だからすぐ分かる。
ゼロから実際に動くところまで解説してくれる
 海外の書籍を和訳した本とかに多いんだけど、そのままコーディングしても動かない場合が多々ある。その点、講師の人が空のファイルから実際にコーディングして動くところまで見せてくれるので、真似すれば絶対に動く。これ重要。マジで。
 「集合知プログラミング」の本とか誤植が多くて、どこが間違ってるのかまとめサイトになってたりするからね。初級者だと間違ってるところを探してるうちにプログラミングする気失せると思う。
このレッスンやったら何ができるかってのを必ず「最初に」説明してくれる
 バブルソートを使う場面なんて日常の開発でほとんど出会わないでしょ?(日常の開発ってなんだ?) そういうすぐにモノに結びつかないプログラミングをやってると大体飽きる。学生がプログラミングで挫折するのは足し算引き算できて何が嬉しいの? ビットシフトして何になるの? newしてHumanクラスが作れて何が嬉しいの? って感じでつまんなくなるからだと思う。
 なので目に見える形で「こういうことができます!」って明言してくれるのはありがたい。レッスン受けようという気になる。
レッスンの進捗管理をしてくれる
 地味にこれが大きい。本だけ読んでると、今自分がどのぐらいこの言語に精通したかってのは分からない。ちょっとはできるようになってきたかなあ程度。理解度が数値化されないと結構不安だったりする。
 ドットインストールのレッスンは受講完了ボタンなんてものが存在する。完了ボタンを押すと今自分が何のレッスンをどの程度終えたかをマイページで可視化してくれる。おお、俺は今Javascript20%ぐらい分かってるぞみたいな。しかも週1で「あなたは今週○○レッスンを受講し○○個完了してますよ」みたいにメールしてくれるんだよね。僕こういうの好きなんだよ。進研ゼミみたいで。
 というわけで、初級者でちょっとあの言語に挑戦してみようっていう人や、中級者でもう一度色んな言語おさらいしときたいって人にかなりオススメどす。僕は夢中でやってたらここ2週間でHTMLのゲームやら、プレイステーションのゲームやらが作れるようになった。
 ちなみに自分の学習状況を公開する事もできる。
 Y平の学習状況
 これを見れば今まで僕が何を学んできて何ができるかが分かる。ポートフォリオ的な感じでも使える様な気がするので活用していきたい。

enchant.jsを使ってインベーダーゲームを作る

 仕事でゲームを作る必要が出てきたのでちょいと勉強していた。勉強も兼ねてenchant.jsというゲームエンジンを使ってjavascriptベースのWebゲームを作ってみた。


Y平のインベーダーテストゲーム(リンク先でプレイできます)
inveder_test.png

遊び方:
 弾を撃って5体の敵を倒すだけのゲーム。とてもゲームとは言えません。テストだもん。
操作方法(PCでしかプレイできません):
 方向キー:移動
 Zボタン:弾発射

 ゴミみたいなゲームだけど、enchant.jsを使うとこんなゲームが20分ぐらいで作れる。
 ちょっとjavascriptやHTMLいじった人なら下記の入門動画を観るとすぐに理解出来ると思う。1レッスン3分でとっても分かりやすいのでおすすめ。
http://dotinstall.com/lessons/basic_enchant_js_v2
 いちいちこれをC言語やJavaでやってたら発狂するからね。enchant.jsええわー。
 ちなみにenchant.jsは下記でコンテストみたいなのやってる。楽しいゲーム&ソースコードが公開されているのでとても勉強になりやす。
http://9leap.net/
 これにMapつけるやり方もすぐできそう。デザエモンいらずですなあ(懐)。