Monday, April 20, 2009

Oracle Acquires Sun

Wow, I did not see this one coming at all. My initial reaction is that it is a good strategic acquisition for Oracle, bad for MySQL, and ok for Java. I have concerns about NetBeans and GlassFish though. As for Java, with Apache Software Foundation, Eclipse Foundation, and the open source momentum Java has, I think everything Java will be fine.

Sunday, April 19, 2009

Steaming Video Steps up the Game

Just a few days ago, YouTube announced af few deals with Sony, Universal, and is in talks with other content providers. They just opened their Shows and Movies capabilities this weekend. I just watched two indie movies, "10 mph - Seattle to Boston" and "Electric Purgatory", on it and am impressed. I think they just stepped up their game with Hulu. "YouTube boosts full-length movies, TV show lineup"

I can't wait for the premium music site, Vevo, that YouTube is creating with Universal. This will be disruption to the music video business. I got into Hulu the 1st of January of this year and never looked back. Hulu has changed the way I view TV shows. YouTube just made the field of streaming video all more interesting.

Wednesday, April 08, 2009

Google AppEngine now with Java!

I have been waiting for this announcement since Google released AppEngine. The App Engine Java Overview is a good starting point. Based on an initial skimming of the site, it looks like Google has got a winner with Java support.

Google AppEngine support for Java includes servlets, JSPs, Eclipse, Groovy and more. For persistence it support Java Data Objects (JDO) and Java Persistence API (JPA) as interfaces to BigTable. For more info see the Getting Started:Java page.

Sunday, March 29, 2009

Data Preservation and Ancient Egypt

Do you have all those old floppy disks, CDRWs, or obsolete mass storage devices (Bernoulli, Zip100, Zip250, etc.) laying around somewhere with no devices to access them? If you have been involved in computing for more than 15-years, then you probably do. There is an interesting posting about how the Egyptians and ancients got it right. "Data Preservation and How Ancient Egypt Got it Right".

This has been a problem I have experienced in the past 15-years. Every new digital format means converting of translating all your archived data from one digital format to the next. Whether it is in a database, compressed files, obsolete file formats, or other it is a problem. I recently experienced this looking for a EasyCASE model of an application that was developed in the mid 1990s.

To my surprise, finding the model in the configuration management system was a challenge. Then finding the valid license keys for the EasyCASE software took a few days. This is only for modeling information that is slightly older than 10-years.

Data presevation and archaeology of our digital information is going worsen and become a challenge in the next few decades.

Saturday, March 28, 2009

Java, IBM, and Sun

An article about IBM purchasing Sun written in 2002 is surprisingly relevant to today's current news. "When Will IBM Buy Sun?" published in April 2002 identified all the reasons why it made good strategic sense for IBM back then. The bottom line, it is all about Java. Just as analysts and bloggers today are debating.

On the surface level, it makes sense. Sun is figuring out how to monetize its Java technology and IBM is monetizing its Java quite well. IBM has been on an acquisition spree these past few years adding to its portfolio making some very strategic and sometimes unexpected purchases (i.e. Telelogic, Cognos). Will IBM do it in 2009? We will know later this year.

Wednesday, March 25, 2009

Disruption in the Gaming World, OnLive

The game console war between PS3, Xbox360, and Wii may have been disrupted. OnLive, is a new on-line gaming business model that is seven years in the making! The article, "OnLive could threaten XBox360, PS3, and Wii", describes the new player. OnLive is created by WebTV founder, Steve Perlman and former EIDOS CEO Mike McGarvey. So it has some heavy hitters behind it and has gained interest from EA, Ubisoft, Atari, and others.

OnLive uses the cloud/web delivery model. It works on any internet capable device. Currently supporting PCs, Macs, and web enabled TVs. Impressive! This one to watch. OnLive just may be a game changer if it can deliver on its promises.

Friday, March 06, 2009

Software Wars

This is a great visualization of the Software Wars where the Empire of Microsoft is at war with Everyone. It provides a really nice view of the many fronts and players in the software universe over the past 11 years (since 1998). Here is the most current map. It is really interesting to compare this to the first map back in March 1998.

Wednesday, March 04, 2009

MVC Web Frameworks and .NET in 2009

