<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>Geekswithblogs.net</title><link>http://geekswithblogs.net/mainfeed.aspx</link><description>Geekswithblogs.net</description><generator>Subtext Version 0.0.0.0</generator><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/geekswithblogs" type="application/rss+xml" /><item><title>Back on GWB and Headed to CodeMash</title><link>http://feeds.feedburner.com/~r/geekswithblogs/~3/473286725/back-on-gwb-and-headed-to-codemash.aspx</link><pubDate>Wed, 03 Dec 2008 06:07:27 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/drewby/archive/2008/12/02/back-on-gwb-and-headed-to-codemash.aspx</guid><wfw:comment>http://geekswithblogs.net/drewby/comments/127546.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/drewby/comments/commentRss/127546.aspx</wfw:commentRss><comments>http://geekswithblogs.net/drewby/archive/2008/12/02/back-on-gwb-and-headed-to-codemash.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/drewby/services/trackbacks/127546.aspx</trackback:ping><source url="http://geekswithblogs.net/drewby/rss.aspx">Back on GWB and Headed to CodeMash</source><description>&lt;p&gt;The last several weeks have been a lot of fun. &lt;a href="http://channel9.msdn.com/VisualStudio"&gt;My team&lt;/a&gt; at Microsoft was busy supporting the announcements for Visual Studio 2010 and the .NET Framework 4.0 that happened at &lt;a href="http://www.microsoftpdc.com"&gt;PDC&lt;/a&gt; and &lt;a href="http://www.microsoft.com/emea/teched2008/developer"&gt;TechEd EMEA&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.managed-world.com/"&gt;Jason Olson&lt;/a&gt; delivered a tremendous &lt;a href="http://channel9.msdn.com/posts/VisualStudio/Visual-Studio-2010-and-the-NET-Framework-40-Week/"&gt;series of videos on Channel9&lt;/a&gt; focused on Visual Studio 2010 that followed an earlier, very successful &lt;a href="http://channel9.msdn.com/posts/VisualStudio/Visual-Studio-Team-System-2010-Week-on-Channel-9/"&gt;series for Visual Studio Team System&lt;/a&gt; produced by &lt;a href="http://blogs.msdn.com/briankel"&gt;Brian Keller&lt;/a&gt;. Between the two themed weeks, the videos have 1.2 million views!&lt;/p&gt;  &lt;p&gt;We finally have some time to breathe and think about what comes next. And I took this chance to follow-up on a conversation I had with &lt;a href="http://geekswithblogs.net/jjulian"&gt;Jeff Julian&lt;/a&gt; at PDC. He convinced me to get back to blogging on &lt;a href="http://geekswithblogs.net/"&gt;GeeksWithBlogs.net&lt;/a&gt; and I’m glad to be part of this community. &lt;/p&gt;  &lt;p&gt;Another community I’m looking forward to visiting again is the wonderful &lt;a href="http://www.codemash.org/"&gt;CodeMash&lt;/a&gt; community in Sandusky, Ohio. Their next event is in January and I’ll be presenting two sessions. The speaker list looks really awesome, not two mention three tremendous keynoters. &lt;/p&gt;  &lt;p&gt;Here’s my two sessions:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Modern Web Applications with .NET&lt;/strong&gt;- To be honest, I’m not even sure what that means. The submission page for sessions had a really small character limit for title and this is what I came up with after 4-5 tries. Basically, we’ll be talking about what is coming in Visual Studio 2010 and .NET Framework 4.0 for web developers.&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Managed Extensibility Framework&lt;/strong&gt; – This is one is a little more straight forward.  In this session, I’ll introduce the audience to the &lt;a href="http://www.codeplex.com/MEF"&gt;Managed Extensibility Framework&lt;/a&gt; coming in the .NET Framework 4.0. We’ll look at how its used to extend Visual Studio 2010 and how it can be leveraged in your own applications.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Also, I’m setting up 14 computers while I’m there to allow attendees to go through the hands-on-labs in our &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=752CB725-969B-4732-A383-ED5740F02E93&amp;amp;displaylang=en"&gt;Visual Studio 2010 Training Kit&lt;/a&gt; and get some experience with the next version of Visual Studio and the .NET Framework.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127546"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127546" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/drewby/aggbug/127546.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/473286725" height="1" width="1"/&gt;</description><dc:creator>Drew Robbins</dc:creator><feedburner:origLink>http://geekswithblogs.net/drewby/archive/2008/12/02/back-on-gwb-and-headed-to-codemash.aspx</feedburner:origLink></item><item><title>XTransformationFailureException: encountered while executing the transform…</title><link>http://feeds.feedburner.com/~r/geekswithblogs/~3/473286726/xtransformationfailureexception-encountered-while-executing-the-transform.aspx</link><pubDate>Wed, 03 Dec 2008 06:00:49 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/PsudoKnowledgeBase/archive/2008/12/02/xtransformationfailureexception-encountered-while-executing-the-transform.aspx</guid><wfw:comment>http://geekswithblogs.net/PsudoKnowledgeBase/comments/127545.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/PsudoKnowledgeBase/comments/commentRss/127545.aspx</wfw:commentRss><comments>http://geekswithblogs.net/PsudoKnowledgeBase/archive/2008/12/02/xtransformationfailureexception-encountered-while-executing-the-transform.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/PsudoKnowledgeBase/services/trackbacks/127545.aspx</trackback:ping><source url="http://geekswithblogs.net/PsudoKnowledgeBase/rss.aspx">XTransformationFailureException: encountered while executing the transform…</source><description>&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;I recently encounter this error. It took a little bit of head scratching to work out why we were getting the error. The possible causes were quite high as we are using dynamically assigned maps (see code below).&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;&lt;strong&gt;&lt;u&gt;Message Assignment Shape Code&lt;/u&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;
&lt;table cellspacing="1" cellpadding="1" width="80%" align="left" summary="" border="0"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td&gt;           &lt;/td&gt;
            &lt;td&gt;&lt;font face="Arial"&gt;SapOrderMapType = System.Type.GetType(SapOrdersMapName);&lt;/font&gt;
            &lt;p&gt;//transform(MyOutputMsg) = MyMapType(MyInputMsg);&lt;/p&gt;
            &lt;p&gt;transform (SapOrder) = SapOrderMapType(CanonicalPO);&lt;/p&gt;
            &lt;p&gt;System.Diagnostics.Trace.WriteLineIf(TraceEnabled, "Transform to SAP schema complete.", TraceCategory);&lt;/p&gt;
            &lt;p&gt;SapOrder(FILE.ReceivedFileName) = "PO_" + CustomerNumber + "_" + PONumber + "_";&lt;/p&gt;
            &lt;p&gt;System.Diagnostics.Trace.WriteLineIf(TraceEnabled, "SAP Order Msg Created", TraceCategory);&lt;/p&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;The error information identifies the transform as the problem but not what the problem is. The inner exception is no additional help- ‘Value cannot be null. Parameter name: extension Exception type: ArgumentNullException’.&lt;/p&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;The problem was eventually tracked down to the custom functoids. In the last map a new functoid was added to convert standard BizTalk dates into standard SAP dates. When the project was deployed the custom functoid dll was not updated.&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;Interestingly this error might occur intermittently as the functiod may not be needed every time the map is used.&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127545"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127545" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/PsudoKnowledgeBase/aggbug/127545.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/473286726" height="1" width="1"/&gt;</description><dc:creator>Geordie</dc:creator><feedburner:origLink>http://geekswithblogs.net/PsudoKnowledgeBase/archive/2008/12/02/xtransformationfailureexception-encountered-while-executing-the-transform.aspx</feedburner:origLink></item><item><title>Sotue Lexical Analysis Engine Design Underway</title><link>http://feeds.feedburner.com/~r/geekswithblogs/~3/473209437/sotue-lexical-analysis-engine-design-underway.aspx</link><pubDate>Wed, 03 Dec 2008 04:16:24 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/JeffFerguson/archive/2008/12/02/sotue-lexical-analysis-engine-design-underway.aspx</guid><wfw:comment>http://geekswithblogs.net/JeffFerguson/comments/127544.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/JeffFerguson/comments/commentRss/127544.aspx</wfw:commentRss><comments>http://geekswithblogs.net/JeffFerguson/archive/2008/12/02/sotue-lexical-analysis-engine-design-underway.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/JeffFerguson/services/trackbacks/127544.aspx</trackback:ping><source url="http://geekswithblogs.net/JeffFerguson/rss.aspx">Sotue Lexical Analysis Engine Design Underway</source><description>&lt;p&gt;The DFA creation code in &lt;a href="http://geekswithblogs.net/JeffFerguson/archive/2008/10/19/sotue.aspx"&gt;Sotue&lt;/a&gt; is well underway. I have more to do on the DFA front (namely, supporting exclusive character classes), but I have been happy with the results I have seen to this point. With this work well underway, I can finally turn to the meat of this entire effort: the lexical analysis engine itself.&lt;/p&gt;  &lt;p&gt;I have written the first unit test for the lexical analysis engine, and I think I have settled on an overall design for the lexical analysis engine. At this point, the design looks something like this:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Courier New"&gt;string DataString = "72 (seventy-two) is the natural number following 71 and preceding 73. It is half a gross or 6 dozen (i.e., 60 in duodecimal).";       &lt;br /&gt;byte[] DataBytes = Encoding.GetEncoding("iso-8859-1").GetBytes(DataString);        &lt;br /&gt;MemoryStream DataStream = new MemoryStream(DataBytes);        &lt;br /&gt;StreamReader DataReader = new StreamReader(DataStream); &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;LexicalAnalyzer Lex = new LexicalAnalyzer();       &lt;br /&gt;Lex.AddToken("[0-9]+",        &lt;br /&gt;    delegate(object sender, LexemeFoundEventArgs args)        &lt;br /&gt;    {        &lt;br /&gt;    }        &lt;br /&gt;);        &lt;br /&gt;Lex.AddToken("[ ]+",        &lt;br /&gt;    delegate(object sender, LexemeFoundEventArgs args)        &lt;br /&gt;    {        &lt;br /&gt;    }        &lt;br /&gt;);        &lt;br /&gt;Lex.AddToken("[A-Za-z]+",        &lt;br /&gt;    delegate(object sender, LexemeFoundEventArgs args)        &lt;br /&gt;    {        &lt;br /&gt;    }        &lt;br /&gt;);        &lt;br /&gt;Lex.AddToken("[().,]+",        &lt;br /&gt;    delegate(object sender, LexemeFoundEventArgs args)        &lt;br /&gt;    {        &lt;br /&gt;    }        &lt;br /&gt;);        &lt;br /&gt;Lex.Analyze(DataReader);        &lt;br /&gt;DataReader.Close();        &lt;br /&gt;DataStream.Close();&lt;/font&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Let’s break this down. I’m starting with the creation of the data to be analyzed. In this case, it’s a string that I have folded into a StreamReader object:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Courier New"&gt;string DataString = "72 (seventy-two) is the natural number following 71 and preceding 73. It is half a gross or 6 dozen (i.e., 60 in duodecimal).";       &lt;br /&gt;byte[] DataBytes = Encoding.GetEncoding("iso-8859-1").GetBytes(DataString);        &lt;br /&gt;MemoryStream DataStream = new MemoryStream(DataBytes);        &lt;br /&gt;StreamReader DataReader = new StreamReader(DataStream);&lt;/font&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Next, I create an instance of Sotue’s lexical analysis engine:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Courier New"&gt;LexicalAnalyzer Lex = new LexicalAnalyzer();&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;I can then define my tokens. Within Sotue’s lexical analysis engine, a token definition consists of two items:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;a regular expression&lt;/li&gt;    &lt;li&gt;a delegate that is called when a match is found in the input&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;The first token defines a string of digits, illustrated by the regular expression read as “one or more occurrences of a character in the range of ‘0’ to ‘9’ inclusive”:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Courier New"&gt;Lex.AddToken("[0-9]+",       &lt;br /&gt;    delegate(object sender, LexemeFoundEventArgs args)        &lt;br /&gt;    {        &lt;br /&gt;    }        &lt;br /&gt;);&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;The second token defines whitespace:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Courier New"&gt;Lex.AddToken("[ ]+",       &lt;br /&gt;    delegate(object sender, LexemeFoundEventArgs args)        &lt;br /&gt;    {        &lt;br /&gt;    }        &lt;br /&gt;);&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;The third token defines a word, illustrated by the regular expression read as “one or more occurrences of a character in the range of ‘A’ to ‘Z’ or ‘a’ to ‘z’ inclusive”:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Courier New"&gt;Lex.AddToken("[A-Za-z]+",       &lt;br /&gt;    delegate(object sender, LexemeFoundEventArgs args)        &lt;br /&gt;    {        &lt;br /&gt;    }        &lt;br /&gt;);&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;The fourth and final token defines any punctuation in the input:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Courier New"&gt;Lex.AddToken("[().,]+",       &lt;br /&gt;    delegate(object sender, LexemeFoundEventArgs args)        &lt;br /&gt;    {        &lt;br /&gt;    }        &lt;br /&gt;);&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Note two things about the delegates in the code shown above:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;The delegates called when matches are found in the input don’t do anything. I will fill that in later.&lt;/li&gt;    &lt;li&gt;The delegates shown above makes use of C# 2.0 anonymous delegate syntax. If I decide to release Sotue, as either a product or as open source, I will be sure to support explicit delegate definitions, anonymous delegate definitions, and, if possible, lambda expressions. All of these delegate definition methods will allow users to define the delegates in a way that is meaningful to them.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;The LexemeFoundEventArgs class holds a reference to the Token class used to match input as well as a string containing the matched text (in lexical analysis terminology, the string that matches a regular expression is called a &lt;em&gt;lexeme&lt;/em&gt;). With this in mind, the delegate code will be able to reference the items in a manner similar to the following:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Courier New"&gt;Lex.AddToken("[0-9]+",       &lt;br /&gt;    delegate(object sender, LexemeFoundEventArgs args)        &lt;br /&gt;    {        &lt;br /&gt;        // args.MatchToken contains a reference to a Token object containing:        &lt;br /&gt;        //     * &lt;/font&gt;&lt;font face="Courier New"&gt;the regular expression       &lt;br /&gt;        //     * the state machines that encode the regular expression        &lt;br /&gt;        // args.Lexeme contains a string representing the matching data found in the input&lt;/font&gt;&lt;font face="Courier New"&gt;       &lt;br /&gt;    }        &lt;br /&gt;);&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Once the tokens are defined, the data can be analyzed:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Courier New"&gt;Lex.Analyze(DataReader);&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;I only hope that when the data is analyzed, a weakness can be found. It’s not over yet. (Obscure? Don’t get the reference? Shame on you. Go sit in the corner.)&lt;/p&gt;  &lt;p&gt;Once the data is analyzed, the streams and readers can be closed:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Courier New"&gt;DataReader.Close();       &lt;br /&gt;DataStream.Close();&lt;/font&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;The call to Analyze() will kick things off and do all of the work of reading from the stream, matching input against the DFAs representing the regular expressions in the tokens, and calling the lexeme match delegates when a match is found. I’m happy with the design as a first draft. Now it’s time to see how close I can come to pulling it off.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127544"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127544" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/JeffFerguson/aggbug/127544.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/473209437" height="1" width="1"/&gt;</description><dc:creator>Jeff Ferguson</dc:creator><feedburner:origLink>http://geekswithblogs.net/JeffFerguson/archive/2008/12/02/sotue-lexical-analysis-engine-design-underway.aspx</feedburner:origLink></item><item><title>ARCast.TV Interview on Channel9 - 64-bit Computing Technology for Highly Scalable Applications</title><link>http://feeds.feedburner.com/~r/geekswithblogs/~3/473136984/arcast.tv-interview-on-channel9---64-bit-computing-technology-for-highly.aspx</link><pubDate>Wed, 03 Dec 2008 02:31:42 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/michelotti/archive/2008/12/02/arcast.tv-interview-on-channel9---64-bit-computing-technology-for-highly.aspx</guid><wfw:comment>http://geekswithblogs.net/michelotti/comments/127543.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/michelotti/comments/commentRss/127543.aspx</wfw:commentRss><comments>http://geekswithblogs.net/michelotti/archive/2008/12/02/arcast.tv-interview-on-channel9---64-bit-computing-technology-for-highly.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/michelotti/services/trackbacks/127543.aspx</trackback:ping><source url="http://geekswithblogs.net/michelotti/rss.aspx">ARCast.TV Interview on Channel9 - 64-bit Computing Technology for Highly Scalable Applications</source><description>&lt;p&gt;In the past couple of years, I had the unique opportunity to lead of team of developers building one of the highest (if not THE highest) volume .NET application in the world.  With more than 3 billion requests per day and an SLA of 99.99% of requests under 250ms, we had some exciting challenges. Because the application was so performance intensive, we heavily utilized a huge in-memory cache.  Because of the size of our cache, we had some interesting challenges to overcome with .NET garbage collection in order to satisfy our SLA.  This led us to working with Microsoft to implement &lt;a href="http://msdn.microsoft.com/en-us/library/system.gc.registerforfullgcnotification.aspx" target="_blank"&gt;GC Notifications&lt;/a&gt; which were released in .NET 3.5 SP1.&lt;/p&gt;  &lt;p&gt;Of course the details of this could be a white paper unto itself but here is a 20 minute interview on ARCast.TV explaining some of the details.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://channel9.msdn.com/shows/ARCast.TV/ARCastTV-Steve-Michelotti-of-eimagination-on-High-Performance-Web-Solutions/" target="_blank"&gt;64-bit Computing Technology for Highly Scalable Applications&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://channel9.msdn.com/shows/ARCast.TV/ARCastTV-Steve-Michelotti-of-eimagination-on-High-Performance-Web-Solutions/" target="_blank"&gt;&lt;img src="http://blogs.msdn.com/blogfiles/bobfamiliar/WindowsLiveWriter/ARC.imaginationonHighPerformanceWebSolut_7D13/image_3.png" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127543"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127543" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/michelotti/aggbug/127543.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/473136984" height="1" width="1"/&gt;</description><dc:creator>Steve Michelotti</dc:creator><feedburner:origLink>http://geekswithblogs.net/michelotti/archive/2008/12/02/arcast.tv-interview-on-channel9---64-bit-computing-technology-for-highly.aspx</feedburner:origLink></item><item><title>Back for a bit...</title><link>http://feeds.feedburner.com/~r/geekswithblogs/~3/473113878/back-for-a-bit.aspx</link><pubDate>Wed, 03 Dec 2008 02:07:55 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/colinbo/archive/2008/12/02/back-for-a-bit.aspx</guid><wfw:comment>http://geekswithblogs.net/colinbo/comments/127542.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/colinbo/comments/commentRss/127542.aspx</wfw:commentRss><comments>http://geekswithblogs.net/colinbo/archive/2008/12/02/back-for-a-bit.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/colinbo/services/trackbacks/127542.aspx</trackback:ping><source url="http://geekswithblogs.net/colinbo/rss.aspx">Back for a bit...</source><description>It's been a few months since I last posted over at http://colin.rockstarguys.com.  A few good reasons for that - one of them is a switch in roles.  Jumping out of the start-up space and into the financial industry couldn't have happened at a better time.  For those who are grappling with downsizing and project cancellation you might not agree with me.  In my new role as Enterprise Architect I have been tasked with unifying an organization that needs to find ways to leverage their existing capabilities and draw on all sides of the organization to make smart moves going forward.  Outside of that it has given me a chance to relax a bit from the long days, late nights and weekends working.  Looking back towards the future the world has continued to evolve and some exciting things that were only blips on the radar during my Microsoft days are starting to appear.  &lt;a href="javascript:void(0);/*1228269750268*/"&gt;WPF&lt;/a&gt; has evolved steadily towards becoming the platform of choice for rich client applications, &lt;a href="javascript:void(0);/*1228269794468*/"&gt;the cloud&lt;/a&gt; is finally taking shape (and there are  &lt;a href="javascript:void(0);/*1228269811533*/"&gt;real apps&lt;/a&gt; starting to show up on it), and the &lt;a href="javascript:void(0);/*1228269853117*/"&gt;utopia of software engineering&lt;/a&gt; is remains an elusive goal for most of us.&lt;br /&gt;
