It’s for their own good.

It almost sounds like a conspiracy theory. This week, the FBI announced that it hacked hundreds of servers around the US, remotely executing code on the machines.

But it’s very real. In fact, the Justice Department itself made the announcement, and received court authorization to do this.

The whole thing sounds very strange. But it turns out the hack had a very specific purpose: to protect these computers from the very same exploit the FBI was using to hack into them.

The FBI headquarters in Washington, DC. Credit: Aude

See, back in January, a security testing firm told Microsoft there was a major vulnerability in Microsoft Exchange Server…


When hacking shows its good side.

It’s what you never want to hear: An important service, used by millions, has a critical vulnerability.

In a story that broke this week, the service in question was Zoom. The vulnerability, had it been exploited, would have allowed bad actors to run whatever code they wanted on a user’s machine.

In this case, though, the story has a happy ending.

Often when you hear about vulnerabilities in software, it’s because they’ve already been exploited by hackers — specifically, black hat hackers, the term for hackers who act maliciously.

But there’s a whole other side to hacking. It’s called white…


The hack could have been devastating, but it was handled near-perfectly.

Every so often, you hear about one of these huge, internet-breaking hacks that reveals just how fragile our networking infrastructure is.

This week it almost happened again.

Close to 80% of websites use the programming language PHP in some form. Like many languages, it’s open source, meaning the code behind the language is publicly available — and editable.

Of course, there are protections in place to make sure not just anyone can go in and change the source code for the language. But this week, those protections failed.

Hackers were able to change the code behind PHP to allow anyone…


If you’re an avid programmer or even just familiar with your computer’s Bash terminal, odds are it’s come up before: the cURL command.

cURL stands for Client URL Request Library, and it allows you to use your terminal to send and request information from websites or APIs.

It’s useful for all kinds of different things, from downloads to installs to web scraping to data analysis. But one of it’s most common uses in programming is API requests.

There are other tools for this, of course, like Postman, but if you just need to do a quick check to see what…


AKA the best utility for working with data in JavaScript.

If you’re trying to do anything fancy with data in JavaScript, you might be tempted to build the methods yourself. And that’s completely understandable — for a lot of new programmers, that’s the first strategy that comes to mind.

But before you get into brute forcing that new function, you might want to check out Lodash. Because odds are, it already has you covered.

Lodash is amazing for all kinds of things — iterating over arrays, objects, and strings, manipulating values, you name it.

To get started, all you have to do is run npm install lodash. Then, in the…


Objects are a serious workhorse in JavaScript, as they are in many programming languages.

At their most basic, they’re a data structure that allows you to store information in the form of key/value pairs, like so:

info = {
company: "Google",
url: "https://www.google.com",
}

You can nest objects within objects, store many objects together with an array, and even iterate over their properties and corresponding values. You can also add a new key to an object simply by assigning a value to it, like this:

info["CEO"] = "Sundar Pichai"

There’s a problem, though: Preserving the order of an object isn’t…


So you want to build a website using Python.

Well, odds are you’ll be planning to use Django for the framework for said website. Which means your next step is getting Django installed on your machine.

If you’re using Mac or Linux, first make sure you have Python installed. Just open up a terminal and type python3 and see what happens. If you get an error, go ahead and install Python 3. If you get a version number, you have Python 3 installed already. Great! Type exit() to exit the python shell.

Next, you’ll want to install pip, a package…


If you’ve been following along with this series, you already have a pretty solid foundation for getting out there and doing some programming in Python.

But there’s one tool that’s completely essential for programming in Python that doesn’t really have a parallel in Ruby, and that’s list comprehensions.

A brief refresher on lists: They’re a data structure that functions very similarly to arrays in other languages. For super basic applications, you can initialize them the boring way, like so:

my_list = []print(my_list)

If you then run the program in the command line, you get:

But let’s say you want…


For most backend developers, protecting the database from hackers is at the top of the priority list. All it takes is one bad actor getting access to information they shouldn’t have, and you’re screwed.

In SQL databases, one potential vulnerability is the fact that in many databases, the primary key, or ID, for each data entry is just an integer that increments by 1. So if a hacker wants to access some random record, they can just try random integers and see what happens.

UUID, which generates random strings of letters and numbers, is a great way to prevent that…


Welcome back to this learn-quick series for Rubyists looking to learn Python! In case you missed it, you can check out Part I here.

Next up: Data Types.

Like most programming languages, Python has a few basic data types built in. Like in Ruby, you have strings, integers, and floats.

To convert between them, you can use the str(), int(), and float() functions. For example:

Here, we assigned the string "3" to the variable x. Then we converted it to an integer using int(). Then we converted it to a float using float() and reassigned the resulting value to x

Alyssa Lerner First

Software developer and science/tech writer. Python, Ruby on Rails, JavaScript, React/Redux, Java. Fascinated by the amazing stories behind today’s tech.

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