Wedding of Julia and Marco in Italy

Kerstin and I have just returned from the wedding of her best friend Julia to Marco in Italy. The wedding took place over the weekend in a unique and beautiful location, not far from Terni, a hour north of Rome in Umbria.

We travelled over on the Thursday night, flying from Frankfurt Hann airport, which is for those of you that might ever consider it, miles away from anywhere that can be called civilisation, and certainly far away enough from Frankfurt for me to doubt the validity of the name! It took us three hours to get there from Dortmund, with awful traffic all the way on the autobahns. We made the flight with literally minutes to spare, ceremoniously dumping the car and legging it to the check-in.

That evening we arrived and ate late at the villa, set high up on a hill overlooking the surrounding rolling Umbrian hills and farms dotted on the horizon. We descended to bed quite exhausted. The next day we spent lazily wondering around Terni, the closest large town, but the weather sucked so I didn’t get many nice photos of the place. The central plaza is dominated by a particularly ugly fountain anyway, and this theme seemed to run though the town. It did how ever serve us up a fantastic meal, cheap to boot, and we returned for another meal in the evening with all of the wedding guests at the villa.

The wedding I thought was one of the best I have ever been too. The ceremony was simple and Italian, fairly formal and not religious. The setting in the town hall was a fantastic old room with massive murals on the walls and ceilings. The champagne flowed afterwards in a small, but quaint courtyard after which we all returned to the villa by bus.

The reception was held in the large banqueting hall and one of the things I really liked, which I have to say, I have never seen at a British wedding, was that most of the guests were active in the celebrations after the ceremony. Each of the separate groups had prepared something, mostly renditions of songs or videos projected on the walls, but we also had some other nice ideas, including:

  • Three artists’ canvases, on to which the guests could paint anything they liked on, and
  • Heart shaped balloons filled with helium, with small sparklers attached which each guest wrote a small note and attached it to the balloon before letting it fly off into the night sky, and
  • A cracking bottle of aged local wine, which was sealed along with the guests’ written wishes, in an attractive wooden box, not to be opened for five years.

The group of friends which had been together in school with Julia, including Kerstin who was Matron-of-Honour, put together the balloons and the painting, plus a rendition of “Johnny be Good” with the word changed to describe the getting to together of the couple, all put to the excellent and humorous animation by Max, one of the school friends. We also sang a traditional German song together and which both I joined in with!

The meal was spread over many courses, including anti-pasti, two pasta dishes, and three meat dishes. Each of the performances took place in between each course. It meant that everyone was very involved, rather than the usual “stuff your face, get plastered and dance like your Dad”, that us Brits seem to do. Lots of ideas to get me thinking for my brother’s wedding next year!

We spent our final day in glorious sunshine and unfortunately had to fly back on the Sunday evening as Kerstin needed to teach on Monday morning. We had some hiccups getting to the airport on time, notably our bus breaking down, but we made it and finally arrived home early (3am) on the Monday. Bless Kerstin for having to go to work. I on the other hand, stayed in bed!

Next weekend I go to Austria, snowboarding. Tuesday is a bank holiday, actually it is the German equivalent of “Dia de los Muertos”, or Day of The Dead, where people remember loved ones who have passed away. Many people also have the Monday off too, and I am travelling to the Austrian Tyrol with the boyfriend of one of Kerstin’s friends, Anna. Jens and I will travel by car, although I will not drive, and this will be the first snowboarding I have done in well over a year. It will hopefully be the first of many times, since I now don’t live that far from the mountains!

My Travel Review of Berlin

Well, in short we have been pretty busy over the last two weeks. After returning from our weekend in Bremen, we jumped in the car and drove to Den Haag (The Hague), in Holland to visit one of Kerstin’s university friends, Caro, who is working there on a placement in one of the EU ministries. The place surprised us and we enjoyed it, finding it modern and pleasant. It is set right on the coast and nearby has some nice long beaches, which at this time suit a good wrapped up walk along the beach. We missed out on the nightlife, being quite tired after the weekend, but from what we heard, Den Haag has a great deal to offer. It is also not Amsterdam, so you get to see a bit more of what “real” Holland is like! We had a nice time with Caro, who was kind enough to put us both up for the two nights and we vastly enjoyed chilling out drinking beers, playing cards and hanging out.

After returning from Holland we had a weekend here and then went on our scheduled trip to Berlin. Courtesy of Kerstin’s brother we had two nights in a suite staying in the Marriott on prestigious Potsdamer Platz. Our other two nights were to be spent in a hostel “roughing it”!

We went to Berlin by train. The drive, though direct, is a long 6 or 7 hours from Dortmund, and after driving back and fore to Holland, I didn’t fancy it. We struggled to find cheap train tickets to start with, but lucked out with 1st class tickets at bargain prices (cheaper than the standard priced tickets) and with a journey time of 3 hours and 15 minutes it seemed to be the best way to get there, since flights seem to have become exorbitant recently to go anywhere! The journey there was a pleasure and we travelled at an average 250kph (155mph – get that British Rail!) and we arrived sooner than we had expected into the famous Zoo station in the centre of Berlin.

