Wednesday, December 16, 2009
OS Dependency Dilemma
Based on the operating system dependencies and upgrade dilemma, it appears that operating systems now have a useful lifespan of approximately 2 years before you are forced to upgrade in order to the latest software to work (i.e., Google Chrome, Handbrake, etc.) For me, this used to be a 3-4 year lifecycle.
Anyway, I plan to upgrade to Mac OS X 10.6 (Snow Leopard) on my MacBook over the Holiday break later this month.
Friday, December 04, 2009
The New Wave
"The Completed Guide to Google Wave" is the first book I have seen published about Wave. It is available online and for $6 you can purchase a downloaded PDF e-book. The book talks about how Google didn't choose Wave's name for the reason you might assume—as a play on the idea of surfing the web. Its engineers were paying homage to writer and director Joss Whedon's brief but well-loved science fiction TV series, Firefly (2002-2003). Very cool!
Wednesday, October 07, 2009
Cloud-Based Detection of Malware and Viruses
This architecture makes extensive use of x86 virtualization leveraging Intel Virtualization Technology (Intel VT) and Intel Active Management Technology (Intel AMT) microprocessor capabilities. Here is a link to the OpenAMT site.
There is an excellent set of research resources in the references section of the article. This is a must read for anyone involved in systems administration, network engineering, systems engineering and security of networks.
Tuesday, September 29, 2009
Google Sites Data API
Thursday, August 27, 2009
Web-based Diagramming!
diagrammr
Diagramic
gliffy
websequencediagrams
Of these four, gliffy is the most polished. It is available in a basic (free) SaaS and premium (paid) SaaS application. All of these are excellent examples of web-based software leveraging the cloud and your web browser.
I played with each of them and really like gliffy since it can do all types of diagrams including flowcharts, floor plans, business activity, UML, network diagrams, org charts, etc. This is a whole new category of web-based applications that provide functionality previously limited to desktop diagramming applications like Visio, Dia, Gimp, OpenOffice, etc. This is definitely an emerging category to watch evolve and use.
Now only if gliffy could evolve and start importing Visio .vsd files... now that would be entirely impressive.
Monday, August 10, 2009
Botnets and New Defense Techniques
The article makes an interesting analysis of the botnet Life-cycle. There are some really good diagrams.
Saturday, July 11, 2009
TweetDeck First Impressions
As a side note, TweetDeck is actually a decent application if you are a Twitter and/or Facebook user.
Chrome OS
This article has some very good points about Chrome OS admist all the media buzz, FUD, and propoganda from all sides.
Web-based Screen Casting with ScreenJelly
Now this is really cool and is a yet another web-based technology moving us closer and closer to the cloud.
Saturday, July 04, 2009
Google Voice
Friday, June 12, 2009
The Decline of Blogs?
If blogging is making journalism obsolete and FB and Twitter are making blogging obsolete, then where are we now with even shorter attention spans and bursts of ideas on these new social networks? I have noticed that even my blog entries are getting shorter this year. Wow! Innovation is great. Wonder where we will be in 2010?
Ok, this was more questions than anything else but I am getting long winded on this blog so see my FB postings or my tweets on Twitter... later.
Saturday, May 30, 2009
Google Wave!
Tuesday, May 26, 2009
Create Your Own Social Network with Ning
Monday, April 20, 2009
Oracle Acquires Sun
Sunday, April 19, 2009
Steaming Video Steps up the Game
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!
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
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
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
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
Wednesday, March 04, 2009
MVC Web Frameworks and .NET in 2009
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
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
- Multi-Lingual support.
- Searchable code structural visualization (something like this http://scitools.com/blog/2008/12/yes-searching-in-graphs.html)
- Rapid navigation for purposes for maintenance/support of inherited systems
- Vulnerability scanning (for Information Assurance purposes)
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
- Eclipse (multi-lingual) - built-in capabilities, plugins.
- FindBugs (Java)
- IBM Structural Analysis for Java (SA4J) - very impressive structural visualization.
- JDepend (Java)
- NetBeans (multi-lingual) - - built-in capabilities, plugins.
- PMD (Java)
- SourceMontor (multi-lingual) -creates nice Kiviat diagrams.
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
Saturday, November 29, 2008
Netbooks and portability
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
Sunday, October 19, 2008
Software Tools for a Third Grader
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
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
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
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 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
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
Tuesday, April 22, 2008
Google Docs now with Gears!
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)
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
"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
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 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 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?
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
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
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
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 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 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
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.
Thursday, July 19, 2007
Firefox Has 28% Marketshare in Europe
If you are interested in web analytics, here are a few sites that clearly show the Firefox trend.
W3Schools Browser Market Share
Market Share Hit Links
What will be interesting is how this trend continues through 2007.
Thursday, July 12, 2007
Offline Web Applications with Google Gears
Over at OnLAMP they put out some articles using Google Gears with PHP and MySQL. The Power Of Google Gears (part1, part2). It has only been a little while so let's see how this offline browser technology evolves. Mozilla is working on a similar technology in the next release of Firefox. Maybe we will see more of this later this year.
Sunday, June 10, 2007
Grasshopper 2.0, Wow!
I have been spending the past month working with the .NET 2.0/3.0 framework and have had the opportunity to test Grasshopper 2.0 using VS2005. The early verdict is, 'wow'! This is truly an accomplishment. The Mainsoft team has created a Visual Studio 2005 extension that converts Microsoft Intermediate Language (MSIL) bytecode to Java bytecode from a C# or VB ASP.NET 2.0 web application. It actually works as advertised. Grasshopper 2.0 fully supports .NET 2.0. The resulting product is a fully compliant Java .WAR that deploys to Tomcat-5.5 as you would expect.
Mainsoft provides a free Developer Version of Grasshopper 2.0 which I used. It requires an activiation key you must get from their website. Installation into VS2005 was flawless as long as you have VS2005 with SP1 installed. The Mainsoft tutorials are easy to follow. If you know how to build an ASP.NET 2.0 web app using VS2005 then using Grasshopper 2.0 is seamless. You just use your existing C# or VB skills in VS2005. You do not need to know Java in order to use it. That is intent of the product.
The Mainsoft online documentation, FAQs and tutorials are all decent for experienced developers. In addition to the Developer version there is the portal and enterprise versions which add additional features. The Mainsoft website provides a clear explanation of each version's features.
Now what would really be cool is Mainsoft Grasshopper supporting SharpDevelop. SharpDevelop is the best open source IDE for .NET that I have seen.
Thursday, May 31, 2007
A Google Summer
I toured San Francisco and in the new Google Maps Street Views and I am totally impressed! It is really an immersive 3-D experience. Wow is all I can say.
And then there is Google Gears! This one is just as impressive. It is an offline web application framework that works in all web browsers and platforms since is based on Javascript and a local SQLite database. I installed it on my MacBook and on Windows XP in Firefox and had no issues at all. Google has made Google Reader a Gears enabled application and it works just as advertised offline. Cool stuff.
Now, they just need to get GMail, Docs and Spreadsheets working in a similar transparent fashion. If Google Reader is any indication of what the near future brings, then 2007 will turn out to be quite an innovative year for Google. The real killer is that Google Gears is released as open-source under a BSD style license.
I think Microsoft is going to be in trouble and losing ground on the web front. I plan to see how Google Gears works out for enabling custom web applications to enable offline browsing capabilities. Time will tell how successful Google Gears becomes.
Sunday, May 13, 2007
Microsoft vs. FOSS
The next week and the future will be interesting. The article discusses a 'cold war' like scenario in software technology putting Microsoft and the FOSS in direct legal collision course. FOSS has powerful corporate patrons and allies. In 2005, six of them - IBM, Sony, Philips, Novell, Red Hat and NEC - set up the Open Invention Network to acquire a portfolio of patents that might pose problems for companies like Microsoft, which are known to pose a patent threat to Linux. There is speculation that the intent of this is to provide a 'mutually assured' litigation scenario similar to the cold war 'mutually assured destruction' scenario.
FOSS and others are on the opposing front with their own arsenal of patents ready for its use as a counter attack against Microsoft. Looks like the SCO law suit all over again but this time a more frontal assault. IBM won the SCO lawsuit. SCO was indirectly supported by Microsoft funds. An interesting fact to note is that IBM holds the most patents in the software industry and has not threatened anyone that I know about with its patents.
What is interesting is how the CNNMoney article states that half of the Fortune 500 use FOSS (Linux) and growing. The article alludes to Google which is widely known to be a large proponent of open source. One area that appears to be the real threat are online free web applications in which Google is moving towards very rapidly. Microsoft must really be hurting or at least is significantly threatened by Linux. Their fear of Google is well known.
It could be that the future trends with the migration towards open source and Linux will undermine future Microsoft business. I have read many blogs and analysis to this effect ("Microsoft is Dead", "Eight Signs Microsoft is Dead in t he Water" -John Dvorak) and the most recent actions by Microsoft appear to be supporting this theory. What is ironic is that Google never confirms or denies that it is competing with Microsoft. Microsoft appears to be obsessed with Google's success.
On yet another front, it was just recently reported that Apple's sales for MacBook accounted for near 10% of all notebooks in March 2007. Apple is also #4 on the notebook sales list. It looks like Microsoft is trying to open up too many fronts and maybe needs to review history and the art of war.
The next few years will be very interesting.
Thursday, May 10, 2007
MVC Frameworks Update
It appears that the Struts2 team has provided a nice update to Struts which has been showing its age and actually has lost a lot of its advantages due to advances in the Java world and the dynamic scripting language (i.e. Ruby, Perl, PHP). Here is a decent Struts2 history worth a read.
Some of the nice features of Struts2 are simplicity, plugins, Spring integration, AJAX support, and flexibility to use POJOs for form and action classes. The requirement for Action and ActionForm mappings no longer exist. It integrates with Freemarker, Velocity (no more VelocityStruts), and many other frameworks.
If you have been looking at MVC frameworks in Java lately, I think Struts2 is worth a look. If you have works with Struts in the past, the learning curve is minimal. It will interesting to see how much traction Struts2 gets this year in the Java web applications arena. There are many competing MVC frameworks and Struts is still widely used. I have been leaning towards simplicity lately and it looks like the Struts team has been spending the last year doing the same.
It is good to see that Ted Husted is involved. This adds a lot of confidence and credibility to the Struts2 project. In a addition to Struts2, I have been looking at Spring MVC and the Spring WebFlow frameworks. They do not appear to be getting as much attention this spring (no pun intended). Anyway, it's good to see some action in the Struts community. Since I have not been following the Struts development in the past year, it was a nice surprise to finally see a general availability release.
I guess I will be spending the next few months with Struts2 and see what it can do.
Saturday, April 14, 2007
Digital Woes for Mars Global Surveyor
I read a book a few years ago called "Digital Woes" written by a Reagan era 'Star Wars' computer scientist, Lauren Ruth Weiner, that cast a serious doubt on the probability of succsss of such a complex system. The probabilty of success based on the statistics of digital failures in the modern computer age was calculated to be too high. From what I recall, there was a lot of statistical and scientific models created where the success of the 'Star Wars' system was unachievable.
At any rate, the news today concerning the Mars Global Surveyor reminded me of the book and how software engineering is even more critical today. A single bad command caused a cascading set of failures which eventually shutdown the space craft. This just adds fuel to the argument that software testing is critical and that sound software engineering practices may not be enough.
Based on what I know about what happened to the Mars Global Surveyor, it looks like the NASA team followed all disciplined processes but the failure still occurred. It appears that the complexity of the system behavior was not well tested which resulted in the sequence of events leading to the eventual failure of the system. The LA Times article mentions budget cuts, political pressure and short time frames as contributing causes for the human error. The Scientific American article also mentions human error.
I wonder if they did any modeling and simulation or at least simulation of the scenario? Being an optimist, I think that test-driven software development is not enough with the complexity of modern systems and that simulation is required in order to really observe the behavior of the system. Given the declining NASA budget environment and fewer resources, maybe some new ways of approaching software engineering at NASA is an option. The 'do more with less' mentality requires new ways of thinking and a lot of engineering management innovation.
Monday, April 02, 2007
Remember OS/2, It is 20-Years Old Today
Wonder when IBM is going to open source it? Now that would open quite a few opportunities! We can still hope and wish.
Sunday, March 25, 2007
Virtualization on Mac OS X
Sunday, March 18, 2007
Online All The Time
Collaborative online communication continues to evolve. Today, the social networking sites, personal wikis, personal blogs, and portals are all evolutionary forms of storing and managing online information. What I like about today's world is that with open source technology and the numerous online services providing you with all the tools you can imagine, the only thing you need is a modern web browser to access it all! Not having a blog, participating in a forum, being part of some online community, or not being online is like not having access to a telephone in the 1970s.
I remember being a young person in the late 1970s and early 1980s and spending hours talking on the phone. For me, this has translated into the modern equivalent of being online all the time today. With notebook computers, internet gadgets and all types of mobile devices, it is hard not be online today. You actually have to make a effort to stay offline today. The only time I spend less time online is when I am on a vacation. Then I intentionally disconnect.
I find that instead of watching TV and cable, I actually do this while staying online. A few years ago this was sort of a novelty. Today, it is now just a normal way that I watch TV/cable and concurrently browse the internet. My multitasking capabilities are up and my attention span is going down. I am not sure if this is a good thing but I have adapted to this way of personal interactive entertainment over the last few years.
What I have not seen is the smooth convergence of TV and the web that was envisioned in the 1990s. This did not occur. Today, we still have TV/cable that pretty much works the same way it did in the 1990s and the web has become richer but the convergence has not occurred. I think the two industries are intentionally trying to figure this out and no one really wants to the change it all. YouTube and other online video sites are in a big fight with traditional content providers and from what I have seen, it appears that the traditional content providers are resisting the convergence and change. So what else is new?
Well, back to my original topic. I am watching a Comedy Central show right now and writing this blog entry. Maybe in 10-years we'll see the convergence of TV and the web. I doubt it because that is what everyone thought 10-years ago in 1997.
Saturday, March 10, 2007
Search In 2007
A few years ago, Google and Yahoo! were the two enterprise level products on the market with an low cost to entry. This is a critical point in the modern IT environment. Today, there are numerous open source and proprietary solutions all claiming some type of advantage in their implementation of search technology. I can name quite a few search technologies today that I have reviewed Google Search Appliance, Yahoo SDK, Amazon A9 OpenSearch, IBM OmniFind, Corpora Find!, Microsoft Sharepoint 2007 Enterprise Search, Nutch, Lucene, Autonomy/Verity, and whole lot of embedded search engines. In the Java world, Lucene appears to be the best of breed search framework. As a matter of fact it is the basis for the IBM OmniFind Yahoo! Edition search technology.
I really like the Google appliance mentality. You just install it and use it. It just works kind of like your refrigerator. When was the last time you had to do any type of maintenance, patches, reconfiguration, optimization, of your refrigerator. You do not! That is the point. You just use it, it works and you keep it clean and it looks good. That in summation is what I consider the baseline needs and wants for a search solution. No one else has anything like it on the market yet.
I have designed and built solutions using Lucene, Verity, Google API and Yahoo! SDK. Generally speaking, they all work in a similar fashion. Personally, I prefer the appliance approach that Google provides. It just works. It uses the same Google API that you can already use and implements a dedicated hardware based solution that requires very little systems administration overhead.
As for the state of enterprise search today, I would say the the IBM OmniFind Yahoo! Edition is a powerful open source entry into this highly competitive space. With it's low-cost to entry and open source foundation, it looks like it will mature into a viable competitor to the Google Search Appliance in the next few years. Comparing the Google API to the Yahoo! REST based search SDK, I think the Yahoo approach using REST is much easier to use from a developer perspective.
I would not count out the open source product Nutch either. It is based on Apache Lucene which is the defacto best of breed Java indexing framework. Nutch has been brought into the Apache Software Foundation which is a powerful force in the open source universe.
As for the state of search, I think the leaders remain the same and the fresh new open source competition is breathing life into this area that was once completely dominated by a few products.
Saturday, February 24, 2007
Platform Agnosticism and Ultra-Portable Computing Machines
I have spent the past five years working towards platform agnosticity and have only recently been able to experience it in practical form. It has been three months since I switched to using Mac OS X as my preferred environment. Since, then I have been able to truly practice, research and experience cross-platform computing and software engineering. Java, being designed cross-platform is a key enabling technology.
The online Google Docs and Spreadsheets and all their online applications has pushed the envelope even further. I now use my online Google apps more than anything else and use my desktop applications (OpenOffice.org, MS-Office) as online extenders for necessary functionally where ever I am. This is an inversion of how most people perceive these online applications. Anyway, I have lived this inverted environment since last summer (almost 8-months now) and can confidently say that it works for me and is the future of computing. I blogged about this last year. ("Online Everything Is Getting Closer") This year I think the "online everything" is even better because I have been able to live it and push the innovation further. Google's recent announcement of Google Apps for Enterpises is a testament. There is also a rumor that an online presentation tool is in the works! That would be impressive.
I have found that open standards, open source technology have had a larger influence in the mutli-platform world more than enything else. Prior to switching to Mac OS X, I was primarily a Linux and Windows user/developer using Java technology. I always preferred Linux overall but now my MacBook has become a 'better Linux than Linux' in my experience. With Linux there was always something missing in the GUI (KDE, Gnome) application spaces. On the Mac this missing gap is closed by the numerous robust GUI applications that exist on the Mac OS X platform. In addtion to the excellent Java support built-in to Mac OS X, there is an active user base/community that just focuses on the getting things done. As Apple has been pushing, 'It just works.'
This year is shaping up as I anticipated. I have moved most of my computing work online and can access and collaborate online using any computer platform, anytime, and anywhere. My search now is for ultra-mobile computing device that has a full-blown Linux like OS allowing me to access all my information whenever and where ever I need. This new device must not sacrifice any computing power or external peripheral capability via USB or Bluetooth interfaces
I recently checked out the Sony UX series devices which are incredibly tiny machines based on Windows XP Professional. It uses solid-state hard drives (no moving parts) which is highly desireable in an ultra-portable device. Nokia has the N770 and N800 Linux based devices which are getting closer. I have not seen the N800 in person yet. I have been using my Sony PSP as a portable browser for two-years now and it just works as browser in addition to being an excellent multimedia gaming device. I also recently got to play with the Sony Mylo hands on and this is getting closer but not quite there yet. Some people like the Mylo but for me, it does not meet the full-blown computer requirement.
I am hoping that Apple comes out with something in this ultra-portable device space that 'just works' like my MacBook does. I tried out my mobile phone a few years ago as an internet platform and very quickly ruled that out because it is 'too small' and limiting as a computing device for power users or developers. Not much has changed in this space recently. Plus the bandwidth is not there in the US for the mobile smart phones. Today's mobile phones are too small and too slow for practical use as a serious computing platform.
I am looking for a 'better Linux than Linux' in a ultra-portable form factor that uses solid-state storage with no sacrifices. My best bet desirable device today would be a Linux based device that is ultra-portable. Maybe Apple has a ultra-portable Mac OS X device in the works? I like the Sony UX series but being a Windows device and relatively expensive puts a negative spin on it. Java is a key open source enabling technology that must be supported given its scalability and cross-platform design and having it is my preference being a Java technologist. Given the state of wide Java support today in Linux, Mac OS X, Unix, and Windows I do not see this as an issue.
Anyway, the migration of moving everything online allows me to be very critical of the ultra-portable computing device I want in the future. Notice that in the ultra-portable environment, I really have not focused on any platform. Just the device form-factor, features and capabilities as an ultra-portable computing machine that sacrifices nothing. No one has attained it yet but I know what the target requirements are for my ultra-portable computing machine are and it does not yet exist. I prefer something that is Linux/Unix centric since that is where most of the innovative ideas and cutting edge computer science research occurs today. Maybe later this year someone will surprise the world and come up with an innovative new product! I think in the next few years we will definitely see this happen. Whoever produces just has to remember that cost is also a factor.
Thursday, February 08, 2007
Yahoo Pipes
Details of Pipes are hard to confirm since the site is overloaded and they have a nice banner message stating that "Our Pipes Are Clogged" due to overwhelming demand. From what I have read, it appears to be some type of RSS aggregation/mashup tool that provides some visualizations on what you are creating. If it is anything like the Yahoo! Site Builder, then it will probably be a rich client java application that provides a nice GUI.
At any rate, when I finally get a chance to see Pipes first hand in the next few days of weeks will blog about it and see if it stands up to the over hype.
Sunday, January 28, 2007
Nice Java Development Platform
The Mac OS X 10.4 Tiger user-interface is very intuitive and the Finder, Dashboard features are exactly what I was looking for in a next generation GUI. OpenOffice.org, Eclipse, and all my other tools for Java development work as advertised on Mac OS X. The next release Mac OS X 10.5 (Leopard) has even more features that take it to the next level.
For Java development, I can now say that Mac OS X is a really good solution. Much better than Windows primarily because of the underlying Unix foundations. If you are administering Linux servers and need an extremely consistent GUI, the Mac OS X is it. Your mileage may vary as I always like to say.
I created a new blog, The Mac Katana, devoted to my experiences on the Mac. Check it out if are interested.
I wish everyone good luck happiness and joy in this new year, 2007!
Saturday, December 30, 2006
Project Looking Glass 1.0 3-D UI
Just noting it here since Sun recently put a 1.0 out there for the open source community to experiment with and evolve.
Friday, December 29, 2006
OpenOffice.org 2.1 on the Mac OS X
Well I must say that OpenOffice runs fine on the Mac OS X after finally getting it installed last week. Currently you must have X11 running in order to use OpenOffice on the Mac. A pure Aqua version of OpenOffice is in beta and should be ready for primetime in 2007. Look here for details. I downloaded NeoOffice which runs fine however, for me I noticed a few performance issues with NeoOffice. So I reverted back to OpenOffice as my word processing, presentation, spreadsheet, and desktop database suite of productivity applications.
What really amazes me is how brainwashed so many users are with the perception that they 'must have' Microsoft office in order to function on a computer. I met several Mac users that said they purchased Office for the Mac in order to do word processing. Wow, the marketing machine at Microsoft sure does have everyone fooled.
This is the reason why I am blogging about OpenOffice on the Mac. It is available today and works as advertised. If only more Mac users or recent converts were aware of OpenOffice and its capabilities they could save themselves a few dollars and rid themselves of Microsoft. Personally, I enjoy have a Microsoft free laptop using my new Macbook. I have had the same on my Linux notebook for years and it sure does feel great not having to be dependent on Microsoft for my personal computing requirements.
Too bad that I work in a predominately Windows environment at work. It would be nice to see Macs brought into the workplace. Based on my experience, it just works like my refrigerator. No strange behavior, bugs, or just plain oddness to worry about anymore.
Sunday, December 10, 2006
My Initial Mac
After using it for a few days I am happy to say that I really like the Mac OS X 10.4 Tiger and the Mac in general. There are some extremely intuitive and unique capabilities on the Mac OS X that I have not seen on Linux, OS/2, or Windows. The Mac OS X 10.4 Tiger Dashboard, Expose, HotCorners UI features name just a few. These are the features that I have been using extensively. There is this UI automation feature which I haven't even gotten into yet. I forgot the name of it but it looks exactly the type of thing I was looking for in a 21st century operating system.
As far as multimedia is concerned, the Mac just blows away Windows in my opinion and experience. I have used Windows Media Center Edition and compared to the Mac, it looks like a half-baked experiment. The Mac multimedia device experience is like an extremely polished and intuitive appliance. It is just something you have to experience personally is all that I can say.
I still have a lot to learn about the Mac architecture, Darwin, Cocoa, Aqua, X11 on the Mac and more. After just running on it for a few days, I am excited to say that I like it! I will be blogging a lot more about the Mac in this blog and more in the next few years. Given that I do almost everything on the web or online now, switching to a Mac was a piece of cake for me. Mozilla Firefox and Safari work nicely and I had almost nothing to learn from a user perspective.
From a software engineering perspective, Mac OS X totally embraces Java which is good for me since I have been working with Java technology for a long time. I have been finding quite a bit of open source stuff for the Mac which is nice to know. I really like all the Dashboard Widgets. For the future, I have been looking at the previews of Mac OS X 10.5 Leopard that Apple has been putting on their website and it has some innovations that again will make my next Mac OS X upgrade in 2007 a more capable Mac. The new Spaces and TimeMachine capabilities are a step into the future.
I will continue working with Linux and Windows since that is how I make a living but it would be nice to be able to make a living working on Mac OS X for web development. At any rate, I hope your future computing is as enjoyable as I foresee mine will be. After just a few days of using my MacBook, I feel better about my computing future already. In addition to all the above, I forgot to mention that my MacBook just aesthetically looks and physically feels cool under my fingers.