2010/05/31

[jQuery]これスゴ、twitterのような通知バーを表示するjQuery Notify bar

Twitterのようにスマートな通知バーを一瞬で実装できるjQueryプラグイン「jQuery Notify bar」。
ページの上部にアニメーションされながら表示されるあの通知バーです。

via:Twitterのようにスマートな通知バーを一瞬で実装できるjQueryプラグイン「jQuery Notify bar」

というわけで、さっそく試してみました。

本命は、'Notify Bar' pluginで紹介されているのですが、導入はいたって簡単。

まず、jQueryをダウンロード
(ver1.4.2で試したところ、稼動しました。)

次に、githubのjQuery-Notify-barから
jquery.notifyBar.js
jquery.notifyBar.css
をダウンロードします。

後は、たったこれだけのソースコードで出現します。
<link rel="stylesheet" href="jquery.notifyBar.css" type="text/css" />
<script type="text/javascript" src="./jquery-1.4.2.min.js" ></script >
<script type="text/javascript" src="./jquery.notifyBar.js" ></script >
<script type="text/javascript" >
$(function () {
$.notifyBar({
html: "Jquery is so cool",
delay: 2000,
animationSpeed: "normal"
});
});
</script >

実際に試して結果↓
Photobucket
上のバーの色は、灰色なのですが、cls:"error"と設定することで、赤色に変更することができます。
(実行結果は下の画像)
Photobucket
さらに、cls: "success"とすることで、緑色に変更することもできます。
Photobucket
他にもパラメータの設定することで、バー上に「×」ボタンを付けたりすることができます。

もちろん、メッセージや表示スピードなどの各種設定を行うことができます。

詳しいパラメータをこちらからちょっと引用させていただきます。
ParameterDescriptionTypeDefault
htmlWhat text will be inside bar, can be HTML
(表示させたい文言はここで)
String [optional]"Your message here"
delayHow long bar will be delayed, doesn't count animation time.Integer [optional]2000
animationSpeedHow long this bar will be slided up and downString | Integer [optional]"normal"
jqObjectOwn jquery object for notify barjQuery object [optional]null
clsYou can set own CSS class for 'Notify bar'. There is too premade clasess "error" and "success"
(独自のcssを設定したい場合は、ここで設定)
String
closeIf set to true close button will be displayed
(「×」ボタンを設定したい場合は、ここをtrueに)
Booleanfalse

恐るべし、jQuery!!

[Google App Engine]実は、、、

現在、リリースされているiGoogle gadgetをすべて、Google App Engine上に移行しました。

「Google App Engine上の解説ばっかりで、何もアプリ作ってねぇーじゃーねーかよー。」と言われるのが非常に嫌だったのと、

レンタルサーバーを借りずに、webアプリを作れることを証明したく、今回、全面的に移行しました。

これに伴い、レンタルサーバーで発生していたアクセス集中時のgadgetが表示されないという不具合が解消されたと思います。
(もし、あれば、教えてください。)

しかし、今回の移行でわかったのは、本当に無料で、webアプリケーションを作るんだなーということ。
無料のGoogleAppsと組み合わせれば、ドメインの登録料だけで、かなりいい感じのアプリを作ることができるし、おまけに、dbもついている。
(他にもメールサービス、チャットサービス、画像変換サービスなどもその他もろもろも無料で使える。)

dbについては、oracleやmicrosoftのsql serverなどのRDBMSと違う設計思想なので、そういった意味でもものすごく勉強になる。

これを機にkey-value型のdbにチャレンジしていけたらなーっと甘い期待を抱いてしまう。

さらに以前、リリースした、photoshareガジェットの移行に関しては、テンプレートエンジンであるdjangoを使い、初めて本格的なテンプレートエンジンを使ったアプリ移行を行ったので、こちらも大変勉強になりました。

初めてずくしのGoogle App Engine。

現在、Chrome Web Storeにアプリをリリースしたいと思い、Google App Engine上で実装しているのですが、早くリリースしたいなーっと思う今日このごろです。

2010/05/30

[本]新・資本論 僕はお金の正体がわかった

土日は、家で一人だったので、その間にこちらを読了。


