One unusual aspect of this company is that we don't encourage people to work more than four days a week, so people have three day weekends, or one-day midweek breaks. I personally believe that the 9-6, five days/week schedule is bad for creativity, if you wish to have any creativity outside of your workplace.
20% Life Project: I have been getting increasingly interested in currency trading aka forex and now actually have the risk capital to pursue it seriously; I've taken a bunch of courses and been trading with some success on demo accounts. My goal is to be profitable (by my strict standards) so I can trade while travelling this summer. We'll see... I'd love to hear from more folks doing this professionally or who can show profits on demo accounts. I have already made arrangements to stake a trader.
That said, I'm open to anything happening, as anyone who's heard the story of how I ended up in Texas knows...
I've spent a very pleasant Sunday afternoon playing with an Arduino microcontroller board. After a trip to Maplin I plugged together a little array of assorted LEDs from their "lucky bags" and got hacking.
The Arduino board is fabulous: for an amazingly cheap €22 you get a USB-programmable 16Kb microcontroller with a bunch of digital and analog input and outputs, and the outputs are capable of driving useful things like LEDs. The software's not just free but open source too--and it's decent, with excellent documentation. I'd say from downloading the software and getting my first "hello world" program loaded was about five minutes. It Just Worked™. This might not sound like a big deal, but interfacing to computers has generally been expensive, esoteric, fiddly, and error-prone. The Arduino board is none of these.
The tutorials are great and introduce the important concepts with example circuits and code. In fact, the set of example code is all accessible directly from the Arduino app's main menu, which is a nice touch. (I.e. you don't have to dig around trying to open a file buried on your hard drive.)
So anyway here it is. Eleven LEDs connected to digital pins 0-10, and a 22k linear pot (variable resistor) feeding analog pin 5. The LEDs "chase" up and down with a speed taken from the pot position.
It was fairly painless, at least after an initial scare where programs wouldn't upload,
avrdude: stk500_recv(): programmer is not responding avrdude: stk500_recv(): programmer is not responding
I read all sorts of scary solutions online where folks were reprogramming their bootloaders and other horrors. One Arduino hacker mentioned running the board off an external power supply (rather than rely on USB) during programming as the current draw is apparently higher. This was enough for me to try pull the LED's ground pin out so the lights turned off: Bingo! No problem programming. It became a bit annoying pulling the ground lead out every program: next trip to Maplin I get a switch...
The other issue I had was remembering how C does casting. My function to scale the analog input into a minimum and maximum delay was being simultaneously confused by my code not casting up to a float early enough, and a persistently dodgy connection with the pot.
(The fifth pin/LED didn't seem to light very strongly. Tried different LEDs and lower resistance. Didn't fix it or figure out why it was dim; I'll try a different board soon.)
So what led me to Arduino? The brand new Science Gallery at Trinity College in Dublin is running a programme to introduce high school kids who wouldn't otherwise have had the educational opportunity to do so to learn about electronics. I'm helping out there on Wednesday afternoons, which so far has mostly involved teaching them how to solder, and debugging electronics problems. Where possible I have them learn from my mistakes: my room in my parents' house, for example, was so badly burnt from soldering iron accidents and riddled with little lumps of solder they had to replace it after I left... (I suppose one useful legacy I left was installing about two dozen plug sockets :-))
So far the kids have created some very cool LED pictures each with a fierce amount of soldering and now are ready to hook them up to Arduinos. Hence the need to stay one step ahead of the younger generation ;-)
#define LED_COUNT 11 #define DELAY_MIN 10 #define DELAY_MAX 400 #define DELAY_STEP 50 #define POT_PIN 5 #define INTERNAL_LED_PIN 13 void setup() { for (int i = 0; i < LED_COUNT; i++) { pinMode(i, OUTPUT); digitalWrite(i, LOW); } pinMode(POT_PIN, INPUT); pinMode(INTERNAL_LED_PIN, OUTPUT); } int ScaleDelay(int in) /* Calculates a delay between DELAY_{MIN,MAX} from an analogRead. */ { float d = (DELAY_MAX - DELAY_MIN) * (float)in; d = d / 1024 + DELAY_MIN; return (int)d; } void LightLED(int led_pin, int last) /* Reads a delay, lights an LED on led_pin; turns off the last one a short time later. */ { int d = ScaleDelay(analogRead(POT_PIN)); digitalWrite(led_pin, HIGH); delay(d / 10); digitalWrite(last, LOW); delay(d); } #define TAIL_LENGTH 3 int tail[TAIL_LENGTH]; int tail_pos = 0; int LastLED(int current) /* Maintains a list of lit LEDs. Returns the very last one. */ { tail[tail_pos] = current; tail_pos = (tail_pos + 1) % TAIL_LENGTH; return tail[tail_pos]; } void loop() { int last; for (int i = 0; i < LED_COUNT; ++i) { last = LastLED(i); LightLED(i, last); } digitalWrite(INTERNAL_LED_PIN, HIGH); for (int i = LED_COUNT-1; i >= 0; --i) { last = LastLED(i); LightLED(i, last); } digitalWrite(INTERNAL_LED_PIN, LOW); }
Gosh, two weeks since last entry. I've been having an outrageously good time: Dorkbot SF (RFID implants, music composition in adventure game format), Maker Faire (vegetable oil powered engines, robots, fire, lots of friends, Steve Wozniak getting dunked), Depeche Mode at Shoreline Amphitheatre (free tickets, walking distance from Google), gorgeous Sunday in Monterey visiting my lovely friend and ex-landlady, and last night a Giants game, the first ever game where I've completely understood what was going on, helped considerably by my expert tutor and Club tickets ($20!) from a scalper. Unfortunately the Padres panned the Giants after spooking them with a 7-run third innings, d'oh.
The final notable item is a first rowing workout longer than ten minutes since I was in university. I guess I have to do this every so often to remind myself that yes, I really am just a sprinter. Now I can comfortably leave 10+ min workouts for another ten years...
And finally...
A friend's new arrivals
It's 4am and I'm wide awake; not sure if that's jet lag or the advantage of polyphasic sleep...
So, arrived earlier yesterday, after a mostly painless 11hr flight. After being in London for four years and basically happy to have left the States (hi, Bush!) I'm struck how much I'm glad to be back - I've such a catalog of great memories and experiences even just driving up 101 into town felt good. Although I'd've preferred to have been on a motorbike... That said, I'm driving such a nice car, a Honda Elantra, I tried to start it when it was already on, and even when I paid attention in what was quite a quiet underground car park I still couldn't hear the engine ticking over.
Anyway, the other aspect of being back is the panoply of smells is so familiar from the background of damp grass on Fell nr Golden Gate park to the woody aroma of being in a restaurant to the "fingerprint" of Karen's house. It's quite bizarre, in four years it's all exactly the same and all entirely uniquely identifiable. Very reassuring.
So tomorrow is first day training at Googleplex. I have to be out of SF by 8am as my car's parked in a street cleaning zone and besides I don't feel like inadvertently terrifying other drivers in rush hour traffic with my unpracticed right-hand-side-of-the-road skills :-)
Following what has probably been one of the toughest decisions I've ever made I'm leaving London after four years and moving to Dublin to work at Google doing this. Pencilled-in start date is Feb 6th. There is some contractual addenda to ensure there's no conflict of interest between Google's and Real Programmers' projects but otherwise it's on.
The only thing I know for sure so far is that I'll have a Mac laptop and Linux desktop (I got to choose), and that the training will be in Mountain View, California for about three months.
Phew!
There's been some buzz recently around modifying one's sleeping pattern away from a single chunk at night to multiple "polyphasic" naps throughout the day. The ultimate form of polyphasic sleeping seems to be called the Uberman Schedule and consists of six twenty-minute sleep periods spaced evenly four hours apart. Thus instead of sleeping in my case around 8hr/night there's the alluring promise of getting away with only 2hr/day, in other words nearly 40% extra time awake, or even more persuasively, double1 your free time. (If you're the type of person that's bored a lot, perhaps that's half as persuasive.) No amount of expensive time management courses is going to double your free time.
So clearly I have to try it.
I've read over the years a few accounts of this sort of sleep pattern including various inventor-types (Edison, Da Vinci, ...) who have supposedly lived like this. As far as I can tell though that's pure copy/paste rumour. My interest was piqued again a month or so back in The Game where Neil Strauss and his housemate tried it. But both failed.
A shift into polysleep, a term I have just coined to save me some typing, requires a transition phases of a few days feeling anywhere from tired to utterly shattered. Anyone's who's undergone sleep or food deprivation (students and dieters) knows how hard it is to fight off nature's pull.
In fact I have never heard of anyone polysleeping beyond a month. Even with "lite" versions that have a few hours of "core" sleep (uninterrupted hours, typically 4am to 7am), and/or with occasional "reboots" (indefinite uninterrupted sleeps taken every fortnight of so), the documented successes are of the order of a handful.
Until now. Nik forwarded me a link to Steve Pavlina's description of a shift to a polyphasic lifestyle. A couple of weeks ago he wrote in his final update,
I consider the experiment a huge success, and I intend to continue with polyphasic sleep indefinitely unless I discover a compelling reason not to.
Now that's interesting. And Steve was on the full Uberman 6x20min schedule.
So naturally also being a curiosity junkie Aries I have to try it... I started out Friday daytime and it's been four days and nights so far. My ability to fall asleep any time and anywhere is developing nicely. Places I've fallen asleep in the last few days include a toilet, a café, a bath, a bedroom floor, and a busy Hoxton bar with a dozen mates around. I haven't yet developed the knack of dropping right into REM sleep, except when I'm in meetings...
Sticking to the twenty minute schedules I've managed with mixed success. The first couple of nights I had three and four hour sleeps in the morning. My discipline about getting out of bed for the first 30years of my life has felt to me particularly poor and polysleeping has shone a glaring spotlight on that. If you even shut your eyes again for a moment after waking you'll find yourself transported in a split second hours forward. The upside of this is that the only way to succeed is to develop that discipline - adapt or die. If I sleep for 1.5hrs, i.e. an hour oversleep, I've gained nothing; compounded over the day that'd be the equivalent of 6 * 1.5 = 9hrs, i.e. more than I would've slept otherwise. Or if I manage 5 * 20mins correctly and then lose it sleeping 4hours that's not much of a gain either.
The unforgiving schedules at least occur at a frequency where the adaption and learning is fast. I'm literally practicing sleeping on cue six times a day. As someone who's spent most of his childhood and early adult years thrashing around for hours at night before Morpheus finally arrived this is incredibly gratifying. You'd be surprised the sense of achievement being able to drop off with your head on a cold sink at four in the afternoon. :-)
Socially it is challenging. Even with a bit of leeway around when the naps happen inevitably one of them is going to land in the middle of an evening activity. Dinner, movie, or any kind of one-on-one is ... well, imagine it. It's bizarre. I suspect this is going to be one of the hardest aspects to work around. Made harder by, at least at the moment, my quality of sleep in random places isn't that great yet so tiredness is added to the sensation of oddness. Fortunately I have no shame explaining any odd nonsense I'm trying out and almost everyone's joined in the curiosity (and taken sneaky pictures; hi Emir!)
What's good so far? Actually a lot. First my sense of time is dilating. I started this on Friday and it feels like nearly a week has passed, and I've got nearly a week's worth of stuff done. Started a new project I'd been putting off for lack of time, read several dozen pages of dense online tech manuals, and written an essay. This is all the while hosting and entertaining three people who visited, going to theatre, a couple of social outings including an excellent big one organised by Dean, oh, and doing a couple of full-time jobs.
There've been some subtler effects too. I have in the past thought, imagine if I didn't sleep. What would that be like metaphysically. One day runs into the next without a break, day follows night follows day follows... inductively compelled and drawn into looking into the future. I've found the idea scary and daunting, unpunctuated, segmented, or contained with rest. I think it's daunting because much of life is like a treadmill, and one of the few remaining excuses to step off is sleep at night. Scary because one's led into confrontation with the possibility of endless existence without purpose, before one's subconcious has a chance to shut down that line of thought with some plausibly deniable distraction.
Right coming up to the tricky 5am slot. Wish me luck ;-)
Off to Roboexotica in Vienna tomorrow via Bratislava. The flight to there from London came in at the wallet-feathering sum of just £36. Ah, the joy of subsidized travel. Carbon Dioxide Karma takes another hit...
Trivia: Vienna and Bratislava are apparently the two closest capitals. (I wonder if any US state capitals are closer?)
Even more irrelvant trivia: the train to the plane leaves at 04:30. Can I stay up all night after the Squarepusher and Luke Vibert gig tonight at Koko...
Plane leaves in a couple of hours. Going to see roboexotica and Karen. Back 28th!
Somewhat a socially circly week coming up but with three open slots it could still get messy... Suggestions welcome ;-)
Saturday & Sunday: Kundalini workshop with Glenn Morris. Very excited about this after reading a few dozen pages of Morris's book, Path Notes of an American Ninja
Saturday night: party at Tom's place; congrats on getting funding!
Monday: farewell drinks with a couple of party organiser friends
Tuesday:
Wednesday:
Thursday: dinner & movie with friends
Friday thru' Sunday: hanging with mates and bro at Ashton Court Festival in Bristol. This is going to be killer: 120,000 festie-goers, 150 bands, and Tommy's in town! W00t!
In a shock moment of organising a event more than 36h in advance...
You have no excuses this time ;-)
A friend highly recommended the Confucius restaurant in Wimbledon.
Surprisingly enough, it's a Chinese restaurant.
Drinks beforehand!
18:00, Bar Sia, Wimbledon, 105-109 The Broadway
19:30, Confucius, Wimbledon, a short amble to 271 The Broadway
RSVP by Tuesday and I'll book the table Tues. I'll keep the attendee list online here -- add yourself with a comment below!
In Bristol this weekend; back Sunday or Monday.
Monday: Salsa in SW18, meeting 19:30 at D Bar.
Tuesday: Mobile Clubbing at an undisclosed yet location, meeting before the 18:18 start.
Wednesday: Ecademy then party with Firebox, at Clapham. These are cool - lots of fun gadgets to play with (saves buying them) and mid-20s crowd.
Thursday: Dinner at Confucius in Wimbledon, with drinks before at Bar Sia, 19:30, and 18:00. Some local action afterwards or perhaps pile back to my or a friend's house.
Friday: Clubbing at Oceana, in Kingston. Pre-meet venue & time TBA.
Saturday: possibly: Slow Sound System [click News], at The Foundry. Later, Old St-area venue (e.g. Mother, Play, etc) or West End. Thoughts?
I'm visiting New York City to see some good friends Joe & Don, Sandira, Peter, and (quite excitingly) an as yet un-met best friend of a good friend, Carolyn. And possibly even something a little unusual with other burner friends.
This is going to be a hectic trip but suggestions & hook-ups certainly welcome.
Flight info below:
Outward flight:
Depart: London (LHR), 17-Jun-04 at 08:50 Terminal 4 Arrive: Newark (EWR), 17-Jun-04 at 11:35 Terminal B Flight: British Airways 185
Return flight:
Depart: Newark (EWR), 24-Jun-04 at 08:00 Terminal B Arrive: London (LHR), 24-Jun-04 at 20:05 Terminal 4 Flight: British Airways 186
So it appears I'm going to miss a conference and some friends in NY as we weren't aware the others were passing in the night. Gah!
Let's say a lack of communication and knowledge of friends' lives is the problem here. Being the optimist I'm sure this is fixable somehow.
I think most problems can be solved by talking, money, or technology. Just keep throwing any of the above at the problem until it goes away, or you're having so much fun the problem's not worth bothering about any more.
So here's a technical/talking solution.
I wonder if a blog can be useful for tracking the author's activities? In an attempt to provide a one-stop place to get a summary of "What am I up to?", I've created the pragmatically named Movable Type category "What am I up to" into which I'll try dumping whereabouts, major life movements, etc. Curious to see if it works out. I used to track my location but it wasn't hugely successful as rarely bothered to update it.
One killer aspect of weblogs is the ease of authorship, definitely. My paulm.com site is really easy to update and despite its old-skool looking design there's a surprising amount of tech operating behind it. But to make a change I still need to fire up an editor after diving into the appropriate directory. A marginal, yet crucial additional amount of effort. The difference between something happening, and in many cases not happening.
PermaLink to category: http://paulm.com/inchoate/what_am_i_up_to/