Monday, 1 March 2010

Craig and Charlotte's 100 things to do in Britain - #21 The London Eye

Howdy, doody! Haven't been keeping on top of these for a while but your in for a treat (well... maybe if you like big wheels!) as me and Chappers headed down to "The Hub" of Britain for the weekend aka. London.

First up on our trip was the gargantuan London Eye, and it truly is a huge beast! Besides from putting Charlotte off just from the height she also wasn't feeling too hot which probably is not the best combination. I was impressed with the wait time being only 20 minutes as the last thing we wanted to do on a cold winters night was spend 3 hours queuing!

Once on and moving you get some great views of the city which are only bettered when viewing it at night, London lights up amazingly well and is definitely a must do in the capital, if not for the ride but also for being the only place where you can really see all the main sites from one spot. Parliament, Tower of London, Tower Bridge, Westminster, Canary Wharf... You name it and you can see it.


A good 20 minutes passes and we gradually come down to ground level (to Charlottes relief). All in all what appears to be a rather lacklustre post is actually one of the best experiences I have had in London. Make sure you try it.

Rating:

Saturday, 7 November 2009

Craig and Charlotte's 100 things to do in Britain - #13 Shakespeare's Home, Stratford on Avon

Well, well, well... Stratford on Avon is a quaint little place with more mimes, street artists and musicians than you can shake a swan at. The whole area lives and breathes Shakespeare, and why not. From the variety of gift shops, boutiques and stalls you can pretty much deck your home with anything Shakespeare, but a must do is getting your mug shot in front of good old William's home complete with authentic electrical lighting...

Well some of the 'realism' has definitely been lost along the way but this shouldn't deter anybody as the vibe in the area is great. Some of the restaurants here are also little gems in themselves but those who have travelled to Stratford on Avon before will be distraught to find that the 'Teddy Bear Museum' has up and ran off to London. No fear we managed to find 'another' with human sized teddy waiting for us just outside the door which more than made up for it :D.

The highlight of this brief visit was the awesome Christmas shop opposite old Shakespeare's crib. It is decked out a mighty 365 days a year and again you can find anything with a Santa Claus on it. I'm not really a Christmas fan but its worth a delve for the laugh.

Overall Stratford on Avon does what it says on the tin, its a fun little area packed with things to see, eat and see some more. Parking and travelling were a breeze and was a great relaxing day out. Be prepared to meet the Chinese though, they love old Shakey's house.

Rating:

Monday, 17 August 2009

Craig and Charlotte's 100 things to do in Britain - #63 The Rows, Chester

A Roman-Norman-Saxon-Victorian charm of a city, closely knit shopping streets and some great architecture both historical and modern make Chester a great place to visit. We found ourselves almost lost in the hundreds and hundreds of shops ranging from high street brands to small independant's tucked away in "The Rows". You can spend hours perusing what Chester has to offer and with most things to see and do literally 10 minutes walk away we loved every minute of it. After shops, milkshakes, afternoon tea, a brass band on the promenade, some truly weird people dressed as medieval characters and the Roman amphitheatre we were plum tuckered out. Again the evening was great with a mixture of loud venues and bars for the young and hearty or the not so loud but no less enjoyable restaurants that add a touch of class. We happened upon the "Sian" a Thai restaurant on the canal which is a definite recommendation.

As an extra, the following day we spent at the absolutely huge Chester Zoo which should not be missed at all costs if your in Chester. By far the best in the UK.


The only down side would be the parking, there was very little and what we found of it seemed to be a hell of a way away from the centre. Tip of the day, park at the train station, plenty of spaces and relatively cheap but it is literally 5 minutes walk to the shops.

Rating:

Sunday, 16 August 2009

Craig and Charlotte's 100 things to do in Britain - #90 Sherwood Forest National Nature Reserve, Nottingham

First place visited on our list, the mighty Sherwood Forest, home of the heroic outlaw Robin Hood. I had high hopes for Robin and his band of Merry Men and they did not disapoint. Arriving on the 9th August 2009 we happend upon the "The Robin Hood Festival" which takes place yearly, being free apart from parking we had a brilliant time with falconry, jousting and live music aplenty as well as a lot of activities for kids including archery, face painting and jesters (which to be fair we enjoyed just as much :D). And if all that is not enough there is miles and miles and yes... more miles of walks through the scenic forest to enjoy. The day was great and the visitor centre is pretty good value for money considering that would be nothing. One tip though, turn up early as people were being turned away who came later than mid day.


