Toggle Navigation
purpleidea.com
about
blog
projects
talks
misc
contact
Items in category
technical
Mgmt Configuration Language: Functions
posted on November 22, 2024
Better dmesg in five minutes
posted on November 17, 2024
A new provisioning tool built with mgmt
posted on March 27, 2024
Bash $PATH filtering
posted on March 2, 2024
Upcoming Speaking and Events
posted on January 31, 2024
Git branch filtering
posted on January 28, 2024
Five minute hacks: Swapping left and right headphone audio in wireplumber
posted on November 22, 2023
One minute hacks: Saving time inserting images in Libreoffice
posted on August 2, 2023
UEFI booting, and with a new kernel module
posted on July 24, 2023
Improving git diff output in 5 min
posted on June 1, 2023
Blocked select logging (deadlock finding) in golang
posted on May 26, 2023
Deadline context test cancellation in golang
posted on February 24, 2023
Magic typing with shortcuts on Linux
posted on June 16, 2021
USB Audio on a Boombox
posted on January 11, 2021
Inexpensive Dynamic DNS over IRC
posted on September 1, 2020
USB Car Audio in a Civic
posted on August 24, 2020
Mgmt Configuration Language: Class and Include
posted on July 26, 2019
Upcoming Speaking and Events
posted on February 2, 2019
A guide to fighting with a Cisco access point
posted on December 21, 2018
Hyperlinks in GNOME terminal
posted on June 29, 2018
Breaking out of the Slack walled garden
posted on June 22, 2018
A new sync primitive in golang
posted on May 20, 2018
Running `make` from anywhere
posted on March 10, 2018
Mgmt Configuration Language
posted on February 5, 2018
Extracting movies from libreoffice
posted on July 12, 2017
Declarative vs. Imperative paradigms
posted on May 5, 2017
Osmocom femtocell un-boxing
posted on April 30, 2017
Metaparameters in mgmt
posted on March 1, 2017
Faster golang builds
posted on February 26, 2017
Ten minute hacks: Process pause & resume
posted on January 6, 2017
Send/Recv in mgmt
posted on December 7, 2016
A revisionist history of configuration management
posted on November 30, 2016
Remote execution in mgmt
posted on October 7, 2016
mgmt has a logo
posted on September 30, 2016
Live dmesg following
posted on August 29, 2016
Seen in downtown Montreal...
posted on August 3, 2016
Ten minute hacks: Hacking airplane headphones
posted on July 18, 2016
Automatic clustering in mgmt
posted on June 20, 2016
Upcoming speaking In Hong Kong and South Africa
posted on June 20, 2016
One hour hacks: Remote LUKS over SSH
posted on April 25, 2016
Automatic grouping in mgmt
posted on March 30, 2016
Automatic edges in mgmt
posted on March 14, 2016
Introducing: git tpush
posted on February 16, 2016
Debugging golang programs
posted on February 15, 2016
Next generation configuration mgmt
posted on January 18, 2016
Upcoming speaking
posted on January 18, 2016
Trying out Ceph with Oh-My-Vagrant
posted on December 28, 2015
Matching arbitrary URL's to custom Firefox profiles
posted on November 14, 2015
Thanking Oh-My-Vagrant contributors for version 1.0.0
posted on August 18, 2015
Vagrant and Oh-My-Vagrant on RHEL7
posted on August 11, 2015
Making an empty RPM
posted on August 11, 2015
Golang parallelism issues causing “too many open files” error
posted on July 27, 2015
Git archive with submodules and tar magic
posted on July 23, 2015
Oh-My-Vagrant “Mainstream” mode and COPR RPM's
posted on July 8, 2015
A super privileged Puppet container
posted on June 12, 2015
Kubernetes clusters with Oh-My-Vagrant
posted on May 2, 2015
Docker containers in Oh-My-Vagrant
posted on April 20, 2015
Sharing dev environments with Oh-My-Vagrant
posted on April 8, 2015
Fancy git aliases and git cherryfetch
posted on March 16, 2015
Building RHEL Vagrant Boxes with Vagrant-Builder
posted on February 23, 2015
Introducing: Silent counter
posted on February 9, 2015
Replying to mailing lists with Evolution
posted on November 27, 2014
Captive web portals are considered harmful
posted on November 27, 2014
The switch as an ordinary GNU/Linux server
posted on November 4, 2014
Testing Evolution's git master and GNOME continuous
posted on October 22, 2014
Hacking out an Openshift app
posted on October 18, 2014
Continuous integration for Puppet modules
posted on October 10, 2014
Fixing dropbox “conflicted copy” problems
posted on September 30, 2014
Introducing: Oh My Vagrant!
posted on September 3, 2014
Rough data density calculations
posted on August 27, 2014
Hybrid management of FreeIPA types with Puppet
posted on July 24, 2014
One minute hacks: the nautilus scripts folder
posted on June 26, 2014
Securely managing secrets for FreeIPA with Puppet
posted on June 6, 2014
Hiera data in modules and OS independent puppet
posted on June 4, 2014
Restarting GNOME shell via SSH
posted on May 29, 2014
Vagrant on Fedora with libvirt (reprise)
posted on May 13, 2014
Keeping git submodules in sync with your branches
posted on May 6, 2014
Puppet-Gluster now available as RPM
posted on March 27, 2014
Introducing Puppet Exec['again']
posted on March 24, 2014
Preserving your working directory in gnome-terminal
posted on March 20, 2014
Speaking at SCALE today!
posted on February 21, 2014
Building a snow shelter
posted on February 17, 2014
Scathing review of the Lenovo X240
posted on February 2, 2014
Show the exit status in your $PS1
posted on January 29, 2014
Screencasts of Puppet-Gluster + Vagrant
posted on January 27, 2014
Building base images for Vagrant with a Makefile
posted on January 20, 2014
Testing GlusterFS during “Glusterfest”
posted on January 16, 2014
Automatically deploying GlusterFS with Puppet-Gluster + Vagrant!
posted on January 8, 2014
Vagrant clustered SSH and ‘screen’
posted on January 2, 2014
Vagrant vsftp and other tricks
posted on December 21, 2013
Vagrant on Fedora with libvirt
posted on December 9, 2013
Now syndicated on “Planet Fedora”
posted on December 9, 2013
Advanced recursion and memoization in Puppet
posted on November 27, 2013
Documentation for Puppet-Gluster
posted on November 20, 2013
Iteration in Puppet
posted on November 17, 2013
Pushing Puppet at Puppet Camp DC, LISA 2013
posted on November 5, 2013
Gluster Community Day, LISA 2013, Monday
posted on November 5, 2013
Speaking at LISA 2013 about Puppet and GlusterFS
posted on November 3, 2013
Easier strace of scripts with pidof -x
posted on October 26, 2013
first release of puppet-shorewall
posted on October 21, 2013
Desktop Notifications for Irssi in Screen through SSH in Gnome Terminal
posted on October 18, 2013
GNOME Montreal Summit
posted on October 15, 2013
Show current git branch in PS1 when branch is not master
posted on October 10, 2013
Finite state machines in puppet
posted on September 28, 2013
No Ads!
posted on September 26, 2013
Installing missing GNOME games
posted on September 26, 2013
Bittorent sync for repository mirroring
posted on September 23, 2013
Gluster Community Day, Thursday
posted on September 20, 2013
Linuxcon day three, Wednesday
posted on September 18, 2013
Linuxcon day two, Tuesday
posted on September 18, 2013
Linuxcon day one, Monday
posted on September 18, 2013
New puppet-gluster features before Linuxcon
posted on September 8, 2013
Puppet-Gluster and me at Linuxcon
posted on September 2, 2013
Finding YAML errors in puppet
posted on August 25, 2013
Upgrading from Fedora 18 to Fedora 19
posted on August 4, 2013
a puppet-ipa user type and a new difference engine
posted on July 9, 2013
Fresh releases! puppet-ipa, puppet-nfs, puppet-gluster
posted on June 23, 2013
Playing with FreeIPA and puppet
posted on June 18, 2013
puppet lsi hardware raid module
posted on June 17, 2013
Collecting duplicate resources in puppet
posted on June 4, 2013
puppet matlab module
posted on June 4, 2013
puppet rsnapshot module
posted on June 4, 2013
Forcing firefox to remember passwords
posted on May 17, 2013
Overriding attributes of collected exported resources
posted on May 14, 2013
Mothers day hacks
posted on May 12, 2013
Upgrading to centos 6.4 with shorewall onboard
posted on April 25, 2013
Fixing jerky scrolling in Firefox
posted on April 11, 2013
Knowing when to release and deploy your code (...and a mini script)
posted on April 8, 2013
running your file manager from a terminal
posted on March 22, 2013
adding range support to python's http server to kickstart with anaconda
posted on March 14, 2013
learn how to do one minute hacks, in three minutes
posted on March 7, 2013
A quick anaconda trick
posted on March 4, 2013
Automatic hiera lookups in puppet 3.x
posted on February 20, 2013
Picking up the pieces after a Fedora 18 install
posted on February 12, 2013
How to send and receive files like a professional
posted on February 4, 2013
Renaming a GNOME keyring (for seahorse, the passwords and keyrings application)
posted on January 27, 2013
SElinux causes pain when using puppet 2.x with hiera
posted on January 17, 2013
Dynamically including classes in puppet
posted on January 16, 2013
Clustering virtual machines with rgmanager and clusvcadm
posted on January 3, 2013
How I broke (and fixed) my rgmanager service
posted on December 31, 2012
visible close buttons on every firefox tab (including the last one)
posted on November 26, 2012
more rows and columns on firefox new tab page
posted on November 24, 2012
hello planet puppet
posted on November 23, 2012
recursion in puppet (for no particular reason)
posted on November 20, 2012
continuous display of log files (better tail -f)
posted on November 18, 2012
setting timed events in puppet
posted on November 14, 2012
preventing duplicate parameter values in puppet types
posted on November 7, 2012
changing *that* keyboard shortcut right there (in gnome)
posted on November 3, 2012
Multifile mode for text editors
posted on October 24, 2012
Our fusion future
posted on October 20, 2012
including a recursive tree of files with distutils
posted on October 1, 2012
finding your software install $prefix from inside python
posted on September 20, 2012
How to avoid cluster race conditions or: How to implement a distributed lock manager in puppet
posted on August 23, 2012
puppet gluster module now in git
posted on July 27, 2012
a puppet module for gluster
posted on July 24, 2012
now syndicated on “planet gluster”
posted on July 24, 2012
building intel nic driver (igb) for gluster on centos
posted on July 20, 2012
my gluster setup, described
posted on July 19, 2012
gnome3+others glipper/klipper replacement
posted on July 5, 2012
fedora 14 to 17 upgrade
posted on June 4, 2012
IPMI for linux professionals
posted on April 25, 2012
how to use ssh escape characters
posted on April 25, 2012
Dear internets
posted on February 22, 2012
sparse rsync magic
posted on February 22, 2012
git, gitosis, gitweb and friends...
posted on August 19, 2010
gnome-do trick
posted on March 31, 2010
lecturing and git-bisect
posted on March 31, 2010
scary cool bash scripting inside a Makefile
posted on March 31, 2010
getting gedit to work like magic
posted on March 9, 2010
n900 features that should be added
posted on March 2, 2010
a custom epiphany location bar
posted on February 22, 2010
reading obscure documentation
posted on February 8, 2010
getopt vs. optparse vs. argparse
posted on February 3, 2010
sorting out the confusion
posted on January 27, 2010
piping data through ssh
posted on December 9, 2009
really well written article
posted on November 16, 2009
IPVS + shorewall
posted on November 5, 2009
scary man pages
posted on November 2, 2009
multi monitors and how it should all work (long babble)
posted on October 23, 2009
tech support for a keyboard
posted on October 23, 2009
vanilla: my favourite flavour of gnome
posted on October 22, 2009
why linux is powerful or: how to erase half your system and then fix it
posted on October 14, 2009
the python subprocess module
posted on October 7, 2009
the power to yield a better console interface
posted on August 20, 2009
ssh hanging
posted on July 29, 2009
cheetah == fortran
posted on July 21, 2009
[py]inotify, polling, gtk and gio
posted on July 21, 2009
evanescent 0.3
posted on July 14, 2009
logging out of $SESSION
posted on July 13, 2009
convert .ai to .svg using uniconverter
posted on June 16, 2009
brilliant: get rid of mono
posted on June 8, 2009
coloured tab completion
posted on June 2, 2009
grep, shopt:dotglob and (hidden) dot files
posted on June 2, 2009
Server Fault
posted on May 27, 2009
community
posted on May 27, 2009
first babble
posted on May 22, 2009
Links...