長期間使用していないWindowsでUpdateできない

Windows Updateでは、いろいろな問題が発生することがありますが、しばしば発生する
「長期間使用しないWinodwsのシステムでWindows Updateができない」件です。
修正プログラムがダウンロードされる「SoftwareDistributionフォルダの破損」です。

いつものようにネット情報から。

http://www.atmarkit.co.jp/fwin2k/win2ktips/944rcvsoftdist/rcvsoftdist.html

 

MONOHDDdrive2013500

いまは、当たり前のようにネット情報で問題解決の方法を調べ、プログラムもコピペです。
昔はどうしていたのでしょうか?

低回線シミュレータ

今ではブロードバンド(この言葉も古い?)があたりまえですが、一昔前、ISDNなどの回線でも
素早く表示されるようにHTML、画像を調整したこともありました。

hand_and_keybord

低回線シミュレータを使えば次のようなテストができます。
・ポケットWiFiからアクセスしたときの挙動がおかしいので調べたい。
・ローカルのLANで、ボタンの二度押しなどのテストをしたい。

残念ながら調べた範囲で、日本語、無料のソフトは無いようです。
NetLimiter3
http://www.netlimiter.com/download.php
WebSlower
http://www.softpedia.com/get/Internet/Other-Internet-Related/WebSlower.shtml

NetLimiter3は1ヵ月試用ができるので、インストールしてみました。
比較的簡単に、アップ、ダウンの回線スピードを制限できます。
いいソフトをご存知であればお知らせください。

中高年プログラマへの応援(?)サイト

中高年プログラマはシニアプログラマと前向きに考えましょう。pp_notekey500
応援になるかどうかわ分かりませんが、暇があれば、見てください。

 

年齢を重ねることは、ハンデでも不幸でもない
http://el.jibun.atmarkit.co.jp/jibun/2011/01/post-55bd-4.html

 

シニア予備軍への警鐘
http://el.jibun.atmarkit.co.jp/gijyuturikkoku/2011/11/post-e562.html

 

中高年プログラマーの賞味期限とは
http://developers.slashdot.jp/story/12/11/06/0931234/%E4%B8%AD%E9%AB%98%E5%B9%B4%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9E%E3%83%BC%E3%81%AE%E8%B3%9E%E5%91%B3%E6%9C%9F%E9%99%90%E3%81%A8%E3%81%AF

シングルページアプリケーション?

WEBアプリケーションの動向について調べていると「シングル・ページ・アプリケーション(SPA)」なる
言葉を知りました。
「米HuluやQuartzも採用 -Webアプリ開発で普及期に入ったシングル・ページ・アプリケーションをどう学ぶか」
http://engineer.typemag.jp/article/spa-dev
「2013年はSPAの年・・・になるといいなぁ」
http://new.takyam.com/entry/2012/12/30/2013%E5%B9%B4%E3%81%AFSPA%E3%81%AE%E5%B9%B4%E3%83%BB%E3%83%BB%E3%83%BB%E3%81%AB%E3%81%AA%E3%82%8B%E3%81%A8%E3%81%84%E3%81%84%E3%81%AA%E3%81%81

 

MON85_heatshink1285500

一言でいうと全てのページを動的に生成することです。

動的に生成することで、シームレスなユーザーインターフェースを提供しつつ、MVCの概念を強く意識した
設計方法となります。
スマホのネイティブアプリに影響を受けたような感じで、WEBのデザイン全般にも浸透しているようです。
パソコン、スマホ、タブレットなど複数のデバイスに対応せえる「ハイブリッドアプリ」には適切な方法と
思われますが、具体的に作るとなると未知数です。
「JavaScriptでシングルページアーキテクチャを実現する」
http://wazanova.jp/post/62755381961/javascript-airbnb-tech-talk

コードの臭い」そしてリファクタリング

「コードの臭い」があるプログラムのメンテナンスにリファクタリングは必須です。
私のように個人作業で進める開発はいい加減なプログラムが多いので、メンテナンスに苦労します。

