Saturday, March 29, 2008

Help files

One of the tasks I need to finish up for my public release is to complete my help file. I put together a rudimentary help file for the beta version with just enough topics for each dialog in my application, but I need to better document the program and its functionality.

For my help documentation, I'm using a compiled help file (CHM) which is a common standard for help files. It basically takes a bunch of html files and compiles them into one help document which has a table of contents, index and search feature in a left-hand pane and the content in the right-hand pane.

At my old job, we used RoboHelp to create our chm files. I like RoboHelp. It has a great WYSIWYG ("what you see is what you get") editor and makes creating help files as easy as using Microsoft Word. But... it costs $999. I don't like it that much. I was even considering just creating HTML files for my help topics and opening them in the user's browser so I could avoid paying for a Help authoring tool.

But then I discovered Microsoft's HTML Help Workshop. It's this bare bones utility that does not have a WYSIWYG editor and is not as intuitive to use asRoboHelp, but it is free. And it does everything I need to create a CHM file that I can call from my code to pull up specific topics, as well as create an index and table of contents the way I want.

Since it wasn't intuitive to use, I relied on this great tutorial someone wrote on how to set up a help file for a sample C# application. It gives you the code for the sample application and talks about not only using HTML Help Workshop to create a CHM file that you can call from your application, but also covers other types of help, such as status bar messages and tool tips.

Guess I should get back to actually writing my help documentation rather than writing about it.

Sunday, March 23, 2008

Installation

I've been working on my installer recently, a task I'm not fond of. In addition to installing files, I need to register a 3rd party type library (don't get me started) and edit a different 3rd party INI file. At my old company, I used Wise Installer to create installations which I found pretty easy to use. But the version I used didn't create MSI files, and for that, we had started to use InstallShield which I hated. It seemed clunky and hard to figure out.

So in keeping with my bootstrapping plan of keeping my costs as low as possible, I decided to try out a Micorosft Visual Studio's setup project since I already own Visual Studio. You can create a setup project similar to the way you create any new Visual Studio project. I can't say it was super easy to use, but with the help of some online resources, I managed to create a pretty good installation, and I think I even understand the whole "Product Code" thing now (which I had a hard time with in InstallShield).

For my purposes, I created separate dll's for editing the INI file and for registering the type library. By using Installer classes in those projects, I'm able to call the code in my dll's from my installation using custom actions. It works great.

Here are some resources I found useful when I was putting my installer together:
A Code Project step-by-step tutorial on creating a setup project
An article on simple-talk using custom actions
FAQ on Windows Installer

Wednesday, March 19, 2008

Virtual PC

After I released my beta, I sent it to a friend of mine who is going to be doing some testing for me. The program wouldn't run on her machine. Then I realized - I hadn't tested my program on a non-development machine. I had tried it on my current laptop and my old laptop, but I had been developing on both and had, as it turned out, I had registered a type library I was using. The type library is part of a 3rd party program I am working with and they told me it did not need to be registered, that their program would register it automatically. That was not the case, however, as we verified with a Windows Live Meeting with my friend. So my installation will need to register this file.

Obviously I need to test in more environments. But I have a limited number of computers. So I set up Microsoft's Virtual PC 2007. It's a free program that lets you install multiple copies of Windows operating systems on one computer. Unlike a dual-boot setup, you install the operating systems on a "virtual" PC so that you can open the virtual PC in another window, without having to close your other open applications. (You do have to buy copies of the operating systems you install.)

I installed Virtual PC without any problems and then installed Windows XP on it (the same system my friend has who was having the problem). But I ran into a problem trying to connect to the network from the virtual Windows XP. It didn't seem to see my wireless network card. I spent several hours on it before giving up. But today, I e-mailed a friend of mine who has worked with virtual machines before and he had a solution for me. Now I am all set up and ready to install my program on this virtual machine and see how it goes.

Monday, March 17, 2008

At home childcare

One of the reasons I started my business from home is that I wanted to keep my son at home, at least for the first couple of years. So in order to work, I hired a college student to nanny 18 hours a week, and later I hired my 16 year old niece to babysit twice a week after school. Between that coverage and my son's naps, I can typically get in 20-30 hours a week.

Unfortunately, last week my niece told me she has too much going on and needs to stop coming. It may not be permanent, but it is indefinite. And Julie, the college student, who watches Aaron is graduating in May and I need to find a replacement for her. I've been procrastinating on that, even though I know I want to have overlap beween her and the next nanny. And last week, she tells me that the company that interviewed her, and to whom I gave her a very good reference, wants her to start part-time before she graduates if they hire her. And they called her back for the "next step" so it looks like they are serious. Meaning I could soon find myself without any childcare in the near future.

So suddenly I need to find someone quickly. We lucked out with Julie. She worked at a local take-out place we frequented when I was pregnant and after Aaron was born, so we had a lot of contact with her before we hired her.

I started looking on craigslist last week, but when I only found a couple of people worth contacting, I looked around and found Care.com, which looks like a great website for finding childcare (or other types of household employees). I signed up for 1 month ($25 + a one time $15 registration fee). If it helps me find someone within the next month, it is worth the $40 I spent. They help pre-screen applicants by not only taking all their relevant information, but they even do phone interviews with their references which you can listen to (or read the transcripts of) before contacting those references on your own. And more importantly, they do background checks which you can access for free with your paid membership. It isn't an extensive background check, but they do verify that their SSN matches the name, they verify the address and they do a criminal background check. And another thing I like about this service is that I can contact someone through the website and they only see my first name and last initial - I don't have to reveal my phone number, e-mail address, or last name unless I am ready to interview someone.

Since Friday, I've spent hours looking at profiles, contacting people, responding to applicants to my job posting, and continuing to search on craigslist. Wish me luck!

When my release is late, you'll know one of the many reasons why.