MS just released ASP.NET MVC RC2 yesterday which requires .NET 3.5 SP1. I can now see a dependency between the two. This stuff is still not entirely stable yet. This is in contrast to how Java MVC frameworks are not necessarily dependent on JDK updates. So it appears that ASP.NET MVC and the .NET 3.5 framework are co-dependent. This is not a good thing for stability and is bit on the accidental-edge. From where I sit, it looks like MS is back to its usual tactics with using the underlying framework (or OS, or API, or whatever) to remain in the drivers seat. It looks like ASP.NET MVC is driving the change to the .NET 3.5 framework.

Note: .NET 3.5 was released in Nov2007. .NET 3.5 SP1 was released in Nov2008.

The Microsoft Entity Framework, aka ADO.NET Entity Framework, implements the Model aspect of ASP.NET MVC and is tightly coupled to .NET 3.5 SP1. Based on a few blogs, it appears that MS is having problems with their MVC implementation “Testers give Microsoft’s Entity Framework a no-confidence vote” as late as June 2008. Here we are in March 2009 after 9-months and it is still an evolving work in progress.

In contrast, MVC webapp frameworks in Java (since 2000) and many Web2.0 languages (PHP, Ruby) have been around for years.

ASP.NET MVC is still trying to get out of the gates. Looks like Microsoft came to MVC party after the cleanup was done. At least they showed up. I recall looking for MVC webapp frameworks for .NET back in 2005-2006 and found nothing at the time.

Saturday, February 21, 2009

Google Ocean

The folks at Google just keep innovating. They recently added bathymetric information and visualization to Google Earth. This is very cool. You can now see the terrain and contours of the Earth's oceans. In Google Earth 5, they have also enhanced the layering capabilities which is very impressive.

Friday, January 30, 2009

Source Code Analysis and Metrics

While researching tools, I stumbled upon a tool, Understand 2.0 http://www.scitools.com/products/understand/ which provides an impressive set of capabilities and source code visualizations, is multi-lingual and multi-platform.

The required critical capabilities are

Driving Factors

  • The tasks of static and dynamic code analysis, architecture recovery and visualization (from the code), code structural analysis, extracting other metrics (cyclomatic complexity, maintainability, other measurements defined by SEI) is an important part of a lot of projects.
  • Frequently one tool would not cover all needs (and languages) and we normally deal with a combination of several tools both commercial and free/opensource

List of tools that researched (not an exhaustive list, just a compilation after about a day's worth of researching)

Commercial

  • Coverity (multi-lingual))
  • JHawk (Java)
  • Lattix (.NET)
  • NDepend (.NET)
  • PC-Lint
  • Rational Software Architect (multi-lingual) -built-in capabilities. (Eclipse based)
  • Understand (multi-lingual)
  • Visual Studio (multi-lingual) - built-in capabilities, plugins.

Free/Open source

The bottom line is that source code analysis/metrics tools are plentiful in both the commerical and open source markets. You have to define what your requirements are, do the necessary research to devise a solution set of tools and techniques, and then resolve your problem.

Monday, December 22, 2008

CMMI or Agile

I currently work in a CMMI Level 3 environment, have worked in Agile environments, and continuously experiment and apply agile techniques that work.  I was happy to see that SEI has published an initial document last month, "CMMI or Agile: Why Not Embrace Both!", that addresses the diverging software engineering viewpoints that has festered in the past 5-years.  This article draws a line in the sand and makes the first step towards legitimizing  the pros/cons and benefits of both approaches.  This is a must read article for any serious CMMI or Agile manager, practitioner, architects, developers, software engineer, coder, programmer, or anyone that is affected by CMMI and Agile techniques.

There are elements of CMMI which I think are necessary for software projects and there are approaches in Agile that solve real world software engineering problems.  This initial SEI published article calls on both the CMMI zealots and Agile practitioners (agilistas) to unite and resolve their differences in order to maintain a healthy software engineering discipline.

I exist in the middle of this software engineering culture clash.  Now, is the time for unity, change, and forward progress in both the CMMI and Agile camps to create something better for the future of software engineering.  It is time to roll up the sleeves and have a meeting of the minds.  We are all on the same team, it is just a matter of accepting this fact and improving everything we do.

Saturday, November 29, 2008

