プライバシーポリシーとサポート情報 - 火山壁紙2021年02月03日 09:15

本アプリについて (About this app)

このアプリは、気象庁の火山監視カメラが提供する火山画像をWindowsの壁紙に設定します。
一覧に用意しているのは、サイトが提供する全ての火山についてではなく、解像度が高く、空が広く、電線などの障害物が少ないものを抜き出しています。

なお、カメラのメンテナンスなどにより、画像が得られない場合があります。また、気象庁のサイトの仕様変更により、アプリが動作しなくなることがあります。

※アプリのページ

プライバシーポリシー (Privacy statement)

火山壁紙
対象アプリ;火山壁紙

本アプリの製作者である The Fourteenth Lab (第十四工房) は、本アプリによって、お客様の個人情報およびプライバシーに関する情報を収集しません。

サポート情報 (Support)

ご質問や不具合のご連絡は、このページの「コメント欄」をご利用いただくか、「このブログについて」に記載の連絡先までお願いします。

あらかじめのおことわり (FAQ)

1)本アプリの製作者は、気象庁のサイトの利用者である以上に、気象庁とは特段の関係はありません。

2)サイトで提供される火山監視カメラの解像度は、640x360程度です。大きなディスプレイでは、壁紙に設定したときに画像が粗く感じられるかもしれません。

利用するツールや文献 (Reference)

1)気象庁、火山の観測データ、監視カメラ画像のサイト


印旛沼、新川、やちよ2021年02月05日 16:40

1月は天候に恵まれず。立春を過ぎてようやく長めのサイクリング。走り始めて、脚力というか、心肺能力というか、落ちているのがわかる。あまり間を開けず走らないと、性能が落ちる。

風車

佐倉のふるさと広場の風車。今年のチューリップの植え付けは、如何。

お昼のオオバン

印旛沼の先、新川沿い。昼頃になると、オオバンが土手で餌をついばむ姿が、あちこちに。

農業交流センター

折り返しの道の駅やちよ。今日のお昼は、川向こうの農業交流センターにしてみる。

お弁当

お弁当、600円。野菜好きには、よいおかずの並び。お酢を使った味付けも疲れた身体にはうれしい。名物のキャベツメンチは、以前にいただいた。

ほころびかけた桜

新川沿いの桜並木。ほころびかけ。2019年の台風被害からの復興状況が気に掛かる。寄付の方は、ほどほどの集まり具合だったよう。

火山壁紙 - アプリリリース2021年02月09日 08:29


火山壁紙

「火山壁紙」の名称で、ユニバーサルWindowsストアアプリをリリース。気象庁の火山監視カメラの画像を、時折、楽しみに見ているが、いっそ壁紙にできたら、ということで作成してみたもの。気象庁のサイトで提供される画像の解像度は低めなので、少々粗いが、ときに、驚くような絵が得られるので楽しい。

対象の火山は全てでなく、解像度が高めで、空が広いものをピックアップ。メンテナンスで絵がホワイトアウトすることが偶にある。

※アプリのページ

開発時間は、35時間ほど。HttpClientを用いて気象庁のサイトにアクセスし、得られたHTMLから画像のURLを正規表現で抽出し、ダウンロードしたファイルを壁紙に設定する。このため、サイトの仕様変更ですぐに動かなくなるが、ご容赦。

更新間隔を指定しての自動更新は、当初、ThreadPoolTimerを用いていたが、UIを最小化すると止まってしまうので、Background Taskとして実装。時間起動を実現するTimeTriggerは、最小間隔が15分なので、動作確認に時間がかかる。ForegroundとBackgroundの情報のやりとりは、ApplicationData.Current.LocalSettingsを利用。既定の型しか使えないので、ClassのPropertyをバラしてやりとり。

阿蘇山

お薦めの第一は、阿蘇山。今も噴煙を上げ、雄大。東の空で朝日が美しい。

韓国岳

霧島山の韓国岳は、火口を上から見下ろす視点が唯一。

浅間山

東日本では浅間山もなかなか。

富士山

もちろん富士山も。頂上付近の絵なので、雄大さは少々欠けるけども。

UWPでバックグラウンド処理を時間間隔で起動2021年02月09日 11:41

UWPでバックグラウンド処理を用意し、一定時間間隔で起動する手順は、MSやStack Overflowあたりでも、かなり詳しく説明されている。とはいえ、あちこちの情報を整理して実装する必要があるので、備忘までに。

Register

バックグラウンド処理の登録。
・時間間隔起動なのでTimeTriggerの用意。(L.166)
・サイトから画像を取り込むので、インターネットが使えることを条件に設定。(L.171)
・UIが開いているときは、情報を更新する必要があるので、完了時のハンドラを登録。(L.178)
・バックグラウンド処理に渡す情報を、ApplicationData.Current.LocalSettingsを介して渡す。ここでは壁紙に設定する火山のコード。(L.180)

BG Run

バックグラウンド処理の本体。起動するとRunが呼び出される。

OnCompleted

