2014年2月21日金曜日

動画デモ:撮影した写真をカメラからFlashAir / WiFi経由で自動DL

 
「FlashAir / WiFiSD8 がWiFi接続している間に写真が追加されたら写真を自動的にDLする」機能に今トライしているところです。
 
部屋に籠ってフィギュアなり何かブツ撮りをひたすら続けるときに少し便利かもしれません。
 
 

2014年2月18日火曜日

futa8 Release 21

futa8 Release 21 が Windows ストアからインストール出来るようになりました。


http://apps.microsoft.com/windows/app/futa8/17a26f04-9d9d-4614-ae0f-f807f4938ee9
クリックでストアに移動

 インストールに成功すると、futa8 のバージョンは 1.1.0.129 になります( チャーム→ 設定→アクセス許可、で確認できます)。

変更点

futa8 再起動時にスレッドが表示出来なくなる場合がある不具合の修正

画像表示モードでアプリ表示領域が変更された場合、領域サイズに合わせて画像の表示倍率を変更するよう修正

2014年2月14日金曜日

futa8 Release 20


futa8 Release 20 が Windows ストアからインストール出来るようになりました。



http://apps.microsoft.com/windows/app/futa8/17a26f04-9d9d-4614-ae0f-f807f4938ee9
クリックでストアに移動

 インストールに成功すると、futa8 のバージョンは 1.1.0.128 になります( チャーム→ 設定→アクセス許可、で確認できます)。

変更点

futa8 がOS に終了された場合、futa8 再起動時に状態を復元するよう変更

futa8 が他のアプリの背面に回っている間、メモリ状況等によりOSがfuta8 を終了する事があります。複数のストアアプリ・デスクトップアプリを同時に使っている場合、そこそこ頻繁に発生します。

この状態でfuta8 を起動…スタート画面でタップ・クリック、画面左端のタスクリストから選択等…を行うと、

これまでのReleaseでは、

futa8 は起動後、初期状態の板画面を表示していました。

今回のRelease 20 からは、
 
futa8 は(なるべく)OS に終了された時点の状態に復帰します。スレ画面を表示していたならばそのスレ画面、板のカタログ画面ならばその板のカタログ画面に復帰します。
ただし、場合によっては復帰できない場合があります(スレがもう無い、カタログから見つけられない場合等)。

また、手動でfuta8 を終了した場合・OS の再起動後等、通常の終了が行われた場合は、これまで通り初期状態…板画面から起動します。

………

この機能、ストアアプリは本来対応しているべきものなのですが、futa8 は再起動後にスレが残っている保証も無いブラウザなので…サボっておりました。すみません。

最近は便利なストアアプリも増えたためアプリを同時に使う事も多く、それにつれfuta8 がいつの間にかOS に終了されてしまっている事が増えてきました。これはまずい、ということで今更ですが対応しました。


Changes - futa8 Release 20

futa8 release 20 is available at Windows Store.

Restore app state when the app was terminated by OS.




2014年2月2日日曜日

Desktop App が動く Windows RT 機の謎

この記事のまとめ
  • 我が家のVivoTabRT - ASUS TF600T ではAnyCpuでビルドしたDesktop Appが動く事が判明した
  • 理由は判らないが、思い当たる節が無くも無い
  • 動作例は今のところ私の持ってる1台だけですが、同じ環境の人は試してみると動くかもですよ

事の起こり


ご存じの通り、Windows RT で動作する ユーザー アプリケーションはWindows ストア からインストールするストアアプリだけで、デスクトップ アプリケーション…Win32ベースのアプリケーションは動作しません(*1)。

ですが、.NET 以降のWindows にはOSの中に.NET Frameworkのビルド環境が一通り入っていることが知られています。Windows RT も例外ではなく、.NET v1, 2, 4の参照DLLと、.NET 4用のcsc.exe, csharpのコンパイラが入っています。

何に使っているのかは僕は知らないのですが…使うんだから入ってるのでは?NGEN用? そして、動くのなら案外ユーザーアプリもビルドしたら動いちゃったりして?
と、なんとなく考えました(この先を読むと判りますが、この仮定はほぼ間違いでした が、話の進行上「そうかも?」という体で読んで頂けると幸いです)。

(*1) Microsoft 製の「Windows RT向けDesktop アプリ」は動作します。OS付属のメモ帳やエクスプローラー、加えて、VisualStudio 用のRemote Debug Tools(MSのサイトからDL可能)等がそれです。MS製だけ許すための署名+ハッシュ付きバイナリなのかなーと想像しますが確認はしていません。

 

