Archive for January, 2010

How to Develop iPhone Apps For Free

There’s an interesting (and free) resource if you’re interested in learning how to program the iPhone- how about a class from Stanford University including video lectures, pdf’s of lecture materials, and other reference materials? The class web page can be found here: Stanford iPhone Class

iphone appsStanford actually offers many free classes via Apple’s iTunes U program and a summary of these classes can be found here: Stanford iTunes classesAll you have to do is subscribe via iTunes and you get access to a wealth of materials.

The iPhone development class has been offered for a while and is very popular (millions of downloads).  I’ve downloaded the first couple lectures and found them very interesting and a great way to expand your knowledge with only your time investment.  One catch- in order to actually work the assignments you need access to a system running MacOS 10 and the iPhone SDK (free from Apple’s developer site).  You’ll also have to learn a new programming language (Objective-C).   A summary of the steps can be found in this article: 8 Steps to iPhone Development.

There is a .NET development environment called MonoTouch by Novell, but this does cost $399, a convenient (albeit expensive) alternative for Microsoft developers which still requires a Macintosh to do the actual development.

Give it a try and maybe you’ll develop new skills or create the next great iPhone and iPad application.


The Simple Things

While working on some enhancements for a client’s application I was reminded how sometimes simple changes can be powerful, useful, and appreciated by end users.

I was giving a demo of new functionality, some of which was pretty slick, but the changes which got the most positive reaction and comments from users were three simple and seemingly boring ones: sorting a list in descending order so newest items were at top, defaulting some date fields to the current date, and filtering out old records (but giving a way to show all of them).  These ideas came from the users themselves but I never realized how useful they could be.

Not having these simple changes were really annoying on a daily basis to users because it forced extra steps to complete very common functions.  Nobody wants to click through an extra long list because the default sort order in database is ascending rather than descending…and constantly entering today’s date for a field when no other date makes sense is irritating.

It’s so easy for programmers to get stuck in the rut of just getting things done when some time should be spent in the user’s head..imagine how your application is perceived and used doing real work throughout the work day.  You might discover something simple which can make a huge difference to many people.

Save Those Snaps: Digitizing Your Photos


It’s something we all think about…sorting and digitizing our old family and vacation photos.  Every year they fade, get damaged a little more, and pile up.  I recently took on this project with great success and wanted to share some tips.  Some of these tools and products make the process much easier and affordable than in years past.

  1. I bought a portable scanner (Pentax DSmobile 600 Scanner).  There are others but I liked this one because it’s small and easy to use with my laptop. Note that if you’re using Windows 7 you’ll have to go to the Pentax support website and download the updated drivers and software first (use the Vista drivers).
  2. Gather up your pictures and sort them in a logical order- maybe by date or person.  You can do this in the image management software but it’s easier to get the order correct before scanning.
  3. Set up the scanner options (resolution, filetype, and file location options).  I chose .jpeg format, color, and 400 DPI.  You may have to experiment a bit to find what you like.  Remember, disk space is cheap so file size shouldn’t be an issue anymore.
  4. Scan your pictures into your computer from the scanner.  The Pentax makes this very easy- just insert an edge into the scanner and it’ll “grab” it.  Using the Mobile Scan software click on the green “Scan” button and within a few seconds you’ll have the scan file on the hard drive.
  5. After scanning all pictures, I used the free Google Picasa software to clean up and manage the scans.  Inside Picasa you can apply some filters, tag with captions, and even use the creepy but really cool face recognition features of the software.  I found the “I’m Feeling Lucky” function very effective in adjusting faded pictures and obvious defects.
  6. These scans are precious- Back up the files onto an external drive and onto a cloud based service in case disaster strikes.
  7. There are some options available in Picasa for sharing.  You can upload into a web album and share with friends and family, create a DVD movie slideshow, make a poster, or make a collage.  Experiment and have fun with it!  If you need more advanced capabilities, Adobe Photoshop Elements 8 (under $80) has much of the functionality of Photoshop for way less.
  8. An online company called Blurb allows you to create physical books (hardcover or softcover) in an easy fashion for very reasonable prices (how about up to 120 pages for $20?).  You download their authoring software and can control many aspects of the photo layout and wording.  This would be a great gift to family or friends.

After completing this project you’ll feel f relieved that those precious memories are digitally stored and available for use in all sorts of new ways on your computer and the web.

Computer Programming for Kids

kids computerDo you have a kid in your life who has an interest in computers and programming?  If so, please encourage this passion and let them try it out!  Not only could this be a lucrative career, but will definitely teach important logic and patience skills critical for all ages.  Today’s kid could be tomorrows world-changer…most of the popular web 2.0 companies were founded by people in their 20’s who grew up as kid programmers.  Anyone above about 10 years old who has some computer experience should be old enough to tackle simple programming tasks and learn these skills.

There aren’t too many resources out there for this area, but I recently came across a great book geared for all beginners:  Hello World!: Computer Programming for Kids and Other Beginners.  This book was written by a father and his son and uses the Python environment to each programming tasks appropriate for kids. This is a great idea and something to consider working with your children on.  There’s also a fun interview with both father and son on Hanselminutes (by the way, Scott’s BlogDeveloper Tools list is incredibly useful). and podcasts are fantastic for all Microsoft .NET techies. His

