Archive for August, 2007

Sun about to Supernova? Too much caffeine?

Sunday, August 26th, 2007

No, I’m not talking about the star at center of our planetary nebula. I’m talking about the public company with the NASDAQ stock symbol of SUNW — Sun Microsystems. Well, it was SUNW until this month — someone at Sun seems to think that the ersatz ticker JAVA would be a great way to capture the new and improved Sun.

What could possess a company to change their stock symbol to one of their products? A free product. An aging product. A bloated and slow product. Wow… that’s some great name association. Even if you think Java is the best paradigm to ever roll across the computing landscape, Java is more a sign of the successes of the past than any vision of the future. Either way, it gives me a reason to blog about Java, something I’ve wanted to do for some time – WARNING – short novella ahead.

Listen, I was a full-bore Java developer for about 7 years. I went to three JavaOne conferences, passed my Sun Certified Java Developer certification, started and ran a fairly large Java users group, and lived the Java dream. I was a fan. Big-time.

Java is a great software development language. A wonderful blend of object-oriented characteristics with the C/C++ syntax we all know and love(?). But beyond the language, Java would have died a horrible death in it’s infancy if it wasn’t for it finding it’s niche in the server-side web world. Java in the browser sucked (it still does). Java as a fat-client sucked (it still does). Cross-platform is still a nightmarish pipe-dream that never attained it’s hype. At Java inception, the browser and cross-platform were the mantras of the Sun marketing machine. We were going to all live the “Network is the Machine” fantasy. Yet, if it wasn’t for the mighty servlet, Java probably would have never survived those heady dot com days.

Java’s success was the relatively simple and easy way developers could build web applications. Our only other tools our disposal were C/C++ CGI apps and Perl CGI scripts. Servlets and JDBC rocked (and still do)! I could build database-enabled web applications with two simple frameworks in a powerful object-oriented language. More on the fall from web application grace in a moment…

So where are we now? Sun never gave up on Java on the client (well, really, they did, even though the marketing machine hasn’t). While the VM has gotten faster, garbage-collection is less annoying than it used to be, and the abysmal AWT has been superceded with the slightly less abysmal Swing, the desktop is still pretty much hands off. Java’s UI is still too slow and unresponsive while providing a horrible user experience compared to native APIs for building full-blown fat client applications. Sun always said that faster hardware would solve the problem of performance… it didn’t. People like native-feeling, responsive fat-client apps. The handful which have found some success are generally development tools – such as Eclipse and database tools.

To be honest, I think Eclipse sucks – and that’s even with them throwing out the cross-platform Java UI layer and using a proprietary / native replacement. I haven’t found any honest developer who admits to liking it except for those with some vested monetary gain from it’s success. I couldn’t imagine ever choosing Eclipse over Visual Studio, Xcode or even a powerful text editor like TextMate. The only reason Eclipse exists is that it’s pretty much the only Java IDE left in existence and it’s backed by the corporate establishment (IBM, Bea, etc). The same establishment sees Eclipse as a platform for building a bunch of mediocre enterprise business applications. If I was to do Java development, I’d choose TextMate in a heartbeat. Database tools have found success primarily due to JDBC and the proliferation of datbase drivers for pretty much every database. JDBC really is good – I’m a fan.

In the browser, the once hyped applet can barely be found – it’s only success found in the backstreet bars and hangouts of the casual gamer – even there, usually as the old, ugly sister of the Flash game. Fresh and exciting technologies like Air and Silverlight are on the horizon, so even this small cranny will be rooted out shortly.

If the desktop is dead to Java, did Java find any other markets? Sun came up with the idea of fracturing Java into three schizophrenic personalities – J2EE (Enterprise – aka, server-side), J2SE (the standard, core language and libraries), and J2ME (the mobile edition). I already mentioned the server-side and what was to to become J2EE, which I’ll speak more to in a moment. Sun found a small star in the burgeoning mobile phone space (and set-top boxes) and J2ME. The somewhat heterogenous hardware used in the mobile market along with the need for a simple, ubiquitous development platform created an opening for Java. Sun has definitely made some headway here. Unfortunately, the same negatives that apply to the desktop generally apply to the mobile space, except compounded by the limited computing resources. As a user, I would much prefer a native application – be it C/C++/Brew or native development on Palm, Symbian, etc.

