メインコンテンツまでスキップ

今年もなんとか年越せそう

· 約2分
Yu Sasaki
Enterprise Security Manager / Advisor

夏みかん(12月) 先日、親戚の所へお歳暮持参で年末の挨拶に行ってきたけど、皆元気そうでなりよりでした。また、私も彼らに元気な様子といい話を伝えられて良かった。たまにしか会えないので再会の喜びはひとしお。しばらくおしゃべりした後はコタツでまたーりしてました。午後から暖かくなってきたので庭を散策していたら、ぽつんと実をつけたゆずの木↓があったので丁度冬至ということもあり数個頂きました。 ゆず(12月) 帰路の途中、高校の先輩から忘年会のお誘いがあったので飛び入り参加させてもらいました。席の隣になった方が大学時代にコンピュータ・サイエンスを学んでいたので、その時の研究内容を具体例を交えて分かりやすく説明して頂いたのですが、私の英語力がまだまだ足りないばっかりにうまく話を膨らますことができませんでした。それがもったいなかったので今後は英語学習の割合を増やして他を減らし、使う機会も積極的に設けていこう。

AIR: SQLiteでデータの挿入と検索 - SQLConnection、SQLStatementクラス

· 約3分
Yu Sasaki
Enterprise Security Manager / Advisor

AIRアプリケーションからSQLiteのDBにアクセスするには主にSQLConnectionとSQLStatementクラスを用います。基本的な処理の流れは、

  1. SQLConnection#openAsync(<Fileオブジェクト>, <モード>)でDBに接続
  2. SQLStatement#textプロパティにSQL文を代入しexecute()で実行
  3. その際、フィールド値はSQLStatement#parameters["@<定義されたパラメータ>"]で代入する
  4. SELECT文の検索結果データははSQLStatement#getResult()で取得
  5. 結果データの型はSQLResultで、データそのものはdataプロパティ(Array型)に入っている。e.g. <SQLResult>.data[i].<フィールド名>

下のプログラムはDBに接続してテーブルの作成、レコードの追加、検索を行うサンプルです。

AmazoCluster: 一発で納得のいくものができればいいけれどね・・・

· 約3分
Yu Sasaki
Enterprise Security Manager / Advisor

タイトルは反語として読む。 Amazon Cluster bata Uncompleted Demo(Uncompleted): ※追記:2011年現在Amazonのサービス仕様の変更により上記のリンク先アプリは正常に動作しません<(_ _)>

これは何?

Amazon.co.jpの任意の商品の類似商品を線で結び関連付けを視覚化するアプリ。(見にくいね。まだ未完成だけど、暇を狙って完成させる)

どうやって使うの?

  1. 商品画像をダブルクリックすると類似商品の画像が表示されます。またその画像をダブルクリックすると・・・以下ループ。
  2. 画像をドラッグすると線で結ばれた類似商品も納豆の糸のようについてきます。

今後直したい/追加したい機能は?

  1. 商品の検索フォーム
  2. 商品-類似商品間の距離調整だけでなく類似-類似間の調整も行う
  3. 各イベントによる処理のタイミングの調整
  4. ドラッグ中の商品とその関連商品を結ぶ線の色と画像のサイズを変更
    • 関連の深さによって色合いとサイズが変化
  5. 商品をクリック/マウスオーバーしたときのアクションを増やす
    • タイトル等の商品の詳細情報を表示
    • Amazonページへのリンク
  6. 関連度合いによるエフェクトの区別
  7. 3D表示:Z軸への意味付け(時間軸、ここでは出版年度なんかは最適かも?)

それができたら使うメリットはある?

たぶん色々とある。作る前から作るべき明確なメリットを定義して作り始めるのがベターというかマストだけど。どちらにせよ仮説と検証の試行錯誤は必要。

そういえば、なんで作ろうと思ったの?

以前授業の課題で書いたX11でフラクタル描くコードと卒研のコードを読み直していたら今回のアプリを想像して「ん?これくらいならサクッと書けるかも」と思ったのが発端。また、「検索行動の典型」=「フォームにキーワードをスペースはさんで入力→ポチっ→ページのリストから選択」とはひと味変った検索のメリットを見出したい、というのがメタ動機。その一例(にできればいいね)。