バックグラウンド処理が完了したときに、ハンドラから呼び出される処理。別スレッドにいるので、Dispatcher.RunAsyncで処理。UIを更新。

AppResuming

アプリのUIが最小化されているときは、フォアグランドの処理は中断(Suspend)されているので、上のOnCompletedでは、処理されない。中断が解除されたときにハンドラから呼び出される処理にて、改めてUIを更新。

UpdateUI

UIの更新処理。バックグラウンド処理が更新した情報をApplicationData.Current.LocalSettingsを介して返してもらう。基本的な型しかサポートされていないので、Classの中身をバラして設定。ここでは、ダウンロードして保存した、壁紙に用いる画像ファイルの情報。フォアグラウンドとバックグラウンドでは、同じClassでも異なるobjectになっているので、情報を同期する。

利根川、さわら2021年02月12日 19:34

立春を過ぎて、少し暖かくなってきた。今日は、利根川から、道の駅さわらへ。

田起こし

道すがら、田んぼでは、田起こしの最中。出てくる虫を狙ってか、鳥たちが群がる。

枯れた利根川の堤

利根川の河川敷もすっかり枯れ草色。羽虫も落ち着いたか。花粉の前のアウトドア日和。

気の早い菜の花

少し気の早い菜の花が花を付ける。

お弁当

道の駅さわらで折り返し。お弁当は、天丼弁当。手前の鰯は撮る前に口の中。

どら焼き

往路でちょっとエネルギー不足。早起きだとちょっとバテるのか。お団子は重たいかなと、どら焼き。餡が秀逸。

白鳥に鴨にオオバン

桟橋の周りは、いつもの白鳥に鴨にオオバン。餌やりの人が来ると寄ってくる。

鴨の雛

陸に上がってくるものも。じっとしていれば、逃げないでくれる。

印旛沼、手賀川、手賀沼2021年02月19日 20:09

なまってしまった身体のリハビリにと、週一で遠出。印旛沼から手賀川を経て、手賀沼へ。

印旛沼の鴨たち

印旛沼は、鴨が大勢。

手賀川の鳥たち

手賀川に来ると、数は負けても、鳥たちの種類が豊富に。

牧水の碑

手賀沼に入る手前で牧水の碑。「はるけくて~」の句。今の時期、鷺は目立たないけど。

あびこ農産物直売所

あびこ農産物直売所の建物。今日はここで折り返し。風が強くて、距離が稼げず。

お弁当

お弁当の種類はそこそこ。まあ、佐原の道の駅には勝てない。出品者毎の売り場なので、店内のあちこちにある。屋外席もあるので、レストランでもよかったのだけど。

手賀沼の芦原

帰路は、手賀大橋を渡って対岸へ。見事な芦原。

手賀沼の白鳥

白鳥もすっかり居着いている。どこもつがいで睦まじい。

白鳥の郷

印西の白鳥の郷に寄り道。こちらは、渡ってきている方々が大勢。

スイセン

道の脇には、水仙の花。さて、体力の方はだいぶ戻ってきた。

.NET5.0 の WPF App - Bind、UWPやWindowsForms APIの利用2021年02月20日 16:31

LogoVistaの辞書アプリを利用しているが、ブラウザの文書からコピーして、貼り付けて、検索ボタンを押す、という一連の作業が、少々面倒。手間を省くために、UI Automationを利用してみようと、WPFアプリに着手。

WPF App

プロジェクトを追加しようとダイアログを開くと、.NET Framework用のWPFと、.NET用のWPFが出てくる。後者は、.NET5.0からのもの。UWPの改善点がフィードバックされているとのことで、後者を選んでみる。

Binding

まずは、便利だけど、いつも悩ましいBind。"x:Bind"は使えない。

DataContextの設定

ただし、ListViewなどにCollectionをBindするのに、XAMLにCollectionViewSourceの定義は、必ずしも要らなくなった。コードで、ListViewなどのDataSourceを設定すれば済む。このあたり、MSの文書にもいろいろあるが、このやり方が素直に思う(L81~)。

Resorucesの参照

次に、Resourcesの参照。UWPのx:UidでLocalizationも含めて対応、というのはまだ。ただ、"x:Static"で簡単に参照できるようになっている。

プロジェクトの定義

UWP APIの利用方法も進化中。これまでは、プロジェクトの参照に各種設定していたが、プロジェクトの定義に一行追加するだけでよくなった。"<TargetFramework>"の箇所。ただし、Windows10 1809以上の対応になる。また、GUIで設定はできない。

WindowsForms APIの利用

同じように、WindowsForms APIの利用は、"<UseWindowsFroms>"を設定する。これなしでは、Build時に名前解決に失敗する。SendKeysの利用で嵌まった。

GUIのプロジェクト定義

なお、これらの設定をすると、プロジェクト定義のGUIのフレームワークの箇所は、未選択状態になる。

MergedDictionaries

他には、"MergedDictionaries"の定義ができるようになった。これで、Styleの定義などがやりやすくなる。