以下「リファクタリング」(http://www.woodensoldier.info/computer/refactoring/)より

リファクタリングの基本方針
・コードをできるだけ小さな単位に分割する
・処理のかたまりに名前をつける
・処理を重複して記述しない
「 どんなプログラマーでもコンピュータに理解できるコードは書ける。しかし優秀なプログラマーだけが、人間に理解できるコードを書くことができる。
」~Martin Fowler~

リファクタリングのルール
・リファクタリングと機能改変を同時にはおこなわない。リファクタリングをしてから新しい機能を追加する。
・リファクタリングを始める前と後にはユニットテストを実行しコードの機能が変更ないかを確認する。
・パフォーマンスよりもメンテナンス性を重視する。
・こだわり過ぎてはいけない。
・小さなリファクタリングとテストの組み合わせを繰り返す。決して一度に大きなリファクタリングをしない。
「大きなリファクタリングは惨事のもとである。」~Kent Beck~

本家”マーチン・ファウラー”のリファクタリングカタログ
http://refactoring.com/catalog/
「リファクタリング―プログラムの体質改善テクニック(ピアソンエデュケーション)」を読んでもらうのが
一番なのですが、絶版かもしれません。

参考
「コードの臭い」
http://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E8%87%AD%E3%81%84
「不吉な匂い」
http://objectclub.jp/technicaldoc/refactoring/refact-smell

WPFではイベント駆動型は使用しないのか

.NETのWPF(Windows Presentation Foundation)では、MVVMパターン的な実装が推奨されるようです。
http://ugaya40.net/mvvm/mvvm_document.html
http://www.atmarkit.co.jp/fdotnet/chushin/greatblogentry_02/greatblogentry_02_01.html

MSDNマガジンに実装サンプルがあります。
Model-View-ViewModel デザイン パターンによる WPF アプリケーション
http://msdn.microsoft.com/ja-jp/magazine/dd419663.aspx

先日、WPFのプログラムを作るにあたり、上記のサンプルを参考し、MVVMパターン的な実装をしてみましたが、
慣れないと、かなり大変です。イベント駆動型実装の思考に慣れすぎているのかもしれません。
MVVMパターン実装での失敗例など。
http://www.slideshare.net/Posaune/livetmvvm

規模の大きなWPFの開発では、MVVMパターンが多くなると思われますので、最低限の知識は必要でしょう。

Windowの標準バックアップツールで共有フォルダに保存したものをコマンドで復元

Windows Server 2008、Windows7標準のバックアップツールで共有フォルダにバックアップしたもを
コマンドwbadminで復元するのにハマりました。

基本的な情報は、以下のサイトにあります。
http://network.station.ez-net.jp/server/microsoft/windows/2008.core/backup/wsb-restore.asp

ボリュームで復元する手順には以下のようになります。
1. wbadmin get versionsで共有フォルダ上のバージョン情報を取り出す。
具体的には wbadmin get versions -backupTarget:共有名 -machine:バックアップを取ったサーバー名
バージョン情報は基本的に日付に関するもので”02/01/2014-19:00”などになります。
2. wbadmin get itemsでバージョン情報からボリューム情報を取り出す。
具体的には wbadmin get items -version:バージョン情報 -backupTarget:共有名 -machine:バックアップを取ったサーバー名
ドライブ情報はバックアップしたドライブごとに{35f0b218-1ed6-11e0-afb1-842b2b6aeed4}などで表示されます。
3. wbadmin start recoveryで復元する
具体的には wbadmin start recovery -version:バージョン情報 -backupTarget:共有名 -machine:バックアップを取ったサーバー名
-itemtype:Volume -items:\?Volume{上記2で表示されたバックアップされたドライブ情報} -recoveryTarget:復元先のドライブ番号 -quiet

Windowsアプリの自己自動更新ライブラリー

バグは作りたくなくても、入り込んでしまうものです。
そこで、サーバーに最新版をセットすれば、自動的にアップデートしてくれれば便利です。
バッチコマンドを無条件に実行させるのも方法ですが、利用者にアップデートされたことを
通知してくれれば親切です。
.NETにClickOnceがありますが、どこにインストールされたか分かりにくい曲者です。
そこで、自動更新してくれるツールがないか調べてもました。
以下のサイトに一覧があり、ほとんどオープンソースで、ソースを解析し、自分なりのものを
作ることもできます。
「自動更新ライブラリを比較する」
http://d.hatena.ne.jp/sixpetals/20130418/p1

十分調べていませんが、結論的には、どれも、しっくりこない感じです。
・NAppUpdate
http://www.mori-soft.com/2008-08-15-01-36-37/2009-08-02-15-37-17/134-net-nappupdate
結構アプリケーションの変更が大変。
・wyUpdate
http://code.google.com/p/wyupdate/
設定ファイルの設定が大変。有料のツールを使う?
・NetSparkle
http://netsparkle.codeplex.com/
ドキュメントが分からない。XMLの定義方法が不明。
・DDay.Update
http://sourceforge.jp/projects/sfnet_dday-update/
ClickOnceのサーバー設定を使う。これは実際動作確認。
・AutoUpdater.NET 1.2
http://autoupdaterdotnet.codeplex.com/releases/view/105236
1つのEXEだけ対応?

他の参考サイト(古い情報です)
・「ClickOnceの基本動作を見てみよう」
http://www.atmarkit.co.jp/ait/articles/0601/18/news112.html
・「NETアプリケーション自動更新技術の比較」
http://www.atmarkit.co.jp/fdotnet/special/autoupdate/autoupdate_02.html

Windowsでコマンドプロンプトでzipファイルができない?

Winodwsでエクスプローラーから、zipファイルの作成、解凍はできるのに、コマンドプロンプト
からできないようです。
一番簡単な方法は、7-Zip コマンドラインバージョンを使うようです。
http://sevenzip.sourceforge.jp/howto/non-install-compress.html

ちなみに、コマンドプロンプトでctrl+c、ctrl+vは効きませんが、近い方法はあるようです。
http://bata64.hatenablog.jp/entry/20090119/1232348259