20100902_air2.jpg

今度作る AIR アプリでは、リモートサーバから Web ページ表示のためのファイル(HTML 及び画像ファイル等)を一旦ローカルマシン上に取得し、それを HTML コンポーネントで表示する予定。
回線が混んでいる時に、ジワジワと画面が表示されるのを見せたくないからだ。スパっと次画面に切り替えたいわけよ。

ということで、そのファイルの取得に(プロトコルは FTP にするか HTTP にするか現時点ではわからないが)Socket 通信を行うことになるので、Socket クラスを試しに使ってみた。

サーバ名を入力してボタンを押したら、そのトップページの HTML ソースを表示するだけの AIR アプリだ。

HTML 開発者用 Adobe AIR API リファレンスガイドには、JavaScript から AIR ランタイムクラスを使用する例が載っていたので、それを AIR アプリ用に変更してみた。

以下のようなソース。

<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="398" height="318">

 <mx:Script>

  <![CDATA[

  public var socket:Socket;
  public var response:String;

  private function get_html():void {

   socket = new Socket(input1.text, 80);
   socket.addEventListener(Event.CLOSE, closeHandler);
   socket.addEventListener(Event.CONNECT, connectHandler);
   socket.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
   socket.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
   socket.addEventListener(ProgressEvent.SOCKET_DATA, socketDataHandler);
 
  }

  private function writeln(str:String):void {

   str += "\n";

   try {
    socket.writeUTFBytes(str);
   }
   catch(e:String) {
    trace(e);
   }
  }

  private function sendRequest():void {

   trace("sendRequest");
   response = "";
   writeln("GET /");
   socket.flush();

  }

  private function readResponse():void {

   var str:String = socket.readUTFBytes(socket.bytesAvailable);
   response += str;

  }

  private function closeHandler(event:Event):void {

   trace("closeHandler: " + event);
   text1.text = response.toString();

  }

  private function connectHandler(event:Event):void {

   trace("connectHandler: " + event);
   sendRequest();

  }

  private function ioErrorHandler(event:IOErrorEvent):void {

   trace("ioErrorHandler: " + event);

  }

  private function securityErrorHandler(event:SecurityErrorEvent):void {

   trace("securityErrorHandler: " + event);

  }

  private function socketDataHandler(event:ProgressEvent):void {

   trace("socketDataHandler: " + event);
   readResponse();

  }

  ]]>

 </mx:Script>

 <mx:Text x="10" y="68" text="" width="376" height="238" id="text1"/>
 <mx:TextInput x="10" y="23" id="input1" width="297"/>
 <mx:Button x="315" y="23" label="Access" id="button1" click="get_html()"/>
 
</mx:WindowedApplication>

これでばっちり Web サーバと Socket 通信を行うことが出来た。

昔、Visual Basic 6 や Perl ではけっこう Socket 通信アプリを書いたが、最近はとんとご無沙汰だった。

