Archive for the ‘Operating Systems’ Category.

Ghost 2.5 Beta 2 available – Ghost is a BSD distribution based on GNOME

Ghost 2.5 is a BSD desktop distribution based on FreeBSD. This version is keeping up with the latest FreeBSD 9 release. This is both a live distribution as well as an installer for FreeBSD 9.

It is exciting for a lot of BSD users who didn’t really have an out-of-the-box GNOME option on FreeBSD to have a distribution where GNOME is the focus.

The DVD ISO in 64 bit is only 1.3 GB, though there is a “lite” version that is on a single CD.

It is nice that they are using pcsysintall for their installer, though they are in early stages as the installer is a text installer and not for an Ubuntu user yet. ūüėČ

If you are excited about this project go ahead and give them a donation. I just tossed them $5.

PC-BSD 9.2 Beta 2 available for testing – I just installed it

PC-BSD 9.2 Beta 2 is available for testing and I just installed it. This is probably the best desktop OS that is not Windows, Mac, or Linux.

The installer was already a nice easy GUI, so I didn’t expect many changes and it is still nice and easy to use, and just works.

The installer does present new features about PC-BSD 9.2, in that you can choose from a list of Desktop Managers. Before KDE was it during install and if you wanted something else, you could change it later, but now you have a nice list of GNOME, KDE, and others.

I chose KDE because I usually use KDE or Fluxbox and when I have plenty of system power, I go with KDE and this system is on a beefy VM.

I did miss seeing Firefox as an installable application during install? Not a big deal, as I will install it later…but I was used to it being there.

The install went flawlessly.

Setting up the Video Card still is a screen. It would be best to have it just work and not even have the screen at all. But it still prompts me and I still have to do it. I would like it to detect that I am on VMWare and just install the VMWare video driver for me or if I am on hardware, just install the driver I need.

There is a nice “tip” screen post login.

Branding is very important! AppCafe is probably one of the first times I have ever seen PC-BSD really do something that I consider a good brand. I have an opinion that the PC-BSD, which is 5 letters where you just say the letters name like an acronym, is a horrible brand and should be changed as soon as possible. However, AppCafe is great. It goes with the whole App Store idea that is trendy currently. Good move!

I quickly found Firefox and Chrome in the AppCafe. The search feature is great, otherwise they were under the “Web” group. I was curious as to why Firefox was still version 4.0.1 as Firefox is on 6.x now. The one downside is that I would really like Firefox to load a lot faster.

Flash…Yes, it works with a beta note: In previous versions, flash has worked perfectly, and it will in the next release too. However, turns out that this beta has a bug where you have to run a command to enable flash…oops. That is why we have betas. Expect this to work in the final release as Flash has worked out of the box now for multiple releases.

For KDE, After installation, App icons are placed in a desktop folder, that is a transparent box on the screen, giving the system a sense of “flashiness”.

A lot of the default Apps that were installed, such as K3B, a DVD/CD burning software, and a video player and music player are all there.

I am probably going to install a GNOME only version as well and give it a look.

Installing IIS 7 from the command line on Windows 2008

Ok, so our customers are tired of having us have an IIS prerequisite in our product installer. They want us to install and configure IIS for them.

So I found this article: Installing IIS 7.0 from the Command Line

I am testing the command line provided in this article in a command prompt. I have verified the command prompt is running as Administrator.

On Windows 2008 R2, it failed with this error: -2146498548

So if at first you don’t succeed, try, try again.

Well, I don’t actually need everything in the script. So I tested this command line:

start /w PkgMgr.exe /iu:IIS-WebServerRole;

This command succeeded. The resulting installed IIS Roles and Services are these.

Note: This output is give by running this command: servermanagercmd.exe -query

[X] Web Server (IIS)  [Web-Server]
     [X] Web Server  [Web-WebServer]
         [X] Common HTTP Features  [Web-Common-Http]
             [X] Static Content  [Web-Static-Content]
             [X] Default Document  [Web-Default-Doc]
             [X] Directory Browsing  [Web-Dir-Browsing]
             [X] HTTP Errors  [Web-Http-Errors]
             [ ] HTTP Redirection  [Web-Http-Redirect]
             [ ] WebDAV Publishing  [Web-DAV-Publishing]
         [ ] Application Development  [Web-App-Dev]
             [ ] ASP.NET  [Web-Asp-Net]
             [ ] .NET Extensibility  [Web-Net-Ext]
             [ ] ASP  [Web-ASP]
             [ ] CGI  [Web-CGI]
             [ ] ISAPI Extensions  [Web-ISAPI-Ext]
             [ ] ISAPI Filters  [Web-ISAPI-Filter]
             [ ] Server Side Includes  [Web-Includes]
         [X] Health and Diagnostics  [Web-Health]
             [X] HTTP Logging  [Web-Http-Logging]
             [ ] Logging Tools  [Web-Log-Libraries]
             [X] Request Monitor  [Web-Request-Monitor]
             [ ] Tracing  [Web-Http-Tracing]
             [ ] Custom Logging  [Web-Custom-Logging]
             [ ] ODBC Logging  [Web-ODBC-Logging]
         [X] Security  [Web-Security]
             [ ] Basic Authentication  [Web-Basic-Auth]
             [ ] Windows Authentication  [Web-Windows-Auth]
             [ ] Digest Authentication  [Web-Digest-Auth]
             [ ] Client Certificate Mapping Authentication  [Web-Client-Auth]
             [ ] IIS Client Certificate Mapping Authentication  [Web-Cert-Auth]
             [ ] URL Authorization  [Web-Url-Auth]
             [X] Request Filtering  [Web-Filtering]
             [ ] IP and Domain Restrictions  [Web-IP-Security]
         [X] Performance  [Web-Performance]
             [X] Static Content Compression  [Web-Stat-Compression]
             [ ] Dynamic Content Compression  [Web-Dyn-Compression]
     [X] Management Tools  [Web-Mgmt-Tools]
         [X] IIS Management Console  [Web-Mgmt-Console]
         [ ] IIS Management Scripts and Tools  [Web-Scripting-Tools]
         [ ] Management Service  [Web-Mgmt-Service]
         [ ] IIS 6 Management Compatibility  [Web-Mgmt-Compat]
             [ ] IIS 6 Metabase Compatibility  [Web-Metabase]
             [ ] IIS 6 WMI Compatibility  [Web-WMI]
             [ ] IIS 6 Scripting Tools  [Web-Lgcy-Scripting]
             [ ] IIS 6 Management Console  [Web-Lgcy-Mgmt-Console]
     [ ] FTP Server  [Web-Ftp-Server]
         [ ] FTP Service  [Web-Ftp-Service]
         [ ] FTP Extensibility  [Web-Ftp-Ext]
     [ ] IIS Hostable Web Core  [Web-WHC]

