Sunday, February 12 2006

Messrs (the plural form of both Mr. and Monsieur) is a rather odd little word, and was previously relegated to only fringe legal text. Now, at least here in Canada, it is everywhere -- across every newspaper, in letters to the editor, in blog entries, and so on.

I find this fascinating, as I first saw this outside of academic texts about two years ago in one column of the National Post. Slowly it took root, appearing in more and more columns, until now it appears to be in their standard style text: Somehow every article must talk about multiple men, if only to fit a Messrs in there.

Quickly it spread: to the Globe and Mail, and then the Toronto Star, and I've even seen it appearing in the Toronto Sun.

Fascinating how a piece of language is so by example, which was sort of the point of my prior spelling matters entry.

   
Saturday, February 11 2006

I once worked for RBC, and still have a lot of their branded material around. It was an okay employer for the time.

However I simply have to get something off my chest about RBC's sponsorship of the Canadian Olympic team: Do they have to milk it so much?

So far watching the Olympics I have been subjected to probably 200 RBC ads (in the FIRST DAY) where they glowingly talk about how selfless and important they are to the Olympic team. In one particularly vile ad they give a mock-up of a 1947 event when the hockey team needed funding to get to the Olympics and an RBC rep, upon being asked, replies "I think we can do something" (which was nebulous enough to make me wonder if they fully paid...or they partly paid, or if they only offered a line of credit).

I am curious to know how much RBC actually gave the Olympic team compared to how much they've spent telling everyone about how much they've given. I suspect (completely baseless speculation) that the latter represents a much, much larger number.

Sort of like the tobacco company that gave $100K of food to a foodbank, and then spent tens of millions telling everyone about it.

   
Friday, February 10 2006

1 Infant + 1 Toddler -> Daycare + Winter == Endless Family Bacteria and Viral Fun!

On a brighter note, the regional testing center has finally allowed scheduling for the Microsoft test 70-431, so I'm going to complete that in a week. I'm looking forward to finally checking off that todo item.

   
Friday, February 10 2006

The Odd OS Out

In the world of the wiki, being in the Windows camp sometimes makes you feel like a second-class citizen.

Much of the information for wikis on the Windows platform is either out of date, or just plain wrong. Many of the tools encourage users to simply accept Linux into their lives, giving vague warnings about the dire consequences that await if they dare to host the product on Windows.

While Linux is undoubtedly the optimal solution in some cases -- such as when you can requisition or reconfigure existing hardware to act as a new Linux server, or when you're using some of the superlative virtual machine solutions -- many shops lack UNIX/Linux skills, or they simply want a homogenous platform, and thus would prefer to stick to the Windows platform even if it wasn't the native-environment originally envisioned.

Sometimes the team is skillful and adept with Linux, but the corporate IT department brutally seeks out and destroys rogue PCs running the unauthorized OS, storming the department in a flurry of flying pocket protectors.

All is not lost, however.

Wikis To The Rescue

MediaWiki Logo

Not only are there numerous wiki or wiki-like products (yafla provides Sharepoint consulting in addition to wiki solutions, however Sharepoint fulfills a subtly different niche than wikis) available for the Windows platform, you can even host the trendsetter in the wiki world - MediaWiki - on Windows.

MediaWiki, as you likely know, is the rapidly evolving software platform on which Wikipedia is based. It's free to download and use, even for big, soul-less corporations.

So without further ado, the following is a no-nonsense guide to getting MediaWiki installed on Windows XP, Windows 2000, or Windows 2003. This is intended to get you up and running, and if you find that you like the platform and the package then you can start looking into advanced customization and locking down (for instance you can configure a Wiki to only allow authorized users to make changes, with authorized users only being created by users with appropriate privileges. This eliminates the primary fear of most wiki-holdouts -- a fear that a wiki is a crazy free for all).

IMG_1949

My primary goal is simply to get people looking at wikis, seeing how simple it is to configure them. In Optimal Software Development Processes and Practices, I wrote about the need for formulating written standards. The reason many teams shirk from such a task is because it's one that appears to have a lot of upfront, contentious work involved, generating the first version of the definitive Corporate Standards guide. Using a wiki, though, and you can organically grow team information like standards, adding small additional pieces of information as they come up, with extraordinarily easy editing, organized centralization (which I covered in Organize Your Information), and full history and revision control.

