Friday, December 29, 2006

Book Review: Practices of an Agile Developer

For any developer starting out with agile, I'd like to recommend this book. Indeed, for any well practiced agile developer, I'd also like to recommend this book.

I first got wind of Practices of an Agile Developer on DotNet Rocks show 205 where the authors Venkat Subramaniam and Andrew Hunt were interviewed and discussed their new book. There are some great agile books around, though they tend to me more about the way things should be done to be agile, but this book dives more into the mind of a developer on a agile project.

The conversational style makes the book really easy to read with plenty of stories thrown in to help illustrate a point. The use of the devil/angel at the start and end of each point also brought home a point (the devil would recommend something evil yet plausible whilst the angel would say what you might actually want to do).

Any developer on an agile project would probably already know a lot of the points raised, but the bite size chunks along side the easy to read prose makes this book worth flicking through regardless of experience.

Pick up your copy.

The Web21C Information About Me Sample App

Hmm, so what's this service call 'Information About Me'? Well, it's a service that enables an application to store information about it's users. It also have a permission model wrapped around the users attributes so that, if the owner of that information wants to, they can enable read/write access to other users within the application domain.

So, without further ado, go check out the downloads page and get the IAM sample source. You'll have to change the wse3policyCache.config file with one of your own based on your application certificate, then you can get going.


Using the sample, you'll need to create a user using our authentication service (WhiteLabelAuthentication) and then create the attribute with the initial value associated with the user who is now logged in to our authentication service. You can launch another instance of the application and create another user and then have a play around with getting and setting the attributes with different permissions. Watch the log for exception messages coming from the service.


Have fun, and place let me know any improvements to the sample that can be made through the comments.

Cheers.

WPF and the Web21C SDK

So I downloaded MS Expression Blend (Beta 1) the other day and had a little play around. It's a little clunky, but has a lot of potential. I really like the way the design has been abstracted away from the code further then the move to partial classes in Visual Studio 2005.


Using Expression Blend, I created my (awesome) GUI for a sample app I've been working on using the SDK. Added a few buttons, text boxes and the like and then added some on click events. Indecently, this was one of the issues I came across where you couldn't edit the .cs code files behind the XAML and trying to create an event wouldn't create the signatures in the code.


The nice thing about this package is that it creates a Visual Studio project so after doing the design you can open it up in and edit the project in VS2005. From here on in it's the same as any other SDK application: set up WSE, add references and get coding.


The presentation of the application look really nice. I'm happy to see that our SDK can be used in many ways with all of these different tools. Next up is WPF/e.

Thursday, November 23, 2006

Cool Tools

A lot of these tools were taken from Scott Hanselman's site hanselman.com, so check that out for more of these cool tools. These are just the ones I've found useful as well as others I've come across. Enjoy.
7-Zip, a free zip utility that's much faster then Windows Zip and much more free then WinZip.
FoxIt Reader, a free PDF reader.
Primo PDF Printer, a free PDF printer.
Virtual Clone Drive, a free tool that allows ISOs to be mounted as if from a DVD Rom.
Notepad++, a free editor that is a made to order replacement for Notepad.
ZoomIt, a free zoom tool, much better then Windows Magnifer and really useful for presentations showing code.
TaskSwitch, a really nice and free replacement for alt-tab.
CleanSourcesPlus, do you find sometimes in Visual Studio that cleaning the solution doesn't get rid of any files? Well with a right click on a folder this app will blow all that away!
CopySourceAsHtml, nice plug in for Vs2005 - copy as HTML so no lose of formatting. Great for documentation, forums or blogs.
CommandPromptHere, a few scripts to add the ability to go straight to a command window with VS tools loaded in a directory from right clicking a folder.
Lookout, an awesome indexed search tool for Outlook.
WSCF, Web Service Contract First - awesome tool for generating stubs for server and client side from WSDL.
Paint.Net, a free and much better alternative to MsPaint.
GhostDoc, quite nice for generating a framework on comments in C#.
CommandLineHere, some tools for adding a button to right clicking on a folder to bring a command line window to the current directory.
FileZilla, a greate FTP client.
Some other tools I'm currently trying...
SlickRun, a command line short cut for apps and web pages.
ProxyTrace, looks like a nice tool to see what SOAP is flying around.