1章 日本は幸福な国なのか?
2章 貯金と借金―三〇年を超えるローンは何の為?
3章 マネーと教育―儲けてナンボのリテラシー
4章 ルールの運用は恣意的に行われる!
5章 いつだって先行きは不安 ―時代を生き抜くタフネス

あとがきに代えて

ギャンブル

政治・社会

via:目次

「お金って結局、何?」ということが書かれている本です。

読む前に持っていた答えと同じだったので、つっかえることなくサクサク読むことができました。

果たしてお金って何なのでしょうか?

その深層とはいかに?

真実は、この本の中に。

2010/05/29

[jQuery]関数を追加する

基本的な関数の追加方法について調べました。

Allaboutの魔法の鎖のつなぎ方(2)を読んでみると、すごく簡単な方法で追加できることがわかりました。

ためしに超簡単なスクリプトを書きます。

<script type="text/javascript">
jQuery.fn.ahahahaha = function(){
alert("関数が呼ばれました");
return;
};
</script>
<div id="hoge">foo</div>
<script type="text/javascript">
$("#hoge").ahahahaha();
</script>

jQuery.fn.関数名

で関数を追加できるようです。

2010/05/28

[oracle]編 SQLの集計関数で NULLを含む列を集計する場合の注意点

floatingdaysさんのSQLの集計関数で NULLを含む列を集計する場合の注意点

というエントリーで、MySQLとPostgreSQLの検証結果があったので、oracleについて検証してみました。

実行したsql文は↓

SELECT SUM(t.v)   -- => 15
, MIN(t.v) -- => 0
, MAX(t.v) -- => 10
, COUNT(t.v) -- => 3
, AVG(t.v) -- => 5
FROM (
SELECT NULL v from dual
UNION
SELECT 0 v from dual
UNION
SELECT 5 v from dual
UNION
SELECT 10 v from dual
) t

先に結論からいうと、すべて同じになりました。

SUM()やMIN()、MAX()では問題ないが、COUNT()やAVG()ではNULLの行の分も含めて計算したい場合に困る。

via:SQLの集計関数で NULLを含む列を集計する場合の注意点

禿同

よってoracleの場合だとこうなる。

SELECT COUNT(NVL(t.v,0)) -- => 4
, AVG(NVL(t.v,0)) -- => 3.75
FROM (
SELECT NULL v from dual
UNION
SELECT 0 v from dual
UNION
SELECT 5 v from dual
UNION
SELECT 10 v from dual
) t

oracleの場合は、nullの場合は、nvl関数を使って、0とすれば問題は解決します。

是非、ご参考までに。

2010/05/27

[Google App Engine]Datastoreをクリアーして、アプリをスタートする方法は、

Using the Datastoreを読むと、

dev_appserver.py --clear_datastore myapp

でいけるようです。

調べるのにちょい時間がかかったので、メモとして。

2010/05/26

[jQuery]$("#hoge").text()とは。。。

いくつかjQueryプラグインのファイルを見ていて謎に思ったのは、

function(){
alert($("#hoge").text());
}

のようなくだりがあるんだけど、$("#hoge").text()って何??

前回のエントリーから$("#hoge")で、document.getElementById("hoge")ってところまでは理解できるんだけど、それにメソッドがついている。

jQuery テキストを取得・変更する『 text() 』を参考にさせていただくと、id="hoge"内のテキストを拾ってきてくれるみたいなのです。

<div id="hoge">foo</div>
<script type="text/javascript">
alert($("#hoge").text());
</script>

とあった場合に、alertに表示されるのは、fooになるわけです。

これだけでテキストの内容が取得できちゃうなんて、なんと便利な。。。

2010/05/25

[widgmedia]サイトをリニューアル

しました。

あまりにも、ロリポップのアクセス処理が悪いので、google siteを使ってサイトを構築しなおしました。

新しいurlはこちらです。

よろしくお願いします。

[Google App Engine]課金について

実は、内緒で、既存のiGoogle gadgetをGoogle App Engineに移行させたのですが(別に公にすることでもないのですが)、移行した瞬間にOutgoing Bandwidthが59%を超えてしまって、これって100%を超えてしまったら、自動的に課金されちゃうのかなーっとものすごく不安になってちょっと調べてみました。

結果的には、Google GroupのGoogle-App-Engine-Japanに書いてありましたが、自動的に課金はされないようです。

