blogforumabout

Posts Tagged ‘dev fail’

Terms of Service issues with Zune HD (and a fix)
September 15th, 2009
by Bryant

Just to clarify: this is a selective issue; the scope of this issue isn’t known, but not everyone is seeing this problem. The fix is outlined after the jump for the issue listed below for those of you experiencing it.

In the wonderful world of Zune, all the Zune teamsters, Zune coders, Zune pushers, and Zune lovers are busy celebrating the launch of the Zune HD. That’s not to say there aren’t any snags with which to deal. Case in point: I came across this wonderful screen when I tried to sign into my account under Zune 4.0 for the first time:

zuneterms1

“Great, there’s no terms to which I must agree. I’ll just go ahead and click Accept,” (the result of which you can see after the jump)

(more…)

Posted in Hardware, Microsoft, Tips/Tricks/Hacks | 6 Comments »

What not to do with UX design
August 25th, 2009
by Bryant

Java Automatic Update consent promptOnce upon a time, a Microsoft employee said that UAC was designed to annoy people, thus encouraging people (and systems administrators) to bug application developers and get those developers to fix their use of resources in Windows. Well, it seems that one company actually went backwards, making its application more annoying than it used to be.

Of course, I’m talking about Java.

I figured I would turn Java into an example of what not to do when designing something for Windows before uninstalling it. Since Sun Microsystems clearly has no idea how to develop for Windows Vista, I’m going to direct them to this wonderful page.

I highlighted the single switch present in the command which indicates the problem: “-auto”. UAC prompts should never be automatically launched without informing the user prior to launching one. It’s very plain and very simple, and when developers start writing applications which throw consent prompts without any obvious reason as to why, they’re clearly doing something wrong.

Worse yet, Java Automatic Update decides to tell me after I click Cancel that it wants to update.

Java Update bubble

This bubble should be thrown first, followed by launching the consent prompt should the user decide to update. Doing it the other way around is mindblowingly stupid. It’s not exactly an easy thing to screw up, either, so I’m chalking this one up either to developers not knowing what they’re doing or developers testing UAC out for the heck of it to see how many people obey random UAC prompts.

If you’re seeing this, I highly encourage you to click Cancel. Better yet, go ahead and uninstall Java. That’s what I did.

Now if you’ll excuse me, I’ll be going off to celebrate my birthday away from random UAC prompts.

Posted in Development, Tips/Tricks/Hacks, Windows | 9 Comments »

WPF Magnifier Scaling kinda returns from the dead?
February 21st, 2009
by Bryant

blucomparo-alpha

This post was originally supposed to be about why blu is faster with WPF, hence the tweet in the image, but after some digging, an equally unusual happening supplanted my original purpose for this post. If you decide to download blu, feel free to follow me as well; blu is a fine application if you don’t mind the occasional random crashing.

When Vista was being developed, the ability to magnify WPF vector graphics was included as an accessibility feature: vectors scaled in the magnifier on a WPF app would be easier to see and read, thus making this feature highly beneficial for those with diminishing sight. However, down the road, the WPF guys decided to scratch this feature in SP1.

Now, before I start, it’s best to know what vector graphics are. Outside the usual jokes about vectors thrown around during the Longhorn days when Aero Diamond managed to be a very persistent rumor, not many people actually understand the benefits of vector graphics over raster images (or, for that matter, what a vector graphic even is).

  • Raster images are built pixel-by-pixel stacked like brickwork to generate an image. Because of this, raster images aren’t any good once you start zooming in and seeing the individual pixels. Generally, raster images are great for photographs simply because there’s far too much detail to be captured through points and lines, which brings us to vectors.
  • Vector graphics, on the other hand, are built using a series of points connected together by way of instructions for various types of lines. Along with fill, effect, and other instructions generally used to make things look pretty, that’s really all a vector graphic is. Because of this, vector graphics are great for web graphics and other computer-generated things which don’t require photographic precision (Corporate logos are a great example).  Thanks to the fact that vector graphics are rendered upon request, they’re infinitely scalable; all you’re doing when scaling a vector graphic is scaling the math behind the scenes.