This is almost enough but I also need these more than the default. I also need the ones below that I have put an “I” in.

[X] Web Server (IIS)  [Web-Server]
     [X] Web Server  [Web-WebServer]
         [X] Common HTTP Features  [Web-Common-Http]
             [X] Static Content  [Web-Static-Content]
             [X] Default Document  [Web-Default-Doc]
             [X] Directory Browsing  [Web-Dir-Browsing]
             [X] HTTP Errors  [Web-Http-Errors]
             [ ] HTTP Redirection  [Web-Http-Redirect]
             [ ] WebDAV Publishing  [Web-DAV-Publishing]
         [ ] Application Development  [Web-App-Dev]
             [ ] ASP.NET  [Web-Asp-Net]
             [ ] .NET Extensibility  [Web-Net-Ext]
             [I] ASP  [Web-ASP]
             [I] CGI  [Web-CGI]
             [I] ISAPI Extensions  [Web-ISAPI-Ext]
             [ ] ISAPI Filters  [Web-ISAPI-Filter]
             [I] Server Side Includes  [Web-Includes]
         [X] Health and Diagnostics  [Web-Health]
             [X] HTTP Logging  [Web-Http-Logging]
             [ ] Logging Tools  [Web-Log-Libraries]
             [X] Request Monitor  [Web-Request-Monitor]
             [ ] Tracing  [Web-Http-Tracing]
             [ ] Custom Logging  [Web-Custom-Logging]
             [ ] ODBC Logging  [Web-ODBC-Logging]
         [X] Security  [Web-Security]
             [ ] Basic Authentication  [Web-Basic-Auth]
             [I] Windows Authentication  [Web-Windows-Auth]
             [ ] Digest Authentication  [Web-Digest-Auth]
             [ ] Client Certificate Mapping Authentication  [Web-Client-Auth]
             [ ] IIS Client Certificate Mapping Authentication  [Web-Cert-Auth]
             [ ] URL Authorization  [Web-Url-Auth]
             [X] Request Filtering  [Web-Filtering]
             [ ] IP and Domain Restrictions  [Web-IP-Security]
         [X] Performance  [Web-Performance]
             [X] Static Content Compression  [Web-Stat-Compression]
             [ ] Dynamic Content Compression  [Web-Dyn-Compression]
     [X] Management Tools  [Web-Mgmt-Tools]
         [X] IIS Management Console  [Web-Mgmt-Console]
         [ ] IIS Management Scripts and Tools  [Web-Scripting-Tools]
         [ ] Management Service  [Web-Mgmt-Service]
         [I] IIS 6 Management Compatibility  [Web-Mgmt-Compat]
             [I] IIS 6 Metabase Compatibility  [Web-Metabase]
             [ ] IIS 6 WMI Compatibility  [Web-WMI]
             [ ] IIS 6 Scripting Tools  [Web-Lgcy-Scripting]
             [ ] IIS 6 Management Console  [Web-Lgcy-Mgmt-Console]
     [ ] FTP Server  [Web-Ftp-Server]
         [ ] FTP Service  [Web-Ftp-Service]
         [ ] FTP Extensibility  [Web-Ftp-Ext]
     [ ] IIS Hostable Web Core  [Web-WHC]

So the article was somewhat correct. Turns out this command line works:

start /w PkgMgr.exe /iu:IIS-WebServerRole;IIS-CommonHttpFeatures;IIS-StaticContent;IIS-DirectoryBrowsing;IIS-HttpRedirect;IIS-ApplicationDevelopment;IIS-ASP;IIS-CGI;IIS-ISAPIExtensions;IIS-ServerSideIncludes;IIS-Security;IIS-WindowsAuthentication;IIS-WebServerManagementTools;IIS-ManagementConsole;IIS-IIS6ManagementCompatibility;IIS-Metabase

And this command line satisfies all my requirements.

HTC Sensation Battery Life meets the low expectations I’ve heard

Update: A system update just came out and it claims longer battery life, so I will have to test again…

My HTC Sensation looks like it will probably have a battery life of 1.5 days for me before it hit 9% battery. I have heard that even though it boasts That is less than I hoped. I was hoping for two days, so I would only have to plug it in every other evening. Maybe 9% would last me till tonight, but I doubt it.

A few notes on this 1.5 days.

  • I used my HTC Sensation for browsing the web for a good 45 minutes straight in the evening, so maybe I used more battery life than normal last night.
  • I was on the phone no more than 10 minutes
  • I made sure to keep all services, GPS, Wi-fi, etc., off during most of this time as I am fine turning them on when I use them.

So I also may have used less battery than some who must have these services enabled all the time.

I hoped that since I turned off these services, I would get much more than two days, even with good hour of use at some point during that span. But alas, the HTC Sensation Battery Life meets the low expectations I’ve heard from others. I have already bought a car charger (well, actually I bought an iGo tip to go with my iGo Car Charger) and I will certainly buy a an extra charger to have at my desk at work as well.

Transfering contacts to my HTC Sensation 4G

So as I mentioned previously, I just got a new T-Mobile HTC Sensation 4G and of course I had to transfer my files.

UPDATE: I just realized you can skip transferring to a PC and connect your old phone to your new phone via Bluetooth and just transfer the files straight from your old phone to your new phone, eliminating the computer as the middle man.

Retrieving contacts from a deactivated phone to your Computer or to your HTC Sensation 4G

First I had to get them off my Motorola RAZR V3m, which I did using this guys steps:

Tutorial: Move your Verizon contacts from your deactivated RAZR to your iPhone

Though there was no copyright listed, I want to give the author credit, especially since I am including a copy of these steps here (though I am modifying them) in case his site ever goes dark.

You can use these steps to transfer your contacts to a computer or to transfer them directly to your HTC Sensation 4G.

Step 1 – Enable Bluetooth

  1. Turn your Bluetooth on, and make sure it’s discoverable.  Do this for each device.
  2. On either device, scan for or add a new Bluetooth device.
  3. Connect/Pair the two devices.
  4. Enter the pin in both devices to pair them.

