2010/02/28

[html 5][JavaScirpt]お絵かきソフトで色を選択できるようにする

昨日のエントリーでFlashを使わずに簡単なお絵かきアプリを作るプログラムを紹介しましたが、今日は、さらに色を選択できるようにしたいと思います。

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>ペイントTest</title>
<style type="text/css">
#container { position: relative; }
.mousecursor{cursor:pointer;}
</style>
</head>
<body
onMouseUp="DrawInstance.MouseUp();"
>
<div id="container">
<canvas id="draw_canvas"
width="230"
height="230"
style="border:solid 1px #000000;"
onMouseDown="DrawInstance.MouseDown();"
onMouseMove="DrawInstance.MouseMove();"
onMouseUp="DrawInstance.MouseUp();"
onMouseOut="DrawInstance.MouseOut();"
onMouseOver="DrawInstance.MouseOver();"
</canvas>
</div>
<div>
<table border="1" cellpadding="0" cellspacing="0" bordercolor="white">
<tr bordercolor="white">
<td class="mousecursor"
bgcolor="black"
onclick='DrawInstance.setColor("black");'
>
    
</td>
<td class="mousecursor"
bgcolor="gray"
onclick='DrawInstance.setColor("gray");'
>
    
</td>
<td class="mousecursor"
bgcolor="maroon"
onclick='DrawInstance.setColor("maroon");'
>
    
</td>
<td class="mousecursor"
bgcolor="olive"
onclick='DrawInstance.setColor("olive");'
>
    
</td>
<td class="mousecursor"
bgcolor="red"
onclick='DrawInstance.setColor("red");'
>
    
</td>
<td class="mousecursor"
bgcolor="fuchsia"
onclick='DrawInstance.setColor("fuchsia");'
>
    
</td>
<td class="mousecursor"
bgcolor="purple"
onclick='DrawInstance.setColor("purple");'
>
    
</td>
<td class="mousecursor"
bgcolor="yellow"
onclick='DrawInstance.setColor("yellow");'
>
    
</td>
<td rowspan="2" colspan="2"
bgcolor="black"
id="settingColor"
>
        
</td>
</tr>
<tr bordercolor="white">
<td class="mousecursor"
bgcolor="white"
onclick='DrawInstance.setColor("white");'
>
    
</td>
<td class="mousecursor"
bgcolor="silver"
onclick='DrawInstance.setColor("silver");'
>
    
</td>
<td class="mousecursor"
bgcolor="blue"
onclick='DrawInstance.setColor("blue");'
>
    
</td>
<td class="mousecursor"
bgcolor="navy"
onclick='DrawInstance.setColor("navy");'
>
    
</td>
<td class="mousecursor"
bgcolor="teal"
onclick='DrawInstance.setColor("teal");'
>
    
</td>
<td class="mousecursor"
bgcolor="aqua"
onclick='DrawInstance.setColor("aqua");'
>
    
</td>
<td class="mousecursor"
bgcolor="lime"
onclick='DrawInstance.setColor("lime");'
>
    
</td>
<td class="mousecursor"
bgcolor="green"
onclick='DrawInstance.setColor("green");'
>
    
</td>
</tr>
</table>
</div>
<script type="text/javascript">
var currentlayerX = "";
var currentlayerY = "";

window.onmousemove = (function(evt){
currentlayerX = evt.layerX;
currentlayerY = evt.layerY;
});


DrawClass = function() {

this.canvasinflag = 0;
this.canvas = document.getElementById("draw_canvas");
this.context = this.canvas.getContext("2d");
this.context.strokeStyle = "black";

};

/* マウスをクリックした時 */
DrawClass.prototype.MouseDown = function(){

this.canvasinflag = 1;
this.context.beginPath();
this.context.moveTo(currentlayerX,currentlayerY);

};

/* マウスが動いた時 */
DrawClass.prototype.MouseMove = function(){

if(this.canvasinflag == 1){

this.context.lineTo(currentlayerX,currentlayerY);
this.context.stroke();
this.context.moveTo(currentlayerX,currentlayerY);

}

};

/* クリックした手を離したとき */
DrawClass.prototype.MouseUp = function(){

this.canvasinflag = 0;
this.context.closePath();

};

/* マウスがcanvasの中に入った時 */
DrawClass.prototype.MouseOver = function(){

if(this.canvasinflag == 1){
this.context.beginPath();
this.context.moveTo(currentlayerX,currentlayerY);
}

};

