<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
  <channel xmlns:blog="http://www.dotnetnuke.com/blog/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
    <title>Code Charm</title>
    <description>Alan McBee's Professional Blog</description>
    <link>http://www.codecharm.com/Home/tabid/61/BlogId/2/Default.aspx</link>
    <language>en-US</language>
    <webMaster>AlanM@TwilightSoul.com</webMaster>
    <pubDate>Mon, 06 Feb 2012 10:08:32 GMT</pubDate>
    <lastBuildDate>Mon, 06 Feb 2012 10:08:32 GMT</lastBuildDate>
    <docs>http://backend.userland.com/rss</docs>
    <generator>Blog RSS Generator Version 4.1.0.0</generator>
    <item>
      <title>Daily Update</title>
      <link>http://www.codecharm.com/Home/tabid/61/EntryId/68/Daily-Update.aspx</link>
      <description>&lt;p&gt;Once again, I've been bitten by the IT engineer that decided to patch my system in the middle of the day and reboot it without warning.
&lt;/p&gt;&lt;p&gt;Hear me, engineers! If you are ever told to just reboot a system and ignore the warning thing that comes up and says "Are you sure? Other users are logged into this system and might lose their work!" then STOP. Do NOT ignore that warning (unless you happen to personally know exactly who those other users are and that they don't mind).
&lt;/p&gt;&lt;p&gt;Instead, use an Update Service or something. I tried finding a Powershell script that did this, but only got as far as a couple of scripts that show the logged-on users, including those using Remote Desktop (like I do). I didn't find anything that does a toaster popup or a countdown message box. But I may come back to that.
&lt;/p&gt;&lt;br /&gt;&lt;a href=http://www.codecharm.com/Home/tabid/61/EntryId/68/Daily-Update.aspx&gt;More ...&lt;/a&gt;</description>
      <author>AlanM@TwilightSoul.com</author>
      <comments>http://www.codecharm.com/Home/tabid/61/EntryId/68/Daily-Update.aspx#Comments</comments>
      <slash:comments>0</slash:comments>
      <guid isPermaLink="true">http://www.codecharm.com/Home/tabid/61/EntryId/68/Daily-Update.aspx</guid>
      <pubDate>Wed, 01 Feb 2012 01:11:56 GMT</pubDate>
      <trackback:ping>http://www.codecharm.comDesktopModules/BlogTrackback.aspx?id=68</trackback:ping>
    </item>
    <item>
      <title>Daily update</title>
      <link>http://www.codecharm.com/Home/tabid/61/EntryId/67/Daily-update.aspx</link>
      <description>&lt;p&gt;I'm struggling a little in that my work environment has a very high security wall, so to speak. I'm certainly not interested in revealing any secrets or sensitive information, but I'm doing and learning a lot of things that are probably useful to other people, and are useful for me to remember that I did later on. &lt;/p&gt;
&lt;p&gt;Beginning now, I plan to log all that I'm up to, good or bad. &lt;/p&gt;
&lt;p&gt;Couple of things going on today. &lt;/p&gt;
&lt;p&gt;First, we have a lot of architectural information going on, but I'm having a very difficult time finding it and figuring out how it is supposed to be useful to me. I'm reaching out to our CTO staff for some information and pointers on how they want things done and where, because I plan to start documenting our systems with a little more rigor now. &lt;/p&gt;
&lt;p&gt;Part of my inspiration is that I've been reading this book [&lt;a href="http://www.codecharm.comhttp://www.codecharm.com/Bookshelf.aspx"&gt;ROZA11&lt;/a&gt;]: &lt;a href="http://www.amazon.com/gp/product/032171833X/ref=as_li_ss_il?ie=UTF8&amp;tag=twilightsoul-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=032171833X"&gt;&lt;img alt="" style="border: 0px solid;" src="http://ws.assoc-amazon.com/widgets/q?_encoding=UTF8&amp;Format=_SL110_&amp;ASIN=032171833X&amp;MarketPlace=US&amp;ID=AsinImage&amp;WS=1&amp;tag=twilightsoul-20&amp;ServiceVersion=20070822" /&gt;&lt;/a&gt;&lt;img alt="" width="1" height="1" style="margin: 0px;border: medium none;" src="http://www.assoc-amazon.com/e/ir?t=twilightsoul-20&amp;l=as2&amp;o=1&amp;a=032171833X" /&gt; &lt;/p&gt;
&lt;p&gt;It is exactly what I needed – something to get me started without assuming that I'd been living inside architecture courses from college or had been hand-fed as an architect inside some giant consulting firm. &lt;/p&gt;
&lt;p&gt;This reminds me of one of my beefs about Wikipedia. It's as though it exists only as a tool for highly advanced specialist wonks to show off their legerdemain and jargon prowess. When concepts are explained, half the time they're explained using even more obscure concepts than the main concept. It's kind of like going to college by starting at the Ph.D. level and working your way back to the 101 classes for undergraduates. &lt;/p&gt;
&lt;p&gt;Anywho. Another book I intend to start reading, maybe before I finish Rozanski, is [&lt;a href="http://www.codecharm.comhttp://www.codecharm.com/Bookshelf.aspx"&gt;CLEM10&lt;/a&gt;]. It seems to get recommended by Rozanski quite frequently. &lt;a href="http://www.amazon.com/gp/product/0321552687/ref=as_li_ss_il?ie=UTF8&amp;tag=twilightsoul-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0321552687"&gt;&lt;img alt="" style="border: 0px solid;" src="http://ws.assoc-amazon.com/widgets/q?_encoding=UTF8&amp;Format=_SL110_&amp;ASIN=0321552687&amp;MarketPlace=US&amp;ID=AsinImage&amp;WS=1&amp;tag=twilightsoul-20&amp;ServiceVersion=20070822" /&gt;&lt;/a&gt;&lt;img alt="" width="1" height="1" style="margin: 0px;border: medium none;" src="http://www.assoc-amazon.com/e/ir?t=twilightsoul-20&amp;l=as2&amp;o=1&amp;a=0321552687" /&gt; &lt;/p&gt;
&lt;p&gt;Learning how to do System Context Diagrams, which means learning a little about IDEF0 diagrams. I already know about Use Case diagrams. &lt;/p&gt;
&lt;p&gt;I downloaded and installed the trial edition of &lt;a href="http://sparxsystems.com/"&gt;Sparx Systems Enterprise Architect&lt;/a&gt; product. It does quite a lot, but I'm wondering whether it does the one thing that I really want it to do. &lt;/p&gt;
&lt;p&gt;One thing that I have noticed is that there are so many dimensions, so many facets, so many attributes of everything that can be modeled in software architecture. The same part of system may need to be modeled in a way that is appropriate for executives, and again for technologists (like developers), and again for analysts and quality assurance. Given that the architecture is almost certainly going to be in flux, how does one keep all these models consistent over time? &lt;/p&gt;
&lt;p&gt;Also, for almost every one of our systems, we have multiple deployment targets: a development environment, a couple of integration environments, a couple of acceptance environments, and then the production environment (yes, I know it's a little excessive, but there it is). Sometimes I need to diagram information and process flow across these environments. &lt;/p&gt;
&lt;p&gt;Yeah, so I can always create any old diagram to show this, but I'm still unclear on how everything is organized and presented so that any stakeholder could self-direct to the appropriate architecture artifacts, whether that's a diagram, a spreadsheet, a document, a slide deck…. I suppose that part of the job of an architect is to determine how to organize and present for the specific stakeholders involved (as opposed to a generic stakeholder role list proposed by some unknown framework). &lt;/p&gt;
&lt;p&gt;Question is: how do &lt;em&gt;our&lt;/em&gt; architects organize and present for &lt;em&gt;our&lt;/em&gt; stakeholders? Because I certainly can't find the front door to this thing.&lt;/p&gt;&lt;br /&gt;&lt;a href=http://www.codecharm.com/Home/tabid/61/EntryId/67/Daily-update.aspx&gt;More ...&lt;/a&gt;&lt;div class="tags"&gt;Tags: sparx systems,enterprise architect,rozanski,architecture,clements,books,diagrams,system context diagrams,idef0 diagrams,use case diagrams&lt;/div&gt;&lt;div class="category"&gt;Category: &lt;a href=http://www.codecharm.com/Home/tabid/61/CatID/52/Default.aspx&gt;Architecture&lt;/a&gt;&lt;/div&gt;</description>
      <author>AlanM@TwilightSoul.com</author>
      <category domain="http://www.codecharm.com/Home/tabid/61/CatID/52/Default.aspx">Architecture</category>
      <comments>http://www.codecharm.com/Home/tabid/61/EntryId/67/Daily-update.aspx#Comments</comments>
      <slash:comments>0</slash:comments>
      <guid isPermaLink="true">http://www.codecharm.com/Home/tabid/61/EntryId/67/Daily-update.aspx</guid>
      <pubDate>Tue, 31 Jan 2012 01:05:42 GMT</pubDate>
      <trackback:ping>http://www.codecharm.comDesktopModules/BlogTrackback.aspx?id=67</trackback:ping>
      <blog:tag blog:url="http://www.codecharm.com/Home/tabid/61/TagID/49/Default.aspx">sparx systems</blog:tag>
      <blog:tag blog:url="http://www.codecharm.com/Home/tabid/61/TagID/50/Default.aspx">enterprise architect</blog:tag>
      <blog:tag blog:url="http://www.codecharm.com/Home/tabid/61/TagID/51/Default.aspx">rozanski</blog:tag>
      <blog:tag blog:url="http://www.codecharm.com/Home/tabid/61/TagID/33/Default.aspx">architecture</blog:tag>
      <blog:tag blog:url="http://www.codecharm.com/Home/tabid/61/TagID/52/Default.aspx">clements</blog:tag>
      <blog:tag blog:url="http://www.codecharm.com/Home/tabid/61/TagID/53/Default.aspx">books</blog:tag>
      <blog:tag blog:url="http://www.codecharm.com/Home/tabid/61/TagID/54/Default.aspx">diagrams</blog:tag>
      <blog:tag blog:url="http://www.codecharm.com/Home/tabid/61/TagID/55/Default.aspx">system context diagrams</blog:tag>
      <blog:tag blog:url="http://www.codecharm.com/Home/tabid/61/TagID/56/Default.aspx">idef0 diagrams</blog:tag>
      <blog:tag blog:url="http://www.codecharm.com/Home/tabid/61/TagID/57/Default.aspx">use case diagrams</blog:tag>
    </item>
    <item>
      <title>Visual Studio 2010 C# Singleton snippet</title>
      <link>http://www.codecharm.com/Home/tabid/61/EntryId/64/Visual-Studio-2010-C-Singleton-snippet.aspx</link>
      <description>&lt;p&gt;A snippet I use frequently.&lt;/p&gt;  &lt;div class="category"&gt;Category: &lt;a href=http://www.codecharm.com/Home/tabid/61/CatID/50/Default.aspx&gt;Code&lt;/a&gt;&lt;/div&gt;</description>
      <author>AlanM@TwilightSoul.com</author>
      <category domain="http://www.codecharm.com/Home/tabid/61/CatID/50/Default.aspx">Code</category>
      <comments>http://www.codecharm.com/Home/tabid/61/EntryId/64/Visual-Studio-2010-C-Singleton-snippet.aspx#Comments</comments>
      <slash:comments>0</slash:comments>
      <guid isPermaLink="true">http://www.codecharm.com/Home/tabid/61/EntryId/64/Visual-Studio-2010-C-Singleton-snippet.aspx</guid>
      <pubDate>Sun, 08 Jan 2012 04:58:44 GMT</pubDate>
      <trackback:ping>http://www.codecharm.comDesktopModules/BlogTrackback.aspx?id=64</trackback:ping>
    </item>
    <item>
      <title>Setting up unit tests for the model (domain) layer, and resources</title>
      <link>http://www.codecharm.com/Home/tabid/61/EntryId/61/Setting-up-unit-tests-for-the-model-domain-layer-and-resources.aspx</link>
      <description>&lt;p&gt;I'm a believer in creating unit tests for systems, to a point. For example, most of my systems have a data access layer, and a model (aka "domain" or "business") layer, which often follows the &lt;a href="http://www.martinfowler.com/eaaCatalog/repository.html"&gt;Repository pattern&lt;/a&gt;. (I'm not sure I see the value of always separating the Repository from the model, but that's another blog post.) &lt;/p&gt;
&lt;p&gt;Lately, my data access layers use &lt;a href="http://msdn.microsoft.com/en-us/library/bb399572.aspx"&gt;ADO.NET Entity Frameworks&lt;/a&gt;. I feel that there is very little point to writing unit tests for EF libraries. However, I need to test my Repository layer, without complicating my data access layer by trying to force EF to cooperate with some dependency injection framework (typically Unity). &lt;/p&gt;
&lt;p&gt;To this end, I've been pleased to discover and use &lt;a href="http://code.google.com/p/ndbunit/"&gt;NDbUnit&lt;/a&gt;. This package can be fetched using &lt;a href="http://nuget.org/"&gt;NuGet&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;This is how NDbUnit works, in a nutshell: &lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;Using a real database on a real database server, set up the schema and supporting objects for your database. &lt;/li&gt;
    &lt;li&gt;In front of every unit test, empty completely and re-load the database with a fixed set of data, pre-loaded from XML files into a DataSet. &lt;/li&gt;
    &lt;li&gt;Run the test. &lt;/li&gt;
    &lt;li&gt;Compare the output with expectations (I often use &lt;a href="http://approvaltests.sourceforge.net/"&gt;ApprovalTests&lt;/a&gt; for this, which are not on NuGet, yet), or check the database for what has been changed. &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Now, just to keep things a little complicated (naturally), I also use &lt;a href="http://www.jetbrains.com/resharper/"&gt;Resharper&lt;/a&gt;. In fact, I insist on it. Resharper supports a sort of ad-hoc unit test run mode, where I can simply click on a glyph in the left margin of my unit tests, and run just that one test. But I also want to keep using Visual Studio unit tests. &lt;/p&gt;
&lt;p&gt;This is where things get messy. Part of the NDbUnit set up needs to be able to read those XML files in order to set up the test fixture. Visual Studio implements an attribute called &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.testtools.unittesting.deploymentitemattribute(v=VS.80).aspx"&gt;DeploymentItem&lt;/a&gt; which tells the unit test framework to copy a file to the output folder for testing. In addition, I think you have to set the "Copy to Output Directory" property in the Solution Explorer for these XML files to "Copy always" or "Copy if Newer." (I didn't exhaustively test this.) Unfortunately, Resharper does not pay any attention to the DeploymentItem attribute. The Copy to Output Directory property might help, but the files are in different relative locations from the executing assembly. &lt;/p&gt;
&lt;p&gt;Bottom line – the only sure-fire way to get the XML files available to NDbUnit for preloading the database is to embed them as resources. And now we've opened another kettle of fish. &lt;/p&gt;
&lt;p&gt;There are basically two primary ways to get resources embedded into an assembly, and then extract them simply. &lt;/p&gt;
&lt;p&gt;The first way is to use Resource (.resx) files, and the &lt;a href="http://msdn.microsoft.com/en-us/library/system.resources.resourcemanager.aspx"&gt;ResourceManager&lt;/a&gt; class. This is what you do when you create a Resources section in the Properties of your Visual Studio project. Here are some of the parts you'll see in the IDE: &lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="/Portals/1/Blog/Files/2/61/010512_1929_Settingupun1.png" /&gt; &lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="/Portals/1/Blog/Files/2/61/010512_1929_Settingupun2.png" /&gt; &lt;/p&gt;
&lt;p&gt;This is the best way to support globalization. These resource files and the ResourceManager are built for localization. &lt;/p&gt;
&lt;p&gt;The second way is to set the &lt;strong&gt;Build Action&lt;/strong&gt; property of the files to "&lt;strong&gt;Embedded Resource&lt;/strong&gt;" and then &lt;em&gt;steer clear of ResourceManager&lt;/em&gt;. Instead, use Assembly.&lt;a href="http://msdn.microsoft.com/en-us/library/system.reflection.assembly.getmanifestresourcestream.aspx"&gt;GetManifestResourceStream&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;Why is this so important? Because the ResourceManager will automatically suffix ".resources" to any baseName you provide it when you construct it. This works great when all of your resources were built using Resource .resx files (or .resources files) and the &lt;a href="http://msdn.microsoft.com/en-us/library/ccec7sz1.aspx"&gt;ResGen.exe&lt;/a&gt; utility.&lt;/p&gt;&lt;br /&gt;&lt;a href=http://www.codecharm.com/Home/tabid/61/EntryId/61/Setting-up-unit-tests-for-the-model-domain-layer-and-resources.aspx&gt;More ...&lt;/a&gt;&lt;div class="tags"&gt;Tags: testing,unit tests,ndbunit,approvaltests,nuget,entity frameworks&lt;/div&gt;&lt;div class="category"&gt;Category: &lt;a href=http://www.codecharm.com/Home/tabid/61/CatID/50/Default.aspx&gt;Code&lt;/a&gt;&lt;/div&gt;</description>
      <author>AlanM@TwilightSoul.com</author>
      <category domain="http://www.codecharm.com/Home/tabid/61/CatID/50/Default.aspx">Code</category>
      <comments>http://www.codecharm.com/Home/tabid/61/EntryId/61/Setting-up-unit-tests-for-the-model-domain-layer-and-resources.aspx#Comments</comments>
      <slash:comments>0</slash:comments>
      <guid isPermaLink="true">http://www.codecharm.com/Home/tabid/61/EntryId/61/Setting-up-unit-tests-for-the-model-domain-layer-and-resources.aspx</guid>
      <pubDate>Thu, 05 Jan 2012 19:30:11 GMT</pubDate>
      <trackback:ping>http://www.codecharm.comDesktopModules/BlogTrackback.aspx?id=61</trackback:ping>
      <blog:tag blog:url="http://www.codecharm.com/Home/tabid/61/TagID/43/Default.aspx">testing</blog:tag>
      <blog:tag blog:url="http://www.codecharm.com/Home/tabid/61/TagID/44/Default.aspx">unit tests</blog:tag>
      <blog:tag blog:url="http://www.codecharm.com/Home/tabid/61/TagID/45/Default.aspx">ndbunit</blog:tag>
      <blog:tag blog:url="http://www.codecharm.com/Home/tabid/61/TagID/46/Default.aspx">approvaltests</blog:tag>
      <blog:tag blog:url="http://www.codecharm.com/Home/tabid/61/TagID/47/Default.aspx">nuget</blog:tag>
      <blog:tag blog:url="http://www.codecharm.com/Home/tabid/61/TagID/48/Default.aspx">entity frameworks</blog:tag>
    </item>
    <item>
      <title>WebFormsMvp and the AutoDataBind property</title>
      <link>http://www.codecharm.com/Home/tabid/61/EntryId/56/WebFormsMvp-and-the-AutoDataBind-property.aspx</link>
      <description>I discovered that I got unintentional double data-binding by leaving the AutoDataBind property of the WebFormsMvp.MvpUserControl set to True. I explain why I think this happened, and how to fix it.&lt;div class="category"&gt;Category: &lt;a href=http://www.codecharm.com/Home/tabid/61/CatID/50/Default.aspx&gt;Code&lt;/a&gt;&lt;/div&gt;</description>
      <author>AlanM@TwilightSoul.com</author>
      <category domain="http://www.codecharm.com/Home/tabid/61/CatID/50/Default.aspx">Code</category>
      <comments>http://www.codecharm.com/Home/tabid/61/EntryId/56/WebFormsMvp-and-the-AutoDataBind-property.aspx#Comments</comments>
      <slash:comments>0</slash:comments>
      <guid isPermaLink="true">http://www.codecharm.com/Home/tabid/61/EntryId/56/WebFormsMvp-and-the-AutoDataBind-property.aspx</guid>
      <pubDate>Wed, 30 Nov 2011 04:26:16 GMT</pubDate>
      <trackback:ping>http://www.codecharm.comDesktopModules/BlogTrackback.aspx?id=56</trackback:ping>
    </item>
    <item>
      <title>ASP.NET Dynamic Data Presentation</title>
      <link>http://www.codecharm.com/Home/tabid/61/EntryId/54/ASP-NET-Dynamic-Data-Presentation.aspx</link>
      <description>&lt;p&gt;&lt;iframe height="327" src="http://r.office.microsoft.com/r/rlidPowerPointEmbed?p1=1&amp;p2=1&amp;p3=SD6D8C2B8CC6C5F470!3075&amp;p4=&amp;kip=1" frameborder="0" width="402" scrolling="no"&gt;&lt;/iframe&gt;&lt;/p&gt;  &lt;p&gt;As given to the Sacramento .NET Users Group meeting on Oct 28, 2011&lt;/p&gt;&lt;br /&gt;&lt;a href=http://www.codecharm.com/Home/tabid/61/EntryId/54/ASP-NET-Dynamic-Data-Presentation.aspx&gt;More ...&lt;/a&gt;</description>
      <author>AlanM@TwilightSoul.com</author>
      <comments>http://www.codecharm.com/Home/tabid/61/EntryId/54/ASP-NET-Dynamic-Data-Presentation.aspx#Comments</comments>
      <slash:comments>0</slash:comments>
      <guid isPermaLink="true">http://www.codecharm.com/Home/tabid/61/EntryId/54/ASP-NET-Dynamic-Data-Presentation.aspx</guid>
      <pubDate>Wed, 26 Oct 2011 22:55:14 GMT</pubDate>
      <trackback:ping>http://www.codecharm.comDesktopModules/BlogTrackback.aspx?id=54</trackback:ping>
    </item>
    <item>
      <title>SLOW uninstall of Expression Studio</title>
      <link>http://www.codecharm.com/Home/tabid/61/EntryId/53/SLOW-uninstall-of-Expression-Studio.aspx</link>
      <description>&lt;p&gt;This is crazy! I'm trying to uninstall Microsoft Expression Studio 3 from my VMWare. It's been running for nearly three hours! Most of that time it has been in the Kernel. What's up with this? I don't remember it taking this long to install in the first place… :-(
&lt;/p&gt;&lt;p&gt;&lt;img src="/Portals/1/Blog/Files/2/53/101211_2329_SLOWuninsta1.png" alt=""/&gt;&lt;/p&gt;&lt;br /&gt;&lt;a href=http://www.codecharm.com/Home/tabid/61/EntryId/53/SLOW-uninstall-of-Expression-Studio.aspx&gt;More ...&lt;/a&gt;</description>
      <author>AlanM@TwilightSoul.com</author>
      <comments>http://www.codecharm.com/Home/tabid/61/EntryId/53/SLOW-uninstall-of-Expression-Studio.aspx#Comments</comments>
      <slash:comments>0</slash:comments>
      <guid isPermaLink="true">http://www.codecharm.com/Home/tabid/61/EntryId/53/SLOW-uninstall-of-Expression-Studio.aspx</guid>
      <pubDate>Wed, 12 Oct 2011 23:31:26 GMT</pubDate>
      <trackback:ping>http://www.codecharm.comDesktopModules/BlogTrackback.aspx?id=53</trackback:ping>
    </item>
    <item>
      <title>Silicon Valley Code Camp: Saturday</title>
      <link>http://www.codecharm.com/Home/tabid/61/EntryId/50/Silicon-Valley-Code-Camp-Saturday.aspx</link>
      <description>&lt;p&gt;I can’t recommend volunteering enough. It was just a small amount of extra work, but the payoff was the best. There was a shorter registration line for volunteers. But the dinner this evening was what tipped the balance. I’ll get to that.&lt;/p&gt;  &lt;p&gt;Coffee: there was plenty of it, but they seemed to have a sweetener shortage. A couple of sugar packets were procured, through means I wish not to know.&lt;/p&gt;  &lt;p&gt;Big lines in front of the vendors tents with the coolest stuff and bigger giveaways. Unsurprising and unavoidable. One must collect &lt;a href="http://knowyourmeme.com/memes/x-all-the-y"&gt;ALL THE THINGS&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;First session of the day for me: &lt;a href="http://www.siliconvalley-codecamp.com/Sessions.aspx?OnlyOne=true&amp;id=775"&gt;How to Break Into Mobile App Development&lt;/a&gt;. Delivered quite well, this talk would have been better titled How to Break Into a Mobile App Development Job. The course description made that clear. Why did I take this instead of &lt;a title="The Best HTML5 Tools You're Not Using" href="http://www.siliconvalley-codecamp.com/Sessions.aspx?OnlyOne=true&amp;id=812"&gt;The Best HTML5 Tools You're Not Using&lt;/a&gt;? I don’t know. But I’m glad I went. Biggest takeaway: this market is red hot, so employers are often more flexible than they will let on. This may not last long.&lt;/p&gt;  &lt;p&gt;Second session: &lt;a title="Building nTier Applications with Entity Framework Services" href="http://www.siliconvalley-codecamp.com/Sessions.aspx?OnlyOne=true&amp;id=605"&gt;Building nTier Applications with Entity Framework Services&lt;/a&gt;. I was a bit disappointed, although the speaker was easily quite knowledgeable. The curriculum claimed that I would “… learn how to easily and securely expose [my] object model using WCF with just a few line of code using WCF Data Services.” That’s not quite what happened. I learned that I &lt;em&gt;could&lt;/em&gt; do it using just a few lines of code, but I’m still not sure I know how to do it. Most of the class seemed to be a basic introduction to Entity Frameworks. I suppose I should be a little more circumspect about the “Intermediate” descriptor. Biggest takeaway: EF is ready for prime time, but be careful about performance issues. Monitor the generated SQL and tune those LINQ queries.&lt;/p&gt;  &lt;p&gt;Lunch. They ran out sandwiches right away (before I got any, which is all that mattered). I learned later that the organizers were not disappointed by that, and it makes some sense to me. Sandwiches don’t last so well in the open air, whereas most coders will happily eat pizza that is many hours old. I’m one of them, so no complaints from me.&lt;/p&gt;  &lt;p&gt;Third session: &lt;a title="Building Hybrid Applications with Service Bus v2" href="http://www.siliconvalley-codecamp.com/Sessions.aspx?OnlyOne=true&amp;id=795"&gt;Building Hybrid Applications with Service Bus v2&lt;/a&gt;. Excellent session. It was unfortunate that the Foothill College did not provide slightly better networking capabilities to the presenters. Everyone noticed that the Guest WiFi network, while much appreciated for being present at all, was very inconsistent and sporadic. I, for example, was often able to access Google and Yahoo but not Bing or the SVCC site. At any rate, our speaker was a little limited in demonstrating some features because of this. Nevertheless, the talk was very informative. Biggest takeaway: the topic/subscribe model adds a lot of power to messaging in the cloud. A LOT. It makes a lot of very interesting architectural models possible, especially for my pet project.&lt;/p&gt;  &lt;p&gt;During the break, I ran into &lt;a href="http://www.linkedin.com/pub/wayne-lund/0/ab2/683"&gt;Wayne Lund&lt;/a&gt; at the Cloud Foundry tent. We had some frank discussions about his experiences when we worked together. It was really good to see a familiar and unexpected face. He seems very happy in his new job, so I’m very happy for him. I’m looking forward to lunch with him next week or so; he always has some good advice and useful perspectives. Heck, I’ll even check out the product he’s promoting: &lt;a title="Cloud Foundry" href="http://www.cloudfoundry.com/"&gt;Cloud Foundry&lt;/a&gt; from VMWare. It does seem like a darned quick way into the cloud.&lt;/p&gt;  &lt;p&gt;Fourth session: Actually, I got tempted at the last minute to break from the session I planned to attend, and dropped in instead on &lt;a title="Entity Framework, LINQ, and WCF Data Services for Oracle Database" href="http://www.siliconvalley-codecamp.com/Sessions.aspx?OnlyOne=true&amp;id=762"&gt;Entity Framework, LINQ, and WCF Data Services for Oracle Database&lt;/a&gt;. Mostly because I just started a project at work to use EF to connect to an Oracle database (although the product is technically still in beta), and thought this would help. However, it became apparent pretty soon that the talk would probably not focus much on the Oracle aspect, and would focus more on the EF, WCF, and OData aspects. I didn’t need more of that. So I went to the session I originally said I would attend, &lt;a title="How to Become an Online Influencer" href="http://www.siliconvalley-codecamp.com/Sessions.aspx?OnlyOne=true&amp;id=747"&gt;How to Become an Online Influencer&lt;/a&gt;. Another excellent session, although it was directed more towards content producers than strictly technical people. Which now makes me wonder if I am trying to wear two hats. Which I would, both figuratively and literally, but probably shouldn’t. Biggest takeaway: promote other people more, and you will absorb influence.&lt;/p&gt;  &lt;p&gt;Fifth and last session: &lt;a title="DRY CSS &amp; Images" href="http://www.siliconvalley-codecamp.com/Sessions.aspx?OnlyOne=true&amp;id=686"&gt;DRY CSS &amp; Images&lt;/a&gt;. Although I am very sympathetic toward the speaker, who obviously cared a lot that she gave an informative and helpful talk, I found that I was most disappointed with this presentation. The curriculum teased me with “We've reduced CSS by 97% and run the entire web application based on five image files…. Find out how we did it.” Turns out they just started over and did it right, using what I would call a branding / markup standards document. I was hoping to get tips on approaches to naming rules, choosing selectors, applying cascading rules in a way that reduced replication without sacrificing flexibility. I did find out that CSS tools are still not ideal, which is surprising to me given the innate opaque complexity of the standard combined with its age. Biggest takeaway is CSS is still a huge pain in the ass to work with.&lt;/p&gt;  &lt;p&gt;Finally, as a volunteer, I was invited to attend the BBQ dinner for the speakers. The BBQ itself was quite tasty and satisfying. I got to meet &lt;a title="nima dilmaghani" href="http://www.siliconvalley-codecamp.com/Speakers.aspx?AttendeeId=1164"&gt;Nima Dilmaghani&lt;/a&gt;, who told me about his very interesting new business, &lt;a href="http://yumdom.com"&gt;yumdom.com&lt;/a&gt;, and told me he helped co-found SVCC. He gave me a lot of very, very helpful bits of advice regarding getting started on my own entrepreneurial pursuits. Spent a little while talking with &lt;a href="http://www.javaclimber.com/"&gt;Kevin Nilson&lt;/a&gt; about the Java world. Looks like its doing okay, but there is a lot of chaff after the Oracle acquisition. Maybe it’ll all get sorted out soon. Nima was talking up &lt;a href="http://rubyonrails.org/"&gt;Rails&lt;/a&gt;, even though he’s like me – a C# programmer. &lt;/p&gt;  &lt;p&gt;It’s kind of weird – in one way, there seems to be a bright line between Microsoft and non-Microsoft developers, something like I imagine is between &lt;a href="http://www.hurt911.org/joke.php"&gt;doctors&lt;/a&gt; and &lt;a href="http://www.workjoke.com/lawyers-jokes.html"&gt;lawyers&lt;/a&gt;. On the other hand, there was very much a shared sense of passion for technology, ambitions to create something to make the world better (and personally profitable, no doubt), and acceptance or even admiration for work done by anyone advancing the field regardless of whether their position was pro-Microsoft or Microsoft-agnostic. It’s true still, though, that the divide is present and drawn along that dimension; one doesn’t hear about Apple vs. non-Apple, or Oracle vs. non-Oracle, or even Java vs. non-Java. It’s always Microsoft vs. non-Microsoft. Eh. There’s still plenty of work for me to do.&lt;/p&gt;  &lt;p&gt;There’s a morning memorial for Steve Jobs. I won’t be attending. I was certainly influenced by the man, and have great admiration for him. But my presence (or absence) at that meeting does nothing for me or anyone else. But I will carry one of his legacies forward. I believe that simple is better. I rarely achieve it directly myself, but I can recognize when it is and isn’t there. Make everything useful as simple as it can be. Even words.&lt;/p&gt;&lt;br /&gt;&lt;a href=http://www.codecharm.com/Home/tabid/61/EntryId/50/Silicon-Valley-Code-Camp-Saturday.aspx&gt;More ...&lt;/a&gt;</description>
      <author>AlanM@TwilightSoul.com</author>
      <comments>http://www.codecharm.com/Home/tabid/61/EntryId/50/Silicon-Valley-Code-Camp-Saturday.aspx#Comments</comments>
      <slash:comments>4</slash:comments>
      <guid isPermaLink="true">http://www.codecharm.com/Home/tabid/61/EntryId/50/Silicon-Valley-Code-Camp-Saturday.aspx</guid>
      <pubDate>Sun, 09 Oct 2011 08:07:46 GMT</pubDate>
      <trackback:ping>http://www.codecharm.comDesktopModules/BlogTrackback.aspx?id=50</trackback:ping>
    </item>
    <item>
      <title>Winchester Mystery Applications</title>
      <link>http://www.codecharm.com/Home/tabid/61/EntryId/43/Winchester-Mystery-Applications.aspx</link>
      <description>&lt;p&gt;I put some thoughts about justifying the adoption of good architecture into a comment on LinkedIn, in the .NET Professional group. You may have to join the group to read it.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.linkedin.com/groupAnswers?viewQuestionAndAnswers=&amp;discussionID=71773168&amp;gid=46954&amp;commentID=52869921&amp;goback=%2Eamf_46954_7103969&amp;trk=NUS_DISC_Q-subject#commentID_52869921" title="cloud app-"&gt;How is your VB6/.NET code going to "hack it" when you need a web/mobile/cloud app?&lt;/a&gt;&lt;/p&gt;&lt;div class="tags"&gt;Tags: architecture,design,migration,.net,linkedin&lt;/div&gt;&lt;div class="category"&gt;Category: &lt;a href=http://www.codecharm.com/Home/tabid/61/CatID/51/Default.aspx&gt;SocialNet&lt;/a&gt;&lt;/div&gt;&lt;div class="category"&gt;Category: &lt;a href=http://www.codecharm.com/Home/tabid/61/CatID/52/Default.aspx&gt;Architecture&lt;/a&gt;&lt;/div&gt;</description>
      <author>AlanM@TwilightSoul.com</author>
      <category domain="http://www.codecharm.com/Home/tabid/61/CatID/51/Default.aspx">SocialNet</category>
      <category domain="http://www.codecharm.com/Home/tabid/61/CatID/52/Default.aspx">Architecture</category>
      <comments>http://www.codecharm.com/Home/tabid/61/EntryId/43/Winchester-Mystery-Applications.aspx#Comments</comments>
      <slash:comments>0</slash:comments>
      <guid isPermaLink="true">http://www.codecharm.com/Home/tabid/61/EntryId/43/Winchester-Mystery-Applications.aspx</guid>
      <pubDate>Sat, 24 Sep 2011 23:45:59 GMT</pubDate>
      <trackback:ping>http://www.codecharm.comDesktopModules/BlogTrackback.aspx?id=43</trackback:ping>
      <blog:tag blog:url="http://www.codecharm.com/Home/tabid/61/TagID/33/Default.aspx">architecture</blog:tag>
      <blog:tag blog:url="http://www.codecharm.com/Home/tabid/61/TagID/34/Default.aspx">design</blog:tag>
      <blog:tag blog:url="http://www.codecharm.com/Home/tabid/61/TagID/35/Default.aspx">migration</blog:tag>
      <blog:tag blog:url="http://www.codecharm.com/Home/tabid/61/TagID/36/Default.aspx">.net</blog:tag>
      <blog:tag blog:url="http://www.codecharm.com/Home/tabid/61/TagID/37/Default.aspx">linkedin</blog:tag>
    </item>
    <item>
      <title>Updated C# Event snippets</title>
      <link>http://www.codecharm.com/Home/tabid/61/EntryId/40/Updated-C-Event-snippets.aspx</link>
      <description>&lt;p&gt;I have updated some snippets that I use quite a lot when I want to add an event to a class. &lt;/p&gt;  &lt;p&gt;You can download the VSI file from CodeCharm.com.&lt;/p&gt;  &lt;div class="tags"&gt;Tags: Code,snippet,event,ASP.NET,control&lt;/div&gt;&lt;div class="category"&gt;Category: &lt;a href=http://www.codecharm.com/Home/tabid/61/CatID/50/Default.aspx&gt;Code&lt;/a&gt;&lt;/div&gt;</description>
      <author>AlanM@TwilightSoul.com</author>
      <category domain="http://www.codecharm.com/Home/tabid/61/CatID/50/Default.aspx">Code</category>
      <comments>http://www.codecharm.com/Home/tabid/61/EntryId/40/Updated-C-Event-snippets.aspx#Comments</comments>
      <slash:comments>0</slash:comments>
      <guid isPermaLink="true">http://www.codecharm.com/Home/tabid/61/EntryId/40/Updated-C-Event-snippets.aspx</guid>
      <pubDate>Sat, 24 Sep 2011 23:31:00 GMT</pubDate>
      <trackback:ping>http://www.codecharm.comDesktopModules/BlogTrackback.aspx?id=40</trackback:ping>
      <blog:tag blog:url="http://www.codecharm.com/Home/tabid/61/TagID/28/Default.aspx">Code</blog:tag>
      <blog:tag blog:url="http://www.codecharm.com/Home/tabid/61/TagID/29/Default.aspx">snippet</blog:tag>
      <blog:tag blog:url="http://www.codecharm.com/Home/tabid/61/TagID/30/Default.aspx">event</blog:tag>
      <blog:tag blog:url="http://www.codecharm.com/Home/tabid/61/TagID/31/Default.aspx">ASP.NET</blog:tag>
      <blog:tag blog:url="http://www.codecharm.com/Home/tabid/61/TagID/32/Default.aspx">control</blog:tag>
    </item>
  </channel>
</rss>
