Open Question

Switchers or Switch-backers?

According to a recent article on AppleInsider:

The momentum generated by Apple's iPod digital music players and related products continues to translate into new Macintosh sales according to one Wall Street analyst who estimates that over one million Windows users have purchased a Mac in the first three quarters of 2005.

I personally feel that this is an exaggerated number, but it is apparent that Apple's momentum in desktop and laptop sales is growing. It's feasible to say that every Apple desktop and laptop that is bought is one less Dell or HP or some other vendor laptop that could have been bought. Since a huge majority of new computers come with Windows installed, it's fair to say that they've taken away a large number of Windows installations.

[Admin] How can we make the site better?

First of all, thank you to everone who has been visting and reading the site. According to last time I checked, CodeSnipers is in the top 50k blogs on Technorati. While I was hoping that people would read the site, share some ideas, and kick around some concepts, I wasn't expecting anything quite this dramatic so quickly. I'd like to publicly thank all of our contributors (their names are on the left under "Regular Contributors") and everyone who has found something useful or interesting on the site and shared their thoughts.

Anyway, the point of this message... The site has been online for approximately 12 weeks and I want to figure out what we're doing right and what we're doing wrong. I and the other contributors have lots of ideas, but I want to hear from the people who actually come and visit the site on a regular basis. So here are my questions for you:

  • What is the site lacking?
  • Have you noticed bugs or oddities?
  • What do you think of the overall design?
  • If the site had exactly *one* new feature, what would you want it to be?
  • Are there particular topics/postings that you wish had more discussion/coverage?
  • Which topics/postings did you particularly appreciate or made you think?
  • Are there particular topics that you wish we'd just stop talking about?
  • Do you want to or know people who would like to contribute?
  • Do you want to give us each a million dollars?

Now, I can't promise that we'll do all of the resulting suggestions... actually, I can't promise that we'll do any of it, but I can promise that we'll all read them and consider which ones make the most sense and are in a direction that works with the overall site. I brought this site online to Connect Developers and I want to know how we can do it better.

Thoughts? Comments? Questions? Concerns?

Thank you for your time.

Taking your own medicine

I'm a huge advocate of Ruby on Rails. One thing that has always bothered me about it, though, is the issue tracking system. The RoR project uses Trac, by Edgewall software. Trac is a very capable piece of software, no doubt. Trac, however, is written in Python. RoR is written in Ruby. The simple fact that RoR is a framework for making web based applications, in my mind, would mean that it would use a RoR based bug tracking system.

Guide to Hiring Developers - Part III

This is the third of a three-article series that touch upon the subject of hiring developers. The first article had to do with CV screening. The second article discussed the process of the 1st interview, which is the equivalent of the phone screening that several companies do. The final part discusses the process of the 2nd interview. The 2nd interview is 100% technical in nature. My target is to see the candidate's level of technical expertise plus some things about her character. I have three main goals in this interview:

  1. Assess the candidate's technical expertise.
  2. See how the candidate reacts to difficult questions.
  3. Bring the candidate down to earth.

First Steps... Avoid Winging it

No matter what the state of the economy, some just have the urge to be their own boss. I had it, and I would bet you do too if you're reading this. But to be successful in your own business it takes more than the core skill you want to market. You will need a plan to guide your moves and keep you on track.

You will begin building by knowing where you want your business to go, and creating a realistic road map to get you there. Writing your business plan also shows you have commitment to the vision. That you've thought through the pitfalls that lie before you. That you're prepared to move a head to get to your goal.

While you can find snazzy services and software to write a business plan for you... Do it by hand... You'll be glad you did. You are the only one who knows what you want and how you want to do things. Relying on someone else to record the words and formulate the plan pulls you out from behind the wheel and makes you a back seat driver.

Write it. Own it. Live it.

If you need help getting your plan hashed out, there are numerous resources available. The good news is that you don't need to spend loads of money on advice. While you can use search engines to explore any topic you like, there are actual business professionals waiting in the wings to mentor you.

Mozilla as a Thick Client Development Platform?

With Ajax being all the rage, people have been forgetting about client applications. Well there are times when you’re on a plane or in one of those horrible corners of the world (like your local Starbucks) that don’t have free accessible WiFi and you’re forced to work with what you have locally. One of the things I love about Ajax apps is the fact that they’re cross platform and deploy instantly. I’d like to get to the same point with thick client applications and it looks like Mozilla may be the platform of choice for the future.

At this point I’ve only done the bare minimum of research into the subject, but I’d like to share what I’ve found and start a discussion on the topic. I’ve found that the main tools in Mozilla for developing applications are XUL (XML User Interface Language) and XPCOM (Cross-platform Component Object Model). XULRunner seems to be the framework that encapsulates these goodies for creating client applications. XULRunner also provides functionality for networking, file access and some other stuff. It seems that upcoming versions of Firefox will be installed with XULRunner, so any system with the latest Firefox installed will have the framework available. XULRunner can also be installed without Firefox so applications built on the framework don’t have a Firefox deployment requirement.

What to do about feature creep?

Just imagine you receive a design spec from a software designer and begin creating an implementation spec, after which you will begin actually implementing the program code. The changes to the software are pretty big, so you are glad that you're writing that spec first. While creating your spec, you will of course have to do some significant research. In the end you'll have a good idea where in the system you will have to do what.

Sort of big design up front, but you can't really change that in your group and: It works. Well, most of the time.

So far, so good then.

Here's the problem: The design is incomplete. This might be, because the designer is not familiar enough with the software or maybe didn't work through all necessary questions while writing the spec. Maybe both. Maybe there is more to it.

You start asking questions like

  • If you say between 1 and 99, should I assume we include 1 and 99 in this?
  • If you specifiy some warning messages and validation rules, but not others, should I assume that those others are not important?

Changing Gears

My first car was a 1983 Honda Civic Wagon. The entire car seemed to weigh 50lbs and get 30 miles to the gallon. It was a great car and latest through almost two years of college. Of course, the one thing I didn't count on was it being a stickshift. I had never driven a stickshift before I got it, so I had the day of and the drive home to figure out how to make it work. I quickly learned that it took a very precise balance between disengaging the clutch and applying less gas to make it operate smoothly and without grinding... I thought about this recently when talking with a friend.

How do you manage your time and work? Do you simply flow from task to task applying the right mixture of fuel and downtime to keep things at a smooth steady pace or do you stall out mid-stride?

Take it or Leave it

Joel Spolsky’s Set Your Priorities article struck a bit of a chord with me this week. Not so much the part about how to prioritise on features for a software release, although I liked the system and I’m sure I’ll take something from it.

No, what really got me thinking was in the first section, the bit about the differences between consultingware and shrinkwrap software.

Aaaah, Vacation

I needed one, so I took one. I didn't go anywhere; instead I stayed at home and renovated my garage. It was really fun, and (as I've worked in construction before) it was gratifying to move around, lift things, nail other things together, use words like "soffit" and "facia" and say things like "They want too much for sixteen sinkers" out loud and to no one in particular at Home Depot. I didn't even turn my computer on all week. I felt like a real man.