2013年6月29日土曜日

futa8 Release 5


futa8 Release 5 が Windows ストア からインストール出来るようになりました。
http://apps.microsoft.com/windows/app/futa8/17a26f04-9d9d-4614-ae0f-f807f4938ee9

既にfuta8をお使いの場合、Windows ストア を開くと右上に「更新プログラム」が表示され、ここをクリックすると更新ページに移動します。

インストールに成功すると、futa8のバージョン情報が v1.0.0.38 になります。確認するには、チャーム→設定→アクセス許可 を開きます。

futa8 Release 5
29 June 2013

新機能

従量制課金接続のサポート

従量制接続に設定されたネットワークに接続・切り替わった場合、futa8 は なるべく転送量を減らすために、カタログ サムネイルに小さい画像(1枚 2KB程度)を使用します。

従量制接続時のカタログ画面例

定額制接続に設定されたネットワークでは、これまで通り 大きい画像(1枚 10KB程度)を使用します。

futa8 側には特に設定項目は無く、OSの動作に従います。

なお、OSが自動的に従量制・定額制を識別する訳では無いことに注意してください。
(ある程度)ユーザーが自分で設定する必要があります。

詳しくは以下のMicrosoftの解説を見て頂くのが正しいのですが、

従量制課金接続:よく寄せられる質問
http://windows.microsoft.com/ja-jp/windows-8/metered-internet-connections-frequently-asked-questions

従量制 or 定額制 の設定確認・変更は、チャームのネットワーク設定から変更できます。目的のネットワーク接続を右クリック or 長押しします。

接続上で右クリック or 長押しで表示されるメニュー例

なお、従量制接続に設定しておくと、futa8 以外にも
  • Windows Update:「緊急でない」Updateの自動ダウンロード抑止
  • SkyDrive: お知らせメッセージ表示
  • スタート画面:タイルの自動貼り換え抑止
  • ...
等、OS・アプリ全体で「なるべく」転送量を下げる動作になりますので、3G/LTEの上限付きプラン等をお使いの場合はお勧めです。

透明モードの追加

「周りの他人からは見えづらいが、自分にはぎりぎり何が書いてあるか判る」程度に、タイトル文字列・画像の色を薄く表示する機能です。
板画面・カタログ画面・スレッド画面で、ページタイトルをTap/Click、又は アプリバーの「透明モード切り替え」を押すとトグルで切り替わります。

透明モード中 ページタイトル文字とレス画像が薄く表示される

電車内・喫茶店等、周りの目が気になる所でどうしてもふたばや4chanを見なければならない場合にお使い頂けます。

修正

「Webブラウザで開く」ボタンを「URLをクリップボードにコピー」に変更

これまで、スレッド画面には「Webブラウザで開く」ボタンを置いていましたが、この機能が StoreApp 認定の要件 2.2 並びに 5 を満たしていないという事でRejectされてしまいました。

残念ではありますが、認定を通すため、「URLをクリップボードにコピー」に動作を変更しました。

StoreApp ビルド環境とターゲットの組み合わせ

(2013/12/04 更新:Visual Studio 2012 Update4 で、Win8.1 RTでもVS2012のRemoteDebuggerが使えるようになった件を追記しました。)

Win8.1 登場にあたって、StoreAppを作る際のOS・VisualStudio の組み合わせがややこしく、表にしないとよくわからない感じです。

まず、Store Appと動作環境の関係について、

 App/Tgt OS  Win8    Win8.1  
StoreApp for Win8OKOK
StoreApp for Win8.1    NGOK

'StoreApp for Win8.1' は、Win8.1の新しいAPI等を使ったアプリの事です。

  • Win8 用に作ったアプリは、Win8・Win8.1 両方で動作する。
  • Win8.1 用の新しいAPIを使ったアプリは、Win8.1 のみで動作する。

ここは理解しやすいと思います。

