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

Wednesday, December 28, 2016

Top 3 Web Designing Blunders (And How To Deal With Them)

An astonishing web design is not all about the appearance. It includes how the visitors interact with the site.



It takes less than 3 seconds for a visitor to decide if he would scroll down the website further or skip to another one. So, it is feasible to say that a design of the website influences almost everything, in one way or the other.

With design being the first impression on the visitors, you would certainly want it to be a bang-on. People should get an idea of what the site is all about. If not, chances are people would simply abandon the website, leading to high bounce rates. So, given below are the 3 common faux pas, and how to get rid of them.

1. A Less Responsive Website

Preferring to beef up fancy JavaScript animations or gimmicks on the website on the cost of performance is as wrong as it sounds. Remember, if the website is not responsive enough, the visitors will not wait to see what images or animations are actually downloading.



The website that caters speed will always be the ultimate winner. The search engines take page loading factor quite seriously, especially when most of the traffic comes from mobile devices with slow connections.

What You Can Do

  • Opt For A Quality Web Host

One of the easiest and effective way to instantly boost up the responsiveness of your website is by signing up with a good web host that provides you with necessary storage and band allocation.

  • Maintain Your Database

A website gradually gets loaded up over the time with themes, plugins, extensions etc. Keep a track of all the unnecessary resources that are present in the database and remove such items as often as possible.

  • Use Website Caching

A website usually creates an HTML version which is provided to the viewer. Rather than repeating this process for every new visitor to your site, it is better to save a copy of HTML. This will ensure that the visitors are able to access the website content more quickly.

2. Too Much Info Is No Good

A website with less but sharp features and content will always rule out a website brimmed with useless information. The aim of the web designer should be to enable the visitors with the easiest path to get along the web content. Information should be delivered in bits, so that everything is soaked up effectively.



If the visitor is not able to figure out where to click or what to do next, he will simply get off your site. Same is the case with the featured pop-ups and videos. Although these are effective ways of connecting with the audience, if overdone, will break the interest of the visitor.

What You Can Do

  • The Simpler, The Better

Of course we now have unlimited options for promo videos, presentations and what not. But rather than adding all up, try to trim down the load and keep it clean. Set rules for every page and limit the pictures and animations accordingly.

  • White Spaces Are Critical

White space acts as a much-needed pause to the viewer’s eyes. This also lets you narrow down the focus of the visitor on the most important points.

  • Keep A Steady Flow Throughout

Keep similar layout and color scheme among all the web pages. Viewers should not feel that they are on any other website if they browse to the next page.

3. Drowsy Website Navigation

What is the primary source the visitors rely on to view the contents of the website? It is the menu. So, in order to value it’s importance, the menu should be easy to understand as well as adaptable.














It is often seen that designers simply rely on the content management system to handle the navigation part of the website. Instead, direct addition of web pages leads to a clumsy site navigation, leaving the visitors clueless.

What You Can Do

  • Slice Off The Lesser Important Elements

If you think that some of the elements can be removed without much affecting the website, remove it right away. There is simply no need to provide all the important details in the navigation. You might think that offering every detail is a good idea. But the more the options, the higher are the chances that you would confuse the visitor to call for a decision. For enabling the viewer to call for the right action, the less is better.

  • Use Navigation Breadcrumbs

Though you should not rely on it completely, navigation breadcrumbs can be used. It acts as an important safety net for the website visitors to click on, in case they find themselves lost in the navigation. A common case is when a visitor lands on any of your web pages via search engine suggestions.

  • Use Related Links

Once the visitors are done with reviewing a post or any other content, give them options for a call to action. Use related links that redirect them to the action of their choice. This will also help you in keeping the audience engaged as well as drawing more traffic on your website.

Author Bio:

Sophia Phillips is an expert frond-end & WordPress developer. Currently, she is employed with WordPrax Ltd.- a leading PSD to WordPress theme converter company. Sophia has had written a remarkable number of articles on WordPress tricks and tips.

Social Profiles:

https://www.twitter.com/WordPrax
https://www.facebook.com/wordprax
https://www.pinterest.com/Wordprax/

Sunday, November 13, 2016

Microsoft exam 70-466 free material





The 70-466 exam is the hardest exam for many people because your skills in MDX and DAX are tested.

MDX is a very complex multidimensional query language. There are few experts on that language. DAX tries to be easier and it tries to be similar to Excel, but when the query is complex DAX can be very tricky.

Optimizing the performance is also a really hard task because it can be a problem in hardware, design or just the query. There are many aspects to verify to improve it.

The easiest section is Reporting Services. It is easy to learn and configure.

Another topic is Tabular Databases. Microsoft is now offering a new Database model alternative to the traditional multidimensional.  Tabular uses DAX, but the topic in general is not so hard to understand and learn.

There is no Microsoft Training Kit book for this exam and the MVA course is not enough to pass the exam.

