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, September 25, 2019

How smart homes endanger our privacy

White Speaker On Surface

Today we live in a society where the role of smart gadgets grows exponentially. Connected to the Internet of Things (IoT), these devices can operate without much human input.

Like with any new technology, the increase in the sales of smart home devices is partially bolstered by hype. On the other hand, it’s impossible to deny their convenience: for the majority of its users, smart home technology saves at least half an hour a day—and a thousand dollars per year. With the ability to task a gadget with cleaning, washing, cooking, and doing other chores while you’re away from your home, this technology will likely keep on growing.

Smart devices also pose a lot of dangers to their users, however. In fact, every smart home not properly secured is a ticking privacy time-bomb in more ways than any “not-smart” abode could ever be.

For a smart home to work, it has to create an entire system of connections between its devices. And they all are collecting information about their users and storing it, often without much thought put into its security.

Massive-scale attacks on IoT devices and environments are not unheard of. It’s not surprising because of how tempting they are for hackers: their security measures are lacking more frequently than those of traditional computers, and they hold immense amounts of private data.

For instance, some smart door locks come with facial recognition mechanisms built into them. Undoubtedly, such locks are easier to use than a regular key or even a password that can be used in other varieties of smart locks.

However, they do encroach on people’s privacy as they can be used against their owners. If hacked into, they can potentially leak tons of data to the bad actors. Then, this information can be easily used in surveillance purposes.

That’s not the only threat that lousy smart home security practices can pose. Another one is a new level of ransomware aimed at IoT gadgets. It’s one thing to have your important files locked away by an extortionist, and completely another one to have the same extortionist take control of the condition system in your house. While the former is, all things considered, an inconvenience in most cases, the latter would be a borderline physical threat.

A voice assistant such as Siri, Alexa, or Google Assistant is often an integral part of a smart home. Its purpose is allowing you to control other devices with your voice, but to do that, it has to listen for what you are saying. Even if you trust the manufacturer of your voice assistant not to use this situation to spy on you, cases of people gaining access to other users’ recordings have been reported.

There are some ways to protect one’s smart home.

One of the dangers of the IoT is the interception of data that is transmitted between smart devices. To prevent it, you can encrypt your traffic and hide your IP address by using a virtual private network on a router. With this measure taken, it would be impossible for an attacker to get a hold of your private information.

Next, all of your smart devices should be updated to their respective latest versions. Unpatched gadgets often have crucial vulnerabilities that hackers can exploit.

It’s necessary to remember that the battle between developers and hackers is ongoing. Sadly, no one-time solutions exist that can forever keep you safe.

Another tip is to try and keep away from devices that collect too much info, if possible. It may be tempting to command your little army of household bots with nothing but your voice, but it would put your privacy in danger.

The same goes for devices that rely on facial recognition and biometrics. Their convenience is negated by the possibilities of surveillance that they open.

Friday, August 9, 2019

How to Customize your PowerPoint Backgrounds for Maximum Impact

The slide backgrounds you choose to use for your presentations have a huge impact on the perceived quality of your PowerPoint presentations.

That’s because adding colors, textures and styles to your PowerPoint backgrounds helps create a more interesting and visually appealing presentation that attracts your audience’s attention and allows you to drive home your message more effectively and efficiently.

While a good background can make your text and other images pop, a bad or bland background can be distracting and ruin a perfectly good presentation.

Below are a variety of background examples you can use to create new and interesting backgrounds for your PowerPoint presentations.

Image backgrounds

Images can make your slides really stand out and can be extremely powerful in PowerPoint presentations...when used correctly.

Don’t use a photo or image just because it’s cool, funny or cute. Every element of your PowerPoint should bring meaning or add value to your message and that goes for the images your select, even those used in the PowerPoint background.

A good background image will allow your text to be readable and won’t distract from the other elements on your slides. Here are a few tips on choosing the right image for your PowerPoint background:
  • Look for ‘whitespace’ which allows you to add your text or graphics
  • Blurred areas help focus attention on whatever else you add to the slide without distracting your audience
  • Images with gradients make good backgrounds for the reasons we mentioned above
  • Textured images keep things interesting

Gradient color backgrounds

Block colors can look flat and boring. Make your PowerPoint backgrounds more visually pleasing by playing with shading and light.

Right-click your slide, select Format Background and select Gradient Fill. There, you play about with one or two color gradients, the direction of the fades, and the transparency to create more interesting PowerPoint backgrounds.

Pattern and texture backgrounds

Word of warning: when you go to Format Background, you’ll see Pattern Fill...avoid this. These patterns are very basic and look like a magic eye picture and no one wants to stare at that for any length of time!

