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.

Sunday, April 20, 2008

Search Engine Optimization (SEO)

This is a topic that I had to research recently for a class I am taking in graduate school. Search Engine Optimization (SEO) is a technique for increasing the traffic to a web site from search engines. (e.g., Google, Yahoo!) In a nutshell, SEO involves tagging, designing web site content using keywords and metadata (information about data), and designing web site structure for efficient accessibility by search engines algorithms and web crawlers to find information more effectively.

The desired goal of SEO is to attain a higher ranking for a specific web site that results in the site showing up in the first page or initial few pages where most users tend to click on a resulting link before moving onto another search or simply abandoning the result set. This in effect makes the web site appear to be more relevant to the user in the search result listing. The reason why search result set relevance and position is critical is because of the observed behavior where most web users tend to use the first page of a search result listing most of the time. Subsequent pages in the search result listing are used by a much lower percent of web users as the search engines become more efficient due to SEO techniques and continual improvements to search engine algorithms.

Search engine optimization means ensuring that your Web pages or site is accessible to search engines and are designed in ways that help improve the chances they will be found. ("Intro to SEO")

Some decent simple SEO Examples are described here. There are many techniques that make your web site "SEO Friendly". One simple technique is to choose a SEO Friendly Domain name. Let' say you have a web site that contains SEO information. If your site is located at mysite.com, it is not a very good "SEO friendly" domain since it is difficult for a search engine to figure out that your site contains SEO information.

On the other hand, if you named your site search-engine-optimization-info.com it would be considered more "SEO friendly" by its name alone. Using this domain name any search engine can figure out from the domain name alone that your site probably has SEO related content. (e.g., cars.com, salesforce.com)

According to Google, SEO is an abbreviation for "search engine optimizer." Many SEOs and other agencies and consultants provide useful services for website owners, from writing copy to giving advice on site architecture and helping to find relevant directories to which a site can be submitted. What is an SEO? Google's definition. Google does not have any relationships iwth SEO organizations and does not make recommendations. However, they do provide tips on choosing an SEO and information on what will make a search engine drop your site from their search results entirely

Additionally, Google provides a wealth of information about its search results, improving site rankings, and tips that help Google's crawlers find your web information more efficiently and effectively. With Google representing the majority of web search today, approximately 67% as of March 2008 and growing, it is wise to know how to optimize your web sites for Google web crawlers.

I also found some really decent material on SEO techniques here.

Sunday, April 06, 2008

The Unexpected for 2008

As anticipated, Google released the unexpected a few weeks ago. It is called Google Sites. If you need to create a web portal for sharing information amongst a team, classmates, workmates, social mates, friend, or family, then Google Sites may be for you. Here is the overview of Sites:

"Google Sites is the easiest way to make information accessible to people who need quick, up-to-date access. People can work together on a Site to add file attachments, information from other Google applications (like Google Docs, Google Calendar, YouTube and Picasa), and new free-form content. Creating a site together is as easy as editing a document, and you always control who has access, whether it's just yourself, your team, or your whole organization. You can even publish Sites to the world. The Google Sites web application is accessible from any internet connected computer."

I have had a chance to play with Sites and it will brings "online everything" and cloud computing even closer to reality today. This is another disruptive event initiated by Google and will give everyone something to think about when it comes to collaborative sites and portals. If they can make this work with Gears and be taken off-line, then I think IBM, Microsoft, and Java based portals will have to re-think their respective strategic agendas.

Saturday, March 22, 2008

caGrid and caBIG uses open source Java technology

While working on a research project for graduate school, I serendipitously stumbled upon the cancer Biomedical Informatics Grid (caBIG). This is a massive bioinformatics initiative to connect the entire cancer community leveraging modern information technology (IT) to save precious time toward news discoveries in cancer research. The caBIG Essentials tutorial is a must. It is available as a an online interactive tutorial or presentation download.

caBIG uses open source technology to bring cancer research into the 21st century. It is intertwined into a grid middleware infrastructure, caGrid, which is an information grid for biomedical research. (Bioinformatics Journal article abot caGrid) The really interesting aspect of caBIG and caGrid is that it uses open source Java technology and UML to make this all work. It is a service oriented architecture (SOA) using Apache Tomcat, Axis, UML, BPEL, Hibernate, etc. providing open specifications to allow organizations to adopt or adapt its IT systems to be caBIG Compatible.

