Gun for hire. I do freelance keyboard smashing aka software engineering. Up to 3 month contracts, up to 32 hours per week, only working remotely.
xmouse-controls. Microsoft Windows utility to manage the active window tracking/raising settings. This is known as x-mouse behavior or focus follows mouse on Unix and Linux systems.
268uvcc. USB Video Class (UVC) device configurator. Used for webcams, camcorders, etcetera. Command line interface for automation.
112jq-hopkok. A bunch of jq snippets to manipulate json files, collected from other projects.
98talkie. Text-to-speech browser extension button. Select text on any web page, and have the computer read it out loud for you by simply clicking the Talkie button.
78jquery-mutation-summary. A jQuery wrapper/plugin for mutation-summary, the DOM mutation-observers wrapper.
66gitslave. Archived unofficial fork of gitslave 2.0.2. Install on Mac with `brew install joelpurra/joelpurra/gitslave`
42multi-video-frames. Play/view multiple video player streams in the same browser window by using iframes.
31plusastab. A jQuery plugin to use the numpad plus key (configurable) as a tab key equivalent.
27node-uvc. Node.js library for USB Video Class (UVC) devices. Used to write software for webcams, camcorders, etcetera.
18node-dnssec-name-shame. WEBSITE DECOMISSIONED. Do the big companies use DNSSEC yet? Are you really safe online? We know who's been naughty and who's been nice -- and now it's time to name and shame them!
15npshell. Command line music queue manager. A music player from the comfort of your own shell.
15emulatetab. A jQuery plugin to emulate tabbing between elements on a page.
15factorio-save-upgrader. Tool to upgrade old Factorio game save files to the newest version. Bring on the map nostalgia!
13skipontab. A jQuery plugin to exempt selected form fields from the forward tab order.
11har-dulcify. Extract data from HTTP Archive (HAR) files, quite possibly downloaded by har-heedless, for some aggregate analysis.
10loopia-api-dyndns. Dynamically updates the IPv4/IPv6 DNS records for domains registered with Loopia.
9shell-keystroke-animator. Simulate stroking keyboard keys into another application/window while taking screenshots to create a `.gif` animation.
8har-heedless. Scriptable batch downloading of webpages to generate HTTP Archive (HAR) files, using PhantomJS.
8bespoke-secondary. Show slide notes in a secondary window/screen with Bespoke.js
8nodejs-configvention. A node.js configuration convention with a minimal readonly interface.
8wellcomparedir. A tool for Windows to compare and select images with the same name from two folders, and copy to a third folder.
7conversation-augmentation-chat-mediator-bot. Reduce anger and improve two-way human-to-human conversations with the help of a mediating/moderating chatbot. This particular bot blocks angry messages which have a bad sentiment score from being delivered to the other chat participant.
7html-forms. How to improve #UX in #HTML forms: 10+ #usability projects explained!
7editdidwhat. Compare two strings to see what has changed, and perform some string manipulation.
6node-uvc-control. Fork of uvc-control for @joelpurra/uvcc. Might be deleted if it gets merged upstream.
5botten-nappet. A Twitch bot and streaming tool.
5har-portent. Using har-heedless to download and har-dulcify to analyze web pages in aggregate.
5ep-the-corrections. Using data on erroneous/corrected votes in ep-erroneous-votes, based on open data dumps from Parltrack, to visalize erroneous, and subsequently corrected, votes by Members of the European Parliament.
5bespoke-jumpy. Keyboard shortcuts to jump straight to a specific slide in bespoke.js
5bespoke-convenient. Convenient extension methods for building Bespoke.js plugins
5node-libuvc. Low-level Node.js library for USB Video Class (UVC) devices, wrapping the cross-platform libuvc C library. Used to write software for webcams, camcorders, etcetera.
4hexagonif. Played around with the HTML5 <canvas> element for use in the background of a website, and ended up with this little toy. Play around with the interactive demo. The name "hexagonif" comes from hexagon and gonif.
4ep-erroneous-votes. Using open data dumps from Parltrack to analyze erroneous, and subsequently corrected, votes by Members of the European Parliament.
4github-data-cli. A small set of functionality to retrieve repository data from github, in JSON format.
4bespoke-advanced. Auto advance slides on a timer in bespoke.js
4bespoke-analytics. Visitor analysis per slide in your Bespoke.js presentation
3recap. A collection of notes from talks, conferences, meetups.
3more-tracked-paper. Paper based on the master's thesis "Swedes Online: You Are More Tracked Than You Think"
3shunit2-colorize. Add colors to shUnit2 output.
3guest-browser-start-page. A friendly start page for your secondary/guest browser, letting your guests know that you are OK with them using it, and that no information is saved.
3ep-projects. Projects related to the European Parliament data-driven research, in particular regarding erroneous votes
3getdns-developer-support. Helper scripts and other developer notes for those working with or on getdns, getdns-node and related repositories, dumped into a repository in the case that they might be of use to someone else. See getdnsapi.net for additional getdns information.
1