Here’s the thing: this feature was supposedly nixed from Vista SP1, but before I found out about this, I tried scaling blu in the magnifier. The text scaled just fine, while the rest of the app did not (though this second bit could just be due to how blu was designed). I tested this out in Windows 7 and found that vector scaling in the magnifier was also kept out of Windows 7, as you can see by the fact that the text in blu is not magnified in Windows 7’s magnifier.

Well, if you take a look at the leading image at the top of this post, you’ll clearly see that vector scaling works in Vista SP1 at least with text (the unmagnified app is to the left).

Anyone have any ideas? I should note that I am on Vista SP1, and I do have .net 3.5 installed.

Posted in Development, Microsoft, Windows | 9 Comments »

A lesson on infinite loops
January 3rd, 2009
by Bryant

 quality assurance baby

 

Yesterday, I took a look at the varying perspectives taken with regards to the Zune 30 debacle. Today, I’ll take a look at what exactly led the Zune 30s to freeze. If you’d like to see the code for the entire driver, click here.

Below the fold lies a sufficiently sized code sample with everything you’ll need to understand what happened with the Zune 30 bug.


(more…)

Posted in Development | 157 Comments »

The Zune 30 bug was overinflated
January 2nd, 2009
by Bryant

Zune Logo
(My sincerest apologies; this post was unpublished due to a database error. The issue has since been fixed.

This is a shout-out to all Zune 30 owners who remained patient.

This is to you, the faithful owner of a Zune 30, who didn’t buckle under stress and kept a keen eye on Microsoft, waiting for a solution.

This is to you, the discount shopper who picked up a Zune 30 and didn’t want to lose faith in your hardware.

Low and behold, Microsoft dug deep to find out the problem and, within minutes of finding out exactly what it was, pushed out an answer and a solution that didn’t void your warranty (thanks, Gizmodo). There’s a reason for why I’m bringing all of this up. July of 2008 saw cataclysmic server failure when a vast majority of all newly-purchased iPhone 3G units tried activating at nearly the same time, leaving both new iPhone 3Gs and some iPhone Gen 1 units dead in the water until the activation servers came back online. Poor planning led to the creation of a load-intolerant system on AT&T’s side (though the blame hardly belongs to them, given that Apple mandated this system in the first place). However, people weren’t infuriated by Apple’s ineptitude here. They were complacent and merely went with whatever explanation was fed to them. Meanwhile, a sizable majority of people who stuck with their own platforms of choice decided not to point and jeer.

Fast forward to December 31, 2008, and every Zune 30 device freezes due to a bug in a driver from Freescale Semiconductor in this while loop (between lines 259 and 274):

    while (days > 365)
    {
        if (IsLeapYear(year))
        {
            if (days > 366)
            {
                days -= 366;
                year += 1;
            }
        }
        else
        {
            days -= 365;
            year += 1;
        }
    }

(protip: day 366 triggers an infinite loop. To see the context of the code, check out the pastie link above, or just click here. You can see a breakdown of how this could’ve been handled here) 

What happened? Every Apple-loyal iPhone, iPod, and Mac owner threw a fit even though none of them actually owned a Zune 30 (You can’t run a Zune 30… or any Zune, for that matter, on a Mac). Thanks in part to the additional sensationalism promoted by gadget bloggers and, subsequently, news outlets the world over, a problem with a Zune model sold only in North America suddenly became a "Worldwide Zune Outage."

This is the difference between the Social and the Kingdom of Apple. Those with Zunes held out patiently and were rewarded with verbose output by Microsoft, whereas Apple simply vaguely alluded to some other company being the source of their problems (or were otherwise mute for a long period of time) whenever something on Apple’s side went wrong.

Thank you, Zune 30 owners, for living up to the hype of the Social. I’m now quite proud to be an owner of a Zune myself.

Posted in Apple, Hardware, Microsoft | 24 Comments »