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, February 4, 2019

Check Out How to Get Index Fragmentation Report in SQL Server

SQL Server indexes are quite a useful component that speeds up the query execution of the database. But at the same time, it has its own demerits. The indexes utilizes extra disk space and take more time to get updated with the changes made in the tables. When we are applying any changes, index fragmentation can take place. Index fragmentation can cause you much trouble and hence it is important to get index fragmentation report in SQL server. In this post, we will be discussing ways to get the fragmentation report and the steps you should take if the fragmentation rate is high. Let us learn about Index Fragmentation in detail first.

What is Index Fragmentation in SQL Server

When the indexes are created, there should be no fragmentation or little fragmentation in these. In course of time, index fragmentation rate increases along with the increase of data insertion, update, and deletion. Wondering how and why? Here is the reason. When a page is completely filled with data, page split happens to give space to more data. During page split, some data of the full page is moved to the new page, which is being created after all other pages of the database. As a result, Server does not move from one page to the next for data. Rather, it searches for the data in a page located elsewhere in the database. This process is known as index fragmentation.

Importance of Checking Index Fragmentation Report in SQL Server

As mentioned earlier, index fragmentation will be there as the index grows bigger but fragmentation level has to be under control. In case of high index fragmentation, data stored in the indexes will get dispersed all over the database, SQL Server will do unnecessary data reads and page switching, and query performance will become poor in case of tables. To understand whether the dull performance of your database is caused by index fragmentation, you need to have index fragmentation report.

Types of Index Fragmentation

Fragmentation can be categorized into two types: internal fragmentation and external fragmentation. Let’s know about these categories in details.

Internal Fragmentation: This type of fragmentation take place when the Index pages have too much free space. During the creation of index or at the time of index rebuilding, some free space is preferred. At the time of index creation and rebuilding, users can determine the percentage of free space in index page by adjusting the Fill Factor setting. If there is too much fragmentation in index pages, not only the user query results will come late, but also the indexes will become unnecessarily large. No space for index data pages will result in page split during data changes, and this process will utilize additional system resources.

External Fragmentation: External fragmentation is also known as logical fragmentation. When the logical ordering of the index mismatches its physical ordering, external fragmentation happens. In simple language, it means that one or more index leaf pages are not placed in the logical order. When it occurs in SQL Server, the Server has to put extra effort to provide the results of the queries. In most cases, this type of fragmentation does not cause much trouble, especially for the searches that bring only a few records and for the searches where the results do not have to be in ordered form.

How to Get Index Fragmentation Report in SQL Server

In order to get a report on the level of index fragmentation, one Database Management Function (DMF) “sys.dm_db_index_physical_stats” can be used. It will report about a particular index or partition, or all indexes of a table, database, and even an entire SQL Server. One example is below where a query has been made to know the fragmentation information of “AdventureWorks” database’s object “Sales.SalesOrderDetail.”

select a.index_id, name, avg_fragmentation_in_percent, fragment_count, avg_fragment_size_in_pages
from sys.dm_db_index_physical_stats (DB_ID('AdventureWorks'), object_id('Sales.SalesOrderDetail'), NULL, NULL, NULL) as a
join sys.indexes as b on a.object_id = b.object_id and a.index_id = b.index_id

What to Do If SQL Server Index Fragmentation Rate is High

Using the query mentioned here, you can know the fragmentation percentage from the index fragmentation report in SQL Server. The rate will determine what to do next. If the fragmentation percentage is less than 5%, you do not have to do anything. If the rate is between 05%-30%, you have to reorganize the index by using “ALTER INDEX REORGANIZE” script. If the fragmentation level is more than 30%, you have to rebuild the indexes. For this, you have to use “ALTER INDEX REBUILD” script. Following these approaches, you can reduce the rate of index fragmentation and increase the overall performance of SQL Server.

Note: Check out How to Find Fragmentation in SQL Server: ( )

Final Words

Index fragmentation is inevitable, but a high percentage of fragmentation will hamper the SQL Server performance. To avoid it, users must know the fragmentation level from index fragmentation report in SQL Server. In this post, we have discussed the way to obtain index fragmentation report and what to do if the fragmentation rate is high. Users can follow the methods described here and resolve their problems.

About the Author

