A simple project that can be completed in about 100 lines of code.

The great thing about Python is that it makes developers’ lives easy — import a couple of libraries to do the hard stuff for you, and you’re off to the races. This holds true when creating a threaded web scanner that’s capable of making multiple concurrent requests — with Python it’s easy to accomplish in a short amount of dev time.

Multiple threads going thru a needle
Multiple threads going thru a needle
Photo by amirali mirhashemian on Unsplash

In this post, I’ll explain how to create a threaded web scanner in Python that uses urllib3 — a powerful thread-safe HTTP client that can be installed via pip. Here I’ll primarily focus on the library’s usage plus how to implement threading. The mundane aspects like argument parsing and IO can be seen in the completed script which I’ll share at the bottom. …


A holistic framework to ensuring your applications are secure

Image for post
Image for post
Photo by Daniel Lim on Unsplash

For those who don’t know, the OWASP Top Ten is a list of common (web) application security concerns that are frequently referenced within the infosec community. If you’re applying for a position in the industry, more often than not, one of the requirements listed on the job posting will be “familiarity with the OWASP Top Ten,” and you can expect to be quizzed on them during a job interview.

I started out wanting to write this article as an accessible primer featuring clear examples of the Top Ten. While doing research and reviewing the list, I found I didn’t necessarily concur with their breakdown and organization of vulnerabilities and thought it could perhaps be streamlined and modernized. …


Listing all the things you want to do when this is over

Image for post
Image for post
Photo by Glenn Carstens-Peters on Unsplash

One of the hard things about the current crisis is not knowing when it’s going to end. At a minimum, we know that the return to normalcy will be a gradual process. By now, we’re all missing the little things we once took for granted, even to the point that watching benign TV shows and movies act as a bittersweet reminder of the previous era that we no longer have access to.

Having something to look forward to often helps us get through tough times. That’s why I think there’s an opportunity for everyone to start a post-quarantine bucket list — meaning a list of things you want to do once the pandemic is over. A list of all the places you want to go, restaurants and bars to visit, and friends and family to see once things have settled down enough to begin checking them off the list. …


If you use a lot of nested loops, this is worth a read

Image of letters and numbers
Image of letters and numbers
Photo by Patrick Fore on Unsplash.

I’ve been writing a lot of Python recently. As a relative newcomer to the language, it continues to impress me with its versatility and “quality of life” features. I’m not surprised that it’s been gaining so much popularity among developers as of late.

Two such features I’ve discovered recently are the permutations and combinations functions of Python’s itertools module. The module is basically a set of convenience functions to produce iterators to suit various needs.

For now, I’m just going to focus on permutations and combinations because I’ve found them the most useful and easy to understand. If you find yourself doing a lot of loops — especially nested loops — they’re worth checking out. These functions have wide applications in data science, neural networks, competitive programming, and day-to-day coding. Basically, wherever loops are used, these functions can make your life easier. …


If you like minimalism and the GitHub aesthetic, give it a look

Semantic UI banner
Semantic UI banner
semantic-ui.com’s intro banner

Bootstrap has been the go-to CSS framework for quite some time. It works well, has a robust set of components, and lets you build sites quickly.

Its grid system has been responsible for easing developers into responsive design practices for years, and that experience keeps bringing them back for future projects.

Bootstrap can also be a bit boring — both to write, and to look at. A lot of times, you can tell whether a site was written using BS at a glance and this has led to a somewhat uniform look to a lot of pages on the internet.

I’ve been working on some hobby projects recently and resolved to not use Bootstrap for any of them. …


A behind-the-scenes of an industry preying on fear

Image for post
Image for post
Photo by Petter Lagson on Unsplash

If you listen to podcasts or watch TV, you’ve probably noticed a flood of ads for VPN providers recently. These ads are pretty nebulous and regularly make promises about protecting your online privacy and personal data while also protecting you from hackers.

One problem with this: For the most part, VPNs don’t really do these things (more on this in a minute).

First, the ads do a good job of playing on the low-level anxiety that people have about privacy, security, and identity theft. They also take advantage of most consumers’ lack of knowledge about how the internet, networking, and VPNs actually work. …


Image for post
Image for post
Photo by Camylla Battani on Unsplash

About 6 months ago, I quit my office job as a software developer to do nothing in particular. I was seeking a change of pace, and my half-baked plan was to “update my skills” then see what was out there.

While pursuing job postings, I came across (and landed) a one-off opportunity that turned into the beginning of my becoming a remote freelancer. It also led to this “side hustle” of writing on Medium, which I must admit I’m enjoying.

Since then, when catching up with friends, family, and former coworkers (who I suspect are feeling out whether or not I made the right decision), I noticed a series of the same questions being asked to me. …


Picture of a toaster with toast sticking out
Picture of a toaster with toast sticking out
Image Source: Łukasz Popardowski via StockSnap

Making toast is a User Experience. Like all experiences, it can go well, or it can go poorly. A significant factor in achieving a successful outcome depends on the design of the object at the core of the experience — the toaster itself.

I hadn’t spent much time thinking about how toasters were designed until an exceptional one showed up in my old office, resulting in a personal existential crisis that caused me to question my competency as a software developer. Allow me to explain.

The experience of making toast

Ask yourself the following questions in a daytime TV infomercial voice:

  • How many times have you found yourself scraping off char due to an over-toasting misadventure? …


Heart drawn on graph paper
Heart drawn on graph paper
Photo by Bich Tran from Pexels

’Tis the season for romance, and what’s more romantic than a fresh programming challenge? I personally like problems that are a little different: not too academic, and can be knocked out in one sitting. Below is a challenge of my own creation, that fits this bill and will give you a chance to flex the most important coding muscle of all — the heart. I’ve also included an analysis and walk-through towards a solution for those who want someone to hold their hand along the way.

The problem

I administered this challenge to my development team as part of a code golf competition a couple of years back, but it stands on its own as a regular programming problem. …


A deeper analysis of what and why you may be asking

Image for post
Image for post

I’ve been spending a fair amount of time on the Q&A site Quora lately and have been seeing (and answering) a lot of variations of the same question:

About

Kevin Dawe

Cybersecurity Specialist & passionate techie currently living in and loving London, Canada. More info at kevindawe.ca

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