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, September 8, 2016

Wikileaks, Snowden, Russia and Trump: Who are them and what they want

Organizations like Wikileaks and people like Julian Assange or Edward Snowden often have an image of courage and integrity. This image puts them in a position of influence in the world, and of course, the US elections.

You may have noticed that Wikileaks is very anti-Clinton. They do not endorse Trump in any way, but they are constantly monitoring the Democratic Party and any fact or rumor they can find about Clinton. And why is this? Simple: They are anti system, and Clinton represents this system better than anyone, for better or worse. But is being anti system a good thing per se? Obviously no.

For example, let's take the case of Julian Assange, the interesting founder of Wikileaks. There are some points about him that I don't like at all:

Assange friends

Putin: It does not matter in which side you are on: Putin is a corrupt semi-dictator. I've know Russian personally, and they tell me about an authoritarian and corrupt government. My own country does deals with Russia, and believe me, they ARE corrupt.

Ecuador, Bolivia and the other "21st century socialists": These countries are struggling with economic, political and social problems generated by the populist governments. As Russia, authorities in these countries constantly look for partners in a world that's leaving them behind, and they find friend in any kind of outcasts, no matter if they are good or bad.

Assange and Snowden do not criticize Russia

An important information source such as Wikileaks should at least have some equilibrium when investigating different countries. My country had a lot of problems because of the US, but Russia is by no means better, and I know it because my country has close relations with Russia and there are always problems with bribes and stuff.


In the logic of "our enemy's enemy is our friend", Assange and Snowden have been clearly trying to undermine Clinton's reliability. And this is like a general attack on the establishment. But what about Russia? Here are some words about Russia by Assange himself:

“Every man and his dog is criticizing Russia,” he said. “It’s a bit boring, isn’t it?”

Well, it might be boring but it is definitely important, Julian. And why is this? Just because Russia is against the "American Empire". In my country is the same, people tend to blame "the Empire" for everything. If my girlfriend cheats on me it's because the American Empire convinced her to. The same with Trump. I guess some people do not care if they are indirectly supporting a monster, as long as he is against his current enemies. It's very shortsighted, and dangerous in the sense that, at the end of the day, these "rebellious" people and organizations follow their own agenda as well.

Tuesday, September 6, 2016

Tip: How to match node with no text using XPATH

When automating, there are times when you have to verify that a value was not populated. For example, if you are trying to verify a table, there will be times when a certain cell does not have a value. Sometimes, when an element is null or non existing in a table, developers turn it into a node with no text in HTML. For example, the table at

Node with no text

Let's check the steps to verify this. What you will need (these are not mandatory, but it's what I used to write this article):

1. Right click the empty cell > click 'Inspect Element With Firebug'. With this, we'll get the information to construct the xpath:
Empty cell HTML
2. We will select the table initially, and from there we will "navigate" to the empty element.
HTML tree
3. Click the FirePath tab and enter this xpath: //table[@class = 'w3-table-all notranslate']/tbody/tr/td
All td nodes matched
As you can see, all td nodes are matched by this.

4. Add [not(normalize-space())]. The final xpath should be: //table[@class = 'w3-table-all notranslate']/tbody/tr/td[not(normalize-space())]. Now press enter and the empty cell will be selected.

I hope this is useful for your automation efforts!

Tuesday, August 2, 2016

Major Mobile Design Mistakes Most Commonly Done

In the ever-changing mobile app market scenario, it is becomes very difficult to hold your position, especially when trends vary each day and impact the usability and significance of your mobile app. The situation becomes worst when your app comes across any flaw in terms of design because a recent study revealed that mere 20 percent of users return to their downloaded apps while only 3 percent of apps are used on a monthly basis. Although, a superbly designed logo grabs the attention; however, users generally focus on the features, functionality and benefits provided by an app rather than by mere its logo. They find those app icons cool which conveys the message in a distinct but suitable way. Of course, its connection with the brand should also be articulated well. Despite understanding these little but vital aspects, many designers fail to display while executing things.

The common mistakes range from failing to maintain steadiness throughout the lifespan of an app, to fascinate users in the first place. How it is possible to design an app with intuitive simplicity, with no repetition and disinterest. Is it possible that an offers fetching details without losing view of a greater motive? It is very sad but true that most apps come into existence and reach to an end in the very first few apps, therefore, we have compiled a list of common but vital mistakes that designers can avoid.