Andrew Jackson is a SQL Server blogger. Check more of his work at:

Wednesday, January 30, 2019

How to Deal with the Stress of Being a Software Developer

As a software developer, you’ve probably experienced stress multiple times and every time seems a little different, yet the sensation is the same. A developer’s job is very stressful due to its nature: you need to build or create, and you need to do it quickly.

You might have project managers asking you to add more content, accounting departments that ask you to find a way to cut down on the costs (or simply do so at your expense), customers demanding conflicting or different things, all while you simply want to try the latest and greatest updates out there.

So when stress starts to get you down, you can’t be as efficient as you want to be and that just adds on to stress you out even more. The best way to tackle this issue is to understand the most common sources of stress so you can identify which one you’re experiencing at the moment and manage it to maintain your sanity.

There are four main types of work stress as a developer. First, identify if the problem revolves around having difficulties with decisions. If not, determine if it’s a problem or difference of opinion with a coworker or boss. Again, if that’s not the case, analyze if it’s making you feel like you’re always falling behind on your work. And finally, if none of the previous apply, identify if it’s something that doesn’t motivate you and is making you feel like you’re wasting your time.

Through those four analysis situations, we’ve basically determined the stress source you’re currently dealing with. If the first situation was relatable for you, check out our first item below, and so on. After further analyzing if that’s truly your case, you’ll find some tips for you to blow off some of that steam.

Decision Fatigue

Whether you notice it or not, developing involves making a large number of choices, all day, every day. It can be large things like configuring an entire product’s tech stack to something as simple as deciding what to name a function.

All of these actions take your time and energy and eventually lead to burnout since your brain is worn down from all those decisions. This can start a spiral of decision fatigue since the current stress undermines your ability to make decisions and the cycle starts again.

The first method is to decrease your options or variables that will be used to compare, to speed up your decision process. Most of the times we tend to set up multiple options for us to analyze and compare. This isn’t efficient at all.

The second method is to basically let an actual prototype or demo product make the decision for you. By creating a basic demo of the product in a set time limit (preferably thirty minutes or less), you can assess if it’s going to work for you.

This is a better way to get actual feedback on a framework’s application to your situation, as opposed to having to compare multiple fictional scenarios in your brain as you browse blog posts and articles.

Differences of Opinion

If you identified with the second item on our analysis list, your problem revolves around differences of opinion. This is one of the highest sources of stress since most software developers work in teams. Some teams also tend to be together for long periods of time at once,so this results in reduced professionalism.

The first option to tackle this is to pick your battles wisely. Don’t waste your time arguing over semantics if you know the result will be just as efficient. By cutting your losses whenever you can, you’ll be able to keep your peace of mind.

Your second and third options are related. If you think giving in will compromise the integrity of the code, then set a time limit and then have the team vote for the possible solutions and the majority will win.

And what happens if you have a tie or the vote simply doesn’t work? Then you resort to a third party or mediator. Explain your options in five minutes or less and get feedback. This short time makes you point out the benefits and disadvantages quickly, so you might even end up feeling like the decision was obvious all along.


If you find yourself working all day, all night, weekends, vacations and even on your “free time”, you might be overburdened and not even know it. This third source of stress can take a toll not only on your mental health but also start reflecting on your physical one. It is often responsible for some of the top mental health disorders.

In order to alleviate this source of stress, the first thing to do is set priorities. Of course, there are things you won’t be able to adjust client-level tasks, but on the business side, you should be able to analyze which features are eating up your time, which meetings to postpone or set up the same day, and which ones you can delegate.

Additionally, you should try to focus on one task and finish it before moving on to others. This will start crossing items off your list and help you focus on each item so you can work faster.

Finally, make sure you get enough rest. So identify which tasks need to be done ASAP to meet the deadline and which ones can wait until after you’ve rested. And keep them off your mind until you get to them.

Lack of Motivation or Boredom

There are times when you can’t work on the things you want and have to work on work-related items that you don’t like. That’s part of any job.

Most of the time, the most enjoyable thing about software development is trying out something new and fun. So, try some fun new projects when you can, so the dull projects don’t take a toll on your creativity.

Those outside projects are a great way to increase your creativity and get inspiration. Plus, who knows? You might even get the chance to use some of them in your main work projects. It’s a fantastic way to get noticed and maybe even get fun new projects assigned to you.

