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 (4)

xmouse-controls

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2012-08-13T00:31:41Z"
					title="Oldest commit: August 13, 2012"
				>2012</time>—<time
					datetime="2023-04-25T11:44:26Z"
					title="Most recent commit: April 25, 2023"
				>2023</time></span></p>

<p>
	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.
</p>

uvcc

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2018-02-01T20:18:57Z"
					title="Oldest commit: February  1, 2018"
				>2018</time>—<time
					datetime="2023-02-25T19:26:51Z"
					title="Most recent commit: February 25, 2023"
				>2023</time></span></p>

<p>
	USB Video Class (UVC) device configurator. Used for webcams, camcorders, etcetera. Command line interface for automation.
</p>

talkie

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2016-12-31T10:48:44Z"
					title="Oldest commit: December 31, 2016"
				>2016</time>—<time
					datetime="2024-10-23T08:36:02Z"
					title="Most recent commit: October 23, 2024"
				>2024</time></span></p>

<p>
	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.
</p>

factorio-save-upgrader

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2022-07-11T16:22:08Z"
					title="Oldest commit: July 11, 2022"
				>2022</time>—<time
					datetime="2024-10-21T18:41:14Z"
					title="Most recent commit: October 21, 2024"
				>2024</time></span></p>

<p>
	Tool to upgrade old Factorio game save files to the newest version. Bring on the map nostalgia!
</p>

Active projects (5)

eslint-config-joelpurra

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2020-09-01T11:56:24Z"
					title="Oldest commit: September  1, 2020"
				>2020</time>—<time
					datetime="2023-10-31T12:08:23Z"
					title="Most recent commit: October 31, 2023"
				>2023</time></span></p>

<p>
	Opinionated shareable linting configuration for Javascript/Typescript. By and for Joel Purra.
</p>

fly-the-rainbow-flag.com

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2015-07-06T11:17:50Z"
					title="Oldest commit: July  6, 2015"
				>2015</time>—<time
					datetime="2023-06-12T11:53:36Z"
					title="Most recent commit: June 12, 2023"
				>2023</time></span></p>

<p>
	Show your support by adding the rainbow flag to your photos!
</p>

joelpurra

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2020-11-16T12:30:46Z"
					title="Oldest commit: November 16, 2020"
				>2020</time>—<time
					datetime="2025-07-25T14:01:06Z"
					title="Most recent commit: July 25, 2025"
				>2025</time></span></p>

<p>
	Totally accurate github profile representation of @joelpurra, in the form of gifs
</p>

loopia-api-dyndns

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2020-12-08T18:18:38Z"
					title="Oldest commit: December  8, 2020"
				>2020</time>—<time
					datetime="2022-07-06T16:03:52Z"
					title="Most recent commit: July  6, 2022"
				>2022</time></span></p>

<p>
	Dynamically updates the IPv4/IPv6 DNS records for domains registered with Loopia.
</p>

nodejs-configvention

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2012-11-15T21:53:57Z"
					title="Oldest commit: November 15, 2012"
				>2012</time>—<time
					datetime="2023-06-12T16:49:28Z"
					title="Most recent commit: June 12, 2023"
				>2023</time></span></p>

<p>
	A node.js configuration convention with a minimal readonly interface.
</p>
Inactive projects (19)

botten-nappet

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2018-01-18T15:52:11Z"
					title="The period from oldest to most recent commit: from Thursday 18 January 2018 to Monday 28 May 2018"
				>2018</time></span></p>

<p>
	A Twitch bot and streaming tool.
</p>

conversation-augmentation-chat-mediator-bot

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2016-11-20T10:48:57Z"
					title="Oldest commit: November 20, 2016"
				>2016</time>—<time
					datetime="2017-10-06T20:20:28Z"
					title="Most recent commit: October  6, 2017"
				>2017</time></span></p>

<p>
	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.
</p>

ffi-napi-issue-nodejs-v14

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2020-09-05T23:00:55Z"
					title="The period from oldest to most recent commit: from Saturday  5 September 2020 to Saturday  5 September 2020"
				>2020</time></span></p>

<p>
	Reproducing an error loading multiple packages which use node-ffi-napi v3.0.1 on Node.js v14.
</p>