やってみる


確認は簡単で、超単純なC# のプログラムを OS組み込みの.NET Frameworkでビルドしてみます。

Windows RT 機上でCommand Prompt を開き、

  1. OS組み込みの.NET Framework にパスを通す set path=%path%;C:\Windows\Microsoft.NET\Framework\v4.0.30319
  2. cscを叩いてビルド(*2)  csc.exe test.cs /noconfig
(*2)  Windows RT 組み込みの.NET Framework は Windows 8 のそれとはイコールでは無いようで、System.Data.Linq.dll, System.Data.Extensions.Design.dll 等が入っていません。この為、/noconfig を付ける必要があります。又、msbuild.exe 等も入っていないようです。

 これを手持ちのASUS VivoTabRT で試すと、

「私の」VivoTabRT でのテスト

おお。あっさり動きました。これは楽しい。ARM版VisualStudio なんてものは存在しないので本格的な開発は無理ですが、出先でC#の簡単なプログラム組んで遊ぶくらいは出来そうです。

ただ、上にも書いたようにWindows は署名を使ってプログラム実行許可・不許可を判断している(はず)ですが… 今ビルドしたこのプログラムはどういう扱いになるのだろう?謎です。

なので、今ビルドしたプログラムを、手持ちのSurface RT (色々あってRT二台持ちなのです)にCopyして実行してみると、ダメでした。…実行PC上でコンパイルしないとダメなのかな?とSurfaceRT 上でも全く同じ事をしてみても、

 SurfaceRT でのテスト

「このバージョンのfoobar.exe は、実行中のWindows のバージョンと互換性がありません。コンピュータのシステム情報を確認してから、ソフトウェアの発行元に問い合わせてください」

ビルドは通るのですが、実行しようとすると同じエラーが表示されます。????? ちなみにこれ、x86用のDesktopApp をWindows RT で実行しようとした時に表示されるエラーメッセージと同じです。

????何で? 一応二台のセキュリティ ポリシーを比較してみたのですが設定は同じでした。というか、そもそもセキュリティポリシーの変更だけでDesktop Appが動くのならWindows RT 発売と同時に誰かが即発見してお祭りになるでしょう。
段々意味が分からなくなってきました。

ビルドしたバイナリと実行の可否を確認すると、

  • VivoTabRT でビルドしたバイナリ は VivoTabRT 上で動作する。
  • VivoTabRT でビルドしたバイナリ は SurfaceRT 上で動作しない。
  • SurfaceRT でビルドしたバイナリ は SurfaceRT 上で動作しない。
  • SurfaceRT でビルドしたバイナリ は VivoTabRT 上で動作する。
…これ、ビルド環境で違いが出てるのでは無くて、単にVivoTabRTがザル、ノーチェックで動いてるだけなのでは?という気がしてきました。

確認してみます。

Windows 8.1 機 (x64 の普通のWin8.1PCです)上のVisualStudio で.NET Application をターゲット「Any CPU」でビルドし、件のVivoTabRT で動かしてみます。

 正直、目を疑う光景ではあります

 Oh... ビルド環境云々では無く、「この」VivoTabRT は何故かDesktop App がノーチェックで動いてしまう、かなり妙な状態になっていることが確認できました。

また、上でSurfaceRT 上でビルドしたテストプログラムが動かないのも、それが(MSが)意図する正しい動作であろうことも判ります。

考察


「この」VivoTabRTが何故こんな状態になっているのか?方法が判れば楽しいのですが、残念ながら今のところ判りません。グループポリシー上はSurfaceRTと同じ設定ですから、SurfaceRT や別のRT機でこの状態に入れる方法も判りません。

ただ、思い当たるというか、ひょっとして?という点が一つあります。

去年 Windows8.1 / 8.1RT がリリースされ、VivoTabRT をアップデートしたのですが…その際、以下のような不具合がありました。

 VivoTabRT を 8.1RT に更新した当時のスタート画面

「SecureBootが正しく構成されていません」というWarningが、スタート画面・デスクトップの右下に表示される、という不具合でした。
なお、手持ちのSurfaceRTではこの不具合は発生していません。

この不具合、結構多くのVivoTabRT (TF600T)で発生していたようで、当時MSのSupport Forumで報告が多く寄せられていました(私も文句書きましたし、ASUS サポートに連絡もしました。その後返事無いですが…)。

