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

Monday, July 22, 2013

Firefox vs. everybody else

I've been a Firefox fan for a lot of years. In fact, I encourage you to download it here, since I think it is one of the most remarkable efforts in Internet to make the users' lives better. However, I've seen lately that Firefox is losing some battler against Chrome and...Internet Explorer. There are some specific details about that browser battle that I'd like to write about here. And I'm not talking about speed, which is one of the most considered aspects when evaluating browsers between them. I'm talking about the user side, and the agreements that makes the survival of an application in the market. The following considerations are taken from my own experiences, so maybe they don't apply to your own.

Some days ago, I stumbled upon a problem with Firefox and Chrome: Volume cannot changed in Youtube! I don't have enough time, so I just switched to Internet Explorer, since Youtube is working fine in that browser.

My problems didn't end there. I wanted to go back to Firefox, after a long time using Chrome, so I started writing an article there. Then I realized that the scrolls of Blogger don't work very well in Firefox. Another bug.

I was willing to give Firefox as many chances as it may need, so I continued writing. As I kept going, I noticed that I missed the built-in grammar checker from Chrome.

Afterwards, when I was at work, I wanted to check a website that I bookmarked the day before, and I remembered that Firefox does not have synchronization with my Gmail account. This was the point when I realized that Firefox may be losing market share not because of lack of quality, but because it does not have the support from big Internet enterprises (e.g. Google). This wouldn't be the first time a quality product shrinks its market share because it doesn't have that kind of support. Linux is a great example of this: One of the main problems with that great OS is that we don't have good drivers, games, and specially commercial apps from big companies such as Microsoft.

Recently I received a mail by Apple, announcing the new iWork online services. I was very excited until I read this:
I know that this is only a Beta version for this new service, but it caught my attention. Firefox is one of the most used browsers in Internet, and Apple decided not to use it with iWork for the moment.

According to w3schools.com, right now Chrome is the most popular browser on Internet. And Firefox is missing the mobile market as well: Right now, there is no Firefox for iDevices, which is a great loss, since iOS represents a great part of the mobile Internet access, as we can see in the next table:
Focusing only on desktop usage, Firefox has fallen to the 3rd place:
And why is that? What is Firefox missing?

Here are some points I consider when using those web browsers:
  • Firefox: The addons. There are a lot of useful addons, including DownTemAll and Firebug.
  • Internet Explorer: There are some applications, especially developed by Microsoft, that only run properly in Internet Explorer. That means that this browser will never lose its market share completely. The stay, one way or another.
  • Chrome: The synchronization with a Google account, the excellent mobile version, the total compatibility with Google's services, the built in flash plugin.
And the flaws:
  • Firefox: Lately, some weir bugs. No Firefox for Apple Devices.
  • Internet Explorer: Lack of plugins, especially for the Metro version.
  • Chrome: Lack of some addons that made Firefox cool to use.
I didn't make tests of speed, memory management and things like that, because there are plenty of them on the web. Instead, I just made some points from the point of view of a simple user. And from this point of view, Chrome is winning.

Sunday, July 21, 2013

Backup Database and send it to FTP server (All-in-one tool)

I already wrote about comparing 2 databases with a great tool. Now I'm going to talk about another cool application that comes with a lot of features to support database backups creation. What is interesting about this app is that it is basically an all-in-one solution for creating backups. The name of the tool is pretty simple: SQL Backup and FTP (http://sqlbackupandftp.com/?ref=243).


What I'm going to do is:
  • Create a database in SQL Server 2012 Express.
  • Back it up.
  • Compress it.
  • Upload it to Dropbox.
You may notice that I'm using Windows Server 2008 in some screenshots, and Windows 8 in others. I just wanted to test the app with these two OS. Don't worry, I'm doing EXACTLY the same thing in both machines.

Let's begin.

Requirements:
  • Microsoft SQL Server 2012 Express. Get it here. The program is compatible with other SQL Server versions too, but I wanted the latest version available. Anyway, you can check the compatibility here.
  • SQL Server Management Studio.
  • The famous Advetureworks sample database. Get it here.
  • SQL Backup and FTP. Get it here.
  • A Dropbox account. Get one here.
Steps:

Attach the Advetureworks database to SQL Server 2012

1. Unzip the Advertureworks database in a folder.
2. Open SQL Server Management Studio and connect.
3. Right click on Databases>Attach...
4. Click Add...
5. Browse to the folder where you extracted the database and select it. Don't worry for the log file.
6. Click OK twice.
Now you have your database attached. Take into account that the database file does not change its location.

Backup Adventureworks database and store it in Dropbox

1. Open SQL Backup and FTP
2. You'll see that the existent databases are already listed in the program.
3. Select the database you want to backup. In this case, I selected the Advertureworks database.
4. Add a backup destination. This is one of the main features of the program: to back up directly in a remote location. As an example, I'll save my backup in Dropbox. So, click Add backup destination.
5. Select Dropbox.
6. Now, you may have noticed that there is a limit for uploads.
The database we are using in this example weighs more than 190MB. So, what to do? This app has solutions for this kind of problems.
7. Close the Dropbox Settings dialog.
8. Click on Advanced
9. In the Advance Settings dialog you can see several options. They're pretty straightforward. What we want now is to set the compression level so we have a backup as small as possible. Set Compression Level to Highest. Now click Save & Close.
10. Check Send e-mail confirmations and enter a mail address where you want to have the confirmations. This is just to check this feature, this step is optional.
11. Check Schedule this job and set a time 15 minutes ahead from now. As with the last step, this is optional. Just in case, this will create a backup daily, at the same time every day.

