Archive for August, 2007

Press Conference: The OS Depth Chart

After much speculation I’m happy to say that I’ve arrived at this season’s operating system depth chart. Controversy has been swirling and there have been quite a few rumors circulating so I’m hoping to put those to rest today.

First, I have some rather unpleasant news to get out of the way. As you all know there have been repeated disciplinary issues with Windows Vista. An inability to consistently connect to wireless networks, difficulties with formerly compatible software, and repeated tardiness in boot up times…you’ve all been talking about these things. I regret to inform you that Windows Vista has been permanently dismissed from the team for gross misconduct. We’re all disappointed, especially given the anticipation surrounding this operating system.

With that out of the way, I’m happy to say that I’ve elected to give the starting nod to the operating system that has proven itself successful in past seasons, Windows XP. XP has matured into a reliable OS that does what I need it do, makes good decisions, and has all but eliminated the BSOD fumbles of prior seasons. We’re looking forward to continuing successful operation into the next few seasons with Windows XP at the helm.

I know there were hopes that Ubuntu Feisty Fawn would be given the starting nod. Feisty did great work with the opportunity it was given and exceeded our expectations. However, Ubuntu still needs at least another season of development before it will be starting material. There are some weaknesses to be resolved such as poor wireless handling, but the improvement we’ve seen has been incredibly encouraging. Expect to see Ubuntu via VMWare during situations when things are in hand and the opportunity to build experience presents itself. Our hope is that Ubuntu will be ready to take the starting snap when XP steps into retirement.

That’s all for now. Thanks and we look forward to a successful season.

Web Development != Search Engine Optimization

A recent conversation with a colleague brought up the subject of search engine optimization and marketing (SEO), web development, and managing client expectations. The basic issue is that most clients do not have an understanding of the fact that SEO is a specialized practice and industry separate from but related to web development.

Many clients expect that SEO is “just part of the package” when having a website constructed, and it is to a very limited extent. It is the responsibility of the developer to ensure that the URLs are “SEO-friendly,” that there are HTML and XML site maps, that the site is as close to W3C compliance as is reasonably possible, to avoid gratuitous use of Flash (or better yet, just avoid Flash altogether), and to ensure that Javascript and CSS degrade gracefully, etc.

But these are just the technical issues related to SEO and they primarily relate to making the site condusive to spidering by the search engines. The host of other activities related to SEO (research, keyphrase optimizing, back-linking, magneting, pay-per-click, etc.) fall far outside the developer’s scope of work. There is a thriving industry that revolves around SEO, just as there is a thriving industry that revolves around web development. There are conferences (Search Engine Strategies is the big one, taking place in San Jose right now), websites (Aaron Wall’s SEOBook.com and SearchEngineWatch.com are my favorites), mountains of books (Aaron Wall’s SEO Book and IBM’s Search Engine Marketing, Inc never leave my desk), and scads of white papers (I read everything produced by MarketLive and Avenue A | Razorfish).

Developers need to communicate this delineation between web developer and search marketer as soon as possible in the relationship; I’ve begun telling clients up front that I will deliver them a search friendly site, but that full SEO is another consultation altogether.

Here’s the analogy that I use with clients: engaging my development firm to build your website is similar to hiring a general contractor to construct a brick and mortar retail facility. One would probably not hold a general contractor responsible for the generation of foot traffic through the front doors of the store (although one would expect the doors to work smoothly, be marked with the appropriate signage, and be clean and professionally installed). In the same sense, unless the service has been explicitly agreed upon, one cannot expect a development firm to be responsible for the marketing activities that result in increased site traffic (although one would expect that the site work smoothly, employ established usability conventions, and be visually sharp and professional in appearance and operation).

Apache mod_write URI Length Limitation

I ran into an odd problem recently. I’m using mod_rewrite to do some virtual hosting in conjunction with the excellent Code Igniter PHP framework.

Out of sheer laziness and a desire to avoid having to do a SOAP transaction (since we’ve already got a couple of them going in this particular bit of code) MathGeek and I decided to put a bunch of data in the URI, hashfuscated, naturally.

Unfortunately it turns out that mod_rewrite chokes on URL strings longer than 255 characters by throwing a 403 error. Now, I’m not sure if its the TOTAL length, or just the individual length of a section of a URL. I tried a few things with regexps but I’ve not really come up with anything conclusive. I’ll have to wait until I’ve a) slapped a bandaid on the problem and b) come up with a real solution before I can fire up my dev box and mess with the module to figure out the true limitation.

Ubuntu: First Impressions

It’s been a couple of days now since I installed Ubuntu on my new laptop. Since that time, I’ve spent, oh, almost all of it goofing around it.