課金設定をしていない場合、制限一杯になった時点で制限対象の行為ができなくなります。たとえば、datastoreの容量が一杯なのであれば、新たな書き込みができなくなります。

Request数が上限いっぱいになると、サービスへアクセスできない旨のエラーページが表示されます。

つまり、課金設定をしない状態で、大量のアクセスがあったから突然、請求がくるというものではありません。

また、1日1000ドルの設定をしていても、実際の請求は、利用された金額のみの請求になりますので、設定する金額はそれが請求される可能性のある上限額という事になります。

Billing Status: Free は無課金の状態で、「無料」で利用しているという意味です。

via:GAEの課金設定について

ふー、これを聞いてなんだか一安心。

引き続きガンガンアプリを作っていくことができそうです。

2010/05/24

[JavaScript]toFixedメソッドについて

最近、読書が落ち着いてきたので、こちらの本に着手しています。



第一章で、toFixedというメソッドが記載されていて、これなんだろーっと思い、


で意味をひいてみると、小数点の位置を調整してくれるメソッドで四捨五入してくれるよう。

つまり、

var hoge = 12.345;
alert(hoge.toFixed(2)); //12.35と表示

となるようです。

まだまだ知らないメソッドっていっぱいあるんですね。

日々精進。

2010/05/23

[JavaScript]data URLの画像データを表示する方法

HTMLバージョン5から、toDataURL()を使って任意のフォーマットでdata URIを取得することができますが、逆に、このデータから、canvasタグ内に画像として表示する方法を調べました。

[javascript,HTML]canvas をいじってみる -画像-

を参考にすると、imageオブジェクトのdrawImage関数で表示することができるみたいなのですが、ここで、注意点があって、いきなり使うと、画像がサーバーからダウンロード完了する前に、コールしてしまうとヤバイので、onloadで回避するようです。

詳細は、Mozilla Developer Centerの画像を使うにて紹介されていますので、是非、参考にしてください。

2010/05/22

[本]ラクをしないと成果は出ない

ちょっと時間がかかりましたが、読了


第1章 基本編
第2章 インプット編
第3章 ネットワーク編
第4章 撃退編
第5章 独立編
第6章 継続編
第7章 組織編
第8章 時間編
第9章 アウトプット編
第10章 生活技術編

via:目次

本書は、弾さんが、これぞ真打ち - 書評 - ラクをしないと成果は出ないのエントリーですごく推奨されていらっしゃったので、購入しました。
(最近、文庫化されたので、そちらのイメージを掲載します。)

ビジネス書が文庫化されるというのは、売れている証拠にもなるので、本書は、そういった意味できちんと評価されているんだなーっと客観的に判断できます。

本書が、素晴らしいのは、全部で100の項目を10章にわけて、見開き2ページで構成していること。
でかつ、タイトルとページの最後の文言でその内容をおおまかに把握することができるので、再度、読む時にも便利です。
(おもてなしがきちんと行き届いている♪)

で、肝心の内容の方ですが、ちょっと重複している内容があって、それは一つの項目でいいんじゃーないのかなーっと突っ込みたくなるときが多々ありました。

具体的には、項目54:「何をしないか」を明確にしていくと項目90:「必要でないこと」は極力やらないってこれってほとんど同じじゃんと思ったり(タイトルを読んでもそう思いませんか??)、後は、全体的に、物事を定性的にではなく、定量的に捉えて視覚化していくっていう主張が多かったなー。
(だいたい、
項目71:会議は一規格につき二度だけで終える
項目72:決済は火曜日の午前10時半から、と決めておく
項目73:探し物は一ヶ月で合計一時間以内に
項目85:数値目標とその根拠を明白にもつ
項目94:加齢とともに遊び時間を増やしてゆく
が、それに該当します。)

他には、最悪な状況がいつ起こってもいいようにしっかり準備をしておけっていう主張も多かった。
(これもだいたい、
項目63:自分の「忘れグセ」を前提に、「忘れても、できる」仕組みをつくる
項目75:「遅刻してしまった!」を先にイメージする
項目91:死以外の悲劇は、10年後に必ず人生の肥やしになる
項目95:最悪の事態を想定し、その兆候が出たら動く
項目100:大切な人は命がけで守る
)