Step 2 – Send the Contacts

  1. On your old RAZR V3m, select Contacts on your phone.
  2. Select Options.
  3. Scroll all the way to the bottom of that ridiculous list.¬† See the one that says, ‚ÄúSend Name Card.‚Ä̬† Select it.
  4. Only one card will have been selected (likely the first on your contacts list).¬† Hit the ‚ÄúAdd‚ÄĚ softkey option, and select ‚ÄúAdd All.‚ÄĚ
  5. Press ‚ÄúSend.‚Ä̬† It‚Äôs going to ask you where to send them.¬† You‚Äôre going to tell it to send to the computer to which you just paired your phone.
  6. On your computer or HTC, notice automatic activity.  You will need to confirm that it’s okay with you for the transfer to happen.

You should now have a bunch of .vcf files.

On Windows 7, they are here: C:\Users\UserName\Documents\Bluetooth Exchange Folder

Hopefully, you will find similar steps for your phone if it is not a RAZR V3m

Transferring Contacts to your HTC Sensation 4G

If you transferred the contacts to your HTC Sensation 4g, skip directly to Step 4.

Step 1 – Turn on Bluetooth

  1. Click on the bottom left icon to go to All Apps.
  2. Scroll down and select Settings.
  3. Click on Wireless & Networks.
  4. Turn on Bluetooth by clicking it (make sure the check box is green).

Step 2 – Connect the HTC Sensation 4G to your computer via Bluetooth

  1. On your computer (I used Windows 7) click Add device from your Bluetooth options.
  2. Windows searches for you device. Click it when it is found.
  3. Enter the number that pops up on the screen into your HTC Sensation 4G.

You are now connected via Bluetooth from your laptop and on your laptop the Bluetooth device control window should appear.

Step 3 – Send your .vcf files to the HTC Sensation 4G

  1. On your laptop, in the Bluetooth device control window, click the link under file transfer: “Send files to your (HTC Sensation 4G) phone”.
  2. Click Browse Files.
  3. Add all the .vcf files that you previously transferred to this folder: C:\Users\UserName\Documents\Bluetooth Exchange Folder
  4. Click Send.
  5. On your HTC Sensation 4G, you will get prompted to allow the transfer. Allow it.

The .vcf files should now be on the SD card in your HTC Sensation 4G.

Step 4 – Import all the .vcf files to your HTC Sensation 4G

  1. On your HTC Sensation 4G, click Contacts.
  2. Click the second icon below the screen (has one longer horizontal line above three shorter horizontal lines).
  3. Select Import/Export.
  4. Select Import from SD Card.
  5. Choose the account to import to, I used Google.
  6. Choose to import All vCard files.
  7. Click Ok.

You should now have imported all your contacts.

Hope this helps you.

I just got an Android Phone at a discount

So my new HTC Sensation with T-Mobile arrived today, and I got it for less than $199 it would have cost through T-Mobile direct.

I just thought I would tell you how I got the discount. This discount is not limited to T-Mobile or the HTC Sensation, but is pretty much with any phone you get, and for any company, including Verizon, that you choose to use as your carrier. The discount is different on different phones, but it can save you some money.

Linda Barneck, is an Independent Business Owner in a multi-level-marketing (MLM) company called ACN (Yes, this is the company that was promoted on The Apprentice) but I didn’t get this deal due to family relation. It turns out that anybody who orders through Linda Barneck’s Independent Business Owner site can get this discount.

So click this link and order you new phone with this discount now.

Get your Android Phone at a discount with ACN Wireless Exclusive Deals! 

There are a lot more products that you can get through ACN. You could get a Tablet with a data plan, or a Video Phone, or Satellite TV, or other cool products. See a what products are available in your area here:

Shop for ACN Products & Services

I have personally chosen to not participate directly in MLMs, though I have no problem buying product from an MLM especially if it saves me money, which is what I am doing in this instance. I benefit in no way from you ordering your phone through ACN. My mother did not solicit this post. I am writing this only because I got my phone at a discount.

I almost joined ACN. With ACN being a “techie’s MLM”, I was almost tempted to join. If you are interested in an MLM and you are a bit high-tech, you can become an Independent Business Owner and then buy yourself a new phone through you own account. Just go check out Linda Barneck’s ACN Independent Business Owner page and then click on the “Get Started” link.


A Hello World Android App in C#

This post is a continuation of Writing Android apps in C# using MonoDroid.

Writing your first MonoDroid project

Now that you have installed and configured MonoDroid and its prerequisites, you are ready to create your first project.

  1. Open Visual Studio.
  2. Go to File | New | Project.
  3. Choose “Mono for Android”. This is a new project type added by the Mono for Android Visual Studio 2010 Plugin.
  4. Give the project a name and click OK.

You now have a sample MonoDroid app.

Running your first MonoDroid App in an Emulator

Now that you have a sample MonoDroid app, learning to deploy it to an Android device and to test it is the next step.

  1. Simply press F5 in your “Mono for Android” Visual Studio project. The following screen appears however, there are no running Android devices.
  2. Click the link to “Start emulator image”.
  3. Wait until your Android emulator starts and you see the graphical display and not just a text display.
  4. Select your emulator from the Running Devices list and click OK.
  5. Wait. It is going to deploy the mono library to your emulator and deploy your app and this can take time.

You application should now be running in your Android emulator.

This is just a sample application that increments a counter and displays how many times you have click the button.

You are now ready to start writing your own application.

More Tutorials

Xamarin has multiple Tutorials to help you get a little further along.

MonoDroid Tutororials by Xamarin

Writing Android apps in C# using MonoDroid

As C# developers, many of us would prefer to write Android Apps in C# as well. Novell had promised us MonoDroid, but we were quite concerned as to whether MonoDroid would ever be released when Novell was dismantled.

However, Xamarin spawned from the ashes like a phoenix to restore the viability of MonoDroid, restoring our hopes to writing in C# for the Android platform.

Though I am hopeful that MonoDroid will become popular allowing C# to be a commonly used language for Android devices, there is still some question as to whether Xamarin and its MonoDroid product will survive.

Xamarin is a new company and needs to survive first. Its business is to sell MonoDroid, which is not open source, but is a proprietary product. Unfortunately, MonoDroid may cost too much, preventing adoption among app developers. Xamarin requires a customer base and a continual adoption rate if it is going to survive. If the company folds, what is going to happen to the library and the apps that use it?

Is Development with MonoDroid Free? Yes and No!

Yes and no.

Yes because anybody can use and develop with MonoDroid at no cost. It isn’t until you need to publish an app to the app store that you need to buy a license. You can use the MonoDroid trial for as long as you want. Here is a quote from the trial website. [2]