Desktop – dead. Mobile – dying. Where does that leave Java? The saving grace of Java – the back-end, right? From the amazing servlet was born Java’s saving grace. Well, the servlet, along with a great language and JDBC. As I mentioned before, JDBC still rocks. Oh how I wish something like JDBC existed for the Mac & Obj-C/Cocoa development. ODBC need not apply. Sun, seeing the potential of the server-side web market immediately put it’s best minds together to build light-weight, powerful, easy-to-use frameworks and libraries to empower the developers of the world to build amazing web applications, right? Uh, no. Sun formed big committees to build the most cumbersome and complex frameworks and libraries known to man. The abomination known as the EJB was invented. Knee-jerk reactions to VB and ASP’s bore forth the unmaintainable JSP. Lack of vision and good frameworks led to an unending line of complex frameworks to make web development “easier”, like Struts. Bloat. Ugliness. Complexity. Design by committee.

What does complexity and bloat demand? Complexity and bloat require huge, expensive tools and expensive appication server software running on expensive hardware. What do expensive tools, expensive application server software require? Expensive consulting services. The waters were chummed with the blood of the developers – in come the sharks – IBM, Bea and the mentally-challenged cousin, Sun. I can’t put it any more succintly than this: The death of Java can and will be traced to the lack of vision by Sun which caused the bastard J2EE specification, which begat the greed-induced IBM (and Bea) to further push J2EE down this self-serving path of destruction to the tune of millions of dollars in software, servers, and consulting services. While Sun can be blamed with it’s inception, I think IBM really is most to blame. Everyone thought IBM was the friendly, open-source steward – the friend of Java developers of everywhere. No, they were the giant mosquito, sucking the life-blood from the software developer. The IBM marketing machine sold it’s products and services to the easily influenced middle-management and executives of big corporations, and the developers suffered. A book could be written on this performance. I don’t have the stamina. It’s too frustrating. I spent my years in an IBM shop as the the executives were wined, dined (and sent on golf boondoggles) – bringing back their mandates of expensive applications application servers, messaging middleware, security products, workflow, and the unending list of tack-ons that were supposed to make the Java developer’s life better. When they didn’t, IBM was sitting at the ready to send in their expert $200/hr services staff in to pick up the pieces. All the time, the developers in the trenches being labeled by IBM marketing as incompetent for not being able to piece to together the staggering array of half-baked technologies. Don’t you just want outsource your entire development organization to IBM? You might as well outsource your security and infrastructure departments as well, because they’re about as screwed as the developers are.

Ok, so I’m bitter. A couple deep breaths and I’ll be ok.

Where does that leave Java? Java is becoming today’s Cobol – a once powerful, useful, heavily used, and very mature product — reaching it’s twilight years. The biggest difference is that Java doesn’t make you’re eyes bleed like Cobol does (although the J2EE specification and the vendor greedware does).

Due to some fast-footedness over the last couple years in the complete overhaul of J2EE and more community (developer) involvment, Java has probably been yanked from the precipice of utter and complete developer rebellion that was inevitable with it’s prior direction. Even still, I can’t think of anyone who would want to start a Java project these days except for the slow, bureaucratic enterprise shops filled with a cadre of Java engineers (or offshore developers) and a bunch of IBM management/executive whores (sorry). Not many developers would choose to be subjected to the machine of IBM and the sludge of even the improved J2EE. While Java may still be the most “employable” language currently and will likely remain there for a long time, notice that Cobol is still in the top 20 as well. Plus, many of the best minds have already jumped ship and those who haven’t have been reduced to being the slaves of the corporate establishment. When scripting languages such as Ruby and Python are considered the best thing since sliced bread (and the answer to the J2EE greedware hegemony), you know the ship has sailed. (NOTE: I have nothing against Python and Ruby (or even PHP) – I think they’re cool – but they are still high-level scripting languages with the consequences that they entail. It’s proponents excuse these shortcomings in much the way Sun excused Java’s shortcomings in it’s infancy. Shortcomings for which it hasn’t overcome. Someday we’ll make the transition to a higher level language, just as we evolved from assembly to C/C++/etc, I just don’t think we’re there yet. That doesn’t reduce the usefulness of these scripting languages – they just can’t be the near-ubiquitous replacement language such as C, C++ or even Java).