/* マウスがcanvasの外に出た時 */
DrawClass.prototype.MouseOut = function(){
this.context.closePath();
}

/* 線の色を変更する */
DrawClass.prototype.setColor = function(aColorName){
this.context.closePath();
this.context.strokeStyle = aColorName;
document.getElementById("settingColor").style.backgroundColor
= aColorName;
}

DrawInstance = new DrawClass();

</script>
</body>
</html>

で、実行結果は、このようになります。

                                
        
                                

(動作しない場合は、こちらにアクセスして再度、試してみてください。)
例によってfirefoxとchromeで実験した結果、きちんと動いたのですが、IEだとどうだろう??

使い方としては、色の部分をクリックすると、クリックした色でペイントすることができるようになります。

ペイントの仕方は、前回と同様で、四角い枠の中でドラッグしながらマウスを動かすと線が描かれます。

2010/02/27

[html 5][JavaScript]Flashを使わずにお絵かきソフトを作る

昨日のエントリーでcanvasタグの中で図形を描くというのを書いたが、となると当然、脊髄反射的に作ってしまうのがお絵かきソフト。

さっそくソースを紹介します。

<div id="container">
<canvas id="draw_canvas" width="300" height="240"
style="border:solid 1px #000000;"
onMouseDown="DrawInstance.MouseDown();"
onMouseMove="DrawInstance.MouseMove();"
onMouseUp="DrawInstance.MouseUp();"
onMouseOut="DrawInstance.MouseOut();"
onMouseOver="DrawInstance.MouseOver();"
></canvas>
</div>
<script type="text/javascript">
var currentlayerX = "";
var currentlayerY = "";

window.onmousemove = (function(evt){
currentlayerX = evt.layerX;
currentlayerY = evt.layerY;
});

DrawClass = function() {

this.canvasinflag = 0;
this.canvas = document.getElementById("draw_canvas");
this.context = this.canvas.getContext("2d");
this.context.strokeStyle = "rgba(0,0,0,1)";
this.currentX = "";
this.currentY = "";

};

DrawClass.prototype.MouseDown = function(){

this.canvasinflag = 1;
this.context.beginPath();
this.context.moveTo(currentlayerX,currentlayerY);

};

DrawClass.prototype.MouseMove = function(){

if(this.canvasinflag == 1){

this.context.lineTo(currentlayerX,currentlayerY);
this.context.stroke();
this.context.moveTo(currentlayerX,currentlayerY);

}

}

DrawClass.prototype.MouseUp = function(){
this.canvasinflag = 0;
this.context.closePath();
};

DrawClass.prototype.MouseOver = function(){
if(this.canvasinflag == 1){
this.context.moveTo(currentlayerX,currentlayerY);
}
}

DrawClass.prototype.MouseOut = function(){

this.context.closePath();

}


DrawInstance = new DrawClass();
</script>

canvasタグのメソッドやプロパティについては、こちらを参照しました。

実行結果はこのようになっています。
(黒い枠の中をドラッッグすると黒い線が描画されます。)


例のごとく、firefoxとchromeでは確認したけど、IEはどうなのだろうか?

ちなみに、html5の本がでているみたいなんだけど、これほしいなー。

2010/02/26

[html 5][JavaScript]canvasタグで図形を表示する

昨日までは、oracleで今日はhtmlと全然つながりがない話なのですが。。。

もうすでに色々なところで話がでてきていますが、htmlバージョン5の動きが加速しています。

動きに乗り遅れるのは嫌なので、さっそくどんなことができるのか調査に乗り出しました。

そこで今日は、新タグcanvasタグで図形を表示するところから行きたいと思います。

<!-- キャンバスを配置 -->
<canvas id="canvas1" width="300" height="240"></canvas>

<script type="text/javascript">
var canvas = document.getElementById("canvas1");

// キャンバスに対して2Dグラフィックスを行うコンテキストを取得
var context = canvas.getContext("2d");

// 四角を描画
context.fillRect(0,0,50,50);
</script>

via:5分で把握するHTML5 - Google Developer Dayセッションリポート

実際に実行してみると下記のようになる


firefox 3.0、google chrome 4.0では表示されましたが、他のブラウザではどうなのでしょうか?
黒い四角形が表示されると思います。

おそらくIE 6、IE 7辺りが表示されないんじゃーないかなー。

これだとただ記事をコピペしただけなので、色を指定して再度描画してみたい。

<canvas>タグ リファレンスを読むと、fillStyleプロパティで指定するようです。

