Tuesday, 6:45am PST. Now there's a time I never thought I'd see. Heck, I'm not sure I realised that time in the morning existed. Tuesday was the day when the camp really began, everyone was settled into the hotel, done travelling etc.
After a rather filling buffet breakfast we got on a coach, and headed down the road to the Microsoft campus in Redmond for an introductory presentation, where we met some of the folk behind SQL Server, and heard about the origins, history, and possible future directions for SQL Server (and SQL Azure). For the less technical among you, SQL Server is Microsoft's database solution for small businesses, enterprise, and everything in between. SQL Azure is a related product, but hosted in the cloud.
Once the presentation was complete, we got on a shuttle and went to the Microsoft Store. As you'd expect, it sells Microsoft software and merchandise, however if you're a Microsoft employee you get access to the other half of the store. Or alternatively if you've got a pass you can get in there. We all got one of them! What's so special about this exclusive part of the store you ask? Employee discount! From what I recall, most products had a good 60% or more off... Add to that everything's already half price as we're in the states rather than the UK (technology in the UK is generally about twice the price), and you've got some huge savings! Unfortunately I didn't pick anything up (I'll explain why later), according to the pass I have I should be able to redeem it online though!
So after a fun, if unsuccessful, trip to the Microsoft store, we headed across the corridor to the Microsoft Museum. I was impressed. Not only was this the first museum I'd been in that didn't seem targeted at older generations or tourists... It didn't exist solely as an archive of what was: It looked to the future! Walking through the museum was a tour through time, starting with inspirations for old and current Microsoft products, and finishing with the future.
Pictured above is the little known Microsoft Surface. It looks like a giant iPad you say? Oh no. The Surface is a revolutionary way of interacting with technology - the picture doesn't do it justice. Not only does it do all the standard multi-touch gesturing and interaction (for as many people as you like I might add, without it getting confused and wondering what to do), it can also interact with it surroundings, recognising objects you place on it, providing information, and many more things. It's kind of hard to understand without an example, so here's one I heard about while playing with it. A bar (no idea which) uses the surface instead of a standard bar (did I mention this thing is unphased by spillages?). When the barkeep mixes a drink of some sort, and places it on the bar, the space under the glass glows a colour specific to the drink, labels the drink by the spot (so you know what it is), and tracks if if you move it along the surface, pick it up, put it down etc. I won't continue - I'll let your imaginations think of other possibilities for this (or pester me and I'll list a ton of them ;p). The museum also featured the Kinect, I'll talk more about that later though.
Once we were done at the museum, we got back on the shuttles (then back on the coach), then back to the hotel for lunch. Lunch followed the same buffet format as breakfast, so once again I felt I had to have some of everything and became very full very quick! Not that I'm complaining!
Then for the eagerly anticipated, unknown part of the week. Labelled only as "Surprise, surprise!" in the Agenda, none of us had any idea what was going to happen with the hour. Upon finishing lunch, we were ushered towards the Gilman room, where we were presented by a room full of drums (I forget what type they were, they had a fancy name... Looked something like this). This was definitely fun - I'm not sure I'd done anything like that for a good few years (I don't think anyone else in the room had done it before). For those of you who haven't spent an hour in a group of people with African-style drums, it starts with repetition, some question and answer (I play a tune, you reply with a tune), building up rhythm, getting you working as a team, staying in sync, even when others are doing different things etc, until you play a full tune at the end with minimal orchestration. If you're interested, check youtube, or attend a drumming workshop!
Upon completion of the workshop, we were released to go get our laptops, ready to reconvene in the same room - to begin development! We got a couple of presentations about some of the things we'd need to do - how to convert schemas, a couple of differences between MySQL and T-SQL, and an introduction to the SQL Server drivers for PHP and PDO, then we got coding. We (Team Tango - Alex, James, and myself) had a lot of discussion about how best to add support for another database backend, then began implementing it. See the changes at https://github.com/tcm-project/tangocms/commits/sqlserver?page=3 if you're interested. Chances are that link will break at some point and show commits from another day - either way, all the work to get SQL Server working can be found in the sqlserver branch on github. Most of what happened here was architectural changes to support other database backends, however there was some work to automatically translate simple syntactical changes between MySQL and T-SQL (backticks become square brackets for example, a couple of function names change but function the same). We also started to remove MySQL specific functions and replace them with generic SQL.
After a long day coding, we had made a nice chunk of progress, and were convinced we'd have full SQL Server support by the next day - we could then look at getting SQL Azure support implemented and working. Of course all work and no play makes open source PHP developers dull boys, so after a short break, and replenishing out stomachs (see left, 'twas delicious), we ventured into another room in the hotel (did I mention this place is huge?). In the room were two HD TVs, both set up with XBoxes and Kinects. For the few of you who haven't heard of the Kinect (does that apply to any of you?), it's basically Microsoft's awesome, if belated, answer to the Wiimote. Unlike the Playstation Move, it isn't a blatant duplicate of the Wiimote, and thus has a chance of not sucking. While it still doesn't capture the (ever decreasing) "hardcore" gamer market, it does a great job of doing what the Wii did when it first came out - captured the family gaming market. While I don't see it being anyway near as popular as the Wii (it's joined the game far too late for that), it's a great answer for those who already have XBoxes. Losing the remote is far more flexible, and makes for an instantly more fun gaming experience (however much I may suck at it - don't cross me in Kinect boxing though ;D). While all three have a long way to go to be viable for actual gamers, the Kinect is definitely the closest - if they can find a way to introduce precision, they've got the perfect set up for a controller-less experience that's as powerful as gamers need, without having all the activity they don't want. I have, however, realised I'm rambling now, so I'll postpone my opinions on the Kinect for another time. Long story short, it was loads of fun. We had a competition to win the Kinect, unfortunately I didn't win - in fact I came in last (if only we'd done boxing!). Tomas won it, however refused the prize (he resisted playing in the first place!), so another round was played to decide the winner.
I said I'd mention my lack of money... I went online briefly in the morning to talk with folk back home (7am for me was 3pm back home), and I had a message from my mum to inform me all the money off my card had gone (I got a travel card of some sort to save carrying around cash - also meant that I could get more cash if needed, and my mum would get notifications when I was running low). I was kind of worried by this, as my card had not been stolen (I had it in front of me) and the only people who'd even seen it were the hotel. It turned out that the hotel had taken a kind-of deposit for my room in case I trashed the place. I say kind of, as what they'd done didn't involve taking any money from me, just putting it in a state of limbo until the end of my stay. Would have been nice if they'd let me know about this before doing it. A few messages back and forth later, and an angry call from my mum to the hotel, and the money was restored to my card, and the hotel had used my mum's card instead. Sometime mid-week I had money again, it did mean I'd missed out on the Microsoft store though. There was another chance later in the week, I was too busy developing to realise the offer was there though. Fingers crossed my voucher works online!
And that was the first real day at the camp. It was a great day, I had loads of fun, and it was quite probably the most productive I've been all year! Stay tuned for more instalments, as I have time to write them up.