Business Cards, Photos, and Personal URLs

Wow! It’s taken me a day to get over the exhaustion of Podcamp Atlanta 2007. Kudos to Amber, Rusty, and Penny and everyone else involved for pulling off such a great event.

So I sit down and sort through all the new business cards I collected, and it occurs to me that I can’t remember half the people I spoke to by business card (the good news is I did remember the other half!) Which is when it hit me; why don’t people start putting a photo URL on their business card? For example, here’s mine (notice the Well Designed URL :-), but of course it’s not yet on my business card:

Photo: /photo/

Of course, that begs the question of a Personal URL on a business card. A person’s personal URL is a URL that points to their personal "About" page, and I think everyone should get one. Of course that URL should also have a photo:

About: /about/

Note My "about" page points to the "About Me" category on my blog, but I plan to write a good concise "about" page in the near future. And my next business cards will have my photo and my about URLs listed. 

I’m going to Podcamp Atlanta!

Amber Rhea pitching Podcamp Atlanta to the Atlanta PHP User Group as Robert Swarthout looks on. Well, yes as I’ve already said, I’m not a super-timely blogger. I should have blogged this long ago, but ah well. Anyway, Amber Rhea of The Georgia Podcast Network organized a Podcamp here in Atlanta for this weekend March 16-18 2007 at Emory University. An as of yesterday when I asked, Amber said that she had 185 people registered! Wow. Another event like SoCon07; I can’t wait!

But this one is going to be special for me as I get to hold my first discussion on Saturday about User-Centered URL Design. What’s that got to do with Podcasting, you ask? I’m not sure either, but Amber assurred me that attendees would be interested. :-) But seriously, podcasters has many of the same issues to address that everyone publishing on the web should consider including usable URLs for their audio files as well as the website that hosts them.

I look forward to some likely discussions!

Energy in Atlanta: Finally at SoCon07!

I’ve never really blogged before about Atlanta because (except for this) I’ve never felt there was much interesting happening here, at least not from the perspective of things that interest me to blog about. But that’s finally changing!

I’ve been in Atlanta for most of my life, and my professional career has spanned exactly 20 years next month. I’ve also been in the entrepreneurial high-tech side of things but for the most part have always felt on the outside looking in. Sure there has been a lot of high-tech companies focused on serving our fortune 500 crowd, and there are tons of real estate entrepreneurs. However, I’ve never felt like there have been others interested in developer and web-related startups like I have always been. That is until now! SoCon07 Entrepreneur Breakout moderated by Jeff Haynie with Michael Mealling asking a question a Josh Watts of Blue Violin in the immediate foreground

Several weeks ago (okay, I’ve never been a timely blogger…) I attended an unconference called SoCon07 put on by Sherry Heyl, Leonard Witt, Jeff Haynie, Josh Hallett, James Harris, and Jonas Luster (if I missed or overcredited anyone, I apologize in advance.)

The event was actually incredible. Held in the nether regions of Atlanta (okay, that’s OTP a few miles) at Kennesaw State University. There were somewhere over 200 people in attendance, and the Friday night before there was a dinner held for any interested attendees. It was incredibly rewarding to get to meet so many other bright and passionate people interested in web-oriented startups and/or social media here in my good ole’ hometown of Atlanta, GA!

I’m going to shout out for a handful of other people I’ve met recently who were at SoCon07. Someone I had met socially last year, Grayson Daughters of The Spacey Gracy Review/blog and Producer and one of the Personalities for the TrueGritz satire site was busy doin her thang.

And then there was Amber Rhea and Rusty Tanton of the Georgia Podcast Network as well as the organizers of PodCamp Atlanta. And of course my good friend Eric Winter of Webicus. As well as many others I just met and whom I hope to soon get to know better.

ASPnix adds ISAPI Rewrite - Finally!

ASPnix Web Hosting Logo Back in July of 2006 someone asked on the forum for ASPnix, the web host that specializes in CommunityServer, to add ISAPI Rewrite to their servers so that customers can clean up their URLs. Seven people including myself chimed in asked for it. Over the past eight months, little was said by ASPnix except by a former staffer who implied it was harm the stablity of their servers and who really gave no indication that any real consideration was being made to offer a solution for URL Rewriting.

