libview 0.5.3/0.5.4 released

Today, we released libview 0.5.3, with some awesome new widgets, such as FieldEntry and IPEntry. A short while later we released 0.5.4, which was a small bug fix release. It’s a really cool release/set of releases, and I think people will find FieldEntry/IPEntry interesting, as I haven’t seen anything like that in the GTK+ world yet.

I spent the past hour writing some documentation on what exactly libview consists of, complete with screenshots. It’s available on the Widgets and Classes page on I hope this is of interest to some people.

Assuming people are lazy, though, I’m posting screenshots of the new widgets below:


VMware Player – What’s the catch?

There has been a lot of excitement about VMware Player on Slashdot and other sites. I’ve also seen many people talk about it on IRC and some have messaged me with questions. Namely, what’s the catch? Why give away our virtualization platform? Are the VMs DRMed? Will they expire? Do they not work as well as in Workstation?

There’s no catch. This is the same virtualization platform we use in Workstation. The VMs are the same VMs. They won’t expire. They should work just as well in the Player as they do in Workstation.

Now, Workstation does have a number of features that take advantage of what virtualization can do. The Player does not have many of these features. Examples include multiple snapshots (which is an awesome feature, as many Workstation users will tell you), cloning, VM creation, and teams. It does suspend, however. If you close the Player while a VM is running, it will suspend. The next time you start it up, it will be in exactly the same place as when you left it.

Now, as to the question of why we’re doing this. Eventually, virtualization will be everywhere. Microsoft has said that Longhorn will contain (someday) contain virtualization support. Xen is another virtualization platform that someday will be available to all users for the tasks they need. Virtualization won’t be the interesting thing of tomorrow. What you do with it will be. For example, let’s look at multiple snapshots again. You can create snapshots of various configurations and sofware installations in your VM and then at any point revert back to one. If you’re about to upgrade your Windows XP VM to SP2, you can snapshot before the install. If things go horribly wrong, you can revert to that snapshot, and be exactly where you left off.

ESX’s VMotion is another example. With VMotion, you can move, say, a running database VM from one physical computer to another with no interruption. This is important for enterprises who may have to deal with a hardware failure. If a piece of hardware on the physical server is starting to go bad, you can move the running VMs to a good piece of hardware without any downtime at all. There’s more information about VMotion on the Virtual Center FAQs page.

Those are two very cool uses of virtualization, and there are many more that you will see in time. So, the platform, while still very important, no longer becomes the interesting part of it. It’s what virtualization allows you to do that just wasn’t possible or was very difficult before.