<!-- キャンバスを配置 -->
<canvas id="canvas1" width="300" height="240"></canvas>

<script type="text/javascript">
var canvas = document.getElementById("canvas1");

// キャンバスに対して2Dグラフィックスを行うコンテキストを取得
var context = canvas.getContext("2d");

//赤に設定
context.fillStyle = "rgba(255,0,0,1)";

// 四角を描画
context.fillRect(0,0,50,50);
</script>

実行結果はこのようになります。


是非、rgbaの数字を変えてみて、色々と試してみてください。

2010/02/25

[oracle]スキーマ内のオブジェクト名の取得

最近、立て続けにoracleネタが続いておりますが。。。

今日は、スキーマ内のオブジェクト名の取得方法について

下記の方法で取得できるみたい

select *
from all_objects
where owner = 'ユーザ名'
order by owner
, object_type
, object_name
;

さもなくば、こっちでもオッケーのようです。
select *
from USER_OBJECTS
;

家内がちょっと前に、ひそかにこのアルバムを予約してたらしい。

早く買ってこないかな~

2010/02/24

[iGoogle gadgets]人気のiGoogleデベロッパーにランクイン中

こちらのページに掲載されている順序を数えていったら、

世界ランキング10位
日本ランキング4位

だった。

しかも、iGoogle themeの人と混じった数で。

iGoogle themeだけ作っているdeveloperをさっぴくと

世界ランキング6位
日本ランキング4位

となりました。

1位を目指して頑張るぞーっと。

これからも応援よろしくお願いいたします。

昨日、夜中、YouTubeの公式チャンネルでずっとこれ聞いてた

まじネ申です

2010/02/23

[oracle]スキーマに存在しているテーブル名の取得

は、下記のsqlで確認が取れます。

select * from user_tables;

select * from tab;

2番目はビューの取得も可能みたいです。

今日から、この本を読んでいます。やっと本腰を入れてpythonに取り掛かれそうです。


2010/02/21

[oracle]V$DATABASEについて

データベースの情報は、V$DATABASEで取得できるみたいです。

select *
from V$DATABASE

間違いだらけの備忘録を参考にすると、詳しいカラムのリファレンスはこちらにあるみたいです。

話は代わるけど、oracle bronzeのDBAって難しいのだろうか??

2010/02/20

[oracle]パッケージで使われているobjectの引数を確認する

sqlでパッケージの各オブジェクトで使われている引数を確認する方法を書きます。

select *
from USER_ARGUMENTS
where PACKAGE_NAME='パッケージの名前'
order by OBJECT_NAME,POSITION;
;

以上、ちょいメモ。

だいぶ前に先輩社員から貸していただいた本

懐かしいなー。

2010/02/19

[Google Ajax Search API]画像が表示されない件

Google Ajax Search APIを使ってサーバー上からあるキーワードに基づいたurlを取得できたのですが、そのurlに基づいてimgタグでhtmlを生成しても、なぜか画像(image)が表示されません。

urlをコピペして、違うfirefoxのタブでそのurlにアクセスしたら画像が表示されたのですが、これは一体なぜでしょうか?

理由がわからん。

そろそろフリーが読み終わりそうです。


2010/02/18

[php]Amazon Product Advertising APIへの問い合わせ

サーバーサイドでamazonの検索結果を取得する方法を調べました。

ものすごくわかりやすい記事が紹介されていました。
Amazon Product Advertising API への対応(PHP版)

上記に紹介されているプログラムをコピーすればきちんと検索結果を取得することができます。

ここではさらにその先について書こうかなと。

//$urlは上記のサイトで紹介されている変数と同じ
$response = file_get_contents($url);
$parsed_xml = simplexml_load_string($response);
$Items = $parsed_xml->Items;

$Request = $Items->Request;
$IsValid = $Request->IsValid;

//問い合わせエラーの場合
if($IsValid == "False"){
//エラー処理を記述
}

//問い合わせが正常の場合
if($IsValid == "True"){
//問い合わせ結果が0件だった場合
if($Items->TotalResults == 0){
print("検索結果が0件でした。");
//問い合わせ結果が1件以上だった場合
}else{
/* 処理を記述 */
}
}

おもにエラー処理を考慮すると上のようになるのかなと。

amazonのapiを解説した本ないかなーっと思って検索したら一冊発見

でも内容が古そー。

2010/02/17

[css]角丸を作る

