Sunday, November 23, 2008

eComic WPF

Well I've been playing with WPF lately, and while I don't have it down 100%, I do have a working prototype (see the pretty image there). It's a great little thing, with what amounts to two panels (one for thumbnails, properties, etc and the other for the actual image) and my personal favorite of UI chioces: the Ribbon control.

I'm not sure why I like the ribbon so much, but I do like the paradigm behind it.

Anyways, the technologies hiding in this thing are as follows:

  • Ribbon Menu Control
  • WPF
  • WPF Layouts
  • Scroll Viewers
  • Zip Library
  • WPF Image Control
  • WPF Tab Control
And that's just the major things that I can remember off the top of my head.

And I'm not above admitting that it's taken me a bit to get it into this state of being able to work it. Sure, it only took a few hours to get the base system up and running, but it was ugly. The main window looked nice with its Ribbon component, but the Image Viewer popped up as a secondary window that lacked the Ribbon control.

It was in essence the very paradigm I was trying to escape from by moving the application to WPF.

Which meant that it was back to the research boards, and hunting for a way around the problem. Enter the Tab Control. I was able to override the style associated with the header of the tab, and make each of them have a label and a little "X" button.

Once that was in place, it was a simple matter of ripping out the ImageViewer as a WPF form and create the ImageViewer as a user control which can be added to a Tab Item. This is the paradigm that you get to see in the picture above.

Anyways, I've finally got all those little things sorted, and began doing communication, information exchange and UI changes from the various tab-based ImageViewers and the Thumbnail tab that hangs out on the left hand side of the application.

Next up the Resume Reading, Next & Previous Archives buttons.

Sunday, November 16, 2008

Take a Vitamin C; All Your Virus Metrics Belong to AVG

Steve Wiserman over at has an article talking about the recent AVG Anti-virus screw up concerning Windows XP and User32.dll.

In it, he asks the following two questions:

This makes me ask a few questions. First, how can they determine which customers are affected. Secondly how can they tie that to contact information?
Reasonable questions, and while I don't know for certain that this is how AVG has accomplished this task, here's two possible way that it could be done.

First, AVG talks to it's parents servers. We knows this because it updates itself, and it checks to see if you are running a valid license. Is it so unbelievable that they are pushing up metrics on what viruses are being caught as well? At that point it's a simple matter of connecting a installation license with the associated email address.

Second way is to push down an update to the application which checks to see if said file was stuck into quarantine or cleaned and then toss up a messagebox displaying the upgrade offer.

Now, why do I think those two ways are possible? It's simple, as a user of the software I read the EULA.
6. Miscellaneous.

a. Notice. AVG Technologies may deliver any notice required by this Agreement via pop-up window, dialog box or other device, even though you may not receive the notice unless and until you launch the Software. Any such notice will be deemed delivered on the date AVG Technologies first makes it available through the Software, irrespective of when you actually receive it.

b. Privacy.

i. You acknowledge that AVG Technologies collects certain information regarding the users of the Software, including certain personally identifiable information. You hereby consent to AVG Technologies' collection and use of such information, and agree that AVG Technologies' collection and use of such information will be governed by AVG Technologies' Privacy Policy, currently published at, as AVG Technologies may revise the same from time to time.
Bloody annoying things they are, but they do tell you all sorts of interesting tidbits of information about the software and what it does. Either way of discerning who was troubled by the screw up by AVG is well within their "rights" according to the EULA.

Amusing what you learn when you read those evil things, eh?

Blog Widget by LinkWithin