getdns-developer-support

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2016-07-24T19:44:15Z"
					title="Oldest commit: July 24, 2016"
				>2016</time>—<time
					datetime="2018-02-18T15:03:59Z"
					title="Most recent commit: February 18, 2018"
				>2018</time></span></p>

<p>
	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.
</p>

github-data-cli

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2017-06-22T06:32:01Z"
					title="Oldest commit: June 22, 2017"
				>2017</time>—<time
					datetime="2020-02-04T08:03:04Z"
					title="Most recent commit: February  4, 2020"
				>2020</time></span></p>

<p>
	A small set of functionality to retrieve repository data from github, in JSON format.
</p>

homebrew-joelpurra

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2015-01-22T21:35:42Z"
					title="Oldest commit: January 22, 2015"
				>2015</time>—<time
					datetime="2020-12-29T16:37:57Z"
					title="Most recent commit: December 29, 2020"
				>2020</time></span></p>

<p>
	Homebrew tap containing specialized software created by Joel Purra, packaged for easy installation.
</p>

joelpurra.github.io

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2012-02-13T17:25:49Z"
					title="Oldest commit: February 13, 2012"
				>2012</time>—<time
					datetime="2021-02-24T05:58:23Z"
					title="Most recent commit: February 24, 2021"
				>2021</time></span></p>

<p>
	Serving demos and tests for projects
</p>

masters-thesis

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2014-03-12T12:00:37Z"
					title="Oldest commit: March 12, 2014"
				>2014</time>—<time
					datetime="2017-08-22T06:24:50Z"
					title="Most recent commit: August 22, 2017"
				>2017</time></span></p>

<p>
	&quot;Swedes Online: You Are More Tracked Than You Think&quot; — Joel Purra&apos;s master&apos;s thesis for a Master of Science in Information Technology and Engineering at Linköping University, Sweden
</p>

masters-thesis-presentation

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2015-02-17T19:36:27Z"
					title="Oldest commit: February 17, 2015"
				>2015</time>—<time
					datetime="2017-08-22T06:25:08Z"
					title="Most recent commit: August 22, 2017"
				>2017</time></span></p>

<p>
	Presentation/slides for Swedes Online: You Are More Tracked Than You Think
</p>

masters-thesis-site

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2014-03-27T12:41:43Z"
					title="Oldest commit: March 27, 2014"
				>2014</time>—<time
					datetime="2017-08-22T06:34:44Z"
					title="Most recent commit: August 22, 2017"
				>2017</time></span></p>

<p>
	Joel Purra&apos;s master&apos;s thesis&apos; information site
</p>

more-tracked-paper

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2015-04-23T14:45:07Z"
					title="Oldest commit: April 23, 2015"
				>2015</time>—<time
					datetime="2017-08-22T06:26:31Z"
					title="Most recent commit: August 22, 2017"
				>2017</time></span></p>

<p>
	Paper based on the master&apos;s thesis &quot;Swedes Online: You Are More Tracked Than You Think&quot;
</p>

multi-video-frames

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2012-08-06T06:55:55Z"
					title="Oldest commit: August  6, 2012"
				>2012</time>—<time
					datetime="2021-04-15T17:33:08Z"
					title="Most recent commit: April 15, 2021"
				>2021</time></span></p>

<p>
	Play/view multiple video player streams in the same browser window by using iframes.
</p>

node-dnssec-name-shame

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2014-04-23T13:49:37Z"
					title="Oldest commit: April 23, 2014"
				>2014</time>—<time
					datetime="2021-06-10T12:32:28Z"
					title="Most recent commit: June 10, 2021"
				>2021</time></span></p>

<p>
	Do the big companies use DNSSEC yet? Are you really safe online? We know who&apos;s been naughty and who&apos;s been nice -- and now it&apos;s time to name and shame them!
</p>

node-libuvc

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2021-06-09T18:39:30Z"
					title="The period from oldest to most recent commit: from Wednesday  9 June 2021 to Wednesday  9 June 2021"
				>2021</time></span></p>

<p>
	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.
</p>

node-usb-issue-418-delay-at-exit

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2021-04-29T16:45:13Z"
					title="The period from oldest to most recent commit: from Thursday 29 April 2021 to Thursday 29 April 2021"
				>2021</time></span></p>

<p>
	Reproducing an issue where exiting a program after using node-usb v1.7.0 is significantly delayed.
