Category Archives: Research

Blocks Versus Files

This topic presents an interesting problem.  A disk is made up of sectors which are arranged as clusters by the file system.  Both NTFS and FAT use a cluster model to clump together sectors into bigger chunks.  The cluster model has been around since the original DOS and still runs strong today.  The boot sector of the volume contains how many sectors of a certain size belong to one cluster.  On my Vista system the clusters are 4K (8 sectors of 512 bytes each).  This can vary for USB Flash Drives and smaller hard drives.  My flash drive reports a cluster size of 32K (64 sectors/cluster).  All of this is fine but then the question becomes why should I care?

The answer becomes more relevant when virtualization comes into the picture.  For a VM, the disk is virtual and is actually a file within another file system (most of the time).  Microsoft and Citrix use the VHD format for the VM files.  The VHD specification is public knowledge since Microsoft has documented as of a couple of years ago.  Given that there is a VHD file, everything needed by the operating system is there.  However, it becomes very difficult to manage this information from the outside.  Yes, there are ways to mount VHD drives within a native operating system, but this process is not necessarily easy to automate.  Well, at least not for everyone.

Then a new factor enters the equation.  Since the outside tools cannot see inside the VHD to understand what Windows is actually using, it becomes very difficult to do any kind of analysis or consolidation.  Microsoft does have a solution for compressing a VHD with Virtual PC 2007.  Unfortunately, there are many steps and it involves executing code both inside and outside the VM.  Wouldn’t it be nice if this could be managed completely from the outside?  Wouldn’t it be nice if every cluster (block) was paired with a file?

This sounds difficult and overall the problem is very tough.  The benefits however would be huge.  Basically any file operation performed on the inside could potentially be performed on the outside.  This would include things like defragmentation and shrinking the VHD to get rid of the blank chunks.  It could also include peering into the VHD to see what is there and even the hope of doing updates.

Other possible ventures would include merging virtual disks and even creating virtual disks out of multiple virtual disks.  It is possible to focus on the files instead of the blocks, it would much more possible to have base and delta disks which would both be allowed to change but yet form a cohesive volume to the user.  It is good to dream.

The sources of information look promising.  Microsoft has published APIs related to defragmenting disks which can locate a file on disk.  The API also allow for cluster relocation.  Beyond this, there are projects for Linux to understand NTFS.  Those teams have done much to discover the structure of NTFS and have included this knowledge in their programs and their documentation.  With these kind of guidelines, with patience, NTFS starts to open up and new things become possible.

There is a bit of vagueness about going on here.  It is still too early to talk about in detail.  However, it does seem that specific tasks are within reach which did not look so possible before.  Combining the knowledge of VHD with NTFS to form new tools looks incredibly attractive.

The Mirror

There is a topic I’ve been meaning to cover for months now but just haven’t tackled it. It is more research based and certainly isn’t Citrix related (yet) but it so interesting that I had to write about it.

Earlier this year I found about Mirror Neurons and when I learned more about the topic, everything just made sense. The great thing about scientific research is that you are bound to hit something good with your persistence. Please take the time to explore the PBS site for Mirror Neurons and watch the video clip. It was first released in early 2005 but because they have done such a good job producing it, it still seems fresh.

This concept of having a section of our brain that empathizes with others actions explains so much. Most learned activities are committed to memory from having seen someone else perform them. The original name of this concept was “Monkey See, Monkey Do”.

The best part about this discovery is that it happened by accident. Researchers were doing brain research on monkeys and accidentally discovered the connection between seeing and doing in these neurons. The best way to describe this phenomenon is that doing and seeing become the same thing in the brain.

Personally I always find it easier to learn from someone doing it that just from words. This is especially true of any detailed instructions of assembly. Most fathers at some point have experienced this and most likely with the construction of either a bike or swing set the night before a birthday or holiday. Words just don’t convey the meaning as well as the sight of someone successfully doing the task.

This empathy is strong even when things go wrong. How many times have you averted your eyes when something bad is about to happen? Sometimes I can’t even watch what happens on TV even though it might be fictional. The mind can’t help but become entrapped in the illusion of being what it sees.

The video clip shows sports fans going absolutely crazy about their teams. This state makes sense once you assume that these people so closely associate with their players that they become the players in their mind.

This is where I try to introduce some Citrix angle to make it more interesting for those Citrix followers out there.

It isn’t so easy to cheer a programmer on, I can confess to saying. It is possible to become a believer in a company’s products and goals. I’ve seen that a number of times. It is always humbling to meet customers that believe so strongly in the Citrix story that they can see no wrong. That is where the pressure comes to try to live up to those expectations.