Now that we’ve identified the main causes of stress for software developers, we hope you can take a step back and assess the full picture so stress doesn’t catch up to you. Reach out to those around you since they have probably gone through similar situations as you and can provide valuable insight.

About the author

Patrick Bailey is a Professional Writer, you can see more of his work at

Thursday, November 1, 2018

AI and Education- Two Pieces of the Same Puzzle

Imagine, you’re dashing out of your living room tomorrow, running up your driveway, and sliding into your car. You’re late for office, you overslept. And you know your boss is sure to ream you in front of the entire staff if you don’t send this mail before you get there. You’re typing; your fingers are working as fast as they can. But you’re only human. You’re making mistakes, and you don’t have the time to rewrite the misspelled words. It’s not good; your boss will take one look at it, and you’ll be out of a job by lunch.

But that’s not going to happen, because while you're making mistakes, your mobile is correcting it as you type.

What is it?

Is it magic?

Is it a god sent blessing?

No. It’s your device’s inbuilt Artificial Intelligence which is so sophisticated that it can detect when you’re making a typing error and fix it on its own. And thanks to this AI, you can send the email and keep your job.

What about ecommerce websites like Amazon? Once you search for a particular item, it keeps bombarding you with suggestions of similar products for days after that. Even Google uses your search data to show you ads. All of it is possible because of AI. In the past decade, we have taken such giant leaps in the AI technology, that now we have highly advanced personal assistants like Siri and Alexa in our day-to-day lives. They are not only able to obey our audio commands, but learn things about us and our routines and do chores on their own. All of it to make our lives a little easier.

From companies combining AI with their analytics system to learn patterns of their sales to enterprises using AIs to assist their workers in the factories, the entire world is quickly becoming one with these AIs. They make our lives less stressful and reduce the potential of making a mistake by many folds.

Education is one of those realms which is greatly benefiting from modern-day AIs as well. As we see more and more advancements in the AI infrastructure, the education sector is finding more and more new ways to use these AIs and train, teach, and prepare better students. And today we will focus on some of the most prominent ways the education sector is benefiting from Artificial Intelligence.

So let’s dive in!

Reduces frivolous labor

A teacher’s life is not easy. From taking classes all day and dealing with hundreds of students, to taking attendance, preparing notes, schedules and grading and making papers late nights, she has to do it all. But because of AIs, these laborious tasks have been slashed significantly. New AIs are emerging which can grade papers on their own, without the slightest intervention being required from the teachers. AIs capable of assessing a multiple choice question test already exist and are used by many colleges. But industry leaders believe that soon, even better AIs will emerge which will be able to grade theory papers and essays as well.

AI is also set to reduce the amount of work that is required to be done in the administration wing of colleges and schools. Many colleges have already automated the admission process, which takes care of student paperwork on its own. Furthermore, using biometric systems combined with AI, some institutions are able to not only store the attendance of students and teachers but find patterns in their leaves if there are any.

Virtual Facilitators

From a student’s point of view, AIs can be of great help in increasing their learning efficiency. The problem with the classroom culture is that a teacher is available to her students only for a couple of minutes. In those minutes she has to take attendance, teach all she had planned to teach that day all the while dealing with chaotic renegade elements among the students. This doesn’t leave a lot of time for students to have a back and forth of ideas with her about that day’s lesson. So the confusions that they have, remain and they have to try and catch the teacher in hallways with their doubts or reach out to her on her email to make an appointment. But there is no way to guarantee that she’ll even reply.

This leaves gaping holes in a student's knowledge about a particular topic.

As a remedy to this issue, intelligent chatbots are now surfacing. The most popular among them these days is Georgia Tech's first AI teaching Assistant. Say hello to Jill Watson. Professor Ashok Goel and his team of Georgia Tech’s grad students developed Jill to respond to a large number of queries which are posted by the online students on a forum. Jill was developed using IBM Watson infrastructure which is also popular because of its victory over two Jeopardy champions.

The most interesting thing of the entire case, however, was that that none of the students who were interacting with Jill even knew that she was an AI. Such incredibly advanced computer programs can change the face of the education spectrum forever.

Smart Content

