Toggling network interfaces for ASUS routers via HTTP endpoint

I was looking for a way to segment some IoT devices from my main network and disable their network connections on demand programmatically. The Guest Network feature on the router does a good job of segmenting the network, so I wanted a way to turn the guest network’s interface off and on based upon conditions.

Example scenario: You have cloud-based IoT cameras and want to cease all traffic when you’re home.

This puts toggling any interface on the router behind an HTTP endpoint. Since an interface is created when a guest network is enabled, we can now enable and disable that network whenever we want.

https://github.com/twstokes/guest_toggle

Importing Apple Health Data into InfluxDB

This past weekend I (finally) set up Grafana to visualize information about my machines with the usual stats like CPU usage, memory utilization, network throughput, etc. After reading up on how simple it was to add time-series data to InfluxDB, I pondered how nice it would be to also have my Apple Health data.

I wrote some Python to take the massive file that Apple lets you export (in a clunky, manual operation at the moment) and pull it into InfluxDB so that Grafana could visualize it. Check it out!

View on GitHub

Wireless garage door opener v2

“Because my garage door doesn’t need an operating system”

img_9676

I admit – I went a little overkill with the Raspberry Pi garage door opener. A machine so complex was being used to do something so simple: Perform a button press. Why did it need graphics capabilities? A multicore processor? Cron jobs? It didn’t.

Enter the Adafruit Feather HUZZAH ESP8266. All the right junk in all the right places. A simple HTTP request to the Feather, and we’re good to go.

With the recent release of iOS 10 I took it a step further. Could I get this thing to work with Siri? As it turns out, it’s really not that hard:

Check out the code on GitHub

3D Touch force values in Swift

We’re going to see really cool stuff from this. I was curious if 3D Touch in the new iOS devices provided continuous values, or a few discreet ones (light press, semi press, hard press).

Excitingly, you get a nice float back.

Who’s going to be the first to react to users squeezing their phones in a rage? #canfinallyhitstuffharder

Force touch


import UIKit

class ViewController: UIViewController {

    //@IBOutlet weak var buttonOutlet: UIButton!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
    
    override func touchesMoved(touches: Set, withEvent event: UIEvent?) {
        let touch = touches.first!
        let force = touch.force.description
        print(force)
    }

}

Responsive Design with Adaptive Images

Today I got curious if I could solve the issue of high-res images being loaded on small screens with responsive design. Here’s my solution via jQuery plugin.

Basically, I’m detecting the max size of the image by looking at its parent container and comparing that with the grid breakpoints. In my example I used Bootstrap, but I don’t see why any other responsive framework wouldn’t work.

Github

Emoji URLs

I got curious if one could construct emoji URLs…

Emoji_URL

.htaccess

RewriteEngine On
RewriteRule (.+) index.php?request=$1 [L,QSA]

index.php

$requestArray = explode("/", $_GET['request']);

echo “Welcome to my page about “;

if(urlencode($requestArray[0]) == ‘%F0%9F%90%A8’) echo ‘koalas’;

echo ‘ eating ‘;

if(urlencode($requestArray[1]) == ‘%F0%9F%8D%94’) echo “burgers!\n”;