<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>nickelcode</title>
	<atom:link href="http://nickelcode.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://nickelcode.com</link>
	<description>penny for your thoughs, nickel for your code</description>
	<pubDate>Wed, 19 Nov 2008 18:53:04 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5</generator>
	<language>en</language>
			<item>
		<title>ASP.NET on Rails</title>
		<link>http://nickelcode.com/2008/11/18/aspnet-on-rails/</link>
		<comments>http://nickelcode.com/2008/11/18/aspnet-on-rails/#comments</comments>
		<pubDate>Tue, 18 Nov 2008 20:34:03 +0000</pubDate>
		<dc:creator>John Bender</dc:creator>
		
		<category><![CDATA[.net]]></category>

		<category><![CDATA[microsoft]]></category>

		<category><![CDATA[web development]]></category>

		<category><![CDATA[MVC Rails .NET]]></category>

		<guid isPermaLink="false">http://nickelcode.com/?p=28</guid>
		<description><![CDATA[A friend at work alerted me to the new MVC framework that's in beta for .NET and I was really excited to see what they had come up with. He showed me some code samples and I immediately recognized some very Rails-ish stuff in there. So lets take a look and see what they have going on because so far its looking pretty awesome.]]></description>
			<content:encoded><![CDATA[<p>A friend at work alerted me to the new MVC framework that&#8217;s in beta for .NET and I was really excited to see what they had come up with. He showed me some code samples and I immediately recognized some very Rails-ish stuff in there. So lets take a look and see what they have going on because so far its looking pretty awesome.</p>
<p>Disclaimer: Obviously Rails isn&#8217;t the worlds first MVC implementation, its just a really nice one and I think MS has definitely taken a few cues here.</p>
<p><strong>Directory Structure (courtesy of Scott Guthrie&#8217;s <a href="http://weblogs.asp.net/scottgu/archive/2007/10/14/asp-net-mvc-framework.aspx">blog</a>):</strong></p>
<div style="text-align: center;">
<a href='http://nickelcode.com/wp-content/uploads/2008/11/folder-structure.jpg'><img src="http://nickelcode.com/wp-content/uploads/2008/11/folder-structure1.jpg" alt="" title="folder-structure" width="261" height="571"  style="padding: 0px;"/></a>
</div>
<p>A logical directory structure for an MVC app to be sure. I would kill to have this on some of my current projects where locating things you are looking for is a nightmare. It may not be Rails&#8217;s &#8220;Convention Over Configuration&#8221; but its a nice step in the right direction from my perspective. </p>
<p><strong>Routing:</strong></p>
<p>Routes! Routes! I loves me some Routes! Making your web apps RESTful has many advantages (see <a href="http://cafe.elharo.com/web/refactoring-html/why-rest/">here</a>, and <a href="http://www.manageability.org/blog/stuff/rest-explained-in-code">here </a>for some examples) and in any case the flexibility that custom routes provides is enormous. Think of how much nicer SharePoint url&#8217;s could be :), and, as ScottGu mentions, it helps in optimizing SEO.</p>
<p><strong>Backward Compatibility:<br />
</strong><br />
If you were a good little software architect/engineer and built decoupled user controls and master pages there&#8217;s no reason why you can&#8217;t re-use that code again on your new shiny MVC pages!</p>
<p><strong>Plug and Play:</strong></p>
<p>Again from Scott&#8217;s blog, &#8220;&#8230; it&#8217;s highly extensible and pluggable&#8230;&#8221;, which is music to my ears. One of the great things about Rails, and one of the reasons I really believe in it as a long term technology is that while it is opinionated software, you can swap out its main pieces like ActiveRecord < => <a href="http://datamapper.org/doku.php">Datamapper </a>. This means that if you think Datamapper will serve your project better then you&#8217;re free to use it, and anyone with a better idea for an ORM can jump right in and write one. If ASP.NET MVC can live up to this not only will it be a better framework for it, but I wouldn&#8217;t be surprised to see a bunch of custom pieces from hackers who want something better or just different. </p>
<p><strong>Looking forward:</strong></p>
<p>If you are a web developer and you&#8217;re main expertise is with .NET then  this is something to be very excited about. Not just as a tool for building websites but also because MS can recognize a better way to get things done for developer&#8217;s and they are willing to throw money at making our lives easier. Good stuff all around!</p>
]]></content:encoded>
			<wfw:commentRss>http://nickelcode.com/2008/11/18/aspnet-on-rails/feed/</wfw:commentRss>
		</item>
		<item>
		<title>XMLViewer Silverlight Control</title>
		<link>http://nickelcode.com/2008/11/14/xmlviewer-silverlight-control/</link>
		<comments>http://nickelcode.com/2008/11/14/xmlviewer-silverlight-control/#comments</comments>
		<pubDate>Sat, 15 Nov 2008 06:54:06 +0000</pubDate>
		<dc:creator>John Bender</dc:creator>
		
		<category><![CDATA[.net]]></category>

		<category><![CDATA[microsoft]]></category>

		<category><![CDATA[web development]]></category>

		<category><![CDATA[silverlight xmlviewer]]></category>

		<guid isPermaLink="false">http://nickelcode.com/?p=25</guid>
		<description><![CDATA[So instead of rolling happenings into a gem, I got bored and decided to hack together some Silverlight and see what it was like. I&#8217;ve often said that C# is awesome for development, but that ASP.NET is not the best. The event driven model makes me want to gouge my eyes out (Page_Load, After_Load,  [...]]]></description>
			<content:encoded><![CDATA[<p>So instead of rolling happenings into a gem, I got bored and decided to hack together some Silverlight and see what it was like. I&#8217;ve often said that C# is awesome for development, but that ASP.NET is not the best. The event driven model makes me want to gouge my eyes out (Page_Load, After_Load,  Post_Pre_After_Load), but that&#8217;s another blog post that I&#8217;ve been meaning to write.</p>
<p>Anyhow! I wanted to try Silverlight out because your basically building a GUI app, which .NET is great for, but deploying it with the browser. Cross Platform no less! So please try it out, post what you think, and I&#8217;ll get the code up on codeplex or something tomorrow if I can find the time.</p>
<p><a href="http://nickelcode.com/xmlviewer/">XMLViewer Silverlight Control</a></p>
<p>[UPDATE] Source available at <a href="http://www.codeplex.com/XMLViewer">codeplex</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://nickelcode.com/2008/11/14/xmlviewer-silverlight-control/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Gem or Plugin?</title>
		<link>http://nickelcode.com/2008/11/13/gem-or-plugin/</link>
		<comments>http://nickelcode.com/2008/11/13/gem-or-plugin/#comments</comments>
		<pubDate>Thu, 13 Nov 2008 16:44:48 +0000</pubDate>
		<dc:creator>John Bender</dc:creator>
		
		<category><![CDATA[ruby on rails]]></category>

		<category><![CDATA[web development]]></category>

		<category><![CDATA[gem plugin rails ruby]]></category>

		<guid isPermaLink="false">http://nickelcode.com/?p=22</guid>
		<description><![CDATA[So I think that my event tracking system happenings is pretty nice. Nice enough that people might want to use it for their projects. The question that I'm trying to answer is: can I roll this in to a gem so I get all the package management niceness (Dependencies, etc) that goes along with gems, or do I need to create a plugin with generators and such?]]></description>
			<content:encoded><![CDATA[<p>So I think that my event tracking system happenings is pretty nice. Nice enough that people might want to use it for their projects. The question that I&#8217;m trying to answer is: can I roll this in to a gem so I get all the package management niceness (Dependencies, etc) that goes along with gems, or do I need to create a plugin with generators and such?</p>
<p>From what I&#8217;ve read, views are the main sticking point. It _seems_ like I could just create my Controller and Model classes and force the user to inherit from them, but what about the Views? This sounds like a job for a generator, which I am loath to create, but laziness will be the death of this little piece of code. </p>
<p>Hopefully I can get off my duff and get this done. I&#8217;ll post back soon when I come to a decision. </p>
]]></content:encoded>
			<wfw:commentRss>http://nickelcode.com/2008/11/13/gem-or-plugin/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Microsoft and Devs: marriage counseling needed</title>
		<link>http://nickelcode.com/2008/11/12/microsoft-and-devs-marriage-counseling-needed/</link>
		<comments>http://nickelcode.com/2008/11/12/microsoft-and-devs-marriage-counseling-needed/#comments</comments>
		<pubDate>Wed, 12 Nov 2008 16:17:03 +0000</pubDate>
		<dc:creator>John Bender</dc:creator>
		
		<category><![CDATA[.net]]></category>

		<category><![CDATA[microsoft]]></category>

		<category><![CDATA[windows]]></category>

		<category><![CDATA[Microsoft developers]]></category>

		<guid isPermaLink="false">http://nickelcode.com/?p=20</guid>
		<description><![CDATA[Since I started posting on this blog again I have been thinking a lot about Windows 7 and how MS could make it developer friendly. A lot of these ideas have come from discussions with colleagues (I work for a Microsoft consulting firm) and also from articles I've read that I agree with.

There are two or three main problems with how Microsoft treats its development community that I take issue with. I'll decide whether its two or three as this post continues but the point is: Good developer's want access to the best tools (ide &#038; api), good developer's make good applications (elegant inside and out), and good applications make a good platform.
]]></description>
			<content:encoded><![CDATA[<p>Since I started posting on this blog again I have been thinking a lot about Windows 7 and how MS could make it developer friendly. A lot of these ideas have come from discussions with colleagues (I work for a Microsoft consulting firm) and also from articles I&#8217;ve read that I agree with.</p>
<p>There are two or three main problems with how Microsoft treats its development community that I take issue with. I&#8217;ll decide whether its two or three as this post continues but the point is: Good developer&#8217;s want access to the best tools (ide &#038; api), good developer&#8217;s make good applications (elegant inside and out), and good applications make a good platform.</p>
<p><strong>1. Cost of entry</strong></p>
<p>This probably doesn&#8217;t need much explanation, but I doesn&#8217;t have to be an all or nothing proposition. I don&#8217;t think many weekend devs will care about the Business Analysis tools for Visual Studio, but I think the MS development community would explode if they would release the full version of Visual Studio for free. Something simple like, &#8220;free developer tools for use with free software.&#8221; It would give college students, kids, and virtually anyone who wants to tinker with software a reason to look at the Windows platform. As it is right now, the cost is prohibitive at 250 for <a href="http://www.amazon.com/gp/product/B000WM1Z46/ref=amb_link_6339812_1?pf_rd_m=ATVPDKIKX0DER&#038;pf_rd_s=center-4&#038;pf_rd_r=119A9522YS6VFM7RS4MQ&#038;pf_rd_t=101&#038;pf_rd_p=420860801&#038;pf_rd_i=404443011">Standard Edition</a> and 690 for <a href="http://www.amazon.com/gp/product/B000WM04HU/ref=amb_link_6339522_1?pf_rd_m=ATVPDKIKX0DER&#038;pf_rd_s=center-5&#038;pf_rd_r=119A9522YS6VFM7RS4MQ&#038;pf_rd_t=101&#038;pf_rd_p=363630201&#038;pf_rd_i=404443011">Professional Edition</a>. </p>
<p>Good devs are born from the desire to program for fun, but if you make it so the only people with access to your tools are people working at large corporations, its no longer fun its work.</p>
<p><strong>2. API/Widget availability</strong></p>
<p>Windows 7 is seeing the release of the &#8220;Ribbon&#8221; to developers. Currently you have to license it from Microsoft, which I didn&#8217;t even know was possible until I saw a quick presentation from Knowledge Lake at the NY Sharepoint User&#8217;s Group about how they had to do just that. </p>
<p>This also goes back to an <a href="http://arstechnica.com/articles/culture/microsoft-learn-from-apple-II.ars/4">article</a> I read on Arstechnica where <a href="http://arstechnica.com/authors.ars/PeterB">Peter Bright</a> points out that the UI widgets aren&#8217;t released/standardized for the Windows platform. Not only does this mean we don&#8217;t get to use the ribbon but it also means that Windows turns into a hodgepodge.</p>
<p>I&#8217;m not quite sure what drives this mentality but I would like access to everything that I can get my hands on to make my apps as nice as possible. Microsoft can only benefit from awesome third party applications.</p>
<p><strong>3. The community</strong></p>
<p>I run a <a href="http://nickelcode.com/ny-spg/">SharePoint Developer&#8217;s user group</a>. The people who show up are really great, and I&#8217;ve had some awesome talks with guys like <a href="http://paulgalvin.spaces.live.com/">Paul Galvin</a>, <a href="http://blog.michaellotter.com/">Michael Lotter</a>, and <a href="http://bobfox.securespsite.com/FoxBlog/default.aspx">Bob Fox</a> about community development and software development. </p>
<p>But the feeling around these groups is just not as enthusiastic as I&#8217;ve seen elsewhere and I think its based on the simple fact that NONE of the people who show up hack in their spare time. They come for their professional betterment, not for fun, and it shows. The broader view of .NET is worse still. With the exception of the folks who work on the unadulterated awesomeness that is The Mono Project, there are very few in the community that can match the enthusiasm of the people that work on something like Rails/Gnome/KDE/etc.</p>
<p>This is a much tougher issue to address since a lot of the problem may stem from Microsoft&#8217;s image and where they spend their time/money. Lord knows they have plenty of the last to hold hackfests, competitions, and other community events geared toward bringing people together who are excited about the technology. It needs to be about developing for fun, instead of developing for your boss.</p>
<p><strong><br />
The great hope</strong></p>
<p>If MS started to work some of these angles I think we could start to see the same vibrant open source development community around .NET apps that you see now with OS X and Cocoa. Oh, and give me a real command line too :D.</p>
<p>I welcome comments, and I hope that bit about the community wasn&#8217;t too harsh, but .NET is pretty awesome and everyone could benefit from a few small changes. </p>
]]></content:encoded>
			<wfw:commentRss>http://nickelcode.com/2008/11/12/microsoft-and-devs-marriage-counseling-needed/feed/</wfw:commentRss>
		</item>
		<item>
		<title>ym4r_gm patch submitted!</title>
		<link>http://nickelcode.com/2008/11/11/ym4r_gm-patch-submitted/</link>
		<comments>http://nickelcode.com/2008/11/11/ym4r_gm-patch-submitted/#comments</comments>
		<pubDate>Wed, 12 Nov 2008 04:25:43 +0000</pubDate>
		<dc:creator>John Bender</dc:creator>
		
		<category><![CDATA[ruby on rails]]></category>

		<category><![CDATA[web development]]></category>

		<category><![CDATA[ym4r rails google maps]]></category>

		<guid isPermaLink="false">http://nickelcode.com/?p=18</guid>
		<description><![CDATA[As promised I submitted my ym4r google maps rails plugin <a href="http://rubyforge.org/tracker/index.php?func=detail&#038;aid=22766&#038;group_id=1716&#038;atid=6686">patch</a>. That's pretty much the first patch I've ever submitted for anything, so here's hoping they don't come back and lambast me for my ridiculously stupid idea. 
]]></description>
			<content:encoded><![CDATA[<p>As promised I submitted my ym4r google maps rails plugin <a href="http://rubyforge.org/tracker/index.php?func=detail&#038;aid=22766&#038;group_id=1716&#038;atid=6686">patch</a>. That&#8217;s pretty much the first patch I&#8217;ve ever submitted for anything, so here&#8217;s hoping they don&#8217;t come back and lambast me for my ridiculously stupid idea. </p>
<p>If you look at the diff its around 5 lines but I thought it was a pretty nice little extra. I just added a :function option that lets you specify a function that you can call in javascript client side to actually render the map instead of the the default window.onload or automatic. Here&#8217;s what using the option looks like </p>
<p><script src="http://gist.github.com/24087.js"></script></p>
<p>and this renders as the following in the page</p>
<p><script src="http://gist.github.com/24086.js"></script></p>
<p>Meaning you can just call it whenever you would like. </p>
<p>I added this in because I was loading 5 - 10 map divs per page and they were display=none, so it didn&#8217;t make sense to send the call to Google for the map unless the user wanted to view the hidden map. Here&#8217;s hoping they except the patch!</p>
]]></content:encoded>
			<wfw:commentRss>http://nickelcode.com/2008/11/11/ym4r_gm-patch-submitted/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Happenings: RESTful event tracking</title>
		<link>http://nickelcode.com/2008/11/10/happenings-my-first-restful-rails-app/</link>
		<comments>http://nickelcode.com/2008/11/10/happenings-my-first-restful-rails-app/#comments</comments>
		<pubDate>Tue, 11 Nov 2008 04:36:49 +0000</pubDate>
		<dc:creator>John Bender</dc:creator>
		
		<category><![CDATA[jquery]]></category>

		<category><![CDATA[ruby on rails]]></category>

		<category><![CDATA[web development]]></category>

		<category><![CDATA[rails happenings events jquery google maps]]></category>

		<guid isPermaLink="false">http://nickelcode.com/?p=17</guid>
		<description><![CDATA[So I finally got myself into a project I couldn't get out of and I hacked together an event tracking system I dubbed, happenings. As it stands now its a rails project by itself, but I would like to create a gem or plugin so that the models can easily be used by others...]]></description>
			<content:encoded><![CDATA[<p>So I finally got myself into a project I couldn&#8217;t get out of and I hacked together an event tracking system I dubbed, happenings. </p>
<p>As it stands now its a rails project by itself, but I would like to create a gem or plugin so that the models can easily be used by others. Some of the highlights are:</p>
<ul>
<li>Google maps (ym4r)</li>
<li>Google geocode</li>
<li>
Desktop calendar client events (.vcs)</li>
<li>
Events, Addresses, Users, and Roles as seperate Models</li>
</ul>
<p>That will all stay there if I ever get around to making a gem out of it but for the completed project, I also worked with:</p>
<ul>
<li>jQuery (effects)</li>
<li>Prototype (calendar select)</li>
<li>restful_authentication</li>
</ul>
<p>It has some nice animations and I&#8217;m probably going to submit a patch to ym4r to add the :function option to the map.to_html method. Basically it let me assign a function call to the map service call so I could call it only when it was unhidden by some jquery niceness:</p>
<p><script src="http://gist.github.com/24089.js"></script></p>
<p>All and all very fun things. Next step since no one ever reads this blog is to unleash my master plan of an Mnesia webservice backend and datamapper adapter. MWAAHAHA!</p>
<p>I&#8217;ll post the code for happenings soon.</p>
]]></content:encoded>
			<wfw:commentRss>http://nickelcode.com/2008/11/10/happenings-my-first-restful-rails-app/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Agile Web Development with RoR 3rd Edition impressions</title>
		<link>http://nickelcode.com/2008/09/08/agile-web-development-with-ror-3rd-edition-impressions/</link>
		<comments>http://nickelcode.com/2008/09/08/agile-web-development-with-ror-3rd-edition-impressions/#comments</comments>
		<pubDate>Tue, 09 Sep 2008 04:09:48 +0000</pubDate>
		<dc:creator>John Bender</dc:creator>
		
		<category><![CDATA[book]]></category>

		<category><![CDATA[review]]></category>

		<category><![CDATA[ruby on rails]]></category>

		<category><![CDATA[web development]]></category>

		<category><![CDATA[book ruby rails]]></category>

		<guid isPermaLink="false">http://nickelcode.com/?p=15</guid>
		<description><![CDATA[Just picked up the beta third edition of this awesome book tonight and I was thoroughly enjoying even the beginning chapters. I really love the way these books have been written and my hat is most certainly off to the Sam, Dave, and David (we&#8217;re not on a first name basis but if you&#8217;re into [...]]]></description>
			<content:encoded><![CDATA[<p>Just picked up the <a href="http://www.pragprog.com/titles/rails3/agile-web-development-with-rails-third-edition">beta third edition</a> of this awesome book tonight and I was thoroughly enjoying even the beginning chapters. I really love the way these books have been written and my hat is most certainly off to the Sam, Dave, and David (we&#8217;re not on a first name basis but if you&#8217;re into rails you know who I&#8217;m talking about). </p>
<p>After reading the first couple of chapters, I jumped forward to migrations as I was having trouble recently when hacking about with an app that my good friend Malcolm and I have been working on together. After a page of explanation _all_ my questions had been answered. </p>
<p>It&#8217;s not only exciting to get this book because it&#8217;s such and awesome reference but because I have been wanting to get back to working with rails for a while now. Sorry to gush like a little school girl but you should go buy the pdf now if you are _at_all_ interested in developing with RoR.</p>
<p>happy hacking!</p>
]]></content:encoded>
			<wfw:commentRss>http://nickelcode.com/2008/09/08/agile-web-development-with-ror-3rd-edition-impressions/feed/</wfw:commentRss>
		</item>
		<item>
		<title>SharePoint Site permissions STSADM extension</title>
		<link>http://nickelcode.com/2008/09/06/sharepoint-site-permissions-stsadm-extension/</link>
		<comments>http://nickelcode.com/2008/09/06/sharepoint-site-permissions-stsadm-extension/#comments</comments>
		<pubDate>Sun, 07 Sep 2008 05:57:59 +0000</pubDate>
		<dc:creator>John Bender</dc:creator>
		
		<category><![CDATA[.net]]></category>

		<category><![CDATA[microsoft]]></category>

		<category><![CDATA[sharepoint]]></category>

		<category><![CDATA[stsadm]]></category>

		<category><![CDATA[sharepoint stsadm extension]]></category>

		<guid isPermaLink="false">http://nickelcode.com/?p=14</guid>
		<description><![CDATA[For the SharePoint developer's group I run in NYC I created a quick STSADM extension that outputs all of site, subsite, list, and list item permissions for a given SharePoint site. 

By piping this output into a file you can create a baseline to compare to at a later date with something like <a href="http://www.winmerge.org/">winmerge</a>. Thus you have a simply way to verify your site permissions should you need to.]]></description>
			<content:encoded><![CDATA[<p>For the SharePoint developer&#8217;s group I run in NYC I created a quick STSADM extension that outputs all of site, subsite, list, and list item permissions for a given SharePoint site. </p>
<p>By piping this output into a file you can create a baseline to compare to at a later date with something like <a href="http://www.winmerge.org/">winmerge</a>. Thus you have a simply way to verify your site permissions should you need to. The idea was to illustrate how easy it is to create extension for STSADM, but I ended up with a useful utility in the process.</p>
<p>Code <a href="https://www.hensongroup.com/usersgroups/sharepointdevelopers/Shared%20Documents/Forms/AllItems.aspx?RootFolder=%2fusersgroups%2fsharepointdevelopers%2fShared%20Documents%2fJuly%2029th%202008&#038;FolderCTID=&#038;View={7E84DB17-7B83-4137-8EEC-10BEE788F0AB}">here</a>.</p>
<p>Also, if you look at the code you&#8217;ll see that there is in fact an interface that all of the &#8220;Permissionable&#8221; objects implement (ISecurableObject) and as a result the methods for retrieving their Roles and Rights can be generic. Contrary to my earlier post <a href="http://nickelcode.com/2008/04/07/sharepoint-objects-inheriting-from-systemobject/">here</a>. </p>
<p>If you have any questions or are interested in attending the next meeting of the New York SharePoint Developer&#8217;s Group send me an email at john.bender at hensongroup.com.</p>
<p>Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://nickelcode.com/2008/09/06/sharepoint-site-permissions-stsadm-extension/feed/</wfw:commentRss>
		</item>
		<item>
		<title>RyC Unit Testing Utility</title>
		<link>http://nickelcode.com/2008/09/06/ryc-unit-testing/</link>
		<comments>http://nickelcode.com/2008/09/06/ryc-unit-testing/#comments</comments>
		<pubDate>Sun, 07 Sep 2008 05:24:39 +0000</pubDate>
		<dc:creator>John Bender</dc:creator>
		
		<category><![CDATA[c]]></category>

		<category><![CDATA[ruby on rails]]></category>

		<category><![CDATA[uncategorized]]></category>

		<category><![CDATA[ruby scripts unit test ryc]]></category>

		<guid isPermaLink="false">http://nickelcode.com/?p=13</guid>
		<description><![CDATA[I started this project a long time ago to learn Ruby and never got around to making it really useful. Well I just resurected it and I think it could be useful for people working with C. ]]></description>
			<content:encoded><![CDATA[<p>I started this project a long time ago to learn Ruby and never got around to making it really useful. Well I just resurrected it and I think it could be useful for people working with C. </p>
<p>Basically it just does all the dirty work of taking your C methods and making them available for Ruby via a bundle file. The next step is to build out a Ruby unit test script with stubs for each of the methods in the bundle, thus making it very easy to unit test your C code. </p>
<p>Check it out <a href="http://github.com/johnbender/ryc-unit-testing/tree/master">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://nickelcode.com/2008/09/06/ryc-unit-testing/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Sharepoint Objects inheriting from System.Object?</title>
		<link>http://nickelcode.com/2008/04/07/sharepoint-objects-inheriting-from-systemobject/</link>
		<comments>http://nickelcode.com/2008/04/07/sharepoint-objects-inheriting-from-systemobject/#comments</comments>
		<pubDate>Tue, 08 Apr 2008 00:06:55 +0000</pubDate>
		<dc:creator>John Bender</dc:creator>
		
		<category><![CDATA[microsoft]]></category>

		<category><![CDATA[sharepoint]]></category>

		<category><![CDATA[sharepoint objects som oop]]></category>

		<guid isPermaLink="false">http://nickelcode.com/?p=12</guid>
		<description><![CDATA[In my short time working the the Sharepoint Object Model, I have thoroughly enjoyed the ease with which I am able to access all the bits and pieces that make up Sharepoint. It allows the developer to get creative with what he/she wants to do, and really the only limiting factors are time and money.  The only oddity I have come across thus far is that objects like SPList (document libraries, etc) and SPWeb (sites within a site collection) inherit from the System.Object class.]]></description>
			<content:encoded><![CDATA[<p><strong>UPDATE:</strong> All of these objects implement and interface that allows them to be used generically (ISecurableObject). YAY! See <a href="http://nickelcode.com/2008/09/06/sharepoint-site-permissions-stsadm-extension/">here</a> for an example.</p>
<p>In my short time working the the Sharepoint Object Model, I have thoroughly enjoyed the ease with which I am able to access all the bits and pieces that make up Sharepoint. It allows the developer to get creative with what he/she wants to do, and really the only limiting factors are time and money.  The only oddity I have come across thus far is that objects like SPList (document libraries, etc) and SPWeb (sites within a site collection) inherit from the System.Object class.</p>
<p><a href="http://msdn2.microsoft.com/en-us/library/microsoft.sharepoint.splist.aspx"><img src="http://nickelcode.com/images/splist_inheritance.jpg" width="311" border="1" height="85"/<a/></a><a href="http://msdn2.microsoft.com/en-us/library/microsoft.sharepoint.spweb.aspx"><img src="http://nickelcode.com/images/spweb_inheritance.jpg" width="311" align="top" border="1" height="55" /></a></p>
<p>From a high level view of the inheritance hierarchy this could be justifiable, but they do have common elements (roles, groups) that would better serve developers, where they incorporated into a singe parent element.  For example, I&#8217;ve written a simple extension to stsadm to recursively grab all groups and roles for all webs, lists and list items within a site collection. Because there is not a common &#8220;SPObject&#8221; or &#8220;SPPermissionedObject&#8221; class that SPList, SPWeb, and SPListItem inherit from, and that I can cast those objects to, I am stuck writting three different functions to handle the roles and groups for each type of object.</p>
<p>Example:</p>
<p><script src="http://gist.github.com/24090.js"></script></p>
<p>On a small scale this doesn&#8217;t seem like much of an issue, but with large code bases the result of the current inheritance hierarchy is code that will be much more difficult to maintain. The only reason I can see for Microsoft having proceeded this way is that they want to see how developers are using the software before solidifying their inheritance. Providing my suggested solution and then changing it would break code, where as with the current situation code will work even if they were to implement an SPPermissionedObject.</p>
]]></content:encoded>
			<wfw:commentRss>http://nickelcode.com/2008/04/07/sharepoint-objects-inheriting-from-systemobject/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
