Thursday, January 28, 2010

Technical Sources

As a developer. There are many new technological that we encounter from time to time. After several years in the industry, I have found  many good resources to help me get up to speed on anything new.

The first site I recommend is TechRepublic. I found this site back when I was in Desktop Support. While they cater largely to IT people, they do offer articles on Development and Project Management. They cover largely .Net Development, though they do offer some articles on  Java development.

I recently came across another great site called infoq.com. This Site has many in depth articles, video lectures and interviews on a wide variety of development topics. They also have great Customization for their registered users and registration is free.

I follow a large number of blogs. These blogs I've found helpful on a number of occasions. Here is a partial list of my favorites:
  Coding Horror
  Joel on Software
  The Endeavor
  Software by Rob
  Rob Conery's Blog
  Brent Ozar - Too Much Information
  Scott Hanselman's Computer Zen
  Coding4Fun
  10x Software Development

There are a couple of good aggregation sites that often have links to good articles and blog posts. Every so offen, I find a new blos to follow from these sites:
    Reddit.com
    Digg.com
    Hacker News

MSDN has never been one of my favorite sites. The information is often difficult to find, and when I was writing this blog, the site appeared as plain text with very little styling. However, the information on the site is excellent and very helpful (when you can find it). I recommend using Google to search msdn by adding "site: msdn.com" to any of your searches for anything .Net or Microsoft related.

Finally, for ant question development related. I have to recommend Stackoverflow. I've been using this Site to over a year now and I an very pleased with the results I get. The community is great, and it just might be the largest Development community site on the Internet.

Tuesday, January 26, 2010

Hello World Applications

Convention dictates that the first application a developer is exposed to for a language is the classic "Hello World!" application. While this is useful to learn how to display text to a screen or console at runtime, it provides very little value otherwise. It also does not provide an obvious avenue for the developer to build upon the application to finer tune his skills.

When leaning a new language or technology it is useful to play around with it in a serious program. I try to do this for each new technology I come across. Below is a short list of suggested applications to write when you are trying to master a new language or technology. The list is broke into 4 parts. Web applications, Desktop applications, Mobile applications, and Server . 

Web applications

  • Blog
  • Online Store
  • Photo album
  • Fantasy League Software

Desktop Applications

  • Developer Tools
  • Recipe Keeper
  • Blog Editor

Mobile Applications


  • To do list
  • Workout assistant

Server Applications

  • Instant Messaging
  • Distributed job application (like Seti @ Home, to calculate primes or other mathematical tasks)


Finally, regardless of platform there is always the opportunity to contribute to an open source project. There are many great open source projects out there that need help from programmers just like you and I.

Thursday, January 21, 2010

Handspring Visor vs. Dell Axim x5

In a previous post, I mentioned that I had destroyed my old trusty Handspring Visor and had replaced it with a Dell Axim X5. I've already compared the different Operating Systems of the two devices, so here is my comparison of the two devices themselves.


Size and weight: While the Dell is slightly more ergonomical, the Handspring is the smaller and lighter of the two PDAs.

Battery life: The Dell's Battery life is superior to the Handspring's, but this is more of a comparison of apples and oranges. The Dell has 2 rechargeable batteries; the second to backup the data in case the first dies. The Handspring uses 2 AAA batteries, which can be replaced more easily. The batteries in each lasted about 1 or 2 weeks, but I've found myself using the Dell much more often.

Screen: The Handspring has a 4 color screen (4 different shades of gray) while the Dell has a true color screen, supporting 65,536 different colors.

Stylus: The Dell's stylus is a little flat and can be awkward to use. The Handspring's stylus is a simple cylinder but it feels more natural to hold and use.

On-board memory: The Handspring Visor Deluxe contains a total of 8 MBs of storage, while the regular model only has 2 MBs. The  Dell has 32 MBs of Read-Only Memory (for use by the OS and the various applications) and another 32 MBs of storage space.

Expansion slots: The Handspring has an expansion slot for use with Springboard modules. These proprietary modules offer many options, including a modem, camera, and memory. The Dell comes with two expansion slots, a Type II Compact Flash slot and an SD Card slot. Both the Compact flash and SD slots became standard so they offer many different options and are more readily available, including memory and WiFi. These also have the added benefit of working with many other devices. I have at least half a dozen different devices that use SD Cards around the house. (Note that the SD slot on the Dell only supports cards up to 1 GB in size. The Compact flash slot supports at least 512 MBs.)

