Just when I thought I was going to have a nice, relaxing Processing weekend, I realized my Airbnb scraper is broken. Fun fact: If they change their HTML, this script is WILDLY unlikely to work. I’m getting the sense that Airbnb is going to be the wild duck to my Sumatran tiger.
Since the scraper is how I’m gathering data for all the other scripts I’m trying to write, I spent the weekend fixing it.
Continue reading “AHK: How to Fix an Airbnb Scraper”
I accidentally opened up a KML file in Notepad once. There are no words in the English language to describe that specific form of horror. It’s generally brought on by questions like: “Did I just delete every other file in my C drive?” or “How the shit did I disable my keyboard? That script wasn’t even sending keystrokes???”
Continue reading “AHK: How to Code a KML to Excel Exporter”
I love AirBnB. But every now and then, I don’t want to scroll through multiple pages of listings to find a place to stay. I just want to be able to see a simple spreadsheet. That’s exactly what a web scraper is meant to do.
Continue reading “AHK: How to Write a Web Scraper”
So you wanna prettify your user interface? Maybe make some custom buttons and use your own image instead of the default grey box on the left?
It’s actually not as difficult as I was expecting. All you need is a program like Photoshop or Gimp to make the .png, .jpg or .tif for your background and any buttons.
Continue reading “AHK: Making a User Interface with Graphics”
So Hopper’s Amazing Decipherer Script 1.0 was about 472 lines because it included ELSE IF clauses for every letter in the alphabet.
HADS 2.0 cuts it down to 77 lines because arrays, as it turns out, are incredibly useful when paired with loops.
Making a Rotated Alphabet
Deciphering a Caesar cipher requires that the alphabet be moved up by a certain number. Like so.
Notice that this is basically a 2-step process. Turn the letters of the alphabet into numbers 1-26. Then add the rotational value to each of them to find their new positions, in the code below that’s assigned to a variable called indexVar. In ROT1, A =1 and the rotational value is 1, so A = 1+1 = 2.
But what happens when you hit Z? Z=26 and the rotation is 1, so Z = 26+1 = 27.
So, you want to tell the computer IF the number goes above 27, then you want to reset it to 1 and continue.
A Slow Motion Loop
Continue reading “AHK: Visualizing ELSE/IF with Arrays”
Arrays are a damn godsend. More specifically, they’re an easy way to deal with large lists. Why is this useful you ask? Imagine you want to run the same code on multiple items. The items could be numbers, letters, words, full sentences—anything. By putting those things in a list, or an array, you can loop through hundreds, even thousands, of items with just a few lines of code.
Continue reading “AHK: What is an Array?”
VG JNF N OEVTUG PBYQ QNL VA NCEVY NAQ GUR PYBPXF JRER FGEVXVAT GUVEGRRA JVAFGBA FZVGU UVF PUVA AHMMYRQ VAGB UVF OERNFG VA NA RSSBEG GB RFPNCR GUR IVYR JVAQ FYVCCRQ DHVPXYL GUEBHTU GUR TYNFF QBBEF BS IVPGBEL ZNAFVBAF GUBHTU ABG DHVPXYL RABHTU GB CERIRAG N FJVEY BS TEVGGL QHFG SEBZ RAGREVAT NYBAT JVGU UVZ
-No idea what this says. Damn you, Caesar.
The Caesar Shift is supposed to be ridiculously easy to decipher. I say supposed to be because while it might be easy to crack, translating the bastard is mind-numbingly painful if you have a substantial block of text.
There are quite a few resources online that’ll do it for you, but for kicks, I wrote an AHK that automates it—if you know how many positions you want to shift.
So How Does the Shift Work?
Continue reading “AHK: How to Decipher the Caesar Shift with Code”