Summary:
The Problem:
No good method exists for managing configs!
Imagine you want...
DotFS:
to change a line
on all machines:
- distributed configs
- with local variations
- in a dynamic environment
Thank you for choosing Abacus, etc. etc. etc. etc...
Do not forget to set "mode=automatic" in your .abacusrc; This will improve user experience dramatically!
to add a feature to all machines that support it:
From: Abacus Inc.
To: Fred
"... new version 8 ... ... upgrade now ... ... uncrashable! Just add donotcrash=true to your .abacusrc ..."
IT Department:
"We will install Abacus 8 as soon as we have documented this server upgrade..."
Fred and his pc
Introducing Fred:
- one config
- multiple views
- fully scriptable
- no changes required initially
- it uses Haskell!
- married
- 2 children
- 45 years old
- commutes to work
- loves bowling and golf
Fun Fact:
Abacus is the early predecessor of MS Calculator
Hobby project: DotFS
Try it, it's free!
or:
how Fred solved his config clutter
Git/svn/... branches
Paul van der Walt
Sjoerd Timmer
- elegant solution?
- rebase/merging is a pain
what git was made for:
Possible solutions
what we need:
Conditions in config
- Haskell
- HFuse to provide a VFS
- Parsec to parse the configs
- simple procedural language
fred@laptop:~ $ ./dotfs ~/real ~/virtual
How it works
fred@home:~ $ ./dotfs ~/real ~/virtual
fred@work:~ $ ./dotfs ~/real ~/virtual
example
DotFS
- only local and global settings; nothing inbetween
- different for every application
- most applications cannot do this at all
Problems:
Best watched in a 4:3 container!
The "Fullscreen" button is under "More"