Friday, October 20, 2006

Agile Methods, Team Culture and the Bigger Picture

There seems to be a lot of bad air about agile methods at the moment and a lot of gushing over Google’s working practices. From what I’ve read working at Google sounds great, but for better or worse, most of us working a customer driven industry which won’t accept development and management styles like those employed at Google.

After contemplating on this for a while, I was going to write how I felt it was Google’s culture which affected it’s ways of working and hence following a method probably doesn’t make sense for them. I then thought about how practices from companies such as Google along with agile methods such as Scrum could create a high performing software engineering culture. My thoughts diverged into a group of practices which when used together could influence the culture of a group toward a high performing software engineering team, regardless of the method they apply.

Perpetual Learning

Software engineering and agile both promotes knowledge sharing. Pair programming, especially between different levels of experienced developers can improve the knowledge of those developers. Not to mention the other benefits of pair programming with more thought out code with hopefully better design, better tests and better code.

Within our group, every developer takes turns to present a tool, a technology or host a discussion once a week. This is a great way to transfer knowledge within a group, especially if these sessions are captured and archived for future members of the team or for reference. These sessions have been given the name ‘Brown Bags’ after originally being brought from another group doing the same thing, but over lunch.

Every quarter, Google projects show themselves off their peers. This can be a great way of exposing the great work, new tools and new techniques that have been developed over the quarter to the rest of the group. This could enhance the learning of the group as a whole as well as give teams something to strive towards for peer recognition.

Individual learning is also important. Google give their developers 1 day a week to work on their own projects or their own learning encouraging new projects to spin out of that work. 20% of a developer’s time is a lot to lose, but it should be encouraged to spend a certain amount of time on such endeavours. As well as this, in-between releases agile workers are encouraged to have a period of downtime to unwind, recharge the batteries, do some learning and work on some side projects. Hopefully this will feed back into the teams through new ideas during a project and through the weekly brown bags.

Shared Tools