The evaluation version of Mono for Android does not expire, but enables development and testing against the Android Emulator only.

No, because you need to buy a license once either of the following become true:

  1. You need to test your code directly on a real device and not just an emulated device
  2. You are ready to publish an app to the app store

So what is the cost of MonoDroid? Depends on if you buy Professional, Enterprise, or Enterprise Priority. On the Xamarin store, the following table can be found. To see it you have to add MonoDroid to your cart and then click the “Show product comparison” link. [1]

Professional Enterprise Enterprise Priority
Deploy to your devices Has this feature Has this feature Has this feature
Publish to app stores Has this feature Has this feature Has this feature
Enterprise distribution Has this feature Has this feature
Priority support queue Has this feature
Guaranteed response time Has this feature
License expiration Never Never Never
Update subscription 1 Year 1 Year 1 Year
License usage Original User Seat Seat
Price (USD) $399 $999 $2,499

These costs are very low for business or enterprise customers who have C# developers and want to write Android apps.  The cost of training a C# developer to develop apps for Android in Java may be far greater than training them to develop apps for Android using C# and buying a MonoDroid license.

Is MonoDroid easy to set up?

MonoDroid is not down to a one-click installer.

Here is the old method of Installing without the One-click Installer

MonoDroid is simple to set up.  Xamarin has some simple steps that can be found on their web site. They have MonoDroid installation instructions for installing MonoDroid for use with any of three environments.

  1. Visual Studio  (Important! Visual Studio Express is not supported)
  2. MonoDevelop on Windows
  3. MonoDevelop on Mac OSX

If you don’t have a Visual Studio license and you can’t afford one, then go with MonoDevelop because Visual Studio Express is noted to be enough [3].

However, the Visual Studio install is four simple steps.

  1. Install the Java SDK
  2. Install the Android SDK
  3. Configure your simulator
  4. Install the Mono for Android Visual Studio 2010 Plugin

These are very easy steps to complete, and I won’t repeat the steps here, but once you complete them, you are ready to start writing Android apps in C#.

Once you feel you have everything installed, click the following link to continue reading.

Writing your first MonoDroid project

Why Technical Support Engineers are not all the same!

Technical Support Engineers are not all the same. There is an inclination in the industry to look down on Technical Support Engineers.

Recently the following article was published:
10 IT positions ranked by prestige

This article didn’t exactly identify the Technical Support Engineer role, but it was unfortunately encompassed in the bottom two positions with the lowest prestige, Technical and Help Desk Analyst.

Should a Technical Support Engineer have the lowest prestige of all technical jobs in the industry? If you think so, you might want to reconsider after read this.

There are multiple levels of technical support and you should know what level of technical support a person is in because that should significantly change your view of this persons technical skills and ability.

What they support and to what level they support it makes a major difference in how to view a Technical Support Engineers background.

Obviously there is a difference between someone who does tech support for a company like Cisco, Microsoft, LANDesk than someone who does technical support for a BowFlex. But this is an obvious difference. A chart that is more of gradient is needed.

Here is some information to help guide you in determining what experience a Technical Support Engineer really has in the technology industry.

1 – Complex product that requires knowledge of an entire area of technology, including both software and hardware environments

These engineers are often not just support engineers. Along with being an expert on their product, they must understand many other concepts such as Networking, Servers and server-side software such as Web Servers, Database Servers, DNS servers, DHCP servers and more. It is not enough to just know how to set up their software, they have to know how to set up the environment around it. They also have to know how to troubleshoot to deep levels both their software and the environment around it.

Usually these engineers practice during portions of their job being Systems Analysts, Consultants, Sales Engineers, IT administrators, Change Controls administrators, developers, and more. They deal will the full gamut of technology and all the areas around it.

Example companies

Desktop Management companies such as LANDesk, SCCM, Kace.
Network Manager Software such as HP OpenView

2 – Specialized product that requires knowledge of one major portion of an IT or Software Environment

These engineers are often not just support engineers. Along with being an expert on their product, they must understand many other concepts in the technology world. It is not enough to just know how to set up their software, they have to know how to set up some portion, though not all, of the environment around it. They also have to know how to troubleshoot to deep levels both their software and their portion of the environment around it.

Like above, these engineers have some limited consulting experience and are gaining understanding of change control and IT administrative processes along with being technology experts.

Example companies

Support for Network Equipment such as Cisco, Juniper Networks, etc…

3 – Specialized product that requires knowledge of a single area of an IT or Software Environment

This person is an expert on their software or hardware product as well as an expert in one or more areas surrounding it.

Individuals who excel here are usually are ready to explode into a new technology after a little as one year in this position.

Example Companies

Business intelligence software, such as QlikView.
Dell, HP and other computer resellers.
Simple Appliances, such as a NAS.
Any company’s internal Computer Help Desk (but be aware of glorified password resetters)

4- Specialized product that requires technical knowledge but only for that exact product

This person is an expert on their software or hardware product but there is not indication they know anything else about technology from this position, which doesn’t mean they don’t, just that this position doesn’t indicate it.

Example Companies

Home consumer products such as Wireless Routers from D-Link, Linksys, etc.

5 – Specialized product that requires knowledge in an area outside of IT but still somewhat technical

This person is an expert on their software or hardware product as well as an expert in one or more areas surrounding it.
Usually this product has interfaces into other technology that not used commonly but Technical Support Engineers usually don’t take the common calls for things that just work, they learn the tough issues, which usually involves integrating with something else. However, they don’t always know that area of technology, just the minimal knowledge to make their product work with it.

Example companies

Software Applications outside of IT: Microsoft Word, Excel.

6 – Specialized product that requires knowledge in an area outside of IT but not exactly technical

This person is an expert on their software or hardware product as well as an expert in one or more areas surrounding it. This expertise is beneficial outside the position but only in limited areas.

Example companies

Software Applications outside of IT:
Adobe Photoshop
gaming software

7 – Specialized product that requires knowledge that is technical but not really related to software or IT at all

This person is an expert product but it is just a simple product that being an expert on it really has no value anywhere else.

Example companies

Cable box companies
radios and sound systems

8 – Generic product that requires little technical knowledge

This person usually supports something that is sold on a made-for-tv ad, such as an exercise appliance. They usually have a script they follow and this position can be filled by almost anyone who can read and speak.

Example companies

Clock Radios

The 8 Types of Technical Documentation and Why Each Is Important

