<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Kirk Jackson's Page of Words</title>
    <link>http://pageofwords.com/blog/</link>
    <description>Run the ink across this page of words</description>
    <language>en-us</language>
    <copyright>Kirk Jackson</copyright>
    <lastBuildDate>Wed, 17 Jun 2009 11:41:30 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 1.9.6264.0</generator>
    <managingEditor>kirkj@paradise.net.nz</managingEditor>
    <webMaster>kirkj@paradise.net.nz</webMaster>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/pageofwords" type="application/rss+xml" /><item>
      <trackback:ping>http://pageofwords.com/blog/Trackback.aspx?guid=75728d46-6249-444a-94f8-5e5aae4c6fe7</trackback:ping>
      <pingback:server>http://pageofwords.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://pageofwords.com/blog/PermaLink,guid,75728d46-6249-444a-94f8-5e5aae4c6fe7.aspx</pingback:target>
      <dc:creator>Kirk Jackson</dc:creator>
      <wfw:comment>http://pageofwords.com/blog/CommentView,guid,75728d46-6249-444a-94f8-5e5aae4c6fe7.aspx</wfw:comment>
      <wfw:commentRss>http://pageofwords.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=75728d46-6249-444a-94f8-5e5aae4c6fe7</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Well, what did I learn while at Code Camp last weekend.?
</p>
        <ul>
          <li>
Wellington .NET dev community is passionate and quite diverse 
</li>
          <li>
Objective C is more smalltalk-ish than I realised from previous snippets I had seen 
</li>
          <li>
Xcode IDE is less 'integrated' than Visual Studio 
</li>
          <li>
I now know more about CRM and other Microsoft solutions 
</li>
          <li>
A panel discussion (Usability or Security) can be fun when the audience participates 
</li>
          <li>
How to make my code slightly more maintainable 
</li>
          <li>
Code contracts gel with me more than Spec# did. and I like them 
</li>
          <li>
F# continues to be awesome and yet awe-inspiring 
</li>
          <li>
Sync framework looks like a good solution for occasionally connected apps, with a
good set of functionality out of the box 
</li>
          <li>
And I demoed a beta IDE in a beta VM on a beta OS (VS2010 in Windows Virtual XP on
Windows 7) 
</li>
        </ul>
        <p>
Sponsors are awesome!
</p>
        <ul>
          <li>
            <a href="http://www.whitireia.ac.nz/">Whitireia</a> Community Polytechnic (in particular,
the <a href="http://www.whitireia.ac.nz/subcategory_display.php?category_id=1&amp;subcategory_id=226">Bachelor
of Information Technology</a> staff) were very accommodating hosts 
</li>
          <li>
            <a href="http://www.mindscape.co.nz/">Mindscape</a> surprised by offering prizes of
2 LightSpeed licenses and one "bundle of everything" 
</li>
          <li>
            <a href="http://www.microsoft.co.nz">Microsoft NZ</a> sent through prizes, and the <a href="http://mvp.support.microsoft.com">Microsoft
MVP Programme</a> sponsored some of the costs 
</li>
          <li>
            <a href="http://apac.ineta.org/">INETA APAC</a>, the International .NET Association
also sponsored some of the costs 
</li>
          <li>
            <a href="http://www.xero.com">Xero</a> also sponsored towards the costs 
</li>
          <li>
            <a href="http://www.dts.net.nz">DTS</a> provided internet for the weekend 
</li>
        </ul>
        <p>
Go Go Gadget. Karting!
</p>
        <p>
I had fun at the go-karts. The winners of the team event were <a href="http://twitter.com/lumbarius">Simon</a> and <a href="http://twitter.com/bertgt">Bert</a>:
</p>
        <object width="425" height="344">
          <param name="movie" value="http://www.youtube.com/v/RY8Y5vkaazw&amp;hl=en&amp;fs=1&amp;" />
          <param name="allowFullScreen" value="true" />
          <param name="allowscriptaccess" value="always" />
          <embed src="http://www.youtube.com/v/RY8Y5vkaazw&amp;hl=en&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344">
          </embed>
        </object>
        <img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=75728d46-6249-444a-94f8-5e5aae4c6fe7" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/pageofwords/~4/ZHI6FxDfBsU" height="1" width="1" /></body>
      <title>Code Camp learnings</title>
      <guid isPermaLink="false">http://pageofwords.com/blog/PermaLink,guid,75728d46-6249-444a-94f8-5e5aae4c6fe7.aspx</guid>
      <link>http://pageofwords.com/blog/2009/06/17/CodeCampLearnings.aspx</link>
      <pubDate>Wed, 17 Jun 2009 11:41:30 GMT</pubDate>
      <description>&lt;p&gt;