The caGrid concept initiative originated December 2003. (caGrid wiki with timeline graphic) The initial prototype was brought online in July 2004. The following two and half years of work resulting in the caGrid 1.0 officially going live in December 2006. caGrid 1.1 was released in September 2007. This cutting edge work is in progress and will change the way biomedical informatics research is peformed in the future.

caBIG is model driven. That means you must have object models UML in order to transform your IT resources into compatible caBIG applications and services. caBIG provides/maintains the specifications, tookits, and SDKs. The possibilities for biomedical research breakthroughs leveraging the emerging bioinformatics field are endless.

Javascript 2.0 goes OO

This is good news for the future. The emerging Javascript 2.0 specification brings object-orientation to Javascript. See this article, Web 2.0 Meet Javascript 2.0.

This is a welcome advancement in the continuing evolution of Web 2.0 capabilities and bringing rich "online everything" to reality.

Sunday, February 10, 2008

Non-existent Object Oriented User Interfaces in 2008

The state of object-oriented user-interface (OOUI) technology today is quite depressing. I bet that you can not name one that is useful and in production. After all the years since I stopped using OS/2 and its innovative WorkPlace Shell (WPS) OOUI, there is yet to be anything like it in Linux, Mac, Unix or any other mainstream operating system. The closest we have today is the Mac OS X which is really an intuitive graphical user-interface (GUI).

The heart of the IBM OS/2's WPS is the System Object Model or SOM. SOM is an object-oriented system level object model that is similar to Microsoft' Common Object Model (COM). The key difference is that SOM supports inheritance while COM does not. So, in esseence, COM is really an API with object-oriented like features. SOM is truly object-oriented.

Back to the OOUI discussion. WPS objects had the capability to inherit from parent classes or other base classes. One clear feature of WPS that I miss in the modern GUI/OS world of today are Shadows. There currently is not similar analogy to this in KDE/GNOME, Mac OS X, or Windows.

In WPS, Shadows objects that point to other objects. They are like shortcuts in Windows except that they inherited all their properties from SOM. The one thing that is still a major annoyance with shortcuts is when you move the file or directory to which your shortcuts is pointing. The shortcut is really a static pointer to some file, directory or application. When you do this you get the invalid shortcut problem in Windows. The same scenario occurs in KDE/GNOME and Mac OS X. You would figure that this problem would be resolved by now. But that is not the case. Instead there are tools, utilities, tips, workarounds, scripts or whatever to fix this very trivial issue.

In an OOUI like WPS, Shadows inherit from SOM the File, Directory, or Application object. So when the underlying File, Directory, or Application changes, your Shadow automatically knows this through inheritance. This is very simple, intuitive, and just works.

I recently read that the motions by the OS/2 community (yeah, it still exists) to request that IBM open source OS/2 has been denied by IBM due to several licensing and intellectual property reasons. OS/2 source was developed collaboratively by IBM and Microsoft. On the other hand, SOM is an IBM technology that was developed after IBM and Microsoft split in the early 1990s. I just read a new suggestion ("Should IBM' SOM/DSOM be open sourced?") that IBM explore open sourcing SOM which would give to the world an object model that is proven and can be a foundation for future OOUIs developed using a modern open source methodology.

A move by IBM that makes SOM available would inject a stimulus into the state of user-interface innovation which appears to have stagnated in the past 10-years. In general when you look at KDE/GNOME, Mac OS X, Windows, and any of the variants used in Unix, they all pretty much do the same thing. They are some form of implementation of the WIMP (window-icon-menu-pointer) paradigm that Xerox PARC created in the 1970s.

I think it is time that we focus on the OOUI again. It seems to have lost its lustre so far this decade. Maybe then things will get exciting in the UI space again. If a way to tie the OOUI to the web and make it some form of OOUI that is browser based, an object-oriented web interface (OOWI) if you will, that would allow it to work on any platform! Now that would be real progress. Then we can start talking about OOWIs! Oooh weee! Wishful thinking.

Sunday, February 03, 2008

Is This Disruptive Thinking?

The just announced Microsoft unsolicited offer to acquire Yahoo! for $44.6 billion is all over the news. Analysis of it cover the spectrum. One question I have is, "Is this disruptive thinking on Microsoft's part?". One thing is certain, the fear that Microsoft has of Google appears to be reaching a paranoia state. This is almost an admission from Microsoft that they did not get the software as a service (SaaS) right. SaaS appears to be outside of its 'core competencies' even though they have invested billions in the Internet.