Synchronize with PC: Both devices offer synchronization cradles to copy data from the PDA to the PC. I used this option extensively with the Handspring, but only rarely with the Dell. Since I use an SD card on the Dell I use this to copy data from the PDA to the PC.

Navigation buttons: Each PDA has Navigation buttons to the most common applications. There are also scroll buttons to scroll up and down. On the Dell, there are also horizontal scroll buttons and a second set of vertical scroll buttons on the side of the case.

To Do lists: Finally, I wanted to discuss a very important application, To Do lists. The Palm OS has a very simple, yet effective to do list. The To Do list that comes with Pocket Windows 2002 is very powerful, but the user interface is very cumbersome.


All in all, the Dell Axim x5 is a superior device due to its screen, battery life, expansion slots, and
onboard memory. The Handspring Visor has several benefits, including a simpler interface and batteries that are easier and cheaper to replace. While both are great devices, they have both been going for around $20 on eBay, and at that price, the Dell Axim x5 is definitely the better deal.

Tuesday, January 19, 2010

Comments Disabled

Jeff Atwood of Coding Horror fame has attested to the benefit of comments to blogs. Yet after the loss of his site over a month ago, he still has comments disabled. I've always found his blog posts interesting and often controversial. While conversation of his blog posts can come from other sources such as Reddit, Digg, and Hacker News, the most obvious location for these discussions is on the blog itself.

As a blogger, one of the worse things you can do for you and your readers is to disable comments. Comments turn a lecture into a discussion and no matter how much experience or brains you have, there is always someone else who is knows more then you do. Not only will you and your readers benefit from a discussion but you will get feedback on your writing to make you a better blogger.

But Jeff already knows all this, since he's written about it a few times. For the sake of the readers of his blog, I hope Jeff re-enables comments soon. Jeff his always come across as a conversation starter not a lecturer and he should stay that way.

Friday, January 15, 2010

Pizza

It's Friday, so time for a break from the normal development post. I'll have some new posts starting next week.

Pizza is a topic near and dear to many a developers heats. But finding a good pizza at a great price can be hard. Thankfully, one of the cheaper pizza chains has made a change to their recipe that makes the decision easy. In terms of price and value, Dominoes new pizzas are by far the best deal out there. If you haven't tried their new recipe yet, I encourage you to do so.

If price were not an object. This is the order I world rank the Pepperoni Pizza of several national and regional chains.

  • Pizza Hut
  • Dominoes
  • Papa Johns
  • Donato's
  • Little Caesar's
  • Noble Roman's

Note that I'm a little harsh on Noble Roman's because their sauce does not agree with my stomach. Otherwise, they have good Pizzas.

I'm not a big fan of Peppeoni Pizza. I love Supreme pizza, and comparing this pizza yields different results

Donato's
Papa John's
Pizza Hut
Noble Roman's

I've left out Domino's and Little Ceasar's because I've never had Supreme form these stores.

What do you think of Domino's new Pizza? How would your Pizza rankings differ?

Tuesday, January 5, 2010

The one thing worse then a bad Source Control system

Source Control is a necessity on any software project of any significant size. Not only does it allow multiple developers to work on the same source at the same time, but it provides a historical record of the code and a backup in case a change needs to be undone later.


Choosing a Source control system for your project is a big deal and should not be done lightly. There is a massive penalty for changing systems. The historic data that is retained within the source code repository often cannot be migrated over to a new system. This means that all of the previous changes can't be backed out if needed down the road. The old source control system can be kept running for a while if needed, but management will eventually ax the server in the next round of cost cutting measures.


For this reason I believe that it is far worse to charge Source Control Systems then it is to continue to use a system that is a poor fit for the development team. One development project I once worked on has used 4 different source control systems in the history of the project, making it truly difficult to track down the history of a particular snippet of code.


I used to never comment where my code changes began or ended and left the majority of the discussion for the code check-in time. But for long lasting code projects, they will out live their original source control system. In this case another way to track changes is necessary even if it is at the expense of the cleanliness of the code.