Well, what did I learn while at Code Camp last weekend.?
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Wellington .NET dev community is passionate and quite diverse 
&lt;/li&gt;
&lt;li&gt;
Objective C is more smalltalk-ish than I realised from previous snippets I had seen 
&lt;/li&gt;
&lt;li&gt;
Xcode IDE is less 'integrated' than Visual Studio 
&lt;/li&gt;
&lt;li&gt;
I now know more about CRM and other Microsoft solutions 
&lt;/li&gt;
&lt;li&gt;
A panel discussion (Usability or Security) can be fun when the audience participates 
&lt;/li&gt;
&lt;li&gt;
How to make my code slightly more maintainable 
&lt;/li&gt;
&lt;li&gt;
Code contracts gel with me more than Spec# did. and I like them 
&lt;/li&gt;
&lt;li&gt;
F# continues to be awesome and yet awe-inspiring 
&lt;/li&gt;
&lt;li&gt;
Sync framework looks like a good solution for occasionally connected apps, with a
good set of functionality out of the box 
&lt;/li&gt;
&lt;li&gt;
And I demoed a beta IDE in a beta VM on a beta OS (VS2010 in Windows Virtual XP on
Windows 7) 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Sponsors are awesome!
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://www.whitireia.ac.nz/"&gt;Whitireia&lt;/a&gt; Community Polytechnic (in particular,
the &lt;a href="http://www.whitireia.ac.nz/subcategory_display.php?category_id=1&amp;amp;subcategory_id=226"&gt;Bachelor
of Information Technology&lt;/a&gt; staff) were very accommodating hosts 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.mindscape.co.nz/"&gt;Mindscape&lt;/a&gt; surprised by offering prizes of
2 LightSpeed licenses and one "bundle of everything" 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.microsoft.co.nz"&gt;Microsoft NZ&lt;/a&gt; sent through prizes, and the &lt;a href="http://mvp.support.microsoft.com"&gt;Microsoft
MVP Programme&lt;/a&gt; sponsored some of the costs 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://apac.ineta.org/"&gt;INETA APAC&lt;/a&gt;, the International .NET Association
also sponsored some of the costs 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.xero.com"&gt;Xero&lt;/a&gt; also sponsored towards the costs 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.dts.net.nz"&gt;DTS&lt;/a&gt; provided internet for the weekend 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Go Go Gadget. Karting!
&lt;/p&gt;
&lt;p&gt;
I had fun at the go-karts. The winners of the team event were &lt;a href="http://twitter.com/lumbarius"&gt;Simon&lt;/a&gt; and &lt;a href="http://twitter.com/bertgt"&gt;Bert&lt;/a&gt;:
&lt;/p&gt;
&lt;object width="425" height="344"&gt;
&lt;param name="movie" value="http://www.youtube.com/v/RY8Y5vkaazw&amp;amp;hl=en&amp;amp;fs=1&amp;amp;"&gt;&gt;
&lt;param name="allowFullScreen" value="true"&gt;&gt;
&lt;param name="allowscriptaccess" value="always"&gt;&gt;&lt;embed src="http://www.youtube.com/v/RY8Y5vkaazw&amp;amp;hl=en&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;
&lt;/object&gt;&lt;img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=75728d46-6249-444a-94f8-5e5aae4c6fe7" /&gt;</description>
      <comments>http://pageofwords.com/blog/CommentView,guid,75728d46-6249-444a-94f8-5e5aae4c6fe7.aspx</comments>
      <category>CodeCamp;UserGroup</category>
    </item>
    <item>
      <trackback:ping>http://pageofwords.com/blog/Trackback.aspx?guid=a3d4e380-f079-446e-8998-d98d24b79386</trackback:ping>
      <pingback:server>http://pageofwords.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://pageofwords.com/blog/PermaLink,guid,a3d4e380-f079-446e-8998-d98d24b79386.aspx</pingback:target>
      <dc:creator>Kirk Jackson</dc:creator>
      <wfw:comment>http://pageofwords.com/blog/CommentView,guid,a3d4e380-f079-446e-8998-d98d24b79386.aspx</wfw:comment>
      <wfw:commentRss>http://pageofwords.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=a3d4e380-f079-446e-8998-d98d24b79386</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I'm looking forward to the <a href="http://www.codecamp.net.nz">Code Camp this weekend</a>.
We've got an interesting range of talks lined up over the two days, and I'll be doing
a short talk on what's coming in Visual Studio 2010.
</p>
        <p>
As well as organising the finances and food, I've organised the social event for Saturday
night. It's going to be fun!
</p>
        <p>
          <u>Code Camp Social Event </u>
        </p>
        <p>
6:30pm, Sat 13 June @ North City Indoor Raceway 3 Raiha St, Porirua <a href="http://bit.ly/g6gLf">http://bit.ly/g6gLf</a></p>
        <p>
Food at 7pm, racing shortly after. Finish by 9pm. 
</p>
        <p>
A family-friendly go-kart race, with geek-against-geek action. 
</p>
        <p>
          <a href="http://pageofwords.com/blog/content/binary/WindowsLiveWriter/CodeCampthisweekendstartyourengines_956E/image_2.png">
            <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://pageofwords.com/blog/content/binary/WindowsLiveWriter/CodeCampthisweekendstartyourengines_956E/image_thumb.png" width="254" height="171" />
          </a>
        </p>
        <p>
The karting is at the North City Indoor Raceway: <a href="http://www.ubd-online.co.nz/indoorkarting/">http://www.ubd-online.co.nz/indoorkarting/</a> (see
"The Races") 
</p>
        <p>
There will be a team race where each team will relay through each driver 3 times,
giving 30 laps of racing per person. Everything is computer-timed to find out which
team wins, and spectators are welcome to watch. 
</p>
        <p>
The food will be BBQ/Salad/Chips, and you can BYO drinks (I'll hopefully have some
money left to bring a little along). 
</p>
        <p>
Karting plus food: $40 
<br />
Food only: $10 
</p>
        <p>
Spouses and older kids are welcome to kart at the above prices, or come along just
for food and cheer your team on! 
</p>
        <p>
Many thanks to our sponsors: <a href="http://www.whitireia.ac.nz">Whitireia</a>, <a href="http://www.xero.com">Xero</a>, <a href="http://mvp.support.microsoft.com/">Microsoft
MVP</a>, <a href="http://apac.ineta.org/">INETA</a>, <a href="http://dts.net.nz/">DTS</a></p>
        <img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=a3d4e380-f079-446e-8998-d98d24b79386" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/pageofwords/~4/Wq7nCTUVBoU" height="1" width="1" /></body>
      <title>Code Camp this weekend&amp;hellip; start your engines!</title>
      <guid isPermaLink="false">http://pageofwords.com/blog/PermaLink,guid,a3d4e380-f079-446e-8998-d98d24b79386.aspx</guid>
      <link>http://pageofwords.com/blog/2009/06/09/CodeCampThisWeekendhellipStartYourEngines.aspx</link>
      <pubDate>Tue, 09 Jun 2009 22:37:39 GMT</pubDate>
      <description>&lt;p&gt;
