
Monday, 17 November 2008
Sunday, 16 November 2008
At Home
Finally at home - a chance to relax. I'm downloading all the sessions powerpoints and any other resources I can find so that we have them available.
Friday, 14 November 2008
The end of Tech-Ed but not the end of the Tech-Ed Blog
We've left the Tech-Ed forum for the last time now - and to be honest I'm a bit sad. Is it because of the sense of community? The sense that I am a professional developer? Maybe being around and recieving so much stimulus about so much cutting edge technology - and when i say technology i don't actually only mean the technical side of it - because allot of what we saw related to processes and practices.
We've seen stuff about the future and stuff about the pressent. In deapth and dreadth we've swayed (just for the sake of being poetic).
Anyway, the point is that we'll continue this blog untill we mange to add at least some information about all the sessions we attended.
We've seen stuff about the future and stuff about the pressent. In deapth and dreadth we've swayed (just for the sake of being poetic).
Anyway, the point is that we'll continue this blog untill we mange to add at least some information about all the sessions we attended.
.NET Framework: Application Life Cycle Best Practices
At the beginning of the week I went to a session of best practices for .NET framework application. This was in hope of finding answers to what is the best way to version and distribute .NET application. Unfortunately session didn't provide much information I didn't already know - and worst of all things I'd learnt the hard way.
The session started out to answer three questions:
Basically we were shown how to tell VS installer project to install the .NET framework. This can be either downloaded from the web or included as part of the installation. The only new thing that was mentioned is the '.NET Framework Client Profile'. To quote MS:
'The .NET Framework Client Profile is a subset of the full .NET Framework 3.5 SP1 that targets client applications. It provides a streamlined subset of Windows Presentation Foundation (WPF), Windows Forms, Windows Communication Foundation (WCF), and ClickOnce features. This enables rapid deployment scenarios for WPF, Windows Forms, WCF, and console applications that target the .NET Framework Client Profile. '
Sharing .NET Assemblies
The issues that were covered here were: how to share a /NET assembly and how to version it. Basically, we install them to the GAC. However, nothing was said about multiple applications installing uninstalling same file and if this is handled by the method he showed us using VS.NET. With respect to versioning, when a new version is to be built, the question to ask is what is the new version for? Is it to add new features or to fix existing features? In the first case, the strong name of the assembly must be changed - so changing the version number will do this. This way, an old version and a new version of the same assembly can be installed side by side in the GAC. If it is to fix something, when two options are possible. The first is not to change the version, in which case the new version will replace the old one. If however the new change is a breaking change, this is not a good idea. The next option is to change the version number. However, in this case, applications using the old version will have to be configured using the 'Publisher Policy' to use the newest assembly.
Performance
Traditionally, we were told, strong named assemblies may have been installed to the GAC in order to speed up their loading time because the strong name of assemblies in the GAC is only verified at install time. However, .NET 3.5 SP1 has a new feature called 'strong name bypass'.
Finally we were shown a tool called that has been in the framework for a while that I was not aware of called NGen. This recompiles IL into native code so that assemblies load faster. This must be done when installing assemblies, and must be re-done every time an assembly is updated. We were also told that in .NET 3.5 SP1 there has been a lot of work done on cold start-up time, and this has been reduced by up to 20%
The session started out to answer three questions:
- How to install the .NET Framework
- How do I share libraries or components
- How do I make my app start faster
Basically we were shown how to tell VS installer project to install the .NET framework. This can be either downloaded from the web or included as part of the installation. The only new thing that was mentioned is the '.NET Framework Client Profile'. To quote MS:
'The .NET Framework Client Profile is a subset of the full .NET Framework 3.5 SP1 that targets client applications. It provides a streamlined subset of Windows Presentation Foundation (WPF), Windows Forms, Windows Communication Foundation (WCF), and ClickOnce features. This enables rapid deployment scenarios for WPF, Windows Forms, WCF, and console applications that target the .NET Framework Client Profile. '
Sharing .NET Assemblies
The issues that were covered here were: how to share a /NET assembly and how to version it. Basically, we install them to the GAC. However, nothing was said about multiple applications installing uninstalling same file and if this is handled by the method he showed us using VS.NET. With respect to versioning, when a new version is to be built, the question to ask is what is the new version for? Is it to add new features or to fix existing features? In the first case, the strong name of the assembly must be changed - so changing the version number will do this. This way, an old version and a new version of the same assembly can be installed side by side in the GAC. If it is to fix something, when two options are possible. The first is not to change the version, in which case the new version will replace the old one. If however the new change is a breaking change, this is not a good idea. The next option is to change the version number. However, in this case, applications using the old version will have to be configured using the 'Publisher Policy' to use the newest assembly.
Performance
Traditionally, we were told, strong named assemblies may have been installed to the GAC in order to speed up their loading time because the strong name of assemblies in the GAC is only verified at install time. However, .NET 3.5 SP1 has a new feature called 'strong name bypass'.
Finally we were shown a tool called that has been in the framework for a while that I was not aware of called NGen. This recompiles IL into native code so that assemblies load faster. This must be done when installing assemblies, and must be re-done every time an assembly is updated. We were also told that in .NET 3.5 SP1 there has been a lot of work done on cold start-up time, and this has been reduced by up to 20%
Deep Zoom
For those of you that don't know what deep zoom is, just take a look at the Memorabilia section on the Hard Rock Cafe website. Another good application shows all newspaper headlines about Obama after the election (here). Now we were shown how to set up deep zoom for a silverlight application, so don't know if it will work on a WPF application, but my guess is we can find a way of making it work.
In fact it is extremely easy to do using a tool called Deep Zoom Composer. The person doing the presentation literally too about 3 minutes to get a silverlight up and running using deep zoom composer. The very interesting thing was when he started adding extra functionality to the application using a combination of Expressions Design, Expressions Blend and Visual Studio, because i had the chance to see how the tools are ment to be used with each other to create amazing looking UI very easily.
Now the Deep Zoom demo wasn't the WOW factor of this session. It was what is called Photosynth. This is something has hasn't completely been released, but there is an online service that allows you to set something up and use it. It used 3D WPF stuff, so it doesn't work as part of silverlight. Anyway, the idea is this (and brace youselves, because if you don't get impressed it's probably because i haven't manged to get accross what you can do), you basically take many pictures, from close and far and round up down (whatever you want) of an area. Then you can have them atomatatically put together into a deep zoom enabled environment that alows you to zoom in out as well as pan and rotate in a 3D virtual like tour of the area you photographed.
Now i know it sounds weird and hard to explain, but take a look at http://photosynth.net/. We've been busy taking many photos of our room, and the Tech-Ed exibition area to try and use this to do a demo when we get back. Where can we use this? Well i'm not going to give you the answer. Just a good clue: real-estate applictions?
In fact it is extremely easy to do using a tool called Deep Zoom Composer. The person doing the presentation literally too about 3 minutes to get a silverlight up and running using deep zoom composer. The very interesting thing was when he started adding extra functionality to the application using a combination of Expressions Design, Expressions Blend and Visual Studio, because i had the chance to see how the tools are ment to be used with each other to create amazing looking UI very easily.
Now the Deep Zoom demo wasn't the WOW factor of this session. It was what is called Photosynth. This is something has hasn't completely been released, but there is an online service that allows you to set something up and use it. It used 3D WPF stuff, so it doesn't work as part of silverlight. Anyway, the idea is this (and brace youselves, because if you don't get impressed it's probably because i haven't manged to get accross what you can do), you basically take many pictures, from close and far and round up down (whatever you want) of an area. Then you can have them atomatatically put together into a deep zoom enabled environment that alows you to zoom in out as well as pan and rotate in a 3D virtual like tour of the area you photographed.
Now i know it sounds weird and hard to explain, but take a look at http://photosynth.net/. We've been busy taking many photos of our room, and the Tech-Ed exibition area to try and use this to do a demo when we get back. Where can we use this? Well i'm not going to give you the answer. Just a good clue: real-estate applictions?
The Future of Unit Testing
I managed to get the powerpoint presentation for this session. So there's not much point copying all my notes here. The bottom line is:
- UI unit testing is hard, and doesn't look like it will be cracked soon.
- Unit testing multithread stuff is probably the next big thing. Microsoft has been investing in better debug suport for multithread apps as well as visualizers and analysers. Some of these things we'll be seeing is VS.NET 2010
- PEX is a project that aims to auto-generate tests. There is a danger that this will be obused. It essentially can only test edge c onditions with respect to if app code crashes or not. Logical tests must still be manually performed.
- Current we page testing tools (e.g. Watin, Watir) don't test AJAX stuff, so that has to be addressed
- JsUnit for javascript
- Adoption rate with respect to Unit testing and test driven development still needs to achieve a critical mass
- IOC containers. Very important.
Thursday, 13 November 2008
Designing for Testability
For each piece of coded logic in the system, a unit test can be written easily enough to verify it works according to the PC-COF. The PC-COF are characteristics that must be true of the tests. They are as follows:
Partial test runs are possible.
Configuration not needed to run tests.
Test fails / passed Consistently.
Order in which test run does not affect the results.
Tests run Fast
Then we were shown the main ideas behind this is to use ‘Dependency Injection’ (also see Wiki on DI and MSMagazine). DI is about, instead of a class creating its own dependencies, they are given to it (either through maybe a constructor, or via properties). This allows us to give a class ‘fake’ dependencies that will behave in a specific known way in order to test them. It also brings our designs closer to the S.O.L.I.D principles of object oriented design.
However, the problem with using DI, is that very soon you come across constructors that need to take very many parameters, and objects than need many lines of code just to construct them. Step in IOC Containers. IOC containers are like smart factories. They can be configured either via code or via configuration file to create instances of objects. Thus, even though constructors take many arguments, by using the IOC Container, object creation is simplified. I’m hoping to give you guys a demo off this when I’m back. There are a number of IOC Containers out there at the moment. The most popular is Castle.Windsor and Unity is from Microsoft’s Patterns and Practices.
So going back to testing, is our system is designed to use DI, we can inject fake implementations of each dependency of the class we are testing so as to test only that class.
A final few notes that were said:
It may often seem that testability clashed with encapsulation which we are traditionally told to practice in object oriented design
Tests show intent so we can use them as requirement
So that was the main part of that session. Just a quick note, the guy mentioned we should take a look at ‘TestDriven.NET’ which is a very usefull plugin for VS.NET as well as ReSharper.
Now this session was so another day I went to another session on the future of unit testing...
Partial test runs are possible.
Configuration not needed to run tests.
Test fails / passed Consistently.
Order in which test run does not affect the results.
Tests run Fast
Then we were shown the main ideas behind this is to use ‘Dependency Injection’ (also see Wiki on DI and MSMagazine). DI is about, instead of a class creating its own dependencies, they are given to it (either through maybe a constructor, or via properties). This allows us to give a class ‘fake’ dependencies that will behave in a specific known way in order to test them. It also brings our designs closer to the S.O.L.I.D principles of object oriented design.
However, the problem with using DI, is that very soon you come across constructors that need to take very many parameters, and objects than need many lines of code just to construct them. Step in IOC Containers. IOC containers are like smart factories. They can be configured either via code or via configuration file to create instances of objects. Thus, even though constructors take many arguments, by using the IOC Container, object creation is simplified. I’m hoping to give you guys a demo off this when I’m back. There are a number of IOC Containers out there at the moment. The most popular is Castle.Windsor and Unity is from Microsoft’s Patterns and Practices.
So going back to testing, is our system is designed to use DI, we can inject fake implementations of each dependency of the class we are testing so as to test only that class.
A final few notes that were said:
It may often seem that testability clashed with encapsulation which we are traditionally told to practice in object oriented design
Tests show intent so we can use them as requirement
So that was the main part of that session. Just a quick note, the guy mentioned we should take a look at ‘TestDriven.NET’ which is a very usefull plugin for VS.NET as well as ReSharper.
Now this session was so another day I went to another session on the future of unit testing...
Agile Development
The past year or so I’ve been interested in the various facets of Agile Development. The best place for someone to start looking into with respect to agile development is the Agile Manifesto. In my own words, I would say agile development is about embracing change and developing software in such a way as to be able to deal with changing user requirements.
Traditionally this has not been supported by the software lifecycle models. Traditionally, at the start of a project a requirements document is created through meetings and analysis between domain experts (possibly the client) and requirements engineers. Once this set of requirements is perfected the system is designed. (this is often referred to as Big Design Up From (BDUF)). Once the design is perfected, implementation begins. Different parts of the system may be distributed to different developers or development teams. Once every part of the system is implemented, they are all pulled together and integrated. Finally the entire system is tested, issues are fixed, and the product is released. The usual response to a change in requirements in this situation would be for someone to stamp his foot down and shout ‘requirements are not supposed to change’ and then blame the analysts for not doing their work correctly. However, the fact of the matter is that requirements do change and the challenge for developers becomes, ‘How can we develop software in such a way that we can respond to changing requirements and maintain a high quality product which is of value to a customer?’. Martin fowler has written a very good essay talking about why the traditional software development lifecycle is unsuited for most real world projects.
Now one of the main points of being agile, and permitting large code changes while maintaining quality and not introducing bugs is to test the software. A lot. Throughout the software development process. And to have automatically running tests that cover as much if not all of the code. However, this is not always easy. A class will depend on another class which will depend on another, which will depend on another. It is very possible there are cases that are really difficult to test. (example of untestable code). So one of the sessions I went to talked about ‘Designing for Testability’ by Roy Osherove. Primarily guidance was given in what to test and how to test it.
Traditionally this has not been supported by the software lifecycle models. Traditionally, at the start of a project a requirements document is created through meetings and analysis between domain experts (possibly the client) and requirements engineers. Once this set of requirements is perfected the system is designed. (this is often referred to as Big Design Up From (BDUF)). Once the design is perfected, implementation begins. Different parts of the system may be distributed to different developers or development teams. Once every part of the system is implemented, they are all pulled together and integrated. Finally the entire system is tested, issues are fixed, and the product is released. The usual response to a change in requirements in this situation would be for someone to stamp his foot down and shout ‘requirements are not supposed to change’ and then blame the analysts for not doing their work correctly. However, the fact of the matter is that requirements do change and the challenge for developers becomes, ‘How can we develop software in such a way that we can respond to changing requirements and maintain a high quality product which is of value to a customer?’. Martin fowler has written a very good essay talking about why the traditional software development lifecycle is unsuited for most real world projects.
Now one of the main points of being agile, and permitting large code changes while maintaining quality and not introducing bugs is to test the software. A lot. Throughout the software development process. And to have automatically running tests that cover as much if not all of the code. However, this is not always easy. A class will depend on another class which will depend on another, which will depend on another. It is very possible there are cases that are really difficult to test. (example of untestable code). So one of the sessions I went to talked about ‘Designing for Testability’ by Roy Osherove. Primarily guidance was given in what to test and how to test it.
Wednesday, 12 November 2008
Wednesday @ Tech-ed
Well I'm not gonna go through everything right now but as I've got the chance I'll make i quick note about what I've seen today.
Session 1: Extending Web Applications with IIS 7.0
IIS 7.0 does not look that bad as his predecessors.
The main (and huge) difference is that it has become modular. Modular in the sense that we can select the modules we want it to include in its pipeline (which is actually has been totally re-architected so that everything is a module). In order to extend it all we need to do is write a class that inherits from IHttpModule and does my job (i.e. logging all requests to SQL say).
The second change is that it has a new configuration schema, which is actually an XML schema, so say bye bye to the metabase. (Note: go to IIS page and search for Administration pack and install it to get the Configuration Editor among other things).
Another change is that IIS 7 supports shared configuration
Supports Failed request Tracing and also there is an improved IIS Manager which we can extend and add our on stuff. For more info go to IIS search for extensibility and watch the walk throughs.
Session 2: Web Scalability Via asynchronous systems
Lots of complicated notes...
Find info with Demos too at www.UdiDahan.com
Session 3: High Performance ASP.Net
The main issues are:a
More info will be available through StephenWalther bolg here.
Session 4: Building RESTfull services sing WCF.
REST is the way, forget SOAP, even M$ has agreed...
Soap is a thing of the past. Soap exposes specific functionality (i.e. can call specific methods), while REST (Representational State Transfer) we interact with resources. Resources are unique in the sense the have a unique uri, and we interact with them using verbs (GET, POST, PUT, DELETE).
REST has some particular advantages: GET can be cached, Statelessnes -> which eaases scalability an many more...
For more info go to: http://www.rest-ful.net.
Session 5: Common ASP Production issues and Troubleshooting
This is the worst session I 've been so far... Didn't say much at all. Use Debugging tools for windows, sos.dll (doesn't stand for save our souls!), and 'Tiny Get' free tool with IIS Resources.
More info can be found on her (yes it was a woman) blog: http://blogs.msdn.com/Tess
Session 1: Extending Web Applications with IIS 7.0
IIS 7.0 does not look that bad as his predecessors.
The main (and huge) difference is that it has become modular. Modular in the sense that we can select the modules we want it to include in its pipeline (which is actually has been totally re-architected so that everything is a module). In order to extend it all we need to do is write a class that inherits from IHttpModule and does my job (i.e. logging all requests to SQL say).
The second change is that it has a new configuration schema, which is actually an XML schema, so say bye bye to the metabase. (Note: go to IIS page and search for Administration pack and install it to get the Configuration Editor among other things).
Another change is that IIS 7 supports shared configuration
Supports Failed request Tracing and also there is an improved IIS Manager which we can extend and add our on stuff. For more info go to IIS search for extensibility and watch the walk throughs.
Session 2: Web Scalability Via asynchronous systems
Lots of complicated notes...
Find info with Demos too at www.UdiDahan.com
Session 3: High Performance ASP.Net
The main issues are:a
- Caching (Client, IIS, Application)
- Asyncronous Pages
- Reducing Page Size (Viewstate, Ajax, Compression)
- Front-end performance
More info will be available through StephenWalther bolg here.
Session 4: Building RESTfull services sing WCF.
REST is the way, forget SOAP, even M$ has agreed...
Soap is a thing of the past. Soap exposes specific functionality (i.e. can call specific methods), while REST (Representational State Transfer) we interact with resources. Resources are unique in the sense the have a unique uri, and we interact with them using verbs (GET, POST, PUT, DELETE).
REST has some particular advantages: GET can be cached, Statelessnes -> which eaases scalability an many more...
For more info go to: http://www.rest-ful.net.
Session 5: Common ASP Production issues and Troubleshooting
This is the worst session I 've been so far... Didn't say much at all. Use Debugging tools for windows, sos.dll (doesn't stand for save our souls!), and 'Tiny Get' free tool with IIS Resources.
More info can be found on her (yes it was a woman) blog: http://blogs.msdn.com/Tess
Post@the-speed-of-light.net
The intention is there to blog about every minute of every day... but if you're on the go every minute of every day there's no time to blog about it.
Πάντως κρατάμε σημειώσεις, physical and mental, and soon as we get a chance we'll put something up.
Now, we've just finished all but one sessions, and will be getting up to go to the next one in 5 minutes...
We'll be at the hotel by 7:30 and we'll be leaving again by 8:30 to go to the Country Drinks venue.
Πάντως κρατάμε σημειώσεις, physical and mental, and soon as we get a chance we'll put something up.
Now, we've just finished all but one sessions, and will be getting up to go to the next one in 5 minutes...
We'll be at the hotel by 7:30 and we'll be leaving again by 8:30 to go to the Country Drinks venue.
Tuesday, 11 November 2008
Tuesday @ Tech-ed
We've seen some interesting stuff in the first session. George attended the 'why software sucks' session bottom line is "Know thy user, for he is not Thee". Andreas attended the 'Entity Framework' session introduction and the bottom line is good automation stuff but not quite there yet as there are a few limitations with more complex systems.
More details later on...
More details later on...
Monday, 10 November 2008
Moday@tech-ed.com... in the hood!
Just came back from our first day at Tech-Ed. The keynote was insightful and the sessions were inspiring. We've taken down pages and page of notes and plan to condense them and post them as soon as we get the chance. Today we had the welcome drinks event and as a result we've come back to the hotel rather late and in not the best condition to blog. Non the less the plan is to grab a bite to eat and spend the rest of the night sorting through today's material. I watched two sessions: one regarding the pitfalls and decisions that have to be made at the beginning of a software project and one regarding fuzzy data systems (we are the dogs bollocks). Andreas attended the sessions on architectural anti-patterns and web & user experiences using ajax.
Pictures from Day 1




Sunday, 9 November 2008
The Odyssey of two developers
3:50am
Woke up earlier than i had planned. Why me?
4:20am
Alarm. Much good it will do now.
5:30
Arrived at the airport. Could Lufthansa check-in desk be any further away?
7:00
Quick boarding and flight has left. Good leg room, αλλαντικά για πρωινό.
8:00
In Munich. Got out of the plane, out or gate 17, waited for one hour, into gate 18 and on to the same plane we got off. Air hostess was pleasant.
11.30
In Barcelona airport, nice ride to hotel. Weather is sunny and cool.
12:05
Arrived at hotel, the room is at the 6th floor. Amazing view of Sagrada Família. And this is where things start going...well I wouldn't say wrong - but unexpectedly. The internet isn't working yet, but that's not a problem, the conference area has free wi-fi access. However, (if we over look the joined beds(I have no intention rolling over to Andreas side and he's promised not to roll over to mine)), the bathroom walls are made of glass -as in if someone is having a shower the other one is watching a live porn show for free. We'll have to work something out on that. At least the toilet area is separate.
14:00
Leave for early registration at the conference. We decided to see how the transport works in the city and go register at the conference so that we don't have to do it tomorrow morning with the rest of animals. It will give us a chance to recover from the early wake up.
The city has 70km of bicycle roads and the sight of most 'pedestrians' using bicycle makes me jealous. Endless straigths designed for strolls or rides. And there is even special bicycles that we suspect are for public usage. We're thinking of using them to get around.
We took the tram -5 quick stops to the conference centre, and a 30sec registration. And that's it so far. And its not even 15:00... Plan is to take advantage of the internet over here and then go check the city centre, grab something to eat.
Woke up earlier than i had planned. Why me?
4:20am
Alarm. Much good it will do now.
5:30
Arrived at the airport. Could Lufthansa check-in desk be any further away?
7:00
Quick boarding and flight has left. Good leg room, αλλαντικά για πρωινό.
8:00
In Munich. Got out of the plane, out or gate 17, waited for one hour, into gate 18 and on to the same plane we got off. Air hostess was pleasant.
11.30
In Barcelona airport, nice ride to hotel. Weather is sunny and cool.
12:05
Arrived at hotel, the room is at the 6th floor. Amazing view of Sagrada Família. And this is where things start going...well I wouldn't say wrong - but unexpectedly. The internet isn't working yet, but that's not a problem, the conference area has free wi-fi access. However, (if we over look the joined beds(I have no intention rolling over to Andreas side and he's promised not to roll over to mine)), the bathroom walls are made of glass -as in if someone is having a shower the other one is watching a live porn show for free. We'll have to work something out on that. At least the toilet area is separate.
14:00
Leave for early registration at the conference. We decided to see how the transport works in the city and go register at the conference so that we don't have to do it tomorrow morning with the rest of animals. It will give us a chance to recover from the early wake up.
The city has 70km of bicycle roads and the sight of most 'pedestrians' using bicycle makes me jealous. Endless straigths designed for strolls or rides. And there is even special bicycles that we suspect are for public usage. We're thinking of using them to get around.
We took the tram -5 quick stops to the conference centre, and a 30sec registration. And that's it so far. And its not even 15:00... Plan is to take advantage of the internet over here and then go check the city centre, grab something to eat.
Saturday, 8 November 2008
The day after the day before the day after...
... or something like that :)
Kinda the same applies here. Why couldn't it all get itself sorted? That's the enternal question.
Friday, while George was picking up the Asus Eee PC and setting it up. I was putting the wasing on and then gone to play this week's last game of 5x5 footie to relax. But how crap is it putting the clothes out on the washing line at 2:00 am? Yeap, that was me...
Anyway that was the toughest part (cos included washing a jumper by hand as well!) and its all done and dusted, it's Saturday mo now and have to pop out for the last bit of shopping. That's another one I hate, but I hope that due to the financial crisis shops won't be as busy, fingers crossed! The 2nd toughest part will be -surprisingly enough- packing! ...and as if all these wasn't enough the plane takes off at 6:45 am if I remember right, with connection to Munich...Yeah why not, Munich is on our way, I was wondering though, why didn't we get a connection flight to Magadascar, as it's as much on our way as Munich is!
Hope Barcelona pays off for this lost weekend, it has to, programmatically speaking (not)!
PS: Well Barcelona has to try hard to pay me off cos on top of all the unbearable tasks described above, I'm gonna miss the mighty Panathinaikos Vs Olyscumpiakos which is on this Sunday, and this can be hardly paid off... Let's hope I ll find somewhere to watch it in Barcelona.
Kinda the same applies here. Why couldn't it all get itself sorted? That's the enternal question.
Friday, while George was picking up the Asus Eee PC and setting it up. I was putting the wasing on and then gone to play this week's last game of 5x5 footie to relax. But how crap is it putting the clothes out on the washing line at 2:00 am? Yeap, that was me...
Anyway that was the toughest part (cos included washing a jumper by hand as well!) and its all done and dusted, it's Saturday mo now and have to pop out for the last bit of shopping. That's another one I hate, but I hope that due to the financial crisis shops won't be as busy, fingers crossed! The 2nd toughest part will be -surprisingly enough- packing! ...and as if all these wasn't enough the plane takes off at 6:45 am if I remember right, with connection to Munich...Yeah why not, Munich is on our way, I was wondering though, why didn't we get a connection flight to Magadascar, as it's as much on our way as Munich is!
Hope Barcelona pays off for this lost weekend, it has to, programmatically speaking (not)!
PS: Well Barcelona has to try hard to pay me off cos on top of all the unbearable tasks described above, I'm gonna miss the mighty Panathinaikos Vs Olyscumpiakos which is on this Sunday, and this can be hardly paid off... Let's hope I ll find somewhere to watch it in Barcelona.
Tech·Ed EMEA 2008 Developers Agenda
Subscribe to:
Posts (Atom)