と書いていくと、もう少しコンテンツの圧縮ができたのかなーっと。

でもまー繰り返し読む事で脳に定着させるという意味ではいいと思いました。

本書で書いてあることを読む前に既に実行していて、実際に人生に豊かさをもたらしてくれたことがありますので、生きた実証もあるということを最後に述べて本エントリーを閉じます。

項目3:自分にできないことをしている人を素朴に尊敬する。
→ここ一年で出会った方達は、どなたもすごく尊敬している。
項目8:気になったら、まず買う
→次に買おうと思ったらない場合もあり後悔する。
項目13:立ち読みは書店ではなく家の中でする
→いつでも本に戻ることができる(内なる対話)
項目15:興味がわいたことは講演やセミナーに出て全体像と情報源を一気に押さえる。
→去年は、iPhoneのイベントに参加し、勉強になった。
項目19:発行部数数千部のメルマガや専門誌や白書類にたくさん目を通す。
→3月から有料のメルマガに登録してしまった。電子上かつ有料での定期購読は初。すごく楽しい。
項目20:図書館に行けば行くほど「無駄遣い」になる
→図書館がどこにあるかわからない、かつ返す時間を考えると行くのがメンドイ。
項目45:商売道具への投資はケチらない。
→一昨年の冬のボーナスで家内に泣きついて交渉し、初macをゲット。おかげでiPhoneアプリをリリースできた。
項目81:ノウハウはどんどん公開する
→ノウハウ以外にも、どんどんブログでこうしてエントリーを書いてまぁーす♪

2010/05/21

[Python]日本語を表示する

ターミナル上で、日本語を表示する方法を知りたかったので、ちょっと調査

Pythonで日本語を使う

を参考にすると、文字列の前に、「u」を付ければ、オッケーのようです。

実際に、ターミナルで実験してみたところ、きちんと日本語表示できました。

ここで、注意が一点あって、Pythonのバージョンが、2.4以降じゃ~ないといけないみたいです。

2010/05/20

[lifehack]マイクロアプリケーションの到来

あまりにもtwitterだけにとどめておくのは、もったないと思ったので。

前回、マイクロアプリケーションという言葉を紹介しましたが、いよいよ、この概念が実現することになりました。

まずこれについて説明する前に、実は、紹介した当初、今度、リリースされるGoogle Chrome OSの上に、小型のwebアプリケーションが登場し、まるでクライアントアプリケーションのように動作を行い、まるでwebアプリケーションなのかクライアントアプリケーションなのかその境目がなくなり、やがてわからなくなり、そしてそんなwebアプリケーションが世の中の流れをドンドン変えていくという意味をこめて紹介しました。

と同時に、実は、Googleは、AppleのApp Storeのようなものを狙っているのではないのか?という予想もありました。

つまり、Google Web App Storeのようなものを作ってそこで、Chrome OS上で動くアプリの販売を狙っているのではないのかと。
いきつく先は、webアプリのwallmartを狙っており、かなりの高確率でこの予想は当たるだろうと思っていました。
これのすごいところは、Googleはアプリの販売価格から売上をピンはねするだけではなく、販売されるであろうアプリの中に広告を挿入することで、さらにGoogle自社の売上をあげることができると予想できるところ。
(実際に、iPhoneでは、AppleがiAdを展開したようにすでに似た動きが展開されている。またこれに伴って想定される広告業界に関する変動についてはここで書いてしまうと長くなってしまうので後日改めて書いていきたい。)
しかも、アドセンスのような仕組みで連携させれば、webアプリの開発者に利益の配分もできちゃうんですね。
(特にこの恩恵が、無料でアプリを配信している開発者に大きい。)

さらに、ハイブリッドマイクロアプリケーションというアプリも今後、続々とリリースされていくと想定される。
これは、マイクロアプリケーションつまりweb言語だけではなく、クライアント言語(C||C++)もミックスさせたハイブリッドなアプリケーションも今後展開されていくと予想される。
この流れはやはりiPhoneからで、リファレンスを読むと3つのアプリケーションで構成されているところから着想を得ました。
(iPhoneのアプリケーションは、大きくわけて3つに構成されている。
1:webアプリケーション
2:クライアントアプリケーション
3:webとクライアント言語をミックスさせたハイブリッドアプリケーション)