However, there is a nice free exam to practice here:

http://www.boson.com/bee-webdemo/selectwebdemo.aspx?d=MIC-ES-70466-01

There is also a paid version of the simulator exam that includes 150 questions, answers including useful references for the exam:

http://www.boson.com/practice-exam/70-466-implementing-data-models-reports-microsoft-sql-server?r=1

You need to press add to cart to purchase the simulator exam.


Thursday, November 3, 2016

Performance testing with JMeter: My first Test Plan


A good performance is one of the main goals of any software projects. Taking that into account, chances are that you'll eventually end up doing some performance testing. For web pages, this is critical. If an online application have performance problems, this will have an important impact on the user experience.

So, in this article I'll show how to create a basic test case with JMeter, a performance testing tool by Apache.

Requirements:
Install Apache JMeter

1. Extract the .zip or .tgz file. I extracted mine to C:\jmeter.
JMeter path

2. Go to that path and you should see the apache-jmeter-3.0 folder.

Running your first test script

1. Open the JMeter path > bin.
2. Double click jmeter.bat. The JMeter UI will be displayed.
JMeter dashboard
3. Each test plan (which is a a series of steps JMeter will execute when run) can be saved as a .jmx file. So, for this first example, we can use one of the sample scripts that come with JMeter. So, go to File > Open.
4. Double click 'examples' and select CSVSample.jmx.
File selection
5. Click 'Open'. The file will be loaded in the left pane of the dashboard.
Loaded sample
6. Finally, to run this script, press Start.
Start script
7. You won't see much happening, but click 'View Results in Table' and you'll see the test results:
Results in table

Creating a test plan

Now we will create our own test plan. This will be a simple plan, just to show you how you can construct more complex Test Plans once you got familiarized with JMeter.

1. Click 'New'.

2. If you don't want to save the current items, click No.
3. Enter a name for the test plan. I'll call mine 'Testools Test Plan'


4. Right click Testools Test Plan > Add > Threads (users) > Thread Group.
5. Right click Thread Group > Add > Sampler > HTTP Request. This will add an element that will allow us to do a GET request to a page:

6. In 'Server Name or IP' enter www.testools.net. We will do a simple GET request to the Testools page in this step.
HTTP request configuration
7. Now we need to add a listener. This will catch the results and display them. Right click Thread Group > Add > Listener > View Results Tree.
8. Save the Test Plan. To do that, go to File > Save. Select a folder and enter a name for the file. In this case, I'll call it TestoolsTestFile.jmx, and I'll save it at C:\jmeterScripts. Then click Save.
Test Plan Script
9. Press Start.
10. The test won't take long. Notice that a new item was created in 'View Results Tree', in the left pane. Click it to see the details:
Results

And that's it! You can add more elements to the Thread Group to achieve your testing goals. In future articles I'll cover more of the functionality of JMeter, but this should be enough to get you started.

Tuesday, October 25, 2016

Tools for API REST testing


Sometimes we have to test some feature on the fly, especially if you are supporting more than one team on QA. I already showed how to test APIs with java and Apache libraries, but you my find yourself in a moment when you don't have your code at hand. Then, what to do?
Fortunately, there are some options for this. I´ll check a couple of them.

Postman

Postman is a Chrome and Mac add-in that allows us to work with all kind of API requests. This is a great option for QA, since it has a comprehensive set of options displayed through a nice UI. But let's play a little with a request:

1. Download Postman here.
2. Install it.
3. Open Postman. You should see something like this:

4. For this example, we'll use the pubic API from https://httpbin.org/. So, let's make some GET requests: Paste the following in the main text box: http://httpbin.org/gzip (Returns gzip-encoded data). Make sure that the request is a GET, and then press Send. The result should be displayed in JSON format, like this:


Postman is a comprehensive tool with many options. However, these are the features I liked the most:

History: This is especially useful when you do a lot of requests with different URLs. Sometimes it's hard to keep track of the URLs and configurations, but you can check any past request if you need to in the History:
Request history

Multiple tabs: You can open new tabs, each one with the particular set of options you set. This is useful when you need to copy or compare parameters from different requests, like copying an authentication token.
Multiple tabs

Postman is a great tool, with many advanced options that can help both developers and QAs. However, what if you can't install Postman for some reason? Some organizations have the access to the Chrome store blocked, and contacting IT just for a quick fix might not be always the answer.

Online REST test

There are many pages to do simple requests. These do not have many options or advanced configuration, but they might be helpful to some tests on the run. Examples:

REST test test

You can find this tool at https://resttesttest.com/. To make requests with this tool:

