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

Thursday, June 23, 2016

Best Websites Speed Test Tools for Developers to Optimize Web Performance

There is no denying that speed is the crucial factor in the success of any website and it needs to be a priority for site managers always. So, next as you offer a lag-free and responsive user experience, also keep in mind that it’s the fast loading website that is pivotal and has direct impact on the entire performance of the website. Faster loading websites adds to the user engagement, conversion rates, SEO rankings and a lot more, in a wonderful manner.

Speed of your website has a huge impact on search rankings and sales as it influences them in a big way. Nearly half of web users expect the site to load in merely 2 seconds or even less, and they are most likely to abandon the site if it doesn’t load within 3 seconds.

Hence, it’s essential to improve website speed though it can be a daunting task involving a number of moving parts between onsite optimization to network and accessibility configurations. Meanwhile, when performance matters the most, it’s advised to take one step at a time. After all it’s always better that you start by running some tests and find out how fast he site really works.

Speed optimization testing tools

Here we offer the best website speed test tools which are most recommended ones on the basis of usability, accessibility and how comprehensive the reports are:

Google PageSpeed Insights

It’s the tool that grades the website on a scale of 1-100. So higher number signals your site is more optimized, whereas anything that above an 85 point to the fact that your website’s performance is good. With PageSpeed you get to know about the desktop as well as mobile versions of your site. You get tips to improve like need to minify CSS or optimize your images.

You also have a Chrome extension which enables you assess any page from the Developers Page Speed tab. PageSpeed Insights offers a balanced  outline of site speed and actions that need to be taken for better page performance and site.

A mobile report consists of an extra category known as ‘user experience’ that’s there in the site score and it comprises of viewport configuration, size of tap targets along with appropriate font sizes.

Yahoo Yslow

This open source project and tool is useful in analyzing web pages and allow you find out why they are slow on the basis of Yahoo!’s rules for high performance websites. As of now, Marcel Duran is responsible for its maintenance and he is one who is also involved in the WebPageTest project. This tools functions in three steps to get its performance test results:
  1. It crawls the DOM to recognize all components (image, scripts, etc.).
  2. You get to know about each component size (gzip, expire headers, etc.)
  3. Taking the data, it generates a grade for each rule that helps you have an overall grade.
YSlow has 23 varying rules that it runs your website against so it can be graded. The free YSlow chrome extension can be used by you or you can get the YSlow results from GTMetrix. Go through the comprehensive tutorial to know how you can enhance your YSlow score.


GTmetrix is highly useful in checking both PageSpeed as well as YSlow metrics. It assigns your site a grade from F to A and it divides the reports in five different sections, comprising of PageSpeed, YSlow, waterfall breakdown, video and history.
Go for the free registration as that allows you to test from seven different locations and you get to choose the browser, Chrome vs. Firefox. It allows you test and compare against different connection types (such as Cable vs. dial-up) so you know how it is going to affect your page loads. Other advanced features comprise of a video playback that allows you analyze where the bottleneck occurs and you can also run Adblock plus. With ads disabled you get to know how the site loading is affected.


Among the most prominent website speed test tools, Pingdom divides the reports into four various sections comprising of a waterfall breakdown, performance grade, page analysis and history.
With page analysis you get a complete overview with additional information like size analysis, size per domain, the number of requests per domain as well the kind of content you require for most requests.

Yellow Lab Tools

It’s one of the newest web performance and front-end quality testing tool that was developed by Gaël Métais. It offers you a lot of information and few unique features that you don’t see in other tools like a view of JavaScript interactions with the DOM during the loading of the page and other code validation issues. These below-mentioned qualifiers allow you find a global score:
  • Page weight
  • Requests
  • DOM
  • Bad Javascript
  • Bad CSS
  • Server Config

It’s a tool that has more than 40 locations to choose from with over 25 browsers that also includes mobile. You get a grade from F to A on the basis of various performance tests like FTTB, compression, caching, effective use of a CDN, and a lot more. This tool divides the reports in six sections including a summary, details, performance review, content breakdown and screenshots.
Running a first view and a repeat view, it allows diagnosing what could be a 1st time DNS lookup delay. WebPageTest offers various advanced features such as video capture, disabling Javascript, ignoring SSL certificates, and spoofing user agent strings.


So you have a number of website speed tools to choose from and many variable effective at determining which tool works best to test your site. However, if you look for something that can be used easily and produces a detailed report, then give these tools a try.

Author Biography

Arun Goyal is Founder-CEO at Octal Info Solution Technology innovation and trends insight come easy to Arun with his thorough knowledge in the domain. A leader in his own rights, his grad-friends see him as an avid researcher and a technology evangelist. See him talking about ideas, trends and technology as a part-time author to this blog. Follow him on Twitter, Facebook, LinkedIn and go through his ideas on distinct topics.

Wednesday, June 15, 2016

How to use the factory pattern with Java

