Wednesday, May 21, 2008

From the Horse's Mouth...

I figured my last blog about him would bring out the best. Sure enough. Here's what Dell Schanze, Libertarian candidate for governor of Utah, left as a comment to my blog post about him:

Ok Adams Daft, who are you going to vote for?? EXACTLY!!! ME!!! No matter how much crap you want to talk about totally false media stories I am the only hope you have as I am the only American on the ballot. I have tons of support as I helped hundreds of thousands of people with the businesses I owned and people know I did what I said I would and went out of my way to take care of them if any issue arrose. I am by far the best candidate and the only one of the ballot worth voting for. Even those that don't like me will still vote for me even if for the mere reason of NOT voting for the other guys. Your ridiculous story is what makes the party look stupid and ununified. The homos in the tootoos rejecting me at the convention are what make the party look stupid. I built the 4th largest system builder in the western US and won the World System Builder Award by over 30%. You should pull your head out and start supporting candidates on the issues and not attacking them because of your personal issues. I am your only hope and it doesn't matter if you like that or not. I'm it. Now quit being an idiot and attacking the only person that WILL stick up for your rights. Dumb Ass!!

No rebuttal needed.

Sunday, April 13, 2008

Competition is Good, even for Java

For about the last decade, a flame-war has existed in the Java camps:
  • Swing vs. SWT
  • Netbeans vs. Eclipse
  • Sun vs. IBM
You seldom read about the advantages of a diverse development ecosystem, and instead, the generalized perception is that competing Java libraries hurts the Java platform as a whole. I tend to take an opposite view; that the inter-Java component competition is a much needed and healthy aspect of the platform and will be the critical element for success in the future.

The following is mostly my own guess as to how things have gone down with the Java platform. I'm guessing that most of what I've written here is seemingly accurate, though undoubtedly there are some mistakes in the timeline and/or motivations of the interested parties. I believe this is close enough to the truth to be acceptable for the point I'm attempting to make.

From a likely naive read of Java history, it seems obvious to me that the competition between companies like IBM and Sun over the Java platform has strengthened the platform as a whole, created new options, more mature APIs, and has eventually lead to the opening of the Java source code by Sun in 2007.

For example, when IBM started to look at Java's AWT (Abstract Window Toolkit) graphic framework, improvements needed to be made to provide better fidelity with the native operating system underneath. AWT was basically judged as unacceptable by IBM for use in the development of its Visual Age IDE. AWT was clunky and lacked many features, and as such, IBM chose to develop its own windowing toolkit which did not rely on AWT and provided for better native OS integration. IBM came out with SWT (Standard Widget Toolkit) which, unlike AWT, had native renderings for the various graphic interface windowing components. SWT was fast and looked native.

Meanwhile, Sun pushed forward on the development of AWT by creating Swing, a light-weight layer sitting atop the AWT framework. With Swing, Java developers would have a very consistent API to developing moderately decent looking graphic user interfaces. Even with Swing though, IBM was not satisfied and was instead seeing great strides being made in its SWT platform, both in terms of functionality and performance. IBM stuck with SWT and Swing development slowed, mostly due to legitimate and fundamental criticisms over Swing (slow, kludgey, non-native rendering). IBM had picked the right horse to bet on, at least for the time being.

Today however, that perspective of the "right horse" is changing. A comparison is being made between the Eclipse and Netbeans IDEs (Integrated Development Environment) developed by IBM and Sun respectively. Netbeans, being based on Swing, has largely suffered from the original criticisms leveled against Swing, while Eclipse has been left rolling on highs as the king of Java development environments.

But recently, Netbeans (mostly because of the strong improvements to Swing) has made extrodinarily amazing gains in performance and functionality and is garnering attention from multiple technology critics, fairing well in comparison to Eclipse. Netbeans is now a viable competitor to Eclipse, possibly about even in developer mindshare. Eclipse vs. Netbeans is now the next Java holy war. Swing, once all but considered dead, is now extremely healthy and alive.

I have recently read a few forum postings and blog postings which say something to the effect that "Sun was right" to stick with Swing and that "IBM was wrong" to keep pushing on SWT. The comparison has primarily come from recent perceived performance problems in the latest versions of Eclipse, as well as the inability for Eclipse to run on all platforms as well as Netbeans. Swing has made significant improvements in the last two major Java versions; at this point, for most applications, it's as good as native applications.

In all this, what seems to be easily forgotten is that IBM was "right" to make the decisions that they did. At the time, AWT/Swing was just not viable. If Sun had been more cooperative with IBM, then perhaps SWT wouldn't exist. SWT has created good competition that Swing has been forced to mature quickly. And, fundamentally this is a good thing!

