In the summer of 2012 I applied to and interviewed at an intriguing startup in Palo Alto. I'm still not 100% sure what they were working on, except that it involved distributed computing and storage of some kind, they were working with Blocks in C, and they were definitely "thinking big". And the leadership of the company was something of a dream team. They had posted a fascinating challenge to their website for job candidates, which I attacked with gusto. Unfortunately, they were not interested in me. Perhaps if I had spent as much time talking about content addressable storage concepts instead of physical hardware I'd be in like Flynn.
tl;dr: Disk backed by tape backed by a 11' microfiche cube. But ultimately this is a problem of institutions, not processes or technology.
Such is life.
But their loss is your gain: My answer to their challenge is posted here for your entertainment!
"Available" in this context is a tricky word. Availability implies a system that can provide the data immediately, which brings mechanical and electrical systems into play. These systems require ongoing maintenance, and since almost none of the adults alive today will be around for the next 100 years to provide this maintenance, the stewardship of the availability of this system comes down to the institutions and processes that are entrusted with this responsibility.
100TB is not that big of a challenge. It's the 100 years part that really complicates matters. Filesystems, databases, etc.... there are many viable options, but the design of a long-living physical storage system is quite a bit harder so I'll focus my thoughts on that.
I recently had a conversation with an engineer at a very large technology company, pitching me on their project for the mother of all social networks. I didn't have the heart to tell him that what he was proposing sounded like a exercise in futility since they are intending to supplant both the existing enormous networks like Facebook and Google+, but also to build in applications that compete with smaller sites with social components, things like Yelp or TripAdvisor. Yes, he was proposing a single monolithic system, and building it with a few dozen engineers. Instead of arguing I politely smiled and nodded.
Later I was thinking about why the social space is so bland for me and why I was so bored by his pitch. One reason is that I use social networks like Facebook and Google+ very lightly so I cannot imagine myself being really excited about working in that field. It's not relevant for me so it's not something that would make me jump out of bed in the morning. But more importantly, I've already built one.
While I'm ranting about MacOS... as much as I appreciate multitouch, drag is a little broken. It registers drag-stop as a set time after you lift your fingers off the touchpad, and that's wrong. Here's the sequence of events:
- I multitouch (three-finger) drag-select a piece of text.
- I lift my hand off the touchpad and start typing, replacing the text with my own
- Then a split-second later, and as far as I'm concerned after the drag-select is over and done with, the drag timeout triggers the complete drag-select, it re-selects between the drag start and drag stop, and causes me to overtype the first half of what I was typing!
It took me a few weeks to realize that this was what was happening because it feels like the machine just loses it's mind and starts deleting your text. It also manifests itself in weird and unpredictable ways with the autocomplete such as you'd find in a browser bar.
This bug effectively punishes fast navigators (very bad) and gives a sense that the UI is acting in a random manner (unacceptably bad). The only real solution being to slow yourself down and pause after multitouch drag-select before moving on with typing (or hitting CTRL-V/C/X, etc). I still haven't managed to train myself to slow down long enough between drag and typing and I'm pretty sure I never will.
An easy solution would be to make any keydown trigger the end of the drag-select before registering the keydown. That would prevent someone from doing key presses during a multitouch drag, but I'm not sure I can even think of a use case for that.
I'm hoping this is fixed in 10.8, if not I will be submitting a bug immediately.
The progression from MacOS 10.4 -> 10.5 -> 10.6 was amazing. It seemed that with every iteration the OS got smaller, faster, and more capable.
And then 10.7 dropped, and ever since I've been plagued by this kind of thing:
How does the Leap Motion
device work? According to a recent article
at The Verge they use "a number of camera sensors to map out a workspace of sorts".
The Kinect uses a micro-lithographed diffuser with an infrared light source to spray tiny IR dots all over your living room. The Kinect's camera then analyzes this image and reconstructs the 3D space. I find it hard to believe that Leap Motion is using this technology, partly because they must've made amazing improvements to the tech on their own, but also because they claim that using an better camera sensor (than the Leap's VGA sensor) is all that it would take to make the device's capture field grow from 3 cubic feet to "thirty feet, or three hundred."
My guess? They're using a light-field camera
for their design. That, plus some great software, would work well as well as scale.