Blog ala Vidar

SQL, AppFrame and other cool technologies

Category Archives: Published

Replication in SQL Server

Tuesday we had pizza & learning in Ølen. I held the session, and the topic was replication in SQL Server. We even had guests from a company called Quantum Solutions. Some of you might know Roar or Erik from before.
Replication is a BIG topic. We used about three hours on it, but we could have used three years on it. It’s HUGE! In addition to replication, I added Database Snapshots, Database Mirroring and Log Shipping, because I feel this is very relevant in Omega.

Database Snapshots
This is a “point in time” snapshot of a database. The purpose of this is to have a read only database to run reports, or for quick backup. Say, for instance you are going to make significant changed in a table. Delete 100000 rows or similar. For insurance you take a backup of your database before you run the query. If something fails, you have to restore the database. If we’re talking about AppFrameR2 (Omegas main database), backup plus restore takes about 1.5 hours. For 1 delete statement?! Instead of this, you could create a snapshot before you run the query, and if the query fails, you can just revert to the snapshot. When you make changes to a database with a snapshot attached, the changes will only be done on the main database. The original pages of the changes will be copied to the snapshot. This is why it’s called a point in time snapshot. If you’re going to revert, you can only have ONE snapshot. If not, you can have several.

Database Mirroring
Database mirroring is exactly what the name says: You have one database with a mirror database. The mirror database is not accessible before you change the roles of the databases. There are three different roles in database mirroring; principal, mirror and witness. Principal is the main database, where all users are connected and changes are done. Mirror is a “slave” database which gets transactions from the principal. The purpose of this is failover. If you have a witness server, you can change the roles. The principal can then be mirror, and vice versa. You can then take down the old principal (now mirror), run upgrades, add hardware etc, without the database to actually go down. When the database is up and running again, it will be synchronized with the running principal (old mirror), and when that’s done, the old mirror will be set as mirror again, and the old principal will be set to principal again. To be able to read from a mirror, you have to make a snapshot of it. It is not possible to access a mirror. Not even in management studio, right-clicking and properties.
The witness server is used for automatically failover. If the principal is not accessible (hardware crash or similar), witness will set mirror as principal till principal is up and running again. To use database mirroring you must have two standard (or enterprise) editions of SQL Server. Developer does not work. The witness may run as express edition though. For communication between the servers, database mirroring uses endpoints.
There are three modes in database mirroring: High Availability, High Performance and High Protection.

  • High Availability commits synchronous transactions. If it commits on the mirror, it commits on the principal AFTER it commits on the mirror. If it rolls back on the mirror, it doesn’t run the transaction on the principal. This of course takes a bit more time than running a transaction on only one database.
  • High Performance does the opposite. It runs the transaction on the principal, and sends it asynchronous to the mirror if it commits on the principal.
  • High Protection is the same as High Availability except that it does not use a witness server. For failover, you must do it manually.

Log Shipping
Log shipping is sort of like database mirroring, except it’s not running every transaction over to the mirror. In log shipping the roles are called primary, secondary and monitor. The primary server takes a backup of the transaction log, copies it to a network share. Then the secondary (you can have multiple secondary servers) copies it from the network share to a local folder, and then restores the transaction log. The monitor’s responsibility is to keep track of the process and raise alerts when the process fails.

Replication
Now over to what Microsoft calls replication. There are three different types of roles; Publisher, Distributor and Subscriber. The publisher is in most cases the only place you can do data modifications. This is the primary server. The distributor is a server which takes care of distributing changes to the subscribers, and a subscriber is the database that receives copies from the publisher (via the distributor). In some cases the subscriber is read-only. The reason for this is that many companies have the need of several read-only databases for reporting etc.
There are two types of subscription types. Push and pull. Push should be used when there’s a stable and permanent connection. The distributor copies data TO the subscriber. Pull subscription should be used when there’s not a stable connection. The subscriber then copies the data FROM the distributor.

There are four types of replication, Snapshot, Transactional, Peer-to-Peer and Merge.

  • Snapshot replication copies datasets and does not use the transaction log. This should only be used on small amounts and static data.
  • Transactional replication uses the transaction log and sends “bulks” of the transaction log.
  • Peer-to-Peer is the same as transactional except it all servers are publishers, distributors AND subscribers. This means that if you have 4 servers, all of these will send transactions to the other three servers.
  • Merge replication is like snapshot replication, except that all servers allows modifications. All servers are then both publisher and subscriber.