Pros:

Beryl - Windows Aero what? Oh my goodness Beryl is the most beautiful window manager ever built. It’s not something you can really verbally explain, so just go check out this video:  http://www.youtube.com/v/ZD7QraljRfM

Synaptics - The package installer works quite nicely and it’s rare that I have to drop down to the BASH shell to get things working.Community - UbuntuForums.org is a godsend; most of the answers I sought were found there.

Speed - One of my primary issues with Vista is that it is molasses slow; this is not the case with Ubunu, even with Beryl running. The boot time is literally a third of Vista’s (I timed it).

Cons:

Wireless - It refuses to work on boot unless I go into the Network Manager interface and quite literally just goof with it until it works.

90% - One can find free alternatives to most of the software that is necessary on Windows. Unfortunately the majority of that software is only 90% as good as what is available on Windows. The GIMP (Gnu Image ManiPulator) vs Photoshop is a great example. GIMP will do a lot of what Photoshop will do, but it’s…just inferior. The UI isn’t as good, some of the tools are named identically but have slightly different functions. It’s confusing.

The Gmail Notification client is another example: it works, but it’s buggy and carries the potential of getting an nastygram from Google asking you to stop drilling their servers via 3rd party software.

Bottom Line:

I frequent Slashdot therefore I’ve heard countless Windows vs Linux discussions. Many of those discussions center around the fact that those offering opinions have religious beliefs when it comes to operating systems. Those religious beliefs spring forth and, as some religious beliefs tend to do, they undermine the objectivity and rational nature of the individuals in question.

Once upon a time a young woman I interviewed for a position made the statement that “Linux is free if you don’t value your time.” This is a perspective that is frequently overlooked during these holy wars; when the issue of time or of a learning curve is mentioned, the counter-argument usually alludes to laziness on the protesters part.

Laziness is not the issue.
ROI is the issue. Does using Linux as a desktop OS yield ROI greater than that of using Windows XP? I know that using a Linux OS for a web application server yields a tremendous ROI when compared to using Microsoft; I have hard numbers to back that up.

More to come…

Hitler, Stalin, and Domain Squatters

What do they have in common?  Not much, except for my wish that they all occupy the same hot and senselessly torturous level of hell.

MathGeek and I are starting a business.  One of the first things to do is come up with a decent name.

There is problem however.  Every single domain name is taken.  Every single one.  There are no open domain names left on the internet.  Some cybersquatting piece of human excrement has occupied every one of them.  There needs to be a law whereupon someone having a legitimate business need to a domain name can exercise said law and wrest the domain name from the slimy paws of whatever sleazebucket owns the name.

Have you ever tried to trademark or service mark a business name or trade phrase?  It is a major pain.  You have to display all types of usages to demonstrate that you have legitimate claim to the name or phrase.  There is no facility whereby someone can just sit around thinking up potential trademarks and business names, call up an attorney, and hold the assets hostage until someone willing to pay some arbitrary and exorbitant fee comes along.

But on the internet, this practice is not proscribed, it’s prescribed!  Companies like GoDaddy and 1&1 make a healthy profit selling domain names, selling lists of domain searches that went unpurchased, and taking a percentage of transaction profits when a domain name is exchanged.

The situation is ludicrous.  I’m not a fan of governmental intervention, but the monopolization of domains by those who have no legitimate business claim other than anticipated ransom is completely out of control

Ubuntu Feisty Fawn To The Rescue

Since I hated Vista so much right out of the box, I decided to install Ubuntu 7.04, otherwise known as “Feisty Fawn.”  I don’t know the onomastics of these names (two builds ago it was “Dapper Drake,” then it was “Edgy Eft”, so obviously they’re being alphabetical).

I followed the “How To” written here:

http://apcmag.com/5046/how_to_dual_boot_vista_with_linux_vista_installed_first

It went pretty smoothly, although I made a few mistakes that were easily avoidable.

1) ALWAYS VERIFY THE CHECKSUMS!!!!  If you don’t know what a checksum is, here is the deal.  A checksum is basically an alphanumeric string that is derived by analyzing the contents of a file.  If said file is identical to another file, the checksum will be the same.  If the file is different, the checksums will be different and you will need to redownload the file.

Windows makes a command line utility to verify checksums, so use this one, not the multitude available for download at a cost:

http://support.microsoft.com/kb/841290

There are  couple of ways to verify the checksum.  You could dig through the Ubuntu forums to find the sum, or after download you could just take what the aforementioned utility gives you and Google it.  If it’s solid, you’ll get a ton of hits, if it’s wrong, you’ll get nothing.