さて、FTP プロトコルのシーケンスを思い出さないとな(^^;

20100902_test.jpg

今度、デジタルサイネージシステムを AIR アプリケーションで実装する話があるのだが、それに関連してユーザより

・AIR アプリ上で複数の Web 画面を同時に表示できるか?
・ローカルファイルも問題なく表示出来るか?

という二点について確認の依頼があったので試してみた。

結論から言えばどちらも問題無し。

3つの HTML コンポーネント(HTML レンダリングエンジンは WebKit)を AIR アプリ上に配置し、それぞれ、

http://www.yahoo.co.jp/
http://www.excite.co.jp/
・D:\X\hogehoge\test\test1.html(ローカルファイル)

にアクセスしてみたが、問題なく表示された。

ローカルファイルについては、Mac OS X 10.6 上でもテストしてみたが、

file:///Users/hogehoge/Documents/TEST/test.html(ローカルファイル)

へのアクセスも問題なく表示された。

ま、当然の結果だが、最近はセキュリティ関係のからみで、ローカルファイルへのアクセスが凄く制限される(ややこしい手順を踏まないとアクセス出来ない)ケースが多いので、そこがちょっと心配だったのだ。

もう一ヶ月も前から Nike+ のセンセーの電池がそろそろやばそうなので新しいのを購入したかったのだ。
しかし、デオデオの CompMart にも在庫がなかったので、7/28 に Amazon で注文したんだけど、昨日の朝になって「誠に申し訳ありませんが、以下の注文商品の入荷に時間がかかっており、お届け予定日がまだ確定しておりません。」てなメールが届いてた。

20100901_nike.JPGもう一ヶ月も経つのになあ。なんか、Apple が Apple Store 以外のオンラインショップへの自社製品の出荷を絞ってるらしいので、天下の Amazon といえども入荷時期が確定できないということか。やれやれ。

ほんま、Apple ちゅう会社は昔から調子に乗りやすい。まあ、はっきり言えば馬鹿なところがあるよね。今も、ほっといても iPhone、iPod、iPad がバカスカ売れるから調子に乗って「お前らに売ってもらわなくても、俺らは自分でよろしくやるから」って良い気になってるんだろう。馬鹿だ。会社というのは、いつまでも好調が続くわけないのに(^^;
この辺が、ジョブズもツメが甘いというか、ま、そのうち痛い目にあえば自分らの商売が如何に傲慢だったか思い知ることになるんだろうけど。

話を戻そう。

まあ、朝、そんな Amazon のメールを見たわけだけど、午後からデオデオ CompMart に出かけたら、最上階の Apple 製品コーナーに、Nike+ のセンサーが山のように・・・(^^;
欲しかった、Nike + iPod Sensor (MA368J/E)ですよ。
やっぱ、通販サイトには流さず、こうして Apple Store(デオデオの Apple コーナーは、Apple から応援の販売員が常駐している準 Apple Store 的なところ)には十分な在庫を確保してるんだ!

Apple め!!まったく消費者の利便性を無視した商売しやがって!
田舎在住の俺らも手軽に買えるよう、通販サイトにも商品卸せ!ボケ!

・・・などと怒りつつも、そろそろセンサーの電池が切れそうな俺は、すかさずデオデオにて購入したのであった。

嗚呼...Apple の小汚い商魂に負けてしまった・・・悔しい・・・

まあ、俺、デオデオの株主だし。(と、自分に言い聞かせてみる(^^;)

20100901_umeshu.JPG以前、このブログでも書いたことのある黄桜の日本酒ハイボール。
最近、けっこうテレビで宣伝してるね。そこそこ売れたんで、本腰入れて売り出したってとこか。

俺的にはけっこうイケてると思ってて、今も冷蔵庫にストック有りなんだけど、姉妹品の梅酒ハイボール・・・これはイマイチだったな。(^^;

正直、不味い。(^^;

これ、元々使ってる梅酒が不味いんだと思うよ。
で、俺は甘い酒は嫌いなんだけど、この梅酒ハイボールに関しては、甘味が足りないと思う。
多分、爽やか系を目指して甘味を抑えたんだと思うけど、それが、ちゃんと熟成してない、まだ漬けたばかりの梅酒みたいな、そんな未成熟な味になっちゃってる。おかげで、変なアルコール臭さだけが前面に出てるんだよな。

つーことで、新発売の梅酒ハイボール、これは売れんと思うよ。
新しいもの好きの人は、早めに手を出しておいたほうがいいかもね。(笑)

今日の昼飯は久しぶりに立町の「麺や すずらん亭」で。

20100831_suzuran1.JPG昔(店名に「麺や」が付いてなかった頃ね)はよく行ってたんだけど、数年前にラーメンをメニューに追加してリニューアルオープンされてからは今日で二度目。
前回行った時に、メニューに追加されていた「汁なしカレー担々麺」を食べて、「なんか違うかも・・・」と思ってすっかり足が遠のいてた(^^;
リニューアルする前のスタッフの兄ちゃんが好きだったんで、スタッフが変わってることにも若干違和感あったし。

・・・が、今日、改めて新しいスタッフのお兄ちゃんと話しをしてみると、顎髭がワイルドなんだけど(笑)真面目なナイスガイ(死語)じゃね。

「汁なし冷やし担々麺」の大盛り 730円也を食べたのだが、味の方もナイスであった。

もっとも、「きさく」の汁なし担々麺を愛する俺には、すずらん亭の担々麺がマイルドなのはわかっていたので、今日は「山椒、唐辛子、共に多めで」と注文。
「じゃ、いつもの倍くらい入れておきましょうか?」とお兄ちゃんが笑顔で言うので、「いや、倍は少し多いかも」と内心動揺しつつ、「ええ。倍で頼みます」と答えてしまった俺。
「きさく」で山椒の量を倍にしたら、相当舌にびりびり来る激辛担々麺になってまうぞぉ~と若干脅えながら、「暑い時は辛い物が美味いよね」とか余裕のコメントを発しつつブツが出てくるのを待った(^^;

・・・が、大正解だったよ。

麺を丹念にタレと混ぜ合わせ、一口すする。

20100831_suzuran2.JPG冷たい麺に大量の山椒を入れると味がエグくなるので、「冷やし」にはそれを中和?させるためにトマトソースが混ぜられている。(「きさく」とかもそうだよね?)
まずは、そのトマトソースの酸味が口いっぱいに広がり、麺の冷たさとともに爽やかな食感を与えてくれる。これが心地良い。ほんと、暑さを忘れさせてくれる味だ。んで、その後でジワっと山椒と唐辛子が効いてきて、しっかり口の中で汁なし担々麺の味が完成されるという感じ。

美味い!俺には山椒&唐辛子倍増がちょうどよかった。
「きさく」のように、一口食っただけでむせるほど強烈に効いてくるわけではないが、じわじわと増量した分だけ十分な辛味が口内に広がり、ウマし、ウマし!

もしかしたら、山椒&唐辛子の量が普通だったら物足りなく感じて、「やっぱ、すずらん亭はもういいや」と思ったかもしれんけど(^^;

街中に、こういう美味い汁なし冷やし担々麺を食わしてくれる店があるのは幸せだな。

店のお兄ちゃんは「今度は、温かい普通の汁なし担々麺も試してみてください」と言うてたけど、いや、もう二、三回はこの冷やし担々麺(山椒&唐辛子倍増版)を食ってからにさせてくれい。:-)

20100827_vb.jpg

MBP に Visual Studio Express を入れたので、デスクトップPCに入れた時のアクティベーションキーで登録しようとしたらさすがに怒られた(^^;

「このプロダクトキーは無効です。」と。

まあ、当たり前だが、無償製品なので、もしかしたらいけるかな・・・と思って(^^;
やっぱ駄目だった。

一瞬、「Windows Live ID も新規に別メールアドレスで取得しないといかんかったりせんじゃろうのお!?」とか不安がよぎったが、さすがにそんなことはなくて、ひとつの Windows Live ID で複数の同じプロダクツに対するアクティベーションキーが取得出来るようだ。
つーか、それが当たり前なんだけど、Microsoft と Apple は何をしてくるかわからんからな。(笑)

ということで、「オンラインで登録キーを取得する」ボタンからキーの取得画面に飛んでキー取得。無事アクティベーションは終了した。

しかし、アクティベーションキーとかプロダクトキーとか登録キーとか、用語は統一しろよ>Microsoft

20100827_sql_server.jpg

MBP に VMware Fusion を入れて、その上で動かしている Windows 7 Home Premium に、Microsoft Visual Studio Express をインストールしてみた。
この間、メインのデスクトップPCに入れた Visual Basic 2010 Express ね。

SQL Server なんか使わないんだけど、案件として出てくる可能性はあるので、一応、Microsoft SQL Server 2008 Express Service Pack1(x86) も一緒にね。

そしたら、SQL Server 2008 のインストールが異常終了しやがんの。

なんか、インストール進捗状況のインジケータが動かなくなったので、タスクマネージャーで見てみると、CPU の使用率が 100% とかになってるし。ああ、なんか無限ループにでも入ってるのかなあ!?とか思いながらほってたら、10数分後に「Managed SQL Server Installer は動作を停止しました」のエラー表示が・・・

とほほ。
ま、「プログラムを終了します」を選んだら、その後のインストールは無事終了し、Visual Basic 2010 Express 自体は全然問題なく使えた。
本当に、SQL Server のインストールだけ失敗したみたいだな。

まあ、すぐに SQL Server を使う予定はないので、そのままにしておいてもよかったのだが、やっぱ気持ち悪いので駄目もとでもう一回インストーラを実行したら、今度は正常に終了した。:-)

なんやねん、もう。(^^;

先週、お客さんのところでの打合せが昼前に終わったので、取引先のOさんと千田町のラーメン屋「中華そば げん忠」へ。

20100826_genchu1.JPGここのラーメンはシンプルな醤油ラーメン。
醤油の香りより、鶏と豚(?)の肉の香りが強く出た典型的な「広島の醤油ラーメン」という感じ。

実は、俺、この鶏の香りが駄目なのよね。鶏の皮が苦手なので、鶏の香りが前に出てくるスープはどうしても苦手。あのぶよぶよの皮を連想してしまって。まあ、鶏だけではなく、豚も牛も、要は「肉肉した匂い」が全部苦手なんだけど。菜食主義者か!!?>俺(^^;
なので、例えば広島の人が愛する「すずめ」のラーメンもどこが美味いのかまったく分からない。(笑)

でも、げん忠には強い味方があったのだ。
カウンターに置いてある「揚げニンニク」である。
ニンニクをローストして細かく砕いたコレ。
これをラーメンにスプーン一杯、二杯とかけて混ぜると、これがもう至福の味に。何と、広島風醤油スープは、こんなにもローストしたニンニクと合うのか!!

20100826_genchu2.JPG午後から打合せが入っていたのに、思わず何杯も揚げニンニクを投入してしまいましたよ。
おかげで、千田町のマダムジョイで牛乳とガムを買い込み、午後からずっと噛み噛みしてました。(^^;

あと、ここの麺はストレートの細麺なのも嬉しい。
醤油ラーメンには中細麺を合わせてるところが多い気がするが、俺は細麺好きなのでグーよ、グー。
しかも、ちゃんと作る前に麺の固さを聞いてくれるのも良いね。九州とんこつ系の店では当たり前だけど、醤油ラーメンの、しかも個人の店だと聞いてくれないところも多いし。いや、もちろんこっちから言えばいいんだけど、聞いてくれると尚良い。

それと、ここの麺はあまり弾力の無いタイプじゃね。俺の好きな「つけ麺本舗 辛部」の激辛ラーメンの麺みたい。これまた俺の好みのタイプ。

どうしても醤油ラーメンは低いところから評価が始まるんですが(^^;、げん忠のラーメンはなかなか良かったですぞ。

今年は仕事が忙しかった上に、14日の自分の地区の盆踊りのアレコレでへとへとになってしまった。
そのため、14日の別所畑地区の盆踊りを挟んで、いつもなら13日には祖生東小学校で行われるあざみ会(末元地区)の盆踊りに、15日は中村の柱松に出かけるのだが、今年は両日とも家でじっとしていた。

で、その13日のあざみ会の盆踊りの日。

20100813_azami3.JPGリビングでビールを飲みつつまったりしていたら、パンパンと花火の音。
カーテンを開いてみると、夜空に花火の大輪が。

昔、広島市の江波に住んでいた時も、宇品の花火大会を部屋の窓から見ることが出来たのだが、随分遠くで小さな花火がポンポン上がってる感じだった。江波から宇品も距離があったからな。

「何か迫力ねえなあ」「宇品の人混みの中に子供を連れていくことを考えたら十分でしょ?」とか夫婦で言いながら見てたんだが、あれに比べると随分はっきりと花火を見ることが出来る。

iPhone のカメラで撮ると、短いレンズなので何か随分遠くに小さな花火が上がっているように見えるんだけど、実際はそこそこの迫力で楽しめた。
そりゃそうだよな。
多分、花火を揚げている地点まで、うちから 500m も無いだろう。

ほんの数分間だったけど、田舎の盆踊りの締めの花火にしては、けっこうな数を上げてたし。クーラーの効いた部屋で、十分花火を楽しむことが出来た。

来年はちゃんと会場に足を運び、寄付もしないといかんじゃろうのお。(笑)

はなの舞を出て、「もうちょっと焼酎飲んでく?」と、N◎君と駅前の交差点を横切って「岩国一」へ。
岩国一は俺らの知る限り岩国で一番焼酎の品揃えが良い店だ。

20100829_iwakuniichi.JPG食い物は大したものがないし(いや、色々良い肴は置いてあるんだけど、量とか見た目とかで華が無いというか(^^;)、焼酎の飲み方にもあれこれ注文を付けてくるし(良い焼酎をお湯割りで頼んだら、給仕のおばはんに「こんな良いお酒を割るなんて」とか言われた(^^;)決して俺の好きなタイプの店ではないのだが、「色々な焼酎がある」の一点でついつい足を向けてしまう店なのだ。

まあ、大将の焼酎に関する蘊蓄は勉強になるし。(ただ、飲み方に干渉するのだけはホントやめてほしいけどね(笑))

昨夜も、最近ソーダ割にすると麦焼酎の香りが立つことを発見したN◎君が、「すみません。ソーダ割できます?」と聞いたら、0.5秒で大将から「出来ません」と応えが(^^;
もう、こっちを見もせずに即答だったよ。気の弱い客だと失禁するよ、まったく。

まあ、俺らは慣れてるので、ただただ苦笑いという感じだったがな。
んで、他の店ではなかなか飲めない原酒系をロックでちびちびと。

例えば、萬年無濾過の白麹と黒麹をそれぞれ頼んで飲み比べてみるとか、岩国でも出来る店は少ないけえね。:-)

で、昨夜は店のテレビでずっとカープ戦を流してたので、他の常連のおじさんとすっかりカープ応援大会になってしまった。

しかし、飲み始めた時は1点差で勝っていたカープだが、三番手の青木が押しだし四球を与えて同点に。店内に響く中年男子の悲鳴!(^^;

この回、5点も失ってやんの・・・

「カープは投手がいやがろうが肩を壊そうが、先発が必ず完投するというルールを作れ!」とか「少年野球と同じようにカープ戦だけは7回までにしてくれ!」などと、酔った勢いでわめき散らす。

「でも、カープのピッチャーなんか皆、FAで阪神とか巨人に行くのが最終目標だろうから、勝つことよりも肩を労ることに神経を使うんだろうな・・・」とどんより。(^^;
松田オーナーの「FA宣言したヤツはもう相手にしない!」というスタンスは、そろそろ改めるべきじゃないのか?FAという制度があるのが現実なんだからな。その前提でチーム作りを考えないと。

結局、6回裏に前田が出てきたところで放送終了。日曜日なので店も21時に閉店。岩徳線は10分前に岩国駅を出てしまった。

蒸し暑い夜なのに、俺の心は冷え冷えしていたのであった。(笑)

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

電気ウナギ的○○ mobile ver.

携帯版「電気ウナギ的○○」はこちら