In the past few years, computers have taken another step forward and have started to create digital content on their own which is error free, both knowledge and grammar wise. It is called smart content, and it is growing more popular with each new advancement in the AI domain. Solutions like Cram101 are capable of turning a book’s worth of data into small packets of information. This platform takes a book and then breaks it down into notes, chapter summaries, practice tests, and flashcards. Many students find it rather tedious to sift through thousand pages long books; it eats up a lot of there time, especially during exam times. So digital solutions such as Cram101 come in very handy because they break down these bulky books into a more condensed form so that students can handle it.

Teachers nowadays are also able to create digital contents using platforms like Nexttex Learning. It allows users to create digital curriculums, audio and video content for students to better help them understand complicated topics.


Not every student is the same. Some are brighter than others. Some have better-grasping capabilities, and some learn slowly. Furthermore, some students prefer a more practical way of learning things, and some like to spend their days in libraries, going through books. It is not possible to say which method is better. Each one of them works for a different type of student. But a teacher doesn’t have the luxury to treat every student differently. She has to follow a generalized form of teaching because she has some fifty students in her classroom to teach.

With the coming of AI in the education sector, possibilities have risen for a more personalized approach to teaching. These AIs are quickly transforming into digital professors who can help students by devising a study regime which is best suitable for a certain type of student. This way, a student can learn all he can in the class from his actual professor and at home from his digital professor in ways which is optimal for him.

Adaptive Learning

It is in an AI’s job description, that it learns from its environment, on its own. That is what makes it intelligent. It adapts according to the situations. This adaptive nature of AIs, adds more flair to its allure, especially for the education domain. The best thing about AIs is that one AI can look after many users and yet provide personalized services. Every user that has this AI has a personal version of it. This AI can evaluate every student’s growth and the pace at which it is happening. Then it can tweak its current method of tutoring just for that student to achieve better results. Based on its learning, AI can then also suggest revisions on particular topics so that a student's learning and knowledge is always complete.

AIs as Exam-Proctors
Distant learning leads to distant examinations. And the fundamental trouble with distant exams is that there is no way to make sure that an exam-taker is not cheating. But new AIs are now being developed which can work as proctors at these distant examination centers. Thus using these AIs, runners of distant learning programs can improve the authenticity of their exams and make sure that the students don’t cheat their way through.

Data gathering

Data gathering is one of the founding pillars of any AI system. It notices something new, and then it learns it. This can be of great value to teachers and students alike. Using AI, students can grade their teachers based on their knowledge, class control, and other such metrics. These student feedbacks can be vital in improving a teacher's technique.

On the other hand, AIs are now capable of evaluating an individual student's growth and use that personal data to form a bigger picture. If the data gathered from all the students shows that alterations should be made in the curriculum or that some topic needs revisiting or that students are not responding well to a particular teacher or her technique, then actions can be taken.


From robot professors who will make actual biological professors obsolete to AI companions which will assist students from their birth and throughout their education, helping them in learning things in a way which is tailored just for them, possibilities are infinite. The way AI works, learning and then executing it, if you think about it, is very close to what teachers do with their students. We learn, and then we implement.

This paints a scenario where AI and other automation have merged with the education spectrum so intricately that we can create a genius out of every child. No one will be left behind. There are even AIs who are helping ASD inflicted kids in learning social behavior. Now naysayers are many; some say that machines are replacing one sector at a time and some say that they will one day dominate us. But to expostulate them, I would say that computers are not here to take over, AI is not here to outsmart humans but to make humans smarter and better educated. We need to find a way to work with this technology rather than going against it. AI and education are basically two pieces of the same puzzle. And it would do all of us a lot of good if we just stopped fighting this fact and accepted it.

Author Bio: Arpita is an SEO expert providing her services to one of the most highly acclaimed software studios- Matellio LLC. Her passion resides in sharing knowledge with the world and grow by keeping abreast of the latest industry facets. She has crafted some well-crafted and incredibly informative write-ups that have received great commendation from her readers.

Tuesday, March 13, 2018

Choosing the right data entry software for your enterprise