I’m sure we’ve all wrote small applications to perform a specific task. If a group had a shared, searchable repository this could improve the productivity of the group. Or how about taking that one step further and applying a BSD (http://www.opensource.org/licenses/bsd-license.php) licence? Applying that to the code base and host it on a place such as Source Forge could help developers in the team and all over the world. If your company had it’s own share repository and hosted online this could enhance the company’s reputation in the engineering world.

Common Build, Common Code

Common builds and common code can help the engineering practice of being able to move onto different projects with minimal fuss. If all the code looked the same (as Google employees’ claims) that’s going to help when a team member moves team or a new team is formed. Pair programming can be a good way to converge onto a common code style.

A common build should most definitely include a continuous integration environment on a build box with metrics to fail the build such as code coverage and static analysis. Code should be developed in a test driven development (TDD) fashion to ensure only the function that needs to get written is written.

Prioritised Stack, Failing Fast and Team Communications

Google use queuing theories for their work stack; agile uses prioritised backlogs. These aren’t so far apart. Both are pulling mechanisms where the developer pulls the work off the stack that they want to complete. The only real difference is that a sprint is for a set time period with a prioritised stack so the customer can drive features and delivery.

Short sprints and regular releases also enable a team to ‘fail fast’. It may be feasible to set a time for a team to start a project and after a release it may be seen that a project isn’t working for whatever reason. Surely it’s better to realise this after one release and not after a few years of a project. It’s quite a simplistic view, but the sooner a project can fail, the quicker the business can cut the loses on that and move the teams onto projects which can provide value to the business. Architecture and development spikes are also great for this, setting a fixed time period to ‘play’ with a technique or tool and bring back that learning into the project.

Agile, and particularly Scrum uses daily stand up’s so a team member can communicate the work they are undertaking. This is a valuable time for the team to be able to find any issues early on. Some have said that a daily stand up is a triage with protocol. They may be right, but nether-the-less the team benefits from frequent communication from peers.

Conclusions

Every workplace has a culture, every team follows a methodology. But regardless of those, if practices such as those outlined above are followed a team should hopefully increase its value to the business.

Tuesday, October 17, 2006

QA in an Agile World

Introduction

So, Quality Assurance (QA), yawn! Security, double yawn! I'm as guilty as any other developer who wants to work on something cool in that I occasionally sacrifice these in order to 'get the job done'. But when is done really done? What can be the effect of skipping QA from a project or even a class within a project? How can we make QA and security easier so that it just happens?

SOA as an Asset

As we move towards a service oriented architecture world, our services are acting more like assets for our business. There can be many consumers of our services both large and small and they may or may not have service level agreements (SLAs) based on the consumption of a service. Therefore, our service is an asset and has value that we must protect.

Excuses

There are many excuses for poor software; Selip suggests the most popular are complex environments, cultural bias, waterfall methods and missing in-house expertise. Cultural bias is one of the more interesting ones as Selip (p7) raises the point that "there is usually no reward or penalty structure related to software quality". Personally, I'm not one for a penalty structure but I'm all for a metric based performance reward either through peer recognition (and a little something extra of course) rather then hidden personal goal/development documents.

Three Facets to Secure Software

Lipner and Howard (p2) discuss what they see as the three facets of secure software: repeatable process, engineering education and metrics and accountability.

Metrics are most impressive and responsive in a continuous integration environment running against the code and not against a document. Static analysis and security based tools should be included in a build as well as using code reviews, threat modeling and paired programming to eliminate issues.

Selip (p8) mentions that all the engineers at Microsoft attend an annual training program in the Security Development Lifecycle (SDL). Engineer education is equally important to running these tools in a continuous integration environment. If the engineers are more informed, they are likely to make better decisions and improve the quality of a project.

Commonly Missed Types of Testing

Continuous integration is great for unit and integration tests, but these tests only go so far. It can't test how easy a system is to use or whether the system is backwards compatible. Projects need to be more conscious of functional and user acceptance testing where the program is handed out for feedback. Projects also need to be conscious of strategies to perform regression testing so breaking changes can be tracked.

When is Beta, Alpha?

Everything these days seems to have a beta label slapped on it, but Selip defines the difference between people bases testing techniques (p20). Alpha testing is performed by those friendly to the development team while beta testing is performed by those in a similar demographic to that of the target audience. So unless you have people you don't know testing your software, you're probably in alpha.

Agile Approach to QA

Depending on their structure, stories generally relate to a piece of functionality. If stories are expressed with Volere Shells, the QA can be easier defined as these are written more with a specific test and priority in mind. These stories relate to a set of unit and integration tests that prove the story and feedback into the tools used within the CI environment to prove the QA.

Conclusions

I think Selip (p8) says it best so I'll leave it to him.

"Believe that all software, whether built in-house, purchased as COTS, or developed by outsourcing, is the work of fallible humans who are prone to making mistakes. Understand that the organization and its stakeholders are highly dependent on high-quality, fault-free software. Expect that requirements, design, and software development mistakes will result in risky software faults. Invest in people, processes, and tools to avoid, detect, and neutralize software faults. Mandate and create incentives for a culture that takes pride in quality, has the skills and knowledge to achieve it, and that aggressively finds and fixes faults."

Lipner & Howard (p11) also suggest that project teams should concentrate on threat modeling, code reviews, using automated tools and fuzz testing throughout the lifecycle. This should be done as a higher priority then penetration testing which is used to define production readiness rather then used to find bugs.

References

Selip, S. (2005), To Err Is Human, So Test That Software, Burton Group, http://www.burtongroup.com/content/printver.aspx?cid=729

Lipner, S & Howard, M (2005), The Trustworthy Computing Security Development Lifecycle, MSDN, http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsecure/html/sdl.asp

Futher Reading

http://www.volere.co.uk

Sunday, September 03, 2006

The Trouble of Unit Testing the Consumption of Web Services

Test driven development (TDD) and web services are becoming new standards in the industry, but unit testing against a web service raises issues especially if a hit on the service has a financial or performance cost. During development it may be beneficial to mock the behaviour of a live service.

In the project I am working in at the moment we have had to ask ourselves these questions and we have to continue to ask ourselves how to get the best out of unit testing against a web service. Having been recently introduced to the principle of 'inversion of control', I realised our approach was not that far off of these principles although I questioned whether we still had the right approach.

Issues with building a stub web service

The approach we had taken was too generate web service classes using ThinkTectures' WSCF tool (www.thinktecture.com/WSCF/ ) and ran these web services within local host using fixed ports (on our development and build machines). These generated web methods return a NotImplemetedException by default, so we had to fill these methods out to support our unit tests. This is an architecture discussion in itself: complete these classes; extend them or use helper classes. This discussion arose when the services we were building against were changing on a weekly basis. Completing the classes' meant that every time new classes were generated from the WSDL contract, the code was overwritten which would result in a mass copy and paste job.

It was really a question of extending the web methods or using helper classes. Our thought path was as the web services we were developing were fairly volatile in nature any change could result in a large refactoring task to make sure our mock web service was in step with the live web service.

How stupid should a mock web service be?

Our project had started small; in fact the behaviour from the beginning was more like a proof of concept or an architectural spike then anything else. A small team began building web services and also building a toolkit to consume these services. A four person team had complete control over the project and the architectural awareness may have resulted in overcomplicating our stubbed web services later on.

After the proof of concept, the team continued to build the toolkit to expose the services that new teams taken over to develop. Perhaps the team had too much knowledge of the services they were consuming as the mock web services were considerably complex considering they were to be used for testing only.

A discussion on dependency injection got me thinking that our stubs were too complicated. We should be mocking the behaviour of the live services at the contract/interface level without having to think too hard about how the service is implemented.

These thoughts lead to an increase in a practice that the team had already been practising too a small extend; passing known values in parameters. For this too work, the value would have to be known by the test object and the mock web service. If a certain value was passed the web service would behave in a certain way (throwing an exception for example).

This worked for a time and proved somewhat of a success, especially as debugging a running stubbed web service was a painful exercise; creating a stupid web service achieved the desired behaviour and we could test our toolkit sufficiently without investing too much time in developing a mock framework.

As the services increased in complexity and required data from the SOAP header, this simple passing of a known value was not going to be enough to achieve the desired result. After some discussion the decision was made to pass delimited values across in strings. This way, the service would not have to have the same complexity could behave in the same way by using the delimited data as the live service would if that data was in the SOAP header.

Should unit testing include web service calls?

This leads into a question of should a unit test go as far as actually making a web service call in the first place? Our toolkit contains a logic layer which talks to web service proxy objects and we had a configuration that would create that proxy object with a pointer to the live service, or the mock service on the local machine if the configuration was set to 'test mode'.

We could take this one step further in an attempt to improve our build time. When generating a web proxy class, if our configuration was such, we could instead build a object that contained the stupid mocked behaviour in a known assembly. This would almost certainly cut the build time as the code would not have to go through the web service stack several hundred times to complete the test list.

Using this technique means there could be an inherent risk that the web service stack is not being tested at all. This is bad for code coverage, but if the project also had live integration testing this could be seen as an acceptable risk to take within a unit test.

For this to work, the mock objects would have to be maintained as the live services evolve, although this also holds true for the mock web service.

Sharing test data with a mock web service

There is another advantage to not using a web service stack in the unit testing and that is the ability to share test data. When running unit tests with a mock web service, the code is running in a different assembly, and hence has trouble sharing resource as the only way to communicate is through the web service. Sharing a database for test data is one possible answer to that, but its quite a significant hit to use a database if the project does not use a database like our toolkit.

A file on the same machine or even a key/value paired web service could also work but this comes with its own maintenance issues. Sharing a file seems easy enough, but both assemblies would have to know where that file is, and what if someone comes along and checks out the code from source control it should work straight away without configuring. Will that file always be in the same place; probably not. As for setting up a key/value pair web service; well you might as well set up a database.

If the mock object is running in the same (or referenced) assembly, it can have access to the same data resources as the tests and then that data need only be maintained in one place. This could also open up more dependency injection opportunities for the mock web service where any behaviour could be set during run time.

Tuesday, May 30, 2006

The Italian Blog - Epilogue

So ladies and gents, the final Italian blog is here. Sorry it's been so long but things couldn't have been busier since I've returned and a recent bout of insomia has created the best opportunity to post this.

The photos from the trip have bene flickr'd and can be found here: http://www.flickr.com/photos/robbies/sets/ look for the Italy set.

We booked all of our hostels from hostelworld.com, most of the hostels were fine except for a most unhelpful guy at the hostel in Milan (which was bloody miles away from the city centre). However, I'd really recomend the 'Italy Farm Stay' (http://www.hostelworld.com/availability.php/ItalyFarmStay-Pescosolido-11332) hostel in Pescosolido a few hours outside of Rome. If you were looking for somewhere out of the way, I'd really recomend this.

Speak to you kids soon.

Friday, May 19, 2006

The Italian Blog - Part VIII

Bloody socialist Italians! First they vote in a former communist as the new president, then they decide to go on strike the day we planned to take a boat trip up lake Como. It wasn't just the boat people that went on strike, it was also the buses, trains, and metro.

We had actually planned to do the boat trip on the Thursday, but the weather was pretty poor and visibilty was low so we decided to do it Friday. At that time we didn't know about the strike. We walked through Como town which was pleasent although not a great deal to do. We went up the top of the hill on the funicular and there was even less to do there!

Knowing that the stike was now on from 8.30 to 4.30, we got up extra early to go to Milan where we saw the science and technology museum, did some shopping and went to an art gallery. We finished off with a local favourite, fried calzone (panzarotti), ice cream and sitting in the sun in the park before heading back to Como for the evening.

With more luck, we'll be doing the boat trip tomorrow and then off to Milano in the evening... see you all soon.

Thursday, May 18, 2006

Champions League Final Review

Barcelona 2-1 Arsenal

Key Moments:

Lemman sending off: Can't really argue against this, the ref should have played on to allow Barcelona the goal, we were lucky he didn't. With only 10 men we played too deep and there was never any support on the counter attacks.

Campbell goal: It looked to me like Eboue dived for the free kick. I was disapointed at this as it looked like he could have created a good opportunity. Saying that, Barca didn't put a man on the post and we're pusnish.

Eto'o hits the post: A great save although it looked like he hit the post outright.

Half Time: We got to half time 1-0 in and defending well. It was feeling like the Parma game in 94, I thought we had a good chance of doing it if we continued to defend well.

Larson substitution: Larsson turned the game, until then Barca had only really created half chances, but Larson had a hand in both goals.

Henry missed chance: Through on goal, Henry hits a pour shot straight at the keeper, we had to take our chances.

Eto'o goal: Silly defending let Eto'o in too easily and Almunia got beaten on his near post, which no goalie should ever be guilty of.

Belletti goal: Once again slack defending and awful goalkeeping. To be honest, when they equalised it was all over from that moment as heads dropped and the tiredness really kicked in.

In summary, Im disapointed. This was our biggest game, our greatest chance and a sending off and silly mistakes cost us the game. Henry had two great chances and had he put them away we could have come away with the trophy. Larson changed the game when he came on, I didn't really see much of Ronaldino or Eto'o, I thought we contained them well.

Wednesday, May 17, 2006

The Italian Blog - Part VII

So we arrived in Santa Marghertia and although drinks wern't exactly flowing, the sunshine kind of was! In Italy, everything closes between 1-4, adn we arrived during this time. After we checked in we went for a walk and it was empty, as most things are during these hours. There was little to do but go back to the hotel and have a nap and wait for things to open.

Santa Marghertia is a holiday resport, but it seems for the older generation. There are plenty of really nice boats in the habour but not too many bars. The following day we went to a little beach just outside of Portofino. The beaches here were really nice and we sat in the sun, read and dipped in the almost still sea, with the most gentle waves caressing the shoreline. The waters there are so clear, you can see at least 20 meters to the sea bed and the littles fish come right to the shore so that you can see them swiming around your legs.

We're staying a 3 star hotel and you would think this somewhat luxury compared to hostels but it certainly didn't feel like a 3 star hotel. We had to share the toliet and the shower was two floors above us!

We're moving onto Como now, an hour or so north of Milan in our penultimate stop. We had to stop in Genova once again to wait for the Milan train - a painful 2 hour wait for the train. It's a big night tonight in the football, Arsenal are playing Barcelona in the Champions League final. We haven't found many bars around the country that have football on, I just hope we can find one tonight in Como.

Monday, May 15, 2006

The Italian Blog - Part VI

Ciao once again!

I`m writing this while we`re getting ready to move on from Genova, but only 20 minutes down the road to Santa Margherita. I hope the drinks are as good as the name of the town suggests.

Yesterday, we went to the Chique Terre, the five villages by the sea. They were feet achingly beautiful and Ive got the feet to prove that! There is a trail that goes through the five villages and Katie and I walked yesterday which ended in Monterosso where we rewarded ourselfs by sitting on the beach and having a swim in the crystal clear waters of the ocean.

Italians have a similar saying to the Brits, "Italian trains eh?" - we found this out yesterday with a few of our trains delayed but we got over this by finding a nice waterside bar, having some wine and something to eat.

Pesto is said to have been invented in Genoa as a way of having a food substance that wont go off whilst at sea. This was an aid to prevent scurvy. Pesto is still a regional favourite and yesterday I saw lasagne alla pesto. My curisoity got the better of me however and I ordered it only to find sheets of lasange with pesto in between. I was disapointed, but I suppose I got what I ordered.

A little note from Katie: Just to let you all know I´m not coming home - I´ve decided to stay here with the sunshine and the pizza. Mmm, pizza..... no, just joking obviously, I´ve finally got a bit of a top tan so i´ll be back to show it all off to everyone!!!!! Lots of love :)