So, I think there is some maximum blog length I need to be aware of. I still love Java the language. Personally, I would rather use Java (the language) than practically any other. If I could use it with native UI frameworks (i.e. Cocoa), compile to binary executables with a limited / fast runtime environment, and blessed with a set of new lightweight / powerful libraries for the web, XML, and higher-level database access, I would be in heaven. Until this nirvana occurs, I’m going to be using C++ or Obj-C for fat-client applications and Ruby or PHP for web development. I’m not fond of the hybrid bastardizations of fat / thin, so I don’t have to worry about making the decision between all the proprietary options in that space – Silverlight, Flash, Air.

Like most anything in this industry, when something becomes a stooge of big businessess, the writing is on the wall. Coming full-circle, why would a company want to associate itself with a spent has-been and make such a boneheaded move? The only conclusion I can come up with is they want to ride into the sunset with former greats like Commodore, SGI, and Pets dot com.

Bioshock in ur computer, powning your root…

Saturday, August 25th, 2007

Sony didn’t want Microsoft to have all the fun… Holy bad move. Can Sony sink any further? I mean, we haven’t even gotten over the last rootkit fiasco. What is it with all the customer hating? I mean, you would think that some of these corporations would rather not have to deal with customers at all…

UPDATE: So, it appears that it might not be a rootkit after all, just some hidden, ill-named registry entries. Even if it isn’t, I’m tired of purchased software wanting to hide stuff on my computer and draconian DRM schemes. If they had nothing to hide, they probably would not have hidden it in the first place. A maximum of 5 activations allowed during it’s entire lifetime?

Dented Cars…

Saturday, August 25th, 2007

I’ve never been a huge fan of game consoles. As soon as I found my way from the Atari 2600 & 5200 to my first computer (the Atari 800XL – a 5200 with a keyboard), it’s pretty much been a computer world for me (and therefore, a computer gaming world). While working at EA, it was pretty much required to have a game console. A PS2 found itself sitting beside my TV. While briefly entertaining, the PS2 generally collected dust compared to the relative time spent gaming on the computers. That stated, one title made the investment worthwhile and gave the computer a run a for it’s money. The title? Gran Turismo 3. Never have I found a game outside of RPGs and MMOs as captivating. From tweaking my Honda S2000 to my 1000hp Viper, I was addicted.

Time is limited in life. I already have too many distractions as it is — generally all things computer-related and the massive time sink known as the MMO. I gave up the MMO habit recently (let’s see how long it lasts *this* time). Even so, I still haven’t found game consoles compelling enough to fork over the bucks, and more importantly, spend my limited free-time budget. I always feel like I should be reading more, playing with Davis more, coding more, etc.

My brother has a Wii – I played it for a short amount of time – it was a blast. It would be a great social / party game system. Everyone in the family can have fun. I just don’t think the limited game selection, the sorely underpowered hardware, or the fun but gimmicky controllers would make it worth it for me. The Xbox 360, which one of my co-workers has been encouraging me to purchase for quite some time, has always seemed like a solid box. Strong hardware, good game selection. I just haven’t had anything to push me over the edge to commit to purchasing. The PS3, while obviously enclosing some powerful goods inside it’s plastic case, has had it’s own share of shortcomings – high price and a dearth of strong games. My boss enjoys his, playing the computer-like RPG Oblivion. As often is the case, games that are released on multiple consoles end up with least-common-denominator graphics and console support. So, however cool the PS3 hardware is, it’s unlikely that anything that is multi-platform is going to be much different between the PS3 and the Xbox. Worse, the report that the recent Madden actually performs better on the 360 isn’t promising (likely due to the complexity of the PS3 hardware and the better and/or better known development tools for the Xbox).

