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.
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. …
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. …
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. …
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
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
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. …
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. …
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. …
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. …
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.
Ask yourself the following questions in a daytime TV infomercial voice:
’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.
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. …
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: