I used thousands of New Yorker cartoon contest caption submissions to classify about 100 cartoons into nineteen categories, and trained a neural network to generate new captions for each category. Some of them are kind of funny. [more inside]
At the PyGotham 2018 tech conference, Jason Owen and I presented "Python Grab Bag: A Set of Short Plays", inspired by the Neo-Futurists' show "The Infinite Wrench". The 40-minute video is up on YouTube and my blog post links to the script and slides, credits the crew and cast, deep-links to the specific timecodes for individual plays, and gives citations for the references we made. [more inside]
Good Spirits is a drink tracker for iOS. Ever since learning about the correlation between drinking and various kinds of cancer, I've been meticulous about logging and tracking every drink I consume. Good Spirits makes this process easy: just set a weekly limit, check in your drinks, and the app will let you know when you're in the danger zone. For the craft beer drinkers, you can automatically pull new check-ins from Untappd. Free and soon-to-be open source!
What does one do with a blog in 2018? If you're me you export the text, do a little cleanup, ingest it with NLP (Natural Language Processing) tool Markovify, and create random sentences based on your own writing. It's a little eerie to read words that seem like me but clearly were not assembled by me. It was fun to make. You can follow it on twitter @BloggingBot.
The side buttons on generic mice work really well for navigation in Windows... but not so much in macOS. By default they basically do nothing, and most software that claims to fix this problem (USB Overdrive, etc.) only binds the buttons to keyboard shortcuts with mixed results. While testing the Logitech MX Master, I noticed that unlike every other mouse I'd come across, its side buttons were acting in a suspiciously Windows-like manner on my Mac. (No blinking menu bars. No occasional destructive behavior. No mis-targeted navigation commands.) I decided to investigate this phenomenon in hopes of porting the behavior to all my other mice, and to make a long story short: it works! Really well! (Under GPL!)
A curated weekly newsletter/blog of mostly-tech links that are interesting, strange, surprising or funny. From the BGP Bitcoin theft in 2014 that started it to Kugelblitzes, hashmaps in Rust and licking Nintendo cartridges, the Weekly Weird is me dumping my browser tabs into an email just in time for lunchtime on Friday (EST). No politics unless the underlying story is really compelling. Subscribe here.
A free (GPL) real-time-strategy/programming game where you must escape from a hostile computer system. A screenshot; the trailer (youtube); some more gameplay (also youtube). For Windows (the executable is available from the github release page at the main link) and can also be built on any system supported by Allegro (Linux etc.). [more inside]
I don't have much of a background in programming, but I do have a bit of one in libraries. This was my final paper for a graduate course from last semester. I'm curious to hear from other people in the library and programming fields about the viability of the idea. Is it useful, feasible, doable? The basic idea is to automatically attach search terms to library items that end up being used because of those search terms. I'd love to hear what you think!
Monolog is an interactive diary bot that prompts you with interesting questions, which it chooses based on the topics you write about. [more inside]
Wired thought they would rile people up by ranking Star Trek characters. But, they just provided a list. No links with context or further info. So I've done that. Mainly I wanted to fiddle with a heroku app and learn Bootstrap. Please enjoy my really cruddy looking "app." I want to continue to work on it until it looks nice. Most of the links work. I may have missed one or two. It's an ongoing journey.
I code up lots of odd and questionably useful computer programs, and I decided to start a blog to document some of my favorites as I put them up on github. In the month that I've been working on the site, I've posted around 14,000 words and five repositories. [more inside]
An update on what we've been up to at The Media Show, including an interview with the head of punk label Kill Rock Stars and arguing with a puppet version of Richard Stallman. [more inside]
a student-made painting app in the tradition of Kid Pix: one that embraces chaos, randomness and amateurism instead of pixel perfection. All brushes in this app were created by students at the School of the Art Institute of Chicago in the 'New Media Crash Course', Spring 2016 (don't worry, not really NSFW) [more inside]
A twitter bot that uses machine learning to define invented words, posting truncated definitions on Twitter and complete ones on Tumblr. Tweet @lexiconjure a made-up word, and it'll define it for you. [more inside]
Neuralsnap generates an image caption using a model I trained (convolutional and recurrent neural networks), then uses another character-level recurrent neural net that I trained on ~40 MB of poetry to expand the caption into a poem. (In this example, generated from a Rothko painting, the red text is the direct image caption, and the rest is the poetic expansion.) [more inside]
In a deplorable lapse of judgement, I decided that I would be the person to fix the sorry state of online content writing, where sites currently either use crude HTML or Markdown input fields, or infuriating WYSIWYG components. Seven months later, there is ProseMirror, an alpha-stage piece of software that might just grow into the editor I want the web to use. It even does collaborative editing because some problems are just hard to resist. [more inside]
I did a talk at the Develop Denver 2015 conference on developers building automation systems (robots) to replace themselves. This is a video of the talk, minus the intro. [more inside]
Calvin and Markov digests Calvin and Hobbes strips and generates endless new comics with random, semi-coherent dialogue using Markov chains. Here's some details about how I built it. [more inside]
My own humble contribution to the learn-to-program literature.
Play an 80s synth in your browser with 106.js, a MIDI-enabled emulation of the Roland Juno-106 synthesizer. Chrome/Desktop only. Github repo here.
A sampling of log statements as they get pushed to Github (a site that hosts open source code). Logs usually contain human-readable messages that are used by programmers to give themselves an idea of what's going on in the case that their software is having problems or behaving unexpectedly.
As part of Open Data Day DC, I began the Books for DC (aka 'booksfordc') project with the goal of increasing user engagement with the DC Public Library's many wonderful resources. Last month, I wrote a web scraper that publishes a Twitter feed of new additions to the DCPL book catalog. And I just released a Chrome browser extension that lets you know what books and ebooks are available at the DCPL when browsing Amazon, Goodreads, or Barnes & Noble. [more inside]
esoteric.codes is my blog about esolangs (esoteric programming languages), aimed at a less technical audience. Esolangs are created by programmers at play, challenging conventions of coding, looking at how we communicate with the machine, and indulging the strangest what-if scenarios in code. The blog looks at the ideas behind these languages and explores connections to code art and conceptual practices -- but it is also a fanzine to my favorite languages. It features interviews with the original designers (recently: Ben Olmsead of Malbolge, coming up soon David Morgan-Mar of Piet and Whenever) alongside posts about common themes between languages (e.g. languages that produce no output). It was recently awarded the 2014 Arts Writers Grant.
Endless Jingling: an elf singing randomly generated holiday music, forever and ever. Reload for a new combination of carols. Spiff up and/or ruin holiday parties as needed. [more inside]
Tweeting MetaFilter post deletion reasons at @mefideleted to celebrate the wise and gentle hand of moderation reaching from the heart to the edge of our community. [more inside]
Opinion polls are all well and good, but they don't give you much of an idea of what might actually happen in an election (particularly in a multi-party democracy like the UK). Electobot aims to solve that by running thousands of simulated elections in order to work out what might happen if the election were run tomorrow with the polls as they are. In addition to running the simulations, I've also been blogging the results at Electobot: The Blog. [more inside]
I'm organizing a code poetry slam in New York City on November 14. Submissions are now open. Judges, special guests, etc. to be announced. Stay tuned. [more inside]
Clojure demonstration of authenticating and batch uploading to Amazon Web Services' Simple Storage Service. [more inside]
I work for Mozilla as a web browser developer. I've found that it's hard to learn the inner workings of a browser, so I started building a “toy” HTML/CSS rendering engine designed to be easy to understand and modify. This is the first in a series of articles that will explain the code I wrote, and also walk you through the process of writing your own toy rendering engine from scratch.
SliderBuilder is an interactive web-based WYSIWYG editor for creating slideshows, content sliders, and carousels for a website or blog. You manipulate slides, layers, images, and text through a web interface, then either generate HTML code to paste into your site or publish your slider at sliderbuilder.com. [more inside]
Avail is a new and ambitious programming language - which, for the record, I did not build. I did, however, help with the extensive and impressive documentation on the website. I also ported a text-adventure-style game, "The Ship of Stories" to Avail, and it is included with the standard download as an example program to play with! Considering that I'm not a programmer, this is one of the most interesting things about Avail, to me. It was trivial for me to do this, and I find that the code itself is amazingly readable.
Data visualizations ported from Processing to Clojure. [more inside]
Before you start programming, you might only know you're supposed to learn CODING!, but you don't even know what that means. You don't know there's HTML and Ruby and C++ and D3 and a million other things, just that there's a big black box called CODING! and you're supposed to break into it somehow. How Do You Code? asks people from all walks of life to explain how they code and share the tools they use, so maybe everyone else can get a leg up.
A course in programming in Python for literate non-programmers, offered in Brooklyn, NY. [more inside]
A searchable list of Boston-area startup companies, sortable by if hiring, industry, neighborhood, and more. [more inside]
A quick weekend project intended to stretch my design/marketing skills. A printable quick reference sheet for the Grails web framework.
ManyLittleApps aggregates seven (and counting) web apps for website design, graphics design, and wordplay. [more inside]
I was introduced to Oblique Strategies here on MeFi, and the cryptic collection of aphorisms by Peter Schmidt and Brian Eno has been one of my favorite creative tools ever since. Lately, I've done most of my creating with a text editor and terminal, so I made a similar tool skewed towards programmers (but hopefully useful to problem solvers of all sorts). It includes a tiny JSON API and a command line interface. [more inside]
A general-purpose dataflow programming language based on Python, written in Python [more inside]
I taught a learn-to-program course this summer for biologists with no previous programming experience. I got lots of requests from the participants for an online version of the course, so here it is! Learn to program in Python with no previous experience required, using lots of biological / bioinformatics examples. [more inside]
Basically one part a way of finding interesting open source software projects on github, one part an experiment in discovery mechanisms. Like Wikipedia's Random Article feature, only less prone to giving you uninteresting things. [more inside]
My friends and I built an 80s Joke Line for a hackathon event here in Toronto. You can call in to hear a joke and then share one of your own. It's cobbled together using Flask (a Python web framework) and APIs from Twilio and Soundcloud. The code is on GitHub. We are a bit short on jokes. Maybe you can help with that. [more inside]
I just finished the excellent CS101 course at Udacity, which promised I'd learn to build a search engine in seven weeks. I was skeptical, but sure enough, I did! This very simple search engine is based on the code I learned in class, and searches the Udacity course materials. While building it, I also learned to use the Bottle web framework and Google App Engine. I kept a blog with lots of details here. The next round of classes starts tomorrow, so I thought I'd post this here and encourage anyone interested in learning to build their own to sign up.
The classic chatbot Eliza written in Entropy, the language of disorder. [more inside]
I created a daily food diary to keep track of what I eat, the calories I've consumed, and my thoughts about the day's intake. [more inside]
Hammer Principle is a site a friend and I created a while back for comparison of different programming languages along different axes. It's since expanded into a variety of other areas, including databases, martial arts and gin (the gin one is sadly very unloved). [more inside]
A website that lets you browse CC and public domain images. [more inside]