12. We still have to configure Dropbox. So, click again on Add backup destination>Authorize...
The Dropbox website will be opened. Enter your credentials and press Sign in.
13. Click Allow to allow the program to create a folder in Dropbox.
You'll get a success screen:
14. Go back to the application and press Finish. With this, you have SQL Backup and FTP and Dropbox linked. Just press Save & Close.
15. Now, you are ready to go. You'll see that the Dropbox symbol appears in the main screen of the application. Press Run Now.
You'll see the jobs running now. That's all, everything's set and will execute automatically.
Wait a little and you'll see the final message:
I got a mail from the application telling me about the backup:
And the backup is in my Dropbox:
Great, isn't it?

Some extra features

That was the basic usage of this tool, but there are some other features worth to mention. I'll list some of them here, but you can download the program for free here, so you can test it yourself.

Multiple backup destinations
There is more than one option for backup destination. The following image shows it:
Althoug you have the Dropbox and Box options in the free trial version, I'd recommend to buy a more advanced version in order to use Google Drive and SkyDrive, sine these are cloud services that are becomming more popular as the time goes by. You also have the option to upload the backup to your own ftp server.

Encryption for compressed backups (Professional version only)

This is mandatory if you want better security for your backups. This is available only for the Professional version.
This is great program, very useful. So far I haven't heard about another tool that does what this app does. It's very, very easy to use, so I recommend to download from here: http://sqlbackupandftp.com/?ref=243.

Give it a try!

Monday, July 8, 2013

How to install ssh in Cygwin

As I said in this article, Cygwin allows to access a Windows machine via ssh. This can be very useful to run commands when programming for both Windows and Linux, and in other cases I haven't thought of yet.


Requirements:

  • Cygwin installed in a Windows machine. Cygwin must have the ssh packages selected. To know how to do it, check this.
  • PuTTY. This will be used to check if everything is working as expected. Get PuTTY here

Steps:

1. Once you have Cygwin installed with the ssh packages, run the Cygwin console as Administrator.
2. In the console, enter:
ssh-host-config

 3. For the question "Should privilege separation be used?", enter Yes
 4. For the question "new local account 'sshd'?", enter Yes
5. For the question "Do you want to install sshd as a service?", enter Yes. For "Enter the value of CYGWIN for the daemon:", enter ntsec.
6. For the question "Do you want to use a different name?", enter No.
7. For the question "Create new privileged user account 'cyg_server'?", enter Yes.
8. Enter a password twice:
9. That's it! Now you have to start the service by typing:
net start sshd 
10. Let's see if this is working. Open PuTTY. Now, enter the IP number of the computer with Cygwin in the Host Name field (you can do this within the same computer) and press Open:
11. Press Yes in the Security Alert.
12. Now, enter the user of the computer with Cygwin and the password you set. If you see something like the picture, you're done. You are accessing a Windows machine through ssh!

Saturday, July 6, 2013

How to install Cygwin offline

Cygwin is a very interesting piece of software. It is basically like a Linux emulator for Windows. It allows to do a lot of linux-thing in a Windows environment. At work, I had to access a Windows machine via ssh, so I had to install Cygwin in a virtual machine. The problem is that, for security reasons, Virtual Machines cannot access internet. So, I had to install Cygwin without connection. Here's a brief guide to do that.


Requirements:
Steps:

1. On the machine with access to Internet, execute setup.exe as Administrator.
2. Click Next
3. Select Download Without Installing and click Next
4. Select a folder where the Cygwin files will be downloaded and click Next.
5. Select your connection type and click Next. In most cases, Direct Connection should be fine.
6. Select A Download Site. I recommend anything but box-soft.com. It's the slowest download site I tested here. So, highlight a site and click Next.
7. The program will a downloading:

8. Next, you'll see the Cygwin packages. Now you can select which packages will be downloaded. You could download them all, but trust me, it's very unlikely that you need more than the basic packages here. Anyway, type "open" in the Search textbox. Expand Net and click on "Skip" for opwnssh and openssl (this is for having ssh access to your machine, configurations will be explained in the next article). You should see something like this:
Now press Next.
8. You'll see a warning about dependencies. Just click Next.
Now you have to wait a little bit for the files to be downloaded:
9. When the downloads are completed, you should see this:
Just press Finish.
10. Copy the folder where you downloaded the Cygwin files to the Virtual Machine without access to internet. In my case, that folder is D:\Cygwin downloaded files. Also, copy the setup.exe file.
11. Run setup.exe AS ADMINISTRATOR. If you run this without the appropriate privileges, you'll install Cygwin, but you'll get weird errors when using it. One it is open, press Next.
12. Select Install from Local Directory and press Next.
13. In Root Directory, select where will Cygwin will be installed. This folder will be like root from the Cygwin point of view. Check All Users (RECOMMENDED) and press Next.
14. Select the folder with the downloaded Cygwin files and press Next.
15. Typen "open" in the search textbox and enable openssh and openssl again. Press Next twice.
16. You'll see that Cygwin is being installed. When it finishes, just press Finish:

That's it! Now you can double click the Cygwin icon in the desktop and try some commands. I hope this is useful for you! Have fun!