Technical documentation is critical to the success of any software. However, most creators of software struggle to provide adequate documentation for their product. Rare is the software that is praised for its documentation. When documentation is praised, it is often only praised for having some documentation, which is more than most, but in reality documentation is usually still inadequate.

So what constitutes adequate documentation? Well, if a user wants to do something with your software and the documentation helps them succeed in a timely manner, then the documentation is adequate. However, accomplishing this is not as easy as it sounds.

Why most companies fail to document properly

Most companies do not document their product thoroughly for a few reasons.

  • Lack of a defined list of all types of documentation
  • Lack of understanding of each type of documentation
  • Documentation is not made a priority and lacks of funding

Lack of a defined list of all types of documentation

Many cannot name more than one or two forms of documentation. To be successfully with documentation, a software company must first enumerate the types of documentation. Then it must learn about each type of documentation and understand the role that each type of documentation plays. It is also critical to understand the different target audiences each type has. Also, what are the common mistakes made when trying to create each type of documentation so these mistakes can be avoided.

Attempts are made to document software in different ways. However, because a complete documentation set is not defined, success is nearly impossible. To make matters worse, there is little to no reporting or visibility into the level of documentation a given piece of software has. I have never encountered software that has reached a 100% documentation level.

In order to succeed there must be an understanding of the types of documentation.

  1. Step-by-Step Walk-thrus – Also called Guides, How to’s, or Examples, Quick Start Guides
  2. Product feature documentation – This is lists all the features and settings without really any real world examples. Often the help button inside the software points to sections of this document.
  3. Troubleshooting Documentation – What to do when a failure occurs. Where are the logs and how to read them. How to turn on or increase logging and debugging.
  4. Knowledge-base (Problem, Cause, Resolution), Frequently Asked Questions (FAQ), and Forums
  5. Code, API, or SDK Documentation
  6. Internal Development Documentation – Such as code and development documentation, internal only features use by developers and/or testers, architecture documentation (Note: For open source projects this information is usually public)
  7. Real life customer implementations – Examples of how a company has a product implemented in real life
  8. Marketing documentation – Basic over views of the value the software has for the company, ROI claims, general feature lists, costs, etc…

The worst documentation of all is of course the absence of documentation. However, most software companies are unaware that there are entire areas of documentation that are lacking. To have complete documentation you must provide it in all of these areas.

Lack of understanding of each type of documentation

Since most software companies are unaware of the list above, it makes sense that they don’t understand the items on the list. This is why they have no direction and their documentation is a sporadic combination of the different documentation types, never fully succeeding to accomplish the primary goal of documentation, which is to enable the reader to succeed.

In order to create excellent documentation, a full understanding of each type of documentation is requisite. Without this understanding, documentation your documentation will continue to be lacking.

The lack of understanding also leads to assumptions that are not true. Some think that if they try to document every setting their software has they will have complete documentation. Usually when this is done, there is so much effort put into this that providing a simple example is forgotten. Often I hear this question:

Why would an example be needed, every feature is documented?

I would answer this question as follows:

Information overload. Now there is so much documentation in one white paper that someone who wants to do something simple is unsure that it is simple. They don’t know which features they must setup and which are unnecessary or should remain as defaults.

I often find this with Open Source documentation and unfortunately when a user asks for an example they are often rudely told to “Read the Manual” or RTM. However, the manual is usually hundreds of pages and they probably need to read one page of the manual but just don’t know where to start.

If have seen documentation using only examples as well. However, when an attempt is made to deviate from the examples, there is nothing left in the documentation to provide the guidance necessary to succeed.

Some documentation is better defined, such as that created from the results of support calls, forums, or mailing lists. Because this type of documentation is completely reactionary, this is one area of documentation that is better defined. The documentation is created after a problem is experienced and has to be dealt with. However, once created, it exists to benefit others. As this documentation type is better defined you might not be surprised to know that it has its own acronym: KCS or Knowledge Centered Support.

The goal of this article is to raise awareness of all types of technical documentation and make them all as well-defined as support documentation.

Documentation is not made a priority and lacks of funding

Investing in documentation is expensive. But it is usually and expense that pays off. If an analyst has to choose between two competing software applications and one is well documented and one is not, the well documented software application is likely to be chosen. Many organizations fail to see the ROI in documentation and therefore choose not to invest.

It is obviously that lack of funding for documentation is an industry wide phenomenon. While technical writing has been around since even before software, a standard for documentation whether it be creating documentation, updating documentation, managing documentation, and reporting on documentation has yet to formally exist. However, I did find this link, which shows I am not the only one who has identified this problem:

So lets get back to our list. Below I will go through each type of documentation and provide some information on it.

Type 1 – Step-by-step Walk-thrus – Also called Guides, How to’s, or Examples, Quick Start Guides


This type of documentation is nothing more than actions that the reader will take to accomplish something with your software. This documentation, when done right, could be followed by the most computer illiterate. If they read and follow each step, even if they have no idea what they are doing, they should succeed.

You may also want to read: Your project‚Äôs ‚ÄėGetting Started‚Äô tutorial sucks ‚Äď Why time to success matters


To provide the most common, most tested, most successful, and best overall example of how to accomplish some particular task from start to finish with your software.


Most commonly, trainees and new or evaluation users. However, anyone who wants to achieve the results the step-by-step guide leads to is included. This is most often, but is not limited to, users of your software. It includes deployment engineers, configuration specialists, support engineers, and demo or sales engineers.

Common Article Names

  • Quick Start Guide
  • Step-by-step Guide for setting up “Software X”
  • How to configure “Some Feature” of “Software X”

Common mistakes

There are many common mistakes

  • Not clearly defining the starting point of the walk-thru. Think of the starting point of a software that installs on Windows. What version of Windows, what other software must be installed, etc…
  • Defining the starting point clearly, but using a starting point most people don’t know how to get to. For example, you starting point should probably not say “have SQL Server installed and a database created with credentials” without providing steps.
  • Assuming the reader knows how to accomplish a task, so the documentation simply states to “do task x” instead of walking the reader through doing the task.
  • Skipping steps or forgetting steps.
  • The development department changes the steps just before release but the documentation is not updated to match.
  • Trying to simultaneously provide Product Feature Documentation in the middle of your steps. A link or note is acceptable for steps or settings that customers commonly customize.
  • Trying to provide comprehensive troubleshooting documentation after each step. It is great to have a link or a reference to troubleshooting documentation but it shouldn’t interfere with the walk-thru.
  • Only creating step-by-step guides for a couple common features of your software.
  • Failing to add documentation after use. For example, when a consultant, support engineer, or other employee struggles to set up a not-well-documented feature and once successful, they still don’t document it.

