AIRアプリのインストールエラーが表示される件

久しぶりの投稿になってしまった。。

暇だった訳では無く寧ろ逆で、忙しく、こんなところに書き込みする時間が無かったというのが正しい(笑)

久しぶりに書込したのは、当然、自身の覚え書きの為

某AIRアプリのメンテナンスがあって、バージョンを上げてリリースパッケージを客先へ渡したところ

『インストーラーが正しく構成されていないのでアプリケーションをインストールできませんでした。アプリケーションの作成者にお問い合わせください。』

のエラーが出ると言う。

「?」と思って、自分でもやってみたが、確かにインストールエラーでインストール出来ない。

何でだ??と思い、エラーログを見てみた。

The certificate of the installed app fails to match either the signature or migration signature of the AIR file

と言うのが出ている。。

最初は全く理由が分からなかったが、判明した。

既に、前のバージョンのAIRアプリがインストール済みだったのが、今回のバージョンアップの際に「証明書」を新しく作成してインストールパッケージを作成してしまったのだ。

つまり、既にインストールされているアプリとは構成ファイルは同じなので同じアプリと認識されているが、証明書だけが異なると言う状態が発生しているのだ。

これは同じ名前のアプリで怪しいアプリがインストールされないセキュリティ対策であろうが、この為、インストーラーがインストールを中止していた。

既にインストールされているアプリをアンインストールしてインストールすると無事にインストールされたが、これは由々しき問題で、通常アプリをリリースする際は「オレオレ証明」なので、適当に発行しているのだが、やはりこの辺りをキチンと管理していなくてはいけないと言う事で非常に反省

カテゴリー: 未分類 | コメントは受け付けていません。

WindowsUpdateでIEからWebminへ接続できなくなる

今朝Webminへ接続すると、ログインページが表示されない。
サーバの問題かと思ったがそうでも無さそうでググルとこんなページがあった。

http://www.prox.ne.jp/maintenance/maintenance_20121016.html

『ご利用PCにて、Windows Update の更新プログラム(KB2661254)を適用しますと、
キーの長さが 1024 ビット未満である RSA 証明書を使用してセキュリティで 保護されている
Web サイトへのアクセスをブロックするようです。

http://support.microsoft.com/kb/2661254/ja

Webmin/Usermin の証明書は、512ビットにて作成されて おりますので、
更新プログラム (KB2661254)を適用されたPCですと、 Internet Explorerにてアクセスが
出来なくなってしまいます。
Google ChromeやFireFox などのブラウザですと、接続が可能かと存じます。』

とあった。

毎度の事だが、Windowsの場合余計なセキュリティ対策が増えて非常に使いにくくなっている。
取り敢えず上のページに対策も書いてあったので処理したがやれやれだ。

カテゴリー: 未分類 | コメントは受け付けていません。

データベースの構造変更は注意

随分以前から運用しているシステムでテーブルに項目を追加しなければいけない追加機能の要請があった。

取り敢えず、テーブルに必要な項目を追加して動作確認。

OKだったので、他の修正を含めて取説を書く為に動作確認中、修正箇所とは関係ないと思われる場所で何故かSQLの問い合わせが返ってこない箇所を発見した。

該当する箇所にエラートラップを仕掛けて、何の不具合が発生しているのか調べるとambiguousが出ている。

これはsqlの定義が曖昧だという意味だが、「あ!」と思った。

追加した項目と同じ名前の項目名を別のテーブルで使っていて、丁度joinで接続した問い合わせをしている箇所があったのだ。

だいたい構造を変更する場合は用心しないといけないのだが、うっかり適当な名前を付けた事で、違う場所へ影響が出てしまったのだ。

すぐにテーブルの項目名を変更して、必要な箇所を修正すると正常に稼働した。

僕はこの様な項目名の変更やタイプミスが無い様にデータベースのテーブル名は絶対ハードコーディングせずに配列で設定して、sqlも全て配列を参照して作成するようにしているので、こう言う事態でも修正箇所が少なく分かりやすく、これが幸いした様だ。

幸いリリースする前で良かったが、これだから製作から暫く期間が空いたシステムの修正は嫌いだ(-_-;)

