<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.inetium.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">Jake Good - Code Poet</title><subtitle type="html">I code, therefore I am.</subtitle><id>http://blogs.inetium.com/blogs/jgood/atom.aspx</id><link rel="alternate" type="text/html" href="http://blogs.inetium.com/blogs/jgood/default.aspx" /><link rel="self" type="application/atom+xml" href="http://blogs.inetium.com/blogs/jgood/atom.aspx" /><generator uri="http://communityserver.org" version="4.1.31106.3070">Community Server</generator><updated>2006-07-13T10:39:00Z</updated><entry><title>We Are Microsoft Recap</title><link rel="alternate" type="text/html" href="/blogs/jgood/archive/2008/01/20/we-are-microsoft-recap.aspx" /><id>/blogs/jgood/archive/2008/01/20/we-are-microsoft-recap.aspx</id><published>2008-01-20T17:43:11Z</published><updated>2008-01-20T17:43:11Z</updated><content type="html">&lt;p&gt;As you have seen from my &lt;a href="http://blogs.inetium.com/blogs/jgood/archive/2007/11/09/we-are-microsoft.aspx" target="_blank"&gt;previous&lt;/a&gt; &lt;a href="http://blogs.inetium.com/blogs/jgood/archive/2008/01/18/the-challenge-begins.aspx" target="_blank"&gt;posts&lt;/a&gt;, I was involved in a charity event with Microsoft over the weekend. &lt;/p&gt;  &lt;p&gt;The quick recap:&lt;/p&gt;  &lt;p&gt;&lt;img height="107" src="http://www.volunteernorthtexas.org/VolunteerCenter/Images/Header.jpg" width="640" /&gt; &lt;/p&gt;  &lt;p&gt;Our charity, &lt;a href="http://www.volunteernorthtexas.org/"&gt;Volunteer Center of North Texas&lt;/a&gt;, needed a web front end to a SQL database that they have been keeping up since they started. Currently it's a set of Access DB screens on top of the data. Yuck!&lt;/p&gt;  &lt;p&gt;I am proud of what we accomplished, though it's nowhere near being completely finished, I feel as if they have a better start to their technological needs. To help them finish, another non-profit company has graciously donated consulting time to each of the projects for wrap-up and setup. Their sole purpose is to help 501c3 with the often expensive tasks of IT stuff. Wish I could remember their name...&lt;/p&gt;  &lt;p&gt;At any rate, here's a quick breakdown of what we accomplished:&lt;/p&gt;  &lt;p&gt;The site is built using ASP.Net 2.0 and SQL Server functionality. No other third part components are required.&lt;/p&gt;  &lt;p&gt;The back end is driven by a powerful, unit tested DataMapper pattern implementation, more documentation here &lt;a href="http://martinfowler.com/eaaCatalog/dataMapper.html"&gt;http://martinfowler.com/eaaCatalog/dataMapper.html&lt;/a&gt;, which provides developers with a nice object model to work with and abstracts (or hides) the database entirely. &lt;/p&gt;  &lt;p&gt;The front end is powered on ASP.Net 2.0 and features search functionality that is more efficient and easier than what was provided in their Access database GUI. &lt;/p&gt;  &lt;p&gt;High-lights:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Meeting more developers in the area.&lt;/li&gt;    &lt;li&gt;Being able to help charities (duh!).&lt;/li&gt;    &lt;li&gt;Learning more about ASP.Net from other developers.&lt;/li&gt;    &lt;li&gt;We crammed a lot into the last half of the weekend...&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Low-lights:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;We had a rough start.&lt;/li&gt;    &lt;li&gt;I worked from home, that provided some pitfalls, but overall the communication was always open.&lt;/li&gt;    &lt;li&gt;The first half of the weekend was focused slightly on feature sets and defining things, instead of digging into the core code right away.&lt;/li&gt;    &lt;li&gt;It felt a little disorganized, but that's because I was remote and we couldn't quite grasp our team feel until Saturday evening.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Overall, the weekend was a huge success... and I'm sure lots of people got the help that they needed!&lt;/p&gt;</content><author><name>jgood</name><uri>http://blogs.inetium.com/members/jgood/default.aspx</uri></author><category term="General" scheme="http://blogs.inetium.com/blogs/jgood/archive/tags/General/default.aspx" /></entry><entry><title>The Challenge Begins</title><link rel="alternate" type="text/html" href="/blogs/jgood/archive/2008/01/18/the-challenge-begins.aspx" /><id>/blogs/jgood/archive/2008/01/18/the-challenge-begins.aspx</id><published>2008-01-18T15:03:00Z</published><updated>2008-01-18T15:03:00Z</updated><content type="html">&lt;P&gt;This weekend I have the privleage to showcase my technical talents at a Microsoft event, &lt;A class="" title="We Are Microsoft" href="http://www.microsoft.com/" target=_blank&gt;We Are Microsoft&lt;/A&gt;. &lt;/P&gt;
&lt;P&gt;&lt;IMG height=60 src="http://www.wearemicrosoft.com/images/WeAreMicrosoft_Banner.gif" width=468 border=0&gt; &lt;/P&gt;
&lt;P&gt;A competition for the brains and a test of patience, skills, teamwork, and endurance. It runs all weekend long. My team has selected to help out the &lt;A class="" href="http://www.volunteernorthtexas.org/"&gt;Volunteer Center of North Texas&lt;/A&gt;, an organization who hooks up volunteers with other organizations in need. A very worthy cause. &lt;/P&gt;
&lt;P&gt;Their problem? They have a SQL database and an Access front end that they use to collect and store information. Our task is to build a web interface to replace the aging Access front end and end their troubles! &lt;/P&gt;
&lt;P&gt;Let's hope that we can be successful... and share in the glory as the other teams help out other charities!&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</content><author><name>jgood</name><uri>http://blogs.inetium.com/members/jgood/default.aspx</uri></author><category term="General" scheme="http://blogs.inetium.com/blogs/jgood/archive/tags/General/default.aspx" /></entry><entry><title>We Are Microsoft</title><link rel="alternate" type="text/html" href="/blogs/jgood/archive/2007/11/09/we-are-microsoft.aspx" /><id>/blogs/jgood/archive/2007/11/09/we-are-microsoft.aspx</id><published>2007-11-09T16:32:00Z</published><updated>2007-11-09T16:32:00Z</updated><content type="html">&lt;P&gt;Starting to network a little bit down here in the Dallas / Fort Worth area... and talked to &lt;A class="" href="http://blogs.msdn.com/chkoenig/"&gt;Chis Koenig&lt;/A&gt; about an interesting event happening at the beginning of the year. Here's the scoop...&lt;/P&gt;&lt;A href="http://www.wearemicrosoft.com/"&gt;&lt;IMG height=60 src="http://www.wearemicrosoft.com/images/WeAreMicrosoft_Banner.gif" width=468 border=0&gt; &lt;/A&gt;
&lt;H2&gt;Are You A Champion Coder?&lt;/H2&gt;
&lt;P&gt;&lt;BR&gt;The &lt;EM&gt;We Are Microsoft - Charity Challenge Weekend&lt;/EM&gt; is a software development&lt;STRONG&gt; competition&lt;/STRONG&gt; for a good cause. &lt;BR&gt;&lt;BR&gt;This 3-day event matches developers with charities to develop applications for those charities. At the end of the 3 days, all of the participants will vote and the winners will be proclaimed champion coders.&lt;BR&gt;&lt;BR&gt;&lt;B&gt;Schedule&lt;/B&gt; 
&lt;TABLE class=""&gt;