Being the first place to visit on our adventure were going to set the score at 5 out of 10 and this will be used as the benchmark for future expeditions.

Rating:

Craig and Charlotte's 100 things to do in Britain


Figuring that I am in great need of fresh air, a more cultured outlook and a "life" me and my other half have put together a listing of 100 things to do in Britain. By no means are these "the best" things to do, especially since we dont know what half of them are :P but we rekon you should know where you come from (roughly) and have set upon this mini adventure. Well be posting up each place as and when we visit them with some aw(ful)esome pictures and a bit of a write up about what went on for future place goers...

It is also important to say that the following are in no particular order.
  1. Hadrian's Wall, Northumberland
  2. Natural History Museum, London
  3. Lincoln Cathedral
  4. Newcastle Race Course
  5. Climb Big Ben Clock Tower
  6. Outdoor Proms Concert, Belton House
  7. Castle Howard, Malton
  8. Windsor Castle
  9. Stonehenge
  10. Snowdonia, Wales
  11. York Minster Cathedral
  12. Roman Baths, Bath
  13. Shakespeare's Home, Stratford on Avon
  14. Iron Bridge, Shropshire
  15. Edinburgh Castle
  16. Caernarvon Castle
  17. The Royal Pavillion, Brighton
  18. British Museum, London
  19. Tate Modern, London
  20. National Gallery, London
  21. The London Eye
  22. The Victoria and Albert Museum
  23. Madam Tussauds
  24. The Tower of London
  25. National Maritime Museum
  26. Kings Cross Station
  27. Wembley Stadium
  28. The Houses of Parliament
  29. Science Museum, London
  30. Queen Mary's Rose Gardens, London
  31. Changing of the Guard, London
  32. Camden Market, London
  33. Portabello Market, London
  34. Westminster Abbey
  35. Orkney, Orkney Islands
  36. King Arthurs Castle
  37. Murder Mystery Dinner, London
  38. The playhouse Theatre, London
  39. Blackpool Tower
  40. Colchester Castle
  41. Harewood HSE
  42. Penshurst Place and Gardens
  43. York Ghost Trail
  44. York Dungeon
  45. King Arthurs Labrynth
  46. The Museum of Welsh Life
  47. Conwy Castle
  48. Athurs Seat, Edinburgh
  49. The Scottish National Gallery of Modern Art
  50. The Witchery Tour, Edinburgh
  51. Castle Campbell, Scotland
  52. Glenfiddich Distillery, Scotland
  53. John O' Groats, Scotland
  54. The Biblical Garden, Scotland
  55. Waltzing Waters, Scotland
  56. Seaforde Butterfly HSE, N Ireland
  57. The Glens of Antrim, N Ireland
  58. Tollymore Forest Park, N Ireland
  59. Tolkeins House
  60. Cotswold Wildlife Park
  61. Kew Gardens
  62. River Camto, Cambridge
  63. The Rows, Chester
  64. Lake District
  65. Longleat Safari Park
  66. Kingsgate Bay, Kent
  67. Twycross Zoo
  68. Garston Wood
  69. Blue Water Shopping Centre and Ice Rink
  70. The Norfolk and Suffolk Broads
  71. Cheddar Gorge
  72. Raby Castle, High Force Waterfall
  73. Peak Cavern
  74. Weston Supermare Beach
  75. Norwich Medieval Castle
  76. Eden Project, Cornwall
  77. Canonteign Falls, Devon
  78. Jurrasic Coast, Dorset
  79. The National Marine Aquarium, Plymouth
  80. Pensthorpe
  81. London Zoo
  82. The Town of Harrogate
  83. Cotswold Wildlife Park and Farm
  84. Winter Wonderland, Hyde Park
  85. Bath Christmas Market
  86. Wimbledon
  87. Up-Helly-AA, Shetland Isles
  88. The Great Ormes Head Copper Mine, Llandudno
  89. Aberglasney House and Gardens, Wales
  90. Sherwood Forest National Nature Reserve, Nottingham
  91. Pistyll Rhaeadr, Wales
  92. Lulworth Cove
  93. Giants Causeway, N Ireland
  94. St. Michael's Mount, Cornwall
  95. Groombridge Place Gardens
  96. The Trafford Centre
  97. River Thames
  98. Carrick-A-Rede, N Ireland
  99. Creetown Gem Rock Museum, Scotland
  100. Bond Street, London

Monday, 13 July 2009

Clean Up Your Unmanaged Objects