Netbooks and portability

I purchased my first Netbook. After reviewing the various types, I settled on the Acer Aspire One Linux version which has no moving parts. Hard drives are SSD and flash memory based. Based on my initial first day of using it, I will have to say that it lives up to all that is promised for this new form factor.

I like the portability, features, and performance. It boots up in about 5 seconds, and takes about another 10 seconds to initialize my WiFi connection. Carrying around my netbook is like carrying around one of those DayTimer organizers. Remember those days?

For the portability factor, Netbooks are definitely useful. Carrying around a 2 pound Netbook vice a 5 pound notebook computer (MacBook or PC) is a significant usability enhancement. We will see how it holds up. Initially though, having Linux, Firefox, and OpenOffice in a very portable form factor is actually pretty cool.

I am impressed with the Acer Aspire One's looks, esthetics, fit, finish, and usability. The keyboard is almost full size which is surprising and feels good. I am using it now to write this blog entry. My first impression is that this is a very high quality product that just works. Reminds me of my MacBook.

Saturday, October 25, 2008

Visualization of the 2009 U.S. National Budget

Given that it is an election year, our economy is not doing well, and the federal budget is in the red, this visualization, WallStats Death and Taxes 2009, that summarizes the entire U.S. Federal budget is really impressive. It is an example of a great visualization for a very complex set of information. WallStats.com provides this visualzation and you can buy a poster of it. I really like the online Flash interactive visualization.

Sunday, October 19, 2008

Software Tools for a Third Grader

My son is in third grade. He started getting into building virtual models in the Sims game on the Wii and RollerCoaster Tycoon on the PC in first and second grade. I wish I had this stuff when I was a kid. I got into building models (the old fashion way with plastic and epoxy glue) around the same age. Times have certainly changed.

Now back to the virtual modeling. These virtual simulation games are a creative, entertainment, and learning outlet for him. I noticed that he is starting to get to a point in his young developing mind where creating more complex models, learning about science, math, and other things in life is consuming his curiosity. So I thought to myself, why not get him interested in beginning software development and see if he would be interested in that. I found this really good beginning programming language, Scratch, that was developed out of MIT and is targeted for kids that are at least 8-years old.

Scratch is a programming language that makes it easy to create your own interactive stories, animations, games, music, and art -- and share your creations on the web. Scratch is designed to help young people (ages 8 and up) develop 21st century learning skills. As they create Scratch projects, young people learn important mathematical and computational ideas, while also gaining a deeper understanding of the process of design