The competition between IBM and Sun has only pushed Java forward in a positive direction. Another example is the recent open source release of the Java framework. Previously, the Java source code was only available under a fairly restrictive license, but again due to pressure from other competitive sources (IBM, Redhat, Microsoft, Oracle), Sun has gotten all the parties to the table in order to open source Java in a GPL derivative license. The healthy Inter-platform Java competition has again benefited the Java ecosystem as a whole.

Ultimately, my hat goes off to the good folks at both IBM and Sun. I believe it's because of both their efforts (among many countless other organizations not even mentioned here) that Java is truly a fantastic environment to create a whole host of applications. I hope that the lesson learned is that free market values and the competitive spirit does indeed work to create better products. The gift of Java is a great example of this competitive and innovative spirit.

Tuesday, April 8, 2008

Python Wins

It's official... Python is now the official web application language of the future. For many many years, we've had an intense battle for the hearts of the multitudes of web application developers. While the battle is still being fought, and likely many on the battlefield will disagree, the winner is now decisively clear.

Recently, Google announced the creation of an "App Engine," which is a highly scalable web application framework. The App Engine allows developers to plug into Google's infrastructure to provide highly scalable and reliable hosting for the application environment.

Amazon should probably be considered the first mover in this field of usable and scalable developer infrastructure resources, with such services as EC2, S3, etc. Google too has had a strong role in offering APIs and other remote interfaces into their environment.

But, now it's game over. The writing is on the wall. Web hosting providers should know their time has come to an end.

As an extremely small web host and web application programmer, I've enjoyed a steady flow of income hosting websites and small web applications for various businesses. I've hosted on my own dedicated (leased) servers mostly out of necessity. It is much easier to provide custom services on my own platform than trying to use someone else's nickel-and-dime hosting provider. I install the tools I need, get the database running, essentially everything I need is available to do what I need to do quickly.

Awhile ago (a few years?), Google announced their "Google Apps" service (of which the App Engine will be a part), which is a broad set of useful services for businesses, including email hosting (through GMail), documents, calendars, etc. Google Apps allows the use of custom domains, so for example, my adamtaft.com email is routed through Google Apps / GMail. (Works great by the way, which is another future blog posting).

Included in Google Apps is a quite lame web page hosting service, called Google Pages. I checked out the service when it first arrived, and basically came to the realization that it was just a toy for the tweens, not really ready or equipped for a full service website or web application. It reminded me of other free hosting providers, like geocities or the like.