Microsoft also recently released a visual programming environment for children called Kodu which runs on the Xbox 360 and PC.  It’s geared for game development and uses a colorful icon-based interface.

As a kid I sharpened my skills on the legendary Commodore 64 (remember peeks, pokes, and sprites?).  I wrote a game where your cannon tried to shoot a ship, and an accounting program which helped my Dad balance his business ledger (saving countless hours of calculations).  I also ported a tutor program The Math Teacher (somehow the ad for this is on an internet archive) with my Uncle Ralph from the NEC to Commodore 64 and even sold a few copies.  The time spent wasn’t only fun and productive but laid the groundwork for a career working in the computer field.  So, give it a try and learn together with your kid and maybe something wonderful will happen.

Gadget Envy (CES 2010)

It’s geek Christmastime now that the Consumer Electronics Show 2010 in Las Vegas has arrived (cnet coverage)…time to drool over the cool new gadgets and buy those lottery tickets!  It looks like 3D TV, tablet computers, and e-book readers are the big things  I wonder what makes humans crave and go crazy for these shiny new products?  Here’s a few things which I thought were interesting:

  • Toshiba Cell TV: How about a TV 10X more powerful than your desktop PC, 1 Terabyte hard drive, wi-fi, integrated blu-ray player, video conferencing and 2D-3D conversion capability?
  • Lenovo IdeaPad U1 Hybrid Notebook:  Converts from laptop to superslim slate PC by popping out of the case.
  • The Boxee Box: This cute “submerged cube shaped” hardware device allows you to watch streaming content on your TV using the boxee service or any non-drm media content.

Website Tools Summary

Part of the purpose of writing this blog and starting the website was to learn about how to build, host, and maintain a site and explore the issues revolving around those technologies. Here’s the various tools and decisions I’ve made:

  • Domain registration and hosting:  They’re cheap and convenient.  They also have lots of low cost modules available for adding on functionality.  Being a Microsoft guy, I chose the ASP.NET environment with SQL Server but they actually have more modules available for the Linux/PHP environment.
  • Content Management:  Microsoft Expression 3 (html and asp).  I considered and researched drupal, dotnetnuke, and wordpress but in the end did not trust their somewhat closed systems.  With Expression I create simple html and asp and just copy the files up to the website.  I don’t have to worry if something misconfigured at the hosting site or they go away.  With a CMS, I’m just not comfortable I could get my content out easily and quickly if needed.  There’s something sort of comforting about having total control over how content is created.
  • The Expression suite of software along with copies of SQL server, Visual Studio and other software was supplied for FREE by Microsoft. I participate in the Microsoft Websitespark (details here) program which helps small businesses get on the internet and publish web content for minimal cost. Microsoft provides a lot of free software to help out and I’ve found it very easy to participate in and use the program.
  • Blogging software: Google’s Blogger platform. Usability is very good and easy to add analytics and adsense modules.
  • Traffic analytics: Google analytics.  Just put a bit of code in your webpage (I put it in my master template file) and you can use this excellent analytics program to slice and dice who’s visiting your site, and which search terms generate traffic.

Let’s Make a (new car) Deal

Buying a new car hasn’t changed much over the years, and still remains a frustrating, time intensive experience.  You have to physically go to a dealer, take a test drive, and then sit down for some negotiations with a salesperson.  Then, this information from the buying step is re-done for financing, titling, and registration.  Has technology smoothed this process any?

honda carThe internet and technology has relentlessly killed inefficiencies in travel, book buying, music purchases, and real estate but surprisingly doesn’t seem to have affected car buying much.  We recently needed a new car and decided to lease a new Honda Civic. Of course, there’s lots you can do now online in terms of dealer cost data and incentives ( and test drive/safety reports (Consumer Reports).  The dealership even had an “Internet Manager” who I emailed what we were interested in.

The internet efficiency came to a screeching halt once we stepped onto the dealer lot.  All our information had to be reentered into multiple forms (some handwritten and not computerized), and all told took three hours to complete….that’s with little negotiation!  90% of that time was spent waiting around and redoing forms.  The internet manager simply funneled us to a regular salesperson.

Here’s a process that would work for certain customers like myself, who have already done research and don’t need schmoozing.  This would be heaven…

  • Let me rent the car for a couple days with no sales pressure for $100 (applies to deposit if I buy).  Drop the car off at my house, with a short demo of car features while I drive you back to your dealership.
  • Capture all information upfront which may be needed for credit checks, loan information, titling, registration, etc.  If I don’t buy just delete the data.
  • If I want to buy, give me a quote.  At this time you’ve had time to determine my credit score and such, and I’ve had time to research the dealer cost and incentives….so save time by quoting me your dealer cost minus incentives (which I already know anyway).
  • We have a deal!  I’ll drive to the dealership where all the paperwork will already be ready and waiting for signatures.  It would be nice to wash and fill up my car (or swap for actual model) while doing the signing, but this step shouldn’t take more than 30 minutes.
  • I’m driving away with a new car and everyone’s happy 🙂

What do you think…what other processes could be streamlined to improve and speed up the car buying experience?  Are there other tools available now which achieve these goals?