カテゴリー: 未分類 | コメントは受け付けていません。

HTML5 builderを入れてみた

エンバカデロ(この名前いつも分からなくなる)から出たばかりのHTML5 Builderを入れてみた。30日の試用版だ。

正直、Flex関係しか興味無かったので、殆ど知らなかったが、ここ数日色々調べてみると、方向転換するにはSilverLiteも怪しい感じだ。
すでにMicrosoft自身が見切りを付けている風でもあるし、その辺はAdobeと共通している。

丁度、今現在、混沌とした状態で何が技術的に抜きん出るのか良く分からないにしても、AdobeもMicrosoftもHTML5と言う点では共通の方向性を見ている様だ。

正直、HTML5に関しては今でもどうなの?と思っている。

特に業務用で必要なデータグリッド関係などの複雑な機能を持ったコンポーネントが現在のAIRアプリケーションのレベルで可能なのだろうか?と思っている。

しかし、今現在、業務用=Windowsと言う感じでも、それが将来どうなるのか分からない展開になっているし、現在の流れで行けば、業務用と言っても、マルチプラットフォームに対応する必要性は高くなっている。

その流れの中でのHTML5と言うことなら、いつまでも敬遠しているわけにも行かない。

個人的にはAIRがそのままの流れで生き残れるのでは無いかとは思うものの、やはり保険は欲しいところだ。

現時点で、オープンのIDEは沢山あるのだが、僕がこのHTML5Builderに注目したのは、現在のバックエンドのPHP技術とHTML5ベースの開発を一つに統合出来そうだからだ。

旧BorlandとはDelphi5を使ったことがあり全く縁が無い会社ではない。
当時はDelphiは画期的だと思ったのだが、その後はWEBベースへ移行した為縁が無くなった。

もしかすると、これでまた付き合いが出来るかもしれんが、ホント何処へ進むのか全く分からない時代だ。

カテゴリー: 未分類 | コメントは受け付けていません。

visual studio 2012 expressを入れてみた

少し仕事が一段落気味なのと、次世代の開発環境を検討する為、visual studio 2012 expressをインストールしてみた。

AIRは当面生き残ると思うが、どうもAdobeそのものの動きが元のデザイン系へ戻りそうな雰囲気もある為、ある程度で見切りをつける準備もしておいた方が良いかもしれない。

但し、RIAの路線はそのまま続けて行きたいと考えていて、近頃「ブラウザ外実行」と言うセンスが無い響きではあるが、SilverLiteがAIR並にデスクトップで利用できる様になっている為、気になっていた事もあり、最新のvisual studio 2012 expressをインストールしてみた。

少し触った印象ではこれまで使っていたFlashBuilderとかなり似ている。
FlashBuilderがvisual studioに似せていたのかもしれないが、使い勝手もそれ程差が無さそうだ。

もちろん、ActionScriptからVBかC#と言う以降はあるが、元々VBは使用経験もあるし、現在でもVBAは使用しているし、C#も以前若干アプローチしてみたが中々扱いやすそうだった。

問題は、AIRやこれまでのFlash(Flex)クライアントを移管する場合にサーバサイドとの連携をどうするか?と言う事だ。

クライアントは書きなおすとしてもバックエンドやデータベースはそのまま流用したい。

これを解決する手段がWEBORB for PHPだと思っているが、この手法がある程度見えれば、AIRとSilverLiteの両方をクライアントターゲットとして考えることが出来、これまでのサーバサイドもそのまま利用出来る。

もう暫く開発者として生き残れるかも?

カテゴリー: 未分類 | コメントは受け付けていません。

最近

あれこれと多忙になって、FlashBuilderでAIRアプリの開発が増えているのだが、FXUGの中で、AdobeがFlexをオープンソース化した事に関して見通しを心配する声が上がっている。

僕自身も特にこれと言って情報を持っている訳では無いので何とも言えないが、一つだけ思っているのはFlexは素晴らしいフレームワークだと言う事だ。

もちろん、チョコチョコと不満な事はあるし、アホなバグもある。

しかし、(恐らく、Adobeが流行らせた言葉だと思うが)RIA(リッチインターネットアプリケーション)の中で、Flexに匹敵するフレームワークは未だに存在しないと思っている。