&lt;br /&gt;
I have setup my home dev environment to start poking around at the new Hello World - a blog engine.  My thoughts over the next while are to throw something at the cloud and see how it sticks. After watching the &lt;a href="javascript:void(0);/*1228269731441*/"&gt;PDC 2008 breakout sessions&lt;/a&gt; I'm convinced that I can take some of what I have learned in the past few years and find ways to adapt it to the cloud.  So stay tuned and I will find time to share what I'm learning as I go, both good and bad.  In the mean time if anyone plans to be at the &lt;a href="javascript:void(0);/*1228270077007*/"&gt;Gartner Enterprise Architecture Summit&lt;/a&gt; next week drop me a line and let's connect for dinner.&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127542"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127542" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/colinbo/aggbug/127542.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/473113878" height="1" width="1"/&gt;</description><dc:creator>Colin Bowern</dc:creator><feedburner:origLink>http://geekswithblogs.net/colinbo/archive/2008/12/02/back-for-a-bit.aspx</feedburner:origLink></item><item><title>Upgraded my iPhone (finally)</title><link>http://feeds.feedburner.com/~r/geekswithblogs/~3/473104860/upgraded-my-iphone-finally.aspx</link><pubDate>Wed, 03 Dec 2008 01:47:48 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/cplayer/archive/2008/12/02/upgraded-my-iphone-finally.aspx</guid><wfw:comment>http://geekswithblogs.net/cplayer/comments/127541.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/cplayer/comments/commentRss/127541.aspx</wfw:commentRss><comments>http://geekswithblogs.net/cplayer/archive/2008/12/02/upgraded-my-iphone-finally.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/cplayer/services/trackbacks/127541.aspx</trackback:ping><source url="http://geekswithblogs.net/cplayer/rss.aspx">Upgraded my iPhone (finally)</source><description>Well, thanks to my father-in-law's early xmas present I am now the proud owner of a 3G iPhone. I had resisted the temptation since they were released earlier this year since I am usually on WiFi and didn't see the need; the ride to work this morning provided one.&lt;br /&gt;
&lt;br /&gt;
I love Last.FM and like the iPhone app but I had not used it much on the GSM phone because speeds when not on WiFi ... well, they sucked. This morning I decided to give the new 3G a try and for the 45 minute commute downtown I had only 1 very brief (15 second) delay between songs.&lt;br /&gt;
&lt;br /&gt;
I will never listen to a radio station in my car again.&lt;br /&gt;
&lt;br /&gt;
The difference between the 3G and GSM connection speeds is beyond noticeable. It's like cable compared to dial-up. If you're on the fence do yourself a favor and upgrade. It is WELL worth it.&lt;br /&gt;
&lt;br /&gt;
Along those same lines I was the recipient of what is possibly the best customer service I have ever experienced at a Best Buy. The young lady asked if she could help me and when I told her what I wanted to do (upgrade the phone) she informed me it would be about 15-20 minutes. When I told her I wasn't sure I had the time and would come back later (and I would have) she proceeded to juggle me and her other customer and I was out of the store 10 minutes later with my new iPhone.&lt;br /&gt;
&lt;br /&gt;
Now I'm off to play with VMWare. :)&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127541"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127541" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/cplayer/aggbug/127541.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/473104860" height="1" width="1"/&gt;</description><dc:creator>Chuck Player</dc:creator><feedburner:origLink>http://geekswithblogs.net/cplayer/archive/2008/12/02/upgraded-my-iphone-finally.aspx</feedburner:origLink></item><item><title>Tampa Code Camp Sessions</title><link>http://feeds.feedburner.com/~r/geekswithblogs/~3/473096585/tampa-code-camp-sessions.aspx</link><pubDate>Wed, 03 Dec 2008 01:28:42 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/sdorman/archive/2008/12/02/tampa-code-camp-sessions.aspx</guid><wfw:comment>http://geekswithblogs.net/sdorman/comments/127538.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/sdorman/comments/commentRss/127538.aspx</wfw:commentRss><comments>http://geekswithblogs.net/sdorman/archive/2008/12/02/tampa-code-camp-sessions.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/sdorman/services/trackbacks/127538.aspx</trackback:ping><source url="http://geekswithblogs.net/sdorman/rss.aspx">Tampa Code Camp Sessions</source><description>&lt;p&gt;&lt;a target="_blank" href="http://www.tampacodecamp.com"&gt;Tampa Code Camp&lt;/a&gt; is this weekend and I’m presenting 3 sessions:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Understanding Lambda Expressions&lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Lambda expressions are an integral part of LINQ and a powerful new feature of .NET 3.0. We will explore the history of lambda expressions and how they operate in .NET, and how they can dramatically simplify your code.Lambda expressions are an integral part of LINQ and a powerful new feature of .NET 3.0.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;Memory Management Fundamentals – Garbage Collection Deep Dive&lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Memory management in .NET is one of the fundamental aspects of .NET, yet it also seems to be one of the most misunderstood concepts in the CLR. Take an in-depth look at how .NET manages memory, allocates resources, and how the Garbage Collector works.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;Memory Management Fundamentals – IDisposable and the Dispose Pattern&lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Continuing the discussion on memory management in .NET, we’ll re-cap the basics of how the garbage collection system works and then talk about the IDisposable interface and the Dispose pattern. This will cover not just how to use the pattern but also how to implement the pattern into your own classes.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;For those of you who have attended my previous talks on memory management, be sure not to miss these as they have been updated and expanded with a lot of new content. The slide decks are available on &lt;a target="_blank" href="http://skydrive.live.com/"&gt;SkyDrive&lt;/a&gt; in my public &lt;a target="_blank" href="http://snipurl.com/5leeg"&gt;Presentations&lt;/a&gt; folder.&lt;/p&gt;&lt;div class="wlWriterHeaderFooter" style="text-align:left; margin:0px; padding:4px 4px 4px 4px;"&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http://geekswithblogs.net/sdorman/archive/2008/12/02/tampa-code-camp-sessions.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://geekswithblogs.net/sdorman/archive/2008/12/02/tampa-code-camp-sessions.aspx&amp;amp;bgcolor=0080C0&amp;amp;fgcolor=FFFFFF&amp;amp;border=000000&amp;amp;cbgcolor=D4E1ED&amp;amp;cfgcolor=000000" alt="DotNetKicks Image" border="0/" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127538"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127538" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/sdorman/aggbug/127538.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/473096585" height="1" width="1"/&gt;</description><dc:creator>Scott Dorman</dc:creator><feedburner:origLink>http://geekswithblogs.net/sdorman/archive/2008/12/02/tampa-code-camp-sessions.aspx</feedburner:origLink></item><item><title>Silverlight Cream for December 02, 2008 -- #444</title><link>http://feeds.feedburner.com/~r/geekswithblogs/~3/473025623/127537.aspx</link><pubDate>Tue, 02 Dec 2008 23:55:15 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/WynApseTechnicalMusings/archive/2008/12/02/127537.aspx</guid><wfw:comment>http://geekswithblogs.net/WynApseTechnicalMusings/comments/127537.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/WynApseTechnicalMusings/comments/commentRss/127537.aspx</wfw:commentRss><comments>http://geekswithblogs.net/WynApseTechnicalMusings/archive/2008/12/02/127537.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/WynApseTechnicalMusings/services/trackbacks/127537.aspx</trackback:ping><source url="http://geekswithblogs.net/WynApseTechnicalMusings/rss.aspx">Silverlight Cream for December 02, 2008 -- #444</source><description>&lt;font face="tahoma"&gt;Chris Anderson, Tim Heuer, Michael S. Scherotter, and Jonathan van de Veen. &lt;br /&gt;
&lt;br /&gt;
Shoutout: &lt;br /&gt;
&lt;br /&gt;
If you don't read Scott Guthrie's blog, shame on you :) ... he posted his latest aggregation today: &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/12/02/dec-2nd-links-asp-net-asp-net-dynamic-data-asp-net-ajax-asp-net-mvc-visual-studio-silverlight-wpf.aspx"&gt;&lt;u&gt;Dec 2nd Links: ASP.NET, ASP.NET Dynamic Data, ASP.NET AJAX, ASP.NET MVC, Visual Studio, Silverlight/WPF &lt;/u&gt;&lt;/a&gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;center&gt;&lt;hr width="50%" /&gt;
&lt;/center&gt;  From &lt;a href="http://www.silverlightcream.com"&gt;&lt;u&gt;SilverlightCream.com&lt;/u&gt;&lt;/a&gt;:  &lt;dl&gt;     &lt;dt&gt;&lt;a href="http://www.silverlightshow.net/items/Building-a-Silverlight-Line-Of-Business-Application-Part-4.aspx"&gt;&lt;u&gt;Building a Silverlight Line-Of-Business Application – Part 4&lt;/u&gt;&lt;/a&gt;&lt;/dt&gt;       &lt;dd&gt;&lt;strong&gt;Chris Anderson&lt;/strong&gt; over at SilverlightShow put up the fourth part of his LOB series ... definitely a keeper.&lt;/dd&gt;     &lt;dt&gt;&lt;a href="http://timheuer.com/blog/archive/2008/12/02/silverlight-install-experience-best-practices-netflix.aspx"&gt;&lt;u&gt;Silverlight install experience best practices&lt;/u&gt;&lt;/a&gt;&lt;/dt&gt;       &lt;dd&gt;&lt;strong&gt;Tim Heuer&lt;/strong&gt; uses Netflix as a great install example ... give it a shot if you still have a machine without Silverlight on it like Tim had :)&lt;/dd&gt;     &lt;dt&gt;&lt;a href="http://blogs.msdn.com/synergist/archive/2008/12/02/an-interview-with-the-developer-of-a-silverlight-2-ribbon-interface.aspx"&gt;&lt;u&gt;An Interview with the Developer of a Silverlight 2 Ribbon Interface&lt;/u&gt;&lt;/a&gt;&lt;/dt&gt;       &lt;dd&gt;&lt;strong&gt;Michael S. Scherotter&lt;/strong&gt; had built a ribbon control in WPF/E, but gave up on SL2 when he saw the one he's blogging about... too cool!&lt;/dd&gt;     &lt;dt&gt;&lt;a href="http://jvdveen.blogspot.com/2008/11/using-popup-element-in-silverlight.html"&gt;&lt;u&gt;Using the popup element in Silverlight&lt;/u&gt;&lt;/a&gt;&lt;/dt&gt;       &lt;dd&gt;This is a bit older post from &lt;strong&gt;Jonathan van de Veen&lt;/strong&gt; about the popup element... still good!&lt;/dd&gt;  &lt;/dl&gt;&lt;br /&gt;
&lt;font color="#0000ff"&gt;&lt;strong&gt;Stay in the 'Light!&lt;/strong&gt;&lt;/font&gt;&lt;br /&gt;
&lt;center&gt;&lt;hr width="50%" /&gt;
&lt;a href="http://twitter.com/SilverlightNews"&gt;&lt;u&gt;Twitter SLNews&lt;/u&gt;&lt;/a&gt; | &lt;a href="http://tech.groups.yahoo.com/group/SilverlightCream/join"&gt;&lt;u&gt;Join me @ SilverlightCream&lt;/u&gt;&lt;/a&gt; | &lt;a href="http://www.wynapse.com/TagContent.aspx?Tag=Silverlight"&gt;&lt;u&gt;SL Web Articles&lt;/u&gt;&lt;/a&gt; | &lt;a href="http://www.wynapse.com/TagContent.aspx?Tag=Silverlight2"&gt;&lt;u&gt;SL2 Web Articles&lt;/u&gt;&lt;/a&gt; | &lt;a href="http://www.wynapse.com/Silverlight.aspx"&gt;&lt;u&gt;My Articles&lt;/u&gt;&lt;/a&gt; | &lt;a href="http://www.wynapse.com/Silverlight_Tutorials.aspx"&gt;&lt;u&gt;My Tutorials&lt;/u&gt;&lt;/a&gt; | &lt;a href="http://www.wynapse.com/Silverlight_Tooltips.aspx"&gt;&lt;u&gt;My Tooltips&lt;/u&gt;&lt;/a&gt; | &lt;a href="http://www.wynapse.com/Silverlight2.aspx"&gt;&lt;u&gt;My SL2 Articles&lt;/u&gt;&lt;/a&gt; | &lt;a href="http://www.wynapse.com/Silverlight2_Tooltips.aspx"&gt;&lt;u&gt;My SL2 ToolTips&lt;/u&gt;&lt;/a&gt; | &lt;a href="http://www.silverlightcream.com"&gt;&lt;u&gt;SilverlightCream&lt;/u&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/center&gt; &lt;br /&gt;
&lt;br /&gt;
Technorati Tags:  &lt;a rel="tag" href="http://technorati.com/tag/Silverlight"&gt;&lt;img alt=" " src="http://static.technorati.com/static/img/pub/icon-utag-16x13.png?tag=Silverlight" style="border: 0pt none ; vertical-align: middle; margin-left: 0.4em;" /&gt;Silverlight&lt;/a&gt;     &lt;a rel="tag" href="http://technorati.com/tag/SilverlightCream"&gt;&lt;img alt=" " src="http://static.technorati.com/static/img/pub/icon-utag-16x13.png?tag=SilverlightCream" style="border: 0pt none ; vertical-align: middle; margin-left: 0.4em;" /&gt;SilverlightCream&lt;/a&gt;   &lt;/font&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127537"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127537" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/WynApseTechnicalMusings/aggbug/127537.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/473025623" height="1" width="1"/&gt;</description><dc:creator>Dave Campbell</dc:creator><feedburner:origLink>http://geekswithblogs.net/WynApseTechnicalMusings/archive/2008/12/02/127537.aspx</feedburner:origLink></item><item><title>Cloud-Distributed Computing</title><link>http://feeds.feedburner.com/~r/geekswithblogs/~3/472988235/cloud-distributed-computing.aspx</link><pubDate>Tue, 02 Dec 2008 22:59:00 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/EltonStoneman/archive/2008/12/02/cloud-distributed-computing.aspx</guid><wfw:comment>http://geekswithblogs.net/EltonStoneman/comments/127536.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/EltonStoneman/comments/commentRss/127536.aspx</wfw:commentRss><comments>http://geekswithblogs.net/EltonStoneman/archive/2008/12/02/cloud-distributed-computing.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/EltonStoneman/services/trackbacks/127536.aspx</trackback:ping><source url="http://geekswithblogs.net/EltonStoneman/rss.aspx">Cloud-Distributed Computing</source><description>&lt;p style="text-align: center;"&gt;&lt;span style="font-size: 10pt;"&gt;[Source: &lt;a href="http://geekswithblogs.net/EltonStoneman"&gt;http://geekswithblogs.net/EltonStoneman&lt;/a&gt;] &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;The combination of .NET Services and SQL Services in the cloud provide a very simple model for implementing massively distributed processing. It's an appealing idea – enterprises of any size have hundreds or thousands of workstations which can be idle for the majority of their time. Assuming a generous average 10% resource utilisation during working hours, workstations which are not powered down are averaging 3.3% utilisation over the working week.  &lt;/p&gt;
&lt;p&gt;Co-ordinating the available processing power of the workstation landscape becomes a lot simpler in the cloud. Work packages are published to the cloud, and workstations retrieve and process them. All that's required is a connected workstation capable of running .NET, a simple Windows service to fetch and execute work packages – and a business process that lends itself to being split into discrete parts, with minimal constraints on processing time. &lt;/p&gt;
&lt;p&gt;&lt;em&gt;Case Study: Document Generation &lt;/em&gt;&lt;/p&gt;
&lt;p&gt;An obvious example is a document generation system. Typically this would be an event-driven front-end, publishing document requests which are retrieved and processed by a batch system. Simplified, the document generation workflow is: retrieve document template; retrieve business entity; mash entity data with template; publish result. In this architecture the hardware of the batch system is the definite limit to how many documents can be published in a set timeframe. The time taken to process each document is critical, so performance is a key consideration through design and implementation. &lt;/p&gt;
&lt;p&gt;Move this to the cloud, and the limit to how many documents that can be processed is the number of workstations online processing work packages. With hundreds of boxes picking up requests simultaneously, the time taken for each process is far less significant. Assuming a complex document takes 15 seconds to render in the batch architecture, to cover 5,000 documents a day requires a server farm of 8 boxes, each with 2 quad-core processors. Even if the cloud model takes three times as long to render the same document, 160 workstations can process the same load in the same time. A lot more boxes, but they can be of a much lower spec and might be provided from the PCs already used in a single department. &lt;/p&gt;
&lt;p&gt;&lt;em&gt;Proof of Concept &lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I'm working on a POC which implements a simple distributed document generation system using Microsoft's currently-available CTP cloud services. Taking into account the considerations below, the POC works through a SQL Service used to store work package and document template data, and three workflow services for publishing and retrieving work packages, and flagging a package as complete. I'll publish a more detailed technical post when the POC is available, but at a high level the design looks like this: &lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;&lt;img alt="" style="width: 500px; height: 309px;" src="/images/geekswithblogs_net/EltonStoneman/CloudDocGen.png" /&gt;&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;link rel="File-List" href="file:///C:\DOCUME~1\ELTON~1.STO\LOCALS~1\Temp\msohtmlclip1\01\clip_filelist.xml" /&gt;
&lt;link rel="Edit-Time-Data" href="file:///C:\DOCUME~1\ELTON~1.STO\LOCALS~1\Temp\msohtmlclip1\01\clip_editdata.mso" /&gt;
&lt;link rel="OLE-Object-Data" href="file:///C:\DOCUME~1\ELTON~1.STO\LOCALS~1\Temp\msohtmlclip1\01\clip_oledata.mso" /&gt;&lt;!--[if !mso]&gt;
&lt;style&gt;
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
&lt;/style&gt;
&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
&lt;o:OfficeDocumentSettings&gt;
&lt;o:RelyOnVML /&gt;
&lt;o:AllowPNG /&gt;
&lt;/o:OfficeDocumentSettings&gt;
&lt;/xml&gt;&lt;![endif]--&gt;
&lt;link rel="themeData" href="file:///C:\DOCUME~1\ELTON~1.STO\LOCALS~1\Temp\msohtmlclip1\01\clip_themedata.thmx" /&gt;
&lt;link rel="colorSchemeMapping" href="file:///C:\DOCUME~1\ELTON~1.STO\LOCALS~1\Temp\msohtmlclip1\01\clip_colorschememapping.xml" /&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
&lt;w:WordDocument&gt;
&lt;w:View&gt;Normal&lt;/w:View&gt;
&lt;w:Zoom&gt;0&lt;/w:Zoom&gt;
&lt;w:TrackMoves /&gt;
&lt;w:TrackFormatting /&gt;
&lt;w:DoNotShowRevisions /&gt;
&lt;w:DoNotPrintRevisions /&gt;
&lt;w:DoNotShowComments /&gt;
&lt;w:DoNotShowInsertionsAndDeletions /&gt;
&lt;w:DoNotShowPropertyChanges /&gt;
&lt;w:PunctuationKerning /&gt;
&lt;w:ValidateAgainstSchemas /&gt;
&lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;
&lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;
&lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;
&lt;w:DoNotPromoteQF /&gt;
&lt;w:LidThemeOther&gt;EN-GB&lt;/w:LidThemeOther&gt;
&lt;w:LidThemeAsian&gt;X-NONE&lt;/w:LidThemeAsian&gt;
&lt;w:LidThemeComplexScript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;
&lt;w:Compatibility&gt;
&lt;w:BreakWrappedTables /&gt;
&lt;w:SnapToGridInCell /&gt;
&lt;w:WrapTextWithPunct /&gt;
&lt;w:UseAsianBreakRules /&gt;
&lt;w:DontGrowAutofit /&gt;
&lt;w:SplitPgBreakAndParaMark /&gt;
&lt;w:DontVertAlignCellWithSp /&gt;
&lt;w:DontBreakConstrainedForcedTables /&gt;
&lt;w:DontVertAlignInTxbx /&gt;
&lt;w:Word11KerningPairs /&gt;
&lt;w:CachedColBalance /&gt;
&lt;w:UseFELayout /&gt;
&lt;/w:Compatibility&gt;
&lt;w:DoNotOptimizeForBrowser /&gt;
&lt;m:mathPr&gt;
&lt;m:mathFont m:val="Cambria Math" /&gt;
&lt;m:brkBin m:val="before" /&gt;
&lt;m:brkBinSub m:val="&amp;#45;-" /&gt;
&lt;m:smallFrac m:val="off" /&gt;
&lt;m:dispDef /&gt;
&lt;m:lMargin m:val="0" /&gt;
&lt;m:rMargin m:val="0" /&gt;
&lt;m:defJc m:val="centerGroup" /&gt;
&lt;m:wrapIndent m:val="1440" /&gt;
&lt;m:intLim m:val="subSup" /&gt;
&lt;m:naryLim m:val="undOvr" /&gt;
&lt;/m:mathPr&gt;&lt;/w:WordDocument&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
&lt;w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267"&gt;
&lt;w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal" /&gt;
&lt;w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1" /&gt;
&lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2" /&gt;
&lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3" /&gt;
&lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4" /&gt;
&lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5" /&gt;
&lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6" /&gt;
&lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7" /&gt;
&lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8" /&gt;
&lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9" /&gt;
&lt;w:LsdException Locked="false" Priority="39" Name="toc 1" /&gt;
&lt;w:LsdException Locked="false" Priority="39" Name="toc 2" /&gt;
&lt;w:LsdException Locked="false" Priority="39" Name="toc 3" /&gt;
&lt;w:LsdException Locked="false" Priority="39" Name="toc 4" /&gt;
&lt;w:LsdException Locked="false" Priority="39" Name="toc 5" /&gt;
&lt;w:LsdException Locked="false" Priority="39" Name="toc 6" /&gt;
&lt;w:LsdException Locked="false" Priority="39" Name="toc 7" /&gt;
&lt;w:LsdException Locked="false" Priority="39" Name="toc 8" /&gt;
&lt;w:LsdException Locked="false" Priority="39" Name="toc 9" /&gt;
&lt;w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption" /&gt;
&lt;w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title" /&gt;
&lt;w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font" /&gt;
&lt;w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle" /&gt;
&lt;w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong" /&gt;
&lt;w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis" /&gt;
&lt;w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid" /&gt;
&lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text" /&gt;
&lt;w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing" /&gt;
&lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading" /&gt;
&lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List" /&gt;
&lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid" /&gt;
&lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1" /&gt;
&lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2" /&gt;
&lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1" /&gt;
&lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2" /&gt;
&lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1" /&gt;
&lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2" /&gt;
&lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3" /&gt;
&lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List" /&gt;
&lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading" /&gt;
&lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List" /&gt;
&lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid" /&gt;
&lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1" /&gt;
&lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1" /&gt;
&lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1" /&gt;
&lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1" /&gt;
&lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1" /&gt;
&lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1" /&gt;
&lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision" /&gt;
&lt;w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph" /&gt;
&lt;w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote" /&gt;
&lt;w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote" /&gt;
&lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1" /&gt;
&lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1" /&gt;
&lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1" /&gt;
&lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1" /&gt;
&lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1" /&gt;
&lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1" /&gt;
&lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1" /&gt;
&lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1" /&gt;
&lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2" /&gt;
&lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2" /&gt;
&lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2" /&gt;
&lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2" /&gt;
&lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2" /&gt;
&lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2" /&gt;
&lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2" /&gt;
&lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2" /&gt;
&lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2" /&gt;
&lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2" /&gt;
&lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2" /&gt;
&lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2" /&gt;
&lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2" /&gt;
&lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2" /&gt;
&lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3" /&gt;
&lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3" /&gt;
&lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3" /&gt;
&lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3" /&gt;
&lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3" /&gt;
&lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3" /&gt;
&lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3" /&gt;
&lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3" /&gt;
&lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3" /&gt;
&lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3" /&gt;
&lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3" /&gt;
&lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3" /&gt;
&lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3" /&gt;
&lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3" /&gt;
&lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4" /&gt;
&lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4" /&gt;
&lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4" /&gt;
&lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4" /&gt;
&lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4" /&gt;
&lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4" /&gt;
&lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4" /&gt;
&lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4" /&gt;
&lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4" /&gt;
&lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4" /&gt;
&lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4" /&gt;
&lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4" /&gt;
&lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4" /&gt;
&lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4" /&gt;
&lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5" /&gt;
&lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5" /&gt;
&lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5" /&gt;
&lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5" /&gt;
&lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5" /&gt;
&lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5" /&gt;
&lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5" /&gt;
&lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5" /&gt;
&lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5" /&gt;
&lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5" /&gt;
&lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5" /&gt;
&lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5" /&gt;
&lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5" /&gt;
&lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5" /&gt;
&lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6" /&gt;
&lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6" /&gt;
&lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6" /&gt;
&lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6" /&gt;
&lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6" /&gt;
&lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6" /&gt;
&lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6" /&gt;
&lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6" /&gt;
&lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6" /&gt;
&lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6" /&gt;
&lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6" /&gt;
&lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6" /&gt;
&lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6" /&gt;
&lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6" /&gt;
&lt;w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis" /&gt;
&lt;w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis" /&gt;
&lt;w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference" /&gt;
&lt;w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference" /&gt;
&lt;w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title" /&gt;
&lt;w:LsdException Locked="false" Priority="37" Name="Bibliography" /&gt;
&lt;w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading" /&gt;
&lt;/w:LatentStyles&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;style type="text/css"&gt;&lt;!--
 /* Font Definitions */
 @font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;
	mso-font-charset:0;
	mso-generic-font-family:roman;
	mso-font-pitch:variable;
	mso-font-signature:-1610611985 1107304683 0 0 159 0;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;
	mso-font-charset:0;
	mso-generic-font-family:swiss;
	mso-font-pitch:variable;
	mso-font-signature:-1610611985 1073750139 0 0 159 0;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-priority:1;
	mso-style-unhide:no;
	mso-style-qformat:yes;
	mso-style-parent:"";
	margin-top:0cm;
	margin-right:0cm;
	margin-bottom:10.0pt;
	margin-left:0cm;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:"Calibri","sans-serif";
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:"Times New Roman";
	mso-fareast-theme-font:minor-fareast;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;}