futa8を例とすると、futa8は今のところ 「StoreApp for Win8」ですが、Win8.1で普通にお使い頂けます。ただし、8.1の可変サイズスナップのような「新機能」は使えないです。

次に、ビルド環境とターゲットの関係について、
http://social.msdn.microsoft.com/Forums/windowsapps/en-US/b89d1d26-0015-4f82-a82b-919cebef3f61/to-build-store-app-for-win881-which-osvs-combination-is-correct

 BuildEnv/TgtApp StoreApp for Win8 StoreApp for Win8.1 
Win8 + VS2012OKNG
Win8 + VS2012 + Win8.1SDK  OKNG
Win8 + VS2013 Pro/EntNGNG
Win8.1 + VS2012OKNG
Win8.1 + VS2013 Pro/EntExisting Project - OK
Create New - NG
OK
Win8.1 + VS2013 ExpressNGOK

ポイントとしては、

  • Win8.1 Appを作るには、「必ず」Win8.1のビルド環境が必要
ここが大事な(そして困る)所です。Win8 ビルド環境ではWin8.1 Appは作れませんよと。Win8 App もそうですが、ビルドだけは何でもできるようにしてくれればいいんですけどね。

  • Win8.1+VS2013 で、新規にWin8 Appを作る事は不可能
基本、Win8Appを作りたければVS2012使え、という事でしょう。なお、VS2012とVS2013は同一システム上で共存可能です。なら両方入れればOKか、というと、


  • 「6/29 現在の所」、VS2012のRemote Debug Tool は Windows8.1 RTで動作しない

2013/12 追記:VisualStudio 2012 Update 4 がリリースされ、Windows8.1 RT 上でVS2012 Remote Debug Toolを使うことが可能になりました。

Remote Tools for Visual Studio 2012 Update 4
http://www.microsoft.com/ja-jp/download/details.aspx?id=38184


ここがワナです。このために、ビルド環境がWin8の場合、Win8.1 RT上で動くStoreApp for Win8 をデバッグする手段がありません(今の私がまさにこれ)。
次のVS2012 Updateで直すよ、との事ですが。
http://social.msdn.microsoft.com/Forums/windowsapps/en-US/3e5bd281-4dde-418b-a9fe-078815523fe1/win-81-surface-remote-debugger

こうまとめて見ると…ビルド・開発環境もWin8.1 Previewに移さないとダメっぽいですね。開発環境はStableに保っておきたいのですが、別に環境を用意する資源が無いのでした。

2013年6月28日金曜日

build 2013

build2013が開幕しました。

App開発側として読むべき資料をまとめておこうと(半分は自分用です)。

Windows 8.1 Preview Product Guide for Developers
http://msdn.microsoft.com/en-US/windows/apps/bg184615
OS全体で見た新機能・変更点概要

Windows 8.1 Preview: New APIs and features for developers
http://msdn.microsoft.com/en-us/library/windows/apps/bg182410
追加されたAPI・新機能

