Archive

Archive for the ‘geek’ 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:

The future of CoRD

March 17th, 2010 peelman View Comments

0.6

The parameters for the next iteration of CoRD continue to change for me. At one point, we had agreed that 0.6 was to focus on Groups. The plan, in its rarest form, was that we’d snap out the TableView, and snap in an OutlineView, and roll out 0.6.

Things are never that easy.

Read more…

Categories: CoRD, Development, apple, mac Tags:

New Theme, Resume, etc.

March 5th, 2010 peelman View Comments

I’ve been revamping WordPress recently, fixed some things on the back end that have been bothering me, applied a new theme, and posted a fresh new resume, which hadn’t been updated in about 16 months. I have no immediate plans to need a new job, but I’d rather be prepared for it in any case, given that Purdue is doing anything but making me feel secure about my job at this point.

Anybody who had anything bookedmarked with a /wordpress/ directory in the URL should be getting redirected to the home page now. Prior to WordPress, I used CodeIgniter, which lived at the root of peelman.us. When I installed WordPress, I wasn’t sure if I was going to like it or not, so I stuffed it into a sub-directory of the site, http://peelman.us/wordpress and did some funky .htaccess rules to redirect requests there. Its been almost two years since I switched, and I haven’t looked back, so I figured it was time to adjust things. WordPress is now the site root, so I apologize in advance for any broken links or issues getting to content.

CoRD

March 3rd, 2010 peelman View Comments

First!

Its been almost a year since I started working on the CoRD Project. In that time we’ve released 0.5, which was in “beta” for almost 18 months when I started tinkering with it in March of 2009. We’ve also released two minor updates that fixed major issues and added features, and are getting ready to release a third release (0.5.3) that will hopefully fix a few problems. Work on a 0.6 release has started, and rudimentary code has been put in place to allow groups. Going completely off of the amount of releases and code changes, it may seem like we’ve been resting on our laurels, but I wanted to point out the massive changes we’ve made on the backend in the past year that will help us accelerate releases and hopefully prevent another 18 month drought of updates and information.

Read more…

On Letters.app…

January 21st, 2010 peelman View Comments

For those not aware, there was a recent mess started by Brent Simmons on creating a new open source email client for Macs, to be called Letters.app. I’ve been following the carnage since Monday and just wanted to lay down some random thoughts here.
Read more…

Categories: apple, geek, mac Tags: , , , ,