Type 2 – Product feature documentation


This type of documentation is a description of every feature and setting. What it is used for, when and why one would use the feature or setting.


This is for users who need to stray from the common walk-thrus and need to know what alternate and uncommon settings are used for so they can determine which they need in their particular environment.


Any customer/user who needs more than the most common features. Your own support representatives and architect or professional services teams. Consultants who recommend your product or are trusted to determine if your product meets a feature set for potential customers/users.

Common Article Names

  • The Software X Handbook
  • Software X: The Complete Reference
  • Understanding Feature Y of Software X

Common mistakes

  • Burying the features in other documentation, such as walk-thrus.
  • Not including at least a comment about when the feature would be used.
  • Not being aware of the features your customers/users are aware of and using. There are lots of “unintended features” and you should capture them in documentation.
  • Not letting customers contribute to this documentation in some way, even if it is just comments (this is the best way to solve the above issue, too).

Type 3 – Troubleshooting documentation


This documentation describes steps to diagnose problems. It includes information on logs files. It includes information on the behind the scenes business your software is doing, such as process/thread work, file or data interaction, etc…

If the users tries to do some task with your software and it fails, to them, a single task failed. However, to fix it, one might need to know that behind the scenes ten different processes occurred. It is important to be able to diagnose which background processes worked and pinpoint which one failed, so you don’t troubleshoot all ten background processes when only maybe the seventh is the problem.


To help customers/users get pasts unexpected issues and to help support engineers diagnose issues. These don’t have to always be public, but should be in the hands of your support engineers.


This is for support engineers more than customers, though the more experienced and “get your hands dirty” customers/users will use it. Engineers who do on site installation or on site configuration may need this information for when they run into bumps.

Common Article Names

  • Feature X: The complete troubleshoot guide
  • Troubleshooting Feature X

Common mistakes

  • Confusing “Problem, Cause, Resolution” documentation (also called Knowledge Base articles) with Troubleshooting documentation.
  • Not creating this documentation because you assume product feature documentation covers this. It doesn’t.
  • Providing this documentation but not providing complete troubleshooting steps for whatever reason. Especially if troubleshooting is done with 3rd party software and outside your own product it is assumed outside the scope when it is not. For example, a product that requires a DNS server, should provide steps to make sure that a DNS server is configured as the product expects. You may not have to write such documentation if the 3rd party vendor has some, but you should link to/reference it in your own documentation.
  • Writing documents that have lists of “fixes to try”. This documentation should almost never include “fixes”, but instead should diagnose the issue or pinpoint the problem so precisely that the fix becomes obvious whether the fix currently exists or not.

Type 4 – Knowledge-base (Problem, Cause, Resolution)


This documentation is most commonly the result of customer support tickets/cases. It lists a specific problem, a specific cause of the problem, and a single resolution to that problem. As mentioned early this is one of the more well-defined areas of documentation. Read more here about KCS or Knowledge Centered Support.


To make it so an issue only has to be troubleshot and fixed once. Once an issue is fixed, the Problem, Cause, Resolution can be documented and the fix can be applied without troubleshooting when the same Problem and Cause occurs.

To keep knowledge in-house. Tech Support is a high turnover position so keeping knowledge in-house is not always the easiest task.


Customers who experience a problem. Support engineers or other employees to whom the problem is reported.

Common Article Names

Frequently Asked Questions or FAQ.

Common Issues.

Common mistakes

  • Providing multiple Problems, Causes, or fixes in the same article.
  • Providing a problem and a list of fixes with no way to determine which fix is the correct fix.
  • Having an article that recommends a fix even when a customer is not really having that problem.
  • Failing to provide a good search for the knowledge base articles.

Type 5 – Code, API, or SDK Documentation


This documentation describes how others use your code or libraries to write add-ons, plugins, integration, or otherwise customize your application through code. Do not confuse this with Internal Development Documentation. This type is for external users or resellers or middle-ware companies.


This documentation helps others code with your code and libraries. Software that a customer/user takes the time and expense to modify to fit their environment becomes “sticky”, meaning the customer/user is likely to be loyal.


Systems Analyst / Developers / Integration Engineers / Middle-ware companies / Resellers. Customers who need to extend your product to meet a business need. Or in an open source environment, how others can use your code to extend their own project.

Common Article Names

  • Software X SDK Documentation
  • Class or Function Reference for Software X API

Common mistakes

  • Providing zero documentation on this
  • Providing incorrect documentation about a function
  • Updating code but not updating the documentation
  • Deprecating code but not informing the consumer
  • Not providing the first type of documentation: Samples, walk-thrus, etc…

Type 6 – Internal Development Documentation


This is used for internal developers continue future enhancements and otherwise maintain a piece of software.


To help developers work with a piece of code. To overcome turnover so new developers can pick up code another developer created. To provide architecture and design of each piece of code. To give UML (usually the classes and their methods),


Internal developers. Sometimes support.

Common Article Names

There are really no common names, but usually these types of documentation are internal only.

Common mistakes

  • Not writing such documentation at all.
  • Not documentation all parts of the code: Classes, Functions, design and architecture, supported features, etc…

Type 7 – Real life customer implementations


This is documentation about customers success stories. About how they implemented your software in their environment (which is usually as messed up as everyone else’s environments).


To demonstrate that the software can be successful and has proven itself in real life customer environments.


Other customers / System Analysts / Internal Employees in charge of future enhancements and road maps

Common Article Names

  • Product X Success Stores
  • How Company Y succeeded with Product X

Common mistakes

  • Not providing any customer success stories.
  • Providing success stories from unhappy customers who when contacted, speak poorly of your product

Type 8 – Marketing documentation


This is documentation that doesn’t really say much more than is needed to let a customer know about a software solution.


To acquire more customers. To help potential customers determine features sets quickly.


Systems Analysts / Consultants / Sales Engineers / Evaluation customers.

Common Article Names

  • Product X
  • The Product X Feature Set
  • What Product X can do for you business

Common mistakes

I don’t know a lot of the mistakes made in this documentation type, as my exposure to marketing is limited. I almost forgot this documentation type.

  • Too complex, including information or overly complex images or diagrams that are hard to understand


Hopefully after reading this article, you have a greater understanding of documentation.

