This article is meant to encourage readers to keep a high standard of what is acceptable for a CAPTCHA in second decade of the 21st century. It is neither meant to be a hacking tutorial nor is it meant to incite any type of malicious behavior. This article is for educational purposes only.

In a good-faith effort to protect the identity of the CAPTCHA provider being targeted throughout this article, some CSS class names and other code changes have been made.

Recently I came across a CAPTCHA on a WordPress site that utilized nothing but simple math (sometimes using the written out word for a number) to prevent automated submissions. I’m here to tell you this isn’t enough. Computers are inherently good at math and parsing written numbers into integers is no longer considered a difficult feat. …


Testing is an important yet often overlooked aspect of building successful Laravel applications. This article will provide an introduction to testing applications written using the Laravel Framework.

For our purposes we’ll be writing feature tests that make HTTP requests to our application and then make assertions about the responses and the state of the application’s database after the request is complete. We will make minimal changes to the authentication scaffolding provided by Laravel and focus on testing the Password Reset feature.

Getting Started

Assuming you are familiar with setting up a new Laravel project, use your terminal and the Laravel installer to create a new project. …


Today we’ll be learning about working with geospatial data, or data relating to geographical locations, in Laravel 5.6. As an exercise for working with this kind of data we’ll be building a simple USA Neighborhood Finder application.

screenshot of a successful result in our application

There are three main learning objectives for this article:

  1. How to use Google’s Geocoding API to geocode an address into corresponding coordinates consisting of a longitude and latitude.
  2. How to import geospatial data in Well-Known Text (WKT) format into a spatial column in MySQL.
  3. How to determine if a point (in this case a longitude and latitude) is contained by a geometry (in this case a neighborhood boundary). …

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