<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Ryan Brady &#187; Python</title>
	<atom:link href="http://www.ryanbrady.org/category/python/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ryanbrady.org</link>
	<description>Assorted Musings, Mostly About Web and Software Development</description>
	<lastBuildDate>Sun, 18 Apr 2010 00:02:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Simple Fix: coercing to Unicode: need string or buffer, NoneType found</title>
		<link>http://www.ryanbrady.org/2010/04/17/simple-fix-coercing-to-unicode-need-string-or-buffer-nonetype-found/</link>
		<comments>http://www.ryanbrady.org/2010/04/17/simple-fix-coercing-to-unicode-need-string-or-buffer-nonetype-found/#comments</comments>
		<pubDate>Sun, 18 Apr 2010 00:02:15 +0000</pubDate>
		<dc:creator>ryan</dc:creator>
				<category><![CDATA[Django]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.ryanbrady.org/?p=296</guid>
		<description><![CDATA[Have you ever edited your models.py file and shortly after when trying to see the change list for a model in the admin site you received this error? Caught an exception while rendering: coercing to Unicode: need string or buffer, NoneType found I did today and it was one of those &#8220;bonehead&#8221; moments. You know, [...]]]></description>
			<content:encoded><![CDATA[<p>Have you ever edited your models.py file and shortly after when trying to see the change list for a model in the admin site you received this error?</p>
<p><em>Caught an exception while rendering: coercing to Unicode: need string or buffer, NoneType found</em></p>
<p>I did today and it was one of those &#8220;bonehead&#8221; moments.  You know, the one where you&#8217;ve been coding for a bit and for some reason make a simple error that leaves you thinking &#8220;I&#8217;ve done that exact same action a hundred times, why would I get an error this time?&#8221;, when you realize you made a really simple mistake.  The answer was quick and easy.  It was not occuring on the new model form, only on the change list so I opened my models file and looked over the model in question and then realized my typo.  I had forgot to add &#8220;return&#8221; to the __unicode__ method on my model.  So if you get this error, make sure that you&#8217;re <span style="color: #ff0000;">returning</span> something and that its really unicode.</p>

<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Fwww.ryanbrady.org%2F2010%2F04%2F17%2Fsimple-fix-coercing-to-unicode-need-string-or-buffer-nonetype-found%2F&amp;title=Simple+Fix%3A+coercing+to+Unicode%3A+need+string+or+buffer%2C+NoneType+found" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.ryanbrady.org%2F2010%2F04%2F17%2Fsimple-fix-coercing-to-unicode-need-string-or-buffer-nonetype-found%2F&amp;title=Simple+Fix%3A+coercing+to+Unicode%3A+need+string+or+buffer%2C+NoneType+found" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Fwww.ryanbrady.org%2F2010%2F04%2F17%2Fsimple-fix-coercing-to-unicode-need-string-or-buffer-nonetype-found%2F&amp;title=Simple+Fix%3A+coercing+to+Unicode%3A+need+string+or+buffer%2C+NoneType+found" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Fwww.ryanbrady.org%2F2010%2F04%2F17%2Fsimple-fix-coercing-to-unicode-need-string-or-buffer-nonetype-found%2F&amp;title=Simple+Fix%3A+coercing+to+Unicode%3A+need+string+or+buffer%2C+NoneType+found" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Fwww.ryanbrady.org%2F2010%2F04%2F17%2Fsimple-fix-coercing-to-unicode-need-string-or-buffer-nonetype-found%2F&amp;title=Simple+Fix%3A+coercing+to+Unicode%3A+need+string+or+buffer%2C+NoneType+found', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://images.del.icio.us/static/img/delicious.small.gif" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.ryanbrady.org%2F2010%2F04%2F17%2Fsimple-fix-coercing-to-unicode-need-string-or-buffer-nonetype-found%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Fwww.ryanbrady.org%2F2010%2F04%2F17%2Fsimple-fix-coercing-to-unicode-need-string-or-buffer-nonetype-found%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fwww.ryanbrady.org%2F2010%2F04%2F17%2Fsimple-fix-coercing-to-unicode-need-string-or-buffer-nonetype-found%2F&amp;title=Simple+Fix%3A+coercing+to+Unicode%3A+need+string+or+buffer%2C+NoneType+found" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.ryanbrady.org%2F2010%2F04%2F17%2Fsimple-fix-coercing-to-unicode-need-string-or-buffer-nonetype-found%2F&amp;title=Simple+Fix%3A+coercing+to+Unicode%3A+need+string+or+buffer%2C+NoneType+found" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span>]]></content:encoded>
			<wfw:commentRss>http://www.ryanbrady.org/2010/04/17/simple-fix-coercing-to-unicode-need-string-or-buffer-nonetype-found/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Using IronPython with MOSS 2007</title>
		<link>http://www.ryanbrady.org/2010/04/13/using-ironpython-with-moss-2007/</link>
		<comments>http://www.ryanbrady.org/2010/04/13/using-ironpython-with-moss-2007/#comments</comments>
		<pubDate>Wed, 14 Apr 2010 02:11:22 +0000</pubDate>
		<dc:creator>ryan</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Sharepoint]]></category>

		<guid isPermaLink="false">http://www.ryanbrady.org/?p=272</guid>
		<description><![CDATA[I&#8217;ve been working on a project that interacts with Microsoft Office SharePoint Server 2007 (MOSS 2007) for the last few months and one of the tools I&#8217;ve been using daily to support my work is IronPython. IronPython has made it easy for me to come up to speed quickly on the MOSS 2007 API but [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been working on a project that interacts with Microsoft Office SharePoint Server 2007 (MOSS 2007) for the last few months and one of the tools I&#8217;ve been using daily to support my work is <a href="http://ironpython.net/">IronPython</a>.  IronPython has made it easy for me to come up to speed quickly on the MOSS 2007 API but what has made my life even easier is the IronPython Console.</p>
<p>*Note: If you have a browser that supports Silverlight, you can <a href="http://ironpython.net/try/">try Python in your browser</a> now.</p>
<p>IronPython ships with a console virtually identical to the stand Python console.  The IronPython console provides me with a constant live connection directly to the API.  It&#8217;s very different and somewhat empowering to transition from the standard workflow in Visual Studio of write code/build/run to something more like a conversation with the code.  I think the term conversation is a very good analogy because it&#8217;s not just looking at classes and methods, it&#8217;s also data and interaction.  It&#8217;s experiencing everything all at once!</p>
<p>Let&#8217;s take a look at what I&#8217;m talking about.  To run these samples, I had <a href="http://ironpython.codeplex.com/releases/view/12482#DownloadId=96606">IronPython 2.6.1</a> installed on a server running Windows Server 2003 and MOSS 2007.</p>
<p>When you first start up the console, you need to reference the Microsoft.SharePoint .dll.  You SharePoint types probably know to find this in either the 12 Hive or the GAC.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&gt;&gt;&gt;</span> import clr
<span style="color: #000000; font-weight: bold;">&gt;&gt;&gt;</span> clr.AddReference<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #ff0000;">&quot;Microsoft.SharePoint&quot;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span></pre></div></div>

<p>We need to import the <a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spsite.aspx">SPSite</a> class before we use it too.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&gt;&gt;&gt;</span> from Microsoft.SharePoint import SPSite</pre></div></div>

<p>Now we can create a connection to a site and open its default <a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spweb.aspx">SPWeb</a> object.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&gt;&gt;&gt;</span> site = SPSite<span style="color: #7a0874; font-weight: bold;">&#40;</span>baseurl<span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #000000; font-weight: bold;">&gt;&gt;&gt;</span> web = site.OpenWeb<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #000000; font-weight: bold;">&gt;&gt;&gt;</span> web</pre></div></div>

<p>We can also navigate around the subwebs of a given web by using the <a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spweb.webs(v=office.12).aspx">Webs</a> property.  You can run into permissions issues though.  Here we try to access the first subweb in the Webs collection.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&gt;&gt;&gt;</span> web.Webs<span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #000000;">0</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>
Traceback <span style="color: #7a0874; font-weight: bold;">&#40;</span>most recent call <span style="color: #c20cb9; font-weight: bold;">last</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>:
File <span style="color: #ff0000;">&quot;&quot;</span>, line <span style="color: #000000;">1</span>, <span style="color: #000000; font-weight: bold;">in</span>
SystemError: Access is denied. <span style="color: #7a0874; font-weight: bold;">&#40;</span>Exception from HRESULT: 0x80070005 <span style="color: #7a0874; font-weight: bold;">&#40;</span>E_ACCESSDENI
ED<span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span></pre></div></div>

<p>To get around this error, we can just use the <a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spsite.systemaccount(v=office.12).aspx">SystemAccount</a> token attached to each site.  I really don&#8217;t know the reason behind the design of this API, but you can use one site reference to give you a connection with elevated privileges on another site.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&gt;&gt;&gt;</span> temp = SPSite<span style="color: #7a0874; font-weight: bold;">&#40;</span>baseurl<span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #000000; font-weight: bold;">&gt;&gt;&gt;</span> site = SPSite<span style="color: #7a0874; font-weight: bold;">&#40;</span>baseurl, temp.SystemAccount.UserToken<span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #000000; font-weight: bold;">&gt;&gt;&gt;</span> web = base_site.OpenWeb<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span></pre></div></div>

<p>Now you can start exploring around and seeing what exits.  When you want to see<br />
what members a given object has, you just use the <a href="http://docs.python.org/library/functions.html#dir">dir()</a> method.  Let&#8217;s take a look at<br />
the first object in the <a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spweb.lists(v=office.12).aspx">Lists</a> collection.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&gt;&gt;&gt;</span> <span style="color: #c20cb9; font-weight: bold;">dir</span><span style="color: #7a0874; font-weight: bold;">&#40;</span>base_web.Lists<span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #000000;">0</span><span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #ff0000;">'AddWorkflowAssociation'</span>, <span style="color: #ff0000;">'AlertTemplate'</span>, <span style="color: #ff0000;">'AllRolesForCurrentUser'</span>, <span style="color: #ff0000;">'AllowCont
entTypes'</span>, <span style="color: #ff0000;">'AllowDeletion'</span>, <span style="color: #ff0000;">'AllowEveryoneViewItems'</span>, <span style="color: #ff0000;">'AllowMultiResponses'</span>, <span style="color: #ff0000;">'Al
lowRssFeeds'</span>, <span style="color: #ff0000;">'AnonymousPermMask'</span>, <span style="color: #ff0000;">'AnonymousPermMask64'</span>, <span style="color: #ff0000;">'Audit'</span>, <span style="color: #ff0000;">'Author'</span>, <span style="color: #ff0000;">'Ba
seTemplate'</span>, <span style="color: #ff0000;">'BaseType'</span>, <span style="color: #ff0000;">'BreakRoleInheritance'</span>, <span style="color: #ff0000;">'CanReceiveEmail'</span>, <span style="color: #ff0000;">'CheckPermis
sions'</span>, <span style="color: #ff0000;">'CheckedOutFiles'</span>, <span style="color: #ff0000;">'ContentTypes'</span>, <span style="color: #ff0000;">'ContentTypesEnabled'</span>, <span style="color: #ff0000;">'Created'</span>, <span style="color: #ff0000;">'Cu
rrentChangeToken'</span>, <span style="color: #ff0000;">'DefaultApprovalWorkflowId'</span>, <span style="color: #ff0000;">'DefaultContentApprovalWorkflowI
d'</span>, <span style="color: #ff0000;">'DefaultItemOpen'</span>, <span style="color: #ff0000;">'DefaultView'</span>, <span style="color: #ff0000;">'DefaultViewUrl'</span>, <span style="color: #ff0000;">'Delete'</span>, <span style="color: #ff0000;">'Description'</span>,
<span style="color: #ff0000;">'Direction'</span>, <span style="color: #ff0000;">'DocumentTemplateUrl'</span>, <span style="color: #ff0000;">'DoesUserHavePermissions'</span>, <span style="color: #ff0000;">'DraftVersionVis
ibility'</span>, <span style="color: #ff0000;">'EffectiveBasePermissions'</span>, <span style="color: #ff0000;">'EffectiveFolderPermissions'</span>, <span style="color: #ff0000;">'EmailAlias'</span>
, <span style="color: #ff0000;">'EmailInsertsFolder'</span>, <span style="color: #ff0000;">'EnableAssignToEmail'</span>, <span style="color: #ff0000;">'EnableAttachments'</span>, <span style="color: #ff0000;">'EnableDeplo
yWithDependentList'</span>, <span style="color: #ff0000;">'EnableDeployingList'</span>, <span style="color: #ff0000;">'EnableFolderCreation'</span>, <span style="color: #ff0000;">'EnableMinor
Versions'</span>, <span style="color: #ff0000;">'EnableModeration'</span>, <span style="color: #ff0000;">'EnableSchemaCaching'</span>, <span style="color: #ff0000;">'EnableSyndication'</span>, <span style="color: #ff0000;">'Enab
leVersioning'</span>, <span style="color: #ff0000;">'EnsurePropsFresh'</span>, <span style="color: #ff0000;">'EnsureRssSettings'</span>, <span style="color: #ff0000;">'Equals'</span>, <span style="color: #ff0000;">'EventReceiver
s'</span>, <span style="color: #ff0000;">'EventSinkAssembly'</span>, <span style="color: #ff0000;">'EventSinkClass'</span>, <span style="color: #ff0000;">'EventSinkData'</span>, <span style="color: #ff0000;">'ExcludeFromTemplate
'</span>, <span style="color: #ff0000;">'Fields'</span>, <span style="color: #ff0000;">'FirstUniqueAncestor'</span>, <span style="color: #ff0000;">'Folders'</span>, <span style="color: #ff0000;">'ForceCheckout'</span>, <span style="color: #ff0000;">'Forms'</span>, <span style="color: #ff0000;">'GetCha
nges'</span>, <span style="color: #ff0000;">'GetContentTypeIdByUrl'</span>, <span style="color: #ff0000;">'GetDefaultViewForContentType'</span>, <span style="color: #ff0000;">'GetDirectChildC
ontentType'</span>, <span style="color: #ff0000;">'GetDistinctFieldValues'</span>, <span style="color: #ff0000;">'GetHashCode'</span>, <span style="color: #ff0000;">'GetItemById'</span>, <span style="color: #ff0000;">'GetItemByU
niqueId'</span>, <span style="color: #ff0000;">'GetItems'</span>, <span style="color: #ff0000;">'GetItemsInFolder'</span>, <span style="color: #ff0000;">'GetPropertiesXmlForUncustomizedViews'</span>
, <span style="color: #ff0000;">'GetType'</span>, <span style="color: #ff0000;">'GetUncustomizedViewByBaseViewId'</span>, <span style="color: #ff0000;">'GetView'</span>, <span style="color: #ff0000;">'HasUniqueRoleAssignm
ents'</span>, <span style="color: #ff0000;">'Hidden'</span>, <span style="color: #ff0000;">'ID'</span>, <span style="color: #ff0000;">'ImageUrl'</span>, <span style="color: #ff0000;">'IrmEnabled'</span>, <span style="color: #ff0000;">'IrmExpire'</span>, <span style="color: #ff0000;">'IrmReject'</span>, <span style="color: #ff0000;">'IsCa
talog'</span>, <span style="color: #ff0000;">'IsContentTypeAllowed'</span>, <span style="color: #ff0000;">'ItemCount'</span>, <span style="color: #ff0000;">'Items'</span>, <span style="color: #ff0000;">'LastItemDeletedDate'</span>, <span style="color: #ff0000;">'La
stItemModifiedDate'</span>, <span style="color: #ff0000;">'Lists'</span>, <span style="color: #ff0000;">'MajorVersionLimit'</span>, <span style="color: #ff0000;">'MajorWithMinorVersionsLimit'</span>
, <span style="color: #ff0000;">'MemberwiseClone'</span>, <span style="color: #ff0000;">'MobileDefaultViewUrl'</span>, <span style="color: #ff0000;">'MultipleDataList'</span>, <span style="color: #ff0000;">'NoCrawl'</span>, <span style="color: #ff0000;">'OnQ
uickLaunch'</span>, <span style="color: #ff0000;">'Ordered'</span>, <span style="color: #ff0000;">'ParentWeb'</span>, <span style="color: #ff0000;">'ParentWebUrl'</span>, <span style="color: #ff0000;">'Permissions'</span>, <span style="color: #ff0000;">'PropertiesX
ml'</span>, <span style="color: #ff0000;">'ReadSecurity'</span>, <span style="color: #ff0000;">'Recycle'</span>, <span style="color: #ff0000;">'ReferenceEquals'</span>, <span style="color: #ff0000;">'RemoveWorkflowAssociation'</span>,
<span style="color: #ff0000;">'RenderAsHtml'</span>, <span style="color: #ff0000;">'RequestAccessEnabled'</span>, <span style="color: #ff0000;">'ResetRoleInheritance'</span>, <span style="color: #ff0000;">'RestrictedTempl
ateList'</span>, <span style="color: #ff0000;">'ReusableAcl'</span>, <span style="color: #ff0000;">'RoleAssignments'</span>, <span style="color: #ff0000;">'RootFolder'</span>, <span style="color: #ff0000;">'SaveAsTemplate'</span>, <span style="color: #ff0000;">'Sch
emaXml'</span>, <span style="color: #ff0000;">'SendToLocationName'</span>, <span style="color: #ff0000;">'SendToLocationUrl'</span>, <span style="color: #ff0000;">'ServerRelativeDocumentTempl
ateUrl'</span>, <span style="color: #ff0000;">'ServerTemplateCanCreateFolders'</span>, <span style="color: #ff0000;">'ServerTemplateCanReceiveEmail'</span>, <span style="color: #ff0000;">'Set
AttributesForPropertiesXML'</span>, <span style="color: #ff0000;">'ShowUser'</span>, <span style="color: #ff0000;">'TemplateFeatureId'</span>, <span style="color: #ff0000;">'Title'</span>, <span style="color: #ff0000;">'ToString
'</span>, <span style="color: #ff0000;">'Update'</span>, <span style="color: #ff0000;">'UpdateWorkflowAssociation'</span>, <span style="color: #ff0000;">'Version'</span>, <span style="color: #ff0000;">'Views'</span>, <span style="color: #ff0000;">'WorkflowAssociati
ons'</span>, <span style="color: #ff0000;">'WriteRssFeed'</span>, <span style="color: #ff0000;">'WriteSecurity'</span>, <span style="color: #ff0000;">'__class__'</span>, <span style="color: #ff0000;">'__delattr__'</span>, <span style="color: #ff0000;">'__doc__'</span>, <span style="color: #ff0000;">'_
_format__'</span>, <span style="color: #ff0000;">'__getattribute__'</span>, <span style="color: #ff0000;">'__hash__'</span>, <span style="color: #ff0000;">'__init__'</span>, <span style="color: #ff0000;">'__new__'</span>, <span style="color: #ff0000;">'__reduce__'</span>,
<span style="color: #ff0000;">'__reduce_ex__'</span>, <span style="color: #ff0000;">'__repr__'</span>, <span style="color: #ff0000;">'__setattr__'</span>, <span style="color: #ff0000;">'__sizeof__'</span>, <span style="color: #ff0000;">'__str__'</span>, <span style="color: #ff0000;">'__subclas
shook__'</span>, <span style="color: #ff0000;">'m_ListAttributesDict'</span>, <span style="color: #ff0000;">'m_Lists'</span>, <span style="color: #ff0000;">'m_Permissions'</span>, <span style="color: #ff0000;">'m_arrListProps'</span>,
<span style="color: #ff0000;">'m_iRow'</span><span style="color: #7a0874; font-weight: bold;">&#93;</span></pre></div></div>

<p>Now this may or may not be readable to you.  Alot of times when there&#8217;s a ton of text to deal with in the console, I&#8217;ll iterate through the methods and print them each on their own line.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&gt;&gt;&gt;</span> <span style="color: #000000; font-weight: bold;">for</span> method <span style="color: #000000; font-weight: bold;">in</span> <span style="color: #c20cb9; font-weight: bold;">dir</span><span style="color: #7a0874; font-weight: bold;">&#40;</span>base_web.Lists<span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #000000;">0</span><span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>:
...     print method
...
AddWorkflowAssociation
AlertTemplate
AllRolesForCurrentUser
AllowContentTypes
AllowDeletion
AllowEveryoneViewItems
.... <span style="color: #7a0874; font-weight: bold;">&#91;</span>Omitted to save space<span style="color: #7a0874; font-weight: bold;">&#93;</span>
__class__
__delattr__
__doc__
__format__
__getattribute__
__hash__
__init__
__new__
__reduce__
__reduce_ex__
__repr__
__setattr__
__sizeof__
__str__
__subclasshook__
m_ListAttributesDict
m_Lists
m_Permissions
m_arrListProps
m_iRow</pre></div></div>

<p>You can inspect classes too.  You don&#8217;t need an instance.  If you inspect the class you&#8217;ll just need to import the type first.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&gt;&gt;&gt;</span> <span style="color: #000000; font-weight: bold;">for</span> method <span style="color: #000000; font-weight: bold;">in</span> <span style="color: #c20cb9; font-weight: bold;">dir</span><span style="color: #7a0874; font-weight: bold;">&#40;</span>SPListCollection<span style="color: #7a0874; font-weight: bold;">&#41;</span>:
...     print method
...
Traceback <span style="color: #7a0874; font-weight: bold;">&#40;</span>most recent call <span style="color: #c20cb9; font-weight: bold;">last</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>:
NameError: name <span style="color: #ff0000;">'SPListCollection'</span> is not defined
<span style="color: #000000; font-weight: bold;">&gt;&gt;&gt;</span> from Microsoft.SharePoint import SPListCollection
<span style="color: #000000; font-weight: bold;">&gt;&gt;&gt;</span> <span style="color: #000000; font-weight: bold;">for</span> method <span style="color: #000000; font-weight: bold;">in</span> <span style="color: #c20cb9; font-weight: bold;">dir</span><span style="color: #7a0874; font-weight: bold;">&#40;</span>SPListCollection<span style="color: #7a0874; font-weight: bold;">&#41;</span>:
...        print method
...
Add
CopyTo
... <span style="color: #7a0874; font-weight: bold;">&#91;</span>Omitted to save space<span style="color: #7a0874; font-weight: bold;">&#93;</span>
__add__
__class__
__delattr__
__doc__
__format__
__getattribute__
__getitem__
__hash__
__init__
__iter__
__len__
__new__
__reduce__
__reduce_ex__
__repr__
__setattr__
__sizeof__
__str__
__subclasshook__</pre></div></div>

<p>If you&#8217;re coming from a C# or VB background, you&#8217;re probably familiar with the &#8220;Using&#8221; block.  Python has something similar to that with the <a href="http://docs.python.org/whatsnew/2.6.html#pep-343-the-with-statement">&#8220;with&#8221; statement</a>.  The with statement is used with <a href="http://docs.python.org/whatsnew/2.6.html#writing-context-managers">ContextManagers</a>.  Many of the .Net framework classes support the ContextManager methods so you can use the with statement.  You can see the <a href="http://docs.python.org/reference/datamodel.html#object.__enter__">__enter__</a> and <a href="http://docs.python.org/reference/datamodel.html#object.__exit__">__exit__</a> methods below that help make this possible.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&gt;&gt;&gt;</span> <span style="color: #c20cb9; font-weight: bold;">dir</span><span style="color: #7a0874; font-weight: bold;">&#40;</span>SPSite<span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #ff0000;">'AddWorkItem'</span>, <span style="color: #ff0000;">'AllWebs'</span>, ...<span style="color: #7a0874; font-weight: bold;">&#91;</span>Omitted <span style="color: #000000; font-weight: bold;">for</span> space<span style="color: #7a0874; font-weight: bold;">&#93;</span>, <span style="color: #ff0000;">'__class__'</span>, <span style="color: #ff0000;">'__delattr__'</span>, <span style="color: #ff0000;">'__doc__'</span>, <span style="color: #ff0000;">'__enter__
'</span>, <span style="color: #ff0000;">'__exit__'</span>, <span style="color: #ff0000;">'__format__'</span>, <span style="color: #ff0000;">'__getattribute__'</span>, <span style="color: #ff0000;">'__hash__'</span>, <span style="color: #ff0000;">'__init__'</span>, <span style="color: #ff0000;">'__new_
_'</span>, <span style="color: #ff0000;">'__reduce__'</span>, <span style="color: #ff0000;">'__reduce_ex__'</span>, <span style="color: #ff0000;">'__repr__'</span>, <span style="color: #ff0000;">'__setattr__'</span>, <span style="color: #ff0000;">'__sizeof__'</span>, <span style="color: #ff0000;">'__s
tr__'</span>, <span style="color: #ff0000;">'__subclasshook__'</span><span style="color: #7a0874; font-weight: bold;">&#93;</span></pre></div></div>

<p>Now we can refactor our earlier sample to use the with statement.  This is something I use more in scripts that reference MOSS 2007, but I thought you may find some uses.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&gt;&gt;&gt;</span> web = None
<span style="color: #000000; font-weight: bold;">&gt;&gt;&gt;</span> with SPSite<span style="color: #7a0874; font-weight: bold;">&#40;</span>baseurl<span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #c20cb9; font-weight: bold;">as</span> temp:
... 	with SPSite<span style="color: #7a0874; font-weight: bold;">&#40;</span>baseurl, temp.SystemAccount.UserToken<span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #c20cb9; font-weight: bold;">as</span> site:
...			web = site.OpenWeb<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
...</pre></div></div>

<p>It&#8217;s all pretty basic and the console lends itself well to those who like to explore. I really like this method versus digging around the object browser or Reflector all of the time.  I like the instant feedback when exploring and the ability to see data and not just structure.  I&#8217;ve also successfully used IronPython to create custom event handlers and for some administrative tasks for a 2003 to 2007 upgrade.  I highly recommend you try it if you find yourself having to do any development using the SharePoint API.</p>

<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Fwww.ryanbrady.org%2F2010%2F04%2F13%2Fusing-ironpython-with-moss-2007%2F&amp;title=Using+IronPython+with+MOSS+2007" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.ryanbrady.org%2F2010%2F04%2F13%2Fusing-ironpython-with-moss-2007%2F&amp;title=Using+IronPython+with+MOSS+2007" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Fwww.ryanbrady.org%2F2010%2F04%2F13%2Fusing-ironpython-with-moss-2007%2F&amp;title=Using+IronPython+with+MOSS+2007" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Fwww.ryanbrady.org%2F2010%2F04%2F13%2Fusing-ironpython-with-moss-2007%2F&amp;title=Using+IronPython+with+MOSS+2007" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Fwww.ryanbrady.org%2F2010%2F04%2F13%2Fusing-ironpython-with-moss-2007%2F&amp;title=Using+IronPython+with+MOSS+2007', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://images.del.icio.us/static/img/delicious.small.gif" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.ryanbrady.org%2F2010%2F04%2F13%2Fusing-ironpython-with-moss-2007%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Fwww.ryanbrady.org%2F2010%2F04%2F13%2Fusing-ironpython-with-moss-2007%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fwww.ryanbrady.org%2F2010%2F04%2F13%2Fusing-ironpython-with-moss-2007%2F&amp;title=Using+IronPython+with+MOSS+2007" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.ryanbrady.org%2F2010%2F04%2F13%2Fusing-ironpython-with-moss-2007%2F&amp;title=Using+IronPython+with+MOSS+2007" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span>]]></content:encoded>
			<wfw:commentRss>http://www.ryanbrady.org/2010/04/13/using-ironpython-with-moss-2007/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Debugging IronPython In Visual Studio</title>
		<link>http://www.ryanbrady.org/2008/12/30/debugging-ironpython-in-visual-studio/</link>
		<comments>http://www.ryanbrady.org/2008/12/30/debugging-ironpython-in-visual-studio/#comments</comments>
		<pubDate>Wed, 31 Dec 2008 00:28:48 +0000</pubDate>
		<dc:creator>ryan</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[iron python]]></category>
		<category><![CDATA[visual studio]]></category>

		<guid isPermaLink="false">http://www.ryanbrady.org/?p=146</guid>
		<description><![CDATA[I&#8217;ve been getting to know IronPython a little lately and one of the first things I wanted to know was how to debug IronPython in an IDE.  Since I use Visual Studio 2008 at work, I thought it would be a good start.  I searched Google and found a text representation of the steps involved [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been getting to know IronPython a little lately and one of the first things I wanted to know was how to debug IronPython in an IDE.  Since I use Visual Studio 2008 at work, I thought it would be a good start.  I searched Google and found a text representation of the steps involved over at <a href="http://devhawk.net/2008/05/08/Debugging+IronPython+Code+In+Visual+Studio.aspx" target="_blank">Harry Pierson&#8217;s</a> blog.</p>
<p>I found it pretty simple to do and somewhat useful for longer scripts.  It will be nice in the future to have first class support for IronPython in Visual Studio 2010.</p>
<p>You should have IronPython 2.0 Final and Visual Studio 2008 Professional or Better* installed to complete this demo.</p>
<p>Create a python file to debug:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code"><pre class="python" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">#debug.py</span>
<span style="color: #ff7700;font-weight:bold;">class</span> Foo:
<span style="color: #ff7700;font-weight:bold;">def</span> <span style="color: #0000cd;">__init__</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>, name=<span style="color: #008000;">None</span><span style="color: black;">&#41;</span>:
    <span style="color: #008000;">self</span>.<span style="color: black;">name</span> = name
&nbsp;
<span style="color: #ff7700;font-weight:bold;">if</span> __name__ == <span style="color: #483d8b;">&quot;__main__&quot;</span>:
    f = Foo<span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;LVS&quot;</span><span style="color: black;">&#41;</span>
    <span style="color: #ff7700;font-weight:bold;">print</span> f.<span style="color: black;">name</span></pre></td></tr></table></div>

<p>From Visual Studio, open the IronPython executable (ipy.exe).  If it doesn&#8217;t do so for you, add the ipy.exe as an existing project.</p>
<p>From the Solution Explorer, right-click on Properties and set the Command Arguments property.  Use “-D” to tell ipy.exe to create debugging output, “-i” to start an interactive session at the end of debugging and add the full path to the script you made before.</p>
<div id="attachment_155" class="wp-caption alignnone" style="width: 310px"><a href="http://www.ryanbrady.org/wp-content/uploads/2008/12/properties.jpg"><img class="size-medium wp-image-155" title="Properties" src="http://www.ryanbrady.org/wp-content/uploads/2008/12/properties-300x204.jpg" alt="Properties Dialog" width="300" height="204" /></a><p class="wp-caption-text">Properties Dialog</p></div>
<p>Click Ok.</p>
<p>Open the script you created earlier in Visual Studio and place breakpoints as desired.</p>
<div id="attachment_156" class="wp-caption alignnone" style="width: 310px"><a href="http://www.ryanbrady.org/wp-content/uploads/2008/12/breakpoint.jpg"><img class="size-medium wp-image-156" title="Breakpoint" src="http://www.ryanbrady.org/wp-content/uploads/2008/12/breakpoint-300x179.jpg" alt="Adding a Breakpoint" width="300" height="179" /></a><p class="wp-caption-text">Adding a Breakpoint</p></div>
<p>Run the script in debug mode (F5).</p>
<p><a href="http://www.ryanbrady.org/wp-content/uploads/2008/12/run.jpg"><img class="alignnone size-medium wp-image-157" title="Running (F5)" src="http://www.ryanbrady.org/wp-content/uploads/2008/12/run-300x179.jpg" alt="" width="300" height="179" /></a></p>
<p>If you added the “-i” argument in step 3, after the last breakpoint is released it will launch an interactive session for you.  You will be able to inspect your script at this point, much like the immediate window in Visual Studio.</p>
<div id="attachment_158" class="wp-caption alignnone" style="width: 310px"><a href="http://www.ryanbrady.org/wp-content/uploads/2008/12/console.jpg"><img class="size-medium wp-image-158" title="Console" src="http://www.ryanbrady.org/wp-content/uploads/2008/12/console-300x150.jpg" alt="Interactive Console" width="300" height="150" /></a><p class="wp-caption-text">Interactive Console</p></div>
<p>* I tried this in the Visual Studio 2008 Team Developer Edition and the Visual Studio Express Edition.  The Express Editions do not work as they don&#8217;t allow you to open the ipy.exe as a solution item.  Sorry &#8220;hobbyists&#8221;, we&#8217;ll see if the Express sku&#8217;s of Visual Studio 2010 will target IronPython / IronRuby.</p>

<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Fwww.ryanbrady.org%2F2008%2F12%2F30%2Fdebugging-ironpython-in-visual-studio%2F&amp;title=Debugging+IronPython+In+Visual+Studio" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.ryanbrady.org%2F2008%2F12%2F30%2Fdebugging-ironpython-in-visual-studio%2F&amp;title=Debugging+IronPython+In+Visual+Studio" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Fwww.ryanbrady.org%2F2008%2F12%2F30%2Fdebugging-ironpython-in-visual-studio%2F&amp;title=Debugging+IronPython+In+Visual+Studio" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Fwww.ryanbrady.org%2F2008%2F12%2F30%2Fdebugging-ironpython-in-visual-studio%2F&amp;title=Debugging+IronPython+In+Visual+Studio" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Fwww.ryanbrady.org%2F2008%2F12%2F30%2Fdebugging-ironpython-in-visual-studio%2F&amp;title=Debugging+IronPython+In+Visual+Studio', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://images.del.icio.us/static/img/delicious.small.gif" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.ryanbrady.org%2F2008%2F12%2F30%2Fdebugging-ironpython-in-visual-studio%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Fwww.ryanbrady.org%2F2008%2F12%2F30%2Fdebugging-ironpython-in-visual-studio%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fwww.ryanbrady.org%2F2008%2F12%2F30%2Fdebugging-ironpython-in-visual-studio%2F&amp;title=Debugging+IronPython+In+Visual+Studio" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.ryanbrady.org%2F2008%2F12%2F30%2Fdebugging-ironpython-in-visual-studio%2F&amp;title=Debugging+IronPython+In+Visual+Studio" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span>]]></content:encoded>
			<wfw:commentRss>http://www.ryanbrady.org/2008/12/30/debugging-ironpython-in-visual-studio/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Code Quality &amp; Patch Quality</title>
		<link>http://www.ryanbrady.org/2008/09/09/code-quality-patch-quality/</link>
		<comments>http://www.ryanbrady.org/2008/09/09/code-quality-patch-quality/#comments</comments>
		<pubDate>Tue, 09 Sep 2008 07:03:27 +0000</pubDate>
		<dc:creator>ryan</dc:creator>
				<category><![CDATA[Django]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Bug]]></category>
		<category><![CDATA[DjangoCon]]></category>
		<category><![CDATA[Maintenance]]></category>
		<category><![CDATA[Patch]]></category>

		<guid isPermaLink="false">http://www.ryanbrady.org/?p=113</guid>
		<description><![CDATA[This was a great talk where Malcolm Tredinnick spelled out what he's looking for in Django patches and what to avoid if you don't want your patch tossed out.  Although his talk was targeting the Django project, he really dispensed good advice for anyone maintaining software regardless of project, language or platform.  The room was completely packed!  All of the chairs and couches we're filled and people were sitting on the floor and standing at the sides of the room.]]></description>
			<content:encoded><![CDATA[<p>This was a great talk where <a title="Malcolm Tredinnick" href="http://www.pointy-stick.com/blog/" target="_blank">Malcolm Tredinnick</a> spelled out what he&#8217;s looking for in Django patches and what to avoid if you don&#8217;t want your patch tossed out.  Although his talk was targeting the Django project, he really dispensed good advice for anyone maintaining software regardless of project, language or platform.  The room was completely packed!  All of the chairs and couches we&#8217;re filled and people were sitting on the floor and standing at the sides of the room.</p>
<p>You&#8217;re doing it wrong if:</p>
<p>• the word &#8220;print&#8221; is in your patch<br />
• you don&#8217;t have a test (fail before, pass afterwards)<br />
• you think &#8220;PEP 8&#8243; is an energy drink (PEP 8 is the style guide for python)<br />
∘ make your patch look like django style code</p>
<p>Create patches by running diff from the top of the repository to get all changes.  The svn add command works locally even if you don&#8217;t have rights to commit to the repository so files you add will be added to the patch.</p>
<p><em><strong>&#8220;Code style is opinionated and yours doesn&#8217;t matter!&#8221;</strong></em></p>
<p>What he&#8217;s saying here makes sense in any open source project.  There&#8217;s a style defined and you should not deviate from it no matter how much you like your own special coding habits.  You might get away with minute changes, but don&#8217;t push it.</p>
<p><em><strong>&#8220;Read the contributing document.&#8221;</strong></em></p>
<p>This seems to be simple and common sense.  Skipping over information someone has left for you is a recipe for confusion.</p>
<p>Some tips given on comments:<br />
• comments should last<br />
• comments should be correct<br />
• comments should explain they &#8220;why&#8221;, we can already read the how in the code.</p>
<p>Some general tips:<br />
• Fix problems and not symptoms!<br />
• Research is not a four letter word.<br />
• The crowd is smarter than you</p>
<p>And what I believe was his last advice for the talk (at least I stopped taking notes after this) was to contribute and keep contributing.  Even when your patches don&#8217;t get in, don&#8217;t get discouraged.</p>
<p>It was a good talk and the first time I had heard Malcolm speak.  He was very informative and encouraging.  Overall I liked it and it was one of my favorite talks besides <a title="James Bennett - The B-List" href="http://www.b-list.org/" target="_blank">James Bennett</a> and <a title="Cal Henderson" href="http://iamcal.com" target="_blank">Cal Henderson</a>.</p>

<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Fwww.ryanbrady.org%2F2008%2F09%2F09%2Fcode-quality-patch-quality%2F&amp;title=Code+Quality+%26%23038%3B+Patch+Quality" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.ryanbrady.org%2F2008%2F09%2F09%2Fcode-quality-patch-quality%2F&amp;title=Code+Quality+%26%23038%3B+Patch+Quality" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Fwww.ryanbrady.org%2F2008%2F09%2F09%2Fcode-quality-patch-quality%2F&amp;title=Code+Quality+%26%23038%3B+Patch+Quality" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Fwww.ryanbrady.org%2F2008%2F09%2F09%2Fcode-quality-patch-quality%2F&amp;title=Code+Quality+%26%23038%3B+Patch+Quality" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Fwww.ryanbrady.org%2F2008%2F09%2F09%2Fcode-quality-patch-quality%2F&amp;title=Code+Quality+%26%23038%3B+Patch+Quality', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://images.del.icio.us/static/img/delicious.small.gif" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.ryanbrady.org%2F2008%2F09%2F09%2Fcode-quality-patch-quality%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Fwww.ryanbrady.org%2F2008%2F09%2F09%2Fcode-quality-patch-quality%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fwww.ryanbrady.org%2F2008%2F09%2F09%2Fcode-quality-patch-quality%2F&amp;title=Code+Quality+%26%23038%3B+Patch+Quality" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.ryanbrady.org%2F2008%2F09%2F09%2Fcode-quality-patch-quality%2F&amp;title=Code+Quality+%26%23038%3B+Patch+Quality" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span>]]></content:encoded>
			<wfw:commentRss>http://www.ryanbrady.org/2008/09/09/code-quality-patch-quality/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Blogging From DjangoCon</title>
		<link>http://www.ryanbrady.org/2008/09/06/blogging-from-djangocon/</link>
		<comments>http://www.ryanbrady.org/2008/09/06/blogging-from-djangocon/#comments</comments>
		<pubDate>Sat, 06 Sep 2008 18:49:42 +0000</pubDate>
		<dc:creator>ryan</dc:creator>
				<category><![CDATA[Django]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[DjangoCon]]></category>

		<guid isPermaLink="false">http://www.ryanbrady.org/?p=105</guid>
		<description><![CDATA[I'm blogging from DjangoCon, inside Google....]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m here at the GooglePlex sitting a row away from the stage and enjoying the atmosphere.&nbsp; It&#8217;s a great vibe here.&nbsp; This does feel different than the Microsoft conferences I have been to.&nbsp; Some observations so far is that the crowd seems a little younger for the most part and there is a comfortable atmosphere.&nbsp; Of course there&#8217;s free food and drinks, free wifi, a great stage and screen for the presentations and the audio is flawless.&nbsp; The only complaint I have thus far is the uncomfortable plastic daycare chairs.</p>
<p>Earlier I attended Guido&#8217;s App Engine keynote (blog post to follow later), and I&#8217;m now attending the High Performance Django talk.&nbsp; I will try to make a post for each talk I attend.</p>
<div class="mceTemp">
<dl id="attachment_107" class="wp-caption alignnone" style="width: 235px;">
<dt class="wp-caption-dt"><a href="../wp-content/uploads/2008/09/photo.jpg" mce_href="http://www.ryanbrady.org/wp-content/uploads/2008/09/photo.jpg"><img src="../wp-content/uploads/2008/09/photo-225x300.jpg" mce_src="http://www.ryanbrady.org/wp-content/uploads/2008/09/photo-225x300.jpg" alt="Custom Ice Cream" title="photo" class="size-medium wp-image-107" height="300" width="225"></a></dt>
<dd class="wp-caption-dd">Custom Ice Cream</dd>
</dl>
</div>
<p>Check back soon&#8230;</p>

<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Fwww.ryanbrady.org%2F2008%2F09%2F06%2Fblogging-from-djangocon%2F&amp;title=Blogging+From+DjangoCon" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.ryanbrady.org%2F2008%2F09%2F06%2Fblogging-from-djangocon%2F&amp;title=Blogging+From+DjangoCon" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Fwww.ryanbrady.org%2F2008%2F09%2F06%2Fblogging-from-djangocon%2F&amp;title=Blogging+From+DjangoCon" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Fwww.ryanbrady.org%2F2008%2F09%2F06%2Fblogging-from-djangocon%2F&amp;title=Blogging+From+DjangoCon" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Fwww.ryanbrady.org%2F2008%2F09%2F06%2Fblogging-from-djangocon%2F&amp;title=Blogging+From+DjangoCon', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://images.del.icio.us/static/img/delicious.small.gif" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.ryanbrady.org%2F2008%2F09%2F06%2Fblogging-from-djangocon%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Fwww.ryanbrady.org%2F2008%2F09%2F06%2Fblogging-from-djangocon%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fwww.ryanbrady.org%2F2008%2F09%2F06%2Fblogging-from-djangocon%2F&amp;title=Blogging+From+DjangoCon" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.ryanbrady.org%2F2008%2F09%2F06%2Fblogging-from-djangocon%2F&amp;title=Blogging+From+DjangoCon" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span>]]></content:encoded>
			<wfw:commentRss>http://www.ryanbrady.org/2008/09/06/blogging-from-djangocon/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Building A New Blog</title>
		<link>http://www.ryanbrady.org/2008/05/22/building-a-new-blog/</link>
		<comments>http://www.ryanbrady.org/2008/05/22/building-a-new-blog/#comments</comments>
		<pubDate>Fri, 23 May 2008 00:20:29 +0000</pubDate>
		<dc:creator>ryan</dc:creator>
				<category><![CDATA[Django]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://www.oneinspired.com/?p=73</guid>
		<description><![CDATA[Because I can. Because I should. Because cool developers do it. I&#8217;m really doing it because I agree with an article from Geoffrey Grossenbach of the Nuby On Rails and PeepCode (actually, the guy does tons of stuff &#8211; go check his site out) fame. In it he says, &#8220;I’ll add to this and say [...]]]></description>
			<content:encoded><![CDATA[<p><span style="text-decoration: line-through;">Because I can.</span> <span style="text-decoration: line-through;">Because I should.</span> <span style="text-decoration: line-through;">Because cool developers do it.</span> I&#8217;m really doing it because I agree with an <a href="http://nubyonrails.com/articles/about-this-blog-memcached" target="_blank">article</a> from <a href="http://geoffreygrosenbach.com/" target="_blank">Geoffrey Grossenbach</a> of the <a href="http://nubyonrails.com/" target="_blank">Nuby On Rails</a> and <a href="http://peepcode.com/" target="_blank">PeepCode </a>(actually, the guy does tons of stuff &#8211; go check his site out) fame.  In it he says,</p>
<blockquote><p>&#8220;I’ll add to this and say that every beginning Rails developer should write their own blog software. It’s a great learning experience and you can try things that aren’t possible with just an app running on localhost. It’s also a great environment for learning without the pressure of a mission-critical app. When you’re working for a client and deploying an important application, you’ll have made all the beginner mistakes on your own time (hopefully).&#8221;</p></blockquote>
<p>It&#8217;s somewhat of a personal pride thing, as I want readers that come to my site to know that I took the time to build my own blog engine.  It was a great introduction to Django and provided me a means to applying the knowledge I have gained from the tutorial and other reading.</p>
<p>So far I&#8217;ve done three 45 minute sessions during lunch and I have the Articles, Categories, Links, and Announcements working.  I&#8217;ve been keeping track of the time and once I&#8217;m done I&#8217;ll provide the stats on time and effort along with the source.</p>

<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Fwww.ryanbrady.org%2F2008%2F05%2F22%2Fbuilding-a-new-blog%2F&amp;title=Building+A+New+Blog" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.ryanbrady.org%2F2008%2F05%2F22%2Fbuilding-a-new-blog%2F&amp;title=Building+A+New+Blog" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Fwww.ryanbrady.org%2F2008%2F05%2F22%2Fbuilding-a-new-blog%2F&amp;title=Building+A+New+Blog" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Fwww.ryanbrady.org%2F2008%2F05%2F22%2Fbuilding-a-new-blog%2F&amp;title=Building+A+New+Blog" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Fwww.ryanbrady.org%2F2008%2F05%2F22%2Fbuilding-a-new-blog%2F&amp;title=Building+A+New+Blog', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://images.del.icio.us/static/img/delicious.small.gif" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.ryanbrady.org%2F2008%2F05%2F22%2Fbuilding-a-new-blog%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Fwww.ryanbrady.org%2F2008%2F05%2F22%2Fbuilding-a-new-blog%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fwww.ryanbrady.org%2F2008%2F05%2F22%2Fbuilding-a-new-blog%2F&amp;title=Building+A+New+Blog" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.ryanbrady.org%2F2008%2F05%2F22%2Fbuilding-a-new-blog%2F&amp;title=Building+A+New+Blog" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span>]]></content:encoded>
			<wfw:commentRss>http://www.ryanbrady.org/2008/05/22/building-a-new-blog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