Now that you know all the types of documentation, there are other problems to address. How to write the documentation. How to choose the priority for writing these types of documentation. How to balance the cost of documentation against the opportunity cost of not having documentation.

Some day, I will also have to write a post on how to deal with “versioning” documentation including updating documentation when Software versions change. I think there is a market for a piece of software that does nothing but track documentation. Hopefully it is well documented. ūüôā

Smart phones and tablets can’t replace a desktop or laptop, yet!

I completely believe that the phones and tablets like the new T-Mobile 7″ Samsung tab are going to be continue to be huge industries and will not go away as the Palm Pilot did. However, will they continue to explode exponentially as many believe? Or is there a plateau coming?

I just reviewed the Motorola Xoom and it was a great tech toy. However, it wasn’t much more than a casual gaming tool. There is a crucial flaw that has yet to be solved with phones and tablets: Typing.

No matter how fast you can type on a phone or tablet, you will never type as fast as you can on a keyboard. Might there be a solution better than a keyboard that we just haven’t discovered yet…maybe…but even if we discover it will it work on a phone or tablet?

There are certain uses for a phone:

  1. Making calls
  2. MP3 player
  3. Texting
  4. Casual gaming
  5. Visual browsing (such as checking the whether)
  6. Reading email (notice, I didn’t put writing email)
  7. Pocket Portability
  8. GPS and Navigation
  9. Quick low quality photos/video

There are certain uses for a tablet

  1. Book reader
  2. MP3 player
  3. Casual gaming
  4. Visual browsing (such as checking the weather)
  5. Reading email (notice, I didn’t put writing email)
  6. GPS and Navigation
  7. Quick low quality photos/videos

However, will the Laptop and Desktop be taken over by a tablet?¬† What about 20″ to 27″ monitors? Some of use need so much real-estate we have multiple monitors.¬† Here are using for a computer that a tablet does not solve.¬† For those of you thinking of going 100% to phones and tablets, you may just want to hold on.

Here is a list of requirements and uses that are met by a desktop or laptop that the phone and tablet haven’t really solved yet.

Note: I am not going to repeat the items on the list for the smart phones and tables but be aware that the only feature the phone or tablet has that a desktop or laptop doesn’t have today is pocket portability.

  1. Keyboard and typing
    1. Writing email
    2. Writing documents
    3. Creating spreadsheets
    4. Writing code, yes, even writing code for tablets
    5. Writing blog posts (like this one)
  2. CD/DVD/Blu-Ray drive (yes, people are going to still want to play there DVDs and Blu-Ray movies 10 years from now)
  3. Monitors
    1. 17″ or larger monitor
    2. Multiple monitors
    3. Viewing multiple applications simultaneously
  4. Local storage of data.
  5. Serious desktop gaming
    1. Joysticks
    2. Short-cut keys
  6. Peripherals
    1. Printers
    2. External drives
    3. Cameras and Video cameras
    4. Projectors
    5. Custom peripherals (like those that are designed for one company, telescope, craft vinyl cutters, industrial equipment, etc…)
  7. Ethernet, no not everywhere has wireless yet and some secure facilities will never have wireless or allow VPN from a 3G/4G device. Some places don’t allow web-cams or camera devices and unfortunately you can’t take your camera out of your phone or tablet.

We have been using desktops for three decades. Smart-phones and tablets are in their infancy. Many problems, including millions of custom problems for companies in all industries, have been solved using laptops and desktops. To replace desktops and laptops, these problems will have to be solved.

Many problems have solutions already.For example, blue-tooth and wireless technology can allow for peripherals but there are a lot of devices already out there that are not blue-tooth or wireless capable.

But another road block is in the way. Adoption.

Adoptions takes a long time.  First the manufacturers have to adopt a technology, design new products, produce them, distribute them.  Then consumers have to buy the new technology and if they already own an older version, that older version often has to go through its life cycle which can take a lot of years. I still have an HP LaserJet 5L from the late 90s that works perfectly. No, I am not going to invest in another laser printer until this one dies.

So will someone still be running a desktop or laptop with Windows XP/Vista/7 in 2020. Certainly.  Will they probably own a smart phone or tablet as well.  You bet!

Motorola Xoom review – one month later

I had the Motorola Xoom for a month just to experience it. It was provided to me by work but only temporarily.  I just transferred it to a team member so they can now experience it.

If you don’t want to read anything more, and just want me to sum up my review here it is:

I want to buy one now that it is gone but the $599 price overcame my desire as I don’t need one.

So I that means that it is definitely a useful item but it is currently overpriced in my eyes.¬† I just bought my wife a 17.3″ widescreen HP laptop with a 4GB of RAM, a Blu-Ray, a web-cam, fingerprint reader, HDMI port, etc…It was $549.¬† Currently there are some Android 2.2 tablets that are in the $100 to $150 range. I think in a year these tablets in the $100-$150 dollar range will be running Android 3.0 or the next version and they will be everything your need.¬† So only spend the money if you need to.

I am going to own an Android 3.0 device soon, if for no other reason than technology is both my job and hobby so just to stay up to speed with technology, I will need one soon, just not right now.

Ok, let’s get to the positives and negatives.


  1. Apps didn’t work until I restored to factory defaults.
  2. Wireless screen didn’t really indicate a scroll bar, took me an hour to figure out I had to scroll down to enter a password.¬† This was the first thing my team member ran into as well.
  3. Some apps just crash (but many actually updated and started working, so expect app support to improve rapidly)
  4. Learning to type on a touch screen. It is much better than typing on a phone, not as good as a laptop.
  5. Didn’t fit in my suit pocket at church, maybe I should get a 7″ one for myself.
  6. The fingerprints on the screen were annoying and I had to clean it often.

Positives of a tablet

  1. Time to browse.  Once you have your favorite sites, just hitting a site really quick was much faster.
  2. I loved the 10.1 inch screen.
  3. I loved replacing big books.
  4. A good casual game machine, especially for my 3-year-old.

Positives of the Xoom and Android 3

  1. Having about 5 desktops to put icons on.
  2. The first firmware update I received worked perfectly.
  3. Notification system is awesome.
  4. Flash web pages worked just fine.
  5. The email integration with Gmail.
  6. Plenty of disk space. (I never even used 2 GB as much is stored on the cloud)
  7. Multi-threading – It never once felt slow.
  8. Google Maps integration worked well.

Hopefully this review helps you.

See my article on Mono in the BSD Magazine May issue

The BSD Magazine has released and there is an article in it by yours truly.

Check it out.

