Skip to main content

· 2 min read
koficodes

What is Robot Framework?

Robot Framework is a generic open-source automation framework for acceptance testing, acceptance test-driven development (ATDD), and robotic process automation (RPA). Robot Framework allows testers to easily write automated test scripts using a keyword-driven testing approach.

How does RobotFramework Function?

To test both Android and iOS apps, Robot Framework is incredibly simple to set up, use, and change.

Its test syntax is built around keywords, which are simple to alter and further configure to match the application being tested.

Additionally, the test libraries that may be implemented in Python, Java, and even some additional languages are supported, allowing for easy extension of a testing capabilities offered by Robot Framework.

The way those aforementioned keywords function is one of Robot Framework's coolest features.

Users can quickly build new keywords by starting from scratch or by using the existing sample ones.

If you look for more generic information about Robot Framework, there are plenty of great examples and online documentation on GitHub.

How to write scripts for automated tests in RobotFramework

Robot Framework makes it simple to create automated test scripts. In addition to being utilized to carry out activities, keywords also serve as assertion methods. They may experience arguments in an effort to shape their conduct.

The examples "Open Browser" and "Title Should Be" up top are two good ones. Since many test libraries include the necessary automation components as keywords, you don't necessarily need to write Python or Java code.

Notes on RobotFramework Setup and Basics

Visit documentation by searching robot-framework-setup-and-basics

· 7 min read
koficodes

Intro

Tired of pesky ads cluttering your web-surfing experience? Rest assured, there's a simple remedy: installing Pi-Hole. This powerful tool can effectively banish those bothersome popups and ensure that you enjoy the smoothest browsing possible! In this guide, we'll discuss what exactly Pi Hole is - as well as its many advantages. We'll also look at all hardware requirements for setup before moving on to an easy step-by-step tutorial for installation. Plus, should any issues arise during the process, don't worry; we've got troubleshooting tips covered too! Finally, are some handy optimization tricks so that you get maximum results from using Pi Hole. And if it doesn’t turn out to be quite your cup of tea after all… no worries – alternative solutions exist as well.

What is a Pi-Hole?

A Pi-Hole is a Linux-based network-level advertisement and Internet tracker blocking application. It runs on a network-attached computer and acts as a DNS sinkhole that filters out unwanted content. It can block ads, trackers, and malicious websites from loading on all the devices connected to the network. The Pi-Hole is most commonly used on Raspberry Pi devices, but can also be installed on any Linux operating system.

The Pi-Hole works by intercepting DNS requests from the devices connected to the network and blocking them if they match a list of known ad, tracker, and malicious websites. This means that when you browse the web, any requests sent to these blocked websites are automatically blocked, resulting in an ad-free browsing experience.

Benefits of Setting Up a Pi-Hole

Setting up a Pi-Hole offers several advantages. The most obvious one is that it can keep ads from appearing on any devices connected to your network, allowing you to have an ad-free browsing experience without having to install and run any blocking plugins or extensions in your browser.

Moreover, this also enhances privacy protection by halting trackers and malicious websites, thereby decreasing the amount of data accumulated about you online for greater security while surfing the web.

Besides these benefits, installing a Pi-Hole increases internet speed due to its capability of eliminating unnecessary information sent through networks, thus resulting in faster connections!

Hardware Requirements for Setting Up a Pi-Hole

Before you can set up a Pi-Hole, you'll need to make sure that you have the right hardware. The most common hardware used for a Pi-Hole is a Raspberry Pi. However, you can also use any Linux-based operating system on a computer or server.

If you're using a Raspberry Pi, you'll need to make sure that it has an Ethernet port, which is needed for the Pi-Hole installation. You'll also need to make sure that you have a power adapter and a microSD card with at least 8GB of storage.

Step-by-Step Guide to Setting Up a Pi-Hole