Well finally, on Feb 22nd, Roma confirmed that ASPnix has will finally be offering ISAPI Rewrite on ASPnix’s web servers. That’s yet another IIS-centric web host who has finally freed its customers from the shackles of poorly designed URL Hell! Hooray!

Now let’s just hope that Scott Watermasysk can be convinced to add URL Rewriting support in CommunityServer using ISAPI Rewrite to eliminate .ASPX extensions and more on CommunityServer, sooner than later.

Buzzwords

They say people can’t understand an abstract concept unless they have language to describe it. For example, because Tahitians don’t have a word for sadness they think of sadness as they would a physical illness.

As we are immersed in a world of rapid change we need many new words to describe previously unidentified concepts. And when one of those new concepts inspires the masses, the media latches hold and a buzzword is born. And though everyone scoffs at them, we simply couldn’t discuss so as new concepts without using buzzwords. Like it or not, buzzwords are here to stay as the pace of change accelerates.

Recent examples of Internet buzzwords are ‘AJAX‘ and ‘Web 2.0‘ with the latter often being derided as meaningless and just hype. But ‘Web 2.0‘ is, by definition, not meaningless! Ney, the term ‘Web 2.0‘ identifies the nature and level of activity on the web not seen since the dotcom crash. So if ‘Web 2.0‘ were truly meaningless, there wouldn’t be a buzzword for it! Of course whether or not ‘Web 2.0‘ actually describes anything of tangible value distinct from prior periods is a matter of significant debate. :)

The reason buzzwords are so beneficial and will continue to be used is they give people a shared context in which to efficiently communicate, and that has an incredible value. Of course most buzzwords are merely shorthand for “the next big thing” but that’s just the nature of the hyped-up world we live in.

As an aside, the reason the term ‘Web 2.0‘ has attracted so much derision is it grouped hard-to-pin-down concepts having more in common with the current era than anything else. The shared context for ‘Web 2.0‘ is ‘the period starting around 2003‘ and since there is little value in discussing ‘the benefits of the period starting around 2003‘ the value of the shared context is diminished and dissonance results. It would have been much better had the purveyors of Web 2.0 done more to segment and focus attention on the individual concepts instead of defining the umbrella that covered them. Ah, but easier said than done.

On the other hand when the buzzword defines a concise and well understood concept the shared context can create many orders of magnitude more value than the concept on its own, as has been the case with the term ‘AJAX.’ Of course the downside to buzzwords is that wherever they go hype will follow, and that you just can’t avoid!

On the Hunt for a New Programming Language

When it comes to programming on the modern-day GUI (post-DOS) platform, the vast majority of my coding has been, in order of experience, using T-SQL, VBScript in ASP, and about equal parts classic VB (v3.0 to v6.0) and VB.NET. As you can see from my order of experience, I’m really a database guy, and since the beginning of the web I’ve always viewed the web as somewhat of a database publishing environment (anyone remember the DOS product dbPublisher Pro from Digital Composition Systems?) What’s more the web allows a potentially infinite number of people to use a developer’s database publishing apps without any extra effort to distribute them. Finally, the web provides ability to capture evidence the apps were run, how often, and by how many people. Is it any wonder I have more of inclination to develop for the web as opposed to desktop applications? Back during the period from 1994 to 2006 when I ran VBxtras/Xtras.Net where we where a reseller of ActiveX controls and then later .NET components, I never really thought about the cost of add-on components. Almost anything I wanted to play with I can get an NFR (not-for-resale) copy just by sending an email or picking up the phone. Although I still have many of those relationships from a decade+  in the business, I hesitate to ask for NFRs these days except from my really close friends simply because this business I’m in today has nothing to do with benefiting those people. So numerous facts have me giving up on my prior five year assumption that I would someday learn VB.NET at an advanced level and have me instead actively considering alternatives:

  1. As I just stated, the fact I now have to pay for third party components and tools means I’m paying more attention to cost of acquisition,
  2. My recent favorable impressions of open-source developer tools and components, on par with some of the best tools ever sold by Xtras.Net,
  3. My increasing frustration with the Microsoft developer division’s process and release cycle,
  4. All best web applications seem to target L.A.M.P. such as Mediawiki, WordPress, vBulletin, Subversion, Trac,  Ruby On Rails, Django, etc. and all but one of them are free to use
  5. Completely preconfigured stacks (including O/S) that are becoming available for download as a VMware appliance,
  6. Recognizing that Ubuntu’s has an approach strategic enough to result in Microsoft being profiled in a revised edition of Clayton Christensen’s Innovator’s Dilemma as yet another example of why great companies loose their leadership position,
  7. And lastly my rising disgust for ASP.NET (and I promise I will blog about those specific soon…)