The other major question I have received is about third party software to create or modify VMs. Is this allowed? Will VMware go after you? I should make it clear first that I don’t speak for VMware in this post, and that everything stated is of my own opinion. Standard disclaimer, etc. Now, if you want to create or modify VMs, you can still get the free trial of Workstation and use that. Hopefully you’ll see all that it has to offer and buy it 🙂 If you’re a student, you can usually get discounts, and they’re often given out at VMware conferences. I hope that Workstation offers more value to most people than just being able to create VMs. That being said, I don’t believe we’d go after anybody that created such tools. (Insert standard disclaimer again 🙂

If you haven’t tried Workstation 5.5 beta yet, though, give it a try and see if it’s worth it first. It’s an awesome product.

So, yeah, in summary, no evil ulterior motive, just like there wasn’t with the release of libview, which is our cool widget library, built upon the wonderful gtkmm (like the rest of Workstation and the Player). We try to be a good company.

There’s a new player in town

I apologize for the subject line.

VMware announced today at VMworld 2005 the VMware Player for Windows and Linux. It’s a free program that allows users to use VMs without needing to purchase Workstation. It’s not a substitute for Workstation, as it won’t allow you to create or modify VMs or to snapshot them, but it’s still very useful. You can download VMs that others have created, such as from our collection of VMs on VMTN.

The Linux version of the Player was written mainly by Philip Langdale. He talks a bit more about it in his blog.

Included below are a couple of screenshots of the Player in action.

Windows 2000 VM
Fedora Core 4 VM

Updated: The Win2K thumbnail now actually points to the Win2K screenshot. Hey, look! The Incredible Machine!

Update 2: If you tried posting a comment on my blog, but had trouble, try again. It should all be sorted out now.

Widgets are bendable, flexible slabs of fun

I’ve been hacking on another sexy GtkEntry subclass, but this time, it’s not part of libsexy. It’s part of libview, VMware’s Incredibly Exciting Widgets. One of our developers built an IP Entry widget a short while ago, but it had some issues and just felt hard to use. I’ve never liked IP entries, particularly the windows ones, as they just felt too rigid and limiting. I always felt that I had to learn how to work for the widget instead of the widget working for me.

So I set out to do this right. I created a FieldEntry widget that is a GtkEntry subclass for displaying fields and validating fields. Users see delimiters spaced out evenly across the widget, just far enough for the content they are to display. Each field is center-aligned (this will be customizable in subclasses soon). The IPEntry subclasses this.

Now, the Windows IP entry are annoying for several reasons. I would like to list them now:

  • You can’t copy or paste an IP address. You can only copy or paste one field of the IP address.
  • Typing three digits in a field automatically jumps to the next field. If you made a mistake, you have to move the cursor to the left field and retype.
  • Clicking inbetween fields causes the very first field to be selected.

I know there are others. I’m just tired.

So, I’ve addressed all of these. Copying and pasting work beautifully. When you type three characters of an IP entry field (or maxFieldWidth of whatever the FieldEntry has set) it doesn’t jump to the next field. However, if you start typing the next number (which is what you do on the Windows one) it will then jump to the next field and insert the text. Typing the delimiter (‘.’ on IP entries) will jump as well. Backspacing just works, even across fields. Clicking inbetween fields moves to the nearest field. And much more!

Bottom line: It feels natural to use. It’s there largely as a visual aid, and to allow you to easily get to fields, and such. But it doesn’t force you to type in a certain model. If you’re used to the Windows one, this will feel natural. If you’re used to just typing an IP address into an entry, this will feel natural. I’m quite happy with this one.

Now, it’s written in C++ for GTKMM, so if you want to use it in your C program, you’ll have to port it. I would love to see any ports that people wish to do, but mainly, I’d want to see this in GTK+ someday. We’ll see.

It’s available in libview cvs on SourceForge (see the link above) in the “staging” branch (as it’s pending review for inclusion in HEAD). Please, if you find any bugs or have usability issues, I’d love to know them.

Update: As requested, a screenshot!

IP Entry

SexyIconEntry is now 67% sexier

The original GTK+ IconEntry widget has just gotten sexier!

I was in need of SexyIconEntry today for some work, and decided now was a good time to fix some of the problems I haven’t taken the time to fix in this widget, and add some features at the same time. To start with, SexyIconEntry now works correctly in all themes I have tested. Clearlooks’s GtkEntry border is no longer cut off, for instance. Also, the ability to put an icon on both sides has been added. See the sexy screenshot!

Such a sexy screenshot

And remember, this is an actual GtkEntry! Anything you can do to a GtkEntry, you can do to this.

I’m adding more features, like the ability to add a clear button with one API call, and icon drag-and-drop support, to the widget. It will be in an upcoming release (possibly tonight or tomorrow morning), along with some other nifty features in other widgets.

By the way, isn’t it about time we replace the asterisk in masked entries with that unicode character for the round filled circle (“●”)? The asterisk is so 1980s.

I am a leaf on the wind. Watch how I soar.

Okay, Serenity absolutely rocks, and if you haven’t seen it, you should. Preferably after watching at least a few episodes of Firefly first. It surpassed my expectations and I felt it was a good ending to the series. That is, if it’s really an end. Part of the credits indicated that they have reserved the rights for two more movies.

Largely, Serenity felt to me like a very long episode of Firefly, although more movie-like. Unlike the series, I think there was more action than quiet crew times. Still, I loved (almost) every moment of it. The audience laughed and cried through the movie, and to me, that makes it a success.