Knowing how this kind of stuff works, it would be wise for Citrix to build a story that would better resonate with end-users. Many companies use Citrix and many IT staff are full aware of what Citrix does, but most end users aren’t sure what they are using. I’ve heard remarks from family that they think they know people that use Citrix but not completely clear if they are. Usually a few weeks later it is confirmed (most likely from asking someone in IT).

The point is that if you have a good story and are visible to the users, the users will most likely use their “mirror neurons” to not only put themselves into the position of seeing the story of Citrix but also that they will think that they are part of Citrix. I think this is the secret of keeping things simple so that people can better understand and have empathy about your organization. I suspect that Apple understands this well.

They say good leaders don’t dictate. Good leaders do. The people follow by doing the same things. Words have little meaning when you can see what you want to be.

Here’s to the mirror. Let us all see a bit more clearly that which we should be doing.

When Choice Goes Bad

Years and years ago, I came to the conclusion that good software should only provide a few (3 – 5) choices of action at any given time. This was based on text menu systems before even the era of Windows or Mac. Personally, it just seemed too cluttered and too confusing to provide too many things to choose from. In part, I realized that having less choices made selection easier and definitely faster.

Move to the present and finally someone is declaring how this works. Barry Schwartz has written a book titled “The Paradox of Choice: Why More is Less” and has been promoting his ideas over the last few years. I found out about him from Richard Croft at the Sydney office. He has given talks to both Google and TED and both events were recorded and available on the Internet. The Google Talk version is approximately one hour long and covers the topic thoroughly. If you happen to watch this video, I would bet that you will change your mind about more choice always being a good thing.

Not only does Barry Schwartz cover the fundamentals of the current myths, but he also conclusively proves with market evidence that his theories are correct. It is a kind of wakeup call to companies that think that more options and products are always better. It is also important for software designers to realize that giving the user too much choice is likely to lead to a collapse and ultimately disuse.

My favorite aspect of his talk is that choice is directly related to personal freedom. Most free enterprise economies are based on competition which encourages more choice. This choice has a price however. The cost is that if the consumer is overloaded with too many possibilities, that nothing will be purchased and the person will go away disenchanted. In other words, having too much freedom can lead to frustration and ultimately not participating. Perhaps this is a factor in people in America not participating in elections. Logic would say this is not the case since there is only two major parties in America. However, if you look at the candidates based on policies, the choices become much more difficult. If decisions are too hard and people do not want to regret their decision, they simply will not make them.

From a Citrix angle, this video proves that the move towards simplifying the product line with Presentation Server was a very wise move. It also indicates that Citrix should do more more to better integrate product lines into a more composite solution with fewer choices to be made. Most customers do not want to have to choose all the time. Most would like for everything to work with almost no effort or decision. With Barry Schwartz’s theories, the minefield of too much choice can be navigated and even avoided. It’s nice to have such clarity from such a wise mind made available to the world.

Learning Common Sense

I’ve always been interested in the MIT Media Lab and also artificial intelligence since university. I’ve read a few books about projects there and have read some information about the Media Lab on the web. The projects are always interesting and usually end up in consumer products eventually.

Recently I was looking for any developments for software agents and came across a project that contains striving to teach a computer common sense. This project intends to teach computers that which is fairly easy for humans. Internet users can register at Open Mind Commons and become the computer’s teacher. It will probably be years before a computer will understand what we call Common Sense but this kind of project is a genesis for such a venture. If you are interested in the research paper, please visit http://www.openmind.org/papers/commons.pdf.

I just found out about it over the weekend and became addicted to trying to teach the system new concepts. It is incredibly frustrating and yet also invigorating to be the first to tell it something. For example, it seemed to understand the concept of money fairly well but struggled with the concept of a storm. It has the option of asking questions about certain words and I was getting things like “Can a storm be used as a weapon?”.

There are a few things that you realize with such a system. First of all, “Common Sense” really isn’t common. Secondly, it is very hard to convey meanings in text alone to a computer system.

Probably the hardest aspect to detect is nuances. In this category is words that have multiple meanings. Tonight I had an issue with Darwin being both a man and a city. I solved it by calling the person “Charles Darwin”. I think the computer system is still confused.

I recommend trying to teach the computer system what you consider common sense. Some of the questions it asks are quite good and also quite funny. It knows more than I suspected and also is very good at detecting duplicate information.

From a Citrix angle, this kind of research would benefit computers making sense of environments and the best operations from learning concepts that apply. It would certainly fit with the computer systems becoming more autonomous. It would also benefit the users that would be provided with a system that has more common sense.