.MsoChpDefault
	{mso-style-type:export-only;
	mso-default-props:yes;
	mso-bidi-font-size:10.0pt;
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:"Times New Roman";
	mso-fareast-theme-font:minor-fareast;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;}
.MsoPapDefault
	{mso-style-type:export-only;
	margin-bottom:10.0pt;}
@page Section1
	{size:612.0pt 792.0pt;
	margin:72.0pt 72.0pt 72.0pt 72.0pt;
	mso-header-margin:36.0pt;
	mso-footer-margin:36.0pt;
	mso-paper-source:0;}
div.Section1
	{page:Section1;}
--&gt;&lt;/style&gt;&lt;!--[if gte mso 10]&gt;
&lt;style&gt;
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin-top:0cm;
mso-para-margin-right:0cm;
mso-para-margin-bottom:10.0pt;
mso-para-margin-left:0cm;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;}
&lt;/style&gt;
&lt;![endif]--&gt;&lt;span style="font-size: 11pt; font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"&gt;  &lt;v:stroke joinstyle="miter"&gt;  &lt;v:formulas&gt;   &lt;v:f eqn="if lineDrawn pixelLineWidth 0"&gt;   &lt;v:f eqn="sum @0 1 0"&gt;   &lt;v:f eqn="sum 0 0 @1"&gt;   &lt;v:f eqn="prod @2 1 2"&gt;   &lt;v:f eqn="prod @3 21600 pixelWidth"&gt;   &lt;v:f eqn="prod @3 21600 pixelHeight"&gt;   &lt;v:f eqn="sum @0 0 1"&gt;   &lt;v:f eqn="prod @6 1 2"&gt;   &lt;v:f eqn="prod @7 21600 pixelWidth"&gt;   &lt;v:f eqn="sum @8 21600 0"&gt;   &lt;v:f eqn="prod @7 21600 pixelHeight"&gt;   &lt;v:f eqn="sum @10 21600 0"&gt;  &lt;/v:f&gt;  &lt;v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"&gt;  &lt;o:lock v:ext="edit" aspectratio="t"&gt; &lt;/o:lock&gt;&lt;v:shape id="_x0000_i1025" type="#_x0000_t75" style="width: 409.5pt; height: 248.25pt;" o:ole=""&gt;  &lt;v:imagedata src="file:///C:\DOCUME~1\ELTON~1.STO\LOCALS~1\Temp\msohtmlclip1\01\clip_image001.emz" o:title=""&gt; &lt;/v:imagedata&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
&lt;o:OLEObject Type="Embed" ProgID="Visio.Drawing.11" ShapeID="_x0000_i1025"
DrawAspect="Content" ObjectID="_1289763974"&gt;
&lt;/o:OLEObject&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;/v:shape&gt;&lt;/v:path&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:formulas&gt;&lt;/v:stroke&gt;&lt;/v:shapetype&gt;&lt;/span&gt;
&lt;p&gt;&lt;em&gt;Considerations &lt;/em&gt;&lt;/p&gt;
&lt;p&gt;A distributed architecture has some of the same considerations you find in processing across a server farm, and some additional concerns:  &lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Distributed intelligence – how much complex logic do we want on the workstations? Auto-update functionality can be used to ensure the workstation always has the latest code before processing a work package, but the more dependencies the logic has, the more involved this becomes; &lt;/li&gt;
    &lt;li&gt;Data access – workstations processing packages may be outside the enterprise network, and directly accessing data sources may not be possible. The work package may be constructed to contain all necessary data, but this increases the processing load for the publishing system, and raises issues on data duplication and currency; &lt;/li&gt;
    &lt;li&gt;Security – depending on the data contained in the work packages and the processing work needed, anonymous access may not be feasible; a Windows authentication model with role- or claim-based authorisation will enable fine-grained security, but this will need more complex setup of the processing service on the workstations; &lt;/li&gt;
    &lt;li&gt;ACIDity – workstations may go offline at any time, and there's no guarantee that a work package will be completed once it's picked up. Transaction control is likely to need a custom solution depending on the requirements of the work package – the publisher could define a time limit, after which the package is published again if the first consumer has not responded, provided there are no affects from processing the package twice. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Potential Applications &lt;/em&gt;&lt;/p&gt;