昔作ったmemoメールを大幅に改良しようと今、目論んでいるのですが、その中の修正項目の一つとして、cssで角丸を表現したいなーっと。

PHPSPOT:1個の画像でシンプルに角丸を実装するCSSサンプル

を参照すると、さらにリンクがあって、そちらに具体的な方法が書いてありました。

Search-This:Simple Round Corners in CSS (revisited)

ものすごくざっくり言ってしまうとimage (20px x 20px)のPNG形式の「○」画像を用意すれば、cssのみで実現できてしまうという方法みたいです。
(JavaScriptを使わないのがなんとも魅力的)

実際にリンク先にあるプログラムをコピーして検証したところ、コーナーがきちんと角丸になってすっげーうれしかった。

ただプログラムを参照して気になったのは、

h1 {margin:.5em;}

via:Simple Round Corners in CSS (revisited)

↑の部分はいらないのでは??

試しに削除して実行したら予想通り正常終了。
(htmlを見るとh1タグがないので当たり前といえば当たり前かー。)

さらに横幅の大きさを変更したいなーっと思ったので、

.one{width:40%}

via:Simple Round Corners in CSS (revisited)

の部分を変えてみたら、きちんと大きさが反映されているじゃーないっすかぁー♪
(firefox 3で動作確認)

縦幅は、記事で紹介されているpタグの中身を修正すれば、その量に応じて変更されます。

pタグは他のタグに切り替えてもオッケーでtextareaで試しても大丈夫でした。

サンプルプログラムを写せばとりあえず表示はできるので、興味のある方は、是非、是非。

最後にエントリーが削除されるのが怖いので、プログラムを一部改変して引用させていただきます。


<!-- cssセクション -->
* {margin:0;padding:0}
body {
background:#e5e5e5;
color:#000;
}
.box{
float:left;
background:#fff;
padding:0 10px;
margin:10px;
/* IE double margin bug*/
display:inline;
}
.one{
/*
この部分を動かすことで
横幅を調節できる
*/
width:40%;
}
.inner{
background:#fff;
padding:10px 0;
margin:-10px 0;
position:relative;
/* ie7 haslayout issues fix*/
min-height:0;
}
* html .inner{
/* ie6 haslayout issues fix*/
height:1px
}