May issue of BSD magazine- Embedded BSD: FreeBSD and Alix

10 Step process for developing a new WPF application the right way using C#

It makes a difference if you do something the right way from the beginning.  Everything seems to work out so much better and takes less time over all.

Here are some basic steps that I have learned will help you do it right the first time. These steps are from my experience, mostly because I did it wrong the first few times.  These are not exact steps. They are subject to change and improve.  In fact, you might have improvements to suggest immediately when you read this. But if you are new to WPF, then reading these steps before you start and following them, will have you closer it doing it the right way the first time.  It is much more pleasant to tweak a pretty good process than it is to go in with no idea for a process and do it wrong.

Step 1 – Prepare the idea

  1. Some one has an idea
  2. Determine the minimal features for release 1.
  3. Determine the minimal features for release 2.
    1. Alter minimal features for release 1 if it makes sense to do so.
  4. Determine the minimal features for release 3.
    1. Alter minimal features for release 1 and 2 if it makes sense to do so.

Step 2 – Design the Application’s back end business logic (simultaneous to Step 3)

  1. Design the backend
  2. Apply the “Keep it simple” idea to the business logic and makes changes as necessary.
  3. Apply the “Keep it secure” idea to the business logic and makes changes as necessary.
  4. Repeats steps 2 and 3 if necessary.
  5. Backend development can start now as the UI and the back end should not need to know about each other, though this coding is listed as the Step 5 item.

Step 3 – Design the UI using WPF (simultaneous to Step 2)

  1. Determine what development model should be used to separate the UI from the business logic.
    1. Model-View-ViewModel (MVVM) is the model I recommend for WPF.
    2. Gather libraries used for the model (such as common MVVM libraries that include the common ViewModelBase and RelayCommand objects)
  2. Consider using a 3rd party WPF control set will be used.  Many 3rd party companies provide WPF controls that are better and easier to use than those included by default.
    1. If you decided to use 3rd party controls, purchase or otherwise obtain the libraries for these 3rd party controls.
  3. Consider designing two WPF interfaces or skins (I will call these Views from here on out) for each screen. This will help drive the separation of the back end code from the WPF code. Also if developing two Views is not simple, it indicates a poor design.
  4. Design the interface(s) (you may be doing two Views) using SketchFlow (take time to include the libraries for the 3rd party WPF Controls in your SketchFlow project and design with them)
    1. SketchFlow allows you to design the UI, which is commonly done in paint, but instead does this in XAML, and is actually the WPF code your application will use.
  5. SketchFlow allows you to deliver the design (or both Views if you did two) as a package to the customer.
    1. Deliver it immediately and get feedback.
    2. Make changes suggested by the customer if in scope.
  6. Take time to make the XAML in SketchFlow production ready.
  7. Deliver the XAML to the customer again, to buy of that the design changes are proper.
    1. Make changes suggested by the customer if in scope.

Step 4 – Determine the delivery or install method

  1. Determine the delivery method.
  2. Determine when to develop the delivery method.
    1. The easier the application is, the longer you can wait to determine the installer or delivery method.
    2. The more complex the install or delivery method, the sooner this should be started.

Step 5 – Develop the business logic

  1. Develop the application designed in step 2.
  2. Get the application working without UI or silently. Note: Start the next step, Develop the UI, as soon as enough code is available here.

Step 6 – Add Bindings to the UI

  1. Start the UI project by copying the XAML from the SketchFlow document to your Visual Studio or Expression Blend project.
  2. Determine a method for setting the DataContext without linking the View to any ViewModel or Model dlls.
  3. Create a project for the ViewModel code and develop it to interact with the business logic using Binding.
  4. Remember to develop two Views for every UI screen as this will help, though not guarantee, that the the MVVM model was correctly used.

Step 7 – Develop the View Model

  1. You should now have a backend code and a View, and now you start creating the View Model.
  2. This should be in a separate dll than the View or ViewModel.
  3. The ViewModel should never link to the View but can link to Model and Business libraries, though you may consider interface-based design and only link to an interface library.
  4. Make sure to use the properties that the View is binding to.

Step 8 – Consider a other platforms


Macintosh owns a significant market share.  Determine if this application needs to run on Macintosh as well. Sure, since we are running C# your options are limited to either rewriting in objective C and Coca, or using Mono with a MonoMac UI.  I recommend the latter.

Note: It is critical that the UI and business logic are separated to really make this successful.

  1. Completely ignore the WPF design and have Macintosh users users assist the design team in designing the new UI.¬† Macintosh’s have a different feel, and trying to convert the same UI is a mistake.
  2. Create the MonoMac UI project.
  3. Create a project similar to the ViewModel project in Windows, to link the UI to the business logic.


BLU (BSD/Linux/Unix) doesn’t exactly own a significant market share. However, it is still important to determine if this application needs to run on on BLU as well. Sure, since we are running C# your options are limited to either rewriting in C++, or using Mono with a GTK# or Forms UI.

  1. Completely ignore the WPF and Macintosh designs and have Linux users assist the design team in designing the new UI. Linux have a different feel, and trying to convert the same UI is a mistake.
  2. Create the GTK# project.
  3. Create a project similar to the ViewModel project in Windows, to link the UI to the business logic.
  4. GTK# doesn’t support binding, but still keep the UI separate from the business logic as much as possible.
  5. Also, don’t develop for a single open source flavor, but use standard code that compiles and any BSD/Linux/Unix platform.

Mobile Platforms

  1. Do you need to have this app on IOS or Android or Windows Phone?
  2. Completely ignore the WPF and Macintosh and Linux designs and have Android or IOS users assist the design team in designing the new UI. Mobile platforms have a different feel, and trying to convert the same UI is impossible as the screens are much smaller.

Step 9 – Develop the delivery method

Again, you may need to do this way sooner if the application is complex.

  1. Develop the install or delivery method.
  2. If you decided to deploy to Macintosh or BLU you may have to develop separate install or delivery methods for those platforms as well.
  3. Remember to have a plan and a test for your first patch even if you have to mock a sample patch before you release.
  4. Remember to have a plan and a test for upgrading your application even if you have to mock a sample upgrade version before you release.

Step 10 – Deliver the finished Products

  1. Once finished, deliver this product.
  2. If you decided to create a Macintosh or BLU version, deliver them when ready as well.  It is OK and maybe preferred to deliver these at different times.

Too funny! How to Fix Any Computer… And Quietly Weep

This is so funny, I had to post it.

How to Fix Any Computer… And Quietly Weep