Once you have the hardware ready, you can start the process of setting up a Pi-Hole. The first step is to download the Pi-Hole software. You can download it from the official website (https://pi-hole.net/).

After that, you'll need to install the software on your Raspberry Pi or Linux-based computer. The installation process is relatively simple and can be done using the command-line interface.

sudo curl -sSL https://install.pi-hole.net | bash

Or

wget -O basic-install.sh https://install.pi-hole.net
sudo bash basic-install.sh

Once the installation is complete, you'll need to configure the Pi-Hole to block ads, trackers, and malicious websites. You can do this by adding the relevant domains to the blocklist. You can find the blocklist on the Pi-Hole website.

Once the blocklist is configured, you'll need to configure your network settings to use the Pi-Hole as the DNS server. This can be done by changing the DNS server address in your network settings.

Once the DNS server address is changed, you'll need to restart your router to apply the changes. Once the router is restarted, all the devices connected to the network will start using the Pi-Hole as their DNS server.

Troubleshooting Common Issues with Pi-Hole Setup

Sometimes, you might encounter some issues while setting up a Pi-Hole. One of the most common issues is that the Pi-Hole doesn't seem to be blocking any ads or trackers. This is usually because the blocklist is not configured correctly. To fix this, make sure that the correct domains are added to the blocklist.

Another common issue is that the Pi-Hole seems to be blocking all websites. This is usually because the DNS server address is not configured correctly. To fix this, make sure that the correct DNS server address is set in the network settings.

Optimizing Your Pi-Hole for Maximum Performance

Once you've set up your Pi-Hole, you can optimize it for maximum performance. One way to do this is to enable the Pi-Hole's built-in caching. This will help to reduce the amount of data being sent over the network, resulting in faster speeds.

You can also reduce the size of the blocklist to improve performance. The blocklist can get quite large over time, so it's a good idea to keep an eye on it and remove any unnecessary domains.

Finally, you can also configure the Pi-Hole to only block the domains that you don't want to see. This will help to reduce the amount of data being sent over the network, resulting in faster speeds.

Pi-Hole Alternatives

If you don't want to set up a Pi-Hole, there are other alternatives available. One option is to use a browser extension or plugin to block ads. These extensions and plugins can be installed on your browser and will block ads from all the websites you visit.

Another option is to use a VPN. VPNs are a great way to protect your privacy and can also help to block ads. The downside is that they can be a bit slow, so you might want to try a different solution if speed is of the utmost importance.

Finally, you can also use a DNS-level blocker, such as OpenDNS. Unlike a Pi-Hole, these DNS-level blockers are hosted on a remote server, so you don't need to set up any hardware. They're also easy to configure and can be used to block ads, trackers, and malicious websites.

NoScript

NoScript – NoScript is an extension for Firefox and Chrome that allows you to block requests for scripts or plug-ins from third party websites by default. This can help you avoid some ads and trackers on websites, which may cause problems with high quality video streaming sites like YouTube or Netflix.

AdBlock Plus

AdBlock Plus – AdBlock Plus is a popular ad blocker that can be used on Android devices as well as desktop computers and Macs. It has many filtering options and can also block ads in third party apps such as Facebook Messenger or Slack when they're opened in incognito mode (private browsing).

iProxy

iProxy - iProxy is a free DNS proxy that can be used on its own or combined with Pi-Hole. It allows you to specify your own DNS servers and customizes the Internet experience for you by blocking ads and trackers.

Conclusion

Setting up a Pi-Hole is a great way to enjoy an ad-free browsing experience. It can also help to protect your privacy and speed up your internet connection. In this article, we've taken a look at the hardware requirements for setting up a Pi-Hole, followed by a step-by-step guide to setting up a Pi-Hole. We've also discussed some common issues you might face while setting up a Pi-Hole and how to troubleshoot them. We've also discussed some optimization tips to get the most out of your Pi-Hole. Finally, we've taken a look at some Pi-Hole alternatives available.

So, if you're fed up with seeing ads pop up when you're browsing the web, setting up a Pi-Hole is the perfect solution. It's easy to set up, and once it's running, you can enjoy an ad-free browsing experience. So, what are you waiting for? Go set up your Pi-Hole now and start enjoying an ad-free internet!

Updating the Software

The other thing you need to update is the software. Pi-Hole is releasing updates and fixes regularly, so you need to update it.

To do this, the procedure is simple:

Connect to your Raspberry Pi via SSH. Type this command:

sudo pihole -up 

· 2 min read
koficodes

Downside?

A 404 is not necessarily an error. If you removed the pages and you didn’t set up different URLs to which the server should redirect requests for those pages, then a 404 response is correct.

No penalty as such but indirect impact on your website is evident, when you have so much of web pages 404. 404 says the page is not found but it doesn't say the page is deleted or permanently deleted and the visitor is not going to find it again.

Google understands that. They’re reporting 404 responses, not errors. You’re not being hurt because your server responds with a 404 when Googlebot requests pages that you’ve removed. You are potentially passing up on a benefit, however. If those pages had a decent amount of link equity, that equity would be passed on to pages to which you redirected requests for the old pages. This would also make for a better user experience. Of course, all of this is based on the assumption that you’d be redirecting to pages that served to provide people looking for the old pages with the information they seek.

Waste of Crawl Budget

With 404, Google waits for 2 to 3 months to ensure the page is removed. With 404, the Other impact would be that you waste your crawl budget. The crawler spends time in crawling the periods which are not present on your website. This lead to trouble in discovering new pages on your website.

With more pages failing, Google reduces your crawl budget over time. This will reduce the timely indexing of new pages on your website.

Possible Solution?

It is better to issue 410 since it instructs that the page is permanently deleted. This helps Google to remove the URL from its index quickly. The next time Googlebot visits the page and sees the 410 status code, Google will then remove the page from it’s index within 24 hours. Google will never check again to see if the page has come back.

Here are some different types of HTTP status codes:

    100s: Informational requests
200s: Successful requests
300s: Redirects
400s: Client-side errors
500s: Server-side errors

Depending on your browser, the 410 error can appear in a few different ways:

    410 Gone
Gone
Error 410
HTTP Status 410

· 3 min read
koficodes

1. When Everything Seems too Easy

My first impression when I first hands on a RPA Tool, everything seems so easy because of the drag and drop features, pre-built functions, puzzle like building blocks that allow you to construct a sequence of actions just at your fingertips. The creator of these tools made it so easy to implement and deploy automation, this causes a lot of headaches and technical debts down the road if we do not do our homework to have a full understanding of what we are trying to automate and what control are needed in-place.

2. Rush into RPA

Due to the hype related to RPA technologies. When we first started to adopt RPA in our company oftentimes we made a huge mistake calculating ROI by just using 'Current Time Spent' minus 'Future Time Spent' without really think and consider about infrastructure and cost of maintenance. This often due to our team rushing to build up momentum, wanted to prove the capabilities of the tool and most importantly to get buy in from upper management. But realistically most of the current processes is not ready, ended up the team is spending more time maintaining the bot than the manual process.

3. No everyone can do it well

Too naive to think that everyone can use the tool that have been offered. Business user often been asked to attend RPA course and started to automate some of their task. Unfortunately, most of these automation developed were not properly tested, and assume everything is been taken care automatically. We normally started off working on the "Happy Path" without considering the scenario that are usually more complicated than that. These could be variant of an input or the input can be in a different format that you expect. RPA can complete your job 10x faster, but also can create mistake 10x faster.

4. Just focus on building and Robots are ready, set and forget

From day one of deploying our first bot, not a single bot can be set and forget. Bot needed to be manage operationally and maintained. We have made mistakes for not properly documenting and communicating automated process with business SMEs. When a bot breaks, no-one will know how to recover the process and leads to unnecessary over-time to figure what had happen and what needed to be done.

On the other hand, due to rapidly changes in business requirements, system upgrade and process changes have causes us lots of bot down-time. Getting involvement of IT and Business SMEs and knowing these changes before hand could reduce unnecessary over-time trying to fire fight to get your bot up and running again.

5. Failing to Scale, not building for scalability

After 3 years of RPA experience. Started to feel the impact of not building for scalability. Most of our solutions were built in silo mode rather than enterprise-wide. We are much now spending a lot of time re-visiting our solution, re-designing our bots.

Another mistake which was choosing the right candidate processes for RPA, we had wrong thinking about using automation as a quick fix which now end up deploying multiple bots which are doing similar job while ideally they could be designed as a single bot.

· 2 min read
koficodes

Thanks to Heroku, now I have my personal site :)