&lt;p&gt;This architecture has a number of business attractions. Large enterprises could utilize their workstation landscape and ensure security by publishing work packages which are processed by their own domain machines. Smaller organizations could utilize workstation resources from a virtual processing centre in the cloud. Start-ups wouldn't need an up-front investment in their own servers . Service providers could provision processing power by recruiting home PCs on a pay-per-use basis. Operating system manufacturers could offer a free basic version in return for a commitment to providing processing power… &lt;/p&gt;
&lt;p&gt;From a technical view, this also opens interesting possibilities. Distribute all services to internal or external processing centres via the cloud and separate application servers are no longer needed.  Provide a virtual master database with SQL Services, with out-of-band integration to any LOB databases and separate database servers are no longer needed. You move to a 1+1-tier architecture of distributed smart clients and the cloud, with no server estate. &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127536"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127536" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/EltonStoneman/aggbug/127536.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/472988235" height="1" width="1"/&gt;</description><dc:creator>EltonStoneman</dc:creator><feedburner:origLink>http://geekswithblogs.net/EltonStoneman/archive/2008/12/02/cloud-distributed-computing.aspx</feedburner:origLink></item><item><title>Turning validators on from Javascript</title><link>http://feeds.feedburner.com/~r/geekswithblogs/~3/472937076/turning-validators-on-from-javascript.aspx</link><pubDate>Tue, 02 Dec 2008 21:56:28 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/SanjayU/archive/2008/12/02/turning-validators-on-from-javascript.aspx</guid><wfw:comment>http://geekswithblogs.net/SanjayU/comments/127535.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/SanjayU/comments/commentRss/127535.aspx</wfw:commentRss><comments>http://geekswithblogs.net/SanjayU/archive/2008/12/02/turning-validators-on-from-javascript.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/SanjayU/services/trackbacks/127535.aspx</trackback:ping><source url="http://geekswithblogs.net/SanjayU/rss.aspx">Turning validators on from Javascript</source><description>Oh the adventures of JavaScript and ASP.NET.  &lt;br /&gt;
&lt;br /&gt;
Can you turn on  validators [RequiredFieldValidators or otherwise] from JavaScript.  Yes, and actually it is easier than I thought. &lt;br /&gt;
&lt;br /&gt;
ValidtorEnable(ControlId,True/False)&lt;br /&gt;
&lt;br /&gt;
Ex:&lt;br /&gt;
&lt;br /&gt;
//You could easily make this prettier by not hardcoding the ClientID here&lt;br /&gt;
ValidatorEnable(document.getElementById('ctl00_ContentPlaceHolder1_Login1_UserName'), true);&lt;br /&gt;
&lt;br /&gt;
Keep in mind, you need to pass the &lt;span style="font-style: italic;"&gt;object &lt;/span&gt;not the clientID of the object.&lt;br /&gt;
&lt;br /&gt;
Source: &lt;a href="javascript:void(0);/*1228254848621*/"&gt;http://msdn.microsoft.com/en-us/library/aa479045.aspx&lt;/a&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127535"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127535" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/SanjayU/aggbug/127535.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/472937076" height="1" width="1"/&gt;</description><dc:creator>Sanjay</dc:creator><feedburner:origLink>http://geekswithblogs.net/SanjayU/archive/2008/12/02/turning-validators-on-from-javascript.aspx</feedburner:origLink></item><item><title>XBOX 360 Failure #4</title><link>http://feeds.feedburner.com/~r/geekswithblogs/~3/472873282/xbox-360-failure-4.aspx</link><pubDate>Tue, 02 Dec 2008 21:01:33 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/scottkuhl/archive/2008/12/02/xbox-360-failure-4.aspx</guid><wfw:comment>http://geekswithblogs.net/scottkuhl/comments/127534.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/scottkuhl/comments/commentRss/127534.aspx</wfw:commentRss><comments>http://geekswithblogs.net/scottkuhl/archive/2008/12/02/xbox-360-failure-4.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/scottkuhl/services/trackbacks/127534.aspx</trackback:ping><source url="http://geekswithblogs.net/scottkuhl/rss.aspx">XBOX 360 Failure #4</source><description>&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/scottkuhl/WindowsLiveWriter/XBOX360Failure4_D34E/image_2.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; margin: 5px; border-left: 0px; border-bottom: 0px" height="244" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/scottkuhl/WindowsLiveWriter/XBOX360Failure4_D34E/image_thumb.png" width="244" align="left" border="0" /&gt;&lt;/a&gt; Good grief.  Yet another XBOX has failed, this time it’s the new one from last year.  The DVD drive stopped spinning up right after the NXE update.&lt;/p&gt;  &lt;p&gt;Microsoft is footing the bill again and thankfully we have 2 so nobody will have to stop using their Lancers.  I made it in just under the 1 year maintenance agreement.&lt;/p&gt;  &lt;p&gt;But this is by far the least reliable product I have ever owned.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/scottkuhl/archive/2007/12/03/were-getting-our-4th-xbox-360-this-year.aspx"&gt;It was this same time last year we had failure #3.&lt;/a&gt;&lt;/p&gt;  &lt;div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:5a9bba86-e9c1-4227-8e97-33463b1ea966" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/microsoft" rel="tag"&gt;microsoft&lt;/a&gt;,&lt;a href="http://technorati.com/tags/xbox" rel="tag"&gt;xbox&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127534"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127534" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/scottkuhl/aggbug/127534.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/472873282" height="1" width="1"/&gt;</description><dc:creator>Scott Kuhl</dc:creator><feedburner:origLink>http://geekswithblogs.net/scottkuhl/archive/2008/12/02/xbox-360-failure-4.aspx</feedburner:origLink></item><item><title>Entity Framework Providers! (Yes, including Oracle!)</title><link>http://feeds.feedburner.com/~r/geekswithblogs/~3/472846558/127533.aspx</link><pubDate>Tue, 02 Dec 2008 20:28:34 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/ejohnson/archive/2008/12/02/127533.aspx</guid><wfw:comment>http://geekswithblogs.net/ejohnson/comments/127533.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/ejohnson/comments/commentRss/127533.aspx</wfw:commentRss><comments>http://geekswithblogs.net/ejohnson/archive/2008/12/02/127533.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/ejohnson/services/trackbacks/127533.aspx</trackback:ping><source url="http://geekswithblogs.net/ejohnson/rss.aspx">Entity Framework Providers! (Yes, including Oracle!)</source><description>&lt;p&gt;Ok, so I'm sitting in a session at DevTeach in Montreal right now... and someone mentioned to me that they didn't know of any Entity Framework Providers (outside of SQL) that had actually released yet... and I realized that I never got around to posting the links on my blog! &lt;/p&gt;  &lt;p&gt;The first Entity Framework providers were released at the beginning of September, by &lt;a href="http://devart.com/news/2008/directs475.html"&gt;Devart&lt;/a&gt; (&lt;a href="http://blogs.msdn.com/adonet/archive/2008/09/05/devart-s-new-providers-support-the-ado-net-entity-framework.aspx"&gt;ADO.NET Blog post&lt;/a&gt;) to support &lt;a href="http://devart.com/dotconnect/oracle/"&gt;Oracle&lt;/a&gt;, &lt;a href="http://devart.com/dotconnect/mysql/"&gt;MySQL&lt;/a&gt; and &lt;a href="http://devart.com/dotconnect/postgresql/"&gt;PostgreSQL&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;More recently we've also seen releases of providers by &lt;a href="http://pgfoundry.org/frs/shownotes.php?release_id=1230"&gt;Npgsql for PostgreSQL&lt;/a&gt; in October, and by &lt;a href="http://www.sybase.com/detail?id=1057559"&gt;Sybase IAnywhere with the release of SQL Anywhere 11&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Check them out!&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127533"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127533" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/ejohnson/aggbug/127533.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/472846558" height="1" width="1"/&gt;</description><dc:creator>Elisa Flasko</dc:creator><feedburner:origLink>http://geekswithblogs.net/ejohnson/archive/2008/12/02/127533.aspx</feedburner:origLink></item><item><title>Intellisense support for Jquery (in Visual Studio)</title><link>http://feeds.feedburner.com/~r/geekswithblogs/~3/472830256/jquery-vsdoc.aspx</link><pubDate>Tue, 02 Dec 2008 19:58:06 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/jakubmal/archive/2008/12/02/jquery-vsdoc.aspx</guid><wfw:comment>http://geekswithblogs.net/jakubmal/comments/127532.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/jakubmal/comments/commentRss/127532.aspx</wfw:commentRss><comments>http://geekswithblogs.net/jakubmal/archive/2008/12/02/jquery-vsdoc.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/jakubmal/services/trackbacks/127532.aspx</trackback:ping><source url="http://geekswithblogs.net/jakubmal/rss.aspx">Intellisense support for Jquery (in Visual Studio)</source><description>Hi!,&lt;br /&gt;
As all of you (I hope) I want to have something similar to Intellisense everywhere. So also I want it in JavaScript and particularly in jQuery. Yeah, yeah, I know, that we have Script# and even M$ uses it, but I want pure JS and pure jQuery. I become very as jQuery team brought us Visual Studio Documentation for jQuery. It is on their site in download section. Works very nice and start its help as soon as you start typing, $ goes first then identifier in brackets and after $("sth"). there is a beatiful list of functions to use. Documentation file is file with the same name as jQuery file, in the same folder, but it has "-vsdoc" interfix inside. More about it later.&lt;br /&gt;
&lt;br /&gt;
And here is something more about jQuery in MVC (which I really love). I created new MVC application project and I'm gonna use jQuery in it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;img height="469" width="378" border="5" align="left" alt="" src="/images/geekswithblogs_net/jakubmal/images/slnExpl.JPG" /&gt;&lt;br /&gt;
For first, most sophisticated question for me was, why doesn't it bring jQuery intellisense support file, but it seems that this version of MVC was packed before this file was available. If you are lazy or like very comfartable support (like me), then &lt;a href="javascript:void(0);/*1228158361577*/"&gt;here you are&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Ok, you say, but what when I want intellisense and I'm not able to add reference to jQuery (because e. g. I'm sitting in user control, and I'll place several controls of this kind on the page and I cannot reference jQuery hundred times). Workaround is simple:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;%if(false){ %&amp;gt;&lt;br /&gt;
&amp;lt;script language="javascript" src="Scripts/jquery-1.2.6.js" type="text/javascript" /&amp;gt;&lt;br /&gt;
&amp;lt;% }  %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
if you put this on your page, you will have intellisense. &lt;br /&gt;
&lt;br /&gt;
But remember! You reference jQuery file, then VS look for file with same name but with "-vsdoc" interfix. You don't reference file with "-vsdoc" in name, you just put it in folder where normal jQuery file is.&lt;br /&gt;
&lt;br /&gt;
See you next post!&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127532"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127532" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/jakubmal/aggbug/127532.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/472830256" height="1" width="1"/&gt;</description><dc:creator>jakubmal</dc:creator><feedburner:origLink>http://geekswithblogs.net/jakubmal/archive/2008/12/02/jquery-vsdoc.aspx</feedburner:origLink></item><item><title>ANTLR for C# Part 1: Installation </title><link>http://feeds.feedburner.com/~r/geekswithblogs/~3/472818309/antlr-for-c-part-1-installation.aspx</link><pubDate>Tue, 02 Dec 2008 19:44:50 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/bitsnpieces/archive/2008/12/02/antlr-for-c-part-1-installation.aspx</guid><wfw:comment>http://geekswithblogs.net/bitsnpieces/comments/127531.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/bitsnpieces/comments/commentRss/127531.aspx</wfw:commentRss><comments>http://geekswithblogs.net/bitsnpieces/archive/2008/12/02/antlr-for-c-part-1-installation.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/bitsnpieces/services/trackbacks/127531.aspx</trackback:ping><source url="http://geekswithblogs.net/bitsnpieces/rss.aspx">ANTLR for C# Part 1: Installation </source><description>&lt;p&gt;This is the first of a series of posts that are intended to help C# developers to get ANTLR up and running and help me to remember what steps were required to get things set up.&lt;/p&gt;
&lt;h3&gt;What is ANTLR?&lt;/h3&gt;
&lt;p&gt;Take a look at the &lt;a href="http://www.antlr.org/"&gt;ANTLR website&lt;/a&gt;. ANTLR is a tool for developers who want to create languages that comply to a &lt;a href="http://en.wikipedia.org/wiki/Context-free_grammar"&gt;context-free grammar&lt;/a&gt;. For such a grammar, ANTLR can create a &lt;a href="http://en.wikipedia.org/wiki/Lexical_analysis"&gt;lexer&lt;/a&gt;, a &lt;a href="http://en.wikipedia.org/wiki/Parser"&gt;parser&lt;/a&gt;, an &lt;a href="http://en.wikipedia.org/wiki/Abstract_syntax_tree"&gt;abstract syntax tree&lt;/a&gt; and even a corresponding tree walker.&lt;/p&gt;
&lt;p&gt;You need some or all of those components to validate, process or transform texts written in your custom language.&lt;/p&gt;
&lt;p&gt;ANTLR is written in Java. Nevertheless, it is capable of generating code for all kinds of &lt;a href="http://www.antlr.org/wiki/display/ANTLR3/Code+Generation+Targets"&gt;target languages&lt;/a&gt;, which means the generated lexers, parsers and so forth are expressed e.g. in C# code, which is the generation target of interest in this post&lt;/p&gt;
&lt;p&gt;While generated code is C#, the tool processing the original grammar definitions and producing the desired C# code is a Java tool. This means you have to have a Java runtime installed. If you don't get the JRE from &lt;a href="http://java.sun.com/javase/downloads/index.jsp"&gt;Sun's Java site&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Once you have a JRE installed we can finally get our hands at ANTLR.&lt;/p&gt;
&lt;h3&gt;Authoring environment ANTLRWorks&lt;/h3&gt;
&lt;p&gt;Defining a grammar in a text editor and then generating code for it with ANTLR will work just fine. But there is an amazing authoring environment available, called &lt;a href="http://www.antlr.org/works/index.html"&gt;ANTLRWorks&lt;/a&gt;. It features syntax highlighting for grammars, syntax tree visualization for rules, on the fly evaluation of expressions, debugging and much more. It is the easiest way to get started with ANTLR.&lt;/p&gt;
&lt;p&gt;Download the latest ANTLRWorks JAR file from &lt;a href="http://www.antlr.org/works/index.html"&gt;here&lt;/a&gt;. Depending on your system settings you can either just double-click the JAR file or enter &lt;/p&gt;
&lt;blockquote&gt;
&lt;pre&gt;java -jar antlrworks-1.2.2.jar&lt;/pre&gt;
&lt;/blockquote&gt;at a console prompt. (Note that by the time you read this, version numbers may have changed.)
&lt;p&gt;The application should come up and you would be able to start entering a grammar. Just copy the following dummy grammar into the editor: &lt;/p&gt;
&lt;blockquote&gt;
&lt;pre&gt;grammar MyGrammar;  
options
{
  language = CSharp2;
} 
start: LET+;
LET: 'a'..'z';&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;Save the file as MyGrammar.g and select &lt;em&gt;Generate&lt;/em&gt; from the &lt;em&gt;Generate&lt;/em&gt; menu. It should just work and create two C# files in an output folder next to the grammar file.&lt;/p&gt;
&lt;p&gt;So we know it works.&lt;/p&gt;
&lt;h3&gt;ANTLR runtime&lt;/h3&gt;
There are various ways to get what you need, but what I found to be the easiest was to download what the &lt;a href="http://www.antlr.org/download.html"&gt;ANTLR download site&lt;/a&gt; currently calls the &lt;span style="FONT-STYLE: italic"&gt;ANTLR 3.1.1 source distribution&lt;/span&gt;, which comes as a file called antlr-3.1.1.tar.gz.
&lt;p&gt;Once you unzip and untar the archive, you find a collection of files and folders the most interesting for our purpose are: &lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;span style="FONT-STYLE: italic"&gt;lib&lt;/span&gt;: Contains JAR files required to run ANTLR from the command line. &lt;/li&gt;
    &lt;li&gt;&lt;span style="FONT-STYLE: italic"&gt;runtime\CSharp\dist&lt;/span&gt;: Contains a ZIP file with DLL files required to use the generated lexers and parsers in a C# application. &lt;/li&gt;
    &lt;li&gt;&lt;span style="FONT-STYLE: italic"&gt;src&lt;/span&gt;: Contains the Java source code for ANTLR. &lt;/li&gt;
