Projects
Started releasing open source software online in 2007, and have build up a decent list over the years – below are 71 of them. Most are for developers, some are for power users, and a few are for casual users.
See also my Github profile, as well as lists of repositories and followers.
Popular projects (7)
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.
uvcc
USB Video Class (UVC) device configurator. Used for webcams, camcorders, etcetera. Command line interface for automation.
talkie
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.
multi-video-frames
Play/view multiple video player streams in the same browser window by using iframes.
node-uvc
Node.js library for USB Video Class (UVC) devices. Used to write software for webcams, camcorders, etcetera.
npshell
Command line music queue manager. A music player from the comfort of your own shell.
node-dnssec-name-shame
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!
Active projects (11)
eslint-config-joelpurra
Opinionated shareable linting configuration for Javascript/Typescript. By and for Joel Purra.
factorio-save-upgrader
Tool to upgrade old Factorio game save files to the newest version. Bring on the map nostalgia!
fly-the-rainbow-flag.com
Show your support by adding the rainbow flag to your photos!
joelpurra
Totally accurate github profile representation of @joelpurra, in the form of gifs
joelpurra.github.io
Serving demos and tests for projects
loopia-api-dyndns
Dynamically updates the IPv4/IPv6 DNS records for domains registered with Loopia.
node-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.
node-usb-issue-418-delay-at-exit
Reproducing an issue where exiting a program after using node-usb v1.7.0 is significantly delayed.
nodejs-configvention
A node.js configuration convention with a minimal readonly interface.
npshell-demo
Automate demo creation, showing the npshell `np` music player commands in action.
shell-keystroke-animator
Simulate stroking keyboard keys into another application/window while taking screenshots to create a `.gif` animation.
Inactive projects (10)
botten-nappet
A Twitch bot and streaming tool.
conversation-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.
ffi-napi-issue-nodejs-v14
Reproducing an error loading multiple packages which use node-ffi-napi v3.0.1 on Node.js v14.
getdns-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.
github-data-cli
A small set of functionality to retrieve repository data from github, in JSON format.
homebrew-joelpurra
Homebrew tap containing specialized software created by Joel Purra, packaged for easy installation.
masters-thesis
"Swedes Online: You Are More Tracked Than You Think" — Joel Purra's master's thesis for a Master of Science in Information Technology and Engineering at Linköping University, Sweden
masters-thesis-presentation
Presentation/slides for Swedes Online: You Are More Tracked Than You Think
masters-thesis-site
Joel Purra's master's thesis' information site
more-tracked-paper
Paper based on the master's thesis "Swedes Online: You Are More Tracked Than You Think"
Archived projects (43)
autocleancallback
A jQuery plugin to clean input fields with common functionality, like trim, normalize whitespace, digits only. It is also easily extensible.
autocleancallback-canada
Canadian extensions to AutoCleanCallback (required).
bespoke-advanced
Auto advance slides on a timer in bespoke.js
bespoke-analytics
Visitor analysis per slide in your Bespoke.js presentation
bespoke-convenient
Convenient extension methods for building Bespoke.js plugins
bespoke-indexfinger
Keep track of the active slide in Bespoke.js
bespoke-jumpy
Keyboard shortcuts to jump straight to a specific slide in bespoke.js
bespoke-logbook
Log bespoke.js events and state to the console
bespoke-secondary
Show slide notes in a secondary window/screen with Bespoke.js
claimid-dump
A service to extract and dump links and data from shut down claimid.com user pages
collect-npm-readmes
Copy a project's first-level `npm` package readme files to a separate directory for easy access.
collectcalls
Collects functions that should be called in the future
editdidwhat
Compare two strings to see what has changed, and perform some string manipulation.
emulatetab
A jQuery plugin to emulate tabbing between elements on a page.
ep-erroneous-votes
Using open data dumps from Parltrack to analyze erroneous, and subsequently corrected, votes by Members of the European Parliament.
ep-projects
Projects related to the European Parliament data-driven research, in particular regarding erroneous votes
ep-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.
extract-fields
Scripts to extract HTML form field information from one or several webpages.
fabric-git-betwixt
Selective fabric deployment of a compiled project using a git repository *betwixt and between* your source code and target machine.
followup
A jQuery plugin to show and hide follow up questions in a form.
formfieldinfo
A javascript plugin used to collect information about forms in a page. This information is then used to filter out potential form problems, like missing values for radio buttons etcetera.
git2json-wrapper
A simple wrapper around `git2json`: convert git logs to JSON for easy analysis.
gitslave
Archived unofficial fork of gitslave 2.0.2. Install on Mac with `brew install joelpurra/joelpurra/gitslave`
guest-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.
har-dulcify
Extract data from HTTP Archive (HAR) files, quite possibly downloaded by har-heedless, for some aggregate analysis.
har-heedless
Scriptable batch downloading of webpages to generate HTTP Archive (HAR) files, using PhantomJS.
har-portent
Using har-heedless to download and har-dulcify to analyze web pages in aggregate.
hexagonif
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.
html-forms
How to improve #UX in #HTML forms: 10+ #usability projects explained!
html-forms-presentation
Improving user experience in HTML forms presentation slideshow
jekyll-theme-demivolte
A very simple Jekyll theme with the specific purpose of allowing for basic example/demo pages projects on github's gh-pages.
jq-hopkok
A bunch of jq snippets to manipulate json files, collected from other projects.
jquery-mutation-summary
A jQuery wrapper/plugin for mutation-summary, the DOM mutation-observers wrapper.
mice-wrapper
A simple wrapper around mice.py.
node-vidy
Search, discover, watch, and share talking videos from the VIDY API, using the CLI or code.
pagehasformchanges
A jQuery plugin to check if *anything* has changed in *any form* on a page, and warn the user before leaving the page.
plusastab
A jQuery plugin to use the numpad plus key (configurable) as a tab key equivalent.
recap
A collection of notes from talks, conferences, meetups.
riksdagens-ledamoter
A small utility to extract a list of first name, surname and email to all members of the Swedish Parliament
shunit2-colorize
Add colors to shUnit2 output.
skipontab
A jQuery plugin to exempt selected form fields from the forward tab order.
vidy-slack-bot
Search, discover, watch, and share talking videos from VIDY in Slack.
wellcomparedir
A tool for Windows to compare and select images with the same name from two folders, and copy to a third folder.