Archive for the ‘annoying’ Category

Filename Conflicts On Download

Thursday, March 4th, 2010

I was very satisfied when Apple revisited how the Finder handled some of its file-naming architecture. Some behaviors were bugs and absolutely had to be fixed. For example, prior to Leopard there existed a mixed behavior when renaming files under different view modes (Column View, Icon View, Detail View, etc.).

Finder's toolbar buttons for the different View Modes.

Normally if you start changing the name of a file and change your mind you could hit the Escape key, and the name would be restored to what you started with. However, under the Column View, hitting Escape was equivalent to hitting Return, and whatever text you currently had would be accepted. Very annoying! Obviously the first behavior is more intuitive, and it is inarguable that the renaming file behavior should be consistent throughout all View Modes.

The Good

Finder's intelligent filename selection which excludes the extension when renaming.The feature I most liked, however, was that if the extension of the file is visible and you started renaming it, the entire filename except for the extension was selected. This change made renaming much quicker and easier because not only did you no longer have to remember the extension, but less typing was required (on average four characters: period + three letter extension). At first these four extra characters might not seem like too much work, but if you rename a list of files, you would drastically notice the difference.

The Bad

There is at least one more thing that I see that needs to be changed. When Safari downloads a file and another file already exists with the same name, it begins appending sequential numbers (preceded by a dash) to the end of the filename in order to distinguish them (“-1”, “-2”, “-3”, etc.).

Two icons showing the intended behavior of Safari's renaming algorithm when downloading files with the same name.

But is the added suffix really appended to the end of the filename? Turns out it isn’t and I consider it a major bug. Say what you will, but I don’t see it as simply a behavior that isn’t necessarily right or wrong. I think it’s obvious what the intention is (refer to the screenshot above) and the screenshot below shows an example when the intention doesn’t carry through. From my observations, the Finder inserts the “suffix” immediately before the first period it encounters while searching from beginning to end of the filename. It should be inserted before the last period.

Two icons showing the malfunction in Safari's renaming algorithm.

The Solution

It would be very easy to iterate from back to front of the filename (my Page Capture widget does). And it happens to be more efficient since extensions are typically shorter than the actual filename. Hopefully someone over at Apple reads this post and fixes the problem. While they’re on it, they might as well fix the other problem I’ve mentioned with the TextEdit Autosave algorithm.

Gross iPhone OS Update Typography

Monday, November 9th, 2009

Check out the first line of the update message in the screen shot that I took on my iPod Touch below. The mistake between ‘O’ and ‘0’ is too apparent to not write about… not to mention typographically gross!

Screenshot Someone’s finger must have slipped from the ‘O’ to the ‘0’ — bad form!

iTunes Sucks

Tuesday, October 20th, 2009

You know, it’s a shame that iTunes now sucks.

A few years ago in the midst of the chaotic world of digital jukeboxes, iTunes emerged as a simple application to manage and play music — offering the basic features that one would need. Although it wasn’t groundbreaking in most regards, it did manage to stand out among the rest due to its extremely simple interface and integration with Mac OS X*.

These days, iTunes has become the fat and greedy roommate of the OS — every time it is called upon, I can hear the squeak of the plastic sticking to it’s back as it readjusts it’s fat ass on the vinyl couch. Its shear size and its toll on the processor has grown immensely and we can thank the superfluous features that are bundled with it: an integrated music store, Quicktime (oh my God… Quicktime for heaven’s sake!), a synchronization manager for your events/contacts/ringtones, etc.

I’m a programmer so I know that little glitches occur here and there. But a stable release of software, especially when developed by a professional corporation such as Apple shouldn’t have the problems I’ve noticed with iTunes.

Erroneous progression bar in iTunes.20 seconds have elapsed and there is more than three minutes remaining. Why is the progress indicator at half?

Moving on… the application allows for adding media into its library by simply dragging and dropping files into the iTunes window. This feature is nice but unfortunately also very unreliable with large quantities of files. When I attempted to add many files by this method, I noticed that not all the songs I imported had made it. In fact, only about 80% of them were successfully copied. Yes, I can prove it:

Screenshot showing the differences between two iTunes Libraries.A diff of the original and imported librarys’ contents. The gaps on the right show files that never made it into the new library.

Why does fundamental functionality not work? Could it be because the application is so big now that there are more avenues for errors to be produced? Maybe errors like these emerged because Apple decided to add features like mad men to an application that wasn’t theirs to begin with.


