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

Saturday, October 26, 2013

Free virtualization: VirtualBox

When it comes to virtualization, I honestly like VMware. It is one of the best platforms I ever tried to create and manage Virtual Machines. However, it is kind of expensive, and you are trying to run something in a Linux environment, you may want to have, as usual, a free alternative that works fine. That alternative is VirtualBox.

In this article I'll review some of the features of VirtualBox that I liked the most, and some others that, in my opinion, need to be improved.

I don't want to make a comparison between VirtualBox and VMware, because they belong to different worlds and it would be unfair to compare their features. However, I think there are some particular aspects that they share, and I'll be talking about compatibility with VMware

Installation

First of all, VirtualBox is available for Linux, Windows and Solaris. I don't use Solaris, so let's focus on Linux and Windows. If you have the last, the installation is very simple. You can download the installer from here and you'll get a "next, next" classic Windows installer.
Surprisingly enough, installation in Linux is easy too. You just have to open a terminal and type:

sudo apt-get install virtualbox

After the installation finishes, type: virtualbox and you'll see the VirtualBox main screen:
As you can see, you can have a virtualization platform for free in just few minutes. That's great!

Compatibility

This is something interesting: VMware disks can be managed by VirtualBox. So, a good way to share machines is just to share the disk and then deploy another machine. Unfortunately, Snapshot cannot be recovered from VMware. The following images show the same machine (well, disk) in VMware (the first) and VirtualBox (the second):

The steps I followed to clone this machine were:

1. Copy the disk of the VMware machine.
2. Create a new virtual machine in VirtualBox. Select the copied disk for the new VM.
3. Turn on the VM and that's it!

Using VirtualBox

Once the VM is turned on, you can notice some differences with VMware. For example, when you go to full screen, the VirtualBox bar is in the bottom of the screen. If you work a lot with VMware, this will be a little odd:

One tip I can give when creating VMs in VirtualBox is to select VMDK as disk type. This is just because it's compatible with VMware.
The logic of VirtualBox is different from VMware in some details. For example, there is a master key for some actions, it's called "Host". This is a customizable key. By default it's Right Control. Just to mention something, in VMware you can hit CTRL+ALT to move the mouse pointer without affecting the VM. In VirtualBox you need to press Host+I, in my case, Right CTRL+I.

This was just a first approach to VirtualBox, but I'll be writing more about it. It's one of the greatest free applications I ever used, definitely a quality option for virtualization.

Wednesday, October 23, 2013

How to add a Linux (Lubuntu) machine to a Windows domain

I know about many enterprises, specially in the third world, that need to use Linux machines because of the price of the software. I always thought that this kind of software is one of the best options for developing countries to integrate into the international tech community. Of course, there are some issues to correct when integrating Linux with other proprietary software, such as Windows. So, I decided to show how to add a Linux machine to a Windows Domain.


Requirements:
  • An Active Directory Domain. I used a Windows Server 2008 machine as Domain Controller.
  • A Linux Machine. I used a Lubuntu VM, I really like Lubuntu.
  • SSH installed in the Linux machine. You can get it with the following command:
sudo apt-get install openssh-server

Steps:

1. Create an Active Directory Domain. You can follow the instructions here.
2. Download PowerBroker Open Edition. You can get it here. You'll have to fill a short form and press "Get Started".
3. You'll receive a mail with the download link. Click it.
4. Download the file corresponding with the architecture of your Linux machine. Since I'm using Lubuntu here, I'll select the version for 32 bits for Ubuntu.
5. Copy the file to your Linux machine in a place that you can access easily.
6. Open a terminal and enter the following commands:

Go to the folder where you have the installer that you downloaded. In my case:

cd /home/jorge/powerbroker

Make the file executable:

chmod +x pbis-open-7.5.2.1527.linux.x86.deb.sh

Execute the file:

sudo ./pbis-open-7.5.2.1527.linux.x86.deb.sh

For the message:

Would you like to install package for legacy links? (i.e.  /opt/likewise/bin/lw-find-user-by-name -> /opt/pbis/bin/find-user-by-name) (yes/no)

Enter "no".

For the message:

Would you like to install now? (yes/no)

Enter "yes".

Now wait for the installation to finish.