We made our way to our hostel called “The Circus“, which is one of two by the same name. Ours was the smaller one on Rosa-Luxemburg-Strasse and it was a really good hostel. It was quite quiet and had a mix of young interrailing types and some older budget travellers, which I guess we are ourselves! The place was very clean, although a bit of a maze, the staff were very helpful and if anything could be said to be annoying, it was the showers, since you have to keep pressing the button to keep the water flowing. Very environmentally friendly though – thumbs up!

Our first afternoon and evening was spent wandering around Prenzlauer Berg, the place to be for the more alternative back when the wall had just come down. It was part of what was then the Soviet sector, and then the former DDR, and many of the buildings retain that crumbling, failing, unattended look that summed up social communism under the former East German regime. More recently become the place to live, and is the more trendy and cool part of Berlin. Great bars, cheap good food, fantastic one off clothing shops, no big brands and cool clubs all permeate through this area, and must be visited!

For the next day, we had planned to do a walking tour of Berlin, and we planned to go with Brewers Walking Tours since they offered an afternoon tour which takes about 4 hours. Early in the morning I was sitting in the reception of the hostel and the guy who’s namesake is “Brewer’s Walking Tours”, the one and only Terry Brewer, walked in to pick up people for the all day tour. Twigging that it was Terry Brewer, someone I had heard was quite an institution in Berlin and almost one of the landmarks himself, I enquired about the afternoon tour. To cut a long story short, we ended up taking the all day tour and rushed to catch up the group outside the Jewish Synagogue. If you are doubting which tour to take, I’ll be plain and simple – take the all day tour with Terry Brewer! It is brilliant and you will not see everything in 4 hours! You can walk for 8 hours easy, you get to stop for food, and the pace is leisurely. We had a fantastic time and I cannot recommend it enough!

Terry takes the all day tour himself, and is extremely knowledgeable about the city, after being posted to Berlin during the cold war, where he promptly started to show friends and embassy staff around when they came to visit. You will be amused at how everyone in the street seems to know him, his knowledge of geography is awesome and how he is greatly entertaining and thoroughly British to the core. The presence of Kerstin, a native German, I think was enough to calm down his jokes about the Germans, but they were still quite apparent!

Berlin is truly a fascinating city. The fact that it was once a divided city is visible but much of that is starting to disappear under the weight of a dynamic and changing population. It has history popping out of every nook and cranny of its ancient foundations. From the Prussians, to the Third Reich, to the Cold War, Berlin has it all, and you feel the history in everything you see. You also feel the pain the city has gone through. Many of the buildings, especially in the former DDR are still war damaged, unfixed from 1945, when Berlin fell to the Russians, and the sight of shrapnel and bullet marked walls is quite evident in the older parts of the city.

Our next day was a big move into the Marriott and we had been looking forward to it, since we had a whole suite to ourselves. Kerstin’s elder brother, Jan, had gifted Kerstin with the stay last year, and we had been planning our trip for quite a while. The Marriott sits on Potsdammer Platz, in an area that is filed with high rise hostels and office blocks in the centre of Berlin, which ten years ago, did not exist. After the wall came down, the area where Potsdammer Platz is now had been the wall and the various barbed wire fences and minefields, but then once the wall fell, the cities architects found something quite unique. They found a large amount of prime real estate, in the centre of a major capital city, which they could plan and build on to their hearts’ content! And that they did. Potsdamer Platz is impressive, there is no doubt about that, but it is dry, and generally characterless. The hotel was fantastic and we lorded it up in the Executive Lounge, took full advantage of the pool and the sauna too. Be prepared though, as us British find it a bit weird when people walk into a sauna starkers, but in Germany, as with most other European nations, nudity in the sauna is as normal as Brits drinking pints of beer and taking the piss out of “the bloody French”!

We went shopping on the penultimate day, and I bought some new trainers (Adidas Chile 62) to those of you with trainer fetishes, and wondered around parts of the city we had skipped by on Terry’s Walking Tour, but wanted to see again. We sat out for quite a while and enjoyed the sun in Alexander Platz and then went back to the hotel before going out for a few drinks at one of Berlin’s many bars. We didn’t stay too late, and went back to the hotel knackered!

The last day was spent in Friedrichshain, the new place to be seen. All the alternative people that started off in Prenzlauer Berg, started complaining that the “trendies” had moved in and had started to do things like re-render the walls of the houses and put central heating in, so they skipped east and went to Friedrichshain. We spent the Sunday morning wondering around the flea market there and enjoyed seeing the various people wondering around there too. A lot of people look like traveller and squat types, most seemed to be not from Berlin, but then many people aren’t who live in Berlin. Mongrel dogs were aplenty and dope could be smelt wafting in the brisk Sunday morning autumn air.

We stayed as long as we could, before we took the U-Bahn back to the hotel and onto the Zoo, making the train with minutes to spare. We got some funny looks from the posher first class travellers, since I looked like I had just been to a squat party (hoody, unshaven, etc.), but jabbering on in English just seems to get me that look of “oh, he’s just British, scruffy yes, but just eccentric like all the Brits”, which is often how many Germans seem to see me!

