Web 2.0 companies failing to produce cash

Financial Times has an article called Web 2.0 fails to produce cash. The article talks about how Web 2.0 companies have not produced alot of revenue despite changing the way that people interact on the Internet and introducing new capabilities.

I think it would be interesting if Web 2.0 had more commercial as Enterprise 2.0 than in the Internet at large. I think to the Internet community, it becomes just the normal course of interaction. However, within enterprises it seems to have the potential to dramatically change how we design and implement information systems.

Plus, I'd just like to be able to use these technologies on the job. :-)


Vista Backup Leaves Me High and Dry

OK, guess what - when Vista Backup says it does not backup any program files, it turns out that means ASP and ASPX files as well.  I wish I had seen the comments on this post first.  But I didn't.  So, now it looks like I've lost some ASPX files for a charity project I was working on in my latest round of laptop shenanigans.  GRRRRRRR!!!!

Unlike the guy in the comments, it seems to have saved my CS files.  In fact, it saved the code behind files for the ASPX files, but not the ASPX files themselves.  GRRRRRR!!!!

I'm pretty hacked right now.


Emacs Quit under Cygwin

I've never used Emacs under Cygwin. I've always installed the Windows version. However, today I'm in a hurry, EmacsW32 site is down, and I decided to use Cygwin. Unfortunately, some of the keys like C-x C-c (quit) are wonky. But Newbie, Emacs won't quit - gnu.emacs.help | Google Groups describes a simple modification to the Cygwin bash shell batch script that makes everything good to go.


Application vs. OS Clustering

I recently had the opportunity to discuss computer clustering with a colleague of mine. I decided to post my take on things in case it might be helpful to others.

Computer clustering is a deep subject. There are many facets to how to cluster computers and/or applications together. Wikipedia has a nice article on clustering. I’m no expert, but I’m going to describe my simplistic view of hardware/OS level clustering vs. application clustering and how they fit together.

The ultimate computer cluster would be a group of computers working together to seamlessly provide services and appear as one computer. This cluster would make its services available to applications transparently. This means that an application written to run on a single computer, would see no difference in running on the cluster. In addition, it would get all the benefits of being on the cluster without impacting its operation at all – scalability, high availability, memory management, etc. To my knowledge, this type of cluster does not exist.

Hardware and OS level clustering allows multiple computers to work together for a purpose, but the computers generally don’t appear to applications as 1 big computer. When the OS makes this possible, special programming is usually required to make an application take advantage of the clustered OS services. Most of the time, OS clusters are geared toward providing high-availability (HA) for fault tolerance rather than seamless scalability of applications running on the cluster (HPC – high performance computing). Windows 2003 server clustering and SQL Server clusters are examples of clusters that are geared toward HA rather than HPC.

Grid computing has ushered in a new set of technologies and patterns for trying to achieve the ultimate computing cluster. Grid computing does a good job of providing HA and HPC for applications running on the grid. The standards specify a pretty flexible environment with scheduling and accounting facilities that make management of applications much easier. Grid computing tries to make computing resources a commodity that can just be doled out as needed to run applications. However, for applications to take full advantage of grid computing, they still must incorporate special programming. This may change in the future as advances in grid frameworks and operating systems emerge. Examples of grid computing is the Amazon EC2 for computing and Amazon S3 storage grid.

Application level clustering is when an application is designed so that its components can be distributed across multiple machines and the application can identify and manage those components to cluster itself. This usually involves distributing components with specific capabilities to nodes in a server farm and having some controller components that identify the worker components, monitor their availability, and delegate incoming requests. (These are sometimes called dispatchers.) Applications that cluster themselves don’t need an underlying hardware/OS clustering solution since they take care of their own clustering services. Further, there’s no need to have computers in the cluster be homogeneous since the cluster is not dependent upon synchronization at the machine or OS level. Application clusters can provide HA as well as HPC. Examples of application clusters are Oracle RAC and FAST ESP.

Again, this is Tom’s view of clustering and probably contains errors and omissions. My simple mind summarizes and simplifies things it takes in. So, you should do your own research if you seek the ultimate in accuracy and reliability of this information! :-)


Tweets Available

I resisted using Twitter for years. However, I've lately decided that I need to understand it. So, I created a Twitter account and started playing. Like many others, I'm becoming addicted.

I've made my tweets (Twitter speak for messages) available on this blog. If you visit the web site, you'll see them in the far right column.

I stopped short of using LoutTwitter to create a daily tweet summary post in this blog. It looks very cool, but I'm not sure all of my HUGE (haha) cares about my micro-blogging.


PortableApps Saves My Bacon

I have been a fan of PortableApps for a couple of years. It's a really neat concept - package useful applictions in a small, self-contained format so that they can easily be run from a USB stick or drive. This way, you can take your apps with you as you move from computer to computer. Over the last week however, I've been using PortableApps in a different manner.

Lately I've been having numerous computer problems. I've been resisting reloading the operating system because I just did that a month ago. But the operating system didn't care - it just continued to degrade. First it was its distaste for USB hard drives, then came my mouse, finally (its pièce de résistance) it would just stop responding soon after I logged in. This rendered me completely unproductive at the client site.

Fortunately I was able to boot to Windows PE (pre-installation environment with very little features and services - like safe mode only safer and more padded - like an asylum). I jammed my PortableApps USB stick in a USB slot. The menu did not work, however you can navigate to the exe's in a command line and launch them. This allowed me to use Firefox, 7-Zip, and OpenOffice to maintain some productivity while I worked to fix my system. Brilliant!

In short, as part of your personal disaster recovery strategy I recommend that you create a PortableApps device. It can help you keep working on some level until you can get your system restored to working order.