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

I’m a freelance software developer at Ghost Cassette. Prior to that, 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 Ruby bindings to the re2 regular expression library.

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 Proc.new to avoid unnecessary Proc object creation in Ruby.