&lt;TR&gt;
&lt;TD class=""&gt;Friday: &lt;/TD&gt;
&lt;TD class=""&gt;Kick-off Meeting. &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;Saturday: &lt;/TD&gt;
&lt;TD class=""&gt;Code, Code, Code! &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;Sunday: &lt;/TD&gt;
&lt;TD class=""&gt;Demonstrations, Voting and Awards. &lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;&lt;BR&gt;&lt;B&gt;Location&lt;/B&gt; &lt;A href="http://www.wearemicrosoft.com/WAM/Directions.aspx"&gt;{ directions }&lt;/A&gt; &lt;BR&gt;BravoTECH&lt;BR&gt;4835 LBJ Freeway, Suite 1000 (10th Floor) &lt;BR&gt;Dallas, TX 75244&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</content><author><name>jgood</name><uri>http://blogs.inetium.com/members/jgood/default.aspx</uri></author><category term="General" scheme="http://blogs.inetium.com/blogs/jgood/archive/tags/General/default.aspx" /></entry><entry><title>GrandCentral</title><link rel="alternate" type="text/html" href="/blogs/jgood/archive/2007/11/06/grandcentral.aspx" /><id>/blogs/jgood/archive/2007/11/06/grandcentral.aspx</id><published>2007-11-06T21:29:00Z</published><updated>2007-11-06T21:29:00Z</updated><content type="html">&lt;P&gt;Right now I'm using this "newer" service called &lt;A class="" href="http://www.grandcentral.com/"&gt;GrandCentral&lt;/A&gt; to manage my consulting phone situation. &lt;/P&gt;
&lt;P&gt;&lt;IMG title=GrandCentral style="WIDTH:410px;HEIGHT:123px;" height=123 alt=GrandCentral src="http://www.grandcentral.com/images/aboutus/presskit/grandcentral_brand_med.jpg" width=410 align=middle&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;When I first heard about GC I wondered what the big deal about the site was... that is, until I needed a new mobile number to give to clients and people who need to contact me. &lt;/P&gt;
&lt;P&gt;The main concept of the service is having a virtual phone number. You sign up for an account (free) and you select a phone number in an area code. They assign that number to your account and then you can have all sorts of fun with that number. You can forward incoming calls to any number of real phones, you can screen calls, record calls, listen in on voice mails live, call your contacts and connect them to your cell phone via the web, and listen to your voice mails on the site! One of the more interesting features around the web site is that you can access it on your mobile and take notes about certain calls. Currently the features are all free during the beta, with the promise that only features that incurr costs to them, will not be free anymore; thanks to a recent Google acquisition.&lt;/P&gt;
&lt;P&gt;At any rate, here's a huge list of sweet features: &lt;A class="" href="http://www.grandcentral.com/home/features"&gt;GrandCentral Features&lt;/A&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</content><author><name>jgood</name><uri>http://blogs.inetium.com/members/jgood/default.aspx</uri></author><category term="Tools" scheme="http://blogs.inetium.com/blogs/jgood/archive/tags/Tools/default.aspx" /></entry><entry><title>Readable?</title><link rel="alternate" type="text/html" href="/blogs/jgood/archive/2007/10/29/readable.aspx" /><id>/blogs/jgood/archive/2007/10/29/readable.aspx</id><published>2007-10-29T20:17:00Z</published><updated>2007-10-29T20:17:00Z</updated><content type="html">&lt;P&gt;I kinda dig this&amp;nbsp;control statement syntax using the &lt;A class="" title="Tertiary Operation" href="http://en.wikipedia.org/wiki/Ternary_operation" target=_blank&gt;tertiary operator (?)&lt;/A&gt;&amp;nbsp;(thanks to &lt;A class="" title=Bela href="http://blogs.inetium.com/blogs/bvandervoort/"&gt;Bela&lt;/A&gt; for pointing it out):&lt;/P&gt;&lt;PRE&gt;object result =
  (&amp;lt;condition A&amp;gt;) ? resultIfA :
  (&amp;lt;condition B&amp;gt;) ? resultIfB :
  (&amp;lt;condition C&amp;gt;) ? resultIfC : &lt;BR&gt;  defaultResult;