I knew it would happen though... I knew eventually Google would offer a total and complete web application environment such that would be useful under the Google Apps umbrella and provide the missing server side programming traditional of web hosting provides. The App Engine offers 500 MB of storage for free, and apparently 5 million page views per month (how that translates into actual bandwidth, I don't know). The data storage resides on Google's cloud (GFS / BigTable), so you can expect the same scalability and reliability as Google search has itself.

What does all this mean? It means the end is near and that Google will now begin to take a lion's share of web hosting away from small web hosting services. And, because of the fact that the App Engine supports Python (at least for now, likely other languages on the way), it makes a strong case towards knowing and developing future projects in the various Python environments. In fact, Google ships a version of Django (a Python based web application environment) with their App Engine SDK. (note, all python libraries are not available, but most of those which are useful for web application development are)

I've known for a long time I want to be out of the business of actually maintaining the hosting servers; it's a pain for a small guy like myself. So, from my point of view, this is fantastic news. Now I can concentrate on providing actual value added services to my clients (i.e. actual billable hours) instead of constantly needing to work on the maintenance of the infrastructure itself.

Ruby on Rails, Java, .NET, PHP, Perl... These are all great web application environments. I know quite a bit about a few of them (I'm obviously a Java fan boy). But clearly, I have neglected Python for too long now. The wake up call is here. I'm just glad I hear the alarm going off.

Sunday, March 30, 2008

Ogden Fire on Jefferson St.

Early Friday morning at about 5:00am, my wife and I were awakened to a hoard of sirens, both police cars and fire engines. It's not unusual for a police chase to occur in our neighborhood; in fact, we have come to expect the semi-regular sirens and various events as living in Ogden seems to come with certain "privileges." However, this was different; there was much more noticeable emergency response traffic. My wife and I were like "what is going on?"

I get up and look out the front window and notice a few police cars up at the corner. Next I look out the kitchen window on the side of the house, and note that the amount of ambient light is greater than normal for the dark hour. My neighbor's house was lit up differently than it normally would be. "That's weird," I thought to myself. I thought maybe they had installed a new outdoor light.

I follow the light source to see a ridiculously huge blaze, flames reaching a good 3-4 stories in the air, and immediately knew someone's house was on fire. I didn't have my contacts in, so I couldn't make out exactly whose house, but it was close, less than 50 yards. I assumed a close neighbor's house, off the back of our property, that was currently unoccupied.

I hollered at my wife to come and look, then scrambled to put my contacts in, and shoes and coat on. I grabbed the video camera and headed outside. The house in question was not the abandoned one that is closer to our property on the back. It was, instead, one house further up the street.

Tragically, this home was occupied by an elder lady, age 74. We hadn't seen her for awhile, so Jess and I both hoped that the house was empty and that the woman might be living with a relative or in a nursing care facility. With the size of the blaze, there was no chance that anyone could have survived if they hadn't gotten out immediately.

Indeed, after the fire was put out, the fire fighters found the body of the elderly woman living in the house. From the looks of it, apparently she was very close to getting to the front door. She was in a wheel chair, however, and so I assume this likely slowed her exit. The amount of smoke, or so I can imagine, would have been been extremely difficult to deal with if constrained to a wheel chair.

The home is a complete loss. The family of the woman obviously very shocked. Overall, it was a very tragic and unfortunate event that you could only pray to never have happen to you or your loved ones.

So, that's the story. But I have another reason for writing today...

I mentioned that I grabbed my video camera and started filming the blaze from our back yard. I did this originally just of interest to me; I've been trying to video record various novel events just as some sort of family diary. Only after the day had broke and all the news crews arrived that I thought the video might bring value to the news community as whole.

For class, I've been reading the book The World is Flat by Thomas L. Friedman. The short summary of the book is in basically how the walls of global economic barriers are being broken by technologies like the internet. How the world is being "flattened" by various forces allowing a level of human equality, particularly in the competitive global marketplace, to exist that the world has never known.

A good example of the flat world is with regards to the media and the sources of our news. The blogosphere has become an extremely important aspect to our news, enabling any Joe Schmoe to be a self-contained media company and trustworthy news source.

I strongly believe that news in the future will, in fact, have a stronger active community tone to it. Originally, I'm sure the Associated Press was more accepting of independent news journalists. I know independents can still get published, but it's much harder today, and really there has been a lock down in the news distribution channels such that the community feel of local news has more or less gone away. The local news organizations, newspapers and TV, still portray a "local" feel, and I believe they honestly try to represent and serve the community. But, I also believe these local news organizations have seen the writing on the wall and know their time is coming to an end. The new flat world reporters, local bloggers, podcasters and video bloggers, are ultimately going to drive the news of the future.

The only hope I can see is for the traditional news organizations to partner with local bloggers, basically lending their name and distribution networks to the small independent voices. With the potential of so many voices, it becomes as important a role to sort the wheat from the chaff, so to speak. In the future, this will be the role that media companies are relegated to. They are already adept at making these kinds of content decisions, but in the future, the sources of news will originate from the independent blogosphere and not dominantly from their own resource pool.

I thought it would be interesting to see which news stations would use my video in their reports, particularly under my explicit requirement that they give attribution for the video's source. I spoke with the reporters from Fox 13, KSL 5, and KUTV 2, all of them were interested in possibly using the video in their spots. I got their email addresses and sent a link to the video which I had already uploaded to my hosting server. I gave the exact requirement that they must include a small attribution "Courtesy Adam Taft" on or under the video if they decided to use it.

The video was honestly not worth any money. It's not like I could have marketed it in any way. It was just a typical local camcorder recording, shaky and jittery, bad lighting, poorly framed, etc. But, even if it was perfect and I could have sold it, I wouldn't because of my somewhat utopian belief that we should all be responsible for contributing to the local news and that we should never give up the independent voice or leave all our news content in the hands of a select few corporations.

Out of the three news organizations that I sent the video to, only one of them used it in their report. Fox 13 news (our local Fox news affiliate) used a good portion of the video, probably a good 4-5 seconds of it. You can view the report, made by reporter Kirk Yuhnke, here:

http://www.myfoxutah.com/myfox/pages/ContentDetail?contentId=6156896

I was very happy with the outcome of my experiment. It's hard to say why the other two news stations decided not to use the video. Perhaps, since it was shot from the back of the house, it's hard to authenticate that the burning house in the video is the same as the one in the story. Or perhaps, there was concern over the footage being perceived as too violent given the tragedy of the situation. Of course the quality was poor too.

I tend to think, however, that the notion of the flat world might have something to do with it. Fox News in general seems to be more on the "edge" and possibly more accepting of the changing world, while the other two organizations definitely feel more conservative and traditional. Maybe they just don't "get" it.

I wonder if the requirement to give attribution for the video put them off. I hope it did...

I hope it gives them a wake up call that their world is going to quickly change, and that local independent voices are rising up. Either they join us, or we leave them behind.