2010 Washington D.C. Cherry Blossom Festival Panorama Pictures
The 2010 Cherry Blossom Festival in Washington D.C. was amazing. The trees were prime and the weather was beautiful. Sporadic breezes would send a cascade of white petals falling through the air. The crowd under the trees made it impossible to take any close multi-picture panorama images. All of the images were taken free hand from a distance and then stitched.
Below are several stitched panorama images. Click on the image to view it full size in a new window.
There are a couple more pictures to stitch and post, check back later in the week to see them.
Life In Carcassonne (The Board Game)
Carcassonne reminds me of Transport Tycoon Deluxe, I can’t say exactly why but I think it has to do with the geometry of the pieces and how everything fits together. Maybe I should introduce my friends to OpenTTD… hmmm…
Getting back to the game, it is a cross between The Settlers of Catan and Drakon. The board unfolds with each players turn to generate scoring opportunities. You have a chance to subtly coerce your fellow players and interact with them to make the game more interesting.
We played at the T’s place, RT, CT, and AM where there.
It is a fun game that I’d like to bring home during the holidays to play with my family. Not as intense as Risk or Monopoly but yet has a fun edge so even if you don’t try to over analyze each move you still feel like something was accomplished after each rotation.
Loading Specific Versions of .NET Assemblies From the GAC Based on the Assembly Information in a .NET DLL – Visual Basic Example Code
By default the latest version of an assembly is loaded from the GAC (Global Assembly Cache) when the assembly is instantiated. While working on a side project the need arose to load older versions of the assembly without hard coding the assembly versions. The answer, load the existing assembly library from the assembly DLL and interrogate it to find the assembly information. Then ask the GAC to provide a handle to the specific object. The result allows multiple versions of the same assembly to be loaded loaded at the same time.
The Visual Basic .NET example code below loads SampleAppV1\DotNetLibrary.DLL and AnotherSampleAppV2\DotNetLibrary.DLL which are different versions of the same assembly.
'Load assembly using reflection from the file specified so we can get information about it Dim DLLAssemblyInfo As System.Reflection.Assembly DLLAssemblyInfo = System.Reflection.Assembly.LoadFrom("\\\\appserver.company.int\\SampleAppV1\\DotNetLibrary.DLL") 'Now load the assembly from the GAC using the information in the file. Dim GACDLL As System.Reflection.Assembly GACDLL = System.Reflection.Assembly.Load(AssemblyInfo.FullName, DLLAssemblyInfo.Evidence)
'Load the second version of the same assembly from the newer application
Dim DLLAssemblyInfoV2 As System.Reflection.Assembly
DLLAssemblyInfoV2 = System.Reflection.Assembly.LoadFrom("\\\\appserver.company.int\\AnotherSampleAppV2\\DotNetLibrary.DLL")
'Again, use the DLL information from the assembly file to load the assembly from the GAC Dim GACDLLv2 As System.Reflection.Assembly GACDLLv2 = System.Reflection.Assembly.Load(AssemblyInfoV2.FullName, DLLAssemblyInfoV2.Evidence)
'At this point in the code we have references to both assemblies loaded from the GAC. The next step is to instantiate an object from each of the references.
'Get an MyAssembly.Library from the old version and run the version method Dim GACDLLType As Type = GACDLL.GetType("MyAssembly.Library") Dim MyLibV1 As Object = Activator.CreateInstance(GACDLLType) Dim v1 As String v1 = MyLibV1.Version
'Finally, do the same and get the new MyAssembly.Library Dim GACDLLTypeV2 As Type = GACDLLV2.GetType("MyAssembly.Library") Dim MyLibV2 As Object = Activator.CreateInstance(GACDLLTypeV2) Dim v2 As String v2 = MyLibV2.Version
The variables v1 and v2 were both retrieved from the MyAssembly.Library.Version() method but the variables will not contain the same value because different versions of the assembly were loaded from the GAC during the System.Reflection.Assembly.Load() call.
Why not just load the assembly from each of the DLL files instead of the GAC? Security restrictions prevented untrusted assemblies from being loaded over the network. A possible work around would be to trust the network location or sign the assemblies and trust the signer but that remains for another posting.
Story From A Favorite Book: “The Laying On of Hands”
A PRETTY young woman came in to the rabbi.
“Bless me, Rabbi!” she implored.
The rabbi spread his hands over her head and blessed her, but he took care not to touch her head while doing so.
“Why don’t you place your hands on my head?” she asked in surprise. “Blessings from a distance aren’t as fruitful as blessings from near.”
“How do you light the candles on Friday night?” asked the rabbi. “Do you recite the prayer with your hands touching the flame?”
“Of course not-I’d burn my hands!” answered the young woman.
“Believe me, it’s no different with me!” said the rabbi smiling. “Where I to lay my hands on your head, I might also burn them!”An excerpt from A Treasury of Jewish Folklore. Copyright 1948 by Crown Publishers. “The Laying On of Hands”, page 170.
The story immediately begins by describing the woman as simply “a pretty young woman”. The minds eye is left to decide what that may mean. By the end of the story after reading how prudently careful and modest the rabbi has to act towards her the young womans beauty is magnified a hundred fold with no need for further description.
First Magnolia Blooms Of 2010
Several days of March rain showers have coaxed the signs of wonderful color from the earth.
Up until this point what I thought were Dogwood trees are actually Magnolia trees. Behold, the first blooming Magnolia tree of the year.