I’ve used various models of the Garmin Forerunner for years and feel some brand loyalty to the products but it is wearing a bit thin today as my Forerunner 620 completely screwed up yesterday! This wasn’t the first time — I was getting some VERY odd behaviour earlier in the year — but a factory reset got it back to working well up until yesterday where it decided to press the “stop” button twice on my long run. Suddenly about 10 miiles into my run I realised I had no idea how long I’d gone (as I hadn’t realised the run had been stopped)!
This was terrible but due to somewhat familiar terrain I was able to guestimate my distance and got to what I thought was 20 miles only to find out on my return that it was only 18. Very annoying.
I’ve been playing around with Docker for a few weeks now and while I’ve used VM’s for ages I’m just starting to use Vagrant. My next task is to build a smart way for Vagrant and Docker to inter-operate. More on that once I get there.
I have wanted to get one of the HeartMath HRV devices for a long time and yesterday I finally did. I opted for the InnerBalance product which is mildly less expensive than the old standby the emWave 2. Cost aside the main difference with the InnerBalance is that it runs on IOS (and finally with the Lightening connector) rather than the emWave 2 which has it’s own physical unit for processing the signal. To me the smart-phone variant was superiour in every way …
- No additional piece of hardware required (other than the earpod measurement sensor); makes it far less cumbersome and mobile
- The immediate feedback look, particularly when away from a computer screen, has a full display to provide feedback on rather than communicate state through a few LED lights (although admittedly this can be enough in many cases if you’re just wanting to know coherance state).
- I assumed the ability to share my results more readily since the data and visualisation were already on my phone and therefore available to the network
It was this last point that got me writing this post in the first place … I was shocked to find that when you press the “share” button after a session what you’re sharing is NOT your data from the session but instead marketing material for the product. Really? Wow that is incredibly lame. To make it even more lame, the application I happened to share to was OneDay which I use for a personal journal. How useless is it — for all parties — to share a marketing message with myself. Annoyed.
I know it sounds like a dry topic … do you really want to think about, talk about, or associate with others who spatter on about something as uninspiring as “state management”?
Well I’m thinking yes. At least that’s the conclusion I have come to over the past two years. For decades computer science students have been told about the importance of state management, have been given cryptic tools like K-maps, and been told that was critical to simplifying complexity. For me at least, the ideas in the classroom had a harder time translating into discrete activities in the real world. Sure “state mattered” but it was talked about it through abstractions like a functional decompositions, site maps, screen design, and many other “real-world” exercises which all dance around state management without ever addressing it head on.
What’s changed? Well I think to reach the next level of complexity, society — often unknowingly — is needing to document state more directly/explicitly in an attempt to simplify implicit models that predated them. Oh really? Is that what you think professor Ken? Well an example might help. Good point, I’ll give two examples for now and leave your creative imagine to fill in the rest.
Let’s start with EmberJS which is a new breed frontend MVC framework which set out to solve complex web applications (they describe themselves as “a framework for creating ambitious applications”). There are lots of great things the framework provides users but at the core of the value being provided is an opinionated architecture which means that to solve today’s problems we need to leave behind yesterday’s debates and Ember promotes this by having a default way of addressing many sorts of problems. This by itself is an attempt to simplify but it isn’t the crowing example I want to point to. Intead it is within this framework the core feature that really adds value for Ember developers … the router. What is the router? It is a state machine! It provides a powerful framework for developers to build complex application and at the centre of it is a state machine. Interesting.
Now for my second example. Docker. BTW, this is some hot-shit technology; if you’re a developer or in operations and haven’t played with it yet, stop what you’re doing (well right after you’ve finished my blog post) and check it out. Anyway, Docker has a feature called “Automated Builds” which scripts the building of a “machine” (well really its a container but let’s not get too technical). The goal of doing this is so that you can build the a machine in a completely explicit and stateful way. No longer your code — which no one doubts is just perfect — work just as well on that fancy OSX machine as it does on production because the “machine” you’ve used isn’t just similar it is identical. Turns out absolutes matter a lot. Identical is a lot better than similar. Fully automated is a lot better than pretty automated which is a lot better than manual. In many ways giving Docker credit for any of these things is not fair as many technologies that preceeded it at the very least laid the groundwork but my point is that the reaction to Docker is near universal in its praise. People don’t need convincing tha this technology can help them. And why? Becuase it helps to manage state.
If you’re not yet convinced that state management is important, interesting, and maybe even cool … then you are clearly a cold and uncaring person. I have already given up on you. Let’s hope you never give up on you. Harsh? Well maybe but then what do you care? You stoic, stateless bastard.
My Promise Pegasus RAID array demonstrated its worthiness this past week. After a lot of weird shutdown and non-graceful disk dismounts it became clear that one of my physical drives had become damaged. In a normal situation this may well have resulted in data loss but with a RAID it was simply a matter of pulling out the misbehaving drive. This immediately removed the inconsistent behaviour and without any data loss, I was able to continue on with work with no interruption. I ordered an extra drive and put then in a few days later and am now back to running in a redundant mode. As a final step I ran the same performance tests I ran last week and it appears there may now be a small improvement in disk read/write performance too now that the errors on the faulty disk have been removed:
Today I’m officially a year older (wiser?) and I’m feeling pretty good but the devices I count on to be productive have collectively risen up in protest today:
- My iPhone suddenly doesn’t connect to cellular networks
- My iMac’s RAID array consistently ejects leaving me without access to work, pictures, etc.
- My GPS watch (Garmin 620 Forerunner) has stopped telling me how far i ran (well it still tells me but it lies)
What is going on? Bad juju. I’d like to call in a birthday favor to the electronic gods out there.
p.s. ironies of all ironies, I had to post this message three times. Why? Because my blog was down. The uprising continues.