48 hours with SQL 2008

I was really looking forward to test this new CTP, because all its new features, including intellisence. I’ve wasted MANY hours on getting this to work! I was clever enough to remove SQL 2005 while I downloaded 2008. Why? Well, because the others CTPs have been stable, and I thought since November CTP has SO many new cool things, I don’t need 2005. Turns out, this CTP doesn’t work as well as expected.

First of all, it did have an upgrade-functionality (DOOOOH!), so uninstalling 2005 wasn’t necessary. Second of all, the uninstall-thing in 2005 didn’t work that well. Now my computer says I don’t have any 2005 installed, but wait… Why does management studio 2005 work? And by the way, why is the 2005 services still running? I’m not able to remove them, because “Add/remove programs” says they do not exist. But, I’ve learned to not trust “Add/remove programs”. The service is running, and HEY! I can query my local databases! @@version says 9, so no 2008. When I tried installing 2008 everything failed, except management studio and profiler, so I’ve got them in 2008 “mode”. 2008 management studio does not support 2000 quite well, but I see that as a good thing. I know some of you may get pissed off by my comment about this, but talking about 2000 is almost like talking about Windows 95. Yeah, we’ve all used it but we want to start using technology that’s been built in THIS century!

Anyhow, I remember the syntax of the most commonly used system SPs in 2000, so I’m at least able to write the queries for what I have to do in 2000. When I finally got management studio installed (after looking through logs at about 1MB), I started playing with the new features in this application. Intellisence is still under development, I hope, because this does not perform properly, at least not when I’m connected to other than local databases. Local database performs ok.

One other thing I’ve noticed is auto indenting. IN YOUR FACE! I’m really tired of reading through ugly code, so now you’re finally forced to at least indent 🙂 Maybe I shouldn’t mention that it’s possible to turn off both auto indenting and intellisence? Well, now you know. I think I’m going to turn these off, because I like those functions just as much as having a guy hanging over my shoulder and commenting my spelling-errors all the time. I know I make mistakes, but I am capable to correct them myself, thank you!

And one third thing is the syntax highlighting. It really annoys me that they have changed colours on various things. For example @@VERSION is now blue, SUSER_SNAME() is black. In 2005, these were pink or similar (I don’t know what all the colours are called). If this is done with purpose, I’ll send a mail to Microsoft telling them how much I like pink! Syntax highlighting make things much easier, I think. Especially when reading non-indented code.

I was really looking forward to diving into the filestream type. Maybe this can replace our filestore-system in a future AppFrameR3? Who knows!
Speaking of the devil. We watched a TechEd session about new features in 2008 today. No news, except a demo of the geometric and geographical data types with integration to Virtual Earth.

WEEEEEEEEEEEEEEEEEEEEEEEEEEEEE

SQL Server 2008, November CTP is finally out! Downloading as we speak (read: while I’m writing)
Visual Studio 2008 is also out! 😀

Christmas? Not yet

I’m now back in Ølen, or as I like to see it; back to reality. I could have been at TechEd for ages, “but but, it’s not only only” as Leif like to say. It’s direct translated from Norwegian. You English-speaking-dudes probably see the humour with that 😛 Anyhow, now we’ve started with TechEd “sessions” in Ølen. Pretty interesting to gather Omega-nerds together (with pizza) and watch Mr. Bob speak like he’s done a thousand times before.

Next Pizza & Learning in Ølen will be about SQL Replication, so I’ve just started to prepare for it. I’ll make an input here when I’m done. SQL Replication is something I think our customers will ask for. In the past we’ve talked them out of it, because it was too much hassle, but from what I understand of both Microsoft and users it’s now MUCH easier. This will also help me on my way to take a SQL 2005 exam. I’ve taken one for 2000, but that’s old shit now. When I’ve passed 2005 (hopefully on first attempt), I’ll bet my ass it doesn’t take more than two months before 2008 exams is out.

The last week I’ve worked a lot with the technology servers. We’ve split up Omegas server-park. Now JanCB (and the rest of IT/Drift) is responsible for Omega’s production servers (teamdoc, mail etc), and I’m responsible for all test and development servers. It’s fun to vary your day with various things. CR1, CR2, web-support (even though I’ve never developed ANY web-stuff for Omega), server-issues etc.

