Conference is done. We wrapped up the Code Camp conference yesterday at about 7pm with a cheers all round. This was the first Code Camp in Egypt and I think that you could class it as a success.
Yesterday we headed out to Giza (Cairo + Giza are apparently referred to as Big Cairo because the cities spill over the top of each other). Today Mahmoud is taking us to the pyramids, then the museum and then to the citadel. Then we are catching up with some of the others at Remon’s house.
So far it has been an awesome trip. One thing I have learnt however about presenting in a country where English isn’t the first language is:
- I need to speak slower. Australian’s speak pretty fast, and I and probably a little faster than usual when I get passionate about something.
- My normal kind of slide deck needs to be modified to provide more context for the discussion so that people don’t have to understand every word I use (helps to differentiate the technical vs. just words).
- Egyptians like to ask questions!
Anyway – need to process a few e-mails before we head off for today.
It has taken me a little bit longer to get this post out than I would have liked. I only managed to find a wired connection at the BUE yesterday and was busy going through the preparation for my talk.
So far I’ve been having a great time and I’ve met lots of great people. The event started late yesterday due to a few logistical issues but the turn out was fantastic (uploading some photos now). On the way out to the venue we were actually caught in a sandstorm. Mahmoud Ghoz is one of the co-organisers of the event and pointed out that the whether was a little unusual but I kind of liked the experience anyway.
Travelling in traffic in Cairo is an experience that I would recommend to everyone. It is complete chaos as people cut and weave in and out of lanes (lane lines are more of a suggestion). The notable absence of traffic lights is interesting. Often you will pull out onto a road and go for a few hundred meters before doing a U-turn because it is easier and has less impact on the flow of traffic (kind of like water flowing through pipes). In some ways it makes a lot of sense to me.
Tomorrow after the event we are heading out to the Pyramids so I should get some good photos out there. I am looking forward to it. My session is first up this morning so I had better make sure that all the libraries I need are on this machine. Salaam.
Whilst I was waiting at Changi Airport waiting for my flight to Cairo I created a new branch of the TFS Dependency Replicator code. The change that I have been making is changing the code so it uses IBuildDefinition and IBuildDetail instances instead of BuildData instances. In doing so I made it aware of the alternative configuration paths for the build directory (where the TFSBuild.proj file is located).
The implication is that the traditional location of the TeamBuildTypes folder may no longer be valid. Instead it will look for the DependencyReplicator.xml file in the same directory as the TFSBuild.proj file. The side effect (implications leading to side effects, is that like a double pointer?) is that the BuildType property on the Rule element is no longer required, rather it is implied by the location of the DependencyReplicator.xml file.
Before I unilaterally go and change the Trunk with this change I want to implement the code so it falls back to its original behaviour but I also wanted to know what others thought. There are a few other issues that I need to address in a future release:
- Performance, at the moment it is a very heavy poll mechanism. I avoided TFS evening because of previous reliability experiences, but and event based model would be better.
- Plug-ins. Birgir Stefansson is going to be working on the code base soon and wants the rule base system to be more configurable, I can grok that but I’d be interested in others thoughts about how plug-ins would be useful.
Sand. There is a lots of it. I landed in Cairo about and hour and a half ago and my hosts picked me up and took me to the hotel. For the entire flight we raced ahead of the sunrise but ultimately lost somewhere just before reaching the African continent. During the night we flew of India and I got my first real impression of what population density really meant, and that was just judging by the lights we could see from the plane. Flying over the Arab states (I hope I’ve got that right) was a completely different proposition where you can see the occasional population centres but vast tracks of what looks mostly like baron land.
As we flew over the Red Sea I saw some beautiful coastline that I’d love to come back and visit some day. From the plane I could see a few reefs that would be interesting to swim through, although I am not sure what the fish population would be like in this part of the world – does it compare to the The Great Barrier Reef? I dunno, the Great Barrier Reef is bleaching these days anyway.
Our flight path took us up along the Red Sea before banking left just short of the Suez Canal and then headed inland before crossing the Nile just south of the bulk of the Cairo city. Out the right hand side of the plane I managed to spot some pyramids, but unfortunately the pilot had asked passengers not to use electronic devices so I guess that includes digital cameras.
The landscape before the Nile was a stark contrast to even the Australian landscape which I had always considered to be quite dry. You don’t get much drier than mountains with drivers of sand flowing/eroding down the middle of them. It is quite beautiful and certainly a very unique picture.
As we crossed the Nile it changed to a tapestry of green farmlands strangely fenced in by a number of large industrial complexes. I saw quite a few factories with fairly large plumes contributing to the haze of the top of the city. Speaking of the haze its hard to really appreciate it until you get on the ground. Visibility is pretty good but the horizon has a very dark tone which I guess is just a side effect of the population but also the particles that are in the air (just guessing). It is quite different from the haze over the top of Melbourne that has been produced by the recent bushfires (not much chance of bushfires over here).
I have to say that the people in Egypt are very friendly and full of smiles so I guess if you follow the basic international travel rules of being polite then its really a pretty good place to visit. I don’t have many photos to add to the collection right now but I will try to snag some tomorrow as we drive out to the event. Right now I am exhausted and need to catch some Zzzzzz’s before doing some final preparation for my session tomorrow (I’m actually producing a new build of TFS Dependency Replicator).
Well, I’ve made it to Singapore. It is about 9:35PM local time and I arrived about 30 to 45 minutes ago. It has taken me this long to find an Australia to Singapore power converter and then find a comfortable spot with a power plug. I need to wait until 12:20AM local time before I can find out what gate I need to be sitting at and the flight doesn’t leave until two hours after that.
Still – it was a good trip over, I managed to end up with a few spare seats next to me and took the opportunity to go through some of the material for my sessions at Code Camp in Cairo.
I was just going through the list of registrations for Code Camp Oz 2009 and so far there are 55 registrations (or rather 55 “tickets”). Whilst it was perhaps a brash decision on my behalf, I decided to try EventBrite as a registration system this year. I coped a little bit of flak this year because the criticism was “why is this better than what we used to do”. That is a fair comment but its still interesting to try new things anyway, you never know what you will learn.
One of the things that I’ve learned, which was also a criticism was that there needs to be a clear way of cancelling attendance. So far I’ve only had two people cancel their attendance so it hasn’t been a big problem but it would be good if EventBrite had that feature (if you know that it does then let me know!).
So far its a been a fairly positive experience using this SaaS solution for helping to manage the event. I’d love it if it allowed us to put out calls for speakers, manage submissions and pull together a schedule. While I want these things I would probably never build them myself so the true benefit of a SaaS solution is that it allows you to focus on what you do best whilst allowing the vendor to gradually increase the feature set.
Tatham Oddie suggested I also look at Tixi which he has helped develop. Maybe we will look at that next year.
Anyway – if you have any feedback about the EventBrite system I would love to hear it, but right now I have to catch my plane!
Once again I find myself sitting in the international departure lounge at Melbourne Airport. This time I am off to Cairo, Egypt with a stop over in Singapore for a few hours. I’m flying out on Singapore Airlines flight SQ228 and will be landing in Cairo on flight SQ492 at about 7am in the morning. All up I am looking at about a 24 hour transit time to get there.
For those of you that read my blog regularly (all two of you), I’m heading of to Egypt to attend dotNetwork’s CodeCamp ‘09 which is run by the local community there. I got an invite to present at this conference via Omar which was an offer just too good to pass up! Besides he has been telling me how cool Egypt is (errr, maybe cool isn’t the word this snowflake would use) so I had to experience it for myself.
I’m presenting two sessions whilst I am over there:
- 01V03: Advanced Team Development Practices with Team Foundation Server
- 02V01: Adding Automation Support to .NET Applications using PowerShell
These are two of my favourite topics so I hope that the audience gets as excited about them as I do and goes off and experiments with them after the session.