How to view documents using Visual Studio

View documents in Visual Studio with an amazing tool

Xpath Axes

A very useful trick for automation

Review: Spire.DataExport for .NET

A great tool for exporting data in .NET

How to install Arch Linux, step by step, for VMware Workstation (Part I)

First part of a installation tutorial for this beloved OS

How to setup a local repository in Ubuntu

The steps to have a local repo in Ubuntu

Sunday, March 30, 2014

Install 32 bit applications in eOS 64

As I already mentioned, I'm very enthusiastic about elementary OS (eOS). So, since LibreOffice is not included by default, I wanted to try some other office option for Linux. I found Kingsoft Office, and I think it's a great office suite that everyone should try. Let's face it, LibreOffice is not a real option against Microsoft Office.

The only problem is that, for the moment, there's no 64 bit version of Kingsoft Office, and if you try to install it you'll get several and annoying errors. So, here's how I installed this in eOS:


1. First, update the repositories with:

sudo apt-get update

2. Install the dependencies for the libraries needed for 32 bit applications:

sudo apt-get install gtk2-engines-murrine:i386

After installing that, enter:

sudo apt-get install ia32-libs-multiarch

2. Install 32 bit libraries. After you have installed the dependencies, install the libraries needed to run 32 bit applications:

sudo apt-get install ia32-libs

3. That's it!! It could take a while if you're connection is slow. But now you can install an 32 bit application just to test what you just did. I recommend Kingsoft Office. Download the .dep package here:

Once you have the file, place it on the /home/<user> folder. From a command line, enter:

sudo dpkg -i king*.deb

If everything goes right, you should be able to start one of the applications of this office suite. Check this:

Monday, March 24, 2014

How to mount drives automatically at start up in eOS

Note: This works for any Ubuntu derived Linux too.

I'm currently using elementary OS and I love it. It's the first time I'm using Linux more than Windows. So, one problem that I never taken care of was mounting the different drives that I have in my machine. I have eOS and Windows 8.1 in the same machine because sometimes I need some Windows programs (e.g. Adobe Photoshop), and I really need all my drive mounted when I start the PC. It is actually very simple.


1. Check the drivers' UUID. Open a terminal and enter:

sudo blkid

All drivers will be displayed with some specifications. You'll see something like this:
There are all your drives with label, UUID and type. For example, if you have a Windows partition labeled as "Games", you'll see an entry like this:

/dev/sdb5: LABEL="Games" UUID="01CD7BD100937EE0" TYPE="ntfs"

2. Create mount points. This is like creating a spot for each drive to be mounted. So, if you have 3 partitions to mount, you have to perform this step 3 times. In a terminal, enter the following command:

sudo mkdir /media/<label>

For example, if you want to mount the "Games" partition, you should enter:

sudo mkdir /media/Games

You can name the spot as you like, but I think it-s a good idea to use the label of the drive, to avoid confusion. A quick advise: don't access the drives that you want to mount yet. You have to do this with those drives unmounted, or you may have some errors.

3. Edit fstab. This is only a configuration file. You have to add some entries for the drives to mount at start up. To do that, enter in a terminal:

sudo gedit /etc/fstab

Just in case, gedit is just a text editor. If don't have it already, enter: sudo apt-get install gedit to install it first.

In the text file that was opened, you'll see some entries for the current drives that are mounted:
Now, you have to add one line for each drive you want to mount. You should use the following template for the entries:

UUID=519CB82E5888AD0F  /media/Data  ntfs-3g  defaults,windows_names,locale=en_US.utf8  0 0

If you see closely, you'll notice that this structure corresponds to a proposed structure in the fstab file:
So, with that template above, just replace the UUID, the mount point and the locale if necessary (enter locale -a in a terminal to see which one you use). Once you save the file, the drives will be mounted automatically next time you reboot the machine. To mount all the drives now, enter:

sudo mount -a

Hope this is useful!

Saturday, March 22, 2014

Elementary OS: Great Linux Distro!!!

I've written a lot about Linux here, especially Ubuntu and its derivatives. I think that once a person gets used to Linux, everything looks clearer and the advantages of this OS begin to show up. However, changing from Windows to Linux not always meets the expectations. A user usually wants to see speed enhancements, ease of use or some other characteristics other than just philosophy. Knowing that you are using an Open Source OS doesn't make it better. Well, at least that's true for the common users, not Linux fanboys.

I recently installed Linux Mint because I read great reviews on it, but I was disappointed. The Cinnamon desktop looks ugly for my taste, and I'm not the only one. But worse, I had Linux Mint and Windows 8.1 in the same machine, and Windows was notably faster! I had a lot of problems working, and it crashed once.