Too bad, heroku no longer offer free dyno..

If an app has a free web dyno, and that dyno receives no web traffic in a 30-minute period, it will sleep.

Every Heroku account is allocated a pool of free dyno hours, which can be used by Personal apps - apps that are not part of a Heroku Team or Enterprise Team.

If you want to know more about free dyno hours, visit official site here

I am using a free tier account and I don't want my visitor to wait for dyno to re-launch everytime when they visit the site. This is the method I used for keeping my site alive.

  • Signup on https://cron-job.org/en/
  • Once the signup is completed, verify your email.
  • Once you log in successfully, click on the Cronjobs tab. And click on “Create cronjob”.

cron-job

  • Now you can fill in the details. Make sure you enter URL according to your GET method. If your GET method was for route “/home,” make sure your URL is https://your-app.herokuapp.com/home.

If you are not verifying Heroku app with your credit card, you might want to go for user-defined schedule.

  • When you reach the Schedule section, click on the option User-defined. Now make sure you select all the values in the columns Days of Month Days of Week, and Months.
  • In the Hours column, select all values except for any seven. I selected all values except for 0,1,2,3,4,5,6, which means my app will be asleep from 12 a.m. to 7 a.m. (no job at 6 a.m. means the app will be asleep at 6 a.m.). This step is essential as it satisfies the restriction for the free tier.
  • In the Minutes column, select only 0 and 30 because your app will only sleep every 30 minutes.

This is how your schedule settings will look in the end. Once everything looks fine, create your cron job.

The last picture is with the normal settings

User Defined Settings

cron-job-custom-schedule

Normal Settings

cron-job-details

Congratulations! You have successfully kept your Heroku app alive.