7. Now, you'll see a windows like this:
Just minimize for the moment.
8. Go to Start>Preferences>Network Connections
9. Select your connection and click on Edit...
10. Open the IPv4 tab and set Method to Manual. Click on + Add and enter an IP address, a netmask and a gateway. In DNS Servers enter the IP of the Domain Controller, and in Search Domains enter the name of the domain. You could use the following image as an example. Then press Save:
You'll have to enter your password, and then you can ping the Domain Controller just to see if everything's OK.

11. By now, you should have a user already created in the Domain for the Linux machine. In my case, I have "Jorge" created:
The user must be in the Administrators group.
12. Remember the window that you minimized? Maximize it and enter the required data and then click Join Domain.
13. Enter the credentials of the user you created in Active Directory and press OK. If everything went well, you should see this:
Just press Close.
14. You did it! Now restart your system.
15. Once you restarted the machine, log in with the domain credentials. In my case: test\jorge. You can check the domain by opening a terminal and typing: dnsdomainname.
Or you can check if the computer was added in Active Directory:
And that's it!! I know it's not as easy as using only Windows machines, but believe me, there are many reasons to use Linux in this kind of environments.

As a conclusion, there are many other configurations to do in the Linux machines to secure it in the context of Active Directory, but I will write about it in the next article. Have fun!

Friday, October 18, 2013

Installing Eclipse with PyDev in Lubuntu

First of all, I think I'll use Lubuntu from now on. It's too practical because of its speed, I totally recommend it.

However, I'll show you here how to install Eclipse with PyDev in Lubuntu. I've been looking for a goo IDE for Python in Linux, and, believe it or not, a lot of the best options are commercial. That's kind of weird for Linux, but, in my opinion, Eclipse is the best free option around. Let's see how to do this.

Requirements:

Lubuntu (or Ubuntu).

Steps:

1. Go to "Start">System Tools>Lubuntu Software Center
2. Click on Add to the Apps Basket
3. Click on Apps Basket
4. Click on Install Packages and enter your password.
Now the packages will be downloaded and installed.
5. Once the download is done, go to Start>Programming>Eclipse
6. In Eclipse, go to Help>Install New Software
7. Click on Add and in Location enter http://pydev.org/updates. You can enter what you want in Name.
8. Select all the options and press Next twice.
9. Accept the terms of the licence agrrement and click Finish.
10. After that, you'll restart Eclipse and you have PyDev!

Wednesday, October 16, 2013

How to install VMware Tools in Lubuntu

I have to confess something: There are way too many situations when using Windows is the only option, especially for my work. So, I thought that having my PC with Linux is not possible. Nevertheless, I like to have Linux at hand, at least in a Virtual Machine, but the problem is that I have an old machine that runs Ubuntu very slow.


I love Ubuntu, I wrote about it several times here, here, and here, but I needed a lighter version for my hardware. And let's be honest: If you want some eye candy you already have Windows.

The logical option is Lubuntu. The main characteristic of this Linux distro is the speed. It is bassically Ubuntu without all the things that consume too much resources. Just what I need!

So, let me show you some features of this excellent OS that definitely deservers more attention.

The desktop of the latest version of Lubuntu looks like this:
Of course, this is not Unity. This is a simple Desktop Environment called Lightweight X11. It doesn't have almost any animation effects or anything like that, but it is fast, which is what we are looking for with this distro.

Lubuntu has at hand all the software available for Ubuntu, so that's great news, but it comes without some utilities. For example, when I installed as a VM, I had to do some extra steps to install VMware Tools, because you need GCC installed first.

Here's what I did:

- I opened a Termina (Control+Alt+T). Then I  updated the repositories:

sudo apt-get update
It takes a while to update everything.
Then, I typed the following commands:

sudo apt-get install build-essential linux-headers-$(uname -r)
That command installs gcc and other things. Now, enter the following commands:

cd /lib/modules/$(uname -r)/build/include/linux
sudo ln -s ../generated/utsrelease.h
sudo ln -s ../generated/autoconf.h
sudo ln -s ../generated/uapi/linux/version.h 

Now you are ready to install VMware Tools. The steps are really simple (if you want a deeper explanation of the following steps, read this):