I know, but Iit’s true. iTunes evolved from an application called SoundJam which was originally developed by 3 people at Casady & Greene. Apple purchased from the rights to this bit of software and after a quick face lift, released it as their own “iTunes.” John Gruber talks a bit about related issues on Daring Fireball and John Knack responds with some insight. And if you’d like to know more about the early days of music players on the Mac platform, there is a very informative story written by the guys at Panic.

Anyway, company acquisitions and inheriting code is normal these days, but I fear that iTunes never had the proper foundation for the features that it now supports. The amount of functionalities in iTunes can be deceiving since it has managed to maintain the same basic interface structure over the years — a commendable design achievement considering the growth of iTunes in the last few years. But integrating new functionality and features under the same simplistic interface more often than not calls for shortcuts that can become problematic.

The LCD-like interface of iTunes which functionally is expected to show current track information is used for displaying the progress of a download.

For example, whenever the LCD-like display is used for anything but current track information, comprehension for the user becomes a problem. Applications mimic real-life objects in order achieve intuitive functionality, but when the expected functional behavior of an interface element is modified, confusion arises.

With the release of iTunes 9, other inconsistencies have shown up. Take the volume slider for example. The part to the left of the dial is now “filled in” like a progress bar. But the slider on the heads up display when watching videos remains like the previous version (which I personally prefer) which is just a simple dial on top of a slider bar.

Volume slider and progress bar inconsistencies in iTunes 9.

And wait a minute… isn’t watching videos in a music player an oxymoron?

I think the only reason I’m still able to use iTunes is because I disable everything that I can in the preferences. This way, I’m able to make iTunes appear like the simple music player it used to be; like the simple music player it should be. Even so, it’s still disturbing to know that all those frivolous features that I hate are still tucked in underneath and weighing my application down.

Trying to keep the interface of iTunes simple by disabling all the frivolous features.

I’ve disabled as many of the features I can in order to keep iTunes looking like a simple music player. But even with the features hidden, they are just itching to jump out at me because despite having disabled the iTunes Store, I see a “Contacting iTunes Store” message when I launch the application. How frustrating.

*Yes, soon after its initial release, iTunes did of course have the ability to synchronize music to a portable player, but this feature wasn’t new for jukeboxes. The problem (that iTunes “solved”) was that you couldn’t buy a portable music player from Company A and use a digital jukebox from Company B to efficiently synchronize your music. The best way to manage music on a device from Company A was to use Company A’s own proprietary jukebox software. It’s no different with Apple. iTunes synchronization only works with Apple’s line of portable MP3 players — uh, I think they’re called iPod — so the way that iTunes “solved” this problem was to gain dominance in the market so that everyone uses an iPod and iTunes anway.

If only there had been a way to quickly synchronize the contents of a music library from Company X with a portable music player from any other company. Hmmmmmm.

Report Bugs to Apple

Sunday, June 28th, 2009

I went the longest time wanting to know how to report the bugs I write about to Apple. The only way I knew of how to do so was when an application crashed, or through the “Report a Bug to Apple…” option in Safari. But these methods are limited by application’s ability to invoke the service.

I came across an Apple Bug Reporter online utility that apparently gets the job done — or at least claims to do so. It’s unfortunate that you need an Apple Developer Connection (ADC) membership and the utility appears to be several years old (judging by the interface).

At least it’s something… if anyone on the other side is still checking.

Balancing On The Ethical Line

Monday, January 19th, 2009

As in any engineering profession, ethics is a key component of Software Engineering. In fact my college software development courses at Cal Poly emphasized engineering ethics as much as any of the other topics because although developers need to know about many technical disciplines (such as versioning, the software life cycle, software prototyping, etc.), they also have expectations to meet and responsibilities towards those who use their software — and their ethical foundation is what will define how they face up to these responsibilities.

Knowing that ethics is such an essential and basic rule of engineering, I’m disappointed when I encounter software products (large or small) that don’t adhere to software engineering ethics. Or that companies even hire software developers when they don’t enforce an ethical background. I’ve stumbled upon some recent examples that have bothered me enough to write about.

Forcing By Confusion

When customizing the installation of Mac OS X 10.5 (Leopard), I am given a list of optional applications to install. Some options expand to reveal dependent sub-items, who’s relationship is clearly indicated by the grouping of which they are a part.

Deceptively forcing to install Microsoft Office

As I clicked on several of the check boxes I noticed that the Office 2004 Test Drive option enabled itself automatically (without me having directly clicked on it). This behavior is not what is expected of a checkbox. A check box is suppose to toggle a single option. Only when an obvious dependancy to another item exists should it also change the state of another option.

In this scenario, there is obviously no dependency between choosing to install Office 2004 Test Drive and any other option. If there were, it would be indicated by a hierarchy as it is done with iWeb, GarageBand and iDVD. Bypassing this expected behavior and thus tricking the user is unethical.