作って勉強になったことは?

一応作ることで、以前よりクラスの役割付け(機能の結合度合い)とデザパタの適応を以前よりスムーズにこなせるようにはなった。おおまかな設計→コーディングの速度も少し上がった(気のせい)。でもそれ以外は・・・うーん、今後の課題。 今回はAmazonの商品を線で繋げたけれど、それをTwitter(つぶやき-つぶやき中のキーワード間、ユーザ-フレンド間)やDelicious(タグ-ブックマーク間、ユーザ-フレンド間)、WordPressブログ(タグ-記事間)に変更しても基本UIの部分はわずかな修正でいけるクラス群だと思う。もちろん、場合によっては類似度を算出する部分も用意する必要がある。

最近ブログ書いてないね。

卒研とバイトその他で詰まっているのは理由としては身も蓋もナフサ。単に私の生活の中でブログのプライオリティや使い道が変化してきているのかも。

ActionScript: 画像ファイルをダウンロードして表示 - Loaderクラス

· 約1分
Yu Sasaki
Enterprise Security Manager / Advisor

サーバ上にあるイメージファイルをダウンロードして表示するサンプル。Loaderクラスで画像など(SWF, JPEG, GIF, PNG)をダウンロードし、そのプロセス中に送出するイベントはLoaderInfoクラスが管理。

ソースコード

package info.yukun
{
import flash.display.Loader;
import flash.display.LoaderInfo;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.IOErrorEvent;
import flash.net.URLRequest;
/**
* 外部画像のロードサンプル
*/
public class LoadImage extends Sprite {
private var imageURL:String =
"http://www.google.co.jp/intl/ja/images/about_logo.gif";
private var imageLoader:Loader;
public function LoadImage():void {
init();
}
private function init(e:Event = null):void {
imageLoader = new Loader();
var imageURLreq:URLRequest = new URLRequest(imageURL);
var imgInfo:LoaderInfo = imageLoader.contentLoaderInfo;
imgInfo.addEventListener(Event.INIT, onInit);
imgInfo.addEventListener(IOErrorEvent.IO_ERROR, onIOerror);
addChild(imageLoader);
imageLoader.load(imageURLreq);
}
// ダウンロード完了
private function onInit(e:Event):void {
trace("Can access the loaded object.");
}
// IOエラーによりダウンロード失敗
private function onIOerror(e:IOErrorEvent):void {
trace("IO Error.");
}
}
}

リファレンス

  • Loader - ActionScript 3.0 Language and Components Reference
  • LoaderInfo - ActionScript 3.0 Language and Components Reference

MySQL: 同じ値のフィールドをグルーピング - GROUP BY句

· 約4分
Yu Sasaki
Enterprise Security Manager / Advisor

前回はソートした検索結果を出力しましたね。今回は、フィールドの値が同じレコードをグルーピングし、そのレコード集の任意のカラムに対してAVG(),MIN(),MAX(),COUNT(),SUM()...などの関数計算を適応してみます。使用するレコードは以下のものを用います。

サイトメンテナンスのお知らせ - 日→英翻訳スクリプト

· 約1分
Yu Sasaki
Enterprise Security Manager / Advisor

↓使用時の図 JavaScriptでホップアップ翻訳 先日JavaScriptを学び始めてみたので、手始めにこのブログに翻訳スクリプトを付けてました。この機能は単一記事ページ上でテキストをドラッグするとマウスの近くに英訳が表示されます。まぁ自動翻訳の性能は・・・f^^;一応スクリプトのロードを計測したら、たいして時間と負荷がかからないようなのでしばらく様子みて、また私の学習度合いに合わせてUIを改良してみます。設置の動機は最近なぜか海外からのアクセスが増えてきているから。 追記: Google Chromeでは使えないみたいです。原因究明中です。 追記2: 使ってみて案外煩わしいので取り外します>_<