その後、「Warning Messageを表示しなくする」というPatch がWindows Updateで配布され、上のWarning Messageは表示されなくなりました。
問題の根本、「SecureBootが使えてない状態」そのものは直らず、放置されたことになります。
このSecureBoot、EFI System+Win8では必須で、これがOnになっているとWin8以外のOSは動作しない、というもので・・・あーつまりLinuxも入れたら動くのかな俺のVivoTabRT、くらいにしか考えていなかったのですが。

ですが、今回のVivoTabRTのザル動作と、SecureBootが結局直っていない事を合わせて考えると…
「SecureBoot がDisable になっていると Windows RT は UserAppの実行時チェックを行わなくなる」
という動作をしているのでは?という推測が出来るのではと考えています(*3)。

しかし、何分にも実例が私のVivoTabRT 1台だけで、自信を持って言える話では全く無いのも確かです。

もしあなたがASUS VivoTabRT TF600T  や SurfaceRT / Surface2 のようなWindows RT機をお持ちで、また、上に書いたようなSecureBootエラーを経験されていたら…本記事で書いた手順でUser Appが実行できるか試してみると面白い結果が出るかもしれませんよ。




(*3) なお、一般的なx86/64 PC では PC起動時の EFI 設定で SecureBoot の設定を変更できるオプションが用意されているのですが、 ARM機の Windows RT ではそもそもSecureBootの設定項目自体がありません。



2014年1月25日土曜日

futa8 Release 19

futa8 Release 19 が Windows ストアからインストール出来るようになりました。


http://apps.microsoft.com/windows/app/futa8/17a26f04-9d9d-4614-ae0f-f807f4938ee9
クリックでストアに移動

 インストールに成功すると、futa8 のバージョンは 1.1.0.127 になります( チャーム→ 設定→アクセス許可、で確認できます)。

変更点

 広告除去オプションの追加

アプリ内販売で、広告除去オプションを追加しました。「1年間、1000円(日本のストア価格)です。

  • お支払頂く事で、futa8 で表示している広告が1年間表示されなくなります。
  • この購入については自動更新・継続の機能はありません。購入後1年経つと、特にお知らせ等無くまた広告が表示されます。
  • お使いのMicrosoft アカウント で設定している決済通貨が日本円以外の場合は、Windows ストアで使用している通貨レートでの金額となります。
  • 購入の権利はMicrosoft アカウントに紐づいています。一つのMicrosoft アカウントで複数のPC・タブレットをお使いの場合、合計81台まで使用可能です。


なお、この価格「年間1000円」ですが、

【 (年間の広告収益 /  ユーザー数)-払って頂いて有難うございます値引き 】

…という計算でざっくり弾いたお値段になっております(広告収入は変動が激しいため、先にまとめてお支払頂けるのはとても有難いのです…)。

実際の購入の様子のスクリーンキャプチャをこの記事の最後に載せました。


Changes - futa8 Release 19

futa8 release 19 is available at Windows Store.

In-App Purchase feature is added - "Removal of Ads - for 1 year"

  • By purchasing this in-App item, application ads are removed for 1 year.
  • There are no automatic payment update. It will expire after 1 year.
  • The actual price depends on your country/region of Windows Store.
  • This item is applicable for up to 81 devices associated with your Microsoft Account.

購入は設定チャーム→「広告の除去(1年間)」のTap/Clickで開始します。
説明が表示されます。先に進むにはOKをTap/Clickします。
ここからストア上の処理に移ります。画面上の説明を良く
お読み頂いた上で、購入して頂ける場合は「購入」をTap/Clickします。
 Microsoft Account の確認が行われます(お使いのアカウント・支払方法によってはこの先のプロセスは異なる場合があります)。
 処理中...
プロセス完了。有難うございました。
 購入による広告除去は直ちに有効になります。
 が、画像のようにスレ表示中の場合は一度カタログに戻ってから再読み込みが必要です。



2014年1月23日木曜日

futa8 Release 18

futa8 Release 18 が Windows ストアからインストール出来るようになりました。

http://apps.microsoft.com/windows/app/futa8/17a26f04-9d9d-4614-ae0f-f807f4938ee9
クリックでストアに移動

 インストールに成功すると、futa8 のバージョンは 1.1.0.126 になります( チャーム→ 設定→アクセス許可、で確認できます)。
 
Release 18 は、Release 17 で発生させてしまったバグのみを修正したものです。
Release 17の変更点(多いです!)については futa8 Release 17 を参照下さい。

修正点


