| 社長日記 | 開発実績 | 勉強会 | プレスリリース |
FlexのDatagrid上で値を直接編集できるとカッコいい。
普通にeditable = true にしただけでは当然メモリ上の値が書き換わるだけなので、サーバに更新を通知しなければならない。
itemEditEnd というイベントがあるのでここに処理を仕込めばOK。
新しく入力された値と、前に入力されていた値を取れるので、変化があれば更新する処理を書く。
[Datagrid側]
<mx:DataGrid width="100%" height="100%" dataProvider="{logic.model.collection}" editable="true" itemEditEnd="logic.getCellInfo(event);">
[AS側]
public function getCellInfo(event:DataGridEvent):void
{
var editor:TextInput = TextInput(event.currentTarget.itemEditorInstance);
//新しい入力値
var newVal:String = editor.text;
//古い値
var oldVal:String = event.currentTarget.editedItemRenderer.data[event.dataField];
//更新処理
・・・・
}
こんな感じでいいんじゃないでしょうか。
--
2007年11月27日
Googleのページランクなんて何かのAPI介せばすぐ取れるのかなと思っていたのですが、公式には公開されていないようでした。
実現するためには、
(1)第3者のサイトのサービスを使って取得する方法
(2)ch値を計算してGoogleから直接取得する方法
(3)CPANのモジュールを使って取得する方法
といったところでしょうか。
(1)第3者のサービス
⇒ TRYNT
正常な値が返ってくるが、結構な確率でページランクが全て10が返ってくる。
この他にもたくさん第3者によるサービスが存在していた。
(2)ch値生成
PHPでch値を生成する方法が掲載されていたのでそれを流用。
正常に動作した。
(3)CPANモジュールを使う
⇒ WWW::Google::PageRank
これも内部でch値を生成してGoogleにアクセスしている。
(2)(3)はやってることは同じ。
そもそもページランクって、現在のGoogleのアルゴリズム的にどんな位置づけなのでしょうか。
あんまり重要でなくなった気もしているのだが、詳細は不明。
--
2007年11月22日
Leopardを見てからというもの、にわかMacファンになってしまった。
自分が使ってるWindowsマシンもみかけだけでもMac風にならないかなと思って調べてみると、あるある。
■まず壁紙をMacのものにする
■ObjectDockを使ってDock環境を実現
■デスクトップ上のアイコンを全て片付ける
こうしてできた環境がこちら↓。

気分転換にはまぁまぁいいんじゃないでしょうか。
ObjectDockはオススメです。
--
2007年11月15日
PHPでExcel出力なんてできるのかな?と思って調べてみると
すぐ目についたのが「Excel_Reviser」。
シートを追加したり、セルを指定して書き込みができるので機能は充分。感謝です。GPL2.0ライセンス。
早速サンプル作って動かしてみた。
WindowsXP+Apache1.3.37+PHP5.2 で動作確認済み。
(サンプル)
<?php
require_once("./lib/reviser.php");
$reviser=NEW Excel_Reviser;
$reviser->setInternalCharset('UTF-8');
//1シート目
$reviser->setSheetname(0, "シート1です");
$reviser->addString(0,1,1, 'うそうそ');
$reviser->addString(0,2,2, 'ほんまほんま');
//2シート目
$reviser->addSheet(0,1);
$reviser->setSheetname(1, "シート2です");
$reviser->addString(1, 3, 3, 'えー');
$reviser->addString(1, 4, 4, 'マジ?');
//3シート目
$reviser->addSheet(0,1);
$reviser->setSheetname(2, "シート3です");
$reviser->addString(2, 5, 5, 'すごい');
$reviser->addString(2, 6, 6, 'やるな');
//カレントフォルダに出力
$reviser->reviseFile('sample.xls', 'output.xls', "./");
?>
--
2007年11月12日
Alexaに登録してアクセスキーもらいました。
まずはAPIの仕様書を探す。
なかなか見つからなかったがありました。
⇒ Developer Guide
早速サンプルPHPを見ながら実装。
401エラーが返って来る。。
なんで?
正式登録するだけではダメらしく、管理画面にログイン後「Complete ・・」ボタンを押すことで通るようになった。
で、次にAPI仕様書を詳しく読む。
URLごとに1回1回リクエストを投げるだけでなく、バッチで一括問い合わせもできるとのこと。ただし上限5件まで。
UrlInfo と SiteLinkingIn の情報が欲しいのでそれぞれのアクションにリクエストを投げることで対応できた。
レスポンスの形式はXML。
1件の問い合わせなら1秒程度で返ってくるので全然問題ないと思う。
--
2007年11月08日
AlexaのAPIを探していたたら Alexa Web Information Service (AWIS) を見つけた。
一瞬「お、あった」と思ったのですが、
--Alexaより引用---
Pricing
* Pay only for what you use. There is no minimum fee, and no start-up cost.
* $0.00015 per request ($0.15 for 1,000 requests)
------------------
有料。
API公開するとなると、サーバ増強したりしないといけないし、ランニングコストがかかるから有料ということでしょうか。
とはいえ、安いといえば安いか。
で、サイトをクロールして値を取得すればよいかと思ったのですが、htmlのデータ部分に非表示のダミー数字が入っており、簡単にはデータを取れない仕組みになってました。
そこにはこんなコメントが。
Did you know? Alexa offers this data programmatically. Visit http://aws.amazon.com/awis for more information about the Alexa Web Information Service.
きちんと登録したお金払ってね、と。了解です。
--
2007年11月06日
先週、お台場で開催されたAdobe Max 2007に参加してきました。
テーマは『CONNECT.DISCOVER.INSPIRE.』
テーマにある通り、講演・セションでいかに自分が「inspire」されるかが楽しみで。
話聞いたり、デモ見るだけで「早く帰って作ってみよう」という気になり非常に有意義でした。
新製品で目を引いたのは『Thermo』でしょうか。
⇒ Thermoの紹介記事
これは早く使ってみたいです。
YahooメールがFlex化され、楽天もショッピング用Airを作ったり、DocomoもFlashLite3対応になったりと、世の中かなりAdobe化している。今後もこの流れは続くと思われる。
そうなるとGoogle検索の仕組みも変わってくるのかも。
--
2007年11月05日