top
[Index(X)][Back(B)]

ウチの子、ナン分?

作品情報

作品名:
「ウチの子、ナン分?」
作者名:
はりまお
制作環境:
Core i7-4770 3.40GHz + 8GB RAM
Windows 10 Pro (1607,64bit)
開発言語:
Visual Studio Community 2015 (Update 3)
Visual Basic 2015
WPFアプリケーション
動作環境:
.NET Framework 4.5.2
形態種別:
フリーソフトウェア(ソース公開)

画面写真

ウィンドウ
ウィンドウ

ファイル

"Nuke2.zip"・・・[ダウンロード] (更改日2016年11月08日)
名前バージョン概容
Nuke2.exe2.3.0.3実行ファイル
readme.txt説明文(本文)
CreateNote.txt制作履歴
MwOven_Converterソース収録フォルダ(削除可)

アプリケーションによって生成されるフォルダとファイル
名前概容
Resume.xml記録ファイル

概要

冷凍食品などのパッケージに記載されているワット数と加熱時間から、使用している電子レンジのワット数に合わせた加熱時間に換算します。

拙作「電子レンジ 加熱時間コンバータ」をリメイクしたもので、機能的な違いはありません。

インストール・アンインストール

本作を使用するためには、『.NET Framework 4.5.2』が必要です。【○参考・引用文献/拝借物】に挙げたサイトを参考に、導入しておいてください。
.NET4.5.2を導入できない旧OS環境では、「電子レンジ 加熱時間コンバータ」を使用してください。

インストールするには、ダウンロードした圧縮ファイルを、新たに作成したフォルダに解凍してください。

アンインストールは、インストールしたフォルダごと全て削除するだけです。
レジストリの変更や、インストールフォルダ以外へのファイル作成は、一切行っていません。

使い方

"Nuke.exe"をダブルクリックすれば、起動します。終了するには、ウィンドウの右上にある×をクリックしてください。
終了時のワット数と解凍時間が、次回起動時に復元されます。

スライダを使って、指定されているワット数と加熱時間、そして使用している電子レンジのワット数を入力すると、換算した加熱時間が表示されます。

※このソフトで得られた加熱時間は、単純な計算によるもので、美味しく解凍できることを保証するものではありません。あしからず。

プロジェクトについて

Ver.2について

Ver.2は、プログラムの全面改訂となりましたが、それはVer.1からの機能強化を志向したものではなく、WPFによる制作のテストケースとして企画しました。
当初の予定では、“カラリスト 色見 本子”のリメイクをWPF処女作とするつもりでしたが、挑戦を開始して早々にWPFの奥深さ(Windowsフォームとの隔たりの大きさ)に愕然とし「もっと簡単な題材で基本のキから試行錯誤しなければ」と思い直して、XAMLにデータバインディングとコンバータだけでほぼ完結しそうな本作にお鉢が回ってきたわけです。

ソース

配布ファイルに、ソース類も収録しています。興味があれば、煮るなり焼くなり好きに弄り倒してください。もちろん不要であれば、サクッと削除してもらって結構です。

記録ファイル

終了時のワット数と解凍時間が、"Resume.xml"という名前で実行ファイルと同じフォルダに保存されます。このファイルは、UTF-8(BOM無し)のXMLです。

変換式

変換式は下記の通りです。極めて単純な式なので、取り立てて言うこともないです。

加熱時間 = 冷凍食品の指定ワット数 × 冷凍食品の指定加熱時間 ÷ 電子レンジのワット数

ウィンドウと文字サイズ

変換した加熱時間の文字サイズが、ウィンドウの寸法に合わせて調整されます。
Windowsフォームで同じことを実現しようとすると、表示する文字数と領域の寸法から表示可能なポイント数を算出し調整するといった面倒な手続きを要します。それがWPFでは、Viewboxコントロールを使うだけで自動的に拡大縮小してくれるのです。簡単便利。

制作回顧録

