This is the way, our way… — Photo by Fotis Fotopoulos on Unsplash

Recently, a requirement came up to migrate a legacy C++ codebase, containing quite a few of custom implemented functionalities, into a more robust architecture. After spending some time at searching, we decided to include the Boost libraries, due to the large set of utilities they offer.

Most of the C++ Boost libraries are header-only; they consist entirely of header files, and require no separately-compiled library binaries. However, there are some libraries that need to be built separately. The “Getting Started” guide on Boost website is quite informative, but do not provide clear guidance on how to build for multiple architectures…

Relax, just breathe… — Photo by Valeriia Bugaiova on Unsplash

Have you heard about the Spread Syntax? Introduced in ES2015, we love it due to its simple semantics and ubiquitous use cases. What about the Spread Operator? Yes, it’s the three dots (...) used by the Spread Syntax!

…and by saying such things, we start digging into the horrifying world of a bug’s life

A quick review of the Spread Syntax

A simple use case where we can leverage the use of the Spread Syntax is when we want to concatenate multiple arrays. Check the following snippet:

const clientErrors = ['err1', 'err2', 'err3'];
const serverErrors = ['err4', 'err5'];

function numberOfErrors(clientErrors, serverErrors) {
// Assuming that both…

silver-colored time piece representing a non-deterministic finite-state machine.
silver-colored time piece representing a non-deterministic finite-state machine.
This silver-colored time piece is the perfect example of a timed automaton, a finite-state machine extended with a finite set of real-valued clocks. — Photo by Isabella Christina on Unsplash

If you are enrolled in a CS program or happen to be fascinated by the aspects of theoretical Computer Science, you would most likely be introduced at some point to finite-state machines. It also might be the case that you were overwhelmed by their principles. But considering how ubiquitous this simple computational model is, it’s time to unravel its mysteries once and for all!

An everyday example

Embrace the power of Tor and Node.js to anonymously scrape the web. — Photo by Indian Yogi (Yogi Madhav) on Unsplash

Web Scraping is the technique of extracting data from websites. The term is used typically for automated data extraction. Today, I am going to show you how to crawl websites anonymously. The reason why you want to hide your identity is due to the fact that many web servers apply rules to websites which ban IPs after a certain amount of continuous requests. We are going to use Puppeteer for accessing web pages, cheerio for HTML parsing, and Tor to run each request from a different IP address.

While the legal aspects of Web Scraping vary, with many grey zones…

George Gkasdrogkas

Software Developer.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store