&lt;/PRE&gt;
&lt;P&gt;I think the reason why I like it is due to the fact that it makes the conditions readable, you don't have to jump through more lines of code... The ugly part is the colon / semi-colon marks at the ends of the lines. What do you think?&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</content><author><name>jgood</name><uri>http://blogs.inetium.com/members/jgood/default.aspx</uri></author><category term="Construction" scheme="http://blogs.inetium.com/blogs/jgood/archive/tags/Construction/default.aspx" /></entry><entry><title>Find a Type or Method</title><link rel="alternate" type="text/html" href="/blogs/jgood/archive/2007/10/11/find-a-type-or-method.aspx" /><id>/blogs/jgood/archive/2007/10/11/find-a-type-or-method.aspx</id><published>2007-10-11T21:08:00Z</published><updated>2007-10-11T21:08:00Z</updated><content type="html">&lt;P&gt;Please tell me why Visual Studio &lt;STRONG&gt;&lt;EM&gt;STILL&lt;/EM&gt;&lt;/STRONG&gt; does not have a super easy and fast way to find a type or a method on a type.&lt;/P&gt;
&lt;P&gt;Currently there are a few ways to find a type, but nothing that's super simple. What is super simple for me? The way that &lt;A class="" title=TextMate href="http://macromates.com/" target=_blank&gt;TextMate&lt;/A&gt;&amp;nbsp;handles this situation is awesome. You hit a simple key combination (CMD + T) and you are presented with a huge list of "files"... you start typing ANY parts of the file name (example: somelongfile.txt , smlngfile would find it)... and BAM, you can open it. Then hit (CMD + SHFT + T) and you can search through the method definitions... Easy and fast.&lt;/P&gt;
&lt;P&gt;But with Visual Studio... what do we have? The Class View? CTL + F? Bleh.&lt;/P&gt;
&lt;P&gt;Someone save us!&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</content><author><name>jgood</name><uri>http://blogs.inetium.com/members/jgood/default.aspx</uri></author><category term="Construction" scheme="http://blogs.inetium.com/blogs/jgood/archive/tags/Construction/default.aspx" /><category term="Tools" scheme="http://blogs.inetium.com/blogs/jgood/archive/tags/Tools/default.aspx" /></entry><entry><title>The Missing Sync</title><link rel="alternate" type="text/html" href="/blogs/jgood/archive/2007/10/03/the-missing-sync.aspx" /><id>/blogs/jgood/archive/2007/10/03/the-missing-sync.aspx</id><published>2007-10-03T16:43:00Z</published><updated>2007-10-03T16:43:00Z</updated><content type="html">&lt;P&gt;So I have a &lt;A class="" title="MacBook Pro" href="http://www.apple.com/macbookpro/" target=_blank&gt;MacBook Pro&lt;/A&gt; and you will find me on my MBP quite often... it's my laptop of choice. It's super clean, fast, and beautiful to look at. If you have never played with one, or an OS X system for that matter, I suggest you run out to the Apple store and check them out! You'll really be suprised.&lt;/P&gt;
&lt;P&gt;I also have a Motorola Q. It's definitely my smartphone of choice... EVDO always tastes good and I can write code for it.&lt;/P&gt;
&lt;P&gt;But the real question is... how do I sync my life on my MBP and my Q? Simple, I use &lt;A class="" title="The Missing Sync" href="http://www.markspace.com/missingsync_windowsmobile.php" target=_blank&gt;The Missing Sync&lt;/A&gt;! It's a great piece of software that does everything ActiveSync does on a Windows machine... and more! The other nice features include the ability to make your own plugins and syncronization tools, much easier than ActiveSync conduits... It syncs your iCal, Address Book, Mail, Entourage, Photos, Tasks, and even iTunes. Plus there are several plugins out there for other data sets. It's incredible easy to setup and use. In fact, I would prefer it over ActiveSync on my PC!&lt;/P&gt;
&lt;P&gt;Here's a sneak peak:&lt;/P&gt;&lt;A title="Photo Sharing" href="http://www.flickr.com/photos/whoisjake/1478206246/"&gt;&lt;IMG height=437 alt="The Missing Sync" src="http://farm2.static.flickr.com/1400/1478206246_619c1d870d.jpg" width=500&gt;&lt;/A&gt; 
&lt;P&gt;So check out &lt;A class="" title=mark/space href="http://www.markspace.com/" target=_blank&gt;mark/space&lt;/A&gt;&amp;nbsp;when you have a chance... (psst: they have a &lt;A class="" title="iPhone Missing Synch" href="http://www.markspace.com/missingsync_iphone.php" target=_blank&gt;version for the iPhone&lt;/A&gt;)&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</content><author><name>jgood</name><uri>http://blogs.inetium.com/members/jgood/default.aspx</uri></author><category term="Mobile" scheme="http://blogs.inetium.com/blogs/jgood/archive/tags/Mobile/default.aspx" /><category term="Tools" scheme="http://blogs.inetium.com/blogs/jgood/archive/tags/Tools/default.aspx" /></entry><entry><title>Minneapolis .Net User Group</title><link rel="alternate" type="text/html" href="/blogs/jgood/archive/2006/08/16/326.aspx" /><id>/blogs/jgood/archive/2006/08/16/326.aspx</id><published>2006-08-16T18:10:00Z</published><updated>2006-08-16T18:10:00Z</updated><content type="html">&lt;p&gt;&lt;font face="Verdana"&gt;Well… its official. Farhan and I have been exchanging emails and I will be presenting at the &lt;a href="http://www.ilmservice.com/twincitiesnet/" title=".net user group"&gt;Minneapolis .Net User Group&lt;/a&gt;…&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="Verdana"&gt;Here are the details:&lt;/font&gt;&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;9/7/2006.  5PM - 7PM&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="Verdana"&gt;Topic:  Windows Presentation Foundation – Declare Your Next User Interface&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="Verdana"&gt;Presenter:  Jacob Good&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;Abstract:&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="Verdana"&gt;The next generation of UI development is here… Windows Presentation
Foundation, or WPF for short, is Microsoft’s newest User Interface
platform… designed from the ground up to introduce declarative syntax,
graphics card powered, next generation experiences for users. This talk
will walk through an introduction to WPF, examples of how you can take
advantage of it RIGHT NOW in your applications, and where to get more
information. There are plenty of tools and resources out there… and
with the release of .Net 3.0 (includes WPF) right around the corner,
you’re better off being prepared.
About Speaker&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;About the speaker:&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="Verdana"&gt;Jacob Good is a Senior Consultant with Inetium and has been
consulting / developing software in the Twin Cities for nearly 3 years.
His development experience has been primarily focused on smart client
development and mobile development. He dabbles in all kinds of
technologies from Ruby on Rails to bioinformatics packages in Perl and
of course .Net.&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="Verdana"&gt;&lt;a href="http://local.live.com/default.aspx?v=2&amp;amp;cp=44.853962%7E-93.352218&amp;amp;style=r&amp;amp;lvl=15&amp;amp;sp=aN.rg82tv76mkh8_8300%2520Norman%2520Center%2520Dr%252c%2520Minneapolis%252c%2520MN%252055437%252c%2520United%2520States___" title="Map"&gt;MAP TO LOCATION&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;&lt;font face="Verdana"&gt;I’m excited because I actually get to be a main speaker at the
group… no more being the “if people want to stick around and listen to
you” kind of presenter…&lt;/font&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</content><author><name>jgood</name><uri>http://blogs.inetium.com/members/jgood/default.aspx</uri></author><category term="General" scheme="http://blogs.inetium.com/blogs/jgood/archive/tags/General/default.aspx" /></entry><entry><title>Role Based Security</title><link rel="alternate" type="text/html" href="/blogs/jgood/archive/2006/08/14/315.aspx" /><id>/blogs/jgood/archive/2006/08/14/315.aspx</id><published>2006-08-14T18:26:00Z</published><updated>2006-08-14T18:26:00Z</updated><content type="html">&lt;P&gt;&lt;FONT face=Verdana&gt;It seems like no matter how much time you spend trying to come up with a solution for security based on users and roles... it never quite comes out right... and easy on both sides (developer and user).&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;Flexible roles are nice in that you don't have to manage lots of builds or releases to support new roles... but they end up losing meaning and having extra meta data tagged onto them... OR you could write dirty code and rely on strings to make it more simple... but who wants to put up with that? &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;Hard coded roles / State roles require MORE code up front and harder code changes, but offer niceties to code against as a developer... and lets the user / client define tighter integration with the roles more quickly... But then you have to release more often and still tie in lots of meta data for other permission based CRUD activities.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;We chose the route of flexible roles with meta data...and permissions based on resources... turns out to be a PITA to configure.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;And neither one of these helps either when it comes down to instance level security with users. We happen to use an abstract class UserSecurable that defines methods and collections to keep track of what users have access to what objects.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;It seems like a common problem but with no clear solution. It goes back to picking the right solution to what the user needs...&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;Yet it just so happens that you select one, the user changes her needs that might be easier to accomplish with a different approach.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;Just one of the headaches of development I guess...&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;Here are a couple of API looks that I think are neat and concise to determine the right type of permissions&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;AccessManager.HasAccess(User.Current,typeof(DomainObject),Permissions.Write);&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;or&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;AccessManager.HasAccess(User.Current,instance,Permissions.Delete);&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;Which looks better to you?&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;User.Current.IsInRole(administratorRole);&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;or&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;User.Current.IsAdministrator?&lt;/FONT&gt;&lt;/P&gt;</content><author><name>jgood</name><uri>http://blogs.inetium.com/members/jgood/default.aspx</uri></author><category term="Construction" scheme="http://blogs.inetium.com/blogs/jgood/archive/tags/Construction/default.aspx" /><category term="Smart Client" scheme="http://blogs.inetium.com/blogs/jgood/archive/tags/Smart+Client/default.aspx" /></entry><entry><title>Windows Live Writer</title><link rel="alternate" type="text/html" href="/blogs/jgood/archive/2006/08/13/308.aspx" /><id>/blogs/jgood/archive/2006/08/13/308.aspx</id><published>2006-08-13T22:51:00Z</published><updated>2006-08-13T22:51:00Z</updated><content type="html">&lt;p&gt;&lt;font face="Verdana"&gt;So everyone's been buzzing about the &lt;a href="http://windowslivewriter.spaces.live.com/" target="_blank"&gt;Windows Live Writer&lt;/a&gt; beta...&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Verdana"&gt;Yet another blog post editor.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Verdana"&gt;But I'm still a sucker and am using it to write this post...&lt;/font&gt;&lt;/p&gt;</content><author><name>jgood</name><uri>http://blogs.inetium.com/members/jgood/default.aspx</uri></author><category term="Tools" scheme="http://blogs.inetium.com/blogs/jgood/archive/tags/Tools/default.aspx" /></entry><entry><title>Goal Oriented Requirements</title><link rel="alternate" type="text/html" href="/blogs/jgood/archive/2006/08/07/293.aspx" /><id>/blogs/jgood/archive/2006/08/07/293.aspx</id><published>2006-08-07T13:58:00Z</published><updated>2006-08-07T13:58:00Z</updated><content type="html">&lt;font face="Verdana"&gt;Every once in a while you see compilations of words into a phrase and the entire software development industry follows... with drool flowing from their wide open mouths... as they rush to their team to try to integrate this phrase into their project...&lt;br&gt;&lt;br&gt;"&lt;a href="http://en.wikipedia.org/wiki/Test_driven_development"&gt;Test Driven Development&lt;/a&gt;"&lt;br&gt;&lt;br&gt;"&lt;a href="http://agilemanifesto.org/"&gt;Agile Software Methodology&lt;/a&gt;"&lt;br&gt;&lt;br&gt;"&lt;a href="http://www.rubyonrails.org/"&gt;Ruby on Rails&lt;/a&gt;" ;)&lt;br&gt;&lt;br&gt;And one that recently caught my attention: "&lt;a href="http://www.sprez.com/articles/goal-oriented-requirements.htm"&gt;Goal Oriented Requirements&lt;/a&gt;"&lt;br&gt;&lt;br&gt;The article goes on to claim that when we define what a product / solution will provide for the client... it's almost ALWAYS "let's add this feature / yes, we added this feature"... without reguards if the feature REALLY helps the user with the goals they have in mind. Then the next question is... "What ARE the goals that the client/user wants to accomplish?"&lt;br&gt;&lt;br&gt;We (community in general) typically don't document the users goals. We capture stories and listen to features that they want... and document those. But when do we ever record down what they want to accomplish in the form of a goal.&lt;br&gt;&lt;br&gt;I'm not entirely convinced that writing things down as goals is the best way to approach things (and I'm not suggesting that the author of the post does either)... but I think that we should be documenting features/goals/requirements in such a way that doesn't suggest gold plated features or extra things that aren't necessary to get the job done. It's ok to put in things that will help the user get things done in a manor in which is more efficient and comfortable... but there has to be a limit and a means to document how we know we've reached our own goals.&lt;br&gt;&lt;/font&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</content><author><name>jgood</name><uri>http://blogs.inetium.com/members/jgood/default.aspx</uri></author><category term="General" scheme="http://blogs.inetium.com/blogs/jgood/archive/tags/General/default.aspx" /></entry><entry><title>A Haiku</title><link rel="alternate" type="text/html" href="/blogs/jgood/archive/2006/08/02/277.aspx" /><id>/blogs/jgood/archive/2006/08/02/277.aspx</id><published>2006-08-02T14:58:00Z</published><updated>2006-08-02T14:58:00Z</updated><content type="html">&lt;div align="center"&gt;&lt;b&gt;&lt;i&gt;&lt;font face="Verdana"&gt;&lt;em&gt;Waiting&amp;nbsp;to compile&lt;br&gt;Code poetry&amp;nbsp;in motion&lt;br&gt;Build is successful&lt;/em&gt;&lt;/font&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</content><author><name>jgood</name><uri>http://blogs.inetium.com/members/jgood/default.aspx</uri></author><category term="General" scheme="http://blogs.inetium.com/blogs/jgood/archive/tags/General/default.aspx" /></entry><entry><title>Xml Formatting</title><link rel="alternate" type="text/html" href="/blogs/jgood/archive/2006/07/21/263.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="646" href="http://blogs.inetium.com/cfs-file.ashx/__key/CommunityServer.Components.PostAttachments/00.00.00.02.63/XmlFormatter.zip" /><id>/blogs/jgood/archive/2006/07/21/263.aspx</id><published>2006-07-21T14:42:00Z</published><updated>2006-07-21T14:42:00Z</updated><content type="html">&lt;font color="#000000" face="Verdana"&gt;How many times, as a developer, have you been emailed an xml file for importing / integration and it's all in ONE LINE or improperly formatted?&lt;br&gt;&lt;br&gt;Your first instinct is to open it with Notepad, only to be disappointed in having to scroll into the sunset. Which *might* be fine for a smaller file, but for the one I recieved yesterday (at 18mb), it's completely unusable.&lt;br&gt;&lt;br&gt;So here's where one of my favorite tools comes into play: &lt;a href="http://www.sliver.com/dotnet/SnippetCompiler/"&gt;Snippet Compiler&lt;/a&gt;&lt;br&gt;&lt;br&gt;The tool is simple... give me a quick UI to write some C#/VB code and execute it... without the large load of Visual Studio. &lt;span&gt;Attached is the class file that you can save in My Snippets for reuse.&lt;/span&gt;&lt;br&gt;&lt;br&gt;This was a perfect solution to allow me to reformat the XML code. The easiest way is to use an &lt;a href="http://msdn2.microsoft.com/en-us/library/system.xml.xmlwriter.aspx"&gt;XmlWriter&lt;/a&gt; and supply &lt;a href="http://msdn2.microsoft.com/en-us/library/system.xml.xmlwritersettings.aspx"&gt;XmlWriterSettings&lt;/a&gt; to specify formatting:&lt;/font&gt;&lt;br&gt;&lt;br&gt;
&lt;pre&gt;XmlWriter writer = null;&lt;br&gt;&lt;br&gt;XmlWriterSettings xmlSettings = new XmlWriterSettings();&lt;br&gt;/// This allows me to indent the xml properly.&lt;br&gt;xmlSettings.Indent = true;&lt;br&gt;&lt;br&gt;try&lt;br&gt;{&lt;br&gt;    // outputFile is a path to an output file, or a stream.&lt;br&gt;    writer = XmlWriter.Create(outputFile, xmlSettings);&lt;br&gt;    // doc is a previously loaded xml document.&lt;br&gt;    doc.Save(writer);&lt;br&gt;}&lt;br&gt;catch&lt;br&gt;{&lt;br&gt;    throw;&lt;br&gt;}&lt;br&gt;finally&lt;br&gt;{&lt;br&gt;    if (writer != null)&lt;br&gt;    {&lt;br&gt;        writer.Close();&lt;br&gt;        writer = null;&lt;br&gt;    }&lt;br&gt;}&lt;br&gt;&lt;/pre&gt;&lt;font face="Verdana"&gt;