&lt;/ul&gt;
Let's start with the JARs in &lt;span style="FONT-STYLE: italic"&gt;lib&lt;/span&gt;: If you only plan to generate C# source code from within ANTLRWorks, you will not need these at all. But if you consider doing the generation steps also from the command line or include it in build scripts, you need to add them to the Java classpath. On my system this looks like the following in at a Windows command prompt:  &lt;blockquote dir="ltr" style="MARGIN-RIGHT: 0px"&gt;
&lt;pre&gt;set CLASSPATH=%CLASSPATH%;D:\Antlr\antlr-3.1.1\lib\antlr-3.1.1.jar&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;After setting the class path, execute the following to compile the grammar file save above:&lt;/p&gt;
&lt;blockquote dir="ltr" style="MARGIN-RIGHT: 0px"&gt;
&lt;pre&gt;java org.antlr.Tool MyGrammar.g&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;This again should work fine.&lt;/p&gt;
&lt;h3&gt;Creating a C# project&lt;/h3&gt;
Finally, we want to compile the generated sources to see the created code is valid. We won't do anything useful with it, just finish up our path through the tool chain.  
&lt;p&gt;Create a C# command line application project in Visual Studio. I am using VS2008, but earlier versions should do fine as well. Now unzip the archive found in &lt;em&gt;runtime\CSharp\dist &lt;/em&gt;mentioned in the previous section. You'll get a bunch of assemblies. Add references to the ones mentioned &lt;a href="http://www.antlr.org/wiki/display/ANTLR3/Antlr+3+CSharp+Target"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In your code, instantiate the two generated classes &lt;span style="FONT-STYLE: italic"&gt;MyGrammarLexer&lt;/span&gt; and &lt;span style="FONT-STYLE: italic"&gt;MyGrammarParser&lt;/span&gt;. Compile the application. If it links, your toolchain to use ANTLR in a C# environment has been successfully put in place.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127531"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127531" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/bitsnpieces/aggbug/127531.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/472818309" height="1" width="1"/&gt;</description><dc:creator>Mike Pagel</dc:creator><feedburner:origLink>http://geekswithblogs.net/bitsnpieces/archive/2008/12/02/antlr-for-c-part-1-installation.aspx</feedburner:origLink></item><item><title>Welcome to Reality</title><link>http://feeds.feedburner.com/~r/geekswithblogs/~3/472793867/welcome-to-reality.aspx</link><pubDate>Tue, 02 Dec 2008 19:22:39 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/Bunch/archive/2008/12/02/welcome-to-reality.aspx</guid><wfw:comment>http://geekswithblogs.net/Bunch/comments/127528.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/Bunch/comments/commentRss/127528.aspx</wfw:commentRss><comments>http://geekswithblogs.net/Bunch/archive/2008/12/02/welcome-to-reality.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/Bunch/services/trackbacks/127528.aspx</trackback:ping><source url="http://geekswithblogs.net/Bunch/rss.aspx">Welcome to Reality</source><description>I found this &lt;a href="http://www.pcworld.com/article/154780/apple_antivirus.html?tk=rss_news"&gt;link&lt;/a&gt; pretty interesting about how Apple is now recommending that Mac users install an anti-virus program. It would be amusing to hear a Mac user complain about how their anti-virus software is bogging down their computer (McAfee I'm looking at you). I am not an Apple basher or anything but the article does go on to mention how in 2006 TV ads touted that Macs were invulnerable to viruses. Personally I do not use a Mac, I just couldn't get past the one button mouse thing. &lt;br /&gt;
&lt;br /&gt;
Plus the Simpson's bit on (m)Apple on Sunday was funny as well.&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127528"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127528" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/Bunch/aggbug/127528.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/472793867" height="1" width="1"/&gt;</description><dc:creator>Bunch</dc:creator><feedburner:origLink>http://geekswithblogs.net/Bunch/archive/2008/12/02/welcome-to-reality.aspx</feedburner:origLink></item><item><title>.NET Tip: Getting information from DataTable.DefaultView using RowFilter</title><link>http://feeds.feedburner.com/~r/geekswithblogs/~3/472747181/.net-tip-getting-information-from-datatable.defaultview-using-rowfilter.aspx</link><pubDate>Tue, 02 Dec 2008 18:38:58 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/WTFNext/archive/2008/12/02/.net-tip-getting-information-from-datatable.defaultview-using-rowfilter.aspx</guid><wfw:comment>http://geekswithblogs.net/WTFNext/comments/127527.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/WTFNext/comments/commentRss/127527.aspx</wfw:commentRss><comments>http://geekswithblogs.net/WTFNext/archive/2008/12/02/.net-tip-getting-information-from-datatable.defaultview-using-rowfilter.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/WTFNext/services/trackbacks/127527.aspx</trackback:ping><source url="http://geekswithblogs.net/WTFNext/rss.aspx">.NET Tip: Getting information from DataTable.DefaultView using RowFilter</source><description>&lt;p&gt;So it may make sense to you how to fetch information from a DefaultView using RowFilter by binding the view, but what about when you just need to extract a value?&lt;/p&gt;  &lt;p&gt;After applying a RowFilter, the first inclination might be to use the DefaultView.Table.Rows to get information that is filtered. Well, that is ultimately wrong. The DefaultView.Table returns the table the view had originated from. The table you get does not have the RowFilter restrictions applied, and therefore returns the whole table. Instead, use the DefaultView.Item(&lt;em&gt;index&lt;/em&gt;).Item(&lt;em&gt;columnname&lt;/em&gt;) to get the value that really comes from the filtered results. Here's a small snippet to illustrate DefaultView's use as mentioned above:&lt;/p&gt;  &lt;pre class="code"&gt;&lt;span style="color: blue"&gt;Public Function &lt;/span&gt;GetRate(&lt;span style="color: blue"&gt;ByVal &lt;/span&gt;id &lt;span style="color: blue"&gt;As Integer&lt;/span&gt;, &lt;span style="color: blue"&gt;ByVal &lt;/span&gt;suffix &lt;span style="color: blue"&gt;As Integer&lt;/span&gt;) &lt;span style="color: blue"&gt;As Double
    &lt;/span&gt;&lt;span style="color: green"&gt;'fetch rate
    &lt;/span&gt;&lt;span style="color: blue"&gt;With &lt;/span&gt;m_rates.Tables(&lt;span style="color: #a31515"&gt;"rates"&lt;/span&gt;).DefaultView
        &lt;span style="color: green"&gt;'if there are results set rate to the value else 0.0
        &lt;/span&gt;.RowFilter = &lt;span style="color: #a31515"&gt;"acn = '" &lt;/span&gt;&amp;amp; id.ToString(CultureInfo.InvariantCulture) &amp;amp; &lt;span style="color: #a31515"&gt;"' and sh_sfx = '" &lt;/span&gt;&amp;amp; suffix.ToString(CultureInfo.InvariantCulture) &amp;amp; &lt;span style="color: #a31515"&gt;"'"
        &lt;/span&gt;&lt;span style="color: blue"&gt;If &lt;/span&gt;.Count &amp;gt; 0 &lt;span style="color: blue"&gt;Then
            Return &lt;/span&gt;.Item(0).Item(&lt;span style="color: #a31515"&gt;"est_interest_rate"&lt;/span&gt;)
        &lt;span style="color: blue"&gt;Else
            Return &lt;/span&gt;0.0
        &lt;span style="color: blue"&gt;End If
    End With
