2013/04/30

[Game]パズドラチャレンジ

ちょっと前に、パズドラをはじめたのですが、なんとスピンオフアプリがでたんですねー。

ガンホー・オンライン・エンターテイメントは4月15日、iOSとAndroid向けゲームアプリ「パズドラチャレンジ」の配信を開始した。

 パズドラチャレンジは、人気パズルRPG「パズル&ドラゴンズ」の公式スピンアウトアプリ。世界観やプレイ感はそのままに、本編とは一味違うミニゲームにチャレンジできるゲームアプリとなっている。

via:パズドラの公式スピンアウトアプリ「パズドラチャレンジ」が配信
最近、全然、やっていないが、データで引き継がれるのかなー?

すっげーやってみたい。

2013/04/29

[JavaScript][CoffeeScript]文字列の複数行について

確かJSだとNGだと思った「""」内改行だが、CoffeeScriptの場合、おkなようだ。

test = "hoge
 foo
 bar
"
//hoge foo bar
console.log(test)
これは便利だなー。

2013/04/28

[JavaScript][CoffeeScript]JSONの記述方法について

Arrayはすぐに書き方がわかったが、JSONは?

ためしに書いてみた。

hoge =
 bar:1
 foo:"hello"

console.log(hoge)
変数 = の後は、改行してインデントかまし、カンマ抜きでプロパティーをガンガン書いていけばよさげ。

2013/04/27

[JavaScript][CoffeeScript]lambda(無名)関数について

CoffeeScriptで無名関数はどうやって実装すればいいのだろうか?

公式マニュアルを読みながらためしに円の面積を求める関数を実装してみると下のようになりました。

circle = (x) -> Math.PI * x * x
console.log(circle 2)
([arg1,arg2,arg3,...]) -> #
でいけそうだ。

2013/04/26

[JavaScript][AngularJS]AngularJSって??

最近、色々なJS系のフレームワークを目にするがAngularJSというのが飛び込んできた。

グーグルは、JavaScriptでMVCアーキテクチャのアプリケーション開発をする際に便利な機能を備えたライブラリ「AngularJS 1.0」のリリースをブログで発表しました。

via:グーグル製のJavaScript MVCフレームワーク「AngularJS」、正式版が公開
といわけで、公式サイトが公開されているようです。
チュートリアルのビデオもあったので、見ながら勉強しようかな。

2013/04/25

[JavaScript][CoffeeScript]ブラウザ上でコンパイル

公式リファレンスを読んでいたら、ブラウザ上でコンパイルする方法があるようなので軽く組んで見ました。

<script src="//cdnjs.cloudflare.com/ajax/libs/coffee-script/1.6.2/coffee-script.min.js"></script>
<script type="text/coffeescript">
for i in [0...10]
 console.log(i)
</script>
ブラウザ上で実行した結果、確かにコンソールログから出力されました。

毎回、毎回、コンパイルするのが正直めんどいので、これは便利。

2013/04/24

[jQuery]onメソッドについて

どうやら公式マニュアルを読むとversion1.7以降は、bindメソッドの代わりにこちらが推奨されているようだ。

というわけで早速つかってみることに

<script type="text/javascript">
jQuery(function($){

 $("input").on('click',{test:'this is the sample'},function(e){
  console.log(e.data.test)
 });

});
</script>
<body>
<input type="button" value="Run">
</body>
結果は、this is sampleと表示されるのだが、onメソッドの第二引数にselectorを仕込むことができるそうだが、これ第三引数のdata引数が第二引数として設定された場合、どうやってselectorかどうか判断しているのだろうか?

dataを見るとAnythingとあるのだが。。。

2013/04/23

[Google]GoogleGlassのAPI(Mirror API)が公開

先週Googleはとうとうデベロッパー・ガイドその他Glassアプリの開発に必要な文書をリリースした。

via:Google Glassの開発環境が明らかに―現状では制限があるものの可能性はすばらしい
ずばりMirrorAPIとのことです。

確かに、「The Google Mirror API」というリファレンスがありました。

なんか、ざっと見た感じPHPや、Pythonをサポートしてそうな感じがするので、一般普及したら、なんかアプリ作りたいなー。