Now I can open this in NotePad and go on my way...&lt;/font&gt;&lt;br&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</content><author><name>jgood</name><uri>http://blogs.inetium.com/members/jgood/default.aspx</uri></author><category term="Tools" scheme="http://blogs.inetium.com/blogs/jgood/archive/tags/Tools/default.aspx" /></entry><entry><title>Amazing Race II</title><link rel="alternate" type="text/html" href="/blogs/jgood/archive/2006/07/20/262.aspx" /><id>/blogs/jgood/archive/2006/07/20/262.aspx</id><published>2006-07-20T19:50:00Z</published><updated>2006-07-20T19:50:00Z</updated><content type="html">&lt;font face="Verdana"&gt;This is the second year in a row in which the Raving Fans comitee at Inetium has sponsored a company wide picnic to celebrate our team and success! Thanks guys!&lt;br&gt;&lt;br&gt;This year, the Amazing Race II, featured events such as a Tug-of-War and Big Ball... My team, Team Accomplished, was quite the stacked team: Mark, Neil, Bela, Sara, Erik, and myself as team captain.&lt;br&gt;&lt;br&gt;We took &lt;span&gt;first place!&lt;/span&gt; w00t!&lt;br&gt;&lt;br&gt;Here's a look at the champions before...&lt;br&gt;&lt;br&gt;&lt;/font&gt;