By the way, even though I dislike ASP.NET, I do still really like the .NET Framework and programming model. Oh and a note about the first point; whereas there is good open-source tools available for .NET, the operative word is "tools" not components. When you compare what’s available to freely use for .NET compared to what’s available for any of the "P"s (Perl, Python, and PHP), .NET just can’t compare, at least not in depth or breadth. Of course being commercial products the .NET third party components are more polished and of course have commercial support available. However, unless you are big company that needs to CYA and have a throat to choke, those are often dubious benefits especially when you consider the benefits of open-source (i.e. source code, and the ability to fix something and contribute it back so you’ll know it stays fixed!) Anyway, I could write for hours on the pros and cons for open source vs. commercial developer components and tools but that’s not the subject of this post. The subject is about which language I will focus the majority of my future attentions on learning and using, and I’d love to get your input before I decide. Here are the current contenders:

PHP
All the major web apps I mentioned above seem to be built using PHP and I’m currently running many of those apps, PHP is pretty similar to the ASP that I know so well, it’s web-specific, there is a huge support community, it runs on both Windows and Linux, and every Linux web host known to man seems to offer it preinstalled. However, there seems to be lots more crap PHP code examples littering websites than good PHP code examples making it harder to learn so it might be hard to seperate the wheat from the chafe, it is not easy to configure on Windows Servers (especially at a shared web host), and no one individual framework seems to have gotten the lion’s share of the market attention so picking one would be a crap shoot. Oh, and it uses those infernal semi-colons just like C#.
Ruby on Rails
Ruby and it’s framework Rails have gotten tons of attention and it seems all the cool kids are doing it, especially lots of the Web 2.0 startups, it is very database-centric, has very elegant URL mapping functionality, and it seems you can get web apps built really fast using it. And Ruby.NET is also on the horizon meaning I might be able keep my toe in .NET. However, the community comes across as just a little bit too religious and I’m generally alergic to that, AFAIK it doesn’t run on Windows, or at least not for shared hosting. Plus I’ve had people I respect tell me that Ruby doesn’t have nearly as many users as the "P" languages, that Rails it not nearly as mature as its purported to be, and that Rails makes simple thing simple but complex things extremely difficult. And the number of available web hosts that offer it is quite limited.
Python
Unlike PHP, it seems Python is well suited for both web and desktop apps, which might come in handy from time to time, and a shipping IronPython means that I definitely can keep my toe in .NET. The Django framework seems to be a little more mature and have a little less religion than RoR, and Django also has nice URL mapping functionality, albeit slightly less elegant than RoR. And it seems to run equally well on Linux and Windows. However, Django seems more document publishing-centric and less database-centric, there are very few web hosts that support DJango, and I’ve heard it is a real bitch to get working on a web host.
VB.NET+Castle/MonoRail(+Mono)
But then again, maybe I will stick with VB.NET. The Castle/Monorail project is supposed to be a lot like RoR, and I’d even have the option to use Mono on Linux. However, the third party tools are definitely wanting, most web hosts haven’t a clue what Mono is, and they coded Castle/MonRail in C#, so I’d always be dealing with semi-colons…
ASP+IIS+JScript
I could stick with ASP, which I still like, and learn JScript to replace VBScript, the latter of which just has too many limitations when compared with the other current options. This clearly also runs on Windows and any Windows web host will support it, and I already know Windows backwards and forwards. On the other hand, I’ll need to use ISAPI Rewrite for clean URLs, JScript on ASP it has no future and few code examples on the web, and what third party components and tools (to speak of…)?!?
ASP+IIS+VB.NET
I could also use develop VB.NET objects and call them from ASP; that’s what we last did at Xtras.Net (and I think that is what they are still doing, last I checked…) Of course, calling .NET objects as ActiveX controls just doesn’t feel right, and again there’s that third party component and tools problem…
PowerShell+IIS+???:
Of all the teams working on tools for developers over at Microsoft, the PowerShell team run by Jeffrey Snover is the only one that gets me excited anymore. And in an email from him (or was it a comment on my blog, I don’t remember exactly) he said that PowerShell can do web, and will be able to do it more easily in the future. On the other hand, it’s not here today, and what if webified PowerShell is just another way to do rubbish ASP.NET instead of what it should be, a url-based object-selector-and-invoker like Django or Rudy on Rails.  And what’s the chance it will ever run on Mono…?
Other:
Is there anything else do consider…?