I'm looking forward to the &lt;a href="http://www.codecamp.net.nz"&gt;Code Camp this weekend&lt;/a&gt;.
We've got an interesting range of talks lined up over the two days, and I'll be doing
a short talk on what's coming in Visual Studio 2010.
&lt;/p&gt;
&lt;p&gt;
As well as organising the finances and food, I've organised the social event for Saturday
night. It's going to be fun!
&lt;/p&gt;
&lt;p&gt;
&lt;u&gt;Code Camp Social Event &lt;/u&gt;
&lt;/p&gt;
&lt;p&gt;
6:30pm, Sat 13 June @ North City Indoor Raceway 3 Raiha St, Porirua &lt;a href="http://bit.ly/g6gLf"&gt;http://bit.ly/g6gLf&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Food at 7pm, racing shortly after. Finish by 9pm. 
&lt;/p&gt;
&lt;p&gt;
A family-friendly go-kart race, with geek-against-geek action. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://pageofwords.com/blog/content/binary/WindowsLiveWriter/CodeCampthisweekendstartyourengines_956E/image_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://pageofwords.com/blog/content/binary/WindowsLiveWriter/CodeCampthisweekendstartyourengines_956E/image_thumb.png" width="254" height="171" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
The karting is at the North City Indoor Raceway: &lt;a href="http://www.ubd-online.co.nz/indoorkarting/"&gt;http://www.ubd-online.co.nz/indoorkarting/&lt;/a&gt; (see
&amp;quot;The Races&amp;quot;) 
&lt;/p&gt;
&lt;p&gt;
There will be a team race where each team will relay through each driver 3 times,
giving 30 laps of racing per person. Everything is computer-timed to find out which
team wins, and spectators are welcome to watch. 
&lt;/p&gt;
&lt;p&gt;
The food will be BBQ/Salad/Chips, and you can BYO drinks (I'll hopefully have some
money left to bring a little along). 
&lt;/p&gt;
&lt;p&gt;
Karting plus food: $40 
&lt;br /&gt;
Food only: $10 
&lt;/p&gt;
&lt;p&gt;
Spouses and older kids are welcome to kart at the above prices, or come along just
for food and cheer your team on! 
&lt;/p&gt;
&lt;p&gt;
Many thanks to our sponsors: &lt;a href="http://www.whitireia.ac.nz"&gt;Whitireia&lt;/a&gt;, &lt;a href="http://www.xero.com"&gt;Xero&lt;/a&gt;, &lt;a href="http://mvp.support.microsoft.com/"&gt;Microsoft
MVP&lt;/a&gt;, &lt;a href="http://apac.ineta.org/"&gt;INETA&lt;/a&gt;, &lt;a href="http://dts.net.nz/"&gt;DTS&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=a3d4e380-f079-446e-8998-d98d24b79386" /&gt;</description>
      <comments>http://pageofwords.com/blog/CommentView,guid,a3d4e380-f079-446e-8998-d98d24b79386.aspx</comments>
      <category>CodeCamp</category>
    </item>
    <item>
      <trackback:ping>http://pageofwords.com/blog/Trackback.aspx?guid=7875350e-5add-4c5f-be0e-027c3c3772d8</trackback:ping>
      <pingback:server>http://pageofwords.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://pageofwords.com/blog/PermaLink,guid,7875350e-5add-4c5f-be0e-027c3c3772d8.aspx</pingback:target>
      <dc:creator>Kirk Jackson</dc:creator>
      <wfw:comment>http://pageofwords.com/blog/CommentView,guid,7875350e-5add-4c5f-be0e-027c3c3772d8.aspx</wfw:comment>
      <wfw:commentRss>http://pageofwords.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=7875350e-5add-4c5f-be0e-027c3c3772d8</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I visited Napier at lunchtime today to present at the Hawkes Bay .NET User Group.
</p>
        <p>
The presentation was a mixture of my earlier <a href="http://pageofwords.com/blog/2008/12/17/EllerslieUserGroupOvercomingYourWebInsecurity.aspx">web
security talk</a> and the talk I gave recently on the Anti-XSS library which helps
when you need to <a href="http://pageofwords.com/blog/2009/02/25/WhatIsEncodingCrossSiteScriptingAndTheAntiXSSEncodingMethods.aspx">encode
untrusted data.</a></p>
        <p>
        </p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:FF7EC618-8FBE-49a5-B908-2339AF2ABCDF:acf88951-71d2-4835-93d5-c7eada3ef5d7" class="wlWriterEditableSmartContent">
          <div>Download File - <a href="http://pageofwords.com/blog/content/binary/WindowsLiveWriter/WebSecurityNapier_14276/tmpB8E0.zip" target="_self">Presentation</a></div>
        </div>
        <ul>
          <li>
            <a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=051ee83c-5ccf-48ed-8463-02f56a6bfc09">The
Microsoft Anti-XSS Library</a> (use instead of HttpUtility.Encode) 
</li>
          <li>
            <a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=051ee83c-5ccf-48ed-8463-02f56a6bfc09">Security
Runtime Engine</a> - automatically encode ASP.NET control properties</li>
          <li>
            <a href="http://www.asp.net/downloads/starter-kits/classifieds/">The Classifieds web
site starter kit</a>
          </li>
          <li>
            <a href="http://blogs.msdn.com/sfaust/archive/2008/09/02/which-asp-net-controls-automatically-encodes.aspx">Which
ASP.NET Controls Automatically Encode?</a>
          </li>
          <li>
            <a href="http://blog.guya.net/2008/10/07/malicious-camera-spying-using-clickjacking/">Clickjacking
video</a>
          </li>
          <li>
Framebusting: 
<br /><a href="http://pageofwords.com/blog/2008/10/06/FrameBustingInJavascript.aspx">http://pageofwords.com/blog/2008/10/06/FrameBustingInJavascript.aspx</a></li>
          <li>
OWASP - The Open Web Application Security Project - <a href="http://www.owasp.org">http://www.owasp.org</a></li>
        </ul>
        <p>
        </p>
        <p>
Subscribe to my blog: <a href="http://pageofwords.com">http://pageofwords.com</a></p>
        <p>
Cheers!
</p>
        <p>
Kirk
</p>
        <img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=7875350e-5add-4c5f-be0e-027c3c3772d8" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/pageofwords/~4/yJYw3HLQBww" height="1" width="1" /></body>
      <title>Web Security &amp;ndash; Napier</title>
      <guid isPermaLink="false">http://pageofwords.com/blog/PermaLink,guid,7875350e-5add-4c5f-be0e-027c3c3772d8.aspx</guid>
      <link>http://pageofwords.com/blog/2009/05/28/WebSecurityNdashNapier.aspx</link>
      <pubDate>Thu, 28 May 2009 10:56:37 GMT</pubDate>
      <description>&lt;p&gt;