&lt;div&gt;&lt;font face="Verdana"&gt;&lt;a href="http://www.flickr.com/photos/whoisjake/194177802/" title="Photo Sharing"&gt;&lt;img src="http://static.flickr.com/51/194177802_f24f3bd6ee_m.jpg" alt="Team Accomplished" height="180" width="240"&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;And After&lt;br&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;

&lt;div&gt;&lt;font face="Verdana"&gt;&lt;a href="http://www.flickr.com/photos/whoisjake/194177805/" title="Photo Sharing"&gt;&lt;img src="http://static.flickr.com/58/194177805_399d40f2f6_m.jpg" alt="Team Accomplished #1" height="180" width="240"&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;Check out the hair...&lt;br&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;

&lt;div&gt;&lt;font face="Verdana"&gt;&lt;a href="http://www.flickr.com/photos/whoisjake/194177804/" title="Photo Sharing"&gt;&lt;img src="http://static.flickr.com/47/194177804_0dd1f486f5_m.jpg" alt="The HAIR" height="180" width="240"&gt;&lt;/a&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</content><author><name>jgood</name><uri>http://blogs.inetium.com/members/jgood/default.aspx</uri></author><category term="General" scheme="http://blogs.inetium.com/blogs/jgood/archive/tags/General/default.aspx" /></entry><entry><title>Wouldn't it be nice</title><link rel="alternate" type="text/html" href="/blogs/jgood/archive/2006/07/13/255.aspx" /><id>/blogs/jgood/archive/2006/07/13/255.aspx</id><published>2006-07-13T15:39:00Z</published><updated>2006-07-13T15:39:00Z</updated><content type="html">&lt;font face="Verdana"&gt;Wouldn't it be nice if there was a tool out there that could help you develop forms and controls (in Windows Forms) that would allow you to actively prototype.&lt;br&gt;&lt;br&gt;I know that there's a sweet new feature in Visual Studio that if you're using a Control Library project, you can "run" it and it will have a host form come up... but that doesn't help with context aware forms / controls.&lt;br&gt;&lt;br&gt;I just hate having to fire up my large application, navigate all the way down this huge heirarchy of data... to test out one little control...&lt;br&gt;&lt;br&gt;:: shrugs ::&lt;br&gt;&lt;br&gt;For .Net 3.0 we have tools like &lt;a href="http://windowssdk.msdn.microsoft.com/en-us/library/ms742398.aspx"&gt;XamlPad&lt;/a&gt; that can help us actively develop forms... but I guess we're stuck for Windows Forms for now... it really is a tough problem without building a TON of infrastructure into your app... or I guess if you use *crappy* DataSets...&lt;br&gt;&lt;/font&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</content><author><name>jgood</name><uri>http://blogs.inetium.com/members/jgood/default.aspx</uri></author><category term="Smart Client" scheme="http://blogs.inetium.com/blogs/jgood/archive/tags/Smart+Client/default.aspx" /><category term="Tools" scheme="http://blogs.inetium.com/blogs/jgood/archive/tags/Tools/default.aspx" /></entry></feed>