At this point I should probably explain what I’m not considering, and why:

Java on Anything:
Although I was really impressed at a Sun Tech Days recently here in Atlanta , even the Sun people were all over dynamic languages with praise, like Jython and JRuby. And though I was impressed with NetBeans 5.5, all the other "enterprise" baggage like J2EE and Servlets and JSP Custom Tags gives me the feeling I’d be jumping out of the frying pan and into the fire.  Oh, and Java uses those infernal semi-colons too.
C# on Anything:
One word: semi-colons!  Sorry but if I’m going to go .NET, it’s going to be VB.NET (or IronPython). VB.NET is so much more natural to me than C#, and there are things you just can’t do in C# that you can do in VB.NET related to using "implements" on a method in an inherited class (I ran into that limitation of C# compared to VB.NET on a project several years ago where I was managing a pair of interns coding in C# and they hit a wall because of that limitation. I can dig it up if anyone cares, or better yet, can someone who knows the specifics explain it in comments?)
Perl on Apache:
Although my partner on Toolicious Ben Coffey who is a devoted disciple of Perl will cringe to hear this (yet again), I can’t quite get my head around Perl, and they tide, at least today, is away from Perl. Of course Ben claims that will all change with Perl 5.0, but to me that remains to be seen and I’d rather go with a bird in the hand (i.e. one with a lot more active current user base) than a bird in the bush.  But who knows, they say you should learn a new language every year; at any rate if he’s right maybe I’ll try and pick up Perl 5.0 in around 2012. :)

So there you have it: my potential choices and non-choices. Any thoughts I which I should choose?  Any and all input will be appreciated and considered seriously.

IIS 7.0: Too Little, Too Late?

March 2007 Cover of MSDN Magazine Back in January 2006, I blogged about how much I wanted an IIS 7.0 that handles extensionless URL rewriting. Well this week I just got my March 2007 copy of Microsoft’s MSDN Magazine in which they ran a detailed technical preview of the features and functionality of Internet Information Server 7.0. Reading through it, I found myself salivating over it’s capabilities that I’ve needed for literally a decade. Those who follow some of my other escapades know that the #1 feature I want it to provide over IIS 6.0 and prior is the ability to fully control the URL with our without an extension. Yet, something is different now. Five years ago I would metaphorically have killed for that functionality. Even a few years ago, I wanted it badly. But reading about all the great things in IIS 7.0 today for future availability on server hosting platforms next God-knows-when (i.e. after Longhorn ships *and* most Windows-offering web hosts upgrade) sadly comes across to me as just too little, too late.

Too Little