If there was one thing that might convince me to buy another game console, it would have to be a new generation of my all-time favorite console game. One of the biggest weaknesses of GT3 was the lack of visible car damage. Hit a wall at a 100mph, bounce off, keep going. The only real noticeable issue was the loss of speed. It was recently revealed that the newest installment of GT (and the first true release of GT for the PS3) will include visible car damage. Supposedly, in the past, the licensing of the cars for use in the game didn’t allow them to show them damaged. Guess BMW didn’t want to see its’ cars all banged up.

Unfortunately, as Sony has always done with the GT franchise, they are jurasically slow in releasing Gran Turismo to the masses. GT5 should have been the headliner game for the release of the PS3. Instead, we’re now being told 2008. No wonder the PS3 has seen such sluggish sales.

Good thing anyway… I’ve got some coding to do…

It’s fun to be a Microsoft hater…

Saturday, August 25th, 2007

You know, you can’t make this stuff up. Microsoft foisted its “Windows Genuine Advantage” on the world in July 2005. It was a mandatory “Advantage”. You didn’t get a choice. You became one of Microsoft’s untrusted customers.

What was this great “Advantage”? The right to use your Windows software and continue to get updates to the bug-riddled software that you likely paid a lot of money for. They wanted to make sure you weren’t pirating their software – or using their software in ways that they didn’t deem appropriate – like installing Windows XP on a second computer after your Dell died – you know, that’s stealing per the Microsoft Windows OEM license. Seriously.

So what does this wonderfully named tool do? It phones home to Microsoft servers when it feels like it needs to validate that your computer is “legitimate” and deserves to run their software (like daily). It tells Microsoft about your computer’s make, model, hard drive serial number, etc. They really could put whatever they want in there since they have sued the living daylights out of anyone trying to crack it open under the equally wonderful DMCA (better known as the Destroy all of My Constitutional freedoms Act). Also, like most Microsoft software, it’s a piece of junk that has a false positive rate of near 22%.

Well, this horrible abomination went on the fritz this week. If you are one of the unlucky folks who just tried to install (and validate) your install – uhh, bad news. Your copy is pirated. Yeah, I know you just bought it at Best Buy. What about updating to Windows Media Player 11? Sorry. Need to install IE7? No dice. Eaten up with viruses and spyware (and what Windows OS isn’t?) and need to download Windows Defender? Nope. It ain’t happening – since all of those require a WGA check before they’ll let you proceed.

Microsoft is telling it’s customers to try again on August 28. If they get it up by then, that’s at least a 3 day outage.

So, lessons learned… Of course, if your machine has already been marked as tainted, I’m pretty sure a full reinstall is in your near future.

1. Don’t buy anything from Microsoft.

2. Don’t use anything from Microsoft.

3. Feel free to instruct those that do on the wonderful alternatives available (Mac OS X, Linux, OpenOffice, iWork, etc).

And because I’m a caring soul – if you are using a Microsoft OS product or Office product, I would suggest not installing or updating it for a few days, otherwise you may be in a world of hurt.

Yes, I still have Microsoft Office on my Mac… but considering how much I’m liking iWork, it’s probably not long for this world.

UPDATE: Microsoft has apparently gotten things straightened out for now.

62 years ago…

Monday, August 6th, 2007

August 6, 1945…

“Little Boy” fell from it’s nest in the B-29 towards the city below – Hiroshima. 57 seconds later, 70,000 people died instantaneously. Another 70,000 would die within 5 months from raditation poisoning and other injuries. A similar number would experience the same fate 3 days later in Nagasaki. So, over 150,000 dead within 3 days, another 150,000 doomed to death, and hundreds of thousand wounded. For all the detail one could ever imagine on the events of that fateful week (with sources), check out the Wikipedia article.

After my previous blog entry about war and deterrence, I found it very interesting that we were urged to pursue development of the atomic arsenal by scientists fleeing from Nazi Germany and whom worried about the implications of Hitler armed with a nuclear weapon. Also interesting that most of the people involved in the Manhattan Project as it was known regreted their participation after the weapons were put to use, including the actual inventor, J. Robert Oppenheimer.