その点で、この技術が本当に無くなってしまうのかと言うのは疑問だし、オープンソース化となると企業のエンタープライズでは採用されないと言う声もあるが、中小企業をターゲットにしている僕の場合、そんなの知ったこっちゃない。

現時点のレベルでも中小企業向けのアプリケーションなら充分使い物になるし、使える間はFlexの技術を応用して、サクサクとRIAを開発していくし、素晴らしいといっているのは、その思考も含めてだ。

フロントとサーバサイドを別ける事で、仮にFlex自身が使えなくなったとしても、サーバサイドをそのまま流用できる技術はある。

例えば、WEBORB for PHPを利用すれば、Flexだけで無く、SilverLiteでも接続が可能だ。

随分以前に手掛けた初期のRIAで、僕はPHPObjectと言う日本ではあまり使われなかったREMOTEObjectを採用したが、それは非常に上手く行って機能している。

只、AS2.0までしか対応しなかった為、その後、一部を変更することで、WEBORB for PHPでそのまま流用出来る事をサンプルを幾つか作って確認していたが非常に使いやすい。
FlashBuilderでの開発ではWEBORB for PHPを使う予定だったが、その後ZendFrameworkのZendDBの方が生産性が高いと分かった為、そちらへ移行したので結果的に実稼働システムでは採用しなかった。

今後の状況によっては、最悪、クライアントをSilverLiteへ変更すれば又展開が可能な訳だが、今、迷っているのはFlashBuilderで生産性が高いZendFrameworkをそのまま使うか、将来的な事を考えて、WEBORB for PHPへ移行するかだが、ZendFrameworkはZendDBだけを使うと言う方法が利用できるので、この複合でも良い。

何れにしても色々方法はある訳で、1人のエンジニアとして大切なのはその技術が好きか嫌いかと言うシンプルな点に帰結すると思っている。

WEBの仕事を始めた時もPerlよりもPHPが好きでそちらを採用したし、Javaはエンタープライズ向けと判断して見向きもしなかったし、Ajaxも生産性が悪いと判断して採用しなかった。

RubyはRailsの面白さもあり、齧ってみたが、バージョンの違いが凄まじい為、実用にならないと判断して捨てた。

今のところあまり後悔する事は無いが、ここに来てAdobeの意外な展開には若干驚いてはいる。

とは言え、雇われエンジニアだ「会社の方針」ってのがあって、そんな事も言えないんだろうな。実に可哀想だ(笑)。

カテゴリー: 未分類 | コメントは受け付けていません。

「NODBrowser」

最近お遊びで作った「NODBrowser」=「NHKOn DemandBrowser」

以前から「Hulu」と「NHKオンデマンド」の会員登録をしているが、「Hulu」は当初からiOSの専用アプリがあったが「NHKオンデマンド」は元々がFLVで配信されていた関係でサーバから入れ替えが必要だったのか、4月からiOSでも見られるようになった。

只、今のところ専用アプリが出ていない為、標準のブラウザで視聴しないといけないのだが、これが中々面倒。

何故なら、2重ログインを認めていない為、複数の端末で閲覧している場合は、それぞれでログインする必要があるからだ。

パソコンで視聴して続きをiPhoneでと言った場合、パソコンでログインした後は再度iPhoneでログインし直す必要があり、その後パソコンで観る場合も同様だ。

「NHKオンデマンド」ログインページのソースを調べた結果、ログインページから
https://www.nhk-ondemand.jp/site_security_check

と言うページヘログイン情報を投げていることが分かった。
ソースはPostで投げていたが、試しに上のページへ
?username=会員ID&password=会員パスワードと言う形でGETで投げてみるとちゃんとログインした状態でページを表示した。
パソコンの場合はこれをショートカットへ置いておけば良いので、FlashBuilderでStageWebViewを使って起動時に同様の処理をする専用ブラウザを作ってみたと言う訳だ。

ブラウザなので戻るボタンがあり、HOME=ログインした状態での初期画面へ行くボタンを作ってみた。

戻るボタンがあると、起動時は初期画面を必ず表示するようになっているので、戻るボタンをタップする事で、途中まで観ていた画面を呼び出す事が出来て便利だ。

FlashBuilderだから、同じソースでiPhoneもiPadもアプリが出来るので、両方インストールした。

単純なアプリだが中々便利で、このアプリは自分で良く使っている。

カテゴリー: 未分類 | コメントは受け付けていません。

APIを使わないGoogleMAPのルート検索

配送コースの検討を行う為にはルート検索機能が必要だが、GoogleMAPのAPIを利用する方法は既に実績があるが、GoogleMAPのAPIは商用利用で有償利用すると結構な金額となる。
取り敢えず、GoogleMAPのURLにGETで住所を入れて投げてみた。

非常にシンプルだが、この方法だと投げられる文字数の制限があって、通常はGoogleMAPのルート検索はアルファベットと同じ数だけ地点の指定が可能だが、これは位置情報を投げた場合で、GETで投げると文字数で引っ掛かる様だ。

それにしても、こう言う方法の商用利用という点では、判断はどうなるんだろう?
APIと同じなら最初からAPIを使う方が非常に楽なのだが。。

カテゴリー: 未分類 | コメントは受け付けていません。

郵便番号検索

最近、配送コースを検討するAIRアプリを開発しているが、便利なのが住所検索に使える「郵便専門ネット」のAPIサービスだ。
http://yubin.senmon.net/

良く、マスターなどの登録に郵便番号検索を使いたいが、ここのAPIを使えばそれが簡単に出来る。

感じとしては以下の様になるが、zipstrにハイフン無しの郵便番号を入れて作ったXMLをURLLoaderでサービスへ投げると検索結果が返って来る。

//Create the XML-RPC document
var xmlRPC:XML = <methodCall>
<methodName></methodName>
<postcode>
<value>{zipstr}</value>
</postcode>
</methodCall>;
xmlRPC.methodName = “yubin.fetchAddressByPostcode”;
//Create the HTTP request object
var request:URLRequest = new URLRequest( “http://yubin.senmon.net/service/xmlrpc/” );
request.method = URLRequestMethod.POST;
request.cacheResponse = false;
request.requestHeaders.push(new URLRequestHeader(“Content-Type”, “application/xml”));
request.data = xmlRPC;

//Initiate the request
var requestor:URLLoader = new URLLoader();
requestor.dataFormat = URLLoaderDataFormat.TEXT;
requestor.addEventListener( Event.COMPLETE, xmlRPCRequestComplete );
requestor.addEventListener( IOErrorEvent.IO_ERROR, xmlRPCRequestError );
requestor.addEventListener( SecurityErrorEvent.SECURITY_ERROR, xmlRPCRequestError );
requestor.load( request );

もちろん、フリーのサービスなのでいつ閉鎖になるかわからないが、今のところ他に適当なサービスが無いので利用している。

カテゴリー: 未分類 | コメントは受け付けていません。

取り敢えずなにか作ってみる

折角、iOSDeveloperへ登録したのでお試しでなんちゃってブラウザを作ってみた。

検索キーワードを入れるテキストボックスとイメージコンポーネントを使った検索ボタンと、同様に「戻る」と「進む」がある単純なものだ。
初期設定の画面はGoogle。

実機デバッグで気がついたが、文字入力をする時はキーボードが表示されるので、検索キーワードを入れる欄は上に無いといけないと言う単純ミスをした(笑)。
戻ると進むは操作しやすい右手の親指に近い場所が理想なので、これは下に置いた。
実際に作ってみるとスマホならではの理由があるもんだ。

最初、Flash BuilderにHTMLコンポーネントが無いので「?」と思ったが、StageWebViewをstageにアタッチする事で同様の事をやる様だ。

StageWebViewはJavaScriptに対応していないので、最近良く見るウザイポップアップ広告が表示されないのがよい(笑)

思いついて、リリースまで、調べる時間を含めても2時間ほどで完成。
開発スピードと言う点では慣れたFlash Builderが使える点が良い。

しかし、iOSのネイティブコードへコンパイルするのが結構時間が掛かるのと、プログラムサイズが大きいのは問題かも。

この程度のアプリでも7.4Mもあって、これはちょっと大き過ぎ。

カテゴリー: 未分類 | コメントは受け付けていません。