This Sunday we installed a new server-rack for the test-server-room. SEXY! I need one myself at home! And if I ever get a wife, I’ll teach her how to clean it 🙂 I know what you’re thinking. Poor wife! As Stephen Forte (one of the speakers at TechEd) said, his wife took too much time, so instead he’s got a laptop with SQL Server installed in his bed. Sounds familiar…

I’m sorry that we can’t share the TechEd sessions with you. The streams are DRM-protected, and you need username and password to see them. I’m sure you understand that we don’t want to give our username and password to everyone. Microsoft might throw us out if we’re too many logged in. When I’m in Stavanger next time if anyone is interested, I’ll put it on the big screen. I’m always open for a session! Also, when (if) I’m going to Lithuania soon, I’ll put it on the big screen there too!

I do recommend you setting up Pizza & Learning where it’s possible. It’s very interesting. I know it’s not just me who think that! If you need help with subjects, you should stop thinking about pizza and start thinking about work 🙂 In Ølen we’ve had the following so far:
New features in SQL 2005, AppFrame Grid Control, Infrastructure in Omega, SQL Tuning (2 sessions), Active Directory and Exchange and this time we’ll have SQL Replication. I’m going to vote for PIMS-modules next time! If you need info about one (or more) of these, do not hesitate to contact me!

PS!!! It really annoys me that it’s not possible to have subjects inside subjects in TeamDoc. Hope this will be fixed in the near future.

The End

Today’s the last day of TechEd Developers. I’ve enjoyed it VERY much. Actually, I would have loved to be here next week to, since TechEd ITPro’s starting on Monday. Started the day with lunch at CCIB and then walking around the exhibition hall. I love talking to other geeks, learning about the things they do etc. Finally got a hold of Carl Perry to ask him about the setting password in the connection-string problem we’ve been having. He wasn’t sure about ODBC and OLE DB, but he showed me how to do it with SqlClient (for web). He wasn’t very familiar with SMS. I had to show him how to make logins, user mappings etc, but he knew what he was talking about when it came to connection APIs. Of course, he should, since he’s the manager for connection APIs :P. After half an hour in VS we figured how to do it; The SqlConnection object has a method called ChangePassword. Almost too easy!

I managed to have time for a couple of HOLs today; DAT10, 11, 13, 16 and 82. A bit of replication, query tuning (nothing new), and a bit of info about using SQL Server as a web service.
So, after walking around the hall and fumbling with the computer, I went to the last session of the week.

INF310, How We Built the TechEd Developers Infrastructure, with Andrew Cheeseman
He’s a pretty cool guy. I was laughing almost the whole session! Did you know that they set up 1300 computers in only 3 days?! And that’s only with one image. The rest is done by group policies. AD is pretty amazing. They also had over 1000 wireless devices connected. Quote: “If someone’s telling you 1000 users on wireless work fine, they’re talking with their ass. They’ve got NO clue of what they’re talking about”. Cheeseman’s own words. Actually, most of their servers are located in London on a 1Gbps internet connection. They only bring the gateways and AD-servers around. It was fun listening to him, and I got a whole lot of ideas how to make Omegas version of TechEd. Maybe, if I try hard enough, this just might happen 😀

Rating: 4

I almost forgot to mention. I got a couple of free T-shirts today too!
After leaving the event Jan Leon and I went to a shopping mall. I’m SO tired of walking! He got some clothes for his daughter, and I got myself a Barcelona jersey! Number 19, Messi.

Tomorrow I’m leaving for Oslo, to watch the Norwegian cup finals, so I’m not home before Sunday evening/Monday night. Looking forward to sleeping in my own bed again! Thanks for reading!

7. Nov; Match-day

I’m never going to get used to Øystein waking me up. We had some breakfast before we headed over to CCIB. First session started at 10:45:
DAT307, Best Practices for Optimizing Procedural Code and Queries in SQL Server 2005 and Beyond with Bob Beauchemin.

This session was not about query-tuning. It was more about understanding the execution plan, and what other things that’s going on when you press F5. Pretty interesting!
Rating: 3

 

Arriving late means early lunch. Pasta, sausages and potatoes are actually an ok mix! In the lunch we decided to go to something which seemed fancy. Not work related at all, but seemed very interesting after all:
MED03-IS, Microsoft Robotics Studio Demonstrations with Oliver Bloch
Admit it! It sounds really fun! Well, I’ll tell you. It was fun, but not the demonstration in itself. First of all, he is French, so his accent is funny. Second of all, I’m pretty sure he said fuck at least 5 times. He probably said something else, but I couldn’t help myself. I started giggling like a little girl. After about 10 minutes, I couldn’t stand it anymore. He were just repeating himself, and showing a whole lot of powerpoint slides with TEXT. No code, no screenshots, no demos, no nothing. BORING!
Rating: 9

 