2013/04/22

[Twitter]Twitter for WebsitesからIE6とIE7が対象外に

なんと、

「ツイートボタン」が導入された2010年当時、まだInternet Explorer 6はベースライン上にありましたが、3年が経ち旧式化したということで、Twitterは「Twitter for Websites(TFW)」のサポート対象からIE6とIE7を外すことを決定しました。サポート期間は2013年5月13日までとなります。

Twitter for Websitesは、ウェブサイト上でTwitterの機能を用いることができるサービス。

via:IE6とIE7が「Twitter for Websites」のサポート対象から外れることに
サービスによってはIE7のアクセスが結構あるサイトが多いと思われるので、サーバーサイドで非表示・表示をわけるか、JavaScriptで判断する必要性がありそうですね。

2013/04/21

[JavaScript][CoffeeScript]1行のif-elseについて

昨日に続いて「条件分岐(if, else など)」を読むと、1行でif-else文が書けるとのことでさっそく試してみた。

hoge = true
bar = if hoge then "test1" else "test2"
console.log(bar)

hoge = false
bar = if hoge then "test1" else "test2"
console.log(bar)

#出力結果
#test1
#test2
上のif文は、変数が1つだけの評価だったが、文章で評価できるのか試してみた。
hoge = "hello"
bar = if hoge == "hello" then "test1" else "test2"
console.log(bar)

hoge = "hello"
bar = if hoge == "hello1" then "test1" else "test2"
console.log(bar)

#出力結果
#test1
#test2
どうやらできるみたい。

2013/04/20

[JavaScript][CoffeeScript]後置のifについて

条件分岐(if, else など)」を読むと、後置のifが使えるとあったがちょっとわからなかったので、実際にプログラムを組んでみることに。

bar = "test1"
hoge = false
bar = "test2" if hoge
console.log(bar)
hoge = true
bar = "test3" if hoge
console.log(bar)
#出力結果
#test1
#test3
で上のケースでは、if文の後が、一語だったので、文章でも成り立つか確認してみた。
bar = "test1"
hoge = "hello"
bar = "test2" if hoge == "hello"
console.log(bar)
bar = "test3" if hoge == "hello1"
console.log(bar)
#出力結果
#test2
#test2
どうやら文章でも成立するみたいです。

2013/04/19

[JavaScript][CoffeeScript]if elseについて

プログラムdeタマゴさんのif,unless,else」を読んでもJavaScriptでいうところの

else if()
に相当する構文がわからなかったので調べてみることに。

CoffeeScript.orgを読むと、単純にしたのように書けばいいことがわかりました。

else if #条件
そんなに深く考えなくてよかったんですね。

2013/04/18

[JavaScript][CoffeeScript]文字列内の式の評価

どうやらCoffeeScriptではPHPのように文字列内に変数が存在する場合、それを評価してくれる方法があるようだ。

下のようにプログラムを組んでみる。

hoge = "Hello CoffeeScript"
foo = "#{hoge}"
bar = '#{hoge}'
console.log(hoge)
console.log(bar)
すると出力結果は下のようになりました。
// Generated by CoffeeScript 1.5.0
var bar, foo, hoge;

hoge = "Hello CoffeeScript";

foo = "" + hoge;

bar = '#{hoge}';

console.log(hoge);

console.log(bar);
ブラウザ上で実行してみると、以下のように表示されました。
Hello CoffeeScript
#{hoge}
まとめると、ダブルクォーテーション内で「#{}」があった場合、それをevaluateしてくれるようです。

参考
プログラムdeタマゴさんの式展開(String Interpolation)

2013/04/17

[JavaScript][CoffeeScript]コンパイル方法

肝心のCoffeeScriptのコンパイル方法を書かなかったような気がする。

「プログラムdeタマゴ」さんのコンパイルを読むと、コマンドプロンプトでコンパイルしたいところまでCDで移動して、以下のようなコマンドを打てばおk

coffee -cb hoge.coffee
hoge.coffeeの部分は実際にコンパイルしたいファイル名です。

2013/04/16