Factory is a programming pattern that allows us to use an abstract class to create other classes. This is one of the most commonly used programming patterns I know, so I'm sure you'll use it at some point. Well, let's continue with the classic example:


Eclipse installed.


The idea behind the Factory Method is to have a 'factory' class that creates different types of classes depending on the parameter that we send. So, let's imagine that we have the 'Car' class, and we need to generate the classes 'BlackCar' and 'RedCar', depending on the parameter we send. So, create a new java project and and call it 'Testools':
New project Testools
Once you are inside the project, create the classes listed in the following image:
Classes for Factory
Let's walk through the classes:

This class is a "template" class. So, it will have empty methods that will be implemented when this class is instantiated. The code is:

Note that we create an abstract method called getColor(); this will be implemented in the inherited classes that we create for black and red cars.

Here, we override the abstract method to get the correct car color.

The same for the red cars.

This class will create black or red cars depending on the parameter we send.

Finally, we have a main class to run it all.

Notice that the parameter for the makeCar() method is "red", so a red car will be created. change the parameter to anything else and you'll get a black car. Let's run it:

Factory running
Also, a black car:

Black car

And that's the Factory pattern. I'll continue with more programming patterns in further articles. Have fun!

Friday, June 10, 2016

What is Planning Poker and how to use it

When planning for an agile sprint, one of the main concerns is how to estimate the effort needed for each story accurately. There are many methods for this, but in the end, each project selects the method that best suits to its necessities.

In my experience, Planning Poker is a practical way to estimate the efforts based on the knowledge of the people involved  in the actual work. So, let's check it out! is a tool that allows us to use the Poker Planning method over the internet. When you go to the URL ( you can see some highlights about the use of the tool. Click 'Start a Game' to start a new free game (you need to register).
Start a game

Now you'll see the main dashboard with the options for a new game:
  • Game name: A name for the game
  • Description: A description for the game
  • Team Velocity: Here are many options to customize the game. You can choose whether you are participating in the game or you are just a dealer, the card set and other options that will adapt the game to the particular project's situation.
  • Enter Stories: This is at the bottom of the dashboard. Here you can enter the stories that will be measured. Each story can be a link, so I added the following stories:
<a href=''>Share folders from Debian to Ubuntu</a>
<a href=''>Handle modal dialogs</a>
<a href=''>Make an unnatended Sysprep for Windows</a>


Click 'Convert to Stories' to add them:
Added stories

Now just click 'Save & Start' to go to a screen previous to the game itself.
Before start game
Click 'start game' to start it.
Planning Poker in game

You may have noticed that I didn't change the default customization options. That's because these options are edited as each particular project requires. Since this is an example, I decided to use the default settings. Also, take into account that the default options will be usually left as they are by most of the Scrum masters or other people whom handle the tool.

The idea behind Planning Poker is simple, yet powerful: Each story is measured in effort points by each of the participants and a result is displayed as a suggestion for the story. Also, the players are not affected by the opinions of the other participants.

This method has many advantages, and it's been proved to be as accurate as expert estimation. So, continuing with the this tool, the players will select an effort card, a pass card in case they decide they don't have a clear opinion there, and a coffee mug if you are not there or whatever other use you give to that card.
Selected card

After the player have played their respective cards, the dealer will will them with the 'flip' button and an effort value will be suggested to the story. This will continue for each story in the inventory.

Effort assigned

As you can see, it's pretty simple, to the point that you think that it may not be really necessary. But there are 2 point to take into account here:
  • The estimations (in my experience) ARE better
  • The game is really simple and fun. This can sound futile, but when you are working with people in a team, you have to make sure they stay motivated.
I find this tool very interesting, and so far I saw that indeed works. The UI is friendly and you'll get used to it in a few moments after you see it for the first time. There are some limitations (like the number of players) for the free version, but I encourage you to give it a try! You might find it as useful as I did.

Wednesday, June 8, 2016

Sharing folders between Debian and Ubuntu

Sharing folders is no so straightforward in Linux as it is Windows, but it's not so complicated either. So, I'll show how to share folders between a Ubuntu machine and a Debian one. I like to use these strange combinations so we don't depend on Ubuntu's features (like I saw in many tutorials about this). Also, often we find most of the weird problems with this kind of combinations. So, let's begin!


1 VM with Ubuntu 14.04.1 64bit
1 VM with Debian 7.8.0

I'm working with VMware Workstation 11.


1. Open the Debian machine
2. Go to Applications > Accessories > Root Terminal and enter your credentials.
Root Terminal
3. Install Samba with the following command: apt-get install samba. Take into account that normally you would have to include  "sudo" in the command, but now we are working in the Root Terminal, so there's no need for that. You might be prompted to insert one of the installation disks, so do it and continue with the installation. When it finishes, you should see this:

4. Now select a folder to share and put some content inside. I created a folder called 'Testools' in 'Home'. Also, I put some images inside:
Testools folder

3. Go to Applications > Accessories > Root Terminal
4. Enter the following command to edit the Samba configuration file:

gedit /etc/samba/smb.conf