Today, everyone knows (or they should) that utilizing on brand new, state of the art software solutions can help all businesses improve their efficiency, operate more smoothly, and be able to compete better in their markets. Current business markets need fast, flexible, and adjustable organizations that can utilize modern tools to be able to keep up with the pace.
This is why data entry software solutions are very important as well. However, there are so many solutions available that it can be difficult to analyze them and choose the perfect one for your business needs. Finding the right tool can give your business many advantages but it’s not that easy to find what you need.
This is what we will talk about here, and we’ll try to give you a couple of tips that can help you in your search.

Determine your information processing requirements

Simply put, the first thing you need to know is what amount of data will your business work with on a daily basis and this is how you will be able to understand if you need a simple spreadsheet tool, a word processing tool, or your business needs imaging or database entry software.
It is also important to consider the source of your data, as questionnaires have different requirements and cataloging values, while text searches have their own requirements. If you plan on using your tool for smaller questionnaires, you will be able to suit your needs with a basic spreadsheet program.  
More complex information sources require a full data entry software solution. If you need to take information from various paper forms, getting imaging software is necessary for scanning and displaying paper forms so that you can fill your database.

Mobile, offline or cloud

There are programs that work great on tablets, mobile devices, and mobile apps. On the other hand, there are programs which are great for managing data offline or online. You can also find cloud-based solutions some of which convert documents while others come with advanced duplicate tech.
You need to determine your data management needs before you can choose between these programs. If your organization handles a lot of files and clients remotely, going for a cloud-based solution that has mobile app capabilities is the way to go. If you handle your clients internally within your IT infrastructure, maybe you should look for an in-house solution.
Organizations such as hospitals that have both computer and paper files may look for strong in-house solutions that can handle a large volume of files which need to be transferred from different mediums.

Consider security

It is important that you find solutions that will keep your data safe at all times. When looking for the right software solution, make sure that you inquire about security and whether the software is updated frequently.
This is especially important for cloud-based and online software solutions, as a lot of information will be stored or simply go through the online environment. This means that there is a greater risk of someone stealing it or misusing it. Make sure that proper security measures are in place and that the program is updated often, with new layers of protection.  
These are the important things you need to consider when opting for data entry software. Take your time and perform thorough research before choosing a tool to make sure that you get the right solution that you can utilize on for a long time.

Still, if you think that this is too much work, there is an alternative: outsourcing data processes and letting someone else handle this for you. This can be a good alternative if you have no experience or knowledge in this field.

Tuesday, January 2, 2018

How to recover recently deleted videos from my CF Card

Aaaaaaaaaaaaaaaaaaaaahhhh!My wife is going to kill me, I deleted my wedding videos by mistake!

She told me to store the information in the cloud, by I forgot to do it. She is going to kill me:

There is no recycle bin in the memory card. I reviewed all the instructions and there is no way to recover deleted photos.

After Googling a lot, I found a pretty nice software that I think it can save my life and my marriage.

The name of this software is CFCARDRECOVERY:

The URL is the following:

You can download a version for Windows or Mac. You will need a machine with any of these operative systems. This software can be installed in multiple languages:

The installer is small. It takes 3.8 MB and the installation is a simple wizard:

By default, it is installed in the Program Files, but you can chose the location:

You can select a folder or use a default folder that will be created during installation:

It is also possible to create a shorcut:

Once selected the options, press the Install button:
 You will be able to see the shortcut in desktop. Double click the shortcut:

The UI is pretty simple. You have options to scan the files to recover:

It can recover, pdf files, word files, outlook files, rar, files, images and videos:

You can recover 3GPP Videos, 3GPP2, AVI, MP4, MPEG, Quick Time, SONY AVCHD, ASF, WMV files, RealVideo and more:

The software is available in multiple languages like English, Spanish, Czech, German, Rusian, Swedish and more:
In order to start, use your CF Card:

 Insert your CF Memory Card in your computer:

Select your drive with the CF Card Memory, Search for Video and press Start Scan:

After some minutes, you will be able to see the videos:

In options, you can see or change the path of the recovered files:

If you go to the path defined in options, you will be able to see the videos:

The software will detect the video and you will be able to recover the information. In my case, my wife never noticed that I deleted my wedding videos by mistake and I lived hapily ever after.

If you have a camera, an iPhone, Android with a memory card, it is now possible to recover the information using CFCardRecovery
This tool is very simple to install and use and you can recover multiple file types with few clicks.