API changes for Windows 8.1 Preview (Windows Store apps using C#/VB/C++ and XAML)
http://msdn.microsoft.com/en-us/library/windows/apps/dn263110.aspx
変更・廃止予定のAPI (上とは見方がちょっと違って、既にCode持ってる人の視点)

Updating your app from Windows 8 to Windows 8.1 Preview
http://go.microsoft.com/fwlink/?LinkID=304117
Win8用に書いたアプリの、Win8.1への移行ガイド リンクはWord文書のDLに飛びます

一番最後の移行ガイドが超大事&超役に立ちます。

ざっくりした感想としては

  • WebViewかなり変えたみたい
  • HubControlはいいですね。これfuta8で使います。
  • RichTextBlockは特に変更無しかー・・・あれのBindingなんとかならんですかね。
  • UIControl変更はあーこうあるべきだろうというのがとても多い
  • GridView/ListViewのパフォーマンス改善云々はほんとうなら嬉しい futa8でもDL・ParseよりGridViewに詰めてる時間のほうが長いんでないかというくらいなので
  • HttpClientも気になる
  • LightWeightなDBが無い、XAMLで描いたものBitmapに落とせない、といった…build2011-2012の間くらいで散々文句言われていた辺りのは完全にスルーですねという。このあたり、上のUI Improvementとはとても対照的で、やりたいけどWin8のタイミングでは間に合わなかったアイテムと、ポリシーとしてこの先もやるつもりは無いアイテムが分かれてきたな、という感じがします。LightWeightDBはもうSQLiteのRT版がありますし。
  • なんと、WinRTのBluetoothにRFCOMMが復活してる。大昔、MSがBluetoothStack出した頃はもうシリアルをサポートしたくなさそうな空気を全開で出していたのが懐かしく思い出されます。シリアル強し。


毎度の事ではありますけどPDCは燃える。ギアを一つ上げていくぞッって気分になってとても楽しいです。

2013年6月20日木曜日

ふたばの画像サイズ上限変更について

6月19日から20日にかけて、ふたば各板にUpできる画像ファイルのサイズ上限が変更になったようです。
気が付いた範囲ですと、

  • may 2MB
  • jun, dec, dat その他大多数の鯖 1MB
  • img 500KB(変わらず)
  • ばら 200KB (変わらず)
futa8の使用に関しては、Release 4で問題は修正済みですので、特に何もする必要は無く、そのままお使い頂く事ができます。futa8 は板の上限サイズをHTMLから読み、それに併せて必要ならば自動リサイズを行い、上限サイズに合わせます。

4chan の 投稿機能は何故難しいのか

(04 Sep 2013 追記:当時書いたこの予想ほとんど間違っていたようです…素直にreCaptchaのストリングを付けてsys.4chan.orgにhttpsでPostすればいいっぽいです。お恥ずかしい。)

やりたいけど多分無理な気がするなぁ・・・という機能の一つに、4chanへの投稿機能があります。

4chanでは、投稿の認証にGoogleのreCAPTCHA APIを使っています。ぐねぐね捻じ曲がった英数字を頑張って読み、正しく入力すると人間だと認めてもらえるというアレです。


futa8はレスを投稿する際、HTMLを読み、データを詰めてHTTPで送信します。サーバから見たアウトプットはWebブラウザと変わりません。違うのは、WebブラウザがOn the flyでHTMLとJavaScriptを解釈するのに対し、futa8は、ある程度人力(私です)でJavaScriptを読んで、C#で同じ結果が出るようにHard codeし、アウトプットが同じになるようにしているという感じになっています。

ふたばの使っているJavaScript は、私でも人力で読んでC#に落とし込むことが出来るのですが、reCAPTCHAのScriptは量も複雑さも全く違うので、とても人力は無理です。

では、他の4chan ブラウザ(iOS、Android、Windows Phone用の物があります)ではどうしているのか?というと、
ソース見たわけではないのですが、大体の予想は出来て、

・DOM弄り系
一般的なブラウザコントロール…アプリ上にWebブラウザを載せ、HTMLを読ませるコンポーネントですね、には、読ませたHTMLのDOMにアクセスできるFunctionが付いてることが多いです。ここからDOMを弄って、「reCAPTCHA+投稿フォーム」以外の要素を全部隠したページ、を練成してしまいます。それを自分のアプリ上にのせると、あたかもアプリ上から投稿しているように見えると。でも実際は、見た目が違うだけで、普段と同様にWebブラウザで投稿していると。動いているのはWebブラウザなので、reCAPTCHA APIも問題なく動作します。
多分これしか無いんじゃないかなと思うんですが・・・・如何でしょうか。

弄ったDOM(イメージ)
(別にGreaseMonkey系もあると思うのですが、こちらはIEControl系アプリでは多分無理ですね。他OSは謎)

で、DOM弄りですが… .NETやWin32のIEControlだと行けるんですが・・・StoreApp、WinRTのWebViewでは出来ないです。DOM弄り系のAPIがWinRTのWebViewには生えていないんですね。

憶測ですが、WinRTのWebViewと、.NET/Win32のIEControlは作り方が全然違う気がします。.NET/Win32はInterfaceは違えど、一枚一枚剥がしていくと最終的にはIEのOLEInterfaceまで直でたどり着くのですが…WinRTはどーーーーも様子が違う。NavigateのMethodだけ生えて、画面出力を貰うだけ。コードとしては切れている感じがするんですよね。C++/CXなら行ける、という話でも無い気が。ふわふわした話で申し訳ないですが。

長々書いてしまいましたが、まとめると「やり方がわかりません」。

・・・・
・・・
あ、StoreApp版FirefoxがStableになって、拡張機能をサポートして、それがWinRT Componentになっていれば…いける?うーん…



2013年6月9日日曜日

Release 5 に向けて

futa8 Release 5 に向けて更新・修正項目を整理しています。
今考えているのは以下のような項目です。

従量制接続対応


Windows 8 / RT には、Metered Network、従量制接続を使っている場合にアプリは如何にすべきか、的なガイドラインがあります。

Developing connected applications
http://msdn.microsoft.com/en-us/library/windows/apps/hh465399.aspx

ざっくり言うと、

  • 普通のLANや、定額ネットワークでは何も気にせずにネットワークを使う
  • 従量制ネットワークでは、ある程度気にする なるべく転送量を抑える
  • 従量制で上限超過してる or そろそろしそうな場合は、何をするにもユーザーに許可を貰う
…という動作が期待されています。
が、現状 futa8 では何もしていません(他のアプリもまだあまり対応してないと思います…言い訳です)。

例えば、futa8 のカタログページ では、ふたばが生成する一番大きなサムネイル画像…約250x250, 1枚 10KB程度…を使用しています。
一方、ブラウザでカタログを表示した場合に既定で使用されるのは小さいサムネイル画像…50x50, 1枚 2KB程度…です。

小さな差ではありますが、塵も積もればなんとやらで、img・dat・mayのカタログを頭から端までスクロールさせて表示した場合の総量は
  • futa8が使っている大きいサムネイル  約8~9MB
  • デフォルトの小さいサムネイル  約1~2MB
と、結構なサイズ差があります。勿論キャッシュしているのでリロードの度に毎回読む訳ではありませんが、こちらも塵も積もればなんとやらです。「なるべく転送量を抑える」必要があります。
下のスクリーンショットは現在テスト中の動作例です。ネットワークが従量制に切り替わった場合、自動的にカタログに小さいサムネイルを使用します。


スレ画面のページタイトルを見えにくくする機能


電車や喫茶店等、公共の場で futa8 を使う事が多いのですが、たまに…いや頻繁にですか…こう、「攻めた」タイトルのスレを表示する時には大変気を使います。
ですので、一時的にタイトルを見えにくくする機能を入れようと考えています。
今テストしているのは、タイトルをタップすると文字の不透明度を極端に下げるというものです。…画像も少しいじった方がいいような気がしてきました。


2013年6月5日水曜日

futa8 Release 4

futa8 Release 4 が Windows ストア からインストール出来るようになりました。
http://apps.microsoft.com/windows/app/futa8/17a26f04-9d9d-4614-ae0f-f807f4938ee9

既にfuta8をお使いの場合、Windows ストア を開くと右上に「更新プログラム」が表示され、ここをクリックすると更新ページに移動します。

インストールに成功すると、futa8のバージョン情報が v1.0.0.36 になります。確認するには、チャーム→設定→アクセス許可 を開きます。

futa8 Release 4
05 June 2013


問題の修正


ふたば:画像を送信する際、500KB以上のサイズの画像送信に失敗していた問題の修

futa8 は画像を送信する際、HTMLからその板のファイルサイズ上限を読み取り、送信しようとしている画像ファイルのサイズが上限より大きい場合、自動的に画像サイズ・圧縮率を変更する機能があります。
Release 3 以前では、画像サイズ変更した後に画像を送信する際、誤って500KB上限であるという情報付きで送信していた為、サーバーによってエラーとして処理されてしまっていました。

Release 4 の修正により、正しく板のファイルサイズ上限に合わせた画像を送信できるようになります。
例えば、6月5日現在の二次元裏 May では 1MB、自作PC では 500KB、ばら板では200KB、でリサイズされます。

板管理:板の一括登録時に、登録板の一部が正しく保存されていなかった問題の修正


読む板をサーバー一括で登録(ふたばの場合 www.2chan.net/bbsmenu.html 等)する際、一部の板が保存されない、又は、一部の板が重複して保存されてしまう場合がありました。Release 4 で修正しました。


その他修正


  • カタログ画面の最大スレ表示数を200に変更しました(なお、検索・キーワードについては、200を超えていても内部的にカタログから取得できていれば表示します)。

機能の追加

カタログ画面、スレッド画面:アプリバーからの板切り替え機能の追加

カタログ画面で、アプリバー(マウス:右クリック、タッチ・画面上下から内側へのスワイプ)から板を切り替えられるようになりました。



スレッド画面 のアプリバーからも同様に板を切り替えることが可能です。
この場合、スレッド画面からカタログ画面に移動します(一部、スレッド画面の中で板だけ切り替わる場合もあります)。


スレッド画面:広告「AdDuplex」の追加



これまで、futa8 では Microsoft PubCenter の広告をスレッド内に表示していました。広告が無い場合、空きの広告枠のみを表示していました。

Release 4 では、PubCenterの広告が無い場合、AdDuplex の広告を表示します。
AdDuplex は、所謂普通のネット広告とは少し異なり、ストア アプリケーションの広告(futa8ならfuta8の広告)を、お互いのアプリ上に表示し合いましょう、という互助会的な広告です。

futa8 上に、様々なストア アプリの広告が表示されるようになります。クリックすると、Windows ストア内のアプリ紹介ページが表示されます。

2013年6月4日火曜日

ふたば 二次元裏 may 仕様変更の影響について

6月4日(火)の夜に、ふたば 二次元裏 may にてUpload画像の上限サイズ変更が行われています。
それに伴い、futa8 をお使いの場合、影響が出ています。
ご迷惑をお掛けして申し訳ありません。
現在判っている問題とその回避方法についてお知らせします。

1. 二次元裏 may で 500KB以上の画像をアップロードしようとすると、「ファイルサイズ上限を越えています」旨のエラーメッセージがふたばのサーバから返る


原因


これはfuta8 側に問題の原因があります。futa8 には、ふたばのHTML内に書かれているMAX_FILE_SIZEを読み取り、それに合わせて画像をオートリサイズする機能があるのですが、送信する際、誤って、MAX_FILE_SIZEを無視して「この送信フォームのファイルサイズ上限は500KBである」とサーバに伝えている為、エラーメッセージが表示されています。

問題を回避するには


  • Release 3 以前 をお使いの場合 (6月4日現在、全員こちらになります)

二次元裏 Mayで画像を送信する場合、画像を選択する前に、予め画像を500KB以下にリサイズしてください。上記の問題のため、ふたば側が2MB上限であっても、500KB以上でエラーが表示されるためです。


  • Release 4 以降 をお使いの場合 (現在審査中、数日中にストアから入手可能となる予定)

Release 4 では上記問題を修正しているため、問題は発生しません。


2. 二次元裏 May のカタログ表示に失敗することがある。アプリケーションが落ちる。


こちらについては調査中ですが、板画面で二次元裏 May をカタログ(タイル)表示している場合、問題が起きることが多いようです。

問題を回避するには


板画面で二次元裏 May を タイル表示しないよう、板の順番を入れ替えて下さい。


2013年6月3日月曜日

Release 4 を提出しました

futa8 Release 4 をStoreの審査に提出しました。数日中にStoreに載るはずでず。
載りましたら又お知らせします。