5. Go to the bottom of the text and add the following entry:

path = /home/user1/test
read only = no
security = share
null password = yes
case sensitive = no
comment = 'This is a test for Testools'
guest ok = yes
browseable = yes
umask = 000

Don't forget to replace 'user1' in the path for your user name. Save the file.

6. Give the folder the permissions you need. In this case, I'll give permissions to everyone to read and write the shared folder with this command:

chmod 777 Testools

7. Restart the Samba Service:

service samba restart

8. Turn the Ubuntu machine on
9. Open the file explorer
10. Click 'Browse Network'. Now you should see the domain where you installed the Debian machine:
Testools domain
11. Double click TESTOOLS > test (that's the folder you shared from Debian)
Test shared folder
12. Now, double click 'test' to check if the file you shared is displayed inside the 'test' shared folder:
Successful share

And that's it! I hope this is useful for you!

Thursday, June 2, 2016

Review: OneTab, extension for Chrome

Get it here:

If you are like me and the great majority of people I know, you always open more tabs than you can handle when browsing. It's not so terrible if you lose track of what you are navigating through, but the problem is that the browser can greatly slow your computer down. Apart of that, it's common to forget an important tab and having to search for it again. Many of these problems (if not all) are addressed by OneTab in a very simple and efficient way.

The functionality is simple. Lets say you have tons of tabs opened:

Tabs opened

Now, just click the OneTab icon and they will be send to a list in a single tab:

Pages in single tab

If you want to restore one of the pages, just click it, or click the close icon to close it. Of course, OneTab has more ways to list the tabs. They are pretty easy to understand, so I'll just display them here:

OneTab options

One thing I really like about this product is the honesty and altruism of the creators. For example, the fact that they do this for free (they say they don't make money with the extension).

There are interesting options in the tab groups as well. The tab groups are the tabs where the pages are grouped after you click the OneTab icon. Let's see some of them:

Tab group

'Restore all' and 'Delete all' are for restoring all the pages or closing them, respectively. 'Share as web page' creates a URL with the list of your tabs, and you can share that URL (the receiver of the URL does not need to have OneTab installed). You should check your privacy before sharing one of these, but it's and interesting option, especially at the workplace.

In 'More...', you'll find the following options:
  • Name this tab group: here you can assign a name for your tab group
  • Lock this tab group: Every time you click the OneTab icon, a new tab group is added to the single tab. So, if you want to prevent the deletion of a tab group, just select this option
  • Star this tab group: If you select this, the tab group will always be displayed at the top of the list.
  • Help: Open the OneTab help page in a new tab
I customized a tab group with the options above:

This extension is very useful. I encourage you to try it!

Wednesday, June 1, 2016

To handle your PDFs in Visual Studio

PDF is a popular format for distributing documents, and it is practically a standard in the industry. Taking that into account, it's important to have an easy-to-use tool at hand, especially in environments when deadlines and pressure are every day things. Spire.PDF can be that tool. It allows us to manipulate PDF files with an easy syntax and lots of documentation. But let's see it action with a detailed tutorial/demo. What we are going to do is to join PDF files into one. I have been requested this before, and I know it's useful. Let's begin.

  • Visual Studio. Download it at:
  • Spire.PDF installed. Download it at:
  • A new Windows Forms project. I called mine "TestoolsPDF".
  • The Spire.PDF.dll file added to the references of the project
  • Two PDF files to join in a folder that you know. I placed mine at: C:\testoolspdf. My files are don-quijote.pdf and My-Twisted-World.pdf.

1. Add a button to the form
2. Select the button and change the "Text" property to "Join PDFs".
Join PDF
3. Double click the button and the code view will be displayed. Now the cursor is inside the button1_Click method:
Button click method  
4. Inside the button1_Click method, you need to:
  • Create an array with the files that you'll join:
            //Paths of the files
     String[] files = new String[]
  • Create an array of PDF documents to store the files obtained from the paths
     //Create an array of PDFs
     PdfDocument[] docs = new PdfDocument[files.Length];
  • Convert the paths into PDF files and store them:
     //Convert the paths into files and store them
     for (int i = 0; i < files.Length; i++)
         docs[i] = new PdfDocument(files[i]);
  • Append and save the documents:
     //Append and save the documents
  • Close the documents
     foreach (PdfDocument doc in docs)
  • Finally, you can open the merged document:
    //Open the merged document

The complete code for the Form1.cs file is as follows:

5. Click he start button:
Start button

The app should start running:
App running

6. Click the "Join PDFs" button. The merged document should be opened:
Merged document
7. Go to the folder that you picked to save the merged document. Verify if it was successfully created:
Generated document

As you can see, it takes just some simple steps to create an app that can make basic operations with PDF files. Spire.PDF is a great tool and it simply delivers what it promises. I encourage you to try it, since it has a free trial period. You can download the tool at:

For more information about this tool and others from the same vendor, please refer to:

Check my reviews of other E-Icleblue products: