Tootbot is now on Heroku

About a year and a half ago, I released the first version of Tootbot (it was called 'Memebot' at the time). It's a Python tool designed to repost Reddit content on Twitter and Mastodon, with automatic media embedding, advanced filtering, and more. I primarily made it for my own Twitter bots (like @PrequelMemesBot and @ItsMeowIRL), but since it's open-source, anyone else could use it as well.

After I said I was shutting down my @ItMeIRL bot, the amount of people using Tootbot exploded. Not only were there a dozen clones of the account I was shutting down, but also completely different accounts. There's one for Fortnite news, one for bossfights, one for the popular comedy show It's Always Sunny in Philadelphia, and so on.

Even though I've made it as easy as possible, setting up Tootbot is still somewhat complicated for people not familiar with Python or managing servers. I mentioned before that I was working on supporting adding Heroku support, which would a…

Goodbye, @ItMeIRL.

All the way back in October 2015 (that seems like ages ago!), I made a Twitter bot called @ItMeIRL. As the name implies, it posts content from the /r/me_irl subreddit. Over time, it grew a pretty sizable audience—the account now sits at nearly 400k followers.

For some of that time, I made it as something mostly for myself and friends to enjoy. But as time went on, it actually became a fun programming side-project. I wrote my own automated bot (Tootbot) mostly from scratch, and I became more experienced with the Python programming language in the process. There are now over a dozen Twitter and Mastodon accounts using Tootbot, and I've loved seeing what others create with it.

But over the past eight months or so, my desire to keep running the account has essentially vanished. Back in January, someone with thousands of followers (who shall remain nameless) became upset that my bot posted screenshots of his tweets. When I didn't delete them in a timely fashion, he told his followe…

How to correctly check for Do Not Track with JavaScript

Every modern browser has a Do Not Track setting, which tells sites whether the user wants to be tracked or not. Many sites don't respect this setting, but it's there regardless.

However, checking the value of this setting is far more complicated than it needs to be. Major browsers are split on whether it should be `navigator.doNotTrack` or `window.doNotTrack`, and the value can either be a string, a Boolean, or `undefined`. Here's how it boils down:

Chrome, Opera, and other Blink-based browsers use `navigator.doNotTrack`, with values of either `1` for true or `0` for false. Firefox also uses `navigator.doNotTrack` with the same values, but older versions use a different syntax. Prior to v32, Firefox would report `yes`, `no`, or `unspecified` (more info).Safari 7.1.3 and later use `window.doNotTrack`, while older versions use `navigator.doNotTrack`.Microsoft Edge and Internet Explorer 11 use `window.doNotTrack`, and reports `1` when enabled and 'unspecified' (Edge) …

How I built my website

For the past two years, I've hosted my personal site (first, then later on Blogger. At the time, I was using my site as a blog I rarely posted to, so it didn't seem like a good idea to pay for a host that supported WordPress. Even though Google rarely touches it these days, Blogger is still a decent platform, especially since it supports custom HTML/CSS/JS.

Last month, I wanted to try replacing it with a static site. My main goal was to highlight my social media accounts more promiently. I also wanted it to load quickly and not use any JS/CSS frameworks, like Bootstrap or Bulma. There's nothing wrong with those projects, I just wanted to try writing my own solution from scratch.

First, I had to choose a host. I settled on GitHub Pages, mostly because I've used it before. It allows you to host static web content (no PHP) for free, so it's perfect for basic websites. By default, it will host your site as a sub-domain on GitHub, but you can use a …

Star Trek: Discovery isn't amazing

It's fair to say I'm a Star Trek fan. I've watched most of the shows and all the films, except Voyager (which was incredibly boring IMO). Deep Space 9 is probably my favorite show, followed by either The Next Generation or Enterprise. I might write another post about how great Enterprise is at some point, because honestly, it gets too much hate.

But that's not what this post is about. Today, I want to share my thoughts about the latest entry in the long-running franchise - Star Trek: Discovery. This is a show that had very high expectations, as it was the first Trek show in over a decade (since ST: Enterprise ended in 2005). Discovery is set 10 years before the original series, and revolves around the crew of the USS Discovery in the middle of a war between the Federation (aka United Nations in space) and the Klingon Empire (the bad guys).

This isn't going to be an actual review of the show, more of a rant about my complaints with it. If you're looking for a w…

Introducing WhatDevice

There are plenty of instances where you may need to quickly find out information about your computer. But trying to find the information you need can be difficult, especially if you're trying to diagnose an operating system you don't normally use. If you usually work on a Mac, you might not know how to lookup the GPU on Windows without doing some googling first.

That's where WhatDevice comes in. It's a web app, currently in beta, that aims to display everything about your device on one page.

Not sure what OS your friend is running? Just tell them to type in Can't figure out if your video camera is properly connected? Just type in Pretty easy.

This is an early beta, and not every planned feature is implemented yet. For example, WhatDevice will soon allow you to save the complete details of your device to a text file. I also plan to make it an offline-ready Progressive Web App, but that isn't fully working yet.

If you have feedb…

NoPlugin 4.0 is now available!

NoPlugin is a browser extension that allows you to view some plugin content in your browser, without the need for actual browser plugins. I've been working on version 4.0 for a few weeks now, and I'm excited to finally release it.

Firstly, NoPlugin 4.0 works much better on devices running Chrome OS. The extension did work before on Chromebooks, but I was unable to fully test it, and some of the included instructions were incorrect. Now that I have a shiny new Chromebook Flip, I was able to fix the problems.

Starting with version 4.0, NoPlugin will sanitize all plugin object data before processing it. This is done to prevent possible XSS attacks. I'm not aware of this happening to any user, but better safe than sorry.

The new welcome page on NoPlugin 4.0.
There a few other minor improvements, such as support for RTSP media streams and detection for VLC plugin objects. NoPlugin 4.0 is rolling out now to Chrome users, and is in the review process for Opera and Firefox. Opera s…