I visited Napier at lunchtime today to present at the Hawkes Bay .NET User Group.
&lt;/p&gt;
&lt;p&gt;
The presentation was a mixture of my earlier &lt;a href="http://pageofwords.com/blog/2008/12/17/EllerslieUserGroupOvercomingYourWebInsecurity.aspx"&gt;web
security talk&lt;/a&gt; and the talk I gave recently on the Anti-XSS library which helps
when you need to &lt;a href="http://pageofwords.com/blog/2009/02/25/WhatIsEncodingCrossSiteScriptingAndTheAntiXSSEncodingMethods.aspx"&gt;encode
untrusted data.&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:FF7EC618-8FBE-49a5-B908-2339AF2ABCDF:acf88951-71d2-4835-93d5-c7eada3ef5d7" class="wlWriterEditableSmartContent"&gt;
&lt;div&gt;Download File - &lt;a href="http://pageofwords.com/blog/content/binary/WindowsLiveWriter/WebSecurityNapier_14276/tmpB8E0.zip" target="_self"&gt;Presentation&lt;/a&gt;
&lt;/div&gt;
&lt;/div&gt;
&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=051ee83c-5ccf-48ed-8463-02f56a6bfc09"&gt;The
Microsoft Anti-XSS Library&lt;/a&gt; (use instead of HttpUtility.Encode) 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=051ee83c-5ccf-48ed-8463-02f56a6bfc09"&gt;Security
Runtime Engine&lt;/a&gt; - automatically encode ASP.NET control properties&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.asp.net/downloads/starter-kits/classifieds/"&gt;The Classifieds web
site starter kit&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://blogs.msdn.com/sfaust/archive/2008/09/02/which-asp-net-controls-automatically-encodes.aspx"&gt;Which
ASP.NET Controls Automatically Encode?&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://blog.guya.net/2008/10/07/malicious-camera-spying-using-clickjacking/"&gt;Clickjacking
video&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
Framebusting: 
&lt;br /&gt;
&lt;a href="http://pageofwords.com/blog/2008/10/06/FrameBustingInJavascript.aspx"&gt;http://pageofwords.com/blog/2008/10/06/FrameBustingInJavascript.aspx&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
OWASP - The Open Web Application Security Project - &lt;a href="http://www.owasp.org"&gt;http://www.owasp.org&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
Subscribe to my blog: &lt;a href="http://pageofwords.com"&gt;http://pageofwords.com&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Cheers!
&lt;/p&gt;
&lt;p&gt;
Kirk
&lt;/p&gt;
&lt;img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=7875350e-5add-4c5f-be0e-027c3c3772d8" /&gt;</description>
      <comments>http://pageofwords.com/blog/CommentView,guid,7875350e-5add-4c5f-be0e-027c3c3772d8.aspx</comments>
      <category>Security;UserGroup</category>
    </item>
    <item>
      <trackback:ping>http://pageofwords.com/blog/Trackback.aspx?guid=e52a839d-b80c-4044-aa4a-a44e966f3f79</trackback:ping>
      <pingback:server>http://pageofwords.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://pageofwords.com/blog/PermaLink,guid,e52a839d-b80c-4044-aa4a-a44e966f3f79.aspx</pingback:target>
      <dc:creator>Kirk Jackson</dc:creator>
      <wfw:comment>http://pageofwords.com/blog/CommentView,guid,e52a839d-b80c-4044-aa4a-a44e966f3f79.aspx</wfw:comment>
      <wfw:commentRss>http://pageofwords.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=e52a839d-b80c-4044-aa4a-a44e966f3f79</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
When is it not safe to load an XML file into an XmlDocument object?
</p>
        <p>
Any time the source is untrusted, it turns out:
</p>
        <p>
          <a href="http://blogs.msdn.com/tomholl/archive/2009/05/21/protecting-against-xml-entity-expansion-attacks.aspx">Tom
Hollander: Protecting against XML Entity Expansion attacks</a>
        </p>
        <p>
That's one I haven't heard of before, and shows why every input from an untrusted
source should be treated with care.
</p>
        <p>
It reminds me of the zip expansion attacks that used to break mail servers 8 or so
years ago:
</p>
        <blockquote>
          <p>
            <em>Zip expansion attack. A large uniform file (for example 1 Gbyte of Zeros) is zipped
and e-mail. AV or content filtering products attempt to unzip the attachment for checking,
but are unable to do so because of lack of disc space. </em>[<a href="http://www.ecommnet.co.uk/products/mxtreme/emailsecurityThreats.asp">ecommnet</a>]
</p>
        </blockquote>
        <p>
The old expanding file trick. What will they think of next?
</p>
        <p>
Kirk
</p>
        <img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=e52a839d-b80c-4044-aa4a-a44e966f3f79" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/pageofwords/~4/bkayQ6mjJjU" height="1" width="1" /></body>
      <title>Unsafe XmlDocument?</title>
      <guid isPermaLink="false">http://pageofwords.com/blog/PermaLink,guid,e52a839d-b80c-4044-aa4a-a44e966f3f79.aspx</guid>
      <link>http://pageofwords.com/blog/2009/05/22/UnsafeXmlDocument.aspx</link>
      <pubDate>Fri, 22 May 2009 08:54:43 GMT</pubDate>
      <description>&lt;p&gt;
When is it not safe to load an XML file into an XmlDocument object?
&lt;/p&gt;
&lt;p&gt;
Any time the source is untrusted, it turns out:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.msdn.com/tomholl/archive/2009/05/21/protecting-against-xml-entity-expansion-attacks.aspx"&gt;Tom
Hollander: Protecting against XML Entity Expansion attacks&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
That's one I haven't heard of before, and shows why every input from an untrusted
source should be treated with care.
&lt;/p&gt;
&lt;p&gt;
It reminds me of the zip expansion attacks that used to break mail servers 8 or so
years ago:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;em&gt;Zip expansion attack. A large uniform file (for example 1 Gbyte of Zeros) is zipped
and e-mail. AV or content filtering products attempt to unzip the attachment for checking,
but are unable to do so because of lack of disc space. &lt;/em&gt;[&lt;a href="http://www.ecommnet.co.uk/products/mxtreme/emailsecurityThreats.asp"&gt;ecommnet&lt;/a&gt;]
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
The old expanding file trick. What will they think of next?
&lt;/p&gt;
&lt;p&gt;
Kirk
&lt;/p&gt;
&lt;img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=e52a839d-b80c-4044-aa4a-a44e966f3f79" /&gt;</description>
      <comments>http://pageofwords.com/blog/CommentView,guid,e52a839d-b80c-4044-aa4a-a44e966f3f79.aspx</comments>
      <category>.NET;Security</category>
    </item>
    <item>
      <trackback:ping>http://pageofwords.com/blog/Trackback.aspx?guid=86106136-9dc9-4c55-9183-5b374de89804</trackback:ping>
      <pingback:server>http://pageofwords.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://pageofwords.com/blog/PermaLink,guid,86106136-9dc9-4c55-9183-5b374de89804.aspx</pingback:target>
      <dc:creator>Kirk Jackson</dc:creator>
      <wfw:comment>http://pageofwords.com/blog/CommentView,guid,86106136-9dc9-4c55-9183-5b374de89804.aspx</wfw:comment>
      <wfw:commentRss>http://pageofwords.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=86106136-9dc9-4c55-9183-5b374de89804</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