Still giggling, I went down to the exhibition hall, again and walked around a couple of minutes before Øystein and Jan Leon joined me. They couldn’t stand the French dude anymore! We bought 16 books at a Microsoft-stand. 40% discount on all books from Microsoft Press, and 30% on everything else! Total sum: 442€. That’s 28€ pr book. In Norway, they cost about 60-75€!

 

After leaving our bags at the hotel, we went shopping. I can, of course, not remember the name of the mall, but it was big! Went to the top floor to get some food, and got the worst service EVER! First the waiters ”didn’t” see us, then when we got a menu and tried ordering, the waiter took the menu from us and just said ”NO FOOD!” and left. We couldn’t get an explanation from them, so we left in anger. Beate (one of Ronny’s little helpers) sais she gets good service wherever she goes. Why do three guys, that look like Rangers supporters, not get good service?! I can’t figure it out… Anyhow, found a restaurant after HOURS of walking, and then went back to the hotel. Next: FOOTBALL!

 

Today is Champions League. For those who haven’t heard of this (USA-dudes), football is when you only use your feet to kick the ball around, not arms and violent tackles! We followed some Rangers-supporters to the Metro. Scottish people know how to drink, and knows how to entertain themselves! We had fun watching them sing all the way to Camp Nou, and learning how to act as a (brain-dead) Rangers-supporter. I’ve never been to a game this big! 90.000 supporters! That’s more than Haugesund’s poor 4000. I got goose bumps! This is NOT going to be my last match! Anyways, the game ended Barcelona 2, Glasgow Rangers 0. Goals by Henry and Messi.

 

On our way home, we dropped in at Hard Rock Cafe, where the Norwegian participants of TechEd had a gathering. Free beer! We showed up at about 23:30, and they’d been drinking since 19:00. You think they were drunk. YEPP! We had a couple of beers, tried talking to a couple of people, but no luck. One of my conversations were
Vidar: ”What do you do?”
Norwegian-dude 1: ”I’m developing”
Vidar: ”Ok. What are you developing?”
ND1: ”Systems”
Vidar: ”Oooook. See you!”
I’m not a fan of talking to people that are drunk. At least not when I’m sober!

 

Tomorrow, there’ll be more interesting sessions. I’ve figured out I’m not going to go to any more non-interesting sessions, since we’re getting DVDs of all sessions in (snail)mail in a couple of weeks.
Quick overview of free things I’ve got from the exhibition hall: Pens (even with lights), stress balls, installation CDs/DVDs, t-shirts, advertisements, caps and even a deck of cards!

Tired!

Today I woke up by myself at 10am, REALLY tired. After some breakfast we were on our way to get lunch at CCIB. I’ve only been to two sessions today.

DAT313, SQL Server 2005 Security and Innovations in SQL Server 2008 Security, with Sethu Kalavakur.
In this session, he talked much, but had a couple of demos. Including encryption of whole databases and auditing. I think we can use auditing when it comes to SOX, because you can not only log who’s inserting, updating and deleting from tables, you can also log who’s selecting! His language was very understandable, and he knew what he was talking about.
Rating: 4

DAT01-IS, Tell Us Where it Hurts! SQL Server Product Feedback Discussion, with Micael Rys, Steve Lasker, Carl Perry, Cristian Petsculescu, Sethu Kalavakur and my hero Bob Beauchemin.
This was actually a pretty fun (interactive) session. No demos, only Q&A. All of the speakers are employees of Microsoft, except Bob. But, he seemed to be the one with most knowledge. He answered questions about EVERYTHING from Reporting Services to hard-core memory handling. He is without doubt my hero! I think I’m going to start “Bobs fanclub”. Anyhow, I got to ask a question I’ve been dying to ask for a while: “When is row level security coming inside SQL Server”. Mr. Kalavakur told me they actually had it in the first CTP of SQL 2005, but it got too complex to finish till the end release of 2005, so they removed it. But he ensured me it was number two on his list of things to come in the next release of SQL Server AFTER 2008. He added that this could easily be done by using views, just like we do, so we’re probably doing it “by the book” ? This was a very informative session, because we got to know how the development process worked in Microsoft, very detailed answers on difficult questions etc. I was VERY pleased with this session!
Rating: 2