After working for a few days on a project which had partially been started, I hit across a gem of a piece of code to help myself clean up those nasty COM components. Yes, the dreaded COM! Due to the fact that this was the actual core of the system (having no other choice) I set about at least trying to make it tidy. Quickly I found references to objects, destruction of instances and the good old .Net Garbage Collector couldn't handle what had been written. So time for a rethink.

I was quite lucky in the fact that the COM library in question was written pretty well and most of it was named sensibly (full marks to the bloke who did the naming).

So to business. The requirements, simply to allow disposal of the object if I manually call it and/or if the so called variable is no longer in scope or referenced anywhere I want the .Net Garbage Collector to clean it up.

Step 1. The class

Due to not being able to inherit from this COM library I set about wrapping up the instances of each type in a class using Generics to pass the objects type through at runtime.

Public Class ComWrapper(Of T)

Private _value As T

Public ReadOnly Property Value() As T
Get
Return Me._value
End Get
End Property

Public Sub New(ByVal value As T)
Me._value = value
End Sub

End Class

Step 2. IDisposable

Having the base class in shape I now implemented the .Net IDisposable interface to follow the .Net IDisposable pattern, meaning any using statements would clean the object but also I could call "Dispose()" manually and simply follow the .Net way. The proper way to dispose of COM objects is to use the "Marshal" class found in the namespace "System.Runtime.InteropServices". Calling "ReleaseComObject()" will force the object to be cleaned safely.

Private _disposed As Boolean = False ' To detect redundant calls

Public Sub Dispose() Implements IDisposable.Dispose
Dispose(True)
GC.SuppressFinalize(Me)
End Sub

Protected Overridable Sub Dispose(ByVal disposing As Boolean)
If Not Me._disposed Then
If disposing Then
' TODO: free other state (managed objects) if you have any.
End If

If Me._value IsNot Nothing Then
System.Runtime.InteropServices.Marshal.ReleaseComObject(Me._value)
Me._value = Nothing
End If
End If
Me._disposed = True
End Sub

Step 3. Finalize it!

Finally :P we override the "Finalize" method making sure to implement the base finalize but also clear up the COM object. This means if the variable goes out of scope and gets flagged for the Garbage Collector to dispose of it will clean it up nicely and not leave unmanaged instances everywhere.

Protected Overrides Sub Finalize()
If Me._value IsNot Nothing Then
System.Runtime.InteropServices.Marshal.ReleaseComObject(Me._value)
Me._value = Nothing
End If
MyBase.Finalize()
End Sub

So that's it, you should have nicely managed objects now, and for those who need to be nursed hand in hand a sample below shows the full class and some examples of usage and when they will be cleaned up.

Public Class ComWrapper(Of T)
Implements IDisposable

Private _value As T
Private _disposed As Boolean = False ' To detect redundant calls

Public ReadOnly Property Value() As T
Get
Return Me._value
End Get
End Property

Public Sub New(ByVal value As T)
Me._value = value
End Sub

Public Sub Dispose() Implements IDisposable.Dispose
Dispose(True)
GC.SuppressFinalize(Me)
End Sub

Protected Overridable Sub Dispose(ByVal disposing As Boolean)
If Not Me._disposed Then
If disposing Then
' TODO: free other state (managed objects) if you have any.
End If

If Me._value IsNot Nothing Then
System.Runtime.InteropServices.Marshal.ReleaseComObject(Me._value)
Me._value = Nothing
End If
End If
Me._disposed = True
End Sub

Protected Overrides Sub Finalize()
If Me._value IsNot Nothing Then
System.Runtime.InteropServices.Marshal.ReleaseComObject(Me._value)
Me._value = Nothing
End If
MyBase.Finalize()
End Sub

End Class

' #### Now Some Examples
' #### Where "MyComObject" is the com librarys namespace
' #### and "MyComType" is the com object your creating an instance of

Public Sub Test1()
Dim com1 As New ComWrapper(Of MyComObject.MyComType)(New MyComObject.MyComType())
' ... Use com1.Value
com1.Dispose() ' Object disposed here
End Sub

Public Sub Test2()
Using com2 As New ComWrapper(Of MyComObject.MyComType)(New MyComObject.MyComType())
' ... Use com2.Value
End Using ' Object disposed here
End Sub

Public Sub Test3()
Dim com3 As New ComWrapper(Of MyComObject.MyComType)(New MyComObject.MyComType())

' Object is not disposed of but once the variable is out of scope or in other words the methods ends the garbage collector flags "com3" for finalizing. This will not happen instantly so dont rely on it, but it should be fine for those of us who get a bit lazy :P
End Sub