This Wired story does an excellent job of summing up the event and it’s debate. It’s so apparent how much controversy surrounds the use of nuclear weapons against Japan. I grew up with the impression that it was to save the lives of American soldiers who would have been required to fight the ground war on Japanese soil. As history reflects (for those willing to see the truth), this wasn’t the only reason (or maybe even the primary reason) for the flight of the Enola Gay and the less known “Bockscar”. Yes, we firebombed Tokyo to the detriment of 72,000 unfortunate souls over a month period earlier in the year. But the dropping of these two bombs were much more than that – they were a clear sign – a sign to the Russians, a sign to the world. The Japanese were already defeated and starving. They couldn’t muster the type of response that occurred in Okinawa (where nearly 50,000 American soldiers were killed), which was sold to the American people as the reason for such overwhelming force.

Yes, Hirohito was a moron who was more concerned about his imperial power than the lives of his people. Yes, Hirohito could have likely kept these bombs from being used at all if he had acquiesced to the Potsdam Declaration. But did we need to drop not one, but TWO bombs on primarily civilian targets? The Target Committee purposefully chose civilian targets due to the psychological effects it would provide to both Japan and the world. Neither of these cities had received substantial conventional bombing during the war. Amazingly, the death and destruction in Nagasaki was severely reduced as the bomb missed it’s target by nearly 2 miles, exploding in a valley that protected much of the city. A couple years back I read a whole story about how leaflets were dropped to the citizens of Japan preparing them for the death and destruction that were heading their direction, and urging them to surrender. Nagasaki didn’t receive their leaflets until August 10th. One day after “Fat Man” dropped from the B-29 named Bockscar.

It makes me realize that what goes on today isn’t all that new. The government (and every body of power) has always used propaganda and/or manipulation and denial of information to mold history. Just as the war on Iraq a four years ago was nearly universally supported based on the information provided to the common man, yet today, is only supported by a blind few. Anyway, fortunately for Japan, Hirohito was smart enough to see the writing on the wall before the U.S. dropped another nuclear bomb in August, two in September, and two more in October, as planned.

It also poses the question: Can we invent deterrents to war without actually using them?

Happy, Shiny, War….

Saturday, August 4th, 2007

While I’m all for cool technology – and the idea of an unmanned fighter jet sounds pretty amazing, the revelation that we may actually be within a decade of seeing human fighter pilots completely replaced by our robotic brethren has given me a moment of queasiness. I mean, who couldn’t think that this thing isn’t cool?

This sounds like a win-win right? We can utterly destroy anyone in the world without endangering our own soldiers. That’s power. That’s domination. If your anti-war and anti-imperialism (like myself), you can even justify it as a deterrent. Who would think of fighting us who didn’t have similar technology? (If the similarities to the nuclear arms race aren’t ringing bells…)

Yet, isn’t it unnerving to think that a human being isn’t in the pilot’s seat making life altering decisions? We’ve already eliminated some of the “humanity” of war by allowing pilots (and ship captains, and missile launching silo operators) to press a button and release death and destruction without any thought of the receiving end. Shoot, the invention of the rifle could be considered no different. I mean, as soon as you weren’t staring your enemy in the face at the end of a sword, didn’t we lose some sense of understanding of death and the consequences of one’s actions? Isn’t this just an extension?

Maybe. But it might be an extension of something we never should have pursued in the first place. The brutal nature of war is almost unknown in the United States. It’s not like Europe, who has experienced war in their own streets at least a couple times each century for as long as the history books notate. It’s certainly not like the Middle East, which is experiencing it now. The closest we have is a fairly isolated event here or there that barely scratches the surface from a historical perspective (Pearl Harbor and 9/11). I’m not trying to lessen the impact of those two events. But they were two individual events that each lasted a few hours – during a time period of one hundred years. Many countries in the world experience this on a daily basis… for months on end…

So, the world wonders how we allow our government to run roughshod over the globe while we seem to be much more concerned about Paris Hilton’s DUI conviction or Nichole Ritchie’s baby. We have been isolated from the pain and suffering. We certainly don’t experience it ourselves. We rarely even see it. The only true pain that American society feels is the loss of the American soldier. While we’ve suffered loss in Iraq, that loss pales in comparison to earlier wars. What if we could rid this one last pain from the American psyche?