ハイブリッドマイクロアプリケーションの応用がさらに進むと、今度は、オフライン環境化で、いかにクライアントアプリケーションのようにスムーズに動作するのか?という方向に今後のwebの研究がすすんでいくと思うし、そのきっかけとしてGearsが立ち上がり、さらにhtml ver 5に受け継がれていると考察できる。

で、こいつとopen socialの仕様が結びつくと、もっと大変なことが起きる可能性がある。

それは何かというと、統計情報を駆使した個人向けのwebアプリケーションの最適化が起こる。

つまり、今、amazonで本やCDなどを購入すると、画面やメールやらで、「こんな商品もお勧めですよ?」的なことが紹介される。

これがもっと細分化されより高確率でその人にあった商品を紹介することができるようになる。

何故か?

JavaScriptという言語で、個人情報が取得できてしまうからだ。

メールアドレス、

年齢、

性別、

電話番号、

住所、

さらには、

喫煙者か?

子供は?

ペットは飼っているか?

言葉は何語を話しているか?

卒業した学校は?

なんて情報が一回、一回、サイト毎に入力する必要がなく取得することが可能になる。
(細かい仕様はここで確認できます。)

これを組み込むことで、わざわざ、サイトにアクセスしなくても、マイクロアプリケーションがこの情報をもとに、情報を最適化してくれてその人に必要なものを必要なタイミングで必要な場所で提案してくれるようになるだろう?
(クラウドやlatitude APIに接続することでこの問題はクリアーできる。)

まーここまで来ると人工知能という分野がドンドン投入されていくと思うんですが。

こっから先の考察については、また日を改めて。

で、話をもとに戻すと、今日、Chrome Storeがまもなくオープンするという話がでました。

これは、今、webアプリが抱えている諸問題をクリアーするためにオープンすると書いてありましたが、Chrome上でアプリの販売のやり取りが行われるということで。

これってGoogle Web App Store構想的にはクリソツじゃーねーかーということで興奮したので、勢いでこのエントリーを書きました。

今、Google App Engineでアプリを作っているので、これに対応させようかなと。

(追記)
Googleの協同ファウンダSergey Brinもハイブリッドマイクロアプリケーションに似たコンセプトの話をしている。
つまり、クライアントサイドのアプリとwebアプリが一つになっていくということ。
GoogleのSergey Brin曰く: ネイティブアプリとWebアプリは近未来に一つに収束する

[Python]シーケンスって。。。

何?

以前紹介したこの本の問題で関数の引数をシーケンスとするって暗黙的に書いてあったので、気になって調べてみることに。


(間違っても第三版ではありません(泣))

こういうときは、リファレンスを読む。

3.6 シーケンス型を読んでみると、下記の6つが該当するみたいです。

文字列
ユニコード文字列
リスト
タプル
バッファ
xrange オブジェクト

ということは各オブジェクトを総称して、シーケンス型って考えた方がよさそうです。

はぁ~、すっきりした。

2010/05/19

[Python]数値型を文字列型に変換

するには、単純に、

str([object])

via:数値を文字列に変換(str)

と記述すればいいみたいです。

にしても、数値型って暗黙的に文字列に変換してくれるわけではないらしく、したがって、print "hoge" + 3 みたいに書いちゃうとエラーになっちゃうので、明示的に関数を使って文字列に変換する必要性があります。

2010/05/18

[Python]ファイルのサイズを取得

以前紹介した、この本の問題をやっていてちょっとわからなかったので、調べてみることに。


(間違っても第三版ではありません(笑))

pythonでディレクトリに含まれるファイルのサイズを求めるを参考にすると、単純に、getsizeという関数を使えばよさそうで、実際にそのまま使ったらエラー。。。

なぜじゃー

っと思って上の方を眺めてみると、

import os
from os.path import join, getsize

と書いてあるじゃーないっすか。

でも、importは、osなのか、はたまた、os.pathなのだろうか?

ってことで、osモジュールを見ても見当たらなく、os.pathモジュールにはあったので、というわけで、正解は、
import os.path
os.path.getsize("./hoge.txt")

でした。

2010/05/17

[本]稼げる 超ソーシャルフィルタリング

すぐに読み終わっちゃった。


