Archive

Archive for the ‘Rants’ Category

Installers Suck

April 28th, 2010 peelman View Comments

Software Installation is an area that has many issues, and for a variety of reasons. I have but one reason how this can be: Developers suck and very few possess any foresight. It baffles me on at least a weekly basis, how a person or team of people can be smart enough to write a functional application on any platform, yet be so stunningly ignorant of the environment in which their applications will be running. They build registration data into installers. They put registry keys in place at install time, with no heuristics in-program to handle things in the event they’re not there. I could go on for a while… Everybody is guilty of it, from the biggest shops (Microsoft, Adobe, Autodesk), all the way to some open source projects.

I have seen immensely complicated applications, that have stellar install experiences. And I have seen painfully simple applications that require me to rip them out of their installer and package them sanely in order for us to deploy them. There are exceptions to almost every rule, but here are a few tips for any developers, Mac or Windows:

  1. Installers should not be handling any interactive product registration / serial numbers. You fucking jerkwits.
  2. You don’t need to restart the computer. Really.
  3. You don’t need me to log out and back in either. Really.
  4. Installers should need to do 5 things:
    1. Preflight: stop processes/services, etc.
    2. Pre-install: gather any necessary data, set environment variables, etc.
    3. Unpack files and/or registry keys, dump to their right locations
    4. Post-install: build any on-the-fly things using utils you just installed, etc.
    5. Postflight: restart any processes/services, etc
    6. If you’re doing more than this in your installer, you’re doing it wrong.
  5. Installers should have a silent option. Yes, it really is necessary, you lazy tool.
  6. You should NEVER have to write your own fucking installer.1
  7. Installers should not be handling any interactive product registration / serial numbers.
  8. You don’t need me to quit my fucking web browser, or any other programs. Really.
  9. If you insist on some kind of stupid idiotic compression or container format, then extract to a TEMP space, and clean up after yourself.
  10. Installers should not be handling any interactive product registration / serial numbers.
  11. Installers should not do anything that is dependent or tied to the current user. Including interactive product registration / serial numbers.2

The entire concept of requiring an installer is one centered around the clusterfuck that is Windows. In the best case scenario, the above installation steps could be reduced to one: Unpack Files. More complicated programs SHOULD only require 3: Preflight, unpack files, postflight. Some packages like Java, for instance, would require at least those two scripting steps, to search for existing versions, modify the registry as necessary, etc.

Mac-side, any program that has progressed to the point of not being a drag-and-drop .app bundle, and is looking at doing some form of “installation” needs to step back and take a serious look at how their app is structured. If you’re including a lot of secondary content, or installing frameworks used by multiple applications, etc., you’re exempt from this, of course.

1. On writing your own installer:

Using your Application should be a unique experience. Installing it should be something consistent, and should happen at the OS level. 90% of software should not NEED admin privileges to run. That includes your stupid ass installer. Build an MSI or a PKG, and if that proves too challenging, save us all some trouble and start flipping burgers. If you can’t comprehend how an installer package should work, or why your application should be able to be installed by one, we’re better off without your shitty software anyway.

2. On doing things that muddle with the current user:

When you start doing stupid things at install time, like creating configuration data, etc., that is all per-user, you’re breaking automated installs, making your software impossible to deploy in large environments without a lot of administrator time invested. Anything that is user specific needs to be handled by your app, either at first run, or on demand, and not at install time. If you demand the ability to handle per-user product serial numbers and provide no way to do per-machine serials, you’re an idiot. If you don’t provide a way to automagically install a serial number, either via a license file, MSI / installer parameter, dumping it into a registry key, <whatever>, you’re an idiot.

Categories: Development, Rants, Work, geek, sysadmin Tags:

How do you define government failures?

January 2nd, 2010 peelman View Comments

I love this comment from the OpenCongress link: Read more…

Windows 7: The Wheels Came Off…(part 2)

December 9th, 2009 peelman View Comments

So my idea on doing a series about the follies of Windows 7 has fell flat on its face. In addition to the sheer amount of things that are still bad, there is simply too much personal bias, too much dislike. I tried and failed 3 times to write my piece on software distribution, and each time it fell into a nebula of hatred and bitterness that only computer geeks could appreciate.

Read more…

Categories: Rants, Work, geek, sysadmin, windows Tags:

Keith Combs gives me one more Reason to hate Microsoft…

August 30th, 2009 peelman View Comments

Since I doubt my response to Keith will make it through his filters (though maybe he’ll allow it) I’m posting it here.

It is in response to this ridiculous article about his first 24 hours on Snow Leopard:

http://blogs.technet.com/keithcombs/archive/2009/08/30/apple-os-x-snow-leopard-the-first-24-hours.aspx
Read more…

Hating Windows…

April 21st, 2009 peelman View Comments

It’s been said before, but the Windows Registry is the Mos Eisley cantina of a Windows computer.

You’ll never find a more wretched hive of scum and villainy.

As somebody who has made their fair share of registry hacks before, I have been to places most people don’t dare to tread, changed and added keys with impunity, and…*gasp*…deleted things without backing them up first! This isn’t some average joe we’re talking about; I had a documented series of registry hacks that I had to do to every time i reinstalled Windows, and it got to the point where I was needing to use nLite to integrate them all for time’s sake (at one time I was on a 2-3 month reinstall cycle for my main workstation).

This kind of relationship usually is fruitful, a geek and his operating system. So intimately entwined in each other they are; the geek knowing the deepest secrets of his system, the system knowing precisely how to piss off the geek in as few CPU cycles as possible. But my relationship with Windows grew bitter in its waning years. I started to detest the behavior of the Alt key, with its toggling on/off state rather than being a simple momentary key like Shift or Control. The sheer and utter abuse of having a dedicated Windows key, and only being able to use it with 3-5 of the other 90+ keys. The systemwide penchant for inconsistency and bad program design. But none of this compared to the hatred of the registry.

The amount of bloat, the difficulty of manipulation, a single source of failure for the entire system, the abuse of putting things in registry keys that should have been in files, the use of GUIDs and SIDs for key names with nary a DWORD inside hinting as what it actually exists for and why. How about the ability to hide data? Yep, the registry, in all of its girth, is the perfect place to bury things, since so many legitimate programs do just that, why not illegitimate ones too?

As somebody who regularly supports other users, particularly those who, shall we say, are not as technically inclined, the registry posed a huge problem for remote troubleshooting. Here are some scenarios:

Think there’s a virus? want to disable any startup items?

Well is it in HKCU\Software\Microsoft\Windows\CurrentVersion\Run, or RunOnce, or RunForFrakingEver or is it a *system* preference, so it’ll be under HKLM\Software\Microsoft\Windows\CurrentVersion\Run or RunOnce? This is assuming you can get the user to open RegEdit, since its buried in some scary system directory that Windows warns you never to touch (because THAT is security…a clickthrough warning barrier…to hell with intelligent permission levels and on-demand privilege escalation).

Trying to troubleshoot wireless problems?

We should just blow away the wireless settings in your registry and see if it recreating them fixes it. Are you using a 3rd party wireless configuration program or the Windows one? At that point i’d hear an unspoken “WTF?!” in the silence, or maybe it was static from my cell phone, either way, I got the point.

I highly doubt I will return to any Windows platform as long as the Registry exists. The Mac’s primarily file-based approach for configuration data is vastly superior in terms of supportability, stability, and security. Throw in an amazing user interface that is both simple and powerful, not to mention customizable, and a growing number of applications that, unlikely their Windows counterparts, do not make me want to put a gun to the head of the people coding them, and you start to get a picture of why I have moved my entire family to Macs.