Too little because Microsoft won’t deliver IIS 7.0 to run on Windows 2003 Server necessitating a costly and in some cases problematic operating system upgrade. This will drastically limit the number of situations in which people can choose to switch to develop for the new features of IIS 7.0. For example, when the funds for operating system upgrades are not in the budget or simply because the developer doesn’t have the corporate clout to convince management of the need to upgrade.  And the only people who will even be able to experiment with IIS 7.0 will be those with Windows Vista. And since upgrading to Vista also requires funds and often new hardware, it is not a foregone conclusion. Consequently there will only be a small percentage of Microsoft-centric developers writing web apps that uses the functionality of IIS 7.0 over the next several years. Given the limitations of IIS 6.0, I just find this scenario to be unacceptable.

Too Late

Too late because Microsoft’s outdated process and slow release cycle, which I blogged about last month, has given rise to compelling alternatives on the Linux platform.  And Apache has has many of the key features that IIS 7.0 provides, most importantly via it’s mod_rewrite functionality, that by the time IIS 7.0 is ready for prime time, there’s a good chance only a tiny percentage of web developers will care. I for one need to develop web apps I can run on web hosts today, not wait around and dream for some yet-to-be-determined future brighter day. Microsoft, the rules have changed and you are not immune. You can no longer schedule product updates years out and expect people to wait to pay you for them years from now when free-to-use open-source alternatives addressing the same need exist today. I can no longer bring myself to design or run a web app on IIS 6.0[1] when the URL management functionality I crave is already available on Apache. And by the time IIS 7.0 is released I doubt I’ll even consider running an IIS server.

Unless…

However Microsoft, there is a solution if you will only listen, which I highly doubt. Microsoft You should know more than any other tech company that your key to success is getting developers to write programs for your platforms. Yet on the web developers are voting with their feet and most new web applications not sponsored by a "You don’t get fired for buying Microsoft" large company IT organization are choosing to build on Linux and Apache.  IIS was once the leading server on the web, but today it can barely eek out more than 1/3rd market share. If you don’t stem this time, things will only get worse. Much worse. Here’s what to do: Release IIS 7.0 as an update for Windows 2003 Server and Windows XP that gets installed automatically via Windows update. Offer it in parallel to IIS 6.0 so it must first be configured by an admin and IIS 6.0 disabled, if necessary. Feel free to restrict it in whatever ways you must given 2003/XP’s lack of Longhorn/Vista infrastructure, but don’t use that as an excuse to eliminate key features such as URL management and HTTP response filtering. Doing this won’t change the minds of those who have already given up on Windows, but it will certainly minimize the profuse bleeding.

Footnotes

  1. Given how much I dislike ASP.NET and how frustrated I am with IIS 6.0, I can’t wait till I find the time to move my blog to another program besides dasBlog.

Help Expose URLs that Suck!

Over on the Well Designed URLs Initiative blog, which is my baby, I’ve started a call-to-action to get people to use delicious to tag:

URLs that Suck!

Check it out, and then be sure to tag any especially bad URLs with the tag urls-that-suck” on delicious.

About “Five Not-So-Easy Steps to Save Microsoft”

Microsoft Fading (from JasonKolb.com)

While I’m not in the habit of link blogging, Jason Kolb blogged a similar take to my recent themes about Microsoft entitled Five Not-So-Easy Steps to Save Microsoft. Jason starts with:

Let me stick a disclaimer on the front of this post: I cut my teeth on Microsoft technology and have been a big supporter of them in the past. I would really like this company to survive because otherwise I’m going to have a lot of useless knowledge cluttering up my brain. However, I am a realist and this is a company in a dangerous situation. It saddens me to see this once great company slowly dying, and I hope they do something to stop the bleeding before it’s too late.

Microsoft is in an interesting situation right now. Their monopoly is fading fast, and the only product they have that’s driving any significant level of buzz is the Xbox 360. They’ve gone from  absolutely dominating the technology space to almost falling out of the cutting-edge technology consciousness. They’ve done very little in the past couple of years to enhance their standing as a leading technology company, and I think a lot of people view them as living in the past.

He continues with (emphasis mine):