1. Open the page.
2. Select the method. In this case, it's GET.
3. Select the endpoint. We will use the URL we used before (http://httpbin.org/gzip).
4. Press Ajax request.
5. You should see the same response than the one you obtained with Postman.

These tools are not uncommon in internet. For example, you can also use this: https://www.hurl.it/, which will give you most of common options for these tools (Add authentication, header, parameters, etc.):


Monday, October 24, 2016

CSS selectors for automation: how to use them


One of the most common problems we face when automating is that the elements' locators become obsolete as soon as there is a change in the UI we are testing, and most of the time the options for this are clear: Xpath or  CSS Selectors. I´m not comparing them in this article, since there's some controversy around the question. I found an interesting article that compared Xpath and CSS Selectors in terms of performance and other metrics, you might want to check it out. So, there are many reasons to use CSS Selectors. Now, I´ll show some basic tricks with CSS Selectors with a framework with Java and Selenium in mind.

Content

Select by ID
Select by tag
Select by class
Select nth element

Requirements
Prerequisites:

  1. First of all, open Firefox. We will use this page (www.testools.net) for the examples, so open it in a new tab. 
  2. Now, right click on the Testools logo > Inspect Element with Firebug.Inspect logo
  3. Click FirePath.
  4. Click the button at the left of the text box and select CSS. Here we will test our CSS Selectors.CSS text box

Select by ID

First, let's check the HTML structure for the logo:
Logo ID
As you can see, the id for the Logo is Header1_headerimg. In CSS Selectors, IDs are selected using #. So, in this case, we can select the logo with this:

#Header1_headerimg

Open the FirePath tab and paste that string, then press Enter. You should see a match:
Selected logo element

Since IDs should be unique, using them is a safe way to select elements for Selenium. However, not all elements have a unique ID, and asking developers to add them is not always an option.

Select by tag

You can select elements by tag, although this is better used in along with classes. However, tags are selected only with the tag name itself. If you'd want to select all the elements with the tag img, like this:
img tag

You'd only need to write this:

img

And it will match all the elemts with the img tag:
Selection by tag

Select by class

Classes are selected using dots. For example, if we want to select the first post:
Posts inspection
We can do it by typing the class name preceded by a dot:

.wrapfullpost

This will select all the elements with the class wrapfullpost. In this case, 5 elements are selected, since there are 5 posts in the main page:
Select by class

Select nth element

In the example above we had 5 elements selected. But what if we want to select only one of those elements? Let's check another example. Enter the following css:

.menus.menu-secondary.sf-js-enabled.sub-menu

That will select the menu:

Menu selected

If we expand the selected element, we will see that the four menu elements are represented by 'li' nodes. To select the 3rd element, we can use:

.menus.menu-secondary.sf-js-enabled.sub-menu li:nth-of-type(3)

3rd element

Note that, to select the first element you should use nth-of-type(1). Unlike most of other syntax, here you start the count in 1.

This will be enough to get you started using css selectors!

Tuesday, October 4, 2016

API testing: Get requests with Java and Apache libraries


API testing is very common nowadays, and it's easy to see why. One of the uses of APIs is to manipulate an application to create pre steps (among a lot of other things) for scenarios without the need of handling the UI, which is good news for all who struggle with locators that change a lot.

In this article I will show how to use Java to perform basic API actions with the Apache HttpComponents. Let's check it out:

Requirements:
Steps:

1. Open Eclipse and create a new Java Project. Call it 'APITesting'
Project details

2. Right click src > New > Class. Name the new class 'APITesting'. Select 'public static void main(String[] args)' to create the main method snippet. Then click Finish.

Class details

Class created

3. Add the needed libraries. For this, expand the APITesting project and right click JRE System Library > Build Path > Configure Build Path...
4. Click 'Add External JARs'
5. Navigate to httpcomponents-client-4.5.2\lib and select the following libraries:
  • httpClient-4.5.2.jar
  • httpcore-4.4.4.jar
  • commons-logging-1.2.jar
Then press OK.
6. Now that you have all the required libraries, enter the following code into the APITesting.java class. The final result should look like this:


So, basically, you have to perform 3 main actions here:

- Create a httpClient:

HttpClient httpClient = HttpClientBuilder.create().build();

- Create a GET request with proper endpoint and add the header:

HttpGet getRequest = new HttpGet(
"https://jsonplaceholder.typicode.com/posts");
getRequest.addHeader("accept", "application/json");

- Execute the request and store the result in a HttpResponse:

HttpResponse response = httpClient.execute(getRequest);

From there on, you can play with the contents of the response and print it, as I did in this example. Click the Play button in Eclipse to run the code. You should see a json text as response in the console:

Response

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.

Trump


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 http://www.w3schools.com/cssref/pr_tab_empty-cells.asp:

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):
Steps:

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.

Conclusion

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

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.

Pingdom

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
WebPageTest

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.

Conclusion

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:

Requirements:

Eclipse installed.

Example:

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:

Car.java:

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.

BlackCar.java:

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


RedCar.java:

The same for the red cars.


CarFactory.java:

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


Run.java:

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!