Skype in Ubuntu (with wine)

There is a native Skype client for Ubuntu, but for voice calls, it just doesn’t work! I’m running Ubuntu 9.04 (64-bit) on a Dell Latitude 5500. Sound works just fine for other applications, so why not Skype?

I investigated using wine. And after a number of trials, I can confidently say that I found a working combination. I’m running wine release 1.01 (stable release that comes with Ubuntu). The latest version of Skype doesn’t work, so I had to look for an older version. Skype version running in Windows 98 mode on wine does the job!

I’ve tested using the default test call as well as with a friend. And no problems so far!

I’m feeling sleepy now…. ZZZzzzz… goodnight!

Different kinds of virtualizations

According to ,

Virtualization is a broad term that refers to abstraction of computer resources

It’s primarily used by organizations to conserve physical space (apart from other reasons). Consider an organization that has a lot of PCs. For a system administrator, it’s a task to move around managing all those systems. Enter virtualization. What we can now do, is, instead of having many low-performance systems, we can install a single powerful, high-performance system. All the earlier systems can be virtualized in this single system. To the end user, there should be no difference. But to an administrator, it’s a lot of work saved, and by some reports, your power bill goes down as well.

There are many kinds of virtualization technologies, the 3 most prominent are,

  • para virtualization
  • full virtualization
  • OS virtualization

This is what fits exactly with the explanation above. We can run multiple OS’s in our host system. As far as the guest systems are concerned, they are running on their own individual hardware. The host takes care of all the calls that the guests make into the hardware and translates them accordingly. An example of this is KVM.

There exists a performance drop in full-virtualization due to the overhead needed by the host-OS to translate the calls made by the guest OS’s into the hardware. One way around this limitation is to let the guest OS be aware that it’s virtualized. The result, is that when needed to access the low-level hardware, the guest OS makes a different kind of request (than usual) into the host system. The host understands this better and as a result we get better performance than in a full-virtualized system. A limitation with this system, the obvious, is that we’ll need to modify the guest OS to make it virtualization-aware. And to my knowledge, these modified guests cannot run on regular hardware. They must stay in a virtual environment. An example of this is Xen.

I made this term up. It seems that there is no “name” associated with it, yet. It’s very similar to para-virtualization in many respects. The difference is that we don’t virtualize the hardware here, but rather the OS. It’s a concept I’m not too comfortable with, but it works by sharing a single kernel between the host system and the guests. The result is that the guest systems perform at native speeds. The caveat is we’re limited to Linux systems. You can’t virtualize anything else. An example is OpenVZ.

PATH variables, text editors and java

I decided to brush up on my Java skills. It’s been some 2 years since I did any serious programming with it, and I felt that it was time to sharpen my axe. Installing the JDK was easy. Just follow the steps in the installer-setup. After that, it was a matter of setting the Environment Variables in XP. Just update the PATH, right ?

Turns out, it’s not quite as simple as that.

There are 2 kinds of Environment Variables. We have the usual system variables and we also have the user-specific variables. I didn’t want to mess things up for other users on my system, so I created a new Environment Variable “PATH” in the user-specific section and pointed it to my JDK installation. To test it, I opened up the command-prompt and ran “javac”. It worked. So, things should now be all setup? (hopefully ..?)

As, I’m doing this for a refresher course, I decided to use Notepad++. You can configure the program to run your own custom scripts. I attempted to set it up. … Long story short, it didn’t work. I tried similar settings with Geany, but that also failed.

It took me about 3 days to figure it out, but what was happening was that the text editors refused to look/accept the user-defined system variables. After I added the javac path to the main system-list, things have started working well.

Why do we even have this “User variables” as part of the Environment Variables in Windows if no program seems to make use of it ?!? For now, I’ll chalk it up to bad/lax design on Microsoft’s part.

Symbolic links in XP !?!

They really do exist !! … well on NTFS partitions anyway. And I never knew, until today. For better or worse, there doesn’t seem to be any native or built-in way to create them with XP. You need to go to Microsoft’s site and download the “junction” tool. (With Vista, it seems a command-line tool is built-in)

There are limitations. The symbolic linking is limited to directories only.

I came across this when searching for a way to share Picasa3 settings among multiple users on the same system. There are 2 users on my home desktop. Mom and me. I know my mother loves to see family pictures, and would like everything organized, but she’s not upto it. And this is where the default Picasa setup fails me.

If you have multiple users on the same system, Picasa keeps separate settings for the both of them. For normal situations, I guess that makes sense. But not in my home. I needed to set things up so that I could do the picture tagging/arranging/organizing from MY account. And my mother would see the results from HER account.

So, with the help of the “junction” tool, I set up symbolic links from the corresponding user directories to a common location. And it works !! (At least, in initial testing so far)

I really wish I knew about this earlier.

For reference these are the 2 blog posts that helped me (also, thanks to the members of ATforums),

TortoiseHg – still needs work

I’m a big fan of version control. My preference is SVN. I’ve known for a long time about the benefits of distributed version control . Recently, I introduced my brother to the joy of version control. I setup a SVN server on my desktop (Win 7 RC) and he used his laptop (Vista SP2) to connect to it.

The first day, things went fine. The trouble began after that. A problem with this setup is that we need our desktop ON to perform any real work. So, I decided to check-out Mercurial . I can get along just fine with bash or the command prompt, but for my brother, that’s a serious put-off. “Not a problem”, I said to myself. I mean, there is TortoiseHg, correct? (version 0.8.0 at this time)
I installed it and I really liked what I saw. A nice easy-to-setup way to handle revision control !! It was tricky, but for the most part I found that I could follow the selenic tutorial just fine. That was until I came across the conflict part.
I just CANNOT find a comfortable way to resolve conflicts using TortoiseHg!! The closest I found was to just merge from only 1 parent, but it seems that I lose the changes from the other parent then.
In this situation, TortoiseSVN is MUST better. It creates 4 files, ORIGINAL (with markers), ORIGINAL.mine (local changes) , ORIGINAL.oldrevision and ORIGINAL.latestrevision. At this point, its just a matter for me to update to the latest version and compare with these files to see how to merge my changes.
But TortoiseHg does not seem that easy. I keep getting this error message saying “not resolved, please run hg resolve” (or something similar). And this is the problem. Using the GUI tool, I cannot seem to resolve my conflict.
I really like the rest of the way TortoiseHg handles things, especially the changelog. It’s great. But for me this conflict issue is the real downer. Hopefully, the matter will get fixed in a later release. Until then, I’m either going to continue with SVN or look for another distributed version control system.