While it's not always like this...
</p>
        <p>
          <object width="560" height="340">
            <param name="movie" value="http://www.youtube.com/v/hHwHPJHzL4I&amp;hl=en&amp;fs=1" />
            <param name="allowFullScreen" value="true" />
            <param name="allowscriptaccess" value="always" />
            <embed src="http://www.youtube.com/v/hHwHPJHzL4I&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340">
            </embed>
          </object>
        </p>
        <p>
... it's true that Rod <i>does</i> zoom around the office (although not always on
the Segway).
</p>
        <p>
[<a href="http://www.hubcommunity.co.nz/videos/rod-drury-xero-2">Rod on the Telecom
Business Hub</a>] 
</p>
        <p>
Kirk
</p>
        <img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=86106136-9dc9-4c55-9183-5b374de89804" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/pageofwords/~4/vMIl9Rds8Yg" height="1" width="1" /></body>
      <title>A day in the Xero office</title>
      <guid isPermaLink="false">http://pageofwords.com/blog/PermaLink,guid,86106136-9dc9-4c55-9183-5b374de89804.aspx</guid>
      <link>http://pageofwords.com/blog/2009/05/20/ADayInTheXeroOffice.aspx</link>
      <pubDate>Wed, 20 May 2009 11:53:38 GMT</pubDate>
      <description>&lt;p&gt;
While it's not always like this...
&lt;/p&gt;
&lt;p&gt;
&lt;object width="560" height="340"&gt;
&lt;param name="movie" value="http://www.youtube.com/v/hHwHPJHzL4I&amp;amp;hl=en&amp;amp;fs=1"&gt;&gt;
&lt;param name="allowFullScreen" value="true"&gt;&gt;
&lt;param name="allowscriptaccess" value="always"&gt;&gt;&lt;embed src="http://www.youtube.com/v/hHwHPJHzL4I&amp;amp;hl=en&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"&gt;&lt;/embed&gt;
&lt;/object&gt;
&lt;/p&gt;
&lt;p&gt;
... it's true that Rod &lt;i&gt;does&lt;/i&gt; zoom around the office (although not always on
the Segway).
&lt;/p&gt;
&lt;p&gt;
[&lt;a href="http://www.hubcommunity.co.nz/videos/rod-drury-xero-2"&gt;Rod on the Telecom
Business Hub&lt;/a&gt;] 
&lt;/p&gt;
&lt;p&gt;
Kirk
&lt;/p&gt;
&lt;img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=86106136-9dc9-4c55-9183-5b374de89804" /&gt;</description>
      <comments>http://pageofwords.com/blog/CommentView,guid,86106136-9dc9-4c55-9183-5b374de89804.aspx</comments>
      <category>Xero</category>
    </item>
    <item>
      <trackback:ping>http://pageofwords.com/blog/Trackback.aspx?guid=b7d89afe-186d-409f-868c-10fae1c11c2a</trackback:ping>
      <pingback:server>http://pageofwords.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://pageofwords.com/blog/PermaLink,guid,b7d89afe-186d-409f-868c-10fae1c11c2a.aspx</pingback:target>
      <dc:creator>Kirk Jackson</dc:creator>
      <wfw:comment>http://pageofwords.com/blog/CommentView,guid,b7d89afe-186d-409f-868c-10fae1c11c2a.aspx</wfw:comment>
      <wfw:commentRss>http://pageofwords.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=b7d89afe-186d-409f-868c-10fae1c11c2a</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I presented a talk at the Wellington and Auckland .NET user groups this month titled
"Best Practices -  Caching". The goal of the talk was to discuss why we might
need to add caching to our applications, and the way that we typically add it to each
layer:
</p>
        <ul>
          <li>
Client-side: reducing data flowing to the server, enable caching through expiry etc</li>
          <li>
ASP.NET: stashing data; page-level, fragment, IIS caching</li>
          <li>
Business layer: cache objects to avoid computation</li>
          <li>
Data layer: cache raw data from the database; identity maps</li>
          <li>
Database: reduce hits on disk</li>
        </ul>
        <p>
The difficult part when caching at any layer is invalidating the redundant data that
is stored in the cache when the source data changes. It's easier depending on the
type of the data:
</p>
        <ul>
          <li>
Reference - shared reads (e.g. Catalog)</li>
          <ul>
            <li>
Easy to cache and distribute</li>
          </ul>
          <li>
Activity - exclusive write (e.g. Cart)</li>
          <ul>
            <li>
Can cache each user's data separately</li>
          </ul>
          <li>
Resource - shared, concurrency read/write, large number of transactions (e.g. Auction
bid)</li>
          <ul>
            <li>
Caching is hard</li>
            <li>
DB is best source of data, with careful caching</li>
          </ul>
        </ul>
        <p>
The second half of the talk we looked at two caching technologies - memcached and
Velocity.
</p>
        <p>
The presentation: <a href="http://pageofwords.com/blog/content/binary/Caching-KirkJackson.pdf">Caching.pdf</a> 
</p>
        <p>
Some links:
</p>
        <ul>
          <li>
            <a href="http://msdn.microsoft.com/en-us/data/cc655792.aspx">Microsoft Project code
named Velocity</a>
          </li>
          <li>
            <a href="http://stevesouders.com/">Steve Souders - High performance web sites</a>
          </li>
          <li>
            <a href="http://developer.yahoo.com/yslow/">YSlow</a>
          </li>
        </ul>
        <p>
Kirk
</p>
        <img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=b7d89afe-186d-409f-868c-10fae1c11c2a" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/pageofwords/~4/xtu5UAS7630" height="1" width="1" /></body>
      <title>Caching - the user group presentation</title>
      <guid isPermaLink="false">http://pageofwords.com/blog/PermaLink,guid,b7d89afe-186d-409f-868c-10fae1c11c2a.aspx</guid>
      <link>http://pageofwords.com/blog/2009/05/18/CachingTheUserGroupPresentation.aspx</link>
      <pubDate>Mon, 18 May 2009 10:40:13 GMT</pubDate>
      <description>&lt;p&gt;