This take over offer appears to be an admission by Microsoft that they have failed in their efforts to transform itself from a desktop Windows applications centric company to a software as a service company that leverages the web. This evolution has been an ongoing objective for the past 7-years with nothing but a 44% drop in stock value.

Google's revenues and influence on the web keep climbing while Microsoft and Yahoo keep declining. The combination of Microsoft and Yahoo will only yield about 20-30% of the web search market. Google currently owns about 60-65% of that market and keeps increasing its share.

Microsoft's achiles heel appears to be its goal to tie everything (software applications) to Windows. Yahoo and Google on the other hand are internet service based companies whose goals are to make all their services available to anyone, anywhere, using any operating system or web browser. "Is Microsft Saving Yahoo! Or is Yahoo! the Savior".

I think that a merged Microsoft and Yahoo! will encounter several cultural issues. They have vastly different cultures. The cultural intertia of both companies will be difficult to grasp and refocus into a convergence. It will be a daunting task.

There is a significant technology overlap that would cause a lot of internal disruption and team dynamics issues that are not evident on the surface. Look at how the TimeWarner-AOL deal turned out. These two distinct cultures clashed and resulted in the decline of AOL. Orchestrating a successful merger of Microsoft and Yahoo! will take some extremely well calculated and organic management decisions in a timely manner.

Google is not sitting still. It appears that the Microsoft merger's strategic goals are addressing the services for which Google is already successful. Knowing Google, they are moving on to the next thing whatever that is. We will find out sometime this year in the typical Google fashion, they will just drop it onto the world.

Basically, Microsoft is playing follow the leader. If Microsoft has failed so far in competing with Google, the merger will only complicate things for them because of all the internal reorganization that is required to make it successful. Overcoming the structural interia in Microsoft and Yahoo! is a complex strategic management undertaking. These internal tasks will be a distraction for the new combined Microsoft-Yahoo corporation. This distraction if not resolved quickly will give Google more time to innovate and pull further ahead. "Fitting the Pieces Together in an Internt Mega-Merger".

One thing is certain, 2008 is already full of suprises and it is only February!

Sunday, January 06, 2008

Happy New Year 2008

Happy New Year 2008!. Ok, it's early in the 2008 and it is always interesting to attempt to forecast out what may occur this year. Last year, I predicted that Google would do something unexpected and they did. Android was something entirely unexpected. Google Presentations was inevitable.

So what does 2008 bring? I think we will see Blu Ray become the HD standard as HD-DVD starts fading away. The reason for this is the Sony PS3. Additionally, just last week Warner Brothers announced that they will no longer support HD-DVD.

Apple Mac OS X will attain a 10-15% or greater market share of personal computers and start making headway in the business sector. This is based on the trend that has been 2007 for Apple.

Linux will become more significant as new devices like the Asus Eee PC, Nokia 810, and alternative ultra portable internet devices based on Linux start being used as the replacement of notebook computers. The mobility, power, inexpensive portable storage, solid state disks (SSDs), ubiqutous WiFi, and rich web applications are making this possible. These new devices have been disruptive in nature and are rapidly becoming the preferred devices.

Mozilla Firefox has attained a 35% market share globally according to Browser Statistics as of Nov 2007. The increase in Firefox usage will continue throughout 2008 and move in the 40% range at a minimum.

New phones using Google Android will redefine smartphones and the ultra portable internet devices market. This will be disruptive to the status quo wireless industry. It will be nice to be able to develop in Java for the Android based devices. What will be nicer is eventually a Firefox browser running on Android. If the services are right, 2008 will be the time for me to get into the smart phone market as user. Up to this point, the Apple iPhone is a step in the right direction. Based on all this, I think Microsoft's Windows Mobile will be the loser.

As they have done in the last few years, I think Google will do something unexpected again in 2008. Apple will refine its products and continue to make cool stuff that everyone wants. Sony will finally get its online 3-d immersive virtual reality business established and leverage the PSP and PS3. Microsoft's market share will continually take hits from all fronts. Java will continue to get larger because of Android, Apple, PS3, Blu-Ray, and just because there has been so much innovation and revival within the Java community in the past year.

Other than that, 2008 will be yet another exciting year of information technology innovation!

Sunday, December 16, 2007

Disruptive Technology in 2007

2007 is the year of disruption. At least in my opinion. We are in the final month of the year and looking back I see several disruptive technologies that will change the technology landscape in the next few years. If you look at the following list which is not in any significant order other than alphabetical you will see what I mean

Android
Asus Eee PC
Google Presentations
gOS
Grails
Groovy
Knol
iPhone
iPod Touch
Mac OS X Leopard
Nokia N810
OLPC
OpenJDK
OpenSocial