第1章 Twitterは最強のソーシャルフィルタリングツール
第2章 あなたの仕事を一気に加速化するGmail術
第3章 従来の会議を不要にし、革命を起こすメーリングリスト術

via:目次

本書は、前著:100億稼ぐ超メール術 1日5000通メールを処理する私のデジタル仕事術の新バージョンで、前回は主にメールを日報ツールとして駆使し、よりスムーズに仕事をこなす方法について書かれていましたが、今回は、gmailとiPhoneとiPadを連携させて仕事をこなす内容となっており、初心者でもわかりやすいように、iPhoneでgmailを使う方法やgmailそのものの使い方を図を入れてふんだんに説明されています。

さらに、すでにgmail以外のメーラーを使っている人にも対してもthunderbirdからgmailに移行する方法や、outlookからgmailに移行する方法が記載されていて他のメーラーを使っていても本書の内容にスムーズに取り入れることができます。

読んでいて前回と決定的に違ったのは個を中心とした仕事術だったのではないのかなと。
前は、企業全体が一丸となってフルフルでツールを使いこなすぞーという感じを強く受けましたが、今回は、そこまでの印象を受けませんでした。

そりゃーそうかもしれない。
iPhoneやgmailそして、今月にリリースされるiPadなんて普通に個人がもってるしパソコンよりも使用頻度が高いし生活の一部になっちゃっているからな。

これからは本書で書かれているように、iPhoneで普通にgmailを使って仕事をこなす日がくるんだろうなー。
ってもう来ていると思うんだけど。

さらに、iPadが普及してくると、パソコンが必要なくなると書いてあったが、まさにそうなると思いました。
明らかに、今のパソコンは余計な機能が多すぎるしiPadの方が直感的にわかるし、プログラマの視点でいえば、パソコンのOSと同じC言語でできているから機能的には劣っていないんですね。

情報収集方法としてtwitterでフォローした人の精査した情報を取得する、堀江さん曰く、ソーシャルフィルタリィングについての説明もありました。

twitterだいぶ前に登録して、こんなの日本で流行るのかーって思っていたけど、結果、ものすごい勢いで今流行っているもんなー。
(twitterを使ったドラマまでできちゃっているし。)

twitterを使って情報収集するってのは理解できるんだけど、これをどうビジネスに活かしていいのか、まだまだ課題はあるのかなと。
すでにいくつかの企業では、時間限定のクーポンを配信したり、企業オリジナルのidでツイートしたりと様々なことが試みられているけど、今後、どうなってくるんだろうなー。ってか、そもそもビジネスにいかせるのかーっていう根本的な問題もあるしね。

つねにトライ&エラーなのかもしれません。
本書の内容とはずれちゃいましたが。

2010/05/16

[本]iPhoneとツイッターは、なぜ成功したのか?

弾さんの紹介 - iPhoneとツイッターは、なぜ成功したのか?で5月5日までapp storeで無料は威信されていることを知って、さっそく読んでみました。


■Chapter 1:「マイクロ化」するコンテンツ
■Chapter 2:Web2.0の本質は「永遠のベータ」にある
■Chapter 3:「原型」をデザインせよ
■Chapter 4「自分」こそ、最大のメディア
■Chapter 5:デジタルと融合する「身体性」
■Chapter 6:これからの10年を生き抜く

via:目次

初めてiPhoneで電子書籍を読んだのですが、まず最初に思ったのがページ数の多さ。
なんと612p!!

アマゾンの紹介ページだと256ページなのに、文字をでかくした分ページが増えてしまい、最初、見た時、さすがにこれは萎えてしまった。
電子書籍としてリリースする場合には、もう少し短い方がいいんじゃーないのかなーっと思わずにはいられなかった。
もう雑誌の1コーナーのような感じでいけばいいんじゃーないのかなーっと。
(本書でも雑誌の販売方法についていくつか言及がされていたが。)

確かにiPadにもリリースすればページ数は減るかもしれないけど、それはそれで何か別問題のような気がしなくもないのだが。

で話は変わって本内容なのだが、「結局、だから何なのさー??」だった。
というよりも、本から何かを得ようとしてはいけないのかもしれないが、ただ単純に著者が過去の事例をもとに、どうして、iPhoneとtwitterが成功したのかを解説しており、ここからが肝心なのだが、将来、具体的にどうなっていくのかが欠けていた部分があったと思う。