I know that there are a lot of fans of Linux Mint out there, but it just didn't work for me. I already tried Ubuntu once, but it was almost the same: it was slower than Windows.

So, I decided to try something new, not only based in the popularity. And I found this jewel: Elementary OS.

In fact, I'm using it right now. There's a big list of things that I like about this distro. I'll mention just a few of them:

User interface

The user interface is very simple and intuitive. What I liked the best was the multitasking management. You have access to everything using the "windows" key. Pressing windows + w shows all the active windows. This is very useful, and I'm using it more than the traditional alt + tab. In general, it looks a lot like Mac OS, but with a solid identity. Here's a video from the official website showing multitasking and some other things:

If you install it and start using it, you'll notice that there's no "minimize" button in the windows. This can be solved by installing elementary-tweaks, a package with some interesting enhancements that should have came by default. Here's a windows with a Mac style:

Linux Mint: Slow (in my case), boring, and...not so pretty.
Ubuntu: Not everyone likes Unity. It gets even slower than Mint sometimes.

Just in case, I'm not saying that Mint and Ubuntu are bad. I'm just making an opinion about my personal experience. And Elementary OS is way easier to use than those other 2 popular Linux distros.


Elementary OS is very fast. All the applications load quickly and the navigation between windows is very smooth, even though there are some nice visual effects going on all the time. I found it faster than Windows 8.1, Ubuntu 13 and Linux Mint 16. I haven't made a detailed research about this (I didn't use any performance monitor tool, for example), but I did use each of those OSs for about a month and the best is, definitely, elementary OS. One thing that I didn't like about switching from Windows to any Linux distro is that the screen was frozen every time I used some application that consumes resources heavily, like VMware. This was solved when I tried elementary OS Luna.

Built-in apps

Ok, here I have some contradictory opinions. On one hand, we have great apps, like Music. This is a little music player that works as expected every time. Again, is faster than Amarok and Banshee (which caused mi Linux mint to freeze in an old computer). It's very easy to use and resembles iTunes, but with an own identity, just like the OS in general.
On the other hand, there are apps like Midori (a browser) and Geary Mail. I don't say they are bad, but they can't compete with Chromium/Firefox and Firebird. These are enormous projects and I don't think that creating new apps against those monsters will be a good strategy, but I can see the intention: elementary OS aspires to have a unique look, feel, identity and experience. If they can achieve a certain level of quality, I think they'll have one of the most popular Linux distros in the world.

You can enjoy these apps, they are great and if you are not  a super specialized user, you won't need anything else. However, installing Chromium, VLC and other is very easy, just like in Ubuntu.

It looks good

This is the first time I can say that a Linux OS looks better than Windows. And not only that, everything is very usable. It simply looks good, beginning with the logo!

Based on Ubuntu

All Ubuntu repositories are present for elementary OS. That means that you have immediate access to thousands of free apps from the very beginning!


Of course, there are some disadvantages too. But they're not too serious as you can see:

  • No office apps: eOS (elementary OS) does not include Libre Office. How much does it take to install it? 10 minutes?
  • Missing plugins: Some plugins, especially for music and video, are not included by default.
  • No Chromium nor Firefox: Again, they can be easily installed.
As a conclusion, my brother came here a couple of minutes ago. He's a lawyer, so he doesn't know anything about computers. But when he saw my desktop he said: "I'll try Linux this time!". I'll install eOS Luna in his Laptop. 

You can read more about this here:

This is recommendation!

Saturday, March 1, 2014

How to prevent Jenkins from killing started processes in Linux

This is a tricky situation. I stumbled upon this when working with Jenkins to automatize some processes. Here's the scenario:

Imagine that you have to start a service in a remote Linux machine from Jenkins using, for example, an Ant script. You'll notice that the service starts normally, but it stops working after Jenkins has finished its task. This happens because the design of Jenkins automatically kills any process left running in Linux machines. I imagine that this is because they didn't want to leave any garbage in the managed machines. However, sometimes this is an annoying problem and it usually takes a lot of time to get rid of.

To solve this, open the Jenkins dashboard an go to: Manage Jenkins > Configure System
To solve this problem with Jenkins you have to configure an internal environment variable. To do that, go to the "Global Properties" section and check "Environment variables":
Now click Add. In "name", enter BUILD_ID. In "value" enter dontKillMe. Then click "Save".
That's all! From now on, Jenkins won't kill the processes it started in Linux machines. Give it a try!