Forcing By Deception

After installing iWork ’08 I was, not surprisingly, presented with an option to register* my use of the product with Apple. Unlike in most registration dialogs, I was not given an option to Never Register or Cancel. Rather, I was only allowed to register or postpone my decision.

I thought: “Man, am I really gonna have to click on Register Later for all of eternity?”

Well, it turns out that I am stubborn enough so that is exactly what I decided to do even if it meant dealing with the dialog every time I wanted to use the software that I purchased.

But once I launched the product a third time, the Register Later button turned into a Never Register button, which is exactly what I had wanted in the first place. Why couldn’t that option have been offered initially? Why did they try to deceive me to register before giving me the option to not do so? They could at least have informed me from the get-go that the option would change down the line.

Close-up view of the progression of the available options.

To change the options available to a user without any evident reason to do so is deceptive. It makes the user think that those initial options are the only ones available. I for one, could have easily been convinced to just go ahead and register if I wasn’t as stubborn as I am. Deceiving people with an artificial mandate is unethical because you influence their ultimate decision by omitting valid options.

Forcing By…Forcing

I encountered a similar registration dialog upon installing Aperture and this time the fields contained even more personal information — all of which was pre-filled with data from my address book:

As in my previous example, I clicked on the Register Later button hoping that eventually I would be given the option to Cancel or Never Register. Well, I’ve been clicking on the same button for more than six months now so I think it’s safe to assume that it will never come up. I guess persistence isn’t always a solution.

Even though I’m not forced to register, eventually I might click the Register Now button accidentally. In reality, I have very little control over the situation since all my information is automatically filled in and my options are limited. Always having an option to postpone my registration is a clear indication that it isn’t a necessary step and I should therefore be given an option to forgo it permanently.

If one considers how some viruses work, this conduct doesn’t sound so innocent anymore. While a virus would obtain and send my information without my knowledge or approval, the behavior in use here waits for me to make a mistake and click on the Register Now button by accident. It should be my choice whether to have all my contact information sent to God knows where and in this scenario, I’m not really being given the control that I deserve.

The Rant

So who’s to decide what is ethical or not? Well…we are. Corporations only get away with this crap because users of their products put up with it. The majority of the population would rather “just move on” even if it means complying with an imposed action. I feel differently. I find it annoying and I refuse to conform simply because “it’s more convenient.”

Who knows, maybe the manipulative intentions in the examples above weren’t premeditated or will change in future releases. But it’s important for developers and product managers to realize that little things such as these can damage a company’s image and the trust that users have in their products. If you’re manipulating me in this way, how am I to trust that you’re not doing it in other, dare I say worse ways without my knowledge?

Users need to be aware of when they’re being pushed around unnecessarily and should definitely be mindful of what they click on. After all, we can’t expect corporations to have the user’s best interest in mind since their ultimate concerns are to their stock holders and their profit margins. However, we can expect them to behave ethically and we should hold them accountable for just that.

* Registering is different from activating a product with a serial number and should be optional. The information normally requested is not at all necessary for the operation of the software.

I never register because 99% of the time there is no need or benefit to release the kind of personal information requested.

Apple Security Threat

Thursday, November 6th, 2008

A recent occurrence has made me think twice about Apple’s Target Disk Mode boot option. Indeed it can be a very convenient feature, but like most conveniences this one is riddled with security threats. What is most bothersome, though, is how few people realize the problems it poses — not to mention the simplicity of a solution that Apple does not provide…at least not by default.

For those of you not up to speed, most of Apple’s computers allow themselves to be temporarily turned into an external hard drive simply by pressing the corresponding hot key (‘T’) during boot up. If the computer supports this option (most do) it will enter what is called Target Disk Mode (TDM) and allow itself to become a mass storage device and be connected to another computer via an IEEE 1394 interface (aka FireWire, i.LINK, Lynx…whatever).

Yes, this feature is convenient for transferring large amounts of data or if you need a quick makeshift external hard drive (assuming you have a male-male Firewire cable). Unfortunately, the feature also inherently bypasses the OS from ever being started on your computer allowing others access to all sorts of files that you assumed were secure by the OS’s login.

How It Works

When you press the power button on your computer the first thing to come to life is the firmware (a very low level program that lives in the hardware) and it decides what happens next — whether to boot into the installed OS, boot from a CD, boot from a network drive, etc. The decision is based on multiple factors, one of which is to check for certain hot keys on the keyboard.

The Problem