間違ってもいいのでもっと将来こうなるぞーという部分が欲しかった。
別に間違っている正解しているが重要なのではなくどうやってその考えに行き着いたのかの方が重要なのだから。

しかも本書は、twitterが何なのかわらない人には、当然、わからないままであり、さらにfoursquareなどの海外で流行っているサービスなども紹介されているので、ITに詳しくない方は厳しい内容だと思いました。
(サービスの説明は書いてあったが、具体的に使ってみないと実感わかないよー。)

というわけでまとめると、どうして成功したかの原因が気になる人にはいいかもしれないが、そこから何なのさーというさらに一歩突っ込んだところまでほしい人には本書は若干力不足を感じると思いました。

2010/05/15

[本]初めてのPython(注:初版です。)

続々と本を読み終えていく中、こちらもやっとこさ読了
amazonのマーケットプレイスで購入



1部 言語のコア部分
2部 言語の外部層
3部 付録

via:目次


初めて本格的なPythonの本を読みましたけど、正直言って、PHPよりも難しくないかい??
と思ったのが正直な話。

しかも、サーバーサイド言語というよりも、script言語ぉ~って感じを全面に押し出された内容だった。
(それはそれで洗練されていていいんだけど。。。)

Pythonを読んでみると教育用言語としても人気があるみたいなんだけど、どうなんだろーっとちょっと疑問に思ってしまうところがある。

一番初めの言語としてこれを選択するっていいのかなーっとも疑問に。

特にclass化させて、メソッドを使う時なんて、ほぼ確実にselfがいるからねー。。。

毎回、毎回、self、self、selfと書くのはちょっとめんどいよー、やっぱり。

他のオブジェクト指向型言語と比較してもやはりそこが特徴的だと思った。
(そういう意味では、PHPのクラスの方が俄然、わかりやすかった。)

その点、関数の記述はわかりやすかった。
特に無名関数が初期の段階でビルドインされているから、しびれるねー。

この点は、やはりPHPとは違う。

後、モジュールの使い方に悩むなー、やっぱり。
どのモジュールをインポートしたらいいのか、わからない。
なんか、モジュール集みたいな本でないのかなー??

本の内容もさすがに古くて、Python 1.xに対応しているようなので、やっぱり新しい版の物を買った方がよかったよーぉぉぉ(泣)

最終的に、現段階では、PHPよりも難しいので、今後、勉強していく言語としてはいいのかなーっと思いました。


2010/05/14

[JavaScript/Ajax]chromeでajaxを使う場合の注意点

として、ローカルで実行する場合、「ChromeだとローカルでXMLHttpRequestは使えない?」を参考にすると、エラーが発生するみたいです。

注意したいところです。

2010/05/13

[本]夢をかなえる「打ち出の小槌」

こちらもソッコーで読了


第1章 夢をかなえる「打ち出の小槌」とは?
第2章 ゼロになることを怖がらず、挑戦しよう
第3章 夢を邪魔する常識の殻を破れ
第4章 適度な借金でさらなるショートカットを

via:目次

堀江さんが、自身の経験を通して、どのように夢を叶えるのかを説いている本。

全部で3の主張で構成されているのですが、それが1ページの図としてまとまっているので、頭の中で整理しやすいと思いました。

一つ一つは単純なことなのだけれど、実際には、すごく深く難しく、かつそれぞれの内容は、ブログ、メルマガに書かれていることとだいたい同じだったので、書籍として持っておきたい方には、便利なのかなーっと。
(別に書籍として持っておかなくてもへーきだよーっと思う方は、正直、本書は、微妙かもしれません。)

後、世間で一般的となっていることに対して、かなり反対している部分の主張があるので、それに抵抗を感じてしまう人には、正直、おすすめできません。
(堀江さんの他の書籍でもそうなのですが。)

なので、気になるようなら、一度、本屋でざっと内容を確認してから買うのがいいのかなと。

2010/05/12

[本]中身が強烈すぎる iPhone Core Audioプログラミング

超大作を読了