板画面 で 横位置・縦位置・スナップ を切り替えると、アプリケーションが終了する場合がある不具合の修正


 板画面(起動直後の画面)は、
  1. 横位置用 Semantic Zoom内にGridView二つ(ZoomIn/Out),
  2. 縦位置用 ListView
  3. スナップ用 ListView
の3画面を、幅のサイズ変更に従ってVisualState変更で切り替える形になっているのですが、Win 8.1の場合、1と2・3の切り替え中にXaml.dll内で落ちてしまう場合が有ることがわかりました(落ちない場合もあります)。
今回のRelease では、縦・スナップ用のListViewもSemantic Zoom内に持ち、Semantic Zoom自体の切り替えをさせないことで問題を回避しています。


Changes - futa8 Release 18

futa8 release 18 is available at Windows Store.

1) Fix - In some cases, app crash when you switch the default view from/to portrait or minimal view on boards page.

2014年1月19日日曜日

futa8 Release 17

futa8 Release 17 がWindows ストア からDL出来るようになりました。

22/01/2014 追記:
Release 17 に 板画面(起動時の画面)でアプリの縦・横・Snapを切り替えるとアプリケーションが終了する場合がある不具合が有ることがわかりました。
問題を修正したRelease 18 をストアに提出済みで、現在審査中です。
ご迷惑をお掛けして申し訳無いです。


 インストールに成功すると、futa8 のバージョンは
  • Win8.1 - 1.1.0.125
  • Win8 - 1.0.0.132
になります。


変更点 

Win8.1 への移行

これまでWin8 用 futa8 を Win8, Win8.1 両方 に配布していたのですが、
今回のRelease 17以降は、以下のようになります。

  • Win8.1 - Win8.1 用 futa8。新機能の追加はWin8.1 用でのみ行います。
  • Win8 - Win8 用 futa8。新機能の追加は今後ありません。

以下の変更項目もWin8.1用にのみ適用されます。

アプリ領域の可変サイズに対応

Win8.1 の可変アプリ領域に対応しました。
futa8 に割り当てられる領域に合わせて表示形式が三段階に切り替わります。

  1. 既定 default 既定の横位置。二次元グリッド/一次元リスト表示を随時切り替え可能です。
  2. 縦長 Portrait - 領域が縦長の場合。一次元リスト固定。タブレットの縦位置でも使われます。
  3. 最少 Minimal - 領域幅が700px以下の場合。一次元リスト固定。Win8でのSnapにあたり、表示するボタン・UIを減らします。
実際の動作例がこの記事一番下のスクリーンキャプチャです。
(左側に表示されているのは最近評判のTwitter Client Tweetium

スレッド表示速度の改善

futa8 では GridView/ListView コントロール をスレッド表示に使用しているのですが、このコントロールの動作速度がWin8.1 で改善されました。このため、futa8 のスレッド表示速度が大幅に改善されました。

ListView and GridView performance improvements
http://msdn.microsoft.com/en-us/library/windows/apps/dn263110.aspx#listview_and_gridview_performance_improvements

また、これまで、速度低下を避けるために「100レス以上のスレを開く場合、自動でListViewに切り替える」という動作を入れていましたが、今回の速度改善で必要性が薄れたため当該動作を外しています。

Microsoft Application Insights サービス の追加

アプリの使用状況を取得するサービスです。アプリの起動回数、アプリ内の各ページの表示回数等が個人を特定出来ない形で送信されます。
既定ではオンになっています。
送信を停止するには、設定チャーム→futa8 設定→「Microsoft Application Insights の使用」をオフにして下さい。


Changes - futa8 Release 17

futa8 release 17 is available at Windows Store.

Added 22/01/2014
Release 17 have an issue about default/portrait/snap switching at boards page.
I've submit the fixed version - Release 18 - to the store.
Sorry for your inconvenience.

  1. Development target is changed to Win8.1. futa8 for Win8 is in maintenance phase.
  2. Support Win8.1 Resizable App Style
  3. List/GridView performance improvements
  4. Adding Microsoft Application Insights


Default Mode


他アプリ+Defalt Mode のfuta8


Default Mode では、いつでもAppBarからListViewに切り替えが可能


Portrait Mode futa8領域の高さ>幅*1.5でPortraitに切り替え
タブの縦位置でもPortraitが使われます


Minimal Mode 幅が700以下の場合 ボタン等のUIを極力減らしたModeです


Minimal Modeで最も狭い320px Win8のSnapに当たります