The problem with this convenience is that anyone with a finger has the ability to transform your computer into a large external drive. Yeah, including that person that just walked away with your laptop while you were getting another soy latte at Star Bucks.

Some would argue that if I’m this concerned with the security of my files, that I should enable FileVault in order to encrypt every file on my hard drive. Yeah? Well, I don’t think I should have to enable something that will have incredible amounts of overhead just because a back door exists that can completely circumvent the OS’s login prompt.

Solution (but not really)

Firmware Password Utility ApplicationThe solution is simple: eliminate the hot keys from influencing the firmware’s decision. Welding a steel plate on top of your keyboard would work I guess, but that’s not very convenient. A better idea would be to tell the firmware to not check the hot keys.

Currently, there is no way to disable these hot keys, but it turns out there is a way to password protect the firmware with some extra software. But after reading Apple documentation that states that the firmware password can be circumvented (quite easily), and that it could in fact be hazardous to your system, and that it is temperamental, I disabled it on my machine and don’t recommend it. Way to fuck us over, Apple:

“WARNING: Open Firmware settings are critical. Take great care when modifying these settings and when creating a secure Open Firmware password.”

“An Open Firmware password provides some protection, but it can be reset if a user has physical access to the machine and changes the physical memory configuration of the machine.”

“Open Firmware password protection can be bypassed if the user changes the physical memory configuration of the machine and then resets the PRAM three times (by holding down Command, Option, P, and R keys during system startup).”

The Rant

First of all, I think that the extra Firmware Password Utility (not included in a default installation…but available from the software installation disc (/Applications/Utilities/) and online) should not be necessary. I think there should be a simple check box in the System Preferences that enables/disables whether or not the keyboard is “heard” by the firmware.

I also think that the hot keys should be disabled by default. Apple is all about an ‘out of the box, ready to go’ mentality so I suspect they leave the feature enabled by default because that makes it more convenient for their users to make use of the TDM functionality. We’ve seen this same behavior before, but I think the security threat outweighs the convenience factor. Tisk, tisk Apple.

Things That Grind My Gears

Friday, August 8th, 2008

I must be a very optimistic person because I tend to handle my irritations rather well. I began keeping a list of scenarios that genuinely bother me, but as I compiled the list I noticed that the pet peeves didn’t bother me as much any more. Or rather, I began to see humor in the situation so I was able to laugh my way out of potential letdowns the next time that they happened.

The purpose of sharing the following scenarios is to hopefully allow you to see the ridiculous nature of the circumstances, and maybe the next time they happen to you, you’ll be able to laugh at the situation rather than let it affect you negatively. I tried to filter out common ones such as “stubbing my toe” or “biting my lip” so they should be fairly distinct yet common enough that you’ll be able to relate:

  • When a cereal flake deflects the milk onto the counter while pouring.
  • Inhaling too much air before the hot liquid that you’re cautiously trying to sip gets to your lips and having to breath out and start over.
  • Liquid that accumulates in the cap threads of a juice (or water) bottle so the next time you open it, just enough leaks to drip down your chin as you drink.
  • Having to back-track through diagonally parked cars.
  • Paper toilet seat covers ripping in the wrong place when getting them ready for use.
  • After parking your car, you try to turn just the engine off because you want to finish what is currently playing on the radio, but you accidentally turn off all the electronics and it takes forever to get the radio back on.
  • Trying to pick up a piece of paper that you don’t want to ruin off of concrete.
  • When cell phones situate themselves sideways in your front pocket.
  • Powdered chocolate or sugar spilling onto the counter on its way from the container to your mug.
  • Elevators that have too much of a delay between their initial slow down to when they actually stop and open the doors.
  • Arriving in the back of a long line and having no one else add to the length of it the whole time that you’re there.
  • Applauding after an airplane landing.
  • Hangers that…
    • bow in the middle when used with heavy pants,
    • snag shirts when you try to slide them off,
    • swivel at the hook (because it aids its snagging with other hangers).
  • Water dripping down your long-sleeve shirt while washing the dishes.
  • Applications that steal focus while you’re typing in another one.
  • Seeing that someone missed a belt loop.
  • Faucets that are too close to the edge of the sink making it difficult to wash your hands without constantly hitting the far-end of the porcelain.
  • Not receiving any calls throughout the entire day and then receiving several at the same time.
  • Luggage tipping over while trying to roll it down the street.
  • Trying to avoid people when walking through a crowded concourse.
  • Water melon seeds on the floor. Good luck picking them up!
  • Curled up phone cords beyond repair.

If you got a kick out of some of the irritations above, you might be interested in the movie High Strung. It’s a bit slow, but has some good moments. Jim Carey makes a little appearance as well.