[本]大人げない大人になれ! (文庫版)

購入。
大人げない大人になれ! (新潮文庫)
大人げない大人になれ!
成毛 眞

はじめに
第1章 大人げなさが求められる時代がきた
本当に大人げない人々
ノーベル賞受賞者の二人に一人は可愛い
子供のようなビル・ゲイツ
私が出会った大人げない人たち
大人になってしまったマイクロソフト
グーグルは子供のままでいられるか
日本の大企業に大人げなさはあるか
日本人はおバカタレントがお好き
ネオテニーという進化論
大人げなさが作り出す80兆円市場!
第2章 大人げないとはどういうことか
夢中になることが最高の才能
興味があれば何でもやってみる
あまのじゃくの価値観
知らないことは強みである
クリエイティビティを生み出すおバカ
子供は最強のセールスマン
常に主役になる子供
変化を恐れるフツウの大人たち
決まり文句が大好きな大人
プロほどルーティンにはまりやすい
第3章 やりたいようにやればいい
我慢なんてしなくていい
目標を持ってはいけない
あるがままでいることが個性
人は子供のままでいる人に憧れる
おじさんの言うことは9割が間違い
失敗しないためのただ一つの方法
期限ぎりぎり体質は悪くない
寄り道をしてゴミ探し
空気を読んで空気のような人になる
自分を変えるなんて無理
第4章 大人げなく楽しく生きる方法 実践編
子供の頃の趣味を維持しよう
大人を怒らせよう
楽しむための仕掛けをつくる
キャリアプランは持たない
英会話もいらない
資格を頼りにするのはやめよう
極端なお金の使い方をする
時間の使い方は一点集中浮気型
神話をつくろう
子供のように読書をしよう
第5章 大人げなさを取り戻すための本棚
人生を大人げなく楽しむための本
好きなことを突き詰めた本
常識を覆した本
それでもビジネス書が読みたいのなら
役立たないが愛すべき本
おわりに
遊んで暮らそう
文庫版おわりに

via:目次
以前、「大人げない大人になれ!」という本を読んだのですが、今回は、その文庫版。

文庫版は、月刊誌「フォーサイト」に連載されたコラム「遊んで暮らそう」からの抜粋と「文庫版おわりに」が追加されています。

当然のことながら文庫なので非常にコンパクトで持ちやすいし、本棚にも優しいのが素敵。

2013/04/15

[Google App Engine][iOS]ver1.7.7からPushNotificationがサポートに

ずーっと、Add Support for Apple Push Notification Serviceのスレッドを見ながら、いつだろ、いつだろと期待しておりました。

で、先日の下の情報

Outbound sockets moved to Preview
Outbound sockets is now in preview in this release for Java and Python. With outbound sockets, billing-enabled App Engine applications can now make outbound connections with TCP or UDP sockets. This allows developers to build applications that weren’t previously possible on App Engine, such as IMAP or DNS clients.

In the Python runtime, we’ve added support for the Python SSL Library, so you can now open secure connections to remote services such as Apple’s Push Notification service. Similarly, Java developers can now use the javax.net.ssl package to make outbound SSL connections.

via:App Engine 1.7.7 Released
というわけで、スレッドで問い合わせたら公式にgoogleの方から連絡があり、「サポートされました」とのこと。

やりましたー。これで今、リリースしているiOSアプリにPush Notificationを実装することができるぞと。

ちなみに、そのときのやりとりを下に掲載。

#136 mai.musi...@gmail.com
Perhaps,from version 1.7.7,Can I connect to the Apple Push Notification service ?
http://googleappengine.blogspot.jp/2013/04/app-engine-177-released.html


Project Member #137 iw...@google.com
1.7.7 supports sockets and SSL with client certificates in Python/Java/Go, so this is now possible.

via:Add Support for Apple Push Notification Service

2013/04/13

[jQuery]mouseoutとmouseoverとmouseenterとmouseleave

jQueryを本格的に使うようになってから気になっていたのですが、mouseoutとmouseoverとmouseenterとmouseleaveの違いってなんなのだろうか?

