Webエンジニアのためのデータベース技術[実践]入門 読みました。
インデックスのような基礎的なところから、
NoSQLのような新しい技術の解説や、
MySQLのソースコードの読み方といった深い解説もあり、
データベースに関しての基礎は一通り学べる本であると思います。
SQLの構文の解説のような超初心者向けの解説はありませんでしたが、
データベースに苦手意識があった自分としてはとても勉強になりました。
データベースの基礎を身につけるにはこの1冊で十分なのではないかと思いました。
2012年4月1日日曜日
2012年3月25日日曜日
あなたがSonyTabletを買うべき5つの理由
みんな「新しいiPad」に夢中のようですが、
日本人としては Sony Tabletは無視できない存在です。
ということで、今更ですがiPadブームに便乗してSony Tabletを買いました。
使ってみて、ボクなりにSony Tabletの良いところを考えてみました。
本当は、赤外線でリモコンの役割を果たすとか、
DLNA対応で、Playerとして利用できるとかいろいろあるのですが、
家にテレビとか情報家電系のものがないので試すことができないので、
試した方は使い勝手を教えてください。
日本人としては Sony Tabletは無視できない存在です。
ということで、今更ですがiPadブームに便乗してSony Tabletを買いました。
使ってみて、ボクなりにSony Tabletの良いところを考えてみました。
- すぐ買える
- Androidであること
- ソニーのサービスが使える
- 「さばドル」のまゆゆの限定写真が見える
- スリルが味わえる
今、新しいiPadを買おうとしても、どこも売り切れ状態で、予約しないとけません。
すぐにタブレット端末を使いたいと思って、思っても手に入りません。
そこで、Sony Tabletです。
すぐにSony Tabletコーナーに行きましょう。在庫がかならずあります。
店員さんもiPadの方に夢中で、Sony Tabletはあんまり売る気が無いので声もかけてくれません。
お店で端末をいくらでもいじり倒せます。
これは重要です。
Androidはオープンなので、今後たくさんのものに搭載されていきます。
AndroidのUIがいろんなデバイスの標準になるのです。
iOSなんて、たかだかiPod/iPhone/IPadぐらいでしょうが、
Androidはスマフォ・タブレット以外にもTVや、カーナビ、ゴーグルや自転車、ロボットまでにも搭載されるのです。
Sonyの「Video Unlimited」が使えるので、
Sony Tabletで映画もその場で観れます。
購入とレンタルがあるようです。(個人的にあんまり観たい映画はありませんでしたが)
「PlayStation Store」も入っているので、PSのゲームも買ってSony Tabletでプレイすることができます。
両方ともSony Entertainment Networkのアカウントを使えます。
あとは、「Reader」で電子書籍も楽しむことができます。
ちなみに、「Reader」はMy Sony IDのアカウントが必要です。
これはすごいです。
渡辺麻友主演のドラマ「さばドル」の限定写真が見れるのです!
ちなみに、見るためには「ネットフレーム by Life-X」というアプリを
なぜか、Androidマーケットからダウンロードする必要があります。
ちなみに、Life-Xには、My Sony IDのアカウントが必要です。
ソニー製品です。
いわゆる「ソニータイマー」の存在が噂されるほどの品質ですw
いつ壊れるか、はらはらドキドキのスリルが味わえます。
(ちなみに、ボクのPSPは1年ぐらいで○ボタンが効かなくなってしまいました。。。)
また、ソニーのサービスに個人情報をさらにまたスリル満点です。
一度PSNのIDを流出させましたからね。
ドキドキですよね。
本当は、赤外線でリモコンの役割を果たすとか、
DLNA対応で、Playerとして利用できるとかいろいろあるのですが、
家にテレビとか情報家電系のものがないので試すことができないので、
試した方は使い勝手を教えてください。
2011年11月13日日曜日
CoffeeScriptを学ぶ(2)
JavaScriptはプロトタイプベースのオブジェクト指向だったので、
クラスという概念はなかったのですが、
CoffeeScriptには、クラスという概念があります。
メソッドは、クラスのブロックで
これをJavaScriptに変換すると、下記のようになります。
CoffeeScriptのページのサンプルの例を持ってくると
コンストラクタは "constructor:"で定義できます。
@xxxはインスタンス変数ですね。
ちなみに#{}を使えば、文字列のなかで変数を評価して値を使用できます。(Rubyと同じ構文ですね。)
superでスーパークラスのメソッドを呼び出すことができます。
やっぱりクラスを使うと、比較的大きなコードを書くときは、考えやすくて便利ですよね。
クラスという概念はなかったのですが、
CoffeeScriptには、クラスという概念があります。
class Hello
method: ->
alert "hello"
"class クラス名"でクラスを宣言できます。メソッドは、クラスのブロックで
メソッド名: (引数) -> メソッド本体と書きます。
これをJavaScriptに変換すると、下記のようになります。
var Hello;
Hello = (function() {
function Hello() {}
Hello.prototype.method = function() {
return alert("hello");
};
return Hello;
})();
CoffeeScriptのページのサンプルの例を持ってくると
class Animal
constructor: (@name) ->
move: (meters) ->
alert @name + " moved #{meters}m."
Animalとうクラスです。コンストラクタは "constructor:"で定義できます。
@xxxはインスタンス変数ですね。
ちなみに#{}を使えば、文字列のなかで変数を評価して値を使用できます。(Rubyと同じ構文ですね。)
class Snake extends Animal
move: ->
alert "Slithering..."
super 5
class Horse extends Animal
move: ->
alert "Galloping..."
super 45
継承はextendsを使います。superでスーパークラスのメソッドを呼び出すことができます。
やっぱりクラスを使うと、比較的大きなコードを書くときは、考えやすくて便利ですよね。
CoffeeScriptを学ぶ
CoffeeScriptはJvaScriptに変換するための言語で、
Pythonのような文法を持っているのが特徴のようです。
このCoffeeScriptを学ぼうと思い、いくつかのサンプルを書いてみました。
まず基本、FizzBuzzです。
(下記はalertで書いたので実行すると大変なことになるから気をつけてね)
インデントでブロックにすると、やっぱり見やすいですよね。
また、メソッドも()がつかないです。
これをJavaScriptに変換すると、以下のようになります。
Pythonのような文法を持っているのが特徴のようです。
このCoffeeScriptを学ぼうと思い、いくつかのサンプルを書いてみました。
まず基本、FizzBuzzです。
(下記はalertで書いたので実行すると大変なことになるから気をつけてね)
for a in [1..100]
if a%15 == 0
alert "FizzBuzz"
else if a%3 == 0
alert "Fizz"
else if a%5 == 0
alert "Buzz"
else
alert a
特徴としては、Pythonのようにインデントがブロックを表しています。インデントでブロックにすると、やっぱり見やすいですよね。
また、メソッドも()がつかないです。
これをJavaScriptに変換すると、以下のようになります。
var a;
for (a = 1; a <= 100; a++) {
if (a % 15 === 0) {
alert("fizzbuzz");
} else if (a % 3 === 0) {
alert("fizz");
} else if (a % 5 === 0) {
alert("buzz");
} else {
alert(a);
}
}
今度はクイックソートを実装してみます。
関数は
関数名 -> (引数) (関数本体)のです。 CoffeeScriptはwhile文が使えます
sort = (array, l, r) ->
mid = ~~(l+r/2)
return if l >= r
i = l
j = r
pivot = array[mid]
while true
while array[i] < pivot
i++
while array[j] > pivot
j--
break if i >= j
t = array[i]
array[i] = array[j]
array[j] = t
sort array, l, i-1 if l < i-1
sort array, j+1, r if j+1 < r
a = [1, 4, 3, 7, 6, 5, 2, 8]
sort a, 0, 7
alert a
下記はJavaScriptに変換したときのコードです。
var a, sort;
sort = function(array, l, r) {
var i, j, mid, pivot, t;
mid = ~~(l + r / 2);
if (l >= r) return;
i = l;
j = r;
pivot = array[mid];
while (true) {
while (array[i] < pivot) {
i++;
}
while (array[j] > pivot) {
j--;
}
if (i >= j) break;
t = array[i];
array[i] = array[j];
array[j] = t;
}
if (l < i - 1) sort(array, l, i - 1);
if (j + 1 < r) return sort(array, j + 1, r);
};
a = [1, 4, 3, 7, 6, 5, 2, 8];
sort(a, 0, 7);
alert(a);
2011年11月1日火曜日
第22回HTML5とか勉強会で発表してきました
第22回HTML5とか勉強会で発表してきました。
今回は初心者向けということで、
SVGってどんなことができるの?っていることを理解してもらおうと思い、
とにかく仕様の紹介をしようと思いました。
ちょっと、意図が伝えられなくて、一部の方からは難しかったというご意見をいただきました。
次回同じような機会があれば、その反省をふまえてもっとよい発表を行えればと思っています。
以下が発表に使用したスライドです。
動画も公開されているみたいです。
このような機会を与えていただいた白石さんをはじめHTML5とか勉強会のスタッフの皆様には
本当に感謝をしています。
ありがとうございました!
今回は初心者向けということで、
SVGってどんなことができるの?っていることを理解してもらおうと思い、
とにかく仕様の紹介をしようと思いました。
ちょっと、意図が伝えられなくて、一部の方からは難しかったというご意見をいただきました。
次回同じような機会があれば、その反省をふまえてもっとよい発表を行えればと思っています。
以下が発表に使用したスライドです。
SVG overview
View more presentations from Satoshi Watanabe
動画も公開されているみたいです。
このような機会を与えていただいた白石さんをはじめHTML5とか勉強会のスタッフの皆様には
本当に感謝をしています。
ありがとうございました!
2011年8月15日月曜日
OAuthの仕組みについてのメモ
ちょっと前に
twitterのOAuth認証についてのエントリを書きましたが、
ちょっとOAuthについて自分の頭の中が整理できていなかったので、
ちょっと整理します。
OAuthってそのそも、
アプリケーションがとあるサービスのAPIを使うための、ユーザに認証してもらうための仕組み
アプリケーションはとあるサービスのユーザ名やパスワードをユーザから教えてもらう必要がない
です。
で、
Consumer(アプリケーション)はService Provider(API提供しているとあるサービス)にConsumerの登録を行います。
登録すると、Consumer KeyとConsumer Secretが発行されます。Consumer Key/Secretはそのアプリケーションを示すトークンです。このConsumer(アプリケーション)はConsumer Key/Secretを使って、Service Providerにリクエストトークンを発行してもらいます。
リクエストトークンを発行してもらったら、ConsumerはそのリクエストトークンをパラメータとしたURLを使って、Service Provicerのサイトにリダイレクトを行います。
ユーザーはリダイレクトされたサイト上にて、ConsumerがService ProviderのAPIを使って情報を取得するのを許可します。
許可したら、Service Providerはあらかじめ登録されたURLへリダイレクトするので、
Consumerはそこから、アクセストークンをService Providerに要求し、Service ProviderはアクセストークンをConsumerに送信します。
このアクセストークンがあれば、ConsumerがService ProviderのAPIを使うことができるようになります。
ざっと書くとこんな感じでしょうか?
twitterのOAuth認証についてのエントリを書きましたが、
ちょっとOAuthについて自分の頭の中が整理できていなかったので、
ちょっと整理します。
OAuthってそのそも、
です。
で、
API提供しているとあるサービスとあるサービス => Service Provider アプリケーション => Consumerとそれぞれ呼びます。
Consumer(アプリケーション)はService Provider(API提供しているとあるサービス)にConsumerの登録を行います。
登録すると、Consumer KeyとConsumer Secretが発行されます。Consumer Key/Secretはそのアプリケーションを示すトークンです。このConsumer(アプリケーション)はConsumer Key/Secretを使って、Service Providerにリクエストトークンを発行してもらいます。
リクエストトークンを発行してもらったら、ConsumerはそのリクエストトークンをパラメータとしたURLを使って、Service Provicerのサイトにリダイレクトを行います。
ユーザーはリダイレクトされたサイト上にて、ConsumerがService ProviderのAPIを使って情報を取得するのを許可します。
許可したら、Service Providerはあらかじめ登録されたURLへリダイレクトするので、
Consumerはそこから、アクセストークンをService Providerに要求し、Service ProviderはアクセストークンをConsumerに送信します。
このアクセストークンがあれば、ConsumerがService ProviderのAPIを使うことができるようになります。
ざっと書くとこんな感じでしょうか?
登録:
投稿 (Atom)