</p>

node-uvc

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2021-06-09T15:10:23Z"
					title="The period from oldest to most recent commit: from Wednesday  9 June 2021 to Wednesday  9 June 2021"
				>2021</time></span></p>

<p>
	Node.js library for USB Video Class (UVC) devices. Used to write software for webcams, camcorders, etcetera.
</p>

npshell

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2014-11-26T21:43:03Z"
					title="Oldest commit: November 26, 2014"
				>2014</time>—<time
					datetime="2021-02-24T17:32:42Z"
					title="Most recent commit: February 24, 2021"
				>2021</time></span></p>

<p>
	Command line music queue manager. A music player from the comfort of your own shell.
</p>

npshell-demo

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2015-01-21T13:41:11Z"
					title="Oldest commit: January 21, 2015"
				>2015</time>—<time
					datetime="2021-02-24T17:33:15Z"
					title="Most recent commit: February 24, 2021"
				>2021</time></span></p>

<p>
	Automate demo creation, showing the npshell `np` music player commands in action.
</p>

shell-keystroke-animator

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2015-01-21T15:05:57Z"
					title="Oldest commit: January 21, 2015"
				>2015</time>—<time
					datetime="2021-02-24T16:53:59Z"
					title="Most recent commit: February 24, 2021"
				>2021</time></span></p>

<p>
	Simulate stroking keyboard keys into another application/window while taking screenshots to create a `.gif` animation.
</p>
Archived projects (43)

autocleancallback

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2013-12-09T11:59:46Z"
					title="Oldest commit: December  9, 2013"
				>2013</time>—<time
					datetime="2021-06-01T11:46:37Z"
					title="Most recent commit: June  1, 2021"
				>2021</time></span></p>

<p>
	A jQuery plugin to clean input fields with common functionality, like trim, normalize whitespace, digits only. It is also easily extensible.
</p>

autocleancallback-canada

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2013-12-09T12:48:45Z"
					title="Oldest commit: December  9, 2013"
				>2013</time>—<time
					datetime="2021-06-01T11:47:33Z"
					title="Most recent commit: June  1, 2021"
				>2021</time></span></p>

<p>
	Canadian extensions to AutoCleanCallback (required).
</p>

bespoke-advanced

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2013-12-30T10:37:57Z"
					title="Oldest commit: December 30, 2013"
				>2013</time>—<time
					datetime="2021-06-01T11:47:54Z"
					title="Most recent commit: June  1, 2021"
				>2021</time></span></p>

<p>
	Auto advance slides on a timer in bespoke.js
</p>

bespoke-analytics

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2015-02-23T16:54:54Z"
					title="Oldest commit: February 23, 2015"
				>2015</time>—<time
					datetime="2021-06-01T11:47:11Z"
					title="Most recent commit: June  1, 2021"
				>2021</time></span></p>

<p>
	Visitor analysis per slide in your Bespoke.js presentation
</p>

bespoke-convenient

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2013-11-07T16:13:46Z"
					title="Oldest commit: November  7, 2013"
				>2013</time>—<time
					datetime="2021-06-01T11:47:27Z"
					title="Most recent commit: June  1, 2021"
				>2021</time></span></p>

<p>
	Convenient extension methods for building Bespoke.js plugins
</p>

bespoke-indexfinger

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2013-11-12T00:25:50Z"
					title="Oldest commit: November 12, 2013"
				>2013</time>—<time
					datetime="2021-06-01T11:48:08Z"
					title="Most recent commit: June  1, 2021"
				>2021</time></span></p>

<p>
	Keep track of the active slide in Bespoke.js
</p>

bespoke-jumpy

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2013-11-07T16:25:02Z"
					title="Oldest commit: November  7, 2013"
				>2013</time>—<time
					datetime="2021-06-01T11:46:54Z"
					title="Most recent commit: June  1, 2021"
				>2021</time></span></p>

<p>
	Keyboard shortcuts to jump straight to a specific slide in bespoke.js
</p>

bespoke-logbook

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2013-11-02T14:44:11Z"
					title="Oldest commit: November  2, 2013"
				>2013</time>—<time
					datetime="2021-06-01T11:47:38Z"
					title="Most recent commit: June  1, 2021"
				>2021</time></span></p>