DOM Leve3 イベント mouseover/mouseout, mouseenter/mouseleave それぞれの違いについて」を読んでも、なかなか理解できなかったので(エントリーが悪いというわけでは決してありません。)実際に下のようにコードを組んでみました。

<div id="container" style="border:solid 1px red;height:100px;width:100px;padding:10px;">
 <span id="main" style="border:solid 1px blue;width:80px;">Test<br>Test<br>Test</span>
</div>
<script>
jQuery(function($){

 $('#container').mouseout(function(e){
  e.preventDefault();
  console.log('mouseout')
 });

 $('#container').mouseover(function(e){
  e.preventDefault();
  console.log('mouseover')
 });


 $('#container').mouseenter(function(e){
  e.preventDefault();
  console.log('mouseenter')
 });

 $('#container').mouseleave(function(e){
  e.preventDefault();
  console.log('mouseleave')
 });
});

</script>
で、実行してみた結果、spanタグにカーソルが入った場合、mouseoutとmouseoverの順で反応し、spanタグからカーソルがはずれた場合もmouseoutとmouseoverの順で反応しました。

一方で、divタグにカーソルが入った場合、mouseoverとmouseenterの順で反応し、divタグからカーソルが外れた場合、mouseoutとmouseleaveの順で反応しました。

ただ純粋にdivタグにカーソルが入ったorはずれたを探知したい場合は、「mouseenter」と「mouseleave」を使えばよさそうです。

2013/04/12

[JavaScript]JavaScript専用のCDN

jQueryやprototypejsのCDNは、Google CDNが有名ですが、サポートされているライブラリが少なかったりと不満。

そこで、JavaScriptのフレームワークをいっぱい集めた専用CDNがないかなっと思って調べたらありましたー。

ずばり、cdnjs.com
 photo cdnjs_zps545fd531.png

JSだけではなくCSSもサポートされているので便利なんですが、GoogleReaderのように終了してしまう可能性もあるので、サービスを作るときに使うか悩むところなのですが、デバッグがちょっと試したいときに便利かなと。

2013/04/11

[JavaScript][CoffeeScript]UglifyJSって何?

ちょっと「UglifyJS」という名前を見たので、その正体とは?

Node.js でサクッと圧縮! JavaScript 圧縮ライブラリ『UglifyJS』の使い方」によると、どうやらNodeJS上で動くJavaScript 圧縮ライブラリのようです。

ちなみにインストールは下記のようにターミナル上で実行することで正常終了しました。

npm install uglify-js
インストールはできたけど、肝心のどうやって圧縮をかけるのかについては、まだ勉強途中。

2013/04/10

[JavaScript][CoffeeScript]Cakeでコンパイルエラー

ターミナルからcakeファイルがあるところまでcdコマンドで移動して、下のようにコマンド打ってもなぜかエラーがでてしまう。

cake
でなんでだろう?っていくつか調べたら、「npmでインストールしたライブラリが動かないと思ったらNODE_PATHを設定し忘れていた(Windows)」でWindows上だと「NODE_PATH」環境変数の設定が必要とのことで、実際にしたのように設定したら動きました。
変数名:NODE_PATH
値:C:\Users\ユーザー名\AppData\Roaming\npm\node_modules
備忘録として残している側面もあり後々、また見返したときに忘れないようにここでの環境変数は、PCクライアントの環境変数のことです。

2013/04/09

[IT用語]Makefileとは?

今、CakeFileの使い方 -CoffeeScript-を読みながらCoffeeScriptを使ってMakefileを通しつつコンパイルする方法を勉強しているのですが、同エントリーにでてくる「Makefile」ってそもそも何??

調べてみると、下のようなエントリーを発見。

Makefileには、ソフトウェアをコンパイルするための手順やインストールするファイルなどが記されています。Makefileの存在するディレクトリ内でmakeコマンドを実行すると、Makefileの記述に基づいてソースがコンパイルされ、実行ファイルが生成されます。

via:makefileとは
なるほどー。そういうことだったんですねー。

普段、何も考えずにコンパイルをしているので、これは勉強になりました。
と同時に、もっと、unixやlinuxを触らないとなーっと危機感を覚えたり。

2013/04/08