A wiki can be a tremendous information tool for modern teams. It works in the way that information is often accumulated, and not in the spastic, all-or-nothing manner usually pursued.

Common Steps

  1. Download and install the feature-rich 7-zip. This will facilitate unzipping/untarring files further in the process. Log out and back in to enable the GUI extensions. 
  2. Download and install the GNU diff utilities. You can get by with the "complete package, except sources". Note where you installed it, as you'll require the location in a later step (this will likely be C:\\Program Files\\GnuWin32).

Option 1 - The WAMP Platform

You've probably heard the acronym LAMP (Linux + Apache + MySQL + PHP/Perl/Python). It's the description of an important and somewhat standard technology stack on which a tremendous number of very successful solutions are built. It's extraordinarily feature rich and capable, not to mention that it comes at a very good price.

AMP is all of the stack on a platform other than Linux, WAMP being Windows + Apache + MySQL + PHP/Perl/Python.

One of the easiest and most-up-to-date options to configure WAMP on Windows is the DeveloperSide.NET Web-Server Suite. Offering a free, pre-packaged configuration of the fundamentals, this option can get you up and running in little time, even on the "non-server" Windows XP.

  1. Download and install the self-installing DeveloperSide.NET Web-Server Suite at http://www.devside.net/web/server/free/download. Note the install location (by default C:\\www). Restart when prompted.
  2. If you already have the IIS World Wide Web Publishing running, there will be a conflict over port 80. You can move your wiki to a different port by modifying C:\\www\\Apache2\\conf\\httpd.conf. You can then run C:\\www\\Apache2\\bin\\ApacheMonitor.exe to stop and restart the service. If you opt to do this you'll have to append the port when you access your wiki (e.g. http://localhost:85 if you chose port 85) in later steps, and this could cause problems for machines with software or hardware firewalls between them and the wiki, which usually only expect HTTP traffic on port 80.
  3. Delete index.html from C:\\www\\webroot (altering the path if you have a different install location from step 1).
  4. Download MediaWiki. For this setup I grabbed 1.5.6, which is a stable release from January 19th, 2006. When you read this something newer may be available.
  5. Right click on the downloaded file (mediawiki-x.x.x.tar.gz, where the x's represent the version number - e.g. mediawiki-1.5.6.tar.gz) and pick "7-Zip -> Extract Here".
  6. Right click on the newly ungzipped file, mediawiki-x.x.x.tar (where of course the x's refer to the version number. e.g. mediawiki-1.5.6.tar), and choose "7-Zip -> Extract Here".
  7. Copy the contents of the newly extracted folder - e.g. mediawiki-1.5.6, to C:\\www\\webroot, altering if you have a different base directory in step 1. For instance navigate into the folder, choose Edit/Select All, Edit/Cut, navigate to C:\\www\\webroot and choose Edit/Paste).  You should now have files such as wiki.phtml in the folder C:\\www\\webroot.
  8. Open a web browser pointing to http://localhost/ (or the IP or DNS name of whatever server you've installed this on), and you should be presented with a page telling you to setup the wiki first.
  9. Everything should be fairly self-evident. After setting passwords for the sysop (which is the account used to administer through the wiki web app), as well as for the new MySQL account, be sure to clear the password at the very bottom, as by default MySQL was installed with no password on the root account, albeit limited to local access.
  10. Copy LocalSettings.php from C:\\www\\webroot\\config\\ to C:\\www\\webroot\\.
  11. Configure the email server appropriately - if you're running the IIS SMTP server locally you're good, otherwise you need to make a configuration change so the wiki is capable of sending email.
  12. Access your wiki! Start editing and creating pages (search for a new topic, and then click on this exact title in the resulting search failure page -- you're now editing the new page!), organically growing your information base! Select Edit on complex Wikipedia entries to see how features like categorization, sections, sidebars, and images are achieved.
  13. Read the User's Guide to see how to customize things like images, templates, allowing uploads and images, and so on, and how to edit pages. Login as WikiSysop (or whatever else you named it) and play around with preferences, special pages, skins, and so on. Create accounts for members on your team.
  14. If you find that you like the platform, remember to make a backup strategy for your MySQL wiki database.

Option 2- The WIMP Platform

IIS 5.1, and moreso IIS 6.0, really is a superlative web server, and in security metrics it's actually been beating out Apache. It's fast, capable, and you probably have other applications running on it (e.g. .NET apps), and perhaps you don't want the heft of a second set of webserver services running on your machine simply to host a new web app.

Well you don't need to run Apache for MediaWiki if you don't want to.

This configuration is a little bit more involved as I've chosen to recommend the individual constituents, but in the end you'll have what could be considered a more granular, controlled configuration than using one of the all-in-one stack solutions.

This presumes that you've already installed IIS. If you haven't, used Add or Remove Programs and add IIS in Add/Remove Windows Components.

  1. Download and install MySQL (in this case I downloaded and installed the 34.9MB v5.0.18 "Windows (x86)" variant), using the "Typical" install options. In the detailed configuration choose appropriate settings (for instance Developer Machine if you're just doing a trial run), noting the new root password for the database server (you'll need this later, as by default this stand-alone install is more secure than the packaged bundles).
  2. Download the "PHP 5.x.x zip package" (not the installer), for instance PHP 5.1.2 zip package.
  3. Right click on the downloaded file and pick 7-Zip->Extract Files. Enter C:\\PHP as the path.
  4. Copy libmySQL.dll from C:\\program files\\mysql\\MySQL Server 5.0\\bin to C:\\PHP.
  5. In C:\\PHP, rename php.ini-recommended to php.ini.
  6. Open php.ini in notepad.
  7. Find the line (Edit/Find) extension_dir = "./" and change it to extension_dir = "C:\PHP\ext"
  8. Find the line ;extension=php_gd2.dll and remove the leading semicolon, leaving extension=php_gd2.dll
  9. Find the line ;extension=php_mysql.dll and remove the leading semicolon, leaving extension=php_mysql.dll
  10. Save the file and exit notepad.
  11. Add C:\\PHP to the path (Start/Control Panel/System/Advanced/Environment Variables. Under System Variables, double click Path and append ;C:\\PHP on the end (note the semicolon).
  12. Add a new system environment variable (Start/Control Panel/System/Advanced/Environment Variables) called PHPRC, with the value C:\\php
  13. If you're running Windows 2003, run Start/Administrative Tools/Internet Information Services (IIS) Manager. Expand the local computer, and choose "Web Service Extensions". Select "Add a new Web service extension". Give it the name PHP, and then Add  the required file C:\\PHP\\php5isapi.dll. Set the checkbox "Set Extension status to allowed". This will allow the extension to run.
  14. In IIS Manager, expand websites and right click on Default Web Site. Choose the Home Directory tab, and select the Configuration button in the Application settings section. Click on the Add button in the Mappings page. For the executable, enter C:\\PHP\\php5isapi.dll, and for the extension enter .php. Ok all of the dialogs.
  15. In IIS Manager, expand websites and right click on Default Web Site. In the Documents tab select Add and configure the new default content page to index.php. Ok out, and choose Move Up until index.php is at the top of the list.
  16. Complete steps 4 to 12 from the WAMP configuration, replacing all references to C:\\www\\webroot with C:\\Inetpub\\wwwroot. Also be sure to enter the root MySQL password that you set in step 1 into the Wiki setup page. As one last hiccup, you will likely have to provide the account IUSR_LOCALMACHINE, where local machine is the hostname of the machine in question (e.g. IUSR_MyServerA1) with full control of the C:\\inetpub\\wwwroot\\config directory during Wiki setup, allowing it to emit the generated setup file. You can remove it right after generating and copying the LocalSettings.php file. Alternately you can customize the account under which the web site is running.
  17. If you wish to enable uploads, you will also have to configure directory access on C:\\inetpub\\wwwroot\\images, allowing the account under which the web application is running to have access to modify files in that directory. For instance add IUSR_LOCALMACHINE (again where localmachine is the hostname of the machine in question, such as IUSR_MyServerA1), or whatever other account you have the application pool running under, to have full control of the directory, or simply give it Add File permission and add full control to the CREATOR OWNER virtual account.

Voila, a high performance wiki hosted with IIS on Windows. Now if only there were a ASP.NET 2.0 fork with all of superlative MediaWiki functionality and usability, coupled with a SQL Server back-end...

Once you have the platform configured to demonstrate the concept to yourself and your team, you can begin altering the look and feel, and enabling huge performance speed-ups such as the PHP compiled caching extensions and memory caches. This is just a powerful starting point.

   
Thursday, February 09 2006
Canada

A while back, during the public spat between Canada and Denmark over Hans Island (a "conflict" that continues to this day), I tongue-in-cheek registered the domain nukedenmark.com (which is, of course, ridiculous given that Canada is a non-nuclear nation, not to mention that Denmark is a close ally. The whole situation was somewhat ridiculous and I was poking fun at it).

To avoid those people who would take it a bit too seriously, I registered it with the hidden registrar functionality, using a proxy to hide my details (a feature that you can pay extra for).

The current events involving Denmark -- or rather a fringe newspaper in Denmark, which somehow has become all of Denmark's problem -- reminded me that I'd registered it. I decided to take a look to ensure that it doesn't expire, possibly into the hands of someone less benevolent.

I visited GoDaddy, but discovered that I couldn't remember the details of the account that I used originally for it. Sure enough they offer several reminder features, including one where it'll email you your customer # when you punch in a domain. Punching in nukedenmark.com, it then verifies the email address as "Email Address:*******@yafla.com" before sending the email. So much for proxy privacy.

I found this a bit hilarious. I used the Domains by Proxy feature, but here it is publicly stating for anyone that the contact is @ yafla, which of course is a small number of people.

For those who wonder, I actually did create a humorous website for the domain, including a "live" webcam (it was pure white) and "conflict" details, however I had hestitations realizing that some are born without a sense of humor.

   
Saturday, February 04 2006

After fielding several wiki-related queries by clients and associates, along with numerous questions and comments online, it is evident that it's the Year of the Wiki. Wikipedia has proven the concept, and users have a growing awareness of the benefits that organic information growth could bring to their teams.

As such, I'm putting together a feature covering wiki options and alternatives, including specific instructions for configuring and using Wikis on Windows (as this is a particularly neglected area, and much of the information that exists is terribly out of date or quite simply non-functional). Of course yafla provides turnkey Wiki solutions and training as a service as well.

One more point: The consulting work has always overflowed purely from word-of-mouth and associate networking, so the business website has always been terrible (sort of the whole "the cobbler has the worst shoes" thing). As yafla is now entering a growth stage, wailing past the temporary manpower limit, I'm finally going to change the corporate website to properly reflect the services and capabilities of the organization, and actually allow options for prospective clients to engage our services. That should be up shortly, growing and improving rapidly over the coming weeks.

Three yafla resource "shout-outs":

yaflaColor - A dynamic web tool to select colors, including proper saturation and lightness varations of colors
pureJpeg - Remove extraneous JPEG blocks
High Performance SQL Server - Information to ensure your database designs and usage are optimal

Have a fantastic weekend!

   
Wednesday, February 01 2006

I've been using the free Foxit Reader for several months now, relying upon it in places where previously I'd rely on Adobe's Acrobat Reader (I believe they now call it simply "Adobe Reader").

While Adobe makes some fantastic software, Adobe Reader distracts from the actual documents by endlessly making attention demands, and you're eternally aware whenever it plays a part. It also tended to be very heavy on resources, with activities like scrolling through PDFs being a tremendously laborious process. Not to mention that Adobe Reader was responsible for quite a few browser hang-ups.

Foxit, by comparison, is extremely lightweight, and it manages to smoothly navigates through PDFs with ease. Great little product.

   


About the Author
Dennis Forbes Dennis Forbes is a Toronto-based software architect. While focused primarily on the .NET and SQL Server worlds, Dennis frequently ventures outside of this comfort zone into game development and image processing. He has been published in several industry magazines, has been quoted in the Wall Street Journal and has been interviewed by NPR.

He is a vice president and lead software architect at an innovative New York City hedge fund back-office services firm.

Dennis has been working on solutions for the financial, telecommunications, and power generation markets for over 15 years.





 
Earlier EntriesLater Entries

Dennis Forbes