<p>
	Log bespoke.js events and state to the console
</p>

bespoke-secondary

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2013-11-12T00:34:00Z"
					title="Oldest commit: November 12, 2013"
				>2013</time>—<time
					datetime="2021-06-01T11:47:07Z"
					title="Most recent commit: June  1, 2021"
				>2021</time></span></p>

<p>
	Show slide notes in a secondary window/screen with Bespoke.js
</p>

claimid-dump

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2013-12-14T10:05:22Z"
					title="Oldest commit: December 14, 2013"
				>2013</time>—<time
					datetime="2021-06-01T11:47:00Z"
					title="Most recent commit: June  1, 2021"
				>2021</time></span></p>

<p>
	A service to extract and dump links and data from shut down claimid.com user pages
</p>

collect-npm-readmes

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2018-03-31T22:09:50Z"
					title="Oldest commit: March 31, 2018"
				>2018</time>—<time
					datetime="2021-06-01T11:47:09Z"
					title="Most recent commit: June  1, 2021"
				>2021</time></span></p>

<p>
	Copy a project&apos;s first-level `npm` package readme files to a separate directory for easy access.
</p>

collectcalls

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2012-02-02T11:53:24Z"
					title="Oldest commit: February  2, 2012"
				>2012</time>—<time
					datetime="2021-06-01T11:46:58Z"
					title="Most recent commit: June  1, 2021"
				>2021</time></span></p>

<p>
	Collects functions that should be called in the future
</p>

editdidwhat

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2012-02-07T11:11:39Z"
					title="Oldest commit: February  7, 2012"
				>2012</time>—<time
					datetime="2021-06-01T11:47:04Z"
					title="Most recent commit: June  1, 2021"
				>2021</time></span></p>

<p>
	Compare two strings to see what has changed, and perform some string manipulation.
</p>

emulatetab

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2012-02-13T13:21:54Z"
					title="Oldest commit: February 13, 2012"
				>2012</time>—<time
					datetime="2021-06-01T11:47:45Z"
					title="Most recent commit: June  1, 2021"
				>2021</time></span></p>

<p>
	A jQuery plugin to emulate tabbing between elements on a page.
</p>

ep-erroneous-votes

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2014-01-25T20:22:37Z"
					title="Oldest commit: January 25, 2014"
				>2014</time>—<time
					datetime="2021-06-01T11:48:13Z"
					title="Most recent commit: June  1, 2021"
				>2021</time></span></p>

<p>
	Using open data dumps from Parltrack to analyze erroneous, and subsequently corrected, votes by Members of the European Parliament.
</p>

ep-projects

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2014-01-29T16:57:02Z"
					title="Oldest commit: January 29, 2014"
				>2014</time>—<time
					datetime="2021-06-01T11:47:35Z"
					title="Most recent commit: June  1, 2021"
				>2021</time></span></p>

<p>
	Projects related to the European Parliament data-driven research, in particular regarding erroneous votes
</p>

ep-the-corrections

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2014-01-26T17:51:57Z"
					title="Oldest commit: January 26, 2014"
				>2014</time>—<time
					datetime="2021-06-01T11:48:09Z"
					title="Most recent commit: June  1, 2021"
				>2021</time></span></p>

<p>
	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.
</p>

extract-fields

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2013-11-30T12:23:36Z"
					title="Oldest commit: November 30, 2013"
				>2013</time>—<time
					datetime="2021-06-01T11:48:01Z"
					title="Most recent commit: June  1, 2021"
				>2021</time></span></p>

<p>
	Scripts to extract HTML form field information from one or several webpages.
</p>

fabric-git-betwixt

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2012-11-12T19:02:35Z"
					title="Oldest commit: November 12, 2012"
				>2012</time>—<time
					datetime="2021-06-01T11:48:04Z"
					title="Most recent commit: June  1, 2021"
				>2021</time></span></p>

<p>
	Selective fabric deployment of a compiled project using a git repository *betwixt and between* your source code and target machine.
</p>

followup

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2013-12-09T11:29:37Z"
					title="Oldest commit: December  9, 2013"
				>2013</time>—<time
					datetime="2021-06-01T11:46:40Z"
					title="Most recent commit: June  1, 2021"
				>2021</time></span></p>

<p>
	A jQuery plugin to show and hide follow up questions in a form.
