If you are wondering where the data of this site comes from, please visit GitMemory does not store any data, but only uses NGINX to cache data for a period of time. The idea behind GitMemory is simply to give users a better reading experience.
Max Glenister omgmog Marmalade & Jam Oxfordshire, England UX Design, UI Design & Front-end Development. Technically a cyborg. Find out more about me on

omgmog/archarm-usb-hp-chromebook-11 45

Arch ARM USB installer for the HP Chromebook 11

omgmog/beatmaker 23

JavaScript drum machine

omgmog/chrome-add-link-to-trello 16

This is a Chrome extension that will let you add the currently viewed page as a link on Trello

omgmog/chrome-conditional-font-changer 7

Conditional Font Changer is an extension for Google Chrome

omgmog/8bkc-omgmog-bmo 4

BMO for the Pocket Sprite

omgmog/angular-dress-up 1

an angular app that lets you dress up a body with a couple of option

omgmog/automator-sketchtoolbox-from-sketch 1

This is an Automator action that I use to launch Sketch Toolbox from within Sketch 3.

release mjmlio/mjml


released time in 14 hours

release sass/node-sass


released time in 20 hours

release mui-org/material-ui


released time in a day

release rsms/inter


released time in 6 days

release usablica/intro.js


released time in 7 days


started time in 7 days

release mjmlio/mjml


released time in 8 days

release mui-org/material-ui


released time in 9 days

release riot/riot


released time in 11 days

release usablica/intro.js


released time in 12 days

release videojs/video.js


released time in 13 days

issue openedomgmog/sound-dropper

Drops can only be played once...ish

Once you've played a drop, it won't play again until you play something else or refresh the page.

Steps to reproduce

  1. Visit
  2. Click play on a drop
  3. Either wait for the clip to finish or click stop (both have the same behaviour)
  4. Click play


The clip plays again



created time in 14 days

PR opened omgmog/sound-dropper

👀 Use vue-cli

This was a tentative test to separate out the Vue components into their own files. It shifts the frontend stuff into vue-cli, but pulls in the same Express routes we were already using.

For production, we'd need to do a couple of steps:

  1. npm run build to compile the frontend assets
  2. node server.js to fire up the production server

To get this working I had to do a few things:

  1. Rename components to CamelCase
  2. Fix a bunch of linting complaints, because Vue treats them as fatal errors 🤷
  3. Split the app routes into a separate file so we could include it in dev and production modes
  4. Added components and respective imports to the individual .vue files

Obviously it's a radical change to file structure, and adds the complexity of a build system. I'm mostly dropping this here for thoughts 🙂

+646 -510

0 comment

27 changed files

pr created time in 14 days

PR opened omgmog/sound-dropper


This PR

  • formats the drop length with minutes & seconds
  • grabs the drop length when the media is loaded rather than on play
  • adds the recording timestamp
  • shifts the date/time formatting to the Vue component so we can use browser localisation

There's a momentary blip before the drop lengths are displayed because Howler needs to load the media. We could add some logic to show the drop only once it's been loaded.

+30 -4

0 comment

2 changed files

pr created time in 14 days

PR opened omgmog/sound-dropper

✨ Feedback when input selection is saved

This PR

  • adds a notification component to wrap the Bulma notification component.
  • shifts the point we load the mic preference from localstorage into data, which prevents it from triggering a change event on the selected device (this popped up a notification on page load).

This resolves "No feedback that the input device change has been saved to local session" in #1.

+27 -6

0 comment

1 changed file

pr created time in 14 days

PR opened omgmog/sound-dropper

🐛 Fixes the mic select list not initialising on page load

Fixes "Input device selection isn't available until microphone access has been granted, which isn't available until the first time the Drop button is clicked" in #1.

navigator.mediaDevices.enumerateDevices() doesn't prompt the user for permission to access the mic, so I think we need to just wait for getUserMedia, even though we don't do anything with its return value.

This PR gives us the mic permission pop-up on page load:

+4 -1

0 comment

1 changed file

pr created time in 14 days

release primer/css


released time in 16 days


started time in 16 days

pull request commentomgmog/sound-dropper

✨ Add nginx config and docker-compose for local development & testing infra

I think so. Here's a demo with both port 3000 (direct connection to node in Docker) and port 8080 (nginx proxy):


comment created time in 18 days

PR opened omgmog/sound-dropper

✨ Add nginx config and docker-compose for local development & testing infra

Here's a hacky docker-compose for local dev. I created it to test the nginx websocket upgrade (also in this PR)

+48 -0

0 comment

2 changed files

pr created time in 18 days

PR opened omgmog/sound-dropper

🐛fix fresh repo clone errors caused by empty drops directory

This PR adds the empty drops directory, allowing a fresh clone to run first-time.


The drops directory is ignored in .gitignore, but running the server with a fresh clone produces an error:

Listening on http://localhost:3000
          triggerUncaughtException(err, true /* fromPromise */);

[Error: ENOENT: no such file or directory, scandir ./drops] {
  errno: -2,
  code: ENOENT,
  syscall: scandir,
  path: ./drops
[nodemon] app crashed - waiting for file changes before starting...

We could add a note to the readme, or just create an empty directory by default, ignoring all other changes to it. This PR implements the latter.


To add the empty directory to git, it needs to hold something. I've added an empty .keep file to achieve this, though there's probably a newer, cooler naming scheme I don't know of yet.

I've filtered the drops file list to only include files ending in ogg. We could opt to just filter out .-prefixed files, or ignore .keep explicitly.

+1 -2

0 comment

2 changed files

pr created time in 20 days

push eventremotehack/cellular

Panda (Thomas) Attwood | TickleThePanda

commit sha 1080aabe0b15a53b57ea0248357f18561eec2a17

Make relative

view details

push time in 21 days

push eventremotehack/game-of-generics

Panda (Thomas) Attwood | TickleThePanda

commit sha f278524b908874c62c7eab1f5a2dc3d335268c55

Move to root for GitHub pages

view details

push time in 21 days