[jQuery]stopメソッド使用時のコールバックについて

下のようにstopメソッドを実行した場合、animateメソッドで仕込んでいたコールバックが発火するというのに今更ながら気がつきました。

<div id="container"
    style="border:solid 1px red;height:100px;width:100px;">
</div>
<div>
 <input type="button" value="Stop" id="lv_stop">
</div>
<script>
jQuery(function($){
 var nTimerId = setTimeout(function(){

  $('#container').animate({
   'marginLeft':'1000px'
  },5000,function(){
   console.log('hoge')
  });

  $('#lv_stop').bind('click',function(event){
   event.preventDefault();
   $('#container').stop(true,true);
  });

 },2000);
});
</script>
もちろん、下のソースでもキックされます。
<div id="container"
    style="border:solid 1px red;height:100px;width:100px;">
</div>
<div>
 <input type="button" value="Stop" id="lv_stop">
</div>
<script>
jQuery(function($){
 var nTimerId = setTimeout(function(){

  $('#container').animate({
   'marginLeft':'1000px'
  },5000,function(){
   console.log('hoge')
  });

  $('#lv_stop').bind('click',function(event){
   event.preventDefault();
   $('#container').stop(false,true);
  });

 },2000);
});
</script>
当初、コールされるとはまったく思っていなかったので、今後、実装する場合に、気をつけたいですね。

2013/04/07

[本]金がないなら知恵をしぼれ!ビジネス着想100本ノック

読了
金がないなら知恵をしぼれ!ビジネス着想100本ノック
金がないなら知恵をしぼれ!ビジネス着想100本ノック
岡崎太郎

Part1 マーケティング脳を目覚めさせる100本ノック
Chapter1 未開のマーケットを見落とすな
Chapter2 価格とコストの根拠なき神話を打ち破れ
Chapter3 不満・疑問・違和感の感度を高めよ
Chapter4 時代の変化を甘く見るな
Chapter5 エンタテインメントな発想を解き放て
Part2 好奇心を高めるトレーニング

via:目次
素敵。

とてもいい頭の体操になりました。一度だけ読むのではなく定期的に見返したい。

最初は数字を意識せず、徐々に数字をベースにした、ずばりフェルミ推定よりの話に持っていっているところもいい。

2013/04/06

[Google]Google Glassの紹介動画


SXSWにおけるGoogle Glassの紹介セッション全50分がYouTubeに登場, とくにデベロッパは必見
を読んでその紹介VTRをエンベッドしたが、ちょっと、いや、大分欲しくなってきたぞ。

これを受けてappleがどう動くが気になるなー。

ジョブズがなくなる前に、今後の商品を残してくれているとうれしいなーっと思ったり。

でも、それだと、結局、ジョブズ頼みになってしまっているので、apple好きとしては心配と言えば心配だったりもするのですが。

2013/04/05

[Facebook]Facebook Home

Androidの上にFacebookの機能が乗っかった独自のスマホをFacebook自身がリリースすると思っていたのだが、まさかの展開。

シンプルさの中に「狙い」を詰め込んだFacebook Home。その動きをビデオでチェック

こうなるとブランド名だけ付与させて端末を売るという手もありそうだなーっと妄想したり。


追記:2013年4月14日
google playにアクセスしたんだけど、IS06だとインストールできないみたい><

2013/04/04

[jQuery]delayメソッド

jQueryである特定のメソッドを送らせて実行させることができるようです。

ずばりdelayメソッドなんですが、使い方は、下のように組めばおkのようです。

$('#hoge').delay(1000).toggle("slow");
setTimeoutやsetIntervalとかと組み合わせて使うと面白いかも。

2013/04/03

[Google Maps]Google Maps Engine

なかなかおもしろい機能がリリースされました。

Googleは何年も前からユーザーが手持ちの地理空間データを利用してカスタム地図が作成できるプラットフォームとしてGoogle Maps Engineを提供してきた。

via:Google、Maps Engine Liteベータ版をリリース―高度なカスタム・マップが簡単に作れる
ちょっと変化球かもしれないが、これ、ゲームの地図とかに使えないのだろうか?