</p>

formfieldinfo

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2013-11-29T18:32:34Z"
					title="Oldest commit: November 29, 2013"
				>2013</time>—<time
					datetime="2021-06-01T11:47:52Z"
					title="Most recent commit: June  1, 2021"
				>2021</time></span></p>

<p>
	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.
</p>

git2json-wrapper

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2017-12-31T08:42:23Z"
					title="Oldest commit: December 31, 2017"
				>2017</time>—<time
					datetime="2022-08-05T14:10:53Z"
					title="Most recent commit: August  5, 2022"
				>2022</time></span></p>

<p>
	A simple wrapper around `git2json`: convert git logs to JSON for easy analysis.
</p>

gitslave

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2015-04-20T05:48:06Z"
					title="The period from oldest to most recent commit: from Monday 20 April 2015 to Monday 20 April 2015"
				>2015</time></span></p>

<p>
	Archived unofficial fork of gitslave 2.0.2. Install on Mac with `brew install joelpurra/joelpurra/gitslave`
</p>

guest-browser-start-page

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2014-02-16T10:13:27Z"
					title="Oldest commit: February 16, 2014"
				>2014</time>—<time
					datetime="2021-06-01T11:47:59Z"
					title="Most recent commit: June  1, 2021"
				>2021</time></span></p>

<p>
	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.
</p>

har-dulcify

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2014-05-14T13:48:40Z"
					title="Oldest commit: May 14, 2014"
				>2014</time>—<time
					datetime="2021-06-01T11:47:21Z"
					title="Most recent commit: June  1, 2021"
				>2021</time></span></p>

<p>
	Extract data from HTTP Archive (HAR) files, quite possibly downloaded by har-heedless, for some aggregate analysis.
</p>

har-heedless

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2014-05-14T13:42:52Z"
					title="Oldest commit: May 14, 2014"
				>2014</time>—<time
					datetime="2021-06-01T11:47:19Z"
					title="Most recent commit: June  1, 2021"
				>2021</time></span></p>

<p>
	Scriptable batch downloading of webpages to generate HTTP Archive (HAR) files, using PhantomJS.
</p>

har-portent

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2014-09-01T10:41:29Z"
					title="Oldest commit: September  1, 2014"
				>2014</time>—<time
					datetime="2021-06-01T11:47:32Z"
					title="Most recent commit: June  1, 2021"
				>2021</time></span></p>

<p>
	Using har-heedless to download and har-dulcify to analyze web pages in aggregate.
</p>

hexagonif

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2015-04-23T07:12:32Z"
					title="Oldest commit: April 23, 2015"
				>2015</time>—<time
					datetime="2021-06-01T11:47:13Z"
					title="Most recent commit: June  1, 2021"
				>2021</time></span></p>

<p>
	Played around with the HTML5 &lt;canvas&gt; element for use in the background of a website, and ended up with this little toy. Play around with the interactive demo. The name &quot;hexagonif&quot; comes from hexagon and gonif.
</p>

html-forms

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2013-10-30T12:09:01Z"
					title="Oldest commit: October 30, 2013"
				>2013</time>—<time
					datetime="2021-06-01T11:46:24Z"
					title="Most recent commit: June  1, 2021"
				>2021</time></span></p>

<p>
	How to improve #UX in #HTML forms: 10+ #usability projects explained!
</p>

html-forms-presentation

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2013-12-09T13:32:07Z"
					title="Oldest commit: December  9, 2013"
				>2013</time>—<time
					datetime="2021-06-01T11:46:28Z"
					title="Most recent commit: June  1, 2021"
				>2021</time></span></p>

<p>
	Improving user experience in HTML forms presentation slideshow
</p>

jekyll-theme-demivolte

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2013-11-22T16:56:48Z"
					title="Oldest commit: November 22, 2013"
				>2013</time>—<time
					datetime="2021-06-01T11:48:05Z"
					title="Most recent commit: June  1, 2021"
				>2021</time></span></p>

<p>
	A very simple Jekyll theme with the specific purpose of allowing for basic example/demo pages projects on github&apos;s gh-pages.
</p>

jq-hopkok

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2014-08-08T09:06:09Z"
					title="Oldest commit: August  8, 2014"
				>2014</time>—<time
					datetime="2021-06-01T11:47:36Z"
					title="Most recent commit: June  1, 2021"
				>2021</time></span></p>