I presented a talk at the Wellington and Auckland .NET user groups this month titled
"Best Practices -&amp;nbsp; Caching". The goal of the talk was to discuss why we might
need to add caching to our applications, and the way that we typically add it to each
layer:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Client-side: reducing data flowing to the server, enable caching through expiry etc&lt;/li&gt;
&lt;li&gt;
ASP.NET: stashing data; page-level, fragment, IIS caching&lt;/li&gt;
&lt;li&gt;
Business layer: cache objects to avoid computation&lt;/li&gt;
&lt;li&gt;
Data layer: cache raw data from the database; identity maps&lt;/li&gt;
&lt;li&gt;
Database: reduce hits on disk&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
The difficult part when caching at any layer is invalidating the redundant data that
is stored in the cache when the source data changes. It's easier depending on the
type of the data:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Reference - shared reads (e.g. Catalog)&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
Easy to cache and distribute&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;
Activity - exclusive write (e.g. Cart)&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
Can cache each user's data separately&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;
Resource - shared, concurrency read/write, large number of transactions (e.g. Auction
bid)&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
Caching is hard&lt;/li&gt;
&lt;li&gt;
DB is best source of data, with careful caching&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;p&gt;
The second half of the talk we looked at two caching technologies - memcached and
Velocity.
&lt;/p&gt;
&lt;p&gt;
The presentation: &lt;a href="http://pageofwords.com/blog/content/binary/Caching-KirkJackson.pdf"&gt;Caching.pdf&lt;/a&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Some links:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://msdn.microsoft.com/en-us/data/cc655792.aspx"&gt;Microsoft Project code
named Velocity&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://stevesouders.com/"&gt;Steve Souders - High performance web sites&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://developer.yahoo.com/yslow/"&gt;YSlow&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Kirk
&lt;/p&gt;
&lt;img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=b7d89afe-186d-409f-868c-10fae1c11c2a" /&gt;</description>
      <comments>http://pageofwords.com/blog/CommentView,guid,b7d89afe-186d-409f-868c-10fae1c11c2a.aspx</comments>
      <category>.NET;UserGroup</category>
    </item>
    <item>
      <trackback:ping>http://pageofwords.com/blog/Trackback.aspx?guid=d47ba034-949d-4091-a3fc-7a956af28e99</trackback:ping>
      <pingback:server>http://pageofwords.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://pageofwords.com/blog/PermaLink,guid,d47ba034-949d-4091-a3fc-7a956af28e99.aspx</pingback:target>
      <dc:creator>Kirk Jackson</dc:creator>
      <wfw:comment>http://pageofwords.com/blog/CommentView,guid,d47ba034-949d-4091-a3fc-7a956af28e99.aspx</wfw:comment>
      <wfw:commentRss>http://pageofwords.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=d47ba034-949d-4091-a3fc-7a956af28e99</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I appreciate good humour more than I appreciate politics, and most of the credit I
gave to our former prime minister Helen Clark was for her sharp wit.
</p>
        <p>
It's great that we have a funny guy as our prime minister in New Zealand:
</p>
        <p>
          <embed src="http://www.youtube.com/v/5uCpQeOeROE&amp;hl=en&amp;fs=1&amp;color1=0x2b405b&amp;color2=0x6b8ab6&amp;border=1" width="660" height="405" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" />
        </p>
        <p>
Hat tip to <a href="http://blog.xero.com/2009/04/our-awesome-prime-minister">Rod on
our Xero blog</a></p>
        <p>
Kirk
</p>
        <img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=d47ba034-949d-4091-a3fc-7a956af28e99" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/pageofwords/~4/OqHlNN2xEpI" height="1" width="1" /></body>
      <title>John Key the comedian</title>
      <guid isPermaLink="false">http://pageofwords.com/blog/PermaLink,guid,d47ba034-949d-4091-a3fc-7a956af28e99.aspx</guid>
      <link>http://pageofwords.com/blog/2009/04/03/JohnKeyTheComedian.aspx</link>
      <pubDate>Fri, 03 Apr 2009 09:22:15 GMT</pubDate>
      <description>&lt;p&gt;
I appreciate good humour more than I appreciate politics, and most of the credit I
gave to our former prime minister Helen Clark was for her sharp wit.
&lt;/p&gt;
&lt;p&gt;
It's great that we have a funny guy as our prime minister in New Zealand:
&lt;/p&gt;
&lt;p&gt;
&lt;embed src="http://www.youtube.com/v/5uCpQeOeROE&amp;amp;hl=en&amp;amp;fs=1&amp;amp;color1=0x2b405b&amp;amp;color2=0x6b8ab6&amp;amp;border=1" width="660" height="405" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" /&gt;
&lt;/p&gt;
&lt;p&gt;
Hat tip to &lt;a href="http://blog.xero.com/2009/04/our-awesome-prime-minister"&gt;Rod on
our Xero blog&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Kirk
&lt;/p&gt;
&lt;img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=d47ba034-949d-4091-a3fc-7a956af28e99" /&gt;</description>
      <comments>http://pageofwords.com/blog/CommentView,guid,d47ba034-949d-4091-a3fc-7a956af28e99.aspx</comments>
    </item>
    <item>
      <trackback:ping>http://pageofwords.com/blog/Trackback.aspx?guid=88651653-2703-4e89-a0af-af343914fcce</trackback:ping>
      <pingback:server>http://pageofwords.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://pageofwords.com/blog/PermaLink,guid,88651653-2703-4e89-a0af-af343914fcce.aspx</pingback:target>
      <dc:creator>Kirk Jackson</dc:creator>
      <wfw:comment>http://pageofwords.com/blog/CommentView,guid,88651653-2703-4e89-a0af-af343914fcce.aspx</wfw:comment>
      <wfw:commentRss>http://pageofwords.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=88651653-2703-4e89-a0af-af343914fcce</wfw:commentRss>
      <slash:comments>4</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I've just been awarded Cobol Developer of the year for 2009!
</p>
        <p>
It has been a great ride at <a href="http://www.xero.com">Xero</a>, from releasing
our first beta little more than 2 years ago, to racking up our <a href="http://blog.xero.com/2009/03/the-hockey-stick/">6000th
customer</a> this week.
</p>
        <p>
Some people doubted us for picking a <a href="http://www-01.ibm.com/software/awdtools/cobol/vse/">VSE/ESA</a> environment
and the IBM compiler, but the support for 31 bit addressing and dynamic calls really
accelerated our development of a Web 2.0 software product.
</p>
        <p>
I'd like to thank all the other forward thinking members of our team for choosing
and building on a great platform, and encouraging me to achieve this award.
</p>
        <p>