Saturday, May 13, 2006

The Italian Blog - Part V

Thoughts on Genova. Some may think that this is a very English thing to think, but we`re we happy to find a town that liked a drink! There are bars a plenty in Genoa, as opposed to stuggling to find something to drink, and even eat in Florence. No such problems here! Whats even better, is they love tapas here more then what we experienced in Spain. When we`ve ordered a few drinks we`ve always been greeted with peanuts and a plate full of bread, cheese and meat! Wonderful.

Genova itself is a strange town. All the streets are narrow and the nice parts are indistugable from the run down parts, the only telling part is the smell! On the whole, its a fairly run down town, but it has some charming characteristics. Its definitely a walkable city, although the streets are like a labrynith!

We met a nice guy today whilst shopping. An older guy who regaled us of stories of when he, from a strict Catholic family, came to London in the swinging sixties, following a girl and how now his son and his friends some to London for the night to visit the 100 Club on Oxford Street. I didnt even buy the t-shirt, too small, although it was bloody nice.

Something I just remembered was when in Florence, a few girls as part of a school group had to wear paper dresses to cover themselves as they were deemed to be not sufficiently dressed to enter the church. I found this most ammusing!

tomorrow we`re going to walk the chique terre, more to follow...

The Italian Blog Part IV

Hey everyone!

