Paul Mucur /pɔːl 'mʌdʒəʳ/

I’m an independent consultant Technical/Engineering Lead at Ghost Cassette in London. I was CTO of Altmetric from 2013–2018 and a Technical Lead at the scientific journal Nature.

I’m an open source software maintainer and contributor including Ruby 2.6’s function composition operators and the Ruby bindings to the re2 regular expression library used in GitLab.

I can often be found talking about bread making at London Computation Club or very occasionally speaking at the London Ruby User Group.

Weeknotes 56 and 57
Cooking as a balm in troubled times, boil in the bag routine change, mistaken Twitter identity, meditating with DUPLO, sending cookies with the Fetch API, increasing errors by nearly 500,000%, trying to collect truly anonymous usage data and not thinking about a child's jaws.
Weeknotes 55
Integrating Shopify BuyButton.js with Turbolinks, the M1 SoC, testing signed Stripe webhooks and cavorting.
Weeknotes 54
Handling numeric user input with React, cleaning up unused Homebrew dependencies, Command Line Tools woe, losing control of your eyes and comparing our son to icons in IKEA instruction manuals.
Weeknotes 53
An unwelcome return, low spirits and removing a special case.
Weeknotes 52
A year of weeknotes, inconsequential quests, kernel extensions, using Terraform to manage multiple AWS accounts at once, testing feature flags and the secret fantasy of a future self.
Weeknotes 51
Pizza crusts, London Computation Club wiki, what to do with an inherited codebase and collective disbelief.
Weeknotes 50
Baby-proofing, Richard Osman’s role in my life, carrying pliers, zeitgeist marketing, ergonomic experiments and escaping from Hades.
Weeknotes 49
Paracetamol suspensions, 90s music and final shaping.
Weeknotes 48
Mentor envy, calculating the surface area of pizza, separation, adding HTTP headers and how to use your entire body to express dissatisfaction.
Weeknotes 47
Settling in, potentially diseased garlic and being at a loss for notes.
Weeknotes 46
T'north, Netflix tips and tricks and coffee brewing theory.
Weeknotes 45
A birth story.
Weeknotes 44
A young child's unsteady walk, deep cleaning and a holiday.
Weeknotes 43
New experiences, starting over and Daddy Pig holding a mirror up to society.
Weeknotes 42
A void that cannot be filled with ergonomic equipment, tech brain and decapitating cardboard dogs.
Weeknotes 41
Almost all the colours of the rainbow, what we wear on our feet, reminiscing with Radiohead, René Redzepi and technical tests.
Weeknotes 40
Not owning a microwave, uncanny turns of phrase, Parts Unknown and the therapeutic power of Taylor Swift.
Weeknotes 39
Nurseries, unwinding with wooden blocks, things people say to you when you wear a baby carrier and a computation anniversary.
Weeknotes 38
Gold trees, some small sense of freedom, quartz glass platters and the villain in your history.
Weeknotes 37
How I discovered adventure games, saving your life, converting cups of sifted flour into moon masses and feeling out of sorts.
Weeknotes 36
Visiting other islands, comfort food TV, a market trader mystery, not understanding prescriptions and unexpected sobbing.
Weeknotes 35
Pixels per inch, kicking up the 4d3d3d3, the importance of ventilation and genuine Computer Science.
Weeknotes 34
Shia LaBeouf, bad bakes, vertical rhythm, finding a stranger in the Alps and the streetlight effect.
Weeknotes 33
Generating human-friendly codes, keeping my cool running a Raspberry Pi and threatening my marriage.
Weeknotes 32
Replacing a Pi-hole with Unbound and ISC DHCP, speeding up deployments and a reckless root vegetable investment.
Weeknotes 31
Unexpected socialising; your mission, should you choose to accept it; computer means and a lifelong commitment.
Weeknotes 30
A birthday, the island of Custard, more public keys and a new earworm.
Weeknotes 29
An infernal whining, an update on EOL Ruby versions, the pit of success, a GPG rabbithole and teaching babies about quantum mechanics.
Weeknotes 28
A new thought technology, supporting old Ruby versions, making the most of the long weekend and filling the hole left in my life by Keith Brymer Jones.
Weeknotes 27
Getting emotional about cups and saucers, a home haircut, the only two good types of advert, new kitchen scales and a debugging adventure.
Weeknotes 26
The importance of editing, unminifying JavaScript, inappropriate Zoom virtual backgrounds and a thirst for life.
Weeknotes 25
Bank holiday noodling, coffee paraphernalia, a use for Shortcuts and life advice from a Learn with Me Zebra walker.
Weeknotes 24
Repairs, a new Raspberry Pi, an unforgettable ant update, overcomplicated cooking and an unusual birthday.
Weeknotes 23
Reassuring TV shows, negotiating pavements, baby sign language, a home baking first and is Bear Grylls’ TV career over?
Weeknotes 22
Driveway picnics, “The Baby Club”, a new enemy at home and the etymology of DIY.
Weeknotes 21
COVID-19, asynchronous working, surprise Smash Mouth fandom, flower arranging and being judged by book titles.
Weeknotes 20
Working from home, low sodium bread, workplace superpowers and yet another secure shoelace knot.
Weeknotes 19
The Missing Hit, hot lemon and honey, Ugly Delicious and a reassuringly dumb baby monitor.
Weeknotes 18
The Tube, dad chat, “Shape Up”, improving sleep with first-order logic and what it means when the clown is down.
Weeknotes 17
A car park disaster, animated GIFs, not rewriting legacy systems and how the internet really works.
Weeknotes 16
Typing practice, an erosion of attention, puzzle solving and wishing we’d done everything differently.
Weeknotes 15
Looking for work, laughter, stinging nostrils and writing weeknotes for the future self.
Weeknotes 14
The anaesthetic properties of cloves, saline rinses, split keyboards and yelling at clouds.
Weeknotes 13
Posture, mouth guards, Guy Fieri’s “Trash Can Nachos” and hearing things in the noise.
Weeknotes 12
Yearning for space, failing to make a video, ruining Christmas presents, smart meters and musculoskeletal woes.
Weeknotes 11
Redesigning the site, swimming lessons, first cousins once removed and screwdrivering.
Weeknotes 10
Revisiting 2018’s yearnotes, sharing podcasts in the park, the rhythm of baby talk and why you wouldn’t be able to cut much with Apple’s scissors emoji.
Weeknotes 9
Learning to do nothing, a deep, mirk widd and exactly which grandparent you can shove off a bus.
Weeknotes 8
Being extraordinarily lazy, cobbling together a homemade banneton and this year’s obligatory bit of family busywork.
Weeknotes 7
Great-grand relatives, the joy of tying knots and Turkish soap operas.
Weeknotes 6
Christmas films, participating in democracy and things a true Englishman will never countenance.
Weeknotes 5
The unexpected joy of baby cinema, doing everything wrong and our daily multiplayer crossword routine.
Weeknotes 4
Struggling with structured data, Christmas puddings, the joy of repairing things and everything being a trade-off.
Weeknotes 3
Writing, solving logic puzzles and the Bake Off we deserve.
Scripting Photos for macOS with JavaScript
Automatically editing photo metadata for iCloud Photos using JavaScript for Automation.
Using a Raspberry Pi for Time Machine
How to share a disk with Samba and Avahi on a Raspberry Pi for use with macOS backups.
Weeknotes 2
Fixing dates on old videos in Photos, using a Raspberry Pi for Time Machine and the right tool for the job.
Weeknotes 1
Dadding, baking, TV and being a paranormal insurance investigator.
2018 Yearnotes
Reflecting on the past year, both personally and professionally.
Cross-Compiling Rust for a Raspberry Pi on Travis CI
How to compile binaries from a Rust project that will run on a Raspberry Pi using Travis CI.
What Is a “Successful” Software Development Team?
Thoughts on the difficulty of gauging and improving the success of development teams following Scale Summit 2016.
Data Structures as Functions (or, Implementing Set#to_proc and Hash#to_proc in Ruby)
Experimenting with using hashes and sets as functions in Ruby.
A Summit for Scaling
A summary of my time at 2014’s Scale Summit: a performance and scalability unconference.
Implementing if in Ruby
Using multiple blocks in Ruby to implement Smalltalk-style control flow.
Testing Vim Plugins on Travis CI with RSpec and Vimrunner
How to continuously integrate and test-drive Vim plugin development with the Vimrunner gem.
Naming Dynamically Created iframes
Working around issues with setting iframe names in Internet Explorer.
Managing Web Application Servers with Puppet
A transcript of my August 2011 LRUG presentation regarding configuration management and Puppet.
Combining and Compressing Disqus’ and Google Analytics’ JavaScript
A step-by-step refactoring of Disqus’ and Google Analytics’ JavaScript.
Passing Blocks in Ruby Without &block
Using yield and to avoid unnecessary Proc object creation in Ruby.