FWIW, here was my checksum: e296e3468358789904097fc8df29609a.  This was for the file “ubuntu-7.04-desktop-i386.iso”.

2) Burn a copy of “System Rescue CD.”  The ISO is available at “http://sourceforge.net/project/showfiles.php?group_id=85811&package_id=88964

If you don’t have a utility to burn an ISO, use this one.  It’s free and (gasp!) it works on Vista:

(link coming soon)

Why do you need the SRCD?  Because in case you screw up the install (like I did), there is a good chance that before you screwed the install, Ubuntu told the computer to boot it every time and not Vista/XP/whatever.  So the next time you boot, you’ll get a “Missing Operating System” error.

I’ll do another post on how exactly I solved this problem (with screenshots).  Most of the help I found by Googling was 50% of what I needed, which allowed me to piece together what I needed to do to get my ‘puter to boot.

Hopefully these two tips help someone else make the move to Ubuntu.  Number 2 would not have been necessary had I followed Number 1, but given the volume of results when “Missing Operating System” is queried on Google, lots of people run into this.

New Toys

So in the last couple of weeks I’ve replaced a) my cellphone and b) my laptop. Trust me, I’m not one for technological gluttony; both devices were purchased almost four years ago.

Naturally they were in various states of disrepair. My phone was held together with yellow duct tape, the antennae was bent at a 90 degree angle, and if it wasn’t handled gently it would pick up its ball and power off.

The laptop wasn’t much better. The plug for the charger was so worn that the machine had to sit on a docking station to charge. The power button was broken so again, it had to be on the docking station. The final straw was when it just randomly quit connecting to the internet. I tried all the usual socket repair stuff, no dice.

I chose an HTC Mogul super phone and went with Sprint. After being an Alltel customer for four years, it had been four years too long. The Mogul is powered by Windows Mobile 6, which is pretty slick OS. They’ve come a long way since my prior PDA, a Windows Mobile 2003 powered iPAQ of some type (can you tell I’m not really that into hardware?).

Why did I not get an iPhone, you ask? Well, aside from the fact that AT&T is roughly three years behind their competition (EDGE? Still? Seriously?) after spending some time getting to know the device, I just wasn’t really that whelmed. Bottom line, it’s a fancy toy. A very shiny, slick, aggressively marketed toy, but a toy all the same.

For the laptop, I chose a Lenovo Z61m. My decision was made largely on the rave reviews that MathNerd (or HumanAbacus or whatever he’s calling himself these days) gave his Thinkpad. It’s a decent machine and was under $1,000. I could give a rip about graphics as I use my powers for money, not games, so I couldn’t even tell you what it has for video. It’s a Core Duo with a GB of RAM and a 120GB hard drive. More than enough for development work.
And it came with Vista Home Ultimate. Or something. I have to admit that I’ve heard quite a bit of bad press about Vista and…IT TOTALLY DESERVES IT!!!

Here’s an equation to help you get what Vista is all about:

XP + pretty new graphics + draconian DRM measures + twice the resource load = Vista

I’m in the process of installing Ubuntu right now. I might keep Vista, but it’s more likely that I’ll load XP Pro and dual boot with Ubuntu.

Aside from the horrid OS, the computer is slick. It has a fingerprint reader, which I figured was a silly “oh, let’s buy that one, it has a neato toy” feature, but it’s actually nice to be able to just swipe my finger to log in to my account. Necessary? Not at all. Convenient? Definitely.

Would you use a .NET framework construct with Pure C++?

I would.

Let me explain…

After diving into the .NET world head-first over the last 4 months with C# in a pure .NET shop I must say my reticence towards embracing the core technology has faded somewhat. Well, ok, a lot. It *is* very productive. And the C# grammar has some very handy features I will allow.

But I still feel a bit dirty not cleaning up after myself (I detest GC at a fundamental level, it perverts a language enforced ctor/dtor element to the acquire/release model intrinsic to OO programming, but that’s a different post….) … but, alas, I love the .NET framework. It’s what MFC never was (or Ritchie forbid, ATL) - or any other monolithic framework designed to help with all the grungy bits of code we all know and hated in a pure Win32 world.

Anyone who has coded perfmon counters, version info blocks and anything network related along with a ton of cobbled together bizarre interfaces (raw com anyone?) that comprises the life of a low level win32 jock must agree immediately, or risk being discarded as disingenuous.

So I’ve brought this up to coworkers - fellow C# jockeys mind you - would you write pure (unsafe, *gasp*) C++ if you had a library as clean and elegant as the .NET framework?

I sure would.
…If for no other reason than sheer romanticism.