.top,.base{
margin:-10px -10px 0;
background:url(http://www.pmob.co.uk/pob/images/one-round-test2.png) no-repeat left top;
height:10px;
position:relative;
font-size:10px;
}

.base{
background-position:left bottom;
margin:0 -10px -10px;
}

.top span,.base span{
background:url(http://www.pmob.co.uk/pob/images/one-round-test2.png) no-repeat right top;
display:block;
height:10px;
font-size:10px;
}

.base span{
background-position:right bottom;
}

<!-- htmlセクション -->
<div class="box one">
<div class="inner">
<div class="top">
<span></span>
</div>
<div class="content">

</div>
<div class="base">
<span></span>
</div>
</div>
</div>

via:Simple Round Corners in CSS (revisited)

実行結果の画像
Photobucket
そー言えば、だいぶ前にかった↓の本まだ読んでないなー。

本が溜まっていく一方だー。

2010/02/16

[css]全称セレクタ*(アスタリスク)について

オープンソースを読んでいて、下記の表記が登場したので、ちょっと調べてみることに。

*{・・・ css contents ・・・}

*(アスタリスク)って、正規表現の考え方からすると、任意で何でもオッケーという意味があるので、おそらく全体にかかるstyleなのだろうと推測しながらぐぐったら的中

全ての要素に適用されるように、セレクタにワイルドカード "*" が使えます。

/* 全ての要素のマージンとパディングを 0 */
* { margin: 0;
padding: 0 }

via:全称セレクタ

予想が当たっていてうれしかった。

この本に書いてあったかなー??忘れてしまったよ。。。><。。。


2010/02/15

[php]POST処理

PEARのHTTP_Requestを使う際に、どうやってPOST送信するのかなーっと調べました。

PEAR::HTTP_Requestを使うによると、setMethodメソッドの引数にHTTP_REQUEST_METHOD_POSTをセットしてあげればいいみたいです。

プログラム的にはこんな感じ!!

require_once 'HTTP/Request.php' ;
$request = new HTTP_Request("リクエスト先のURL") ;

// メソッドをPOSTに設定
$request->setMethod(HTTP_REQUEST_METHOD_POST) ;

ちょっとこの本ほしいなー。

2010/02/14

秋田 真琴さんにお会いしちゃた♪

昨日、秋田真琴さんにお会いしました。

女優さんと、半径1m以内の距離で生まれてこの方お話したことがないので、最初、ものすごく緊張しました。

実際にお会いしたら、きさくに声をかけていただいて優しい方だなーっと思ったのですが、美人すぎて何を話していいのやら。。。

普段、テレビをまったく見ていないので、知らなかったのですが、ブラッディ・マンデイのシーズン2に出演しているみたいです。


wikipediaで調べてみると、他にも、バブルへGO!! タイムマシンはドラム式、熱血!平成教育学院とテレビ出演はもちろんのこと、東京新聞ほっとWebの体験レポータとしてwebでも活動をしているので、頑張ってほしいなと、影ながら応援しています。


2010/02/13

[mac]EPSON PM-T960で印刷できなくなった件

snow leopardに変更してから、不具合第1件目

EPSON PM-T960で印刷ができなくなりました。。。

原因をさぐってみると、こちらに回答がありました。(ラッキー♪)

どうやら一度、環境設定からプリンタを削除し、もう一度、プリンタを追加すれば、再び印刷できるようになります。

同じプリンターで困っている方がいましたら、是非、ご参考までに。

2010/02/12

[PHP]OAuth最終確定版

やっとOAuthのログインがスムーズに行くようになりました。

こちらの記事にものすごくわかりやすい説明があったので、結局、それを参考に実装しました。

前提条件として、こちらにあるOAuth.phpとOAuth_TestServer.phpの2つをアップロードして、あらかじめプログラムにincludeしておきます。

まず、https://www.google.com/accounts/OAuthGetRequestTokenにアクセスするところまで

$consumer['key'] = 'anonymous';
$consumer['secret'] = 'anonymous';
$consumer = new OAuthConsumer($consumer['key'], $consumer['secret'], NULL);

$server = new TestOAuthServer(new MockOAuthDataStore());
$server->add_signature_method(new OAuthSignatureMethod_HMAC_SHA1());

$sig_methods = $server->get_signature_methods();
$sig_method = $sig_methods['HMAC-SHA1'];

$endpoint = "https://www.google.com/accounts/OAuthGetRequestToken";

$request = OAuthRequest::from_consumer_and_token($consumer, NULL, "GET", $endpoint, array("scope"=>"http://tables.googlelabs.com/api/query"
,"oauth_callback"=>"リダイレクト先のURL"));
$request->sign_request($sig_method, $consumer, NULL);

$req = curl_init($request);
curl_setopt($req, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($req);

次に、https://www.google.com/accounts/OAuthAuthorizeTokenへの問い合わせについて

//tokens配列に問い合わせの結果をセットする
parse_str($result, $tokens);

$_SESSION["oauth_token_secret"] = $tokens["oauth_token_secret"];

$auth_url = "https://www.google.com/accounts/OAuthAuthorizeToken?oauth_token=".urlencode($tokens['oauth_token'])."&hl=jp";
$req = curl_init($auth_url);
curl_setopt($req, CURLOPT_HEADER, TRUE);
curl_setopt($req, CURLOPT_RETURNTRANSFER, TRUE);
$result = curl_exec($req);

list($header) = explode("\r\n\r\n", $result, 2);
$matches = array();

preg_match('/(Location:|URI:)(.*?)\n/', $header, $matches);
$url = trim(array_pop($matches));

//リダイレクトを行う
header('Location: '.$url);

この後、前回と違って、いきなりリダイレクトが開始されます。
(前回は、2回ログインする必要がありました。)

で、許可のボタンを押すと、リダイレクト先のurlに飛びますので、引き続き、そこから先の処理について。
$consumer['key'] = 'anonymous';
$consumer['secret'] = 'anonymous';
$consumer = new OAuthConsumer($consumer['key'], $consumer['secret'], NULL);

$server = new TestOAuthServer(new MockOAuthDataStore());
$server->add_signature_method(new OAuthSignatureMethod_HMAC_SHA1());

$sig_methods = $server->get_signature_methods();
$sig_method = $sig_methods['HMAC-SHA1'];

$endpoint = "https://www.google.com/accounts/OAuthGetAccessToken";
$tokener = new OAuthConsumer($_GET['oauth_token'],
https://www.google.com/accounts/OAuthGetRequestTokenの問い合わせの時にゲットしたoauth_token_secret);
$access = OAuthRequest::from_consumer_and_token($consumer, $tokener, "GET", $endpoint, array("oauth_verifier"=>$_GET["oauth_verifier"]));
$access->sign_request($sig_method, $consumer, $tokener);
$req = curl_init($access);
curl_setopt($req, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($req);

で、これの問い合わせの結果、oauth_token_secretと、oauth_tokenをゲットします。

$endpoint = "http://tables.googlelabs.com/api/query";
parse_str($result, $tokens);
$consumer = new OAuthConsumer('anonymous', 'anonymous', NULL);
$tokener = new OAuthConsumer($tokens['oauth_token'], $tokens['oauth_token_secret']);
$resource = OAuthRequest::from_consumer_and_token($consumer, $tokener, "GET", $endpoint, array('sql'=>'SHOW TABLES'));
$resource->sign_request($sig_method, $consumer, $tokener);
$req = curl_init($resource);
curl_setopt($req, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($req);

//デバッグ
print($result);

exit();

printの結果、正常に処理が返されました。

うーん、しかし、結局のところ、何が問題だったのだろうか?

ここから先は、推測ですが、おそらく、問い合わせにcurlを使わなかったのが原因なのではないかと。

リクエストの方法が違うだけでこうも結果に違いがでちゃうんだよなー。

CFと違ってPHPは、たくさん関数があるので一日でも早く慣れたいですね。

さっき東武練馬で50歳の恋愛白書を見たんだけど、全然、おもしろくなかった。
当初、キアヌリーブスが助演するということで、タイトル的にも、恋愛適齢期を想定して見に行ったのに、タイトルと内容があっていないような。。。

2010/02/11

[iGoogle]iGoogle's FriendListを公開

iGoogle's FriendListを公開しました。
Photobucket
実は、数ヶ月前に、iGoogleは、social面が強化されて、友達という機能が追加されました。

これは超噛み砕くとmixiのお友達機能のようなものと同じです。

どうやってお友達を追加するのかは、iGoogle gadgetの左側のサイドバーに↓のような項目があると思います。
Photobucket
友達という文字をクリックして、メールアドレスが表示されるので、友達にしたい方をドンドン追加していくだけ。

で、友達機能が搭載されたのはいいものの肝心の一体誰が友達なのかを、homeスクリーン上で確認する方法がないので(友達という文字を再度クリックしてはじめて誰が友達かを確認できる仕様なのです。。。)、今回、新たにhomeスクリーン上で確認できるようにgadgetを作成しました。

gadgetを追加すると、↓の画面が表示されると思います。
Photobucket
2つのチェックボックスのうち、一番上だけチェックすればオッケーです。

チェックした後、保存ボタンを押すと、友達が表示されます。
Photobucket
表示される項目は、名前と、写真と所在地でRefreshを押すと、友達一覧が更新されます。

ただ作っていて残念に感じたのは、iGoogle apiの仕様上、メアドが取得できないこと。

このガジェットを基準にsocial機能を搭載したgadgetをドンドン作れたらいいなー。

おとといひさしぶりにロンドンハーツを見ました。
ケンコバと、陣内が出ていてひたすら陣内の離婚話の突っ込みをしていてめちゃくちゃおもいしろかった。


2010/02/10

[php]配列のpushについて

いまさらながら、PHPの配列って便利だなーっと。

下のように組んだ時に、自動的に要素がpushされるんですよね。

$tempArray = array();
$tempArray[] = "hoge";
$tempArray[] = "foo";
print($tempArray[1]);

毎回、毎回、cfのように配列の大きさを取りながら配列を挿入する必要がないので、楽だな~。

しかし、最近、PHPの関数を調べているといつの間にか、firefoxのタブの数がものすごいことになっている。

手元でいつでも参照できるリファ本がほしいなー。


2010/02/09

[iGoogle][open social]取得できる個人情報

mixiのようにiGoogle上でfriendリストを作ることができないかなーっとちょっと調査。

参考プログラムはあったものの、結局、個人情報はこでだけしか取得できないみたい。

Supported fields

iGoogle lets you access the following fields for the current user, through a Person object:
* ID -- getId()
* Name -- getDisplayName()
* Thumbnail URL -- getField(opensocial.Person.Field.THUMBNAIL_URL)
* Location -- getField(opensocial.Person.Field.CURRENT_LOCATION)

via:Profile data

全然、情報が取得できないじゃーん。

せめてメアドぐらいは取得できるようにしてほしいなーっと。

話は変わりますが、今、通勤途中に↓を読んでいます。なんかものすごく売れていてアマゾンでも5位だった。