Flowchart: which open source license should I use?

Choosing open source license flowchart This is a common question when one wants to publish a new open source project, especially if he/she is new to open source licensing scheme. The many available choices of the license can be very confusing and many people simply pick a license without really understanding the meaning or the clauses in the license. Some choose a license by the popularity. Some because a particular license is used in their favorite projects. Even worse, some even choose a license because it looks or sounds cool.

There are many resources on the Web that provide comparison of the available licenses. I want to make it simpler by creating a flowchart to guide you to pick the right license for your project. To reduce confusion, I’ll only list the most common open source licenses. You can click on the flowchart to enlarge it.

Typing ASCII or accented characters in Linux rdesktop

My thin-client desktop is running Debian Linux with the Gnome window manager. When I use it to connect to my Windows Server VM using rdesktop, I usually get a problem when trying to type ASCII or accented (French) characters. For example, when typing Alt 130, I am expecting to get the é character. Instead, it’s only printing 30 (the 1 character was omitted).

It drives me crazy since I have to type a lot of these accented, especially French, characters. Fortunately, later I found that turning off the Num Lock fixed this problem. Yes, for some reason, I can’t type the ASCII characters with the keyboard’s Num Lock on.

Actually, working with Linux rdesktop to connect to a Windows machine is very annoying. Aside from the problem I just described, I still have more issues that yet to be solved:

  1. I can’t set the window title bar to auto-hide like the Windows’ remote desktop functionality. This title bar takes some very valuable screen estate. And it looks ugly having two cascading title bars: from the Linux rdesktop program and from the Windows applications.
    Sure I can maximize the rdesktop window to full screen, but then, it doesn’t work very well with my multi-monitor configuration.
  2. Sometimes, the mouse pointer will break and the pointer’s image get corrupted. I haven’t found a quick way to fix or restore it aside from restarting the window manager or the OS session.
  3. The Ctrl+Alt key combination sometimes behaves erratically that messes up the subsequent key presses. I have to change the focus outside the rdesktop window if this happens. I tried to remove all key bindings from the host Linux OS but still no improvement.

I love how this just works in Windows.

LiquidSilver switches to Mercurial on CodePlex

As you may have noticed, CodePlex now supports Mercurial as the source control. Mercurial is a free and distributed version control system. It’s currently gaining a high momentum that big projects like Mozilla, OpenSolaris, OpenOffice.org, Symbian OS, and many others are now using it. Aside from CodePlex, other project hosting sites like Google Code, bitbucket, and SourceForge also offer Mercurial support.

Because DVCS has many advantages over traditional centralized VCS such as Subversion or CVS, I also decided to switch to Mercurial for managing the source code of LiquidSilver.

Setting Up Mercurial on CodePlex

If you’re starting a new project, CodePlex will give you the option to use Mercurial as your version control system. For existing projects, unfortunately, you cannot switch to Mercurial by yourself. Instead, if you are a project owner, you can contact CodePlex using the contact form and tell your intention to switch to Mercurial. Ensure that you’re logged in when doing this and mention your project name, user name, and the email address associated to your user name.

For me, it took less than 24 hours before CodePlex responded to my request and LiquidSilver had been migrated to Mercurial. All the versions and labels were intact and I could clone the repository successfully. Thanks, CodePlex.

Using Mercurial

If you are just starting and not familiar with Mercurial or any DVCS in general, it can be confusing at first since the concept is different. Fortunately, Joel Spolsky has composed a wonderful tutorial site called Hg Init that can very quickly and greatly help you understand DVCS or Mercurial in particular. I highly recommend you to visit it. You can also learn Mercurial from its official learning site or the book.

Although you can use Mercurial entirely from the command line interface, you may find it easier or more comfortable to use TortoiseHg that provides a friendly and familiar (if you have used TortoiseCVS or TortoiseSVN before) interface for Windows users.

Visual Studio users can benefit from VisualHG, a Visual Studio extension that can give you real-time visual status updates on your files from within the Visual Studio Solution Explorer window. VisualHG depends on TortoiseHg to execute the Mercurial commands.

Now, have fun with Mercurial.