Wednesday, February 01, 2006

How To: Setup a blog with limited access (GO BLOSXOM!)

Mood: Monday Blues

Scene1: Monday morning at work. I need to get feedback about a product from users and domain experts. This feedback will determine (to an extent) the direction in which my project moves. So w/ a cup of hot coffee, I try to get my brain to wake up and think of how I can accomplish the task at hand. I know what I want; something that is far-reaching, simple yet secure. The coffee works and a couple of solutions come to mind. I try to analyze them but each solution seems to have some or the other drawback. Here are some of the options that I toyed around with -

  1. Meet-up in person…..sounds like a good idea to have the company buy me lunch! Nah, but this is not a far-reaching solution. I might end-up meeting only a handful of people. So DELETE it.
  2. Creating a web-page with the desired UI. (You don’t have to be a rocket scientist to figure that out….) Great! But who is going to do it and how much time will it take and all the resource issues and yess dealing w/ the red-tape. DITCH.
  3. Create a new wiki-page and ship the link. People can edit the page and post their feedback, comments. Umm….simple for me but maybe not so simple my target audience. BACKUP PLAN.
  4. Blog….Coolest and neatest. All I need to worry about is the IP and security issues and these ARE the major issues. WAY TO GO iff I can control and limit the access to this blog and also have control over where the content is saved.

And so I begin my quest for such a blog provider! After about an hour of googling I stumble upon this post .

Mood: Excited

Scene2: Eureka! I see a ray of hope in Blosxom and eagerly plunge into its documentation. After some reading, I am 50% convinced that this might work and decide to give it a shot. I plan to try my hand at it for about a day, see what results I get and then make a decision.

Mood: Jubilant. Professional decorum prevented me from doing a victory dance.

Scene3: Proudly showing off my piece of work to colleagues, etc; receive appreciative comments, questions, “I-am-impressed-but-don’t-want-to-sing-praises” expressions, etc. Getting this blog up and running was a fun learning experience. Learnt some, refreshed some about Perl, CGI scripts, IIS and HTML.

Mood: Anticipating

Scene3: The next step before I actually use this for its intended purpose is of course to get the BOSS’S approval; me waiting for the same.

HOW I DID IT

  1. Installed the “for everyone” version of Blosxom (V2.0) to run on my windows box.
  2. Downloaded and installed the MSI for Windows of ActivePerl.
  3. Installed IIS on my Windows box. (OS -Windows XP Professional). I host(IIS) my blog locally, so, all the content, including comments are saved on my machine.
  4. Enabled the comments and comments count feature for my blog using the pollxn plugin and pollxn’s plugin for Blosxom. With this, I can have my audience provide me feedback.
  5. I am using anonymous authentication method (default).
  6. Customized the look and feel of my blog using simple templates from the blosxom site.

SEE, I TOLD YOU SO

  1. Follow instructions. They help.
  2. Knowing perl helps, but you will do fine if you don’t.
  3. Was a wee bit disappointed when I read the “Blosxom for windows – Coming soon”, after spending some time reading the documentation and getting all excited. Don’t worry. The “everyone” version works fine w/ windows.
  4. Windows XP Pro. does not have IIS installed by default. I had assumed it was. I was surprised that my machine did not have the Inetpub and wwwroot folders and went ahead and created them. Very soon I realized the mystery behind their absence; these folders are created during IIS installation.
  5. I had hoped to use the login plugin to have user authentication for my blog. But decided to skip that since my machine would be accessible only within my company domain and that was what I wanted.



Tuesday, January 24, 2006

Deploying VS.NET applications

This post aims at documenting my learnings during the deployment of a VB.NET application using the setup and deployment wizard in VS.NET (Version 2003).

To InstallShield or not is the question!

I had used InstallShield for deploying my VB 6.0 application

  • I had looked at the setup and deployment wizard of VB 6.0 and thought it sucked. I thought it was too primitive.
  • I had the .MSI file of the previous version and realized that some quick modifications to this MSI and I would have the installer for the new version.

Taking the path of minimum effort, I chose InstallShield at that time. ;)

So when faced with the task of deploying my VB.NET application, I was in a dilemma whether to use InstallShield or the setup and deployment of VS.NET. After playing around with VS.NET’s setup and deployment wizard and inputs from a colleague, I decided that VS.NET it was! InstallShield has a lot of advanced functionalities but VS.NET had everything I needed. Besides I remember reading somewhere that being 3rd party products InstallShield etc do not guarantee correct deployment.

ORCA

Orca is a database table editor for creating and editing Windows Installer packages and merge modules. Trying to understand each and every table of an installer in detail is like experiencing an information avalanche (for me) and so I restricted myself to studying this information as and when and as much needed. Having ORCA definitely helps.

Apparently some customizations for the installer can be done via ORCA alone. For ex. Asynchronous behavior between the installer and program launch after installation can be achieved by changing the Type entry for hex value row in the CustomAction table from 1554 to 1746. This does work, however what I would really like is that, the program should launch after I click the Close button on the installer i.e. the installer is DONE.

Remember that the changes you make via ORCA will be gone every time you build your Installer project. So don’t forget to redo the ORCA edits!

WISH

I keep tweaking my code and thus need to remove and add the EXE to the installer project every time I generate a new EXE. Bad thing w/ this is that I need to re-exclude some files in the dependencies list, re-create all the shortcuts that I have created (because they reference the old EXE), and re-assign all the icon files. What is worse is that the project compiles even if I miss out on one of these and I discover the problem in the form of a non-informative error code, when I run the install. :( How I wish there was an option where by one could just refresh the EXE! (Maybe there is and just that I haven’t discovered it yet)

WATCH OUT

  • Renaming a Custom Action = BAAD!
  • A “Just me” install will not uninstall an “Everyone” install.

STILL SEEKING SOLUTIONS

  1. Launching program after Installer has completed installation.
  2. Installing the .NET framework on the m/c during installation if it is not found.
  3. Having the “Would you like to launch program name..” dialog at the end of the installation as per the norm. The Install sequence has 3 phases Install, Progress and End. The wizard disallows any dialogs after the Finish dialog. So even if I place the dialog just before the Finish dialog, the custom action responsible for launching the program runs before this Finish dialog and hence does not work out as I would like it to. As of now, I have my custom dialog somewhere in the Install sequence after the Read Me dialog (very weird!).

TROUBLESHOOTING

When faced with an aborted install and a message box with a “not-so-helpful” error code, try running the installer w/ the log option. The log file will hopefully have the clue to all your miseries.

msiexec /I "installer.msi" /l*v "nameoflogfile"

Don’t fret if nothing works….because there is always GOOGLE and all the good people in the internet community who share and help! :)

useful links