In 1ms sound travels just over 30cms - so just moving around a reasonable room affects the offsets between two well spaced speakers by 5-10ms. I use my own multi room audio system at home - http://strobe.audio - and although the sync isn’t perfect by any means the effect of moving around your house usually the problem. Eg if you have the volume in another room loud enough that it’s louder than the music from the room you’re in you get the weird echo effect. Otherwise nothing.
Turns out our brains are really good at compensating for relatively large offsets
From personal experience I would urge everyone to start with some form of Yoga.
It's less easy to quantify your progress than with weight lifting (whose easy conversion into numeric growth I wonder isn't one of its attractions when you're a data-driven kind of person) but has further reaching benefits beyond basic physical strength.
After 3 years of fairly regular yoga practise (3-4 sessions a week), even when combined with a fairly poor diet/lifestyle alongside it (way too much fun), left me feeling stronger, fitter, calmer, more centred, more energised* than I ever had before.
For those of you who, like me, are put off by the more 'hippy' aspects, I'd say it's a question of finding the right teacher rather than writing off the entire practice (my teacher at the time was nicknamed 'El Sargento' for her, shall we say 'strict' approach -- she taught Iyengar yoga with is a lot about details. This didn't suit everyone but suited me down to a tee).
There is an awful lot of pseudo religious bollocks that surrounds it but within that there's a really solid method for improving the quality of your life.
Bit of a plug but (as the developer of) Spontaneous[0] I can highly recommend it for this kind of use case.
It aims to be decoupled, that is the system you edit with is not (necessarily) tied into the system you serve your site to the public with. It does this through a publishing mechanism. This defaults to rendering HTML pages (both static & dynamic ones) but can be extended to output anything you want, either replacing the standard HTML output or in addition to it (I personally have integrated with a pyramid based python app using a db based output, that is effectively "render my content into a db table" but you can do less esoteric things like publish JSON or XML docs if that's your need.
It works using content type 'blocks' composed of sets of many fields (of varying types). I like to think of it as a "strongly typed" CMS.
Actually this is one of the core features of the Ruby CMS I've been working on for the last few years http://spontaneous.io
It's template engine supports two tag types: one that gets run during the publish stage & one that get's run at the request stage.
It can then take an intelligent approach to publishing by having a publish step that renders each page to a static file. It's then trivial to test for the existence of 'run at request' tags and position the generated template accordingly: pure static files get put where a reverse proxy (nginx by preference) can see them, anything with per-request tags gets put in a 'private' directory out of nginx's paths for rendering & delivery by some front-end server.
This has many advantages, including:
- static pages can be served directly by Nginx
- the public facing site runs in a separate process that consumes the generated templates
- the public app (if needed at all) has no admin-centric code so has a smaller (& separate) attack surface
- the publish step can be seen as a form of code generation so you could, in theory, publish a dynamic PHP powered site from this Ruby CMS
I'm also gradually working towards abstracting the template 'filesystem', currently you can render to the disk, redis, memcache or any other key-value store supported by the Moneta gem[1].
For the developer it gives the power of static site generators but provides a simple & usable editing interface for content editors.
It renders to static files by default (as well as compiling+compressing assets etc) and you can define any number of separate outputs in multiple formats (e.g. HTML, JSON, Javascript, XML, RSS etc) which will also be rendered at the same time.
Plus a whole world of other features, some I consider to be relatively revolutionary. </IMHO>
It works well but lacks, (really, really seriously) lacks, documentation.
Turns out our brains are really good at compensating for relatively large offsets