Berlin retains an alternative energy compared to many cities I think. It has an air of rebellion, of anti-normality. It seems to pride itself on a people who are not followers, but individual and down to earth. The people we met were friendly and helpful and did not seem to have that snobbish attitude many Londoners seem to have. We loved it and look forward to going back. Many of the museums and galleries we missed and they all looked good. This visit was really just a taster I think!

Photos of Holland and Berlin are now on the site too and be found in my online Photo Album . For information about Berlin, I highly recommend WikiTravel.

Extracting links from a screen scrape in ASP.NET (C#)

Quite often you have the need to extract parts of a web page you have “scraped” from somewhere else. I won’t go into the actual process of screen scraping, since this is covered in detail on the web, but will show you how to extract the links from the scraped page.

The function “this.GetScreenScrapeHTML()” is not included in this example and is the part you’ll need to write yourself. Take a look into System.Web.HttpRequest for more information.

The MatchCollection holds all of the successful matches, which you can then ennumerate. By using named groups, you can access each by name.

This example does not take into account situations where the link is not text, but an image instead. If this is the case, you should use another regular expression to extract the “alt” text from the image (if available). That example I’ll dig out another time if anyone is interested!

Problems with SQL Reporting Services and MSDN Forms Authentication sample

Microsoft offer a sample application to alter SQL Reporting Services from Windows Authentication to Forms Authentication. The sample is not bad, but essentially a bit of a hack. We have had several problems installing it, which I thought I would document. Other developers seem to be having similar problems.

The majority of organisations will probably desire to you SRS in a manner outside the basic install. This usually means that you need a custom interface to the reports, which replaces the standard Report Manager.

Samples

Microsoft offers two samples which are useful to a point. They are as follows:

Other samples and useful Microsoft information can be found here:

Examples externally from Microsoft which I found useful can be found here:

Finding Good Examples

However, even with this wealth of information, it is still pretty difficult to find good examples of what most of us want. The example Forms Authentication in Reporting Services is useful, but I think seriously flawed. It tries to address a problem, that is actually inherent in Reporting Services 2000, which is that is relies on Windows Authentication and expects most users to be happy with URL access to reports.

URL access to reports is a security risk. You can’t pass hidden parameters to it, as all you need to do to compromise the integrity of the system is to right click -> Properties -> URL. Obvious to most people will be the parameters slung off the end. UserID=x, can pretty easily be changed.

This leaves you with the web service, which in my opinion should have been the only way to access SQL Reporting Services. With this focus, Microsoft would have built a much superior product. Focusing on Windows Authentication ties the product in with their server business, and essentially becomes a nightmare for anyone to administrate. We as an organisation don’t want to maintain a multitude of domain accounts so that people can access reports. We don’t have the time, or inclination to do so. We already have a application which follows the fundamental principles of Microsoft tiered development and a security and user model that fits with that using Forms Authentication. We want to tie them together. If you are reading this, I’m guessing you do too!

So what is the solution? We think that for the moment we will put up with the example Microsoft has put together and use the custom security extension within SQL Reporting Services itself. It isn’t really exactly what we want, but we can’t see a way around it.

Key Problems with the MSDN Custom Security Sample

We had several problems installing this sample. They are as follows:

  • The documentation for config file changes is disjointed. It is easy to get lost switching back and fore between the ReportServer and ReportManager directories. It would have been better to have just go through all the changes in one section, and then focus on the other. We missed out one of the files (you’ll get a nicely presented Report server is not running error in ReportManager), due to this documentation misdemeanour.
  • Forget localhost! For development, localhost is something that an ASP.NET programmer seems to be attached to at the hip. For the web service you need to remove it from your consciousness. If you are having the problem where everything seems to work with the Report Manager, you are able to see the new web form login page, and register a user, but you just can’t seem to login, as it bounces you back to the login every time? When you put in an invalid user it works as you expect? When you enter the wrong password it tells you so? Change localhost to your_machine_name, and hey presto. Took me a long time following the cookie in debug to figure out that little nasty!

  • The Standard Edition of SQL Reporting Services will not support “Security extensions, including support for custom or forms-based authentication”, hence this sample will NOT WORK! For more information check out the various Editions of Reporting Services.
  • Verify your config files have been changes correctly. It is very easy to get lost or miss one out.

  • If you change the name of the DLL from Microsoft.Samples…., then make sure you make the appropriate changes across all the config requirements.

Where to go from here

We now have the sample working on the Development Edition, but since Standard Edition doesn’t work a decision needs to be made about continuing on. To work with the web service is fairly easy, and we are able to retrieve the list of reports, gain report parameters and open reports. However, this still is outside what we really need, which is a way to embed these reports into a viewer style, but without the URL access.

So how do you get the content from the web service .Render into a separate frame. You can’t just dump it into the same page, since a PDF file won’t render like this unless you clear the buffer, and a HTML page comes back complete with HTML, HEAD and BODY tags. The HTML standard goes right out of the window on that one.

I think the solution might be to encrypt the URL access, or use some kind of proxy system, that does a System.Web.HttpRequest to the report you wanted, without revealing the URL parameters, which essentially most people wouldn’t really want to display obviously to their users.

Ideas are welcome.