I think Microsoft is in a precarious situation right now–it’s on the verge of becoming irrelevant. The reason Microsoft has been so dominant over the past twenty years is because they have not only courted programmers, but they (it) made much easier for programmers to use their technology as a platform than anything(body) else. This resulted in the majority of mainstream software being written for Windows. Which resulted in more people buying Windows, which resulted in more developers writing for Windows. It was a catch-22 in favor of Microsoft, and they made money hand over fist because of it.

That’s what I’ve been saying recently, though my posts came from a slightly different angle. Jason’s take is that operating systems and language no longer matter (emphasis mine):

The result of this software lifecycle shift has been that developing for a mass audience has a lot less to do with the operating system and a lot more to do with the end-user experience. The language and platform no longer matter, it’s just the end result now. In fact, more than which operating system or language is used, it’s now the ability to scale on an as-needed basis that is the primary requirement for applications. Microsoft fails miserably at this requirement because of their licensing model and the way they try to monetize their software, which they haven’t really changed since the 1980’s.  Just from keeping an eye on the Net I sense a mass migration to open source development platforms, and the search trends seem to back that up–as a bonus bad omen, the news volume for their languages is practically non-existant.

While I don’t disagree with his main premise, I don’t completely agree that the language and platform don’t matter; they are still what is used to create and host applications, be they local or on the web, and those things take time to learn and build expertise in. Jason even acknowledges that at the start by saying “…otherwise I’m going to have a lot of useless knowledge cluttering up my brain.”

In my (humble :) opinion, the problem is more in Microsoft’s licensing model which makes it so much easier for people to choose open-source. And I believe people are choosing open-source in droves over Microsoft’s solutions as I know I am starting to. Jason addressed this point in the last paragraph above by saying: “Microsoft fails miserably…because of their licensing model and the way they try to monetize their software, which they haven’t really changed since the 1980’s.

Jason then goes on to recommend the following five (5) “not so easy” steps to fix Microsoft, which I think are spot-on (except for the last one, that’s at the same time both obvious and too vague to be an action item):

  1. Release .NET as open source.
  2. Release Windows as open source.
  3. Release a SaaS version of Office, ASAP.
  4. Find a Steve Jobs clone.
  5. Start innovating again.

Jason of course goes into far more detail and his post is definitely worth a read if you care about these things. Oh, there is one final pull quote I’ll reference on his second step to drive the point home (emphasis mine):

What’s really going to hurt them, however, is the licensing model for the server products. When you compare the cost of running and scaling a Windows-based application versus running and scaling on Linux, it becomes a no-brainer. I can’t think of a single good reason for developing a SaaS application for Windows when you’ll be paying Microsoft licensing fees every time you need to scale, and you could be getting that software for free using Linux. Microsoft needs to consider the operating systems loss leaders and an incredibly powerful way to market their other products, before everyone stops developing for them and everyone stops using them as a result.

Via Ben Coffey.

P.S. I have numerous posts that are in various stages of completion covering some of this same ground from, again, a slightly different angle. But when I finalize and post them, please don’t think them a copy-cat of Jason’s post. :)  This is such an obvious area to discuss these day’s, there are lots of similar independent thoughts, for hopefully obvious reason.

Wrox’s Professional Web 2.0 Programming

Wrox's Professional Web 2.0 Programming BookI’m excited as I just got my express delivery of Wrox’s Professional Web 2.0 Programming by Eric van der Vlist, Danny Ayers, Erik Bruchez, Joe Fawcett, and Alessandro Vernet.  I’m anxious to read it to learn their take on programming for Web 2.0. I first learned of the book when I noticed in my logs that their website http://web2.0thebook.org/ was linking to my Well Designed Urls are Beautiful blog post from last year. I then noticed they had a link to an excerpt from their book with the excerpt being titled: Future-Proofing Your URIs; clearly a topic that I am interested in. What’s more, cracking the book I find they additionally have an entire chapter on HTTP and URIs; excellent! I look forward to reading this and letting you know my impressions.

Footnotes

  1. I finally learned a clear distinction between URIs ("identifiers") and URLs ("locators"). Whereas a URI uniquely identifies a "resource", a URL not only identifies it but also lets you "de-reference" it (i.e. access it and/or download it.)