Kirk
</p>
        <img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=88651653-2703-4e89-a0af-af343914fcce" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/pageofwords/~4/tj74oO_jmEE" height="1" width="1" /></body>
      <title>Wow! I won!</title>
      <guid isPermaLink="false">http://pageofwords.com/blog/PermaLink,guid,88651653-2703-4e89-a0af-af343914fcce.aspx</guid>
      <link>http://pageofwords.com/blog/2009/03/31/WowIWon.aspx</link>
      <pubDate>Tue, 31 Mar 2009 22:49:07 GMT</pubDate>
      <description>&lt;p&gt;
I've just been awarded Cobol Developer of the year for 2009!
&lt;/p&gt;
&lt;p&gt;
It has been a great ride at &lt;a href="http://www.xero.com"&gt;Xero&lt;/a&gt;, from releasing
our first beta little more than 2 years ago, to racking up our &lt;a href="http://blog.xero.com/2009/03/the-hockey-stick/"&gt;6000th
customer&lt;/a&gt; this week.
&lt;/p&gt;
&lt;p&gt;
Some people doubted us for picking a &lt;a href="http://www-01.ibm.com/software/awdtools/cobol/vse/"&gt;VSE/ESA&lt;/a&gt; environment
and the IBM compiler, but the support for 31 bit addressing and dynamic calls really
accelerated our development of a Web 2.0 software product.
&lt;/p&gt;
&lt;p&gt;
I'd like to thank all the other forward thinking members of our team for choosing
and building on a great platform, and encouraging me to achieve this award.
&lt;/p&gt;
&lt;p&gt;
Kirk
&lt;/p&gt;
&lt;img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=88651653-2703-4e89-a0af-af343914fcce" /&gt;</description>
      <comments>http://pageofwords.com/blog/CommentView,guid,88651653-2703-4e89-a0af-af343914fcce.aspx</comments>
      <category>Personal;Xero</category>
    </item>
    <item>
      <trackback:ping>http://pageofwords.com/blog/Trackback.aspx?guid=fb6780fc-9da1-4510-887b-f7553e50a1ca</trackback:ping>
      <pingback:server>http://pageofwords.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://pageofwords.com/blog/PermaLink,guid,fb6780fc-9da1-4510-887b-f7553e50a1ca.aspx</pingback:target>
      <dc:creator>Kirk Jackson</dc:creator>
      <wfw:comment>http://pageofwords.com/blog/CommentView,guid,fb6780fc-9da1-4510-887b-f7553e50a1ca.aspx</wfw:comment>
      <wfw:commentRss>http://pageofwords.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=fb6780fc-9da1-4510-887b-f7553e50a1ca</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Deleting your POP3 mailbox using telnet, since Gmail doesn't do it properly :)
</p>
        <p>
 
</p>
        <p>
I'm using Gmail to check and download my Paradise (ISP) email. This means I can read
(almost) all of my personal email in one place.
</p>
        <p>
Gmail appears to only have one option for deleting mail: "Leave a copy of retrieved
messages on the server". If you set this option it immediately deletes your mail
from the POP server after downloading it to Gmail, which means that you can't check
it with an alternate client.
</p>
        <p>
Other mail clients allow you to leave mail on your mail server for a number of days,
so I normally set this to 7 days so that if I need to fire up a different client or
use my ISP's mail, then I can see recent email. Gmail doesn't have this option, which
means if you don't delete mail from your POP account, it will eventually fill up.
</p>
        <p>
For completeness, the sequence of commands to type into telnet to delete a bunch of
your mail:
</p>
        <blockquote>
          <pre>&gt; telnet pop3.paradise.net.nz 110

USER &lt;username&gt;  // Your POP username
PASS &lt;password&gt;  // Your POP password

STAT                        // Lists the number of messages (e.g. +OK 1108 19255723, which means 1108 messages)

// Then for each message
DELE 1
DELE 2
...                         // I used a spreadsheet to quickly generate a list of DELE's from 1 to 1108)</pre>
        </blockquote>
        <p>
Mission accomplished. An empty POP mailbox without installing (or writing) any extra
code :)
</p>
        <p>
Kirk
</p>
        <img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=fb6780fc-9da1-4510-887b-f7553e50a1ca" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/pageofwords/~4/y-CxTuzvhbk" height="1" width="1" /></body>
      <title>Being a geek is...</title>
      <guid isPermaLink="false">http://pageofwords.com/blog/PermaLink,guid,fb6780fc-9da1-4510-887b-f7553e50a1ca.aspx</guid>
      <link>http://pageofwords.com/blog/2009/03/31/BeingAGeekIs.aspx</link>
      <pubDate>Tue, 31 Mar 2009 22:23:21 GMT</pubDate>
      <description>&lt;p&gt;
Deleting your POP3 mailbox using telnet, since Gmail doesn't do it properly :)
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
I'm using Gmail to check and download my Paradise (ISP) email. This means I can read
(almost) all of my personal email in one place.
&lt;/p&gt;
&lt;p&gt;
Gmail appears to only have one option for deleting mail: &amp;quot;Leave a copy of retrieved
messages on the server&amp;quot;. If you set this option it immediately deletes your mail
from the POP server after downloading it to Gmail, which means that you can't check
it with an alternate client.
&lt;/p&gt;
&lt;p&gt;
Other mail clients allow you to leave mail on your mail server for a number of days,
so I normally set this to 7 days so that if I need to fire up a different client or
use my ISP's mail, then I can see recent email. Gmail doesn't have this option, which
means if you don't delete mail from your POP account, it will eventually fill up.
&lt;/p&gt;
&lt;p&gt;
For completeness, the sequence of commands to type into telnet to delete a bunch of
your mail:
&lt;/p&gt;
&lt;blockquote&gt; &lt;pre&gt;&amp;gt; telnet pop3.paradise.net.nz 110

USER &amp;lt;username&amp;gt;&amp;#160; // Your POP username
PASS &amp;lt;password&amp;gt;&amp;#160; // Your POP password

STAT                        // Lists the number of messages (e.g. +OK 1108 19255723, which means 1108 messages)

// Then for each message
DELE 1
DELE 2
...                         // I used a spreadsheet to quickly generate a list of DELE's from 1 to 1108)&lt;/pre&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
Mission accomplished. An empty POP mailbox without installing (or writing) any extra
code :)
&lt;/p&gt;
&lt;p&gt;
Kirk
&lt;/p&gt;
&lt;img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=fb6780fc-9da1-4510-887b-f7553e50a1ca" /&gt;</description>
      <comments>http://pageofwords.com/blog/CommentView,guid,fb6780fc-9da1-4510-887b-f7553e50a1ca.aspx</comments>
      <category>Software;Web</category>
    </item>
    <item>
      <trackback:ping>http://pageofwords.com/blog/Trackback.aspx?guid=adcc2103-1fc6-43b3-9e45-451bf6a4a225</trackback:ping>
      <pingback:server>http://pageofwords.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://pageofwords.com/blog/PermaLink,guid,adcc2103-1fc6-43b3-9e45-451bf6a4a225.aspx</pingback:target>
      <dc:creator>Kirk Jackson</dc:creator>
      <wfw:comment>http://pageofwords.com/blog/CommentView,guid,adcc2103-1fc6-43b3-9e45-451bf6a4a225.aspx</wfw:comment>
      <wfw:commentRss>http://pageofwords.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=adcc2103-1fc6-43b3-9e45-451bf6a4a225</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Well done to the SilverStripe team for getting into the new Microsoft Web Platform
installer:
</p>
        <p>
          <a href="http://pageofwords.com/blog/content/binary/WindowsLiveWriter/SilverStripeinwebplatforminstaller_B942/image_2.png">
            <img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="328" alt="image" src="http://pageofwords.com/blog/content/binary/WindowsLiveWriter/SilverStripeinwebplatforminstaller_B942/image_thumb.png" width="440" border="0" />
          </a>
        </p>
        <p>
The installer helps people get web applications up and running in a flash, and it's
great to see SilverStripe alongside 9 other big-named web apps. This should be great
for the initial out-of-the-box experience for their users, and for exposure to new
users.
</p>
        <p>
See <a href="http://blogs.msdn.com/nigel/archive/2009/03/10/silverstripe-free.aspx">Nigel's
blog</a> for more details.
</p>
        <img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=adcc2103-1fc6-43b3-9e45-451bf6a4a225" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/pageofwords/~4/wte_Cg9lOmU" height="1" width="1" /></body>
      <title>SilverStripe in web platform installer</title>
      <guid isPermaLink="false">http://pageofwords.com/blog/PermaLink,guid,adcc2103-1fc6-43b3-9e45-451bf6a4a225.aspx</guid>
      <link>http://pageofwords.com/blog/2009/03/19/SilverStripeInWebPlatformInstaller.aspx</link>
      <pubDate>Thu, 19 Mar 2009 00:10:30 GMT</pubDate>
      <description>&lt;p&gt;
Well done to the SilverStripe team for getting into the new Microsoft Web Platform
installer:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://pageofwords.com/blog/content/binary/WindowsLiveWriter/SilverStripeinwebplatforminstaller_B942/image_2.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="328" alt="image" src="http://pageofwords.com/blog/content/binary/WindowsLiveWriter/SilverStripeinwebplatforminstaller_B942/image_thumb.png" width="440" border="0" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
The installer helps people get web applications up and running in a flash, and it's
great to see SilverStripe alongside 9 other big-named web apps. This should be great
for the initial out-of-the-box experience for their users, and for exposure to new
users.
&lt;/p&gt;
&lt;p&gt;
See &lt;a href="http://blogs.msdn.com/nigel/archive/2009/03/10/silverstripe-free.aspx"&gt;Nigel's
blog&lt;/a&gt; for more details.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=adcc2103-1fc6-43b3-9e45-451bf6a4a225" /&gt;</description>
      <comments>http://pageofwords.com/blog/CommentView,guid,adcc2103-1fc6-43b3-9e45-451bf6a4a225.aspx</comments>
      <category>Software;Web</category>
    </item>
    <item>
      <trackback:ping>http://pageofwords.com/blog/Trackback.aspx?guid=326c93fe-9168-4ecb-9d0d-c527e5622a6a</trackback:ping>
      <pingback:server>http://pageofwords.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://pageofwords.com/blog/PermaLink,guid,326c93fe-9168-4ecb-9d0d-c527e5622a6a.aspx</pingback:target>
      <dc:creator>Kirk Jackson</dc:creator>
      <wfw:comment>http://pageofwords.com/blog/CommentView,guid,326c93fe-9168-4ecb-9d0d-c527e5622a6a.aspx</wfw:comment>
      <wfw:commentRss>http://pageofwords.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=326c93fe-9168-4ecb-9d0d-c527e5622a6a</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Jeff Moser writes <a href="http://www.moserware.com/2009/03/how-net-regular-expressions-really-work.html">How
.NET Regular Expressions Really Work</a>.
</p>
        <p>
I've got a soft spot for regular expressions (programming Perl can do that to you),
and while I understand backtracking and greedy / lazy matching, I've never actually
read the source code for a regex library before.
</p>
        <p>
If you haven't either, and want to benefit from someone else's description of the
14,000 lines of .NET regular expression library, you'll enjoy this post.
</p>
        <p>
Kirk
</p>
        <img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=326c93fe-9168-4ecb-9d0d-c527e5622a6a" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/pageofwords/~4/PGh3xWBmWWY" height="1" width="1" /></body>
      <title>Understanding code: How .NET regex's work</title>
      <guid isPermaLink="false">http://pageofwords.com/blog/PermaLink,guid,326c93fe-9168-4ecb-9d0d-c527e5622a6a.aspx</guid>
      <link>http://pageofwords.com/blog/2009/03/18/UnderstandingCodeHowNETRegexsWork.aspx</link>
      <pubDate>Wed, 18 Mar 2009 10:31:31 GMT</pubDate>
      <description>&lt;p&gt;
Jeff Moser writes &lt;a href="http://www.moserware.com/2009/03/how-net-regular-expressions-really-work.html"&gt;How
.NET Regular Expressions Really Work&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
I've got a soft spot for regular expressions (programming Perl can do that to you),
and while I understand backtracking and greedy / lazy matching, I've never actually
read the source code for a regex library before.
&lt;/p&gt;
&lt;p&gt;
If you haven't either, and want to benefit from someone else's description of the
14,000 lines of .NET regular expression library, you'll enjoy this post.
&lt;/p&gt;
&lt;p&gt;
Kirk
&lt;/p&gt;
&lt;img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=326c93fe-9168-4ecb-9d0d-c527e5622a6a" /&gt;</description>
      <comments>http://pageofwords.com/blog/CommentView,guid,326c93fe-9168-4ecb-9d0d-c527e5622a6a.aspx</comments>
      <category>.NET</category>
    </item>
  </channel>
</rss>