The option above this is Picture or Texture Fill which will give you much better options.

Again, you can play with the transparency of the patterns to make sure it doesn’t distract from text or other presentation elements. Remember, PowerPoint backgrounds shouldn’t be the dominant feature of your presentation!

Geometric textured backgrounds

Geometric polygon backgrounds with the right font and graphics look cool, add texture and color and look interesting without being too overpowering.

You can either download from royalty-free photo sites, or create your own via such sites as Trianglify Background Generator.

Download your own patterns and textures

You don’t have to limit yourself to the default patterns inside of PowerPoint. You can find your own pattern backgrounds and insert them into your presentation slides.

To learn more about downloading, creating and inserting PowerPoint backgrounds like this, see this article here.

As you can see, creating your own PowerPoint backgrounds that grab your audiences’ attention isn’t rocket science and anyone can do it.

Here are some additional tips when working with your background colors.

Color tips for powerful PowerPoint backgrounds

Keep it simple

Stick to just two or three-colors for your whole presentation for a clean look. Black and white might seem boring but remember you can always add color later with logos, graphs, and images.

Brand colors

Using company colors in your PowerPoint backgrounds is a great opportunity to build and reinforce your brand in a subtle way. It’s much less distracting than placing your logo on every slide which would also take up valuable space on your presentation.

Color and emotions

Consider the meaning of colors and the emotional responses you wish your audience to have.

For example, if you wish to deliver a serious message, then an optimistic yellow background won’t get the right attention or reaction. Instead, go for a dark background, gray or black.

Be careful with contrast when you use color backgrounds-- make sure your other presentation elements are easy to read.

Friday, March 1, 2019

Search Engines Abuse Your Privacy

Search Engines Abuse Your Privacy – Protect Yourself Now

Search engines collect a lot of personal information to narrow down your search parameters to provide you with the most customized search results – an undeniably beneficial and convenient feature. The problem, however, lies in the amount and sensitivity of the collected information and its alternative uses. One of the downsides of search engines collecting and using data from your devices is that they end up abusing your privacy, whether knowingly or unknowingly. Most people will agree that we cannot afford a breach in our online privacy and those who don’t agree should take a look at life even after of the Snowden Leaks. So, how can you protect yourself from the abuse of your privacy by search engines?

Look into the fine print before using any search engine

One of the worst habits that we share as tech users are that most of us ignore the Privacy Policy of the programs we use, which is also the case for search engines. Although with search engines you don’t get a prompt to read the Privacy Policy, this is something you should look into. Only by understanding the Privacy Policy can you tell whether the search engine poses a threat to your privacy. However, while the Privacy Policy is undoubtedly essential, it is not always a proper guideline since some companies omit some of the finer details.

Seek alternative and secure search engines

Although Google, Yahoo, and Bing are three of the most popular search engines, there exist other options that are even better than these three. Incidentally, Google, Yahoo, and Bing are three of the most notorious search engines in data collection and privacy breach. It may take some work and effort, but a look into the most popular search engines is the best way to find search engines that guarantee your privacy. Not all search engines collect information to customize their search parameters, and while this might affect the quality of the search results, the impact is negligible. Even more so, when you weigh this against the risk of a breach in your privacy and the possible effects. Some of the most secure search engines include; DuckDuckGo, StartPage, and Ixquick.

Protect your network and devices
While search engines collect plenty of sensitive information, that is only possible in cases where the devices and network have poor security. By enhancing the protection of your network and devices, primarily with a focus on online privacy and anonymity, you can limit the data collection significantly. For starters, you need to install a VPN, which should provide sufficient online privacy and some level of anonymity. Additional measures include device encryption and antivirus installation. The ideal antivirus should have features that block or limit the unauthorized collection of information from your device and provide some level of network security.

Improve browser security

Nowadays, search engines and browsers are integrated – a feature intended to enhance the search experience. The downside is that it enhances data collection by exploiting the numerous flaws in browser security. However, you can solve this problem by improving browser security. One of the best ways to do that is by relying on software extensions instead of solely the native software. Take, for instance, ExpressVPN’s native app against the Chrome extension. You’ll notice that the benefits of using ExpressVPN’s Chrome extension far outweigh those of the native app when it comes to browser security.

The Upshot

Search engines are irreplaceable, but that doesn’t mean that we should roll over in the face of atrocity. The abuse of privacy by search engines through the collection of sensitive information poses a serious threat and one that’s impossible to overlook. For this reason, you should look into the ways of protecting your privacy highlighted in this article, and many others that aren’t.

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