- Click on "Install VMware tools"
- Open a Terminal and enter the following commands:

sudo mkdir /media/cdrom

sudo mount /dev/cdrom /media/cdrom

sudo cp /media/cdrom/VMwareTools*.tar.gz ~/Desktop

- Extract the .tar.gz file that appeared in the desktop in the same desktop.
- Back in the Terminal, enter:

cd ~/Desktop/vmware-tools-distrib

sudo ./vmware-install.pl

Reboot the machine and that's it, now you have VMware Tools installed in Lubuntu.

At least for the moment, Lubuntu is my choice for Linux. The fact is that, when you use Linux, you want performance and stability instead of visual effects. Remember that Linux used to be proud to be faster than Windows!

Monday, October 14, 2013

An amazing way to start learning a language: Duolingo review

I love learning about other cultures. I usually read a lot about other cultures on Internet, but some time ago I realized that the best way to know another culture is to learn its language. The language is the soul of any culture. Besides that, in the software world there is always the need for good applications for different parts of the world.

I'm learning German, and I found a great way to do it: Duolingo. The premise is simple: to provide a high quality learning experience in a fun way. And it delivers, believe me.
Duolingo can be accessed through a website (www.duolingo.com) and the corresponding app for iOS and Android. Once you get there, you can simply login with your Facebook account (as I did) and start "playing", because it has the feel of a fun videogame.
What I like about this site/app/videogame is that it get the language teaching right: When you learn another language, you should learn it as you learned your native language. You don't start teaching grammar to babies. You just point, say, a dog, and tell her "that's a DOG", until she understands that the noisy fur ball is a "dog". I already had some lessons and I can remember all the words used so far. And by the way, as any good game, you can publish your accomplishments in Facebook.
The game is simple: You have to guess the correct words with the aid of some clues, such as images, words suggestions and others. Every time you make a mistake, you lose a heart, but you get extra experience points for each heart that you keep until you complete the lesson.
The "game" is addictive, I can tell you. It gives you a sense of achievement every time you complete a lesson. And you can have it on the go as well. What else could you ask for? This is a recommendation.

Thursday, October 10, 2013

Android Story

Here's an interesting graphic I foung at http://www.startapp.com. It shows the story of Android up to this year. Very interesting, check it out!

Wednesday, October 9, 2013

Testing with images: Sikuli

There are a lot of testing tools. For example, you have Selenium to test web sites, or coded UI, or Robot Framework. However, there's always the necessity for a more flexible way to test. And remember that you don't always have a way to tell a testing tool what to do. What if you would want to teach a human to test a software? Of course, you just tell the person to click here and there. That's the approach of Sikuli, a great free tool that works with Python and images. Just as simple as that.

In this article I'll show how to use Sikuli with a simple example: Testing the Widows Calculator. So let's begin.

Requirements:

Sikuli X. You can get it here. You may need to scroll a little bit to find the file you need:
If you are using Windows, I recommend to download the portable .zip, since you don't have to install anything. That's what I downloaded, so I'll use it in the examples.

Using Sikuli:

First, open Sikuli. Extract the .zip file (in the case you chose that) and double click Sikuli-IDE.exe.
Now you'll see this:
Here you can create your test cases. What I want to test now is the Calculator, so I have to do some things first.

1. Create a shortcut for the Calculator in the Desktop.
2. Now take a screenshot of the desktop, where you have the Calculator shortcut. You need cut the image of the shortcut, just like this:
You can use any tool to do this, but save it with the extension .png.

3. What we are going to test is if the Calculator returns the correct result for 7+15, which is 22. To do this, we have to take images for 7, 1, 5, +, = and 22. So, you should have the following images:
4. Now go to Sikuli and start to write your script. You can copy the script I show in the following image:

To insert images, click and select the images you collected. Don't forget that line 8 has indentation (this is Python...).

5. Once you have that written, show the desktop. The only thing maximized has to be Sikuli. Press and the window will be minimized. Don't touch anything, the pointer will move to perform the actions indicated in the script. Finally, if everything went well, you should see something like this:
That means that the test passed. It is possible that you have some problems with this. If that happens, try recapturing the images.

As you can see Sikuli is a very powerful tool for testing, and not just for that. You can automate several things, depending on your imagination.