<p>
	A bunch of jq snippets to manipulate json files, collected from other projects.
</p>

jquery-mutation-summary

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2012-07-17T17:36:49Z"
					title="Oldest commit: July 17, 2012"
				>2012</time>—<time
					datetime="2021-06-01T11:47:29Z"
					title="Most recent commit: June  1, 2021"
				>2021</time></span></p>

<p>
	A jQuery wrapper/plugin for mutation-summary, the DOM mutation-observers wrapper.
</p>

mice-wrapper

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2017-12-07T10:19:13Z"
					title="Oldest commit: December  7, 2017"
				>2017</time>—<time
					datetime="2021-06-01T11:47:24Z"
					title="Most recent commit: June  1, 2021"
				>2021</time></span></p>

<p>
	A simple wrapper around mice.py.
</p>

node-vidy

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2018-04-04T20:35:09Z"
					title="Oldest commit: April  4, 2018"
				>2018</time>—<time
					datetime="2021-06-01T11:46:47Z"
					title="Most recent commit: June  1, 2021"
				>2021</time></span></p>

<p>
	Search, discover, watch, and share talking videos from the VIDY API, using the CLI or code.
</p>

pagehasformchanges

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2013-12-01T15:44:34Z"
					title="Oldest commit: December  1, 2013"
				>2013</time>—<time
					datetime="2021-06-01T11:47:02Z"
					title="Most recent commit: June  1, 2021"
				>2021</time></span></p>

<p>
	A jQuery plugin to check if *anything* has changed in *any form* on a page, and warn the user before leaving the page.
</p>

plusastab

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2012-02-13T15:28:31Z"
					title="Oldest commit: February 13, 2012"
				>2012</time>—<time
					datetime="2021-06-01T11:47:23Z"
					title="Most recent commit: June  1, 2021"
				>2021</time></span></p>

<p>
	A jQuery plugin to use the numpad plus key (configurable) as a tab key equivalent.
</p>

recap

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2016-01-05T10:03:21Z"
					title="Oldest commit: January  5, 2016"
				>2016</time>—<time
					datetime="2021-06-01T11:46:30Z"
					title="Most recent commit: June  1, 2021"
				>2021</time></span></p>

<p>
	A collection of notes from talks, conferences, meetups.
</p>

riksdagens-ledamoter

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2013-11-18T15:39:02Z"
					title="Oldest commit: November 18, 2013"
				>2013</time>—<time
					datetime="2021-06-01T11:46:38Z"
					title="Most recent commit: June  1, 2021"
				>2021</time></span></p>

<p>
	A small utility to extract a list of first name, surname and email to all members of the Swedish Parliament
</p>

shunit2-colorize

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2015-01-12T08:10:05Z"
					title="Oldest commit: January 12, 2015"
				>2015</time>—<time
					datetime="2021-06-01T11:47:30Z"
					title="Most recent commit: June  1, 2021"
				>2021</time></span></p>

<p>
	Add colors to shUnit2 output.
</p>

skipontab

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2012-02-09T09:15:44Z"
					title="Oldest commit: February  9, 2012"
				>2012</time>—<time
					datetime="2021-06-01T11:47:43Z"
					title="Most recent commit: June  1, 2021"
				>2021</time></span></p>

<p>
	A jQuery plugin to exempt selected form fields from the forward tab order.
</p>

vidy-slack-bot

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2018-04-04T21:51:10Z"
					title="Oldest commit: April  4, 2018"
				>2018</time>—<time
					datetime="2021-06-01T11:47:26Z"
					title="Most recent commit: June  1, 2021"
				>2021</time></span></p>

<p>
	Search, discover, watch, and share talking videos from VIDY in Slack.
</p>

wellcomparedir

		<span>
			<span title="Project activity period, from oldest to most recent commit.">🗓</span><time
					datetime="2012-08-12T23:29:59Z"
					title="Oldest commit: August 12, 2012"
				>2012</time>—<time
					datetime="2021-06-01T11:46:55Z"
					title="Most recent commit: June  1, 2021"
				>2021</time></span></p>

<p>
	A tool for Windows to compare and select images with the same name from two folders, and copy to a third folder.
</p>