Why do you think the U.S. government suppressed pictures of the destruction at Nagasaki and Hiroshima? Why do you think the U.S. government has pretty much banned the press from any military action except under controlled (sanitized) conditions? Why does the U.S. government censor any footage of flag robed coffins being unloaded from Air Force planes?

Being a nerd, I’m reminded of a Star Trek episode: “A Taste of Armageddon”. In the episode, Captain Kirk finds two societies who are at “war”. Only, this war takes place completely on computer. Each virtual attack claims lives, and those people must then report to futuristic gas chambers to be exterminated. The idea being that this form of war was more civil and clean and didn’t require the destruction of infrastructure and such – it was sterilized – and more acceptable. Kirk and Spock (abandoning the prime directive for the umpteenth time) destroy the war machine and force the two societies to confront the ugliness of war – who decide that war isn’t the best way to deal with their differences. Funny, this episode aired in 1967. Lot’s of interesting things going on in those days.

Ok, so the episode is a bit silly… but think of it – if you not only removed the destruction of infrastructure, but any loss of lives (on our side) from the equation of war. The people of the nation could be completely hidden from the grotesque ugliness of war. The death. The destruction. The injured. The orphaned. The war crimes. The raped. The tortured. The murdered.

But can we afford not to invent such a weapon of war? What if the other side gets it and we don’t? Wasn’t this what drove us to explore space and pursue the nuclear bomb?

A moral conundrum. I don’t know the answer. I wish I didn’t have the question to begin with, but that’s life. I do know that we as a society shouldn’t let our government pretend that war can be anything but horrific – and certainly shouldn’t allow a policy to exist to hide it from it’s people. As soon as we remove the humanity from war, we no longer can distinguish ourselves as a good and just society.

Data Smorgasbord

Saturday, August 4th, 2007

My day job is often spent managing the presentation of data. Whether it’s managing developers working a multi-million line data export for a customer or creating a spreadsheet of cost analysis on a proposed system, the presentation of data is integral to my day-to-day life. I’m not sure if I could reflect upon a job where this hasn’t been a key part of what I do. Even when working at EA (yeah, “It’s in the Game”), presentation of statistical analysis of player online usage data or general project management required a level of skill in this arena.

I’ve always prided myself on my ability of translating data into a format that can be easily understood while still projecting a dense level of information. Whether I’m truly any good at the task is anyone’s guess, but I do like lots of colors… particularly pastels!

Anyway, my tool of choice is Microsoft Excel. A sometimes rather annoying tool actually – especially when working with large datasets (the nasty 64K line limit in Excel is pretty aggravating). Yeah – I own some “professional” tools – like Stata among others… but I’m not a statistician – and these tools are more about analysis than visualization. For day-to-day work, it’s the good old spreadsheet. The potrayal of data is relegated pretty much to two forms – tables and graphs. Tables can be pretty amazing – especially with colorization, font usage, and creative use of borders – to focus the eye and bring important summary information to the front while still leaving the good backing detail available for those interested. I rarely find a traditional reporting tool that can generate reports that I can’t improve upon inside of Excel.

Yes, I’m very fond of my spreadsheets. Unfortunately, not all data can be easily visualized inside of a spreadsheet (or the basic pie and bar graphs it can generate). The problem with data visualization beyond the simple matrix is that it seems to require massive amounts of manual effort or rather exorbitant amounts of computing power.

This week I was directed to an amazing list of data visualization techniques provided by Smashing Magazine. Many of these data visualization approaches are very tailored to a very narrow scope of data and aren’t very useful except in that field. Even so, it’s amazing some of the creative ways that people have found to visualize data.

One of those listed was from a talk at the TED conference by Hans Rosling – this guy is amazing. While his presentation used rather well-known data visualization techniques, these graphs and charts were on steroids. Interestingly, the software he helped create to generate these data visualizations, Trendalyzer, was purchased by Google in March of 2007.

As computing power increases and the access to data grows logarithmically due to the Internet, the next big hurdle and advancements will be in software and services that provides access to all of this wonderful data. Google’s acquisition of Trendalyzer validates this notion. I wish I was more of an idea man – this is defintely going to be a hot field in the future. Unfortunately, I’m more of the implementer type…