A Very Ordinary First Impression

What are the most crucial parts of getting a potential user engaged-the first user of an app and the first day with an app. The first impression is so crucial that it could be an umbrella point for the rest of this top ten. If anything undesirable takes place, looks confusing or disinteresting, it is for user that the potential users will lose interest right of the bat. Although, it is very tricky to deal with the right balance for them so called ‘first impression’ and it is possible that an extended on-boarding or a process to explore essential features can beget disinterest in users. Still, we believe that an instantly stimulating app may eliminate the need for an actual tutorial, and increase confusion.
  • Unsuitable On-boarding 
On-boarding is a vital process and followed by some sequences which introduce your app to the users. This is one of the ways to get a users instantly oriented. This is also a process that falls in-between the way of your users and their content.
  • Have the Intro Animation Easy
To dazzle new users, many times designers go for highly exotic intro animations. Remember, if your app serves a daily function then this will arise no interest in users.

Creating an App without Any Goal

Going for designing and development of an app without any succinct intention leads to nowhere. People often get an app developed to follow trends rather than finding out solutions for a problem, fill a niche or give an extraordinary service. All of the above, you must contemplate over the key question-What is the ambition for the app? In the situation when you cannot answer this question, the sense of purpose will affect every step of a project.

Omitting UX Design Mapping

Designers, most often, miss out a thoughtful planning of an app’s UX architecture before targeting the design work. Moreover, before having a wireframing stage established, the structure and flow of an app should be mapped out. Creating aesthetics and details can prove to be dangerous for designers. Also, they end up under appreciate UX.

No Budget Setting Up

Once the basis of your app is sketched, start thinking about the budget of the app development. If you keep delaying it, it will not respond to economic restraints. Not setting a budget may also make you start cutting vital features once you reach to the end of the project.

Awful Color Choice

To have an awesome app design, opting for an appropriate color plays a crucial role. There are a number of factors needs to be taken care of while building an app and giving the perfect color to allure your users is one of them. To fill your app with a perfect color is vital because each color has a unique psychological response on individuals. For instance, red is considered the color of love and blue represents trust.

Missing a Prototype

Introducing your app with a prototype or a beta version is of highly importance. It helps you to get feedback from users which extremely important before you make it live. A number of flaws can be diagnosed and provided the best remedy before its gets live. Having a prototype launched not only helps in the identification of mistakes in the design or functions of the app, but it also allows audiences like or dislike the app, especially the app target audience.

Introducing Your App in the Market without a Plan

At present, a number of app developers have a hurry to bring their apps in the market as quickly as possible. Due to this, many of them do not have a marketing strategy and fail to produce revenue from their apps. You must check where exactly you can promote/advertise your app before launching it so that it gets acknowledged by the targeted audience. One of the instances can be, if you also have a website linked with the same you are going to release, or a website for your company, it is easy for you to display information about your new app on your website.

Handling an App Like a Website

A number of apps are simply a smaller version of their website; therefore, they give the same experience the way they have been giving so far through the website. However, using a mobile app is completely a different experience and it gives new opportunities for users. Usually, the amount of information showed on the desktop detailed. On the other hand, information provided on smartphones is concise and delivers mere key points.

Tips to Avoid Such Mistakes

To eliminate the poor first impression, you can look for the balance between an app that is instantly intuitive, but also provides the users some engaging and exciting features quickly. As far as the purpose of designing an app is concerned, your design and development team must be aware of the goal of the activity. To avoid having a UX design mapping missed out, you can sketch out the flow of the app first before getting worried too much about the finer brush strokes. Setting the perfect amount of contrast is of high significance. Choosing a perfect color that connects well with the app’s goal can be influential for the app. Never forget that when users visit your app they are experiencing it for the first time; therefore, it becomes vital to keep it flawless as well as captivating.


As a skilled designer, you must ensure that your idea must be based on an in-depth research and it has to be crisp as far as its design is concerned. Avoiding the aforementioned common app mistakes can boost the chances of getting your app developed within the given timeframe. It can also help you raise your revenue and get you advertise your app properly.

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.

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!