7/11の未明SBMで障害が発生しました。
ちょうどその時起きていて、iPhoneでいろいろやってたら、
SIMカードを認識しなくなったり、
メモリリークとおぼしき症状でアプリが落ちたり、
最終的にOSごと落ちたりしたんです。
????と思って、
まぁいっか、最悪交換だと思って、放っておいたら。
朝には表示は普通になってたんです。
ところがです。その日から、こちらの声が向こうに届いていない症状が出てきました。
最初は、5回の通話で1回くらいで、症状が発症してもかけ直すと直っていたので、
SBMだし、悪い電波にのっちゃったのかなぁとか思っていました。
そして、日を追うごとに、
症状の頻度が増して、これはおかしいということで、
あっぽすとあに行きました。
ハードウェア的な故障は、やはり見つからず、
最初は悪い電波に乗ったんですかねぇって言われて、
とりあえず復元かけてダメなら又来て下さいと言われて、帰宅。
その日のうちに復元をかけるものの、
結局症状はよくならず。
再度あっぽすとあにいって、相談。
電話をかけてもらって症状を確認。
無事交換となりました。
原因ははっきりしません。
ネットで調べたところ、
ノイズキャンセラのソフトウェアの不具合じゃないかという報告があります。
アップルストアも、この不具合について報告を受けているとのことでした。
ただ、前述の通り、SBMの障害による不具合という可能性も否定できず、
アップルストアの店員さんも、壊れた経緯を必ず上に伝えると約束してくれました。
次期ロットからの改善につながるといいですが…。
というわけで、こちらの声が届かないという症状は、
普通にあるので、発症した方は、お早めにアップルストアへ!
SBMショップに行くと、預かり後交換まで2〜3日待たされるようなので、
近くにアップルストアがある人は必ずアップルストアへ行きましょう!
7月 2010 のブログ記事
個人プロジェクトで、
FMランタイムアプリ + なでしこプラグイン
で作ったアプリケーションをインストーラー付きで販売することになった。
その際、Vista以降はUACという消えれるか死ぬかすればいい仕組の問題でうまくいかないことが多々あって、色々試行錯誤のうえ、ようやく完成した。その覚書&報告。
まず、ランタイムアプリケーション。
FilemakerのAdvancedバージョンで作るのは、FM開発者ならおなじみ。
FMのアプリケーションを、FMなしで動くようにできる仕組みですね。
ランタイムアプリを作成すると、ランタイムフレームワークや起動用EXEファイル、データベースの実体バイナリなどが、
ひとつのフォルダに詰め込まれて作成されます。
で、まぁ通常の感覚で言えば、これをそのまま、圧縮して、
インストーラー作成ソフトなどをつかってインストーラー作っちゃえばいいのですが、ひとつ問題があります。
通常、アプリケーションは「C:\ProgramFiles\」にインストールするのですが、
UACの働きで、「C:\ProgramFiles\」配下はデータの書き換えが基本的にできません。.exe以外は基本的に読み取り専用です。
したがって、データの書き換えが必要なFMランタイムアプリは読み取り専用のDBになってしまうことを意味します。
実際は、レジストリとかいじれば、出来るのですが、インストーラーを走らせている間に、
レジストリをゴニョゴニョして。。。とか正直やってられません。
それに、レジストリを汚すのはイヤです。
私の場合、特殊ディレクトリである、アプリケーション設定フォルダにランタイムアプリの実体を全てインストールし、「C:\ProgramFiles\」配下には、アプリ設定フォルダに置かれたランタイムアプリを実行するだけの小さなアプリケーションを作ることで対応しました。
これにより、ランタイムアプリが読み取り専用になってしまうことを防げます。
ランタイムアプリを呼び出すだけの小アプリは、なでしこで簡単につくれますし、なでしこの場合は、指定アプリケーションを管理者権限で起動する命令もありますから、なお一層安心してアプリづくりができます。
次になでしこ。
前述のインストール箇所の問題をクリアできれば、まずほとんどの機能は問題なく動きます。
注意したいのは以下。
・ファイルコピーは鬼門。使わない方がいい。やるなら、一旦コピー元のファイルを開いて、新規保存する手順を、VBSなどで行うほうが良い。(なでしこにはVBS標準装備)
・なでしこの命令を別プロセスで動かす場合は、Windows標準の各セキュリティ機能に加えて、ノートン先生などにも気を配る必要があることがあるので、極力避けたい。
以上の2点です。
別プロセスでなでしこの命令を動かすのは、ランタイムアプリが落ちるのを防ぐなどメリットも沢山あるので、使う場合は、ノートン先生などの設定指示も、アプリケーション配布時に必要になってくるかと思います。
WindowsXPへのダウングレードが2020年まで保証されてしまったことで、XP/Vista/7 そして次のWindowsと、かなり質の違うWindowsが混在する世の中になってしまいまして(特にUACの部分で)、プログラマとしては非常に腹立たしい事態です。
とはいえ、そんなこと言ってても、世の中わからないので、こっちが勉強していかなくてはなりません。
ノンプログラマが使えるFilemakerの世界も同じでしょうねー。
ということで、この記事がFM開発者の方の一助になればと思います。
Windows64bitに移行したので、
Filemaker(Adv.11)からMySQLへESS接続しようとした。
いつものようにMySQL公式からODBCをDL。
今回は64bitOSなので、64bit版のODBCをDLして、インストール。
コンパネから接続設定して、
さぁ、FMから接続だ!と思って外部ソースを見てもDSNに設定した内容がない。( ̄△ ̄;)エッ・・・。
きっと64bit版のODBCがだめなんだ!と思って32bit版にすると
コンパネのデータソース管理にMySQLODBCがない…。
むぅ・・・。どういうことだ???
と思っていたら、64bitのデータソース設定と、32bitのデータソース設定は別に存在することが判明。
コンパネからは64bitへしか進むことができあに。うはぁ・・・。
32bit用設定はWin7(64bit)の場合、
C:\Windows\SysWOW64\odbcad32.exe
↑これ。多分Vista(64bit)も同じ。XP(64bit)はどうかな・・・。
こちらの設定パネルでDSN設定したら無事Filemaker11でも見ることができましたー。
のっけからですが、私はCSVというデータフォーマットが嫌いです。
古くから使われていながら標準仕様がない。
にも、かかわらず、ユーザーはまるで標準の仕様があるかのように扱う。
挙句、変種の「K3」などというフォーマットが現れたりして、、、
最終的に、後追いみたいな形でRFC4180として仕様が成文化。
(それでもまだ、ほぼ、ソフトウェアによって仕様はいまいち固まらない)
というような状況があって、結構CSVを読み書きするシステムを作るのは、
意外に負担だったりします。
まぁ僕の場合は、「エクセルのCSV以外は知らん」という立場で作ることにしていますが。
前置きが長くなりました。今回そんなCSV(文字列)をPHPで初めて扱うことに。もう結構長い間PGやってますけど、よく考えたらPHPでCSV形式の文字列を扱うのは初めてだったんです。(間違えないでくださいね。ファイルじゃないですよ。文字列です。)
Perlではこちらのサイトを参考によくやってました。
ほとんどがこれで対応できてました。
一方PHPは、fgetcsv()ってのを使うんですね。
で、これファイルハンドルの読み込み用の関数なんですね。
今回はファイルからの読み込みでなく、
CSVフォーマットの文字列を配列に変換する必要があったので、
これじゃ駄目だってことで探したら str_getcsv() ってのがあったんですが、
これがPHP5.3.0以降専用。
うわっ。。。PEARをよく使う私にとって現段階ではPHP5.3.0以降は鬼門です。
(オブジェクトの作成方法などが厳密になって、
PHP4系統での利用を保証しているPEARライブラリを利用すると
エラー連発で使い物にならないのです。。。)
うぅ、、、どうしようか、、、
ということで、仕方ない、一時ファイルをつくってfgetcsv()で読むというロジックでやることに。
幸いPHPにはtmpfile()という一時ファイル用の関数がある。
ということで、関数を作りました。
function getArrayFromCSVFormat( $str ){
$parseData = array();
$fh = tmpfile();
fputs( $fh, $str );
fseek( $fh, 0, SEEK_SET );
while( $row = fgetcsv( $fh ) ){
$parseData[] = $row;
}
fclose( $fh );
return $parseData;
}
活用する場所があるか不明ですが、使いたい人はご自由に。
あ、あと、このサンプルでは、
fgetcsv()のオプション引数は設定してませんので、
必要があれば設定してください。
また、fgetcsv()は古いバージョンのPHPだとバグだらけで泣けます。
その時は、別の方法をお試しください。。。
ちなみに私はPHP5.1系統のころまで、こちらで配布されているPHPパースクラスを利用してました。(こちらはファイルからの読み込み使っていたので、文字列はどうか知りません)
オフィスのボスのiMacのHDDがぶっとんだので、
ボスは新しいのを買って、
私はそのiMacをもらってきた。
アルミiMacの初期の頃(背面黒)のやつ。
HDDの交換くらいどうってことないだろ。
って思ってたら、これがそうでもなくかなり難しい!
このへんを参考にやる。
たいていどのサイトを見ても箱開けて、
HDDを付け替えるところまでの説明。
確かにここまでもかなり難しい。
が、一番難しいのは、組み立てる時だと私はおもった。
iMacはすべてがギリギリの範囲で埋め込まれているので、
ちょっとのズレでDVDがだせなくなったりとかして大変。
はっきり言ってちょっとWindowsでいわゆる自作PCをくみたてたことがあるくらいので経験では苦労すると思われる。
かなり根気がいるので注意。
白intelもなかなか苦労するとのこと。
iPadが発売になったときに話題になった中国のニセモノiPadを買いました。
で、今日届きました!


箱はこんな感じ。iPadを見事にパクってます。


側はこんな感じ。iPadニセモノの触れ込みですけど、全くの別物で。
大きさは7インチ液晶。男性の片手にちょうどのるくらいのサイズです。
なんと、最初っから電源アダプタがぶっ壊れてやがる!
さすが中華クオリティ!これくらいやってくれんとこちらも拍子抜けってもんだ!

起動してみました。
初期状態は中国語(広東語?)で何が何だかわかりませんが、
予約注文したときにAndroidをVMWareに入れて使ってみていたので、
なんとなくの記憶で設定までたどりついて、日本語化、WiFi接続までできました。
iPhoneやiPadにくらべて結構力を入れてタッチしないと、反応してくれません。
動作が軽いといったらうそですが、想像していたよりは軽快です。
とりあえず今日の報告はここまで!
Androidアプリつくっちゃうぞー!