I test drove Scratch and then introduced my son to Scratch. It is like building software by using a Lego building blocks metaphor. Visually, you actually put pieces of software building blocks together that have shapes and colors. The shapes and colors represent a specific type of software component. (i.e., a looping construct is shaped similar to the letter 'C' where you place the loop's internal logic within the bounds of the 'C' shape.).

The Scratch tool is available for free and the associated web site allows you to publish your creations so they can be shared with anyone that has web access. Anyway, for any kid or young person that is interested in building models (physical or virtual), Scratch is another tool that may be of use. It works on Windows and the Mac. The most interesting aspect of Scratch is that it supports and encourages development of 21st century skills. It is not just for kids but for anyone that is interested in a new paradigm for developing software. It must be great to be a kid today. The best I can do is think like a kid and always keep that child-like curiosity. Everyone wants to be a kid at heart.

Monday, September 01, 2008

Google Chrome

I get the feeling that the gravity around Google is increasing in 2008. With everything Google has done in 2008, it just announced Chrome, A fresh take on the browser. There is a comic that provides an explanation of what Google Chrome is and why it was developed.

Google Chrome has the potential to be extremely disruptive to the web browser and web application space. It is not based on Mozilla and is a unique fresh start for a web browser that is optimized for Javascript. It uses a Javascript virtual machine engine called V8, is multi-process/multithreaded, implements virtualization internally, optimized with Gears, and uses the WebKit rendering engine. The comic explains it all. For best level of detail, reading the comic is highly recommended.

They are releasing the new browser to the world tomorrow as open source. Tomorrow will be interesting. I plan to download Chrome and give it's Javascript V8 rendering engine a test drive.

Thursday, August 21, 2008

Google Protocol Buffers - Kind of Like the Glue for Data Streams in the Cloud

This is something new and interesting from Google, Protocol Buffers. Here is the overview of what this technology is:

Protocol buffers are Google's language-neutral, platform-neutral, extensible mechanism for serializing structured data – think XML, but smaller, faster, and simpler. You define how you want your data to be structured once, then you can use special generated source code to easily write and read your structured data to and from a variety of data streams and using a variety of languages – Java, C++, or Python.

For more information read the Protocol Buffers Overview page. Why not just use XML? Here are some compelling reasons to consider Protocol Buffers instead of XML:

Protocol buffers have many advantages over XML for serializing structured data. Protocol buffers:

  • are simpler
  • are 3 to 10 times smaller
  • are 20 to 100 times faster
  • are less ambiguous
  • generate data access classes that are easier to use programmatically
The features I like are simpler, smaller, faster, less ambigous and easier to use. I am sold. Now the real question is, does this stuff work in the real world and can it be applied in a proof of concept or experiment? That is something that is to be determined.

This stuff does look interesting. For alternative viewpoints here is one from InfoQ, Google Introduces Binary Encoding Format: Protocol Buffers, which has a lot of good links to various blogs and responses to Google's PBs. Facebook's Thrift is a competing technology.

Persistent Cloud Storage from Amazon

Amazon has just raised the bar by creating Amazon Elastic Block Store or EBS service. This basically is persistent storage for Amazon's EC2. The cloud computing landscape is getting better every month.

Amazon Elastic Block Store (EBS) provides block level storage volumes for use with Amazon EC2 instances. Amazon EBS volumes are off-instance storage that persists independently from the life of an instance. This opens up a new frontier for low-cost and scalable cloud computing storage services.

Saturday, July 05, 2008

The Cloud

If you have been under a rock for the past few years than you probably have not heard of Cloud Computing. I have had the opportunity to live in the cloud for the past few years as an experiment while in graduate school. I started using Google Docs when it was in its infancy back in 2006 and have watched it mature nicely into a very capable software-as-a-service with offline capabilities. I have seen it grow up and become a toddler that now knows how to walk on the verge of learning to run.

In this same timeframe, Amazon Web Services has evolved into Elastic Compute Cloud (EC2), Apple announced its MobileMe service which is replacing its popular .Mac service, and Google launched Sites and AppEngine this year. What all these new services have in common is that they are taking advantage of the cloud. All the while this was all happening, virtualization the foundation on which a lot of the cloud utilizes and leverages, has evolved significantly and virtual private server (VPS) services (i.e., Tektonic.net) have evolved into very capable offerings.

The most interesting aspect of cloud computing is that it has evolved very rapidly as a disruptive force. This type of computing has opened up the market for the current generation of smartphones, cloud devices (i.e., internet tablets, ultra-mobile PCs using Linux, and more).

Cloud computing innovation in 2008 has made me rethink my own personal computing architecture at home. I have several Linux servers and devices providing my server requirements for the past ten years. Now, it is gotten to the point where maintaining my home infrastructure is becoming a burden as the number of devices proliferates. There are HD set top boxes, streaming video servers (Sony Location Free, NetFlix, iTunes, YouTube), PSP, PlayStation3, iPods, Wii, GameCube, etc... and the future will only bring more internet capable devices into the household.

The Cloud is looking better and better as the future architecture.

Friday, June 20, 2008

Firefox 3.0

Ok, if you are not already using Firefox 3.0, you should. I downloaded it on 'download day' and have installed over my previous Firefox 2.0 installation on Windows and Mac OS X. Performance on both OSs is noticeably faster than 2.0 and all my Add-Ons work. All I can say is wow! Especially the noticeable improvements in performance of Google Docs and other web sites that make extensive use of AJAX.

Tuesday, April 22, 2008

Google Docs now with Gears!

Ok, this is what I have really been waiting for in the past few years. I started Using Google Docs as soon as it was released back in 2006. Google has just updated it and I can now take my documents offline with the integrated Gears technology. From what I understand, Google is working on the spreadsheets and presentations.

I tested the offline documents capability a few days ago and it works as advertised. I am entirely impressed. I can now work on my Google Docs documents within Firefox offline. When I reconnect, my changes are now automatically resychronized with Google Docs servers.