Before these sessions I was walking around the exhibition hall, again. Tried to ask, not less than 4 people, about an issue we’re having in SQL 2005. This is the new “user must change password on next login” feature. The problem is that you will not be able to log in if you have to change the password. We have to send the old, and the new password in the connection-string, because since we can’t connect, we can’t execute a stored procedure to change the password. I found one solution, I thought, but this didn’t work. So, anyway… I asked two people at the SQL stand with green “ask the expert” t-shirts. They had no idea how to solve this. They pointed me to a guy at the office-stand. By the way, never tell anyone from Microsoft, or any other company, you’re using Access. They do not take you seriously. The office-dude didn’t know either, so I went to a ODBC-stand. You think he knew what he was talking about? Not at all. He hadn’t even heard of SQL Server Management Studio! After a while the people at the “Microsoft Unified Communication” (the once that deal with all communication APIs) showed up so I asked one of them. He knew the answer, but didn’t remember it, so I got his email.

Today’s free material: Windows Server 2008 e-book (on DVD), security development book, a couple of SQL Server magazines, yo-yo, caps, and last but not least one T-shirt (for all MCPs) which pretty much sums me up! On the front it says “Geek”, and on the back it says:
geek (‘gek), noun.
1. Obsessive Computer User: somebody who enjoys or takes pride in using computers or other technology, often to what others consider an excessive degree.
2. Someone with greater than normal computer skills.

After getting back to the hotel, we visited a tapas-place, again. Great food, great beer, great service and beautiful girls!

Also visit

Search for more information about each session:

http://www.mseventseurope.com/OnlinePub/Public/sessions.aspx?EventId=HbLEvtKcPE4%3d

(yeah, I know.. It sucks big-time!)

 

Stephen (Forte)’s blog

http://www.stephenforte.net/owdasblog/

 

Bob Beauchemin’s blog:

http://www.sqlskills.com/blogs/bobb/

6. Nov; The Battle Against Time

Øystein, which has a 3 months old baby at home is used to get up EARLY. I hoped he would sleep ABIT longer, but that wasn’t going to happen!
At 07:44 my phone called, and woke me up. We agreed on getting to CCIB before 9 to get to the first session; “The Next Release of Microsoft SQL Server: Overview of SQL Server 2008”.
Met a Belgish guy from Microsoft at the hotel and he told us about a much quicker way to get to the Metro. Of course, this way we had to change lanes, and of course walking around the corridores
between the lanes for HOURS. I guess you’d probably found out I’m not a fan of walking by now… Anyhow, swetty and HOT we arrived at CCIB later than expected; 09:10, so we missed the first session 😥
We sat down at the HOL, and took a couple of exercises there. DAT02, 04 and 05, to be precise. I even managed to fuck up the virtual machine, without purpose, and learned once again that not all
spanish can make themselves understandable. Anyhow, after a “fresh air”-sessions (Lithuanian guys know what I’m talking about), we (me and Nils Arne) got to the second session:
DAT309, Best Practices for Optimizing SQLCLR in SQL Server 2005 and Beyond, with Bob Beauchemin
He’s still a great speaker! I’m not going to bore you with 15 A4 pages of summart, so here’s a short summary of the session; If there exists a function for it in T-SQL do it in T-SQL. If not, do it in CLR.
Of course, you can bend this rule abit, but let’s not go into details. For those who ARE interested in details, contact me on MSN next week!
Rating: 3

 

After lunch, and a quick walk in the exhibition hall, we ended up in room 112:
DAT312, Programming SQL Server 2008, with Carl Perry
Not the best speaker, but he made at least me understand a couple of the new features. Filestreams, new date/time types and table valued parameters.
I really believed tvp’s was available in 2005. Probably mixing 5 and 8!
Rating: 5

 

I desided to skip the next session (DAT306) since this was about Compact version of SQL Server, in advantage for the exhibition hall. I really love walking around talking geek-stuff.
I bet I could do this ALL week, but I also want to go to some sessions. Luxus problems! I also had time for a couple of HOL, specifically DAT09 and 18 till the others showed up after a WPF session.
I think Øystein is very just as impressed by WPF as I’m with SQL Server!

 