End Function&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;Again, any comments are welcome on this snippet of code.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:8bcb4e6b-f974-4afc-8641-99c28dd2742c" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/DefaultView" rel="tag"&gt;DefaultView&lt;/a&gt;,&lt;a href="http://technorati.com/tags/VB.NET" rel="tag"&gt;VB.NET&lt;/a&gt;,&lt;a href="http://technorati.com/tags/.NET%20Tips" rel="tag"&gt;.NET Tips&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127527"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127527" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/WTFNext/aggbug/127527.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/472747181" height="1" width="1"/&gt;</description><dc:creator>Stacy Vicknair</dc:creator><feedburner:origLink>http://geekswithblogs.net/WTFNext/archive/2008/12/02/.net-tip-getting-information-from-datatable.defaultview-using-rowfilter.aspx</feedburner:origLink></item><item><title>How to discover a SQL Server connection's Server and Database name</title><link>http://feeds.feedburner.com/~r/geekswithblogs/~3/472709959/127526.aspx</link><pubDate>Tue, 02 Dec 2008 18:03:18 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/bbiales/archive/2008/12/02/127526.aspx</guid><wfw:comment>http://geekswithblogs.net/bbiales/comments/127526.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/bbiales/comments/commentRss/127526.aspx</wfw:commentRss><comments>http://geekswithblogs.net/bbiales/archive/2008/12/02/127526.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/bbiales/services/trackbacks/127526.aspx</trackback:ping><source url="http://geekswithblogs.net/bbiales/rss.aspx">How to discover a SQL Server connection's Server and Database name</source><description>&lt;p&gt;&lt;font size="2"&gt;Ok, so this probably doesn't happen often, where some code doesn't know on what server or database it is operating on, but needs to know this information...  To be honest, I created this as I was able to logon to someone's DotNetNuke site as an admin, but did not have direct access to the website files.  The site owner asked where the database resided.  So I went to the Host-&amp;gt;SQL menu option, which lets you run dynamic sql against your database.  And I typed this command in to discover the server and database name that DNN was using:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;SELECT @@servername as ServerName, db_name() as DatabaseName&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;@@servername resolves to the name of the database server, and db_name() resolves to the "default" or current database.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Quite simple, I am posting it just in case someone else may find this useful some day.&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127526"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127526" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/bbiales/aggbug/127526.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/472709959" height="1" width="1"/&gt;</description><dc:creator>Brian Biales</dc:creator><feedburner:origLink>http://geekswithblogs.net/bbiales/archive/2008/12/02/127526.aspx</feedburner:origLink></item><item><title>Unit Testing and SharePoint</title><link>http://feeds.feedburner.com/~r/geekswithblogs/~3/472696539/unit-testing-and-sharepoint.aspx</link><pubDate>Tue, 02 Dec 2008 17:47:31 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/deyaert/archive/2008/12/02/unit-testing-and-sharepoint.aspx</guid><wfw:comment>http://geekswithblogs.net/deyaert/comments/127525.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/deyaert/comments/commentRss/127525.aspx</wfw:commentRss><comments>http://geekswithblogs.net/deyaert/archive/2008/12/02/unit-testing-and-sharepoint.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/deyaert/services/trackbacks/127525.aspx</trackback:ping><source url="http://geekswithblogs.net/deyaert/rss.aspx">Unit Testing and SharePoint</source><description>I've been looking around for sometime, but never found some good information about it. Well, today, I've found some interesting articles (It's not really that new, the article is dated September 15 2008). &lt;br /&gt;
&lt;br /&gt;
It seems that there's a possibility for Unit Testing with SharePoint, you can do it with TypeMock. &lt;br /&gt;
&lt;br /&gt;
The article is found &lt;a href="http://blog.typemock.com/2008/09/testing-sharepoint-now-easier-with-new.html"&gt;here&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Here are some other referenced articles that might be interesting.&lt;br /&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href="http://www.21apps.com/agile/unit-testing-sharepoint-getting-into-the-object-model/"&gt;Unit Testing SharePoint&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.21apps.com/agile/beginners-guide-to-test-driven-web-part-development/"&gt;Beginners guide to TDD Webpart development&lt;/a&gt; &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.codeplex.com/SPTypeMock"&gt;Sharepoint typemock wrapper&lt;/a&gt; (on codeplex)&lt;/li&gt;
&lt;/ul&gt;
Gonna try some of these articles. Hope it's worth it.&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127525"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127525" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/deyaert/aggbug/127525.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/472696539" height="1" width="1"/&gt;</description><dc:creator>deyaert</dc:creator><feedburner:origLink>http://geekswithblogs.net/deyaert/archive/2008/12/02/unit-testing-and-sharepoint.aspx</feedburner:origLink></item><item><title>Hello World, take #2</title><link>http://feeds.feedburner.com/~r/geekswithblogs/~3/472622906/127524.aspx</link><pubDate>Tue, 02 Dec 2008 20:06:17 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/kjones/archive/2008/12/02/127524.aspx</guid><wfw:comment>http://geekswithblogs.net/kjones/comments/127524.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/kjones/comments/commentRss/127524.aspx</wfw:commentRss><comments>http://geekswithblogs.net/kjones/archive/2008/12/02/127524.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/kjones/services/trackbacks/127524.aspx</trackback:ping><source url="http://geekswithblogs.net/kjones/rss.aspx">Hello World, take #2</source><description>&lt;p&gt;I thought I would restart this blog that I've barely used, by doing the traditional introduction.&lt;/p&gt;  &lt;p&gt;I'm Kelly Jones and I work for &lt;a href="http://www.sogeti.com"&gt;Sogeti USA&lt;/a&gt; in the Columbus, Ohio office.  I've been working in the IT field for ten years now.  Like most computer geeks, I've always tinkered with them, going clear back to my &lt;a href="http://www.429bauhaus.no-ip.com/Commodore/vic20.html"&gt;Commodore VIC-20&lt;/a&gt; circa 1983.&lt;/p&gt;  &lt;p&gt;Several years ago, I setup &lt;a href="http://www.429bauhaus.no-ip.com/"&gt;Another Old Computer Museum&lt;/a&gt; website.  The name was a little bit of a joke, since there were quite a few websites devoted old computers.  I originally made the HTML very simple, so people with older machines could browse the site.  Since then, I've hardly made any changes and now it almost seems "retro" so I'm going to leave the design as is.&lt;/p&gt;  &lt;p&gt;For my day job, I'm a Senior Consultant with Sogeti in the Microsoft Practice.  My most recent focus has been .Net development and SharePoint.  Programmer/developer was not how I started out in IT.  I worked my way up through help desk and did infrastructure stuff for a while (configuring servers; architecting/building out networks; desktop deployments) before jumping into web development with .NET.&lt;/p&gt;  &lt;p&gt;I recently spoke at a local Microsoft conference, the Dog Food Developer's Conference, with a fellow Sogetian, Mike Lutton.  We presented IE8, covering topics like web slices, accelerators, the new dev toolbar, DOM storage, etc.  You can download the slide deck here: &lt;/p&gt;  &lt;p&gt;&lt;iframe style="border-bottom: #dde5e9 1px solid; border-left: #dde5e9 1px solid; padding-bottom: 0px; background-color: #ffffff; margin: 3px; padding-left: 0px; width: 240px; padding-right: 0px; height: 66px; border-top: #dde5e9 1px solid; border-right: #dde5e9 1px solid; padding-top: 0px" marginheight="0" src="http://cid-707b73cfde9877ee.skydrive.live.com/embedrowdetail.aspx/Public" frameborder="0" marginwidth="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127524"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127524" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/kjones/aggbug/127524.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/472622906" height="1" width="1"/&gt;</description><dc:creator>Kelly Jones</dc:creator><feedburner:origLink>http://geekswithblogs.net/kjones/archive/2008/12/02/127524.aspx</feedburner:origLink></item><item><title>I officially hate SQL</title><link>http://feeds.feedburner.com/~r/geekswithblogs/~3/472598782/i-officially-hate-sql.aspx</link><pubDate>Tue, 02 Dec 2008 16:01:10 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/TheInspiredGecko/archive/2008/12/02/i-officially-hate-sql.aspx</guid><wfw:comment>http://geekswithblogs.net/TheInspiredGecko/comments/127523.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/TheInspiredGecko/comments/commentRss/127523.aspx</wfw:commentRss><comments>http://geekswithblogs.net/TheInspiredGecko/archive/2008/12/02/i-officially-hate-sql.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/TheInspiredGecko/services/trackbacks/127523.aspx</trackback:ping><source url="http://geekswithblogs.net/TheInspiredGecko/rss.aspx">I officially hate SQL</source><description>&lt;p&gt;Don't get me wrong, it's a powerful language, but sometimes it just hacks me off.&lt;/p&gt;  &lt;p&gt;In case anyone is wondering where the rant is coming from, I'm trying to take two stored procedures and merge them. One gets a list, and the second gets child records of the first list. And trust me, it is more complicated than it sounds because of particular nuances in the SPs.&lt;/p&gt;  &lt;p&gt;If I solve it, I'll let you know!&lt;/p&gt;  &lt;p&gt;Benjamin&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127523"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127523" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/TheInspiredGecko/aggbug/127523.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/472598782" height="1" width="1"/&gt;</description><dc:creator>TheInspiredGecko</dc:creator><feedburner:origLink>http://geekswithblogs.net/TheInspiredGecko/archive/2008/12/02/i-officially-hate-sql.aspx</feedburner:origLink></item><item><title>IBM XML Contest</title><link>http://feeds.feedburner.com/~r/geekswithblogs/~3/472554976/127521.aspx</link><pubDate>Tue, 02 Dec 2008 15:14:35 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/bsherwin/archive/2008/12/02/127521.aspx</guid><wfw:comment>http://geekswithblogs.net/bsherwin/comments/127521.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/bsherwin/comments/commentRss/127521.aspx</wfw:commentRss><comments>http://geekswithblogs.net/bsherwin/archive/2008/12/02/127521.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/bsherwin/services/trackbacks/127521.aspx</trackback:ping><source url="http://geekswithblogs.net/bsherwin/rss.aspx">IBM XML Contest</source><description>&lt;p&gt;While I am not always all that interested in IBM DB2 XML contests, this one interested me because I collect Rubick's cubes. I probably have 50 different cubes from 6 sided to a 12 sided puzzle that works on the same principles of the Cube.&lt;/p&gt;
&lt;p&gt;Anyway, I may have to enter just to increase my chances of getting another Cube.&lt;/p&gt;
&lt;p&gt;Check it out over here...you could win a 32GB iPod Touch!&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;&lt;a href="http://antoniocangiano.com/2008/12/01/ibms-xml-challenge-lots-of-prizes-inside/"&gt;http://antoniocangiano.com/2008/12/01/ibms-xml-challenge-lots-of-prizes-inside/&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127521"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127521" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/bsherwin/aggbug/127521.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/472554976" height="1" width="1"/&gt;</description><dc:creator>Brian Sherwin</dc:creator><feedburner:origLink>http://geekswithblogs.net/bsherwin/archive/2008/12/02/127521.aspx</feedburner:origLink></item><item><title>Ulterior Motive Lounge Episode 26: Aboard the Helicopters</title><link>http://feeds.feedburner.com/~r/geekswithblogs/~3/472682678/ulterior-motive-lounge-episode-26-aboard-the-helicopters.aspx</link><pubDate>Tue, 02 Dec 2008 13:59:21 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/UlteriorMotiveLounge/archive/2008/12/02/ulterior-motive-lounge-episode-26-aboard-the-helicopters.aspx</guid><wfw:comment>http://geekswithblogs.net/UlteriorMotiveLounge/comments/127519.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/UlteriorMotiveLounge/comments/commentRss/127519.aspx</wfw:commentRss><comments>http://geekswithblogs.net/UlteriorMotiveLounge/archive/2008/12/02/ulterior-motive-lounge-episode-26-aboard-the-helicopters.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/UlteriorMotiveLounge/services/trackbacks/127519.aspx</trackback:ping><source url="http://geekswithblogs.net/UlteriorMotiveLounge/rss.aspx">Ulterior Motive Lounge Episode 26: Aboard the Helicopters</source><description>&lt;p&gt;Continuing &lt;a href="http://geekswithblogs.net/UlteriorMotiveLounge/archive/2008/11/26/ulterior-motive-lounge-episode-25-the-uml-guys-terms.aspx"&gt;The Project That Time Forgot&lt;/a&gt;, a UML case study in comic strip form... (Click picture for a larger image.)&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/o_Episode%2026.jpg"&gt;&lt;img alt="Ulterior Motive Lounge Episode 26" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/r_Episode%2026.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This is the first we've seen of Deployment Diagrams in the Lounge; but they're enough like Class Diagrams that I think you should find them easy to read. Here's the diagram above, larger and more readable:&lt;/p&gt;
&lt;p&gt;&lt;img alt="Logical Deployment Diagram" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/o_Logical%20Deployment.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;The cubes represent nodes within the system. By default, they represent Processors: computers where you'll deploy code. The &lt;strong&gt;&amp;lt;&amp;lt;device&amp;gt;&amp;gt;&lt;/strong&gt; stereotype here indicates devices that your system talks to, but you don't actually deploy any code there. The lines connecting the nodes represent paths of communication. Recall from our Class Diagrams that we use arrows to indicate which end of a relationship is a "controller or "owner" in the relationship; but if the ends are "peers" -- or if we just haven't decided the details yet -- we use simple lines, not arrows. Lines are more common in Deployment Diagrams.&lt;/p&gt;
&lt;p&gt;As in Class Diagrams, the triangle-headed arrow indicates generalization or inheritance. In this example, a Windows Mobile Phone is a more-specific example of a cell phone, one where we can deploy Windows Mobile apps.&lt;/p&gt;
&lt;p&gt;Processors and devices are physical things. Stakeholders who haven't a clue what Classes they need will commonly have strong opinions of what nodes they need. "We're going to have PCs at all these stations, and a server back here, and two printers over here, and a connection to the Internet here, and..." So a Deployment Diagram is often part of their requirements, not just their design. (Of course, the design may result in deployment changes...) Drawing the Deployment Diagram is a good starting point for discussing the system.&lt;/p&gt;
&lt;p&gt;To make these diagrams even more readable to the stakeholders, it's common to add specific icons for specific kinds of nodes:&lt;/p&gt;
&lt;p&gt;&lt;img alt="Logical Deployment Diagram with node icons" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/o_Deployment%20with%20Icons.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;What we've seen so far are &lt;em&gt;logical&lt;/em&gt; Deployment Diagrams: these are the nodes that must communicate to carry out requirements, but not the full picture. A physical Deployment Diagram adds the hardware that connects these nodes, and also describes the connections:&lt;/p&gt;
&lt;p&gt;&lt;img alt="Physical Deployment Diagram" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/o_Physical%20Deployment.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;Some stakeholders -- particularly IT staff and network admins -- will prefer the physical Deployment Diagrams; but most will prefer to know where work is done, without reference to how the nodes connect.&lt;/p&gt;
&lt;p&gt;Note also some added detail here: besides Windows Mobile Phones, we have two other kinds of cellular devices. The Tablet PCs are equipped with Cellular Modems; and the GPS Locators use cell signals to broadcast their locations. Hmmm... That means the cellular network is very close to being a single point of failure. if that went down, it would be bad...&lt;/p&gt;
&lt;p&gt; Other notes from today's Episode:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Dog refused to be left home. She's pretty stubborn sometimes. &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.wimax.com/"&gt;WiMAX&lt;/a&gt; is becoming a very popular solution for wide-range wireless networking. But darn it, they &lt;em&gt;still&lt;/em&gt; don't have a tower that can reach my house! &lt;/li&gt;
    &lt;li&gt;Stick Boy is a gamer geek. He never goes anywhere without his wizard st