RSSAmplifier

Blog

Ian London's Blog: RSS Feed

A blog of software and other projects

ianlondon.github.ioRSS feed ↗14 posts

Latest posts

Modular Level Kit Design Considerations

A guide to laying out a level building kit for 3D games

Escape the algorithmic enshittification of the web

Thoughts on more intentional online existence

Please Don't Use JSON Web Tokens for Browser Sessions

Or, how I learned to love the session cookie

Deploying Flask Apps Easily with Docker and Nginx

IMPORTANT NOTE! This is a tutorial intended for beginners who want to learn by messing around and DIY-ing, which is a great way to learn. However, this is NOT SECURE and NOT MEANT FOR PRODUCTION ! It's fun though, and suitable for a hackathon or short-lived personal project where you just want to get something deployed in a manual way that gives you a lot of control. Why use Apache or Nginx for…

Encoding cyclical continuous features - 24-hour time

Some data is inherently cyclical. Time is a rich example of this: minutes, hours, seconds, day of week, week of month, month, season, and so on all follow cycles. Ecological features like tide, astrological features like position in orbit, spatial features like rotation or longitude, visual features like color wheels are all naturally cyclical. Our problem is: how can we let our machine learning…

Data Munging in Pandas - Tricks and Pitfalls

Data munging is the least sexiest part of "the sexiest job of the 21st century" . According to authoritative popular sources like @BigDataBorat , data scientists spend 80% of their time cleaning up data. So we need to be really good at it! pandas is an awesome python library for manipulating any data that fits in a spreadsheet-like format. If you're familiar with R, it's the R dataframes concept…

Web Scraping - Discovering Hidden APIs

I was trying to help someone with a web scraping task today, and stumbled upon an interesting technique to find hidden APIs to scrape data from certain websites. Some sites use frontend frameworks which render dynamic content by loading a JSON or XML file from their backend to populate the user-facing site. I'm going to show you how to find the URL to access that dynamic content so you can easily…

VBoW Pt 2 - Image Classification in Python with Visual Bag of Words (VBoW)

Image Classification in Python with Visual Bag of Words (VBoW) Part 1 Part 2 Part 2: The Visual Bag of Words Model What is a Bag of Words? In the world of natural language processing (NLP), we often want to compare multiple documents. Documents each have a bunch of different words in a certain order. We will ignore the order and just throw the words into a bag. Then we can simply count the…

VBoW Pt 1 - Image Classification in Python with SIFT Features

Image Classification in Python with Visual Bag of Words (VBoW) Part 1 Part 2 Part 1: Feature Generation with SIFT Why we need to generate features Raw pixel data is hard to use for machine learning, and for comparing images in general. A digital image in its simplest form is just a matrix of pixel intensity values. Why not flatten this matrix to an array of pixel intensities and use that as your…

Giant Panda Detector - Image Classification with SIFT Features

I made a flask app that guesses whether an image is or is not an image of a giant panda. It uses SIFT features to build a Visual Bag of Words model. View the source on GitHub

Pickling in Python - The Very Basics

You just ran through a time-consuming process to load a bunch of data into a python object. Maybe you scraped data from thousands of websites. Maybe you computed a zillion digits of pi. If your laptop battery dies or if python crashes, your information will be lost. Pickling allows you to save a python object as a binary file on your hard drive. After you pickle your object, you can kill your…

Bipolar Coordinate Drawing Robot

Plot-Bot is a robot that draws SVG files onto a whiteboard. It can draw on anything you can mount flat on a wall: plywood or poster paper work too. It is controlled in the browser and uses Node.js with johnny-five to control 2 stepper motors via an Arduino. Video of plot-bot in action on YouTube: Drawing on a whiteboard: What it looks like in a browser: For more info and to see the code, go to the…

Scraping and Rendering HTML in iPython Notebook

Requirements: You need to have to have selenium installed first: run pip install selenium in the terminal or with iPython run !pip install selenium . Getting an HTML selection with selenium First, set up a Firefox webdriver and point it to our URL of interest. from selenium import webdriver driver = webdriver.Firefox() driver.get('https://en.wikipedia.org/wiki/International_Space_Station') Let's…

Web Scraping With XPath

XPath is very powerful, it's kind of a query language like SQL but for XML documents, including HTML documents, so it is a natural fit for web scraping. A lot of people never learn it and use CSS selectors and regex, and have a really hard time scraping anything complicated. Regex is great for parsing text, but not XML/HTML -- see this famous StackOverflow answer about it: CSS selectors are useful…