Next session was in room 117:
DAT315, T-SQL Querying: Tips and Techniques, with Stephen Forte
This must be the most energetic speaker, EVAH. Not only was he speaking about something very interesting for me, he even got Sidsel (one of Ronny’s little helpers) who is NOT interested in computers, interested in SQL Server!
THAT’S impressive! As a wanna-be-some-day-speaker-for-TechEd I’m not only watching the slides, I’m also looking for ways to interact with the people listening, and I think he were VERY good at this!
Enough about Stephen (yeah, we’re on first-names, or at least I am!). He introduced me to a couple of new things I already knew abit about, but had not tried. Common Table Expressions which is almost the same as derived tables,
XML with XQuery and Pivot. I have to locate him this week and have a chat! Also got a question prepared for him 🙂 What’s the difference between CTE and derived tables? Anyone?

Rating: 1.5

 

After almost 10 hours, we found out it was best to get back to the hotel. Tried finding an ok restaurant, which I thought should be pretty easy. Turns out, it’s very difficult, unless you’re near Hard Rock Cafe. Everything else looks “shabby”.
We eventually found a place, which very very cheap and then headed back to the hotel to debriefe (read: have a beer before bed).

5. Nov; The beginning

My day started at 8am, when Øystein called; “Nå gidde eg ikkje å gå ront aleina lenger. STÅ OPP!” (English: I don’t wanna walk around alone anymore. GET UP!)

We went down to have breakfast, egg and bacon, and then waited till 9 for the hotel-pool to open. We had packed our bikinies (shorts, for those of you who don’t like the sight of me in bikini), and were READY to take a swim, but when we got to the pool we got disappointed!

It wasn’t big enough for a walrus like me! But, we moved on. Got a shower, woke up Jan Leon and headed for CCIB. Now we knew which metro-station to get to, and where to get off!

We started with lunch (right after breakfast you might ask? Well.. To get as big and strong as me, you have to eat like a horse!) at 11:30. After lunch we had a couple of hours to kill, so we got to the HOL (Self-Paced Hands-on Labs), where they have set up computers in areas for learning different things. The SQL-area was full, so we sat down at powershell. Also VERY interesting, since I’m used to Linux (and console) before starting in Omega. Finally you can start scripting almost like in bash! I’ve missed this. The great thing about HOL is that the computers are set up in a way you can’t do anything else than you’re supposed to (working with powershell), and you’ve got a bunch of experts in all areas!

 

After about an hour in HOL, we desided to find the auditorium where the keynote speak with CO Vice President of the Developer devision in Microsoft; Mr. Somasegar, were starting at 14:00. He’s probably from India or something. We had some problems with understanding his accent, but understood the point of “welcome to TechEd 2007”. The auditorium was filled with geeks like ourself. I’d guess about 500-1000 geeks! That’s more than we’ve got in Ølen!

 

After the keynote speech, a couple of smokes and a cup of coffee, we got to the first session:

DAT308, Best Practices for Optimizing Service-Based Code in SQL Server 2005 and Beyond, with Bob Beauchemin (from SQLSkills).

Great speaker! I’d love to have a couple of words with him within this week! He were talking about the Service Broker “tool” in SQL Server, which is like a queue. You can use this to run queries asyncronous. FINALLY WE CAN GET RID OF DO ADMIN JOBS!

Rating: 2.5 (1 till 10, where 1 is best, as always 😉

 

After a smoke, I got “down to earth” again and we managed to get to another session:

SEP203, Introductory Walkthrough of Windows Communication Foundation (WCF) using Visual Studio 2008, with Steve Maine

He was more of a kind of nerd. Didn’t have 100% control over presentations (when error appeared, he got silent and just tried to fix everything asap zulu, instead of starting next topic.

This was not to interesting for me, as I’m more of a database-dude, but I had at least my eyes planted on the big-screen, trying to understand everything.

Rating: 7

 

When SEP203 were finished, we went to the opening of the exhibition hall, where we (finally) got some snacks. Got to speak with a girl in MSDN, which actually had norwegian grand-parents. Her last-name was Olsen. Same as Øystein 🙂 Got some free caps and some other stuff, and then went home. We were only three at this time; me, myself and …  No. Øystein and Jan Leon. All of us thought we had sense of direction, but we were proven wrong! We walked in all directions, because each person we asked for directions pointed in different directions! After a while we found out that trying to find the way to Hard Rock Cafe was much easier than trying to find the way to the longest street in Europe! Who would have thought that?! Ended up at the hotel after a couple of hours walk, got a couple of beers and now I’m off to bed! Good night!