Not a usual start I know, but this is a most unusual keyboard. I couldnt sign in for ages as a few of the keys had been swapped around. Try and guess from this post, the first correct reply will get a fresh fish from the Genova harbour (of course it wont be so fresh when we get home - your loss)

So, a fair amount has happened since the last blog. We moved onto Firenze (Florence) and it seems the weather moves with us whereever we go, it just so happens that at the moment the weather is grey skies! Florence in itself is a wonderful artful city, and just about every other person visiting Italy seems to think so too. They have a wonderful gallery there, the Uffizi and on DEs advice we attempted to book tickets which to our suprise where twice as much as the listed price and the only tickets we could get was for the day after we left.

Netherless, we attempted to queue to get in. It semed like a smallish queue when we arrived in the early afternoon, but our attempts were thrwarted as the only times the queue moved was when people left it! We eventuallz gave up after a while of not moving.

We went to see the other sights that Florence has too offer, Santa Croce, Piazza Michelangelo and of course the Accademia to see Micaelangelo`s David. It was a shame really that the only thing of offer at the Accademia was David, nevermind.

In our plotting to Genoa, we noted that we had to change in Pisa. It actualy worked out cheaper to get tickets to Pisa, jump on a bus, snap-snap the tower, have a quick lunch, jump back on the bus and get the train to Genoa. So, thats what we did.

Today, we`re going to check out Genoa old town, tomorrow we`re going to Cinque Terre and Monday we move onto Santa Margherita and hopefully the weather will be better...

Tuesday, May 09, 2006

The Italian Blog - Part III

Picture the scene: Our hostel room (and pretty much the apartment) doesn't have any windows. We get ready for a day at the Vatican and much to our suprise when we're about to leave - it's raining. It's only a fine rain and it doesn't look like it will hold up, but by the time we've been waiting in the non moving cue at the Vatican, the downpour is relentless!

We finally managed to get in, soaked to the bones. I discovered that trying to dry your jacket and shirt under a mens room hand dryer is pretty futile. The museum was however, amazing. I was especially awestruck by the Rafello galleries and the Sistine chapel.

So now what do you do with the time, whilst your clothes are in the laundry? I choose to blog! This evening we're going to be boring and go to this mad resturant that we read about and went to on our first night. The service is a bit rushed, but the food was really good. Katie was in especially high spirits as the waiter deemed it suitable to give me a bib for my pasta!

Ciao for now.

Monday, May 08, 2006

The Italian Blog - Part II

Ciao from Roma!

It's been a busy few days since the last blog. We finished up in Napoli, moved onto the remote mountain village of Sora and then moved onto Rome.

When we finished in Napoli, I left with mixed feelings. The city was starting to grow on me and I felt as if there was more to see. I still haven't changed my mind about the area in which we were located, but there were also some very beautiful parts of the city. Something I've found quite amusing is how I've approached crossing the roads in other parts of Italy. For though who remember from university, road rage rob is back when vengeance!

We had to get the only bus of the day to Sora which was quite an adventure in itself. There was no organisation as all of the buses pulled up outside the main station wherever they could and moved on when they were ready. We nearly didn't notice our bus. Not that it nearly didn't matter as the kind conductor said he would let us know when we needed to get off. We arrived not in Sora, but in Cassino, an hour away from Sora. At first we walked around with a sence of something not being right. We went to the train station and noticed that it was Cassino and then rushed back to the bus. Luckily the driver was taking a coffee break, otherwise we would have been in trouble!

We arrived in Sora and went to the farm where we were to stay for two nights. The place was beautiful and over the next few days we went hiking into the hills to see a beautiful waterfall (Katie fell in the river on the hike, hehe) and went to this fantastic restaurant where we had a five course meal!!! The food was amazing the price was just as good, coming in at €34 for Katie and I. We made some friends who were also staying there, and we felt part of the family.

We arrived in Rome in stark contrast. Our hostel was a horrible, dingy, smelly and dirty place. We actually spent some time looking for somewhere else to no success. We eventually decided to just get on with it and enjoy our time in Rome. We've seen most of the tourist traps, the Spanish steps, Trevi fountain (yes, I threw some money in), the fantastic Pantheon, the Flavian amphitheatre (aka, the colosseum) and the forum. Today we went to the Vatican and the line was depressingly long. At best guess it would have taken 3-4 hours to get in. We decided against it and instead when to Anzio, a small coastal town and sat on an empty beach and typically got burned! Bloody stupid English!

We're going back to the Vatican tomorrow and then off to Florence the following day.

Ciao!

Wednesday, May 03, 2006

The Italian Blog - Part I

Ciao!

So arriving in Naples was no real problem, the flight was easy, the bus into town was easy, getting dropped off in Galibaldi Piazza was not. It was like getting dropped off in the ghetto. There was guys flat on the face in the gutter, the streets smelt of piss and this was where our hostel was.

Saying that, the hostel is fine. What more do you expect from a cheap hostel in europe? The first night, we went to a family run pizzeria, these can be found everywhere, much like Star Bucks or Maccy D's at home except nice. Pizza's range from 3 euros up, which is great if you're skint.

The second day we headed off to Pompeii. This place is fantastic, but like the rough guide said, one ruin begins to look much like another after a while. We did see some cool stuff, like ancient graffitti outside a "house of disrepute", an unstatisfied client so it would seem. There's really so much to see there, definitely worth checking out.

That evening we headed into the "nicer" area of town. We misleading believed this was a nice walk away and we're suprised that the journey took us through some not very attractive areas, and that it took bloody ages. In the end we found the nice area and got some nice pictures and strolled around for a while. We ventured to find a resturant that the rough guide had highly recomend and although we found it, it was closed. We wandered round to find something else and stumbled across a nice little place. I didn't really fancy a pizza, but Katie struggled to find much on the menu, the Italians are veggie friendly, alhtough the waiter did his best.

The following day we ventured over to Capri, which is a beautiful island about 45 minutes by jet boat. Quite an expensive day out, but worth it as the island was fantasitc. We found some really fantastic spots to admire the view and crowded onto a stone beach for a few hours. In true British style, I ran into the water, the freezing bloody water with loads of stones and then ran back out again pretending to Katie that it wasn't really that cold.

Tomorrow we're off to our next adventure in a national park...

Wednesday, April 26, 2006

The Magic Box Under The Stairs

Being a home entertainment enthusiast, I'm really keen on improving on my home network. I really want a digital entertainment network as well as boring old broadband. For the last few weeks I've had my desktop hidden away behind the TV in my living room with Windows Media Center running. Let me tell you, throw in a remote and it's a real joy to watch videos and listen to music but watching TV and more importantly recording TV is proving difficult.

At the moment that box holds all my media content which isn't ideal. What I really want is a server somewhere hidden away where the noise won't annoy my girlfriend and a sexy little box that has all the functionality that I want.

I keep seeing things which could work. Hard Disc recorders with freeview, sure sounds good, but I can't network it and stream/copy media either way. And what about if I want to upgrade to Sky or cable? What about BTs IPTV coming out in Autumn? That could be an interesting solution, but it's likely to be encoded so once again I cant stream/copy to my network.

The question is, is it best to get a HTPC and build it, or better to buy a mix match of hardware that together makes something cool. I'm unsure. Thrown in the question of next generation DRM issues and lets not forget, the price, and I'm in limbo.

Napoli Calling

So, our first stop in Italy is coming soon. I've sat down tonight to figure some stuff out, basically where we're going. We've booked all our hostels on hostelworld.com which is pretty good but a lot of the hostels listed don't have websites or post codes with their address. I've discovered tonight that this makes it a nightmare to find Google Maps.

So we're starting in Naples for 3 nights. I'm really looking forward to seeing Herculaneum and Pompeii as well as the madness that the city will surely bring. After that we're going to the Abruzzo National Park to stay on a farm. I really have no idea what that is going to be like lol.

We're then moving over to Rome for 4 nights, Florence for 2 nights, Genoa for 3 nights, a little place called Santa Margherita Ligure which isn't even in my Italy travel guide, but if the name is anything to go by we'll be alright. Then 3 nights in beautiful Como, I can't wait to see the lakes there. Finally we're going to Milan for 2 nights before flying home. I doubt we'll have any money by then, which is probably a good thing with Katie around ;)

Now... where's my passport?

Monday, April 24, 2006

Pandora's Box

You have to go check out Pandora.com, it's based on the Music Genome Project. You enter a band and or song, and it creates a free playlist based on that. What's great too is that you can if you like or dislike the current song and it will adjust the playlist according to your tastes. It's a cool way of being introduced to new bands and what's great is that it's all free!

Sunday, April 23, 2006

Italy

Hello Peeps,

Katie and I are going to Italy next week, so check in soon to read our adventures.

Robbie

Monday, March 13, 2006

DSCN1840


DSCN1840
Originally uploaded by Robb1e.
Hey, isn't this a weird picture? Thought I'd thrown this one out, see what you think.

Hello, World!

Like all good things computing, let's start with hello, world!

I've started this blog as Katie and myself are going to Italy in May, and we thought it'd be cool to have somewhere online where our friends could follow our travels and basically as I can only be bothered to write something once (granted copy and paste) but I'm lazy and I don't want to write the same email a dozen times.