Each one of the above technologies is creating a change wave that affects an existing market space or is the catalyst for an emerging market. These technologies are actually causing competition to re-evaluate its current market and live with the threat of being displaced.

Saturday, November 10, 2007

Naked Objects Pattern

I am sitting here early on a Saturday morning at a local Honda dealer waiting for my vehicle to be serviced. While online and drinking a good cup of java (coffee), I had not written to this blog in a while (been quite busy) so decided to discuss a new Java technology that I have been researching lately which is quite impressive and ground breaking in my opinion.

While researching Java technology, I encountered a new pattern to which I was previous unexposed. It is called the Naked Objects pattern. What was surprising to me is just how little coverage this design or architectural pattern receives in the popular cyberspace. What started me down this path was the What is the Matter with JMatter? article I read last week. After reading that article and doing quite a bit of exprimentation with JMatter, it was the Naked Object architectural pattern that is most interesting.

I will not go into too much detail about JMatter, but in a nutshell it implements the Naked Objects architectural pattern and throws in some domain-driven design concepts to provide a very capable Java application engineering framework. The result is an extremely agile development environment for Java technologists. At first I thought JMatter was for the average user. After experimenting with it for a week, I have come to the viewpoint that JMatter is for the exprienced Java developer that understands design patterns, Ant, Hibernate, Spring, dependency-injection, XML, Swing and a few other best of breed Java frameworks that it leverages. The result is a several order of magnitude increase in application development productivity. What would have taken weeks or months to build can now be engineered in days or weeks.

The JMatter applications are currently client/server and leverage Java Web Start for deployment. What is on the drawing board is better usage of WingS and Echo2 to generate AJAX capable applications based on the JMatter application. I tested this capability that is integrated into JMatter today and it requires a bit more maturity before I would recommend using it. For now, if you an experienced Java developer, JMatter is worth a look. It changed my entire perspective on Java application development which I now call application engineering. Using JMatter and its capabilities allows you to engineer applications vice developing them in the traditional sense, lots of coding.

Sunday, August 26, 2007

Google Sky, Wow!

I predicted Google would do something unpredictable and it occurred earlier this week. They released Google Sky which is integrated into the already incredible Google Earth. If you are into astronomy or just want to see what type of imagery is available of space, then this is it. Google has taken the collective imagery from the science community (NASA, etc..) and put into one place that anyone can now use and navigate just as you can with Google Earth.

I used a few astronomy programs and Google Sky definitely is the best one I have seen to date. I can't wait until there is a similar add-on for the Moon and Mars. Currently, Google Moon and Google Mars are accessible as 2-D browser applications.

Monday, August 06, 2007

Web OSs and the Future

I like looking toward the future and making bold predictions. Here is one, the WebOS paradigm will take over within the 3-5 years. Check out the list of existing WebOS projects at Wikipedia.

I have experimented with a few of these and just recently installed eyeOS which is a really impressive WebOS concept. It is written in PHP and is extremely lightweight. I read a really good review of eyeOS and then tried out it. Another decent concept is YouOS which is written entirely Javascript. It is currently in a proof of concept phase but has promising future if it is continually supported and matures. I have used the Sun Java Desktop System which is is very similar in concept however does not execute entirely within your web browser.

As the WebOS paradigm matures, I think it will eventually take over what virtualization and other desktop paradigms do today purely because a WebOS lends itself to execute in an extremely lightweight container, the web browser, and lends itself to exist in embedded web browser objects executing in mobile and new generation of personal digital devices (i.e. iPhones, GPS devices, PS3, Wii, DS, PDAs, smart phones, PAVs, etc.)

Saturday, July 21, 2007

The Firefox Kid and a new Web OS Project

While drinking my first cup of coffee on this wonderful Saturday morning in July, I bumped upon an article at Slashdot about Blake Ross, The Firefox Kid, and his latest project, Parakey. The details about Parakey are sparse because it it still in development. However, what is interesting is the peek that Blake has allowed to date.

In a nutshell from what I have gathered, Parakey is an open-source based application that instals on your desktop and runs in your browser and bridges the gap between desktops and the web. In essence, it is like a Web OS. As the project matures, we will see more details.

You have to read the article to get the full scope. There is also some interesting historical information about how Blake got involved in the Firefox creation.

Here is an interesting note, Facebook just purchased Parakey for an undisclosed amount. The we will continue be a highly dynamic place.