Jump In Camp – SQL Server Edition – Day 3
Day 3 of Jump in Camp started roughly the same as Day 2 except that I managed to get a few extra hours of sleep before having breakfast at 7.30.
The first subject of the day was about porting SQL queries to T-SQL. Transact-SQL (T-SQL) is Microsoft's proprietary extension to SQL and varies from the MySQL version of SQL which most open-source developers are used too. For information on the differences and how to convert MySQL to T-SQL Microsoft provide a useful guide to the most common issues developers will have.
The guide can be downloaded from Guide to Migrating from MySQL to SQL Server 2008 and as you can see there are a number of differences which need to be dealt with by the developer. Most issues can be dealt with and both MySQL and SQL Server can supported simultaneously as long as you are prepared to think about how you write SQL statements to take into account the nuances.
The other path open to developers is to use something like Doctrine which will abstract these differences away from the developer. SQL Server support has also added to Kohana and Lithium so if you use either of those frameworks, adding support for SQL Server should be much less painful.
Just as I started to have panic attacks on just how much work it would be to get osCommerce to support SQL Server we were shown a rather cool tool which is called SSMA (SQL Server Migration Assistant) this will take a MySQL database and will convert its data structure and also the data itself and convert it into a format which SQL Server can understand. I tested this tool against the current 3.x database structure which is being used in osCommerce and because we hadn't really ever supported any databases apart from MySQL I expected a number of problems to be flagged up.
After running through the tool however I was pleased to see that the entire database structure and all of the sample data we provide was migrated to SQL-Server without a hitch. Kudos to the SSMA team for their hard work in making it light work for me! If you are interested in trying SSMA out you can download it from Microsoft SQL Server Migration Assistant 2008 for MySQL
Much discussion was had about how we could best support SQL Server in osCommerce and we decided that a new database layer was needed in order to provide support for all of the database platforms osCommerce will officially support and also allow extensibility so that other platforms could be added without needing to re-write large swathes of core code. This work is currently in progress and hopefully the fruits of our labour can be commited into the Github repository soon.
After lunch came a series of interesting talks about how to optimize the T-SQL once you had it working. Most developers these days should know about the EXPLAIN statement in MySQL which will tell you how MySQL has executed a SELECT statement.
SQL Server has a pretty awesome graphical tool which is built into SQL Server Management Studio and provides more than enough information to help developers decipher what is going on under the hood to get the best performance possible out of SQL Server. I won't go into details on how to use the tools I have mentioned here but I will be blogging on the specifically very soon with a walkthrough on converting the current osCommerce 3.x database structure to SQL Server and also how to use the SQL Server Management Studio to discover how your T-SQL is performing.
After an afternoon of discussions and talks about optimisation of T-SQL and SQL Server in general it was time for us to prepare for a small road-trip to the Space Needle where we would be spending the evening having dinner and relaxing.
I think this had to be one of the highlights of the whole Jump in Camp as the view from the top was amazing. The food and drink in the Restaurant was also top notch and I couldn't find fault with anything apart from the Wind which was absolutely freezing when out on the observation deck.
The evening was rounded off with some good debates in the hotel bar over a few beers about what interoperability really meant and of course some really good banter about getting a Linux version of the SQL Server driver
Was then time for sleep in readiness for the fun of Day 4
Jump In Camp – SQL Server Edition – Day 2
Despite my initial reservations it seems getting up in time for breakfast at 7.30am was easier than I thought. Due to the timezone difference I actually awoke at about 4am and then had trouble getting back to sleep. Luckily there was free WIFI at the hotel so I spent a few hours checking up what was happening in the rest of the world.
The first job for the day after breakfast was to head over to the Microsoft Redmond Campus. A short coach ride and we were there. I knew the campus was big but didn't quite realise how big until I was really there.
Our first visit stop was Building 35 which is the home of SQL Server. After getting our security passes organised we where escorted upstairs to a meeting room where we were introduced to Ted Kummert and Nigel Ellis where an overview of the history of SQL Server was given and also some discussion on SQL Azure.
The expected question soon arose of which I am sure Microsoft cringe every time someone asks it... that being "When we there be a *nix version of the SQL Server driver". Much discussion ensued about the many reasons the open-source community and some commercial companies wanted it and the many reasons it wasn't yet available from Microsoft. I sure hope that one day it will be available but at this moment in time I am not expecting anything to be done about it in the near future.
Next up we had chance to visit the Microsoft store and Visitor centre where we had chance to see some of the many different products that Microsoft had worked on over the years. After some shopping and playing with the Xbox Kinect it was time to head back to the hotel for some lunch before the afternoons activities.
The first thing up in the afternoon was a surprise session of which we knew nothing about and involved us drumming and playing various musical instruments (and there was even some bad dancing at one-point). The idea being to try and get us to understand how different people working together can contribute in harmony even if the tools they are using are different.
Once we were all loosened up it was time to crack out the laptops and get down to the real reason we were all there... coding!
The first challenge was to work on porting our various applications to either the sqlsvr (native) driver or the PDO_SQLSVR driver. This was obviously easier for some projects that had abstraction layers in place already, for osCommerce however it was a little bit more work so progress was initially slow.
Towards the end of the afternoon my brain was getting pretty fried, the timezone difference and lack of sleep was certainly taking its toll. Luckily the evening didn't involve going too far with dinner in the hotel and then some xbox gaming.
Along with the rest of the hotel the food they provided was always excellent, I think I ate so much I thought I was going to burst! It certainly hindered me for the next part of the evening. Harald's flight had also landed by this time so I was looking forward to catching up with him again.
So onto the gamimg... In one of the various rooms in the hotel had been setup 2 Xbox 360's with the new Kinect controller after spending some time getting them calibrated the game was on.. the winner was to get to take a Kinect controller home with them. As you can imagine there was some frantic competition and the game settled on was "Ralleyball" which is part of the Kinect adventures game.
This short video should give you an idea of the game
After numerous rounds and also numerous beers the eventual winner was none other than Paul Reinheimer by the end I was totally exhausted from all the cheering (and drinking) so it was time to hit the hay and try and do a better job and sleeping through the timezone differences, ready for what was install for Day 3!
Jump in Camp – SQL Server Edition – The Photos
Here is just a selection of the many photo's I took during my time at Jump in Camp.
Jump In Camp – SQL Server Edition – Day 1
Its taken me a bit longer than I really wanted to get around to blogging about the awesome Jump in Camp which I attended recently but here is the first of a few blog posts!
The Jump in Camp was organised by Microsoft and ran from November 15th-19th 2010. It was to be held in Redmond (Seattle) which as most people know is where the head office of Microsoft is situated.
Day 1 started off at a very early time for me at 6am when my alarm clock went off and I stumbled downstairs to make myself some coffee. Once alertness had been restored it was time to check I had all the important things that I would need to take with me to Seattle. Passport, Money and Macbook Pro were all present and accounted for, so off I headed on my trek across London to get to London Heathrow Airport where I was due to meet up with Harald before our 9hrs 50 min flight.
After going through the usual security and checkin procedures it was time to relax and wait for Harald to arrive on his flight from Germany. It all seemed so simple until mother nature intervened and Harald's flight was delayed due to fog at Heathrow earlier in the day. For a while it looked like he might just make it but it wasn't meant to be so flight BA49 left LHR on its 7,726 km without him.
The flight itself was long and fairly uneventful apart from the person sitting on the other side of the Aisle asking me how to fix various problems with his own Macbook, it seems even faking being asleep didn't slow down the barrage of question like "What is a Megabyte" and "How to I make the screen brighter". Eventually he ran out of questions so I was left alone to peruse the online entertainment and pray for the flight to land already.
Finally it was all over and the plane set itself down a Sea-Tac airport and we were allowed to dis-embark and head towards passport control which I was expecting to be a stressful experience. In the end it went fairly smoothly and after giving up my finger prints and a photo I was granted access to the US of A.
The next challenge was to find the Shuttle to the hotel, after spending some time going round in circles I bumped into Sam de Freyssinet and it seems with our combined brain power and some asking for directions we finally found the shuttle along with the rest of the group (Kevin Marvin, Jason Coward and Nate Abele) who would be travelling to the hotel with us.
Upon arrival at Willows Lodge I was pretty impressed (The real thing was better than the photo's) I would have to say its possibly the nicest hotel I have ever stayed in! Once I'd dropped off my bags it was time to catchup with some friends I'd made at the previous Jump in Camp Juozas, Josh Holmes and Ashay Chaudhary
By now I had been awake for more hours than I could manage to count at the time so there was only one thing on my mind... BEER! and it seems it was all organized for us to visit the Redhook Woodinville Brewery so off we went!
After some good food and a tour of the brewery (I didn't spray everyone with beer this time round) it was time for sleep and to try and adjust to the timezone difference which wasn't working in my favor!
It seems Microsoft didn't listen to my feedback on the previous camp and had booked breakfast from 7.30 - 8.30am, I had no idea how I was going to make it up that early.
Details of Day 2 coming soon.
Jump in Camp – SQL Server Edition
Something very exciting is happening next week, myself and a bunch of other people will be descending on Seattle for the latest Microsoft Jump in Camp.
Following on from the camp I attended in Zurich (Here is what happened) the next camp focuses primarily on MSSQL Server and how it can be leveraged by applications such as osCommerce to give our end users a wider choice of platforms on which they can run osCommerce.
Historically osCommerce has only supported MySQL and Apache based around *nix operating systems, this has served the project well for a number of years, but I think the time has now come to expand the range of platforms we officially support.
In the upcoming 2.3.0 release we have been working on improving support for Windows/IIS and very soon it will be even easier to install osCommerce in that environment, the next logical step is to expand support for other database back-end with a logical choice being MSSQL.
I am very much looking forward to spending time with a number of very clever people from both Microsoft and other projects from the open-source community for what I expect will be an awesome event.
For more information on what is planned for the camp take a look at the Jump in Camp Website
