Pages

2012年4月2日月曜日

エイプリルフールが終わりまして

4月になりました.
すっかり暖かくなって,桜の季節です.
近所は梅しか咲いていませんが(笑
駅前では,若々しいきれいなスーツを着た方を多数見かけました.
新社会人の方,いってらっしゃい!

私はもう少しの間は学生なので,のんびりしてます.
朝からミスタードーナッツのモーニングセットを頼んだりしてます.
優雅だね!
\(^o^)/うあぁーだめだこりゃ

では,また.



さて,話は変わりますが,プログラミングのメモはこちらのブログに移すことにしました.
本当にメモだけです.

2012年3月31日土曜日

JavaScriptメモ その4

JavaScriptメモ その4!
明日ぐらいに,プログラムのメモ書きは違うブログに移します.
メモ書きしかないけど(笑).

・ブラウザを判別するための,userAgentプロパティ

console.log(window.navigator.userAgent);

=> Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.142 Safari/535.19

・ブラウザのプラグイン一覧

// プラグイン一覧 navigator.plugins
for(var i=0; i<navigator.plugins.length; i++){
 console.log(navigator.plugins[i].name);
}

=>
Remoting Viewer
Native Client
Chrome PDF Viewer
Shockwave Flash
Java アプレットプラグイン
QuickTime Plug-in 7.7.1


・ブラウザの対応ファイル形式一覧(navigator.mimeTypes)

// ブラウザの対応ファイル形式一覧 navigator.mimeTypes
console.log("対応ファイル形式一覧");
for(var i=0; i<navigator.mimeTypes.length; i++){
 console.log(navigator.mimeTypes[i].type);
}

=>
application/vnd.chromium.remoting-viewer
pepper-application/x-chromoting
application/x-nacl
application/pdf
application/x-google-chrome-print-preview-pdf
application/x-shockwave-flash
......

・locationオブジェクトからURL情報の抽出

// http://localhost:8888/test/sample1.html?param=dondokoへのアクセス
console.log(location.href);
=> http://localhost:8888/test/sample1.html?param=dondoko

console.log(location.protocol);
=>http:

console.log(location.origin);
=>http://localhost:8888

console.log(location.pathname);
=>/test/sample1.html

console.log(location.search);
=>param=dondoko


JavaScriptメモ その3

JavaScriptメモ その3!
Web上にメモしておかないと,いざという時使えないんですよ…….
あんまり本とか持ち歩かないし.


・クラス変数・クラス関数
// 税率関数となるオブジェクト
function Tax(){
}
// Taxのクラス変数とクラス関数
Tax.per = 0.05;
Tax.taxprice = function(price){
return price * (1+Tax.per);
}
Tax.untaxprice = function(price){
return (price / (1+Tax.per)).toFixed(1);
}

price = 1000;
console.log(Tax.taxprice(price));
console.log(Tax.untaxprice(price));


・プロトタイプ宣言…インスタンス毎に区別する必要が無いプロパティを隔離する

function Book(title, price){
//インスタンス毎に区別が必要なプロパティ
this.title=title;
this.price=price;
}

//区別が不必要なプロパティ
Book.prototype.tax = 1.05;
Book.prototype.withtax = function(){ return this.price * this.tax};

上記のwithtax関数より,prototype関数内では自身のインスタンスを参照するthisも使用できます.
また,this.taxで参照できる通り,prototypeで宣言された変数・関数はprototypeを省いて参照します.

・ローカル変数・関数によるプロパティへのアクセス制限
Javaでいうprivate修飾子によるアクセス制限と似ていますね.
プロパティではなく,ローカル変数に保存した値を関数で取得しています.
ただし,プロパティではないため,thisで参照することが不可能です.
function Book(t,p){
var title = t;
var price = p;

this.getTitle = function(){return title};
this.getPrice = function(){return price};
}
book = new Book("専門書", 1000);
console.log(book.getTitle());
console.log(book.getPrice());

2012年3月30日金曜日

JavaScriptメモ その2

JavaScript(以下js)のメモ その2.


・encodeURI(String)…引数のASCII文字以外をエスケープしたものに変換.
ex. var uri = encodeUIR("http://localhost/sample.html?param=ほととぎす");
result uri→ http://localhost/sample.html?param=%E3%81%BB%E3%81%A8%E3%81%A8%E3%81%8E%E3%81%99


・コンストラクタの作成
ex.
// Bookオブジェクトのコンストラクタ
function Book(title, price){
this.title=title;
this.price=price;
this.withtax = function(){return this.price*1.05};
}

books =[];
books[0] = new Book("なぞなぞ", 500);
books[1] = new Book("攻略本", 1200);
for(var i=0; i console.log("タイトル: "+ books[i].title);
console.log("値段: "+ books[i].withtax());
}

ゲーミフィケーションについて

今回はゲーミフィケーションについて書きます.

ゲーミフィケーションという言葉は聞いたことがあるでしょうか?
私が初めてゲーミフィケーションという言葉を聞いたのは,NHKが放送した「世界ゲーム革命」という番組の中でした.
最近,このゲーミフィケーションを意識するようになりました.

・ゲーミフィケーションとは何か?
簡単に説明すると,ゲームの要素をゲーム以外の活動に利用することです[1].
ちょっと良く分かんないですね.
もう少し掘り下げていきましょう.

・ゲームの要素とは何か?
私が思いつくゲームの要素とは,キャラクターの上達,レベルアップ,経験値,対戦…とかでしょうか.
ゲームソフトで言うと,牧場物語では農場の発展,ポケモンでは進化,FPSでは共同ミッションなどもゲームの要素が含まれてそうです.

・具体的にゲーミフィケーションってどんなものなの?
「Nike+」の結果表示画面
ゲームの要素をゲーム以外の活動に利用する例として,Nike+を紹介します.
Nike+とは,ナイキが提供するランニング管理サービスのことです.
Nike+に登録すると,自身が走った距離や時間、消費カロリーなどの情報が蓄積されます.
これらをグラフにして見ることも可能です.
いわゆるライフログサービスですね.
更にNike+には,蓄積したデータを使用して他人と競走することができます.
私はまだ他人と競走する機能を使用していませんが,競走グループの中でビリになると「It」と呼ばれる称号がつくようです.(Itでどういう意味なんだろう……)
このItの称号を外すために,他人より走るようになるとか.
競走ではなくて競争ですね(笑).
このNike+サービスの中にあるゲーム要素は,自身の走行データをいつでも閲覧できること,データを使用して他人と競争できることでしょうか.
私もNike+サービスを使い始めたのですが,一人で走るより面白い点がいくつか発見したので,別の記事で紹介したいと思います.

・ゲーミフィケーションを使うとどうなるの?
ある活動にゲームの要素の組み込みことで,ユーザの内発的動機づけ(ユーザ自身が活動に対する動機づけを行うこと)を引き起こすことができます.
しかし,全ての活動に対してゲームの要素を組み込めるわけではありません.

・まとめ
ゲーミフィケーションをあらゆる活動に適用することで,ユーザは内発的動機づけを行いやすくなります.
この内発的動機付けを行うと,ユーザは活動に対して飽きにくくなります.
すると,ユーザの活動時間が増えます.
単純ですよね?
しかし,ユーザの活動時間が増やす方法は,いろんな人が欲しているのではないでしょうか?

今回の記事は,井上明人さんが 執筆したゲーミフィケーション―<ゲーム>がビジネスを変えるを拝読して書きました.
上記の本は,ゲーミフィケーションという概念を分かりやすく説明しているので,ゲーミフィケーションを知りたい方にはおすすめです.
私の稚拙な文章では味わえないような,ゲーミフィケーションとの出会いがあると思います.
他には,4gamerにもゲーミフィケーションに関する記事があります.

それでは、また.


----------
[1]井上明人: ゲーミフィケーション―<ゲーム>がビジネスを変える, NHK出版(2012-1-25)

2012年3月27日火曜日

JavaScriptメモ その1

最近,Webアプリケーションを作成するためにjavascriptに触れることが多くなってきました.
今まではJava言語をメインで使用してきたため,javascriptのメソッドや変数の管理がとても難しく感じます.
(500行を超えると,javascirptファイルを封印したくなります……)

何か打開策は無いものか……と解決法を探したところ,
わかった気になるjs開発手法を見つけたため参考にさせて頂きました.

javascirptファイルを結合させるなど,発想が面白いと思ったのは私がjavascirpt初心者だからですかね?
ちょっとjavascirptに関して知識がついた気がします.
根本的な解決にはなってない気がするけど…….

ま、いーよね.

2012年3月17日土曜日

GoogleAppEngineのローカルサーバーにLAN内からアクセス

ちょっと詰まったのでメモ!

GAEのローカルサーバーにLAN内からアクセスしようとしたところ,うまく通信できず.
Tomcatのローカルサーバにはアクセスできたため,ファイアウォールではなくGAEの問題と判断して検索を行ったところ
EclipseのGAEローカルサーバーにlocalhost以外からアクセスする方法を発見.
上記のサイトに書かれている通り,http://[ローカルIP]:8888/にアクセスするためには,Eclipseから実行→実行の構成→引数から--port=8888 --address=[ローカルIP] [workspace]を指定して実行.
これでLAN内からのアクセスが可能になる.