CHAPTER01 System Sound Services
CHAPTER02 AVFoundation
CHAPTER03 サウンドファイルの基礎
CHAPTER04 Audio Sessionの基礎
CHAPTER05 Audio Queue Services
CHAPTER06 詳説 Audio Queue Services
CHAPTER07 詳説 Audio Session
CHAPTER08 AVFoundation 3.0
CHAPTER09 Audio Unitの基礎
CHAPTER10 Audio Converter Services
CHAPTER11 Extended Audio File Services
CHAPTER12 Audio Unit Processing Graph Services
CHAPTER13 Audio File Stream Services
CHAPTER14 iPod Library Access
CHAPTER15 実践編

via:目次

CoreAudioを専用に扱ったサンプルアプリの紹介なのですが、内容が濃すぎて正直な話、すべて消化しきれたとはいいきれない。

実は、本書を手に取ったのは、iPhoneの開発というよりも、むしろ、iPadの音楽用アプリケーションを作りたいと考え購入しました。
twitterで何回も言っていますが、今後、音楽業界(特に楽器業界)は、iPad用のアプリケーションを作ってくるのは、間違いなく、実際、KORGに先を越されてしまった。
(非常に悔しい。。。orz)

誤解してほしくないので、きちんと書きますが、すべての楽器が、iPadに置き換えられるというわけではないので、あしからず。
おもに、DTMの揺り戻しが発生すると考えています。

で、話は横にされましたが、本書は、iPhoneアプリケーションの初心者にはまったくむかない本である。
しかも、アプリケーションをXcodeで作っただけではなく、リリースした人が対象と思われる。
というのもiPad音楽ライブラリーにアクセスする方法は、エミュレータだとできず、実機でないと動作しないので、実機にアプリを転送した経験がないと厳しいかなと。
(これは、本書のせいではなく、フレームワークはこのような仕様になっているため、仕方がない。)

また、InterfaceBuilderも使ったことがないと本書は厳しいんじゃないかなと。
サンプルアプリでは、説明抜きでIBoutletが普通に登場するので。

さらに、高校数学、具体的に、sinθ、cosθの計算、一次関数それもy切片を使う関数、大学数学も少し必要で、フーリエ変換、三角関数の逆関数も登場するので、理系である必要もあります。

これだけでも、かなり対象者は限られているのにもかかわらず、さらに、フレームワークの都合上、ポインタが多発するので、C言語にも慣れていないと本書を読むことができない。

こう書いていくと、一体誰が買うんだー?という疑問がわき起こるが、今、iPhoneアプリの開発ラッシュを考えると需要はあると思います。

CoreAudioの完全解説版が本書登場以前にはなかったので、本書がバイブル的な存在になるのは、明らか。
かなり細かく網羅されているので、リファレンスと併用して使っていきたい。

しかし、唯一残念だったのは、サンプルコードをビルドしてもエラーが発生してしまい、どうしても動作確認をすることができなかった。
具体的には、最終章のFMDrumをXcodeのver 3.2.2で、iPhone OS 3.0で普通にコンパイルを行ったが、どうしてもエラーをはずすことができなかった。(他にも結構、コンパイルエラーがあった。)
本書の冒頭には、iPhone OS 3.0で動作確認できたとあったので、じゃー、コンパイルできるだろーっと思っていたのだが。

ただでさえ、本書のサンプルコードには省略されている部分が多く、前後関係を把握したい意味で、サンプルコードを実行しながら、確認していきたいと思っていたのに、こうもいきなりコンパイルエラーをかまされると、すごく萎えてくる。

なので、本書は、ページ数がものすごく多くなるが、サンプルコードの全コードの掲載をしてほしいなーという要望が一つありました。
今度、出版されるJavaScript第6版並になるかもしれない。
(amazonでみると、1000ページを超えている!!)


後、本書、執筆時点で、最新のXcodeで動作確認をしてほしかった。。。

こうして書いてみると、今後、新しいCoreAudioだけに特化し、またサンプルコードのコンパイルのエラーが起きないような本が登場した場合、バイブルの地位を奪われるのだろうなーっと思ってしまった。

まだ、上記のような問題点があったため、すべてのサンプルコードを理解できていないため、今後、何回か再度、読んでいきたいと思いました。

これをきっかけに、CoreAudioをマスターしていきたいし、そのスタートとして最適に一冊である。