電子レンジのワット数って、各社バラバラですよね。冷凍食品に書かれているワット数もバラバラ。しかも、使用できるワット数と指定されるワット数は、なぜか噛み合わない。これって、なにげに冷凍食品の面倒事第一位だと思う。
そんなモヤモヤが渦巻いているとき、時間計算機能を搭載した電卓が我が家に転がっていたので、何となぁ〜くワット数と時間を掛けたり割ったりゴニョゴニョしてチンしてみたわけ。まぁ、数学はおろか算数にも弱く電気にも縁遠い作者のやること、そりゃもうテキトウな計算です。ところがどっこい、イイカゲンな計算でも良い加減に解凍できてしまうもんだから、「あながち遠い答えではないんやろなぁ」と、自分で自分に感心しちゃったりして。
そんなある日、ネットの海でたまたま漂着したシャープのサイトに、衝撃の光景が広がっていたのです。ナナなんと、あの勝手計算式と同じものが掲載されているじゃないの…ぷぷぷ(^^♪、いやぁビックリ。
些細な喜びを噛み締めながら幾多の日々を過ごした、ある昼下がり。電子レンジを買い替えてみたら(Panasonicの単機能)、切り替えられるワット数が増えている。最も汎用性が高いであろう“500W”が選べるようになっている。ショ〜ック!! 大して高くもない鼻を見事にへし折られたよ、(;´д`)トホホ。いや待て待て、高ワット数で解凍時間を短縮できることにも意味があるはずだ、ウンウン。
こんな感じの自問自答を何年も前にしたような気がするなぁと、なぜかフッと思い出したので、とりあえず備忘録的にアプリに仕立ててみたってのが事の始まり。こんな計算、電卓があれば(時間計算機能付き電卓ならなおのこと)ちょちょいのチョイで、こんなアプリ無用の長物ですけどね。何を仰るウサギさん、電卓を用意させるより、スマホのアプリにした方がよっぽど実用的やわって、スマホ持ってねぇ〜よ、ギャフン。(ネットで検索してみたら、既に同種のアプリが存在しているようです。見なかったこと、見なかったこと。)

メイン環境が、解像度を制作者側で選択できるMSXから、利用者側に決められてしまうWindowsに移行して以来、ずぅ〜っと抱えていた課題、それが“スケーリング”。
されど、自分が創るような矮小プログラムで(もちろん自分の能力的にも)この問題を扱うには、荷が重すぎていかんともしがたい。だからと言って『モバイル機器の興隆』だの『SD→HD→FullHD→4K→8K』だのと、画面サイズと解像度を決め打ちすることがどんどん難しくなっていくばかり。拙作“HELuPER!”や“SCOrPio”の制作を通して「Windowsフォームはそろそろ限界かなぁ。せめて高DPI対応ぐらいは何とかしないとダメかなぁ」と、思ってしまったわけです(いや、“迷図”にこそスケーリング機能がないとステージを進めていけないのは分かっていたのだよ)。
で、「高DPI、Per-Monitor DPI、もしかしたらUWP…なんて考えると、とりあえず“Windows Presentation Foundation”かなぁ」と…。システム側で色々世話を焼いてくれるみたいやしね。

そんなこんなで今回、WPFを独習してみたら、近年の日曜プログラム環境の厳しさを痛感させられてしまった。
まず、手頃な独習教材が見当たらないこと。個人の情報発信の主流がSNSやBLOG等へ移り変わって、『わかっている人の備忘録』的な情報が単発で散発されてしまい、まとまった形でのリファレンスが形成され難い。初心者には非常に辛い。
また、SNS的技術共有サービスによってノウハウが囲い込まれてしまったのか、この手のコミュニティとつながっていない場末の下手の横好きプログラマの所まで漏れ伝わって来る情報量が激減しているように感じる。
それに、何とかかき集めた情報も、そのほとんどがC#で記述される始末。絶滅危惧種なVB (´Д⊂グスン ← これは、作者の特殊性が災いしているな。これを機に、「C#に転向すればいいやん」と言われればそうなんやけど、どうもC系の文法って好きになれなくて(性根からBASICに染まってやがる)。
もちろん、こんなヘッポコ相手の書籍など望むべくもない。数少ない存在である小難しそうな書籍は、高嶺の花。そもそも理解できるかさせえ怪しい。
小学校でプログラム教育をなんて時代に、これで良いのかね? Scratchを卒業した後、どこへ行くのだろう? えっ自分がリファレンスを書けって? そんな能力があったら、こんな所でぼやいてませんて。

ところで、作者の作風でもある“2D画像を動的にガシガシ描画する”プログラムは、WPFでは想定外なのかな? Windowsフォームのグラフィック メソッド(GDI+ってやつ)って簡単に色々できたのに。イヤイヤ何かあるでしょと必死のパッチで検索した結果、"WriteableBitamp"なる存在までは突き止めた。けど、その具体的な用法・用例が全くもって掴めず二進も三進もいかん。
こんな具合に、WPFには新機能が追加されている反面、Windowsフォームで便利に使ってい機能が少なからず葬り去られている。同じ.NET Frameworkの仲間なのに。インテリセンスのヒントやMSDNの文章が解り辛くなった(ただでさえマイクロソフトが書く文章は難解なのに)のも玉に瑕。これが時流? はたまたマイクロソフトによる開発の進展によって解消される問題? それともWPF上でWindowsフォームの部品を使えってこと? はてさて、マイクロソフトの真意は、いずこ???
初めてのWPFは、まるで「異なる文化・複数の言語が入り混じる多民族国家」のような感じ(とはいえ、ルールがハッキリしているので一つの自然言語を習得するより遥かに易しいけどね)。かつてMSXで夢見た“プログラミングが平凡になる(難しいことを可能にするのではなく、難しかったことを簡単にするために高度な技術を使う…えっ(O_O;)、その成果がWPFだって!?)”ってな日が、いつかやってくるのかねぇ。

資料

《表1》コマンドライン引数

コマンド概要n
/DEFAULT記録ファイルを初期化します。
/SW=n起動時の指定ワット数を設定します。n=100〜2000
/TW=n起動時の使用ワット数を設定します。n=100〜2000

参考・引用文献/拝借物

毎度、有難う御座います。大変お世話になりました。

ウェブサイト

アイコン作成ツール

リファレンス/サンプル

.NET Framework

[Top(T)][Index(X)][Back(B)]