<?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>Fri, 09 Oct 2009 09:00:18 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" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
      <trackback:ping>http://pageofwords.com/blog/Trackback.aspx?guid=e8f31c63-4081-4e58-8d7e-accb2315d8bb</trackback:ping>
      <pingback:server>http://pageofwords.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://pageofwords.com/blog/PermaLink,guid,e8f31c63-4081-4e58-8d7e-accb2315d8bb.aspx</pingback:target>
      <dc:creator>Kirk Jackson</dc:creator>
      <wfw:comment>http://pageofwords.com/blog/CommentView,guid,e8f31c63-4081-4e58-8d7e-accb2315d8bb.aspx</wfw:comment>
      <wfw:commentRss>http://pageofwords.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=e8f31c63-4081-4e58-8d7e-accb2315d8bb</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
To prevent cross-site scripting, it's important to encode data before outputting it.
</p>
        <p>
Up until now, it has been quite hard to ensure you're encoding everywhere throughout
your app.
</p>
        <p>
It's great to see the new syntax in ASP.NET 4 to automatically encode:
</p>
        <blockquote>
          <pre class="csharpcode">First Name: <span class="asp">&lt;%</span><span class="kwrd">:</span> Model.FirstName <span class="asp">%&gt;</span> Last
Name: <span class="asp">&lt;%</span><span class="kwrd">:</span> Model.FirstName <span class="asp">%&gt;</span><span class="kwrd">&lt;</span><span class="html">form</span><span class="attr">method</span><span class="kwrd">="post"</span><span class="kwrd">&gt;</span><span class="asp">&lt;%</span><span class="kwrd">:</span> Html.TextBox(<span class="str">"FirstName"</span>) <span class="asp">%&gt;</span><span class="asp">&lt;%</span><span class="kwrd">:</span> Html.TextBox(<span class="str">"LastName"</span>) <span class="asp">%&gt;</span><span class="kwrd">&lt;/</span><span class="html">form</span><span class="kwrd">&gt;</span></pre>
        </blockquote>
        <p>
(From <a href="http://haacked.com/archive/2009/09/25/html-encoding-code-nuggets.aspx">Phil
Haack's blog</a>)
</p>
        <p>
This means that for all new web applications, you can build using &lt;%: %&gt; instead
of &lt;%= %&gt;, which is great for ASP.NET MVC applications where that syntax is
common. 
</p>
        <p>
For older applications you will be able to opt in to the new encoding syntax, but
your old code will keep working exactly as it already does (perhaps insecurely, if
you're not encoding!)
</p>
        <p>
Here's hoping that we'll be able to replace the standard HtmlEncode with the <a href="http://www.codeplex.com/AntiXSS">AntiXSS</a> goodness
I described here:
</p>
        <ul>
          <li>
            <a href="http://pageofwords.com/blog/2009/02/25/WhatIsEncodingCrossSiteScriptingAndTheAntiXSSEncodingMethods.aspx">What
is encoding? Cross site scripting and the AntiXSS encoding methods</a>
          </li>
        </ul>
        <p>
Kirk
</p>
        <img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=e8f31c63-4081-4e58-8d7e-accb2315d8bb" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/pageofwords/~4/24qrCPW4oX4" height="1" width="1" /></body>
      <title>Syntax support for HTML Encoding in ASP.NET 4</title>
      <guid isPermaLink="false">http://pageofwords.com/blog/PermaLink,guid,e8f31c63-4081-4e58-8d7e-accb2315d8bb.aspx</guid>
      <link>http://pageofwords.com/blog/2009/10/09/SyntaxSupportForHTMLEncodingInASPNET4.aspx</link>
      <pubDate>Fri, 09 Oct 2009 09:00:18 GMT</pubDate>
      <description>&lt;p&gt;
To prevent cross-site scripting, it's important to encode data before outputting it.
&lt;/p&gt;
&lt;p&gt;
Up until now, it has been quite hard to ensure you're encoding everywhere throughout
your app.
&lt;/p&gt;
&lt;p&gt;
It's great to see the new syntax in ASP.NET 4 to automatically encode:
&lt;/p&gt;
&lt;blockquote&gt; &lt;pre class="csharpcode"&gt;First Name: &lt;span class="asp"&gt;&amp;lt;%&lt;/span&gt;&lt;span class="kwrd"&gt;:&lt;/span&gt; Model.FirstName &lt;span class="asp"&gt;%&amp;gt;&lt;/span&gt; Last
Name: &lt;span class="asp"&gt;&amp;lt;%&lt;/span&gt;&lt;span class="kwrd"&gt;:&lt;/span&gt; Model.FirstName &lt;span class="asp"&gt;%&amp;gt;&lt;/span&gt; &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;form&lt;/span&gt; &lt;span class="attr"&gt;method&lt;/span&gt;&lt;span class="kwrd"&gt;="post"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; &lt;span class="asp"&gt;&amp;lt;%&lt;/span&gt;&lt;span class="kwrd"&gt;:&lt;/span&gt; Html.TextBox(&lt;span class="str"&gt;"FirstName"&lt;/span&gt;) &lt;span class="asp"&gt;%&amp;gt;&lt;/span&gt; &lt;span class="asp"&gt;&amp;lt;%&lt;/span&gt;&lt;span class="kwrd"&gt;:&lt;/span&gt; Html.TextBox(&lt;span class="str"&gt;"LastName"&lt;/span&gt;) &lt;span class="asp"&gt;%&amp;gt;&lt;/span&gt; &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;form&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
(From &lt;a href="http://haacked.com/archive/2009/09/25/html-encoding-code-nuggets.aspx"&gt;Phil
Haack's blog&lt;/a&gt;)
&lt;/p&gt;
&lt;p&gt;
This means that for all new web applications, you can build using &amp;lt;%: %&amp;gt; instead
of &amp;lt;%= %&amp;gt;, which is great for ASP.NET MVC applications where that syntax is
common. 
&lt;/p&gt;
&lt;p&gt;
For older applications you will be able to opt in to the new encoding syntax, but
your old code will keep working exactly as it already does (perhaps insecurely, if
you're not encoding!)
&lt;/p&gt;
&lt;p&gt;
Here's hoping that we'll be able to replace the standard HtmlEncode with the &lt;a href="http://www.codeplex.com/AntiXSS"&gt;AntiXSS&lt;/a&gt; goodness
I described here:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://pageofwords.com/blog/2009/02/25/WhatIsEncodingCrossSiteScriptingAndTheAntiXSSEncodingMethods.aspx"&gt;What
is encoding? Cross site scripting and the AntiXSS encoding methods&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=e8f31c63-4081-4e58-8d7e-accb2315d8bb" /&gt;</description>
      <comments>http://pageofwords.com/blog/CommentView,guid,e8f31c63-4081-4e58-8d7e-accb2315d8bb.aspx</comments>
      <category>AntiXSS;Security</category>
    </item>
    <item>
      <trackback:ping>http://pageofwords.com/blog/Trackback.aspx?guid=d0f71522-9841-4a10-a26e-9f08807c355a</trackback:ping>
      <pingback:server>http://pageofwords.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://pageofwords.com/blog/PermaLink,guid,d0f71522-9841-4a10-a26e-9f08807c355a.aspx</pingback:target>
      <dc:creator>Kirk Jackson</dc:creator>
      <wfw:comment>http://pageofwords.com/blog/CommentView,guid,d0f71522-9841-4a10-a26e-9f08807c355a.aspx</wfw:comment>
      <wfw:commentRss>http://pageofwords.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=d0f71522-9841-4a10-a26e-9f08807c355a</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://tech-and-arts.blogspot.com/">Daniel</a> presented this talk at the <a href="http://www.dot.net.nz/UserGroupPages/WellingtonSilverlight.aspx">Wellington
Silverlight user group</a> last Wednesday.
</p>
        <p>
I enjoyed this talk. Daniel went back to basics and showed how to get up and running
with Silverlight and WPF development, covered the various layouts you can use in XAML,
and went through some of the fundamentals of how XAML and code interact.
</p>
        <p>
I think the part I most appreciated was the content that Daniel left out of his talk.
He was very well prepared, and had intentionally kept things simple, which is hard
to do when you have deep technical knowledge and enjoy sharing it - I struggle with
keeping my talks focussed without diverting on a tangent.
</p>
        <p>
Well done Daniel, I'm looking forward to your next talk!
</p>
        <p>
Kirk
</p>
        <img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=d0f71522-9841-4a10-a26e-9f08807c355a" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/pageofwords/~4/uNKEQ1bZ2L8" height="1" width="1" /></body>
      <title>Creating Stuff in WPF and Silverlight 3 - Daniel McGaughran</title>
      <guid isPermaLink="false">http://pageofwords.com/blog/PermaLink,guid,d0f71522-9841-4a10-a26e-9f08807c355a.aspx</guid>
      <link>http://pageofwords.com/blog/2009/10/01/CreatingStuffInWPFAndSilverlight3DanielMcGaughran.aspx</link>
      <pubDate>Thu, 01 Oct 2009 19:56:23 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://tech-and-arts.blogspot.com/"&gt;Daniel&lt;/a&gt; presented this talk at the &lt;a href="http://www.dot.net.nz/UserGroupPages/WellingtonSilverlight.aspx"&gt;Wellington
Silverlight user group&lt;/a&gt; last Wednesday.
&lt;/p&gt;
&lt;p&gt;
I enjoyed this talk. Daniel went back to basics and showed how to get up and running
with Silverlight and WPF development, covered the various layouts you can use in XAML,
and went through some of the fundamentals of how XAML and code interact.
&lt;/p&gt;
&lt;p&gt;
I think the part I most appreciated was the content that Daniel left out of his talk.
He was very well prepared, and had intentionally kept things simple, which is hard
to do when you have deep technical knowledge and enjoy sharing it - I struggle with
keeping my talks focussed without diverting on a tangent.
&lt;/p&gt;
&lt;p&gt;
Well done Daniel, I'm looking forward to your next talk!
&lt;/p&gt;
&lt;p&gt;
Kirk
&lt;/p&gt;
&lt;img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=d0f71522-9841-4a10-a26e-9f08807c355a" /&gt;</description>
      <comments>http://pageofwords.com/blog/CommentView,guid,d0f71522-9841-4a10-a26e-9f08807c355a.aspx</comments>
      <category>Silverlight;UserGroup</category>
    </item>
    <item>
      <trackback:ping>http://pageofwords.com/blog/Trackback.aspx?guid=0d0258e1-c265-4774-b6af-53aef552a189</trackback:ping>
      <pingback:server>http://pageofwords.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://pageofwords.com/blog/PermaLink,guid,0d0258e1-c265-4774-b6af-53aef552a189.aspx</pingback:target>
      <dc:creator>Kirk Jackson</dc:creator>
      <wfw:comment>http://pageofwords.com/blog/CommentView,guid,0d0258e1-c265-4774-b6af-53aef552a189.aspx</wfw:comment>
      <wfw:commentRss>http://pageofwords.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=0d0258e1-c265-4774-b6af-53aef552a189</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I attended Richard's Domain Driven Design introduction at the Wellington .NET user
group back on the September 23.
</p>
        <p>
Richard introduced Domain Driven Design and the motivations behind using it, covered
the 'building blocks' and then gave some examples of how to put it in practice.
</p>
        <p>
Richard has blogged the details of his talk here: <a href="http://richarddingwall.name/2009/09/24/slides-from-my-domain-driven-design-101-talk/">Slides
from my Domain Driven Design 101 Talk</a></p>
        <p>
I enjoyed Richard's slide deck, and his presentation style - simple slides so that
my focus was on what he was saying. The parts of his talk that I took the most out
of were the encapsulation of business logic into Specifications (different from the
testing concept), and the explicit anti-corruption layer when interfacing with any
external system.
</p>
        <p>
Thanks Richard!
</p>
        <p>
Kirk
</p>
        <img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=0d0258e1-c265-4774-b6af-53aef552a189" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/pageofwords/~4/xIFDqMJe0OM" height="1" width="1" /></body>
      <title>Domain Driven Design 101 &amp;ndash; Richard Dingwall</title>
      <guid isPermaLink="false">http://pageofwords.com/blog/PermaLink,guid,0d0258e1-c265-4774-b6af-53aef552a189.aspx</guid>
      <link>http://pageofwords.com/blog/2009/10/01/DomainDrivenDesign101NdashRichardDingwall.aspx</link>
      <pubDate>Thu, 01 Oct 2009 19:51:47 GMT</pubDate>
      <description>&lt;p&gt;
I attended Richard's Domain Driven Design introduction at the Wellington .NET user
group back on the September 23.
&lt;/p&gt;
&lt;p&gt;
Richard introduced Domain Driven Design and the motivations behind using it, covered
the 'building blocks' and then gave some examples of how to put it in practice.
&lt;/p&gt;
&lt;p&gt;
Richard has blogged the details of his talk here: &lt;a href="http://richarddingwall.name/2009/09/24/slides-from-my-domain-driven-design-101-talk/"&gt;Slides
from my Domain Driven Design 101 Talk&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
I enjoyed Richard's slide deck, and his presentation style - simple slides so that
my focus was on what he was saying. The parts of his talk that I took the most out
of were the encapsulation of business logic into Specifications (different from the
testing concept), and the explicit anti-corruption layer when interfacing with any
external system.
&lt;/p&gt;
&lt;p&gt;
Thanks Richard!
&lt;/p&gt;
&lt;p&gt;
Kirk
&lt;/p&gt;
&lt;img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=0d0258e1-c265-4774-b6af-53aef552a189" /&gt;</description>
      <comments>http://pageofwords.com/blog/CommentView,guid,0d0258e1-c265-4774-b6af-53aef552a189.aspx</comments>
      <category>UserGroup</category>
    </item>
    <item>
      <trackback:ping>http://pageofwords.com/blog/Trackback.aspx?guid=07b70667-0f1c-4d92-87a2-67d0cde7cb57</trackback:ping>
      <pingback:server>http://pageofwords.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://pageofwords.com/blog/PermaLink,guid,07b70667-0f1c-4d92-87a2-67d0cde7cb57.aspx</pingback:target>
      <dc:creator>Kirk Jackson</dc:creator>
      <wfw:comment>http://pageofwords.com/blog/CommentView,guid,07b70667-0f1c-4d92-87a2-67d0cde7cb57.aspx</wfw:comment>
      <wfw:commentRss>http://pageofwords.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=07b70667-0f1c-4d92-87a2-67d0cde7cb57</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
We got some great feedback from attendees at this year's Code Camp in Auckland. I
thought I'd share some stats from the survey sent to attendees.
</p>
        <p>
We counted 300 people there at one time, so we estimate somewhere between 300 and
350 people came along for sessions during the day. Note that approximately half of
the attendees responded to the survey that these figures were drawn from.
</p>
        <p>
We had three streams: Development, SQL and Security. 
</p>
        <p>
Attendance was roughly:
</p>
        <ul>
          <li>
Development: 68%</li>
          <li>
SQL: 19%</li>
          <li>
Security 13%</li>
        </ul>
        <p>
Although, people could switch between streams as they wished.
</p>
        <p>
          <strong>Did you also go to TechEd?</strong>
        </p>
        <ul>
          <li>
Yes: 30%</li>
          <li>
No: 70%</li>
        </ul>
        <p>
          <strong>How did you find out about Code Camp?</strong>
        </p>
        <ul>
          <li>
            <a href="http://www.dot.net.nz/GeneralPages/TempMailingLists.aspx">dot.net.nz mailing
list</a>: 23%</li>
          <li>
Co-worker: 35%</li>
          <li>
MSDN Flash Email: 22%</li>
          <li>
via a blog: 5%</li>
        </ul>
        <p>
          <strong>Session feedback:</strong>
        </p>
        <ul>
          <li>
94% of session feedback was in the range 'satisfied' to 'very satisfied'</li>
          <li>
40% of feedback was 'very satisfied'</li>
        </ul>
        <p>
          <strong>Regions:</strong>
        </p>
        <ul>
          <li>
85% from Auckland</li>
          <li>
4% each from Wellington and Bay of Plenty</li>
          <li>
3% each from Waikato and Canterbury</li>
        </ul>
        <p>
          <strong>User groups:</strong>
        </p>
        <ul>
          <li>
51% of people attend one or more of their local <a href="www.dot.net.nz">user groups</a></li>
          <li>
To the remainder: <a href="http://www.dot.net.nz/">come along and join us!</a></li>
        </ul>
        <p>
The presenter with the most feedback on his sessions was the AWESOME <a href="hestia.typepad.com">Ivan
Towlson</a>.
</p>
        <p>
We got lots of great general comments, here are a few:
</p>
        <blockquote>
          <p>
            <em>Great work guys! Thoroughly enjoyed. </em>
          </p>
          <p>
            <em>
            </em>
          </p>
          <p>
            <em>Really enjoyed the day - thanks guys! </em>
          </p>
          <p>
            <em>
            </em>
          </p>
          <p>
            <em>Thanks for the opportunity for those of us who could not attend TechEd</em>
          </p>
          <p>
            <em>
            </em>
          </p>
          <p>
            <em>I am a sole operator / consultant with very limited budget, so "free"
events are really </em>
            <em>appreciated.  I am very happy to dedicate my time
to attendance at events that are run as well as </em>
            <em>this was.  Thanks again.</em>
          </p>
          <p>
            <em>
            </em>
          </p>
          <p>
            <em>We appreciate international visitors giving up their mornings to our benefit</em>
          </p>
          <p>
            <em>
            </em>
          </p>
          <p>
            <em>I really enjoyed every session and thought that each one had a valuable piece
of information to </em>
            <em>take away - well done! </em>
          </p>
        </blockquote>
        <p>
Thanks everyone for your feedback (good and <strike>bad</strike> constructive), we'll
use it all to help make the next community Code Camp even better!
</p>
        <p>
 
</p>
        <p>
To find out about future Code Camps, and user group events in your area, please visit
the <a href="http://www.dot.net.nz">dot.net.nz</a> website and <a href="http://www.dot.net.nz/GeneralPages/TempMailingLists.aspx">sign
up to a mailing list</a>.
</p>
        <p>
 
</p>
        <p>
Kirk
</p>
        <img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=07b70667-0f1c-4d92-87a2-67d0cde7cb57" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/pageofwords/~4/I-fe0EX3MVA" height="1" width="1" /></body>
      <title>Code Camp Auckland 2009 &amp;ndash; Feedback from attendees</title>
      <guid isPermaLink="false">http://pageofwords.com/blog/PermaLink,guid,07b70667-0f1c-4d92-87a2-67d0cde7cb57.aspx</guid>
      <link>http://pageofwords.com/blog/2009/09/26/CodeCampAuckland2009NdashFeedbackFromAttendees.aspx</link>
      <pubDate>Sat, 26 Sep 2009 01:26:03 GMT</pubDate>
      <description>&lt;p&gt;
We got some great feedback from attendees at this year's Code Camp in Auckland. I
thought I'd share some stats from the survey sent to attendees.
&lt;/p&gt;
&lt;p&gt;
We counted 300 people there at one time, so we estimate somewhere between 300 and
350 people came along for sessions during the day. Note that approximately half of
the attendees responded to the survey that these figures were drawn from.
&lt;/p&gt;
&lt;p&gt;
We had three streams: Development, SQL and Security. 
&lt;/p&gt;
&lt;p&gt;
Attendance was roughly:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Development: 68%&lt;/li&gt;
&lt;li&gt;
SQL: 19%&lt;/li&gt;
&lt;li&gt;
Security 13%&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Although, people could switch between streams as they wished.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Did you also go to TechEd?&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Yes: 30%&lt;/li&gt;
&lt;li&gt;
No: 70%&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;How did you find out about Code Camp?&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://www.dot.net.nz/GeneralPages/TempMailingLists.aspx"&gt;dot.net.nz mailing
list&lt;/a&gt;: 23%&lt;/li&gt;
&lt;li&gt;
Co-worker: 35%&lt;/li&gt;
&lt;li&gt;
MSDN Flash Email: 22%&lt;/li&gt;
&lt;li&gt;
via a blog: 5%&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;Session feedback:&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
94% of session feedback was in the range 'satisfied' to 'very satisfied'&lt;/li&gt;
&lt;li&gt;
40% of feedback was 'very satisfied'&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;Regions:&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
85% from Auckland&lt;/li&gt;
&lt;li&gt;
4% each from Wellington and Bay of Plenty&lt;/li&gt;
&lt;li&gt;
3% each from Waikato and Canterbury&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;User groups:&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
51% of people attend one or more of their local &lt;a href="www.dot.net.nz"&gt;user groups&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
To the remainder: &lt;a href="http://www.dot.net.nz/"&gt;come along and join us!&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
The presenter with the most feedback on his sessions was the AWESOME &lt;a href="hestia.typepad.com"&gt;Ivan
Towlson&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
We got lots of great general comments, here are a few:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;em&gt;Great work guys! Thoroughly enjoyed. &lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Really enjoyed the day - thanks guys! &lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Thanks for the opportunity for those of us who could not attend TechEd&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;I am a sole operator / consultant with very limited budget, so &amp;quot;free&amp;quot;
events are really &lt;/em&gt;&lt;em&gt;appreciated.&amp;#160; I am very happy to dedicate my time
to attendance at events that are run as well as &lt;/em&gt;&lt;em&gt;this was.&amp;#160; Thanks again.&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;We appreciate international visitors giving up their mornings to our benefit&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;I really enjoyed every session and thought that each one had a valuable piece
of information to &lt;/em&gt;&lt;em&gt;take away - well done! &lt;/em&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
Thanks everyone for your feedback (good and &lt;strike&gt;bad&lt;/strike&gt; constructive), we'll
use it all to help make the next community Code Camp even better!
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
To find out about future Code Camps, and user group events in your area, please visit
the &lt;a href="http://www.dot.net.nz"&gt;dot.net.nz&lt;/a&gt; website and &lt;a href="http://www.dot.net.nz/GeneralPages/TempMailingLists.aspx"&gt;sign
up to a mailing list&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
Kirk
&lt;/p&gt;
&lt;img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=07b70667-0f1c-4d92-87a2-67d0cde7cb57" /&gt;</description>
      <comments>http://pageofwords.com/blog/CommentView,guid,07b70667-0f1c-4d92-87a2-67d0cde7cb57.aspx</comments>
      <category>CodeCamp</category>
    </item>
    <item>
      <trackback:ping>http://pageofwords.com/blog/Trackback.aspx?guid=79bf6915-0715-4909-bca1-c32101e29abd</trackback:ping>
      <pingback:server>http://pageofwords.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://pageofwords.com/blog/PermaLink,guid,79bf6915-0715-4909-bca1-c32101e29abd.aspx</pingback:target>
      <dc:creator>Kirk Jackson</dc:creator>
      <wfw:comment>http://pageofwords.com/blog/CommentView,guid,79bf6915-0715-4909-bca1-c32101e29abd.aspx</wfw:comment>
      <wfw:commentRss>http://pageofwords.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=79bf6915-0715-4909-bca1-c32101e29abd</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://www.msteched.com/newzealand/Public/">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="teched" border="0" alt="teched" src="http://pageofwords.com/blog/content/binary/WindowsLiveWriter/Illbespeaking.Willyoubelistening_12BB4/teched_3.png" width="179" height="200" />
          </a>
        </p>
        <p>
I'm happy to be presenting two sessions at <a href="http://www.msteched.com/newzealand/Public/">TechEd</a> this
year. It would be great to see you there!
</p>
        <p>
          <strong>DEV304 Visual Studio Team System 2010: Odyssey Two</strong>
        </p>
        <p>
Presenter: Kirk Jackson
</p>
        <p>
Tue 9/15 | 17:10-18:25 | Ballroom 1
</p>
        <p>
 
</p>
        <p>
Visual Studio 2008 is the best and most productive development environment ever! Microsoft
have been busy the past couple of years putting even more great features into your
favourite tool, and in Visual Studio 2010 we'll be seeing: new programming languages;
diagramming tools and visualisers; new project types; and enhancements to the IDE.
Come along and hear about these great features, and learn some new tips to help you
make the most of Visual Studio 2010!
</p>
        <p>
          <strong>
          </strong>
        </p>
        <p>
          <strong>SEC313 Hack-Ed: Teaching the Good Guys Bad Tricks</strong>
        </p>
        <p>
Presenters: Kirk Jackson, Andy Prow
</p>
        <p>
Wed 9/16 | 12:10-13:25 | New Zealand Room 2
</p>
        <p>
 
</p>
        <p>
You can't fight a war that you don't know you're waging. You can't defend your website
against attack unless you know the tricks that the bad guys will use.
</p>
        <p>
 
</p>
        <p>
Join the "Flight of the Pwnchords*" and learn the tricks that Andy "the
hacker" will use and watch as Kirk "the developer" tries to defend
his ASP.NET website against them. By the end of this session you will have an understanding
of some of the common attacks, such as Cross-Site Scripting (XSS), Cross-Domain Request
Forgery (CDRF), and will have an appreciation of how layering your defenses (defense-in-depth)
can help protect you from exploit chaining. 
</p>
        <p>
 
</p>
        <p>
The session will also give you some practical tips that you can apply straight away
in Visual Studio 2008 to help you build secure websites. 
</p>
        <p>
 
</p>
        <p>
(* AKA "New Zealand's fourth most popular comedy hacking duo")
</p>
        <p>
 
</p>
        <p>
Cheers,
</p>
        <p>
 
</p>
        <p>
Kirk
</p>
        <img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=79bf6915-0715-4909-bca1-c32101e29abd" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/pageofwords/~4/ctx_k-No7mE" height="1" width="1" /></body>
      <title>I&amp;rsquo;ll be speaking. Will you be listening?</title>
      <guid isPermaLink="false">http://pageofwords.com/blog/PermaLink,guid,79bf6915-0715-4909-bca1-c32101e29abd.aspx</guid>
      <link>http://pageofwords.com/blog/2009/09/03/IrsquollBeSpeakingWillYouBeListening.aspx</link>
      <pubDate>Thu, 03 Sep 2009 09:26:09 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://www.msteched.com/newzealand/Public/"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="teched" border="0" alt="teched" src="http://pageofwords.com/blog/content/binary/WindowsLiveWriter/Illbespeaking.Willyoubelistening_12BB4/teched_3.png" width="179" height="200" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
I'm happy to be presenting two sessions at &lt;a href="http://www.msteched.com/newzealand/Public/"&gt;TechEd&lt;/a&gt; this
year. It would be great to see you there!
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;DEV304 Visual Studio Team System 2010: Odyssey Two&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Presenter: Kirk Jackson
&lt;/p&gt;
&lt;p&gt;
Tue 9/15 | 17:10-18:25 | Ballroom 1
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
Visual Studio 2008 is the best and most productive development environment ever! Microsoft
have been busy the past couple of years putting even more great features into your
favourite tool, and in Visual Studio 2010 we'll be seeing: new programming languages;
diagramming tools and visualisers; new project types; and enhancements to the IDE.
Come along and hear about these great features, and learn some new tips to help you
make the most of Visual Studio 2010!
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;SEC313 Hack-Ed: Teaching the Good Guys Bad Tricks&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Presenters: Kirk Jackson, Andy Prow
&lt;/p&gt;
&lt;p&gt;
Wed 9/16 | 12:10-13:25 | New Zealand Room 2
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
You can't fight a war that you don't know you're waging. You can't defend your website
against attack unless you know the tricks that the bad guys will use.
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
Join the &amp;quot;Flight of the Pwnchords*&amp;quot; and learn the tricks that Andy &amp;quot;the
hacker&amp;quot; will use and watch as Kirk &amp;quot;the developer&amp;quot; tries to defend
his ASP.NET website against them. By the end of this session you will have an understanding
of some of the common attacks, such as Cross-Site Scripting (XSS), Cross-Domain Request
Forgery (CDRF), and will have an appreciation of how layering your defenses (defense-in-depth)
can help protect you from exploit chaining. 
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
The session will also give you some practical tips that you can apply straight away
in Visual Studio 2008 to help you build secure websites. 
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
(* AKA &amp;quot;New Zealand's fourth most popular comedy hacking duo&amp;quot;)
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
Cheers,
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
Kirk
&lt;/p&gt;
&lt;img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=79bf6915-0715-4909-bca1-c32101e29abd" /&gt;</description>
      <comments>http://pageofwords.com/blog/CommentView,guid,79bf6915-0715-4909-bca1-c32101e29abd.aspx</comments>
      <category>TechEd</category>
    </item>
    <item>
      <trackback:ping>http://pageofwords.com/blog/Trackback.aspx?guid=249a58ec-4b74-4bdb-beaa-8b704b90e9d3</trackback:ping>
      <pingback:server>http://pageofwords.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://pageofwords.com/blog/PermaLink,guid,249a58ec-4b74-4bdb-beaa-8b704b90e9d3.aspx</pingback:target>
      <dc:creator>Kirk Jackson</dc:creator>
      <wfw:comment>http://pageofwords.com/blog/CommentView,guid,249a58ec-4b74-4bdb-beaa-8b704b90e9d3.aspx</wfw:comment>
      <wfw:commentRss>http://pageofwords.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=249a58ec-4b74-4bdb-beaa-8b704b90e9d3</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Visual Studio 2010 will have <a href="http://weblogs.asp.net/scottgu/archive/2009/08/31/multi-monitor-support-vs-2010-and-net-4-series.aspx">better
support for a multi-monitor setup</a>, but it's possible to get part of the way in
2008 already.
</p>
        <p>
Toolbars and property windows (e.g. Solution Explorer, Class View) can be dragged
into separate windows (2010 will add the ability to drag documents into separate windows
too):
</p>
        <p>
          <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Floating windows" border="0" alt="Floating windows" src="http://pageofwords.com/blog/content/binary/WindowsLiveWriter/VisualStudio2008Remembertoolbarpositions_12E47/image_5.png" width="644" height="383" />
        </p>
        <p>
Window positioning gets a bit weird when you switch from one monitor to another, or
change resolutions - a common occurrence when you're a laptop user docking and un-docking.
</p>
        <p>
You can create two settings files, one for your single monitor layout, and one for
your multi-monitor layout, and use them when starting Visual Studio 2008:
</p>
        <ol>
          <li>
Arrange your windows the way you like them 
</li>
          <li>
Go to <strong>Tools </strong>&gt; <strong>Import and Export Settings</strong> &gt; <strong>Export
selected environment settings</strong></li>
          <li>
You get a great tree-view of every possible setting category in Visual Studio. Click
the top node to deselect everything, and scroll down and select only <strong>General
Settings </strong>&gt; <strong>Window Layouts</strong>: 
<br /><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/VisualStudio2008Remembertoolbarpositions_12E47/image_10.png" width="244" height="206" /></li>
          <li>
Save your settings file somewhere handy (e.g. d:\multimon.vssettings) 
</li>
          <li>
Repeat for each layout you like 
</li>
        </ol>
        <p>
Now you have two or more settings files, you just need to create a shortcut icon for
each one somewhere in your start menu.
</p>
        <p>
Edit the target, and add the parameter <strong>/resetsettings D:\multimon.vssettings</strong> to
the end (replace the path with each settings file path).
</p>
        <p>
          <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/VisualStudio2008Remembertoolbarpositions_12E47/image_13.png" width="382" height="536" />
        </p>
        <p>
Now when you launch your new shortcut, it will start Visual Studio 2008 with the correct
window layout. Because you only exported and imported the Window Layouts, all the
other settings stay the same.
</p>
        <p>
You may also want to make these changes to your shortcut:
</p>
        <ul>
          <li>
Add the <strong>/nosplash </strong>parameter to your Target, to avoid the "Visual
Studio" splash screen and make it slightly faster to start (perception is everything!) 
</li>
          <li>
Check the <strong>Run as administrator </strong>option, which is useful if you often
need to restart Visual Studio to connect to the ASP.NET worker process when developing
under IIS. 
</li>
        </ul>
        <p>
          <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/VisualStudio2008Remembertoolbarpositions_12E47/image_16.png" width="644" height="457" />
        </p>
        <p>
Cheers,
</p>
        <p>
Kirk
</p>
        <p>
Previous VS2008 Tips:
</p>
        <ul>
          <li>
            <a href="http://pageofwords.com/blog/2008/09/09/VisualStudioTipsNTricksDEV313.aspx">Visual
Studio Tips n Tricks (DEV313)</a>
          </li>
          <li>
            <a href="http://pageofwords.com/blog/2008/09/10/VisualStudioCopyReferences.aspx">Visual
Studio - Copy references</a>
          </li>
          <li>
            <a href="http://pageofwords.com/blog/2008/09/11/TurnOffOutliningRegionsInVisualStudio.aspx">Turn
off outlining / regions in Visual Studio</a>
          </li>
          <li>
            <a href="http://pageofwords.com/blog/2008/09/12/VisualStudio2008TipOfTheDayReliveTheSeries.aspx">Visual
Studio 2008 tip of the day - relive the series</a>
          </li>
          <li>
            <a href="http://pageofwords.com/blog/2008/09/16/ExploreFilesFromVisualStudio.aspx">Explore
files from Visual Studio</a>
          </li>
          <li>
            <a href="http://pageofwords.com/blog/2008/09/26/SnippetDesignerReleased.aspx">Snippet
Designer released</a>
          </li>
          <li>
            <a href="http://pageofwords.com/blog/2008/09/30/CtrlBringUpThatAnnoyingSmartTagMenu.aspx">Ctrl
+ . -- Bring up that annoying smart tag menu</a>
          </li>
          <li>
            <a href="http://pageofwords.com/blog/2008/10/24/TemporaryProjectsYouDontHaveToSaveThem.aspx">Temporary
Projects - You don't have to save them</a>
          </li>
          <li>
            <a href="http://pageofwords.com/blog/2008/11/11/ChristchurchVisualStudioTipsnTricks.aspx">Christchurch
- Visual Studio Tips'n'Tricks</a>
          </li>
          <li>
            <a href="http://pageofwords.com/blog/2008/11/14/VisualStudioRegeditYourTabOrderingAndAddAColumnGuide.aspx">Visual
Studio - Regedit your tab ordering and add a column guide</a>
          </li>
        </ul>
        <img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=249a58ec-4b74-4bdb-beaa-8b704b90e9d3" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/pageofwords/~4/6URWG9lLk60" height="1" width="1" /></body>
      <title>Visual Studio 2008: Remember toolbar positions</title>
      <guid isPermaLink="false">http://pageofwords.com/blog/PermaLink,guid,249a58ec-4b74-4bdb-beaa-8b704b90e9d3.aspx</guid>
      <link>http://pageofwords.com/blog/2009/09/01/VisualStudio2008RememberToolbarPositions.aspx</link>
      <pubDate>Tue, 01 Sep 2009 09:55:57 GMT</pubDate>
      <description>&lt;p&gt;
Visual Studio 2010 will have &lt;a href="http://weblogs.asp.net/scottgu/archive/2009/08/31/multi-monitor-support-vs-2010-and-net-4-series.aspx"&gt;better
support for a multi-monitor setup&lt;/a&gt;, but it's possible to get part of the way in
2008 already.
&lt;/p&gt;
&lt;p&gt;
Toolbars and property windows (e.g. Solution Explorer, Class View) can be dragged
into separate windows (2010 will add the ability to drag documents into separate windows
too):
&lt;/p&gt;
&lt;p&gt;
&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Floating windows" border="0" alt="Floating windows" src="http://pageofwords.com/blog/content/binary/WindowsLiveWriter/VisualStudio2008Remembertoolbarpositions_12E47/image_5.png" width="644" height="383" /&gt;
&lt;/p&gt;
&lt;p&gt;
Window positioning gets a bit weird when you switch from one monitor to another, or
change resolutions - a common occurrence when you're a laptop user docking and un-docking.
&lt;/p&gt;
&lt;p&gt;
You can create two settings files, one for your single monitor layout, and one for
your multi-monitor layout, and use them when starting Visual Studio 2008:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Arrange your windows the way you like them 
&lt;/li&gt;
&lt;li&gt;
Go to &lt;strong&gt;Tools &lt;/strong&gt;&amp;gt; &lt;strong&gt;Import and Export Settings&lt;/strong&gt; &amp;gt; &lt;strong&gt;Export
selected environment settings&lt;/strong&gt; 
&lt;/li&gt;
&lt;li&gt;
You get a great tree-view of every possible setting category in Visual Studio. Click
the top node to deselect everything, and scroll down and select only &lt;strong&gt;General
Settings &lt;/strong&gt;&amp;gt; &lt;strong&gt;Window Layouts&lt;/strong&gt;: 
&lt;br /&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/VisualStudio2008Remembertoolbarpositions_12E47/image_10.png" width="244" height="206" /&gt; 
&lt;/li&gt;
&lt;li&gt;
Save your settings file somewhere handy (e.g. d:\multimon.vssettings) 
&lt;/li&gt;
&lt;li&gt;
Repeat for each layout you like 
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
Now you have two or more settings files, you just need to create a shortcut icon for
each one somewhere in your start menu.
&lt;/p&gt;
&lt;p&gt;
Edit the target, and add the parameter &lt;strong&gt;/resetsettings D:\multimon.vssettings&lt;/strong&gt; to
the end (replace the path with each settings file path).
&lt;/p&gt;
&lt;p&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/VisualStudio2008Remembertoolbarpositions_12E47/image_13.png" width="382" height="536" /&gt; 
&lt;/p&gt;
&lt;p&gt;
Now when you launch your new shortcut, it will start Visual Studio 2008 with the correct
window layout. Because you only exported and imported the Window Layouts, all the
other settings stay the same.
&lt;/p&gt;
&lt;p&gt;
You may also want to make these changes to your shortcut:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Add the &lt;strong&gt;/nosplash &lt;/strong&gt;parameter to your Target, to avoid the "Visual
Studio" splash screen and make it slightly faster to start (perception is everything!) 
&lt;/li&gt;
&lt;li&gt;
Check the &lt;strong&gt;Run as administrator &lt;/strong&gt;option, which is useful if you often
need to restart Visual Studio to connect to the ASP.NET worker process when developing
under IIS. 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&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/VisualStudio2008Remembertoolbarpositions_12E47/image_16.png" width="644" height="457" /&gt; 
&lt;/p&gt;
&lt;p&gt;
Cheers,
&lt;/p&gt;
&lt;p&gt;
Kirk
&lt;/p&gt;
&lt;p&gt;
Previous VS2008 Tips:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://pageofwords.com/blog/2008/09/09/VisualStudioTipsNTricksDEV313.aspx"&gt;Visual
Studio Tips n Tricks (DEV313)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://pageofwords.com/blog/2008/09/10/VisualStudioCopyReferences.aspx"&gt;Visual
Studio - Copy references&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://pageofwords.com/blog/2008/09/11/TurnOffOutliningRegionsInVisualStudio.aspx"&gt;Turn
off outlining / regions in Visual Studio&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://pageofwords.com/blog/2008/09/12/VisualStudio2008TipOfTheDayReliveTheSeries.aspx"&gt;Visual
Studio 2008 tip of the day - relive the series&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://pageofwords.com/blog/2008/09/16/ExploreFilesFromVisualStudio.aspx"&gt;Explore
files from Visual Studio&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://pageofwords.com/blog/2008/09/26/SnippetDesignerReleased.aspx"&gt;Snippet
Designer released&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://pageofwords.com/blog/2008/09/30/CtrlBringUpThatAnnoyingSmartTagMenu.aspx"&gt;Ctrl
+ . -- Bring up that annoying smart tag menu&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://pageofwords.com/blog/2008/10/24/TemporaryProjectsYouDontHaveToSaveThem.aspx"&gt;Temporary
Projects - You don't have to save them&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://pageofwords.com/blog/2008/11/11/ChristchurchVisualStudioTipsnTricks.aspx"&gt;Christchurch
- Visual Studio Tips'n'Tricks&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://pageofwords.com/blog/2008/11/14/VisualStudioRegeditYourTabOrderingAndAddAColumnGuide.aspx"&gt;Visual
Studio - Regedit your tab ordering and add a column guide&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=249a58ec-4b74-4bdb-beaa-8b704b90e9d3" /&gt;</description>
      <comments>http://pageofwords.com/blog/CommentView,guid,249a58ec-4b74-4bdb-beaa-8b704b90e9d3.aspx</comments>
      <category>.NET;VS2008Tips</category>
    </item>
    <item>
      <trackback:ping>http://pageofwords.com/blog/Trackback.aspx?guid=9a15a145-d4fe-45e1-991f-4eb872b3f6e1</trackback:ping>
      <pingback:server>http://pageofwords.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://pageofwords.com/blog/PermaLink,guid,9a15a145-d4fe-45e1-991f-4eb872b3f6e1.aspx</pingback:target>
      <dc:creator>Kirk Jackson</dc:creator>
      <wfw:comment>http://pageofwords.com/blog/CommentView,guid,9a15a145-d4fe-45e1-991f-4eb872b3f6e1.aspx</wfw:comment>
      <wfw:commentRss>http://pageofwords.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=9a15a145-d4fe-45e1-991f-4eb872b3f6e1</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Code Camp is less than two weeks away!
</p>
        <p>
If you want to catch some <i>free</i> sessions on the state-of-the-art in .NET development,
SQL Server and developer security then sign up for <a href="http://www.dot.net.nz/GeneralPages/CodeCampAuckland2009.aspx">Code
Camp Auckland 2009</a> now.
</p>
        <p>
Code Camps are non-profit, and organised by members of the <a href="http://www.dot.net.nz">local
developer community</a>. This year the Auckland Code Camp is the day before <a href="http://www.microsoft.co.nz/teched">TechEd</a> (Sunday
13 September), so we've managed to nab a few great speakers on their day off to present
to us.
</p>
        <p>
It's the biggest Code Camp ever - over 14 hours of sessions across 3 streams from
10am till 5pm:
</p>
        <p>
          <b>Development...</b>
        </p>
        <ul>
          <li>
What's Happening in .NET Languages and Why Should You Care? 
</li>
          <li>
.NET on the iPhone and Beyond</li>
          <li>
Behaviour Driven Development 
</li>
          <li>
Domain Specific Languages 
</li>
          <li>
C# 4.0 new features</li>
          <li>
Silverlight with Prism</li>
          <li>
Becoming Certified</li>
          <li>
Lightning Talks 
</li>
          <li>
and more! 
</li>
        </ul>
        <p>
The latest and greatest in development topics, by the people that know!
</p>
        <p>
          <b>SQL Server?</b>
        </p>
        <ul>
          <li>
SQL Server Virtualisation Best Practices and Recommendations 
</li>
          <li>
SQL Server Analysis Services and Gemini 
</li>
          <li>
Query Optimization and Query Tuning 
</li>
          <li>
Understanding SQL Server Indexing 
</li>
          <li>
SQL Server Maintenance 
</li>
        </ul>
        <p>
Training and guidance from the best SQL trainers in the industry!
</p>
        <p>
          <b>Security!</b>
        </p>
        <ul>
          <li>
Secure Development Lifecycle and Threat Modelling workshop 
</li>
          <li>
Secure Coding Practices 
</li>
        </ul>
        <p>
We are lucky to have <a href="http://blogs.msdn.com/michael_howard">Michael Howard</a>,
author of <a href="http://www.fishpond.co.nz/Books/Computers/Networking/Security/product_info/984332/">Writing
Secure Code</a> and <a href="http://www.fishpond.co.nz/Books/Computers/Networking/Security/product_info/15172892">24
Deadly Sins of Software Security</a> giving a <i>free</i> workshop for developers,
architects and team leads on Threat Modelling and the Secure Development Lifecycle.
This will be followed by a session on how to write secure .NET code.
</p>
        <p>
Auckland has never seen such an awesome <i>free </i>event!
</p>
        <p>
Presenters that are offering their time include <a href="http://sqlblog.com/blogs/greg_low/">Greg
Low</a>, <a href="http://sqlcat.com/members/Nicholas-Dritsas.aspx">Nicholas Dritsas</a> and
Auckland's <a href="http://blog.bittercoder.com/">Alex Henderson</a> of <a href="http://blog.bittercoder.com/CategoryView,category,architectureChat.aspx">Architecture
Chat</a> fame.
</p>
        <p>
To cover the costs of the event, we have the help of our generous sponsors: <a href="http://www.microsoft.co.nz">Microsoft</a>, <a href="http://www.datacom.co.nz">Datacom</a>, <a href="http://www.intergen.co.nz">Intergen</a>, <a href="http://apac.ineta.org">INETA</a> and <a href="http://www.xero.com">Xero</a>.
</p>
        <p>
All that's left for you to do is to <a href="http://www.dot.net.nz/GeneralPages/CodeCampAuckland2009.aspx">visit
the website</a> for more details, and <a href="http://www.codecamp.net.nz/">sign up
now</a>!
</p>
        <p>
See you there on Sunday 13 September,
</p>
        <p>
Kirk
</p>
        <img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=9a15a145-d4fe-45e1-991f-4eb872b3f6e1" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/pageofwords/~4/MJeGpfh8n8U" height="1" width="1" /></body>
      <title>Code Camp Auckland 2009 - Development | SQL | Security</title>
      <guid isPermaLink="false">http://pageofwords.com/blog/PermaLink,guid,9a15a145-d4fe-45e1-991f-4eb872b3f6e1.aspx</guid>
      <link>http://pageofwords.com/blog/2009/08/30/CodeCampAuckland2009DevelopmentSQLSecurity.aspx</link>
      <pubDate>Sun, 30 Aug 2009 11:17:02 GMT</pubDate>
      <description>&lt;p&gt;
Code Camp is less than two weeks away!
&lt;/p&gt;
&lt;p&gt;
If you want to catch some &lt;i&gt;free&lt;/i&gt; sessions on the state-of-the-art in .NET development,
SQL Server and developer security then sign up for &lt;a href="http://www.dot.net.nz/GeneralPages/CodeCampAuckland2009.aspx"&gt;Code
Camp Auckland 2009&lt;/a&gt; now.
&lt;/p&gt;
&lt;p&gt;
Code Camps are non-profit, and organised by members of the &lt;a href="http://www.dot.net.nz"&gt;local
developer community&lt;/a&gt;. This year the Auckland Code Camp is the day before &lt;a href="http://www.microsoft.co.nz/teched"&gt;TechEd&lt;/a&gt; (Sunday
13 September), so we've managed to nab a few great speakers on their day off to present
to us.
&lt;/p&gt;
&lt;p&gt;
It's the biggest Code Camp ever - over 14 hours of sessions across 3 streams from
10am till 5pm:
&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;Development...&lt;/b&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
What's Happening in .NET Languages and Why Should You Care? 
&lt;/li&gt;
&lt;li&gt;
.NET on the iPhone and Beyond&lt;/li&gt;
&lt;li&gt;
Behaviour Driven Development 
&lt;/li&gt;
&lt;li&gt;
Domain Specific Languages 
&lt;/li&gt;
&lt;li&gt;
C# 4.0 new features&lt;/li&gt;
&lt;li&gt;
Silverlight with Prism&lt;/li&gt;
&lt;li&gt;
Becoming Certified&lt;/li&gt;
&lt;li&gt;
Lightning Talks 
&lt;/li&gt;
&lt;li&gt;
and more! 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
The latest and greatest in development topics, by the people that know!
&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;SQL Server?&lt;/b&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
SQL Server Virtualisation Best Practices and Recommendations 
&lt;/li&gt;
&lt;li&gt;
SQL Server Analysis Services and Gemini 
&lt;/li&gt;
&lt;li&gt;
Query Optimization and Query Tuning 
&lt;/li&gt;
&lt;li&gt;
Understanding SQL Server Indexing 
&lt;/li&gt;
&lt;li&gt;
SQL Server Maintenance 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Training and guidance from the best SQL trainers in the industry!
&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;Security!&lt;/b&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Secure Development Lifecycle and Threat Modelling workshop 
&lt;/li&gt;
&lt;li&gt;
Secure Coding Practices 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
We are lucky to have &lt;a href="http://blogs.msdn.com/michael_howard"&gt;Michael Howard&lt;/a&gt;,
author of &lt;a href="http://www.fishpond.co.nz/Books/Computers/Networking/Security/product_info/984332/"&gt;Writing
Secure Code&lt;/a&gt; and &lt;a href="http://www.fishpond.co.nz/Books/Computers/Networking/Security/product_info/15172892"&gt;24
Deadly Sins of Software Security&lt;/a&gt; giving a &lt;i&gt;free&lt;/i&gt; workshop for developers,
architects and team leads on Threat Modelling and the Secure Development Lifecycle.
This will be followed by a session on how to write secure .NET code.
&lt;/p&gt;
&lt;p&gt;
Auckland has never seen such an awesome &lt;i&gt;free &lt;/i&gt;event!
&lt;/p&gt;
&lt;p&gt;
Presenters that are offering their time include &lt;a href="http://sqlblog.com/blogs/greg_low/"&gt;Greg
Low&lt;/a&gt;, &lt;a href="http://sqlcat.com/members/Nicholas-Dritsas.aspx"&gt;Nicholas Dritsas&lt;/a&gt; and
Auckland's &lt;a href="http://blog.bittercoder.com/"&gt;Alex Henderson&lt;/a&gt; of &lt;a href="http://blog.bittercoder.com/CategoryView,category,architectureChat.aspx"&gt;Architecture
Chat&lt;/a&gt; fame.
&lt;/p&gt;
&lt;p&gt;
To cover the costs of the event, we have the help of our generous sponsors: &lt;a href="http://www.microsoft.co.nz"&gt;Microsoft&lt;/a&gt;, &lt;a href="http://www.datacom.co.nz"&gt;Datacom&lt;/a&gt;, &lt;a href="http://www.intergen.co.nz"&gt;Intergen&lt;/a&gt;, &lt;a href="http://apac.ineta.org"&gt;INETA&lt;/a&gt; and &lt;a href="http://www.xero.com"&gt;Xero&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
All that's left for you to do is to &lt;a href="http://www.dot.net.nz/GeneralPages/CodeCampAuckland2009.aspx"&gt;visit
the website&lt;/a&gt; for more details, and &lt;a href="http://www.codecamp.net.nz/"&gt;sign up
now&lt;/a&gt;!
&lt;/p&gt;
&lt;p&gt;
See you there on Sunday 13 September,
&lt;/p&gt;
&lt;p&gt;
Kirk
&lt;/p&gt;
&lt;img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=9a15a145-d4fe-45e1-991f-4eb872b3f6e1" /&gt;</description>
      <comments>http://pageofwords.com/blog/CommentView,guid,9a15a145-d4fe-45e1-991f-4eb872b3f6e1.aspx</comments>
      <category>.NET;CodeCamp;Security;UserGroup</category>
    </item>
    <item>
      <trackback:ping>http://pageofwords.com/blog/Trackback.aspx?guid=4d1a8e94-b87a-4be6-9169-9da4230cadbc</trackback:ping>
      <pingback:server>http://pageofwords.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://pageofwords.com/blog/PermaLink,guid,4d1a8e94-b87a-4be6-9169-9da4230cadbc.aspx</pingback:target>
      <dc:creator>Kirk Jackson</dc:creator>
      <wfw:comment>http://pageofwords.com/blog/CommentView,guid,4d1a8e94-b87a-4be6-9169-9da4230cadbc.aspx</wfw:comment>
      <wfw:commentRss>http://pageofwords.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=4d1a8e94-b87a-4be6-9169-9da4230cadbc</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Today at the Wellington .NET User Group, Kevin presented a talk on "Windows Mobile
6.5 Widgets".
</p>
        <p>
Kevin has kindly provided his slides and samples for download:
</p>
        <p>
        </p>
        <div style="margin: 0px; padding: 0px; display: inline; float: none;" id="scid:FF7EC618-8FBE-49a5-B908-2339AF2ABCDF:d827784f-9769-4f13-81e7-f86e15b9eefc" class="wlWriterEditableSmartContent">
          <div>
            <a href="content/binary/Developing%20Widgets.pptx">Developing Widgets.pptx (256.62
KB)</a>
            <br />
            <a href="http://pageofwords.com/blog/content/binary/wibble.zip">wibble.zip (.75 KB)</a>
            <br />
            <a href="http://pageofwords.com/blog/content/binary/geekzonefriends.zip">geekzonefriends.zip
(119.48 KB)</a>
            <br />
          </div>
        </div>
        <p>
        </p>
        <p>
I found this interesting. I haven't developed any applications for Windows Mobile,
though I have played around a bit with the emulator and deploying code from within
Visual Studio.
</p>
        <p>
Widgets seem like a lot simpler application development model than native or compact
framework applications. The application development model is similar to Vista sidebar
gadgets, as there is a packaged zip file containing the application inside - and the
application is 'simply' Javascript and HTML. Widgets can use XHR or DOM manipulation,
and have access to a small amount of local storage to store preference information.
</p>
        <p>
Windows Mobile 6.5 treats widgets as first-class application citizens within the OS
- they have icons on the revamped start screen, and appear in the uninstall screen.
As far as the user knows, they are the same as a native application.
</p>
        <p>
Where the process is currently let down is in deployment and debugging. Currently
a widget can only be deployed through the Windows Mobile marketplace, after the developer
has signed up and the application has been reviewed (I think!). Debugging from Visual
Studio seems non-existent, meaning that development is through trial and error.
</p>
        <p>
I could see an enterprising person (like Kevin) building a Javascript library that
simulated the API provided by the widget infrastructure, so that widgets could be
developed and tested on a desktop before being deployed on a device. Kevin, am I right
that all that is needed is the Widget object and some fake ActiveX controls?
</p>
        <p>
All up, an interesting session.
</p>
        <p>
Cheers!
</p>
        <p>
Kirk
</p>
        <img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=4d1a8e94-b87a-4be6-9169-9da4230cadbc" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/pageofwords/~4/vZ0vFWOaPbY" height="1" width="1" /></body>
      <title>Windows Mobile 6.5 Widgets with Kevin Daly - 19 Aug 09</title>
      <guid isPermaLink="false">http://pageofwords.com/blog/PermaLink,guid,4d1a8e94-b87a-4be6-9169-9da4230cadbc.aspx</guid>
      <link>http://pageofwords.com/blog/2009/08/19/WindowsMobile65WidgetsWithKevinDaly19Aug09.aspx</link>
      <pubDate>Wed, 19 Aug 2009 10:51:20 GMT</pubDate>
      <description>&lt;p&gt;
Today at the Wellington .NET User Group, Kevin presented a talk on "Windows Mobile
6.5 Widgets".
&lt;/p&gt;
&lt;p&gt;
Kevin has kindly provided his slides and samples for download:
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;div style="margin: 0px; padding: 0px; display: inline; float: none;" id="scid:FF7EC618-8FBE-49a5-B908-2339AF2ABCDF:d827784f-9769-4f13-81e7-f86e15b9eefc" class="wlWriterEditableSmartContent"&gt;
&lt;div&gt;&lt;a href="content/binary/Developing%20Widgets.pptx"&gt;Developing Widgets.pptx (256.62
KB)&lt;/a&gt;
&lt;br&gt;
&lt;a href="http://pageofwords.com/blog/content/binary/wibble.zip"&gt;wibble.zip (.75 KB)&lt;/a&gt;
&lt;br&gt;
&lt;a href="http://pageofwords.com/blog/content/binary/geekzonefriends.zip"&gt;geekzonefriends.zip
(119.48 KB)&lt;/a&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
I found this interesting. I haven't developed any applications for Windows Mobile,
though I have played around a bit with the emulator and deploying code from within
Visual Studio.
&lt;/p&gt;
&lt;p&gt;
Widgets seem like a lot simpler application development model than native or compact
framework applications. The application development model is similar to Vista sidebar
gadgets, as there is a packaged zip file containing the application inside - and the
application is 'simply' Javascript and HTML. Widgets can use XHR or DOM manipulation,
and have access to a small amount of local storage to store preference information.
&lt;/p&gt;
&lt;p&gt;
Windows Mobile 6.5 treats widgets as first-class application citizens within the OS
- they have icons on the revamped start screen, and appear in the uninstall screen.
As far as the user knows, they are the same as a native application.
&lt;/p&gt;
&lt;p&gt;
Where the process is currently let down is in deployment and debugging. Currently
a widget can only be deployed through the Windows Mobile marketplace, after the developer
has signed up and the application has been reviewed (I think!). Debugging from Visual
Studio seems non-existent, meaning that development is through trial and error.
&lt;/p&gt;
&lt;p&gt;
I could see an enterprising person (like Kevin) building a Javascript library that
simulated the API provided by the widget infrastructure, so that widgets could be
developed and tested on a desktop before being deployed on a device. Kevin, am I right
that all that is needed is the Widget object and some fake ActiveX controls?
&lt;/p&gt;
&lt;p&gt;
All up, an interesting session.
&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=4d1a8e94-b87a-4be6-9169-9da4230cadbc" /&gt;</description>
      <comments>http://pageofwords.com/blog/CommentView,guid,4d1a8e94-b87a-4be6-9169-9da4230cadbc.aspx</comments>
      <category>.NET;UserGroup</category>
    </item>
    <item>
      <trackback:ping>http://pageofwords.com/blog/Trackback.aspx?guid=fe4eecbd-ee10-4b5a-990f-0dc2a838b057</trackback:ping>
      <pingback:server>http://pageofwords.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://pageofwords.com/blog/PermaLink,guid,fe4eecbd-ee10-4b5a-990f-0dc2a838b057.aspx</pingback:target>
      <dc:creator>Kirk Jackson</dc:creator>
      <wfw:comment>http://pageofwords.com/blog/CommentView,guid,fe4eecbd-ee10-4b5a-990f-0dc2a838b057.aspx</wfw:comment>
      <wfw:commentRss>http://pageofwords.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=fe4eecbd-ee10-4b5a-990f-0dc2a838b057</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Today I went to Nelson for lunch, and presented on Caching to the <a href="http://www.dot.net.nz/UserGroupPages/NelsonNET.aspx">Nelson
.NET User Group</a>.
</p>
        <p>
The talk was a repeat of my <a href="http://pageofwords.com/blog/2009/05/18/CachingTheUserGroupPresentation.aspx">Wellington
and Auckland talk</a> from a few months ago, and covered various places you typically
cache data in a .NET app, motivating the discussion of memcached and Velocity.
</p>
        <p>
It was nice to get down to Nelson to briefly soak up the sun and meet a few new people.
</p>
        <p>
View my previous post on <a href="http://pageofwords.com/blog/2009/05/18/CachingTheUserGroupPresentation.aspx">Caching</a> for
further info.
</p>
        <p>
Thanks for having me <a href="http://www.fishofprey.com/">Daniel</a>!
</p>
        <p>
Kirk
</p>
        <img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=fe4eecbd-ee10-4b5a-990f-0dc2a838b057" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/pageofwords/~4/briLn0eEyXM" height="1" width="1" /></body>
      <title>Caching &amp;ndash; Nelson .NET User Group</title>
      <guid isPermaLink="false">http://pageofwords.com/blog/PermaLink,guid,fe4eecbd-ee10-4b5a-990f-0dc2a838b057.aspx</guid>
      <link>http://pageofwords.com/blog/2009/08/19/CachingNdashNelsonNETUserGroup.aspx</link>
      <pubDate>Wed, 19 Aug 2009 10:32:39 GMT</pubDate>
      <description>&lt;p&gt;
Today I went to Nelson for lunch, and presented on Caching to the &lt;a href="http://www.dot.net.nz/UserGroupPages/NelsonNET.aspx"&gt;Nelson
.NET User Group&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
The talk was a repeat of my &lt;a href="http://pageofwords.com/blog/2009/05/18/CachingTheUserGroupPresentation.aspx"&gt;Wellington
and Auckland talk&lt;/a&gt; from a few months ago, and covered various places you typically
cache data in a .NET app, motivating the discussion of memcached and Velocity.
&lt;/p&gt;
&lt;p&gt;
It was nice to get down to Nelson to briefly soak up the sun and meet a few new people.
&lt;/p&gt;
&lt;p&gt;
View my previous post on &lt;a href="http://pageofwords.com/blog/2009/05/18/CachingTheUserGroupPresentation.aspx"&gt;Caching&lt;/a&gt; for
further info.
&lt;/p&gt;
&lt;p&gt;
Thanks for having me &lt;a href="http://www.fishofprey.com/"&gt;Daniel&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=fe4eecbd-ee10-4b5a-990f-0dc2a838b057" /&gt;</description>
      <comments>http://pageofwords.com/blog/CommentView,guid,fe4eecbd-ee10-4b5a-990f-0dc2a838b057.aspx</comments>
      <category>.NET;UserGroup</category>
    </item>
    <item>
      <trackback:ping>http://pageofwords.com/blog/Trackback.aspx?guid=8a9c497f-d8e2-46a0-a839-881a3eb89caf</trackback:ping>
      <pingback:server>http://pageofwords.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://pageofwords.com/blog/PermaLink,guid,8a9c497f-d8e2-46a0-a839-881a3eb89caf.aspx</pingback:target>
      <dc:creator>Kirk Jackson</dc:creator>
      <wfw:comment>http://pageofwords.com/blog/CommentView,guid,8a9c497f-d8e2-46a0-a839-881a3eb89caf.aspx</wfw:comment>
      <wfw:commentRss>http://pageofwords.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=8a9c497f-d8e2-46a0-a839-881a3eb89caf</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
So this was a few weeks ago, but I thought I would post some notes here anyway.
</p>
        <p>
          <a href="http://www.nichesoftware.co.nz/">Bevan</a> gave a talk at the <a href="http://www.dot.net.nz/UserGroupPages/WellingtonNET.aspx">Wellington
.NET User Group</a> titled "Towards Supportability" (view his <a href="http://www.nichesoftware.co.nz/content/towards-supportability">slides
and notes</a>).
</p>
        <p>
Apart from marvelling at his good looking slides, the main thing I took away from
his talk was the points he made on documentation. Bevan gave an approach for document
systems for the person fighting the fire when all hell breaks loose. When a system
is broken, and people are all over the poor systems administrator to fix it, they
don't need thick architecture documents, they need something quick and actionable.
</p>
        <p>
The 'Supportability' document structure:
</p>
        <ul>
          <li>
Architecture - a summary of physical deployment</li>
          <li>
Symptoms - a list of failure modes that users might encounter</li>
          <li>
Actions - possible remedies</li>
          <li>
Procedures - step by step instructions for common procedures</li>
          <li>
Reference - additional reference material</li>
        </ul>
        <p>
The most important parts are the symptoms and actions - how to diagnose what's wrong
and how to recover from it.
</p>
        <p>
Cheers Bevan!
</p>
        <p>
Kirk
</p>
        <img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=8a9c497f-d8e2-46a0-a839-881a3eb89caf" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/pageofwords/~4/dyNvl8qnNdg" height="1" width="1" /></body>
      <title>Towards Supportability with Bevan Arps &amp;ndash; 5 Aug 09</title>
      <guid isPermaLink="false">http://pageofwords.com/blog/PermaLink,guid,8a9c497f-d8e2-46a0-a839-881a3eb89caf.aspx</guid>
      <link>http://pageofwords.com/blog/2009/08/19/TowardsSupportabilityWithBevanArpsNdash5Aug09.aspx</link>
      <pubDate>Wed, 19 Aug 2009 10:24:05 GMT</pubDate>
      <description>&lt;p&gt;
So this was a few weeks ago, but I thought I would post some notes here anyway.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.nichesoftware.co.nz/"&gt;Bevan&lt;/a&gt; gave a talk at the &lt;a href="http://www.dot.net.nz/UserGroupPages/WellingtonNET.aspx"&gt;Wellington
.NET User Group&lt;/a&gt; titled "Towards Supportability" (view his &lt;a href="http://www.nichesoftware.co.nz/content/towards-supportability"&gt;slides
and notes&lt;/a&gt;).
&lt;/p&gt;
&lt;p&gt;
Apart from marvelling at his good looking slides, the main thing I took away from
his talk was the points he made on documentation. Bevan gave an approach for document
systems for the person fighting the fire when all hell breaks loose. When a system
is broken, and people are all over the poor systems administrator to fix it, they
don't need thick architecture documents, they need something quick and actionable.
&lt;/p&gt;
&lt;p&gt;
The 'Supportability' document structure:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Architecture - a summary of physical deployment&lt;/li&gt;
&lt;li&gt;
Symptoms - a list of failure modes that users might encounter&lt;/li&gt;
&lt;li&gt;
Actions - possible remedies&lt;/li&gt;
&lt;li&gt;
Procedures - step by step instructions for common procedures&lt;/li&gt;
&lt;li&gt;
Reference - additional reference material&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
The most important parts are the symptoms and actions - how to diagnose what's wrong
and how to recover from it.
&lt;/p&gt;
&lt;p&gt;
Cheers Bevan!
&lt;/p&gt;
&lt;p&gt;
Kirk
&lt;/p&gt;
&lt;img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=8a9c497f-d8e2-46a0-a839-881a3eb89caf" /&gt;</description>
      <comments>http://pageofwords.com/blog/CommentView,guid,8a9c497f-d8e2-46a0-a839-881a3eb89caf.aspx</comments>
      <category>UserGroup</category>
    </item>
    <item>
      <trackback:ping>http://pageofwords.com/blog/Trackback.aspx?guid=6c971616-9c79-4f94-9b65-12b272671f2a</trackback:ping>
      <pingback:server>http://pageofwords.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://pageofwords.com/blog/PermaLink,guid,6c971616-9c79-4f94-9b65-12b272671f2a.aspx</pingback:target>
      <dc:creator>Kirk Jackson</dc:creator>
      <wfw:comment>http://pageofwords.com/blog/CommentView,guid,6c971616-9c79-4f94-9b65-12b272671f2a.aspx</wfw:comment>
      <wfw:commentRss>http://pageofwords.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=6c971616-9c79-4f94-9b65-12b272671f2a</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
There's a lot of technology groups in Wellington. I decided to get together a list
of all of them so that we could see if we clash on our regular meeting days. Please
let me know if your group is missing, or the details need updating.
</p>
        <p>
Most of these groups run free events with the support of their sponsors!
</p>
        <p>
Form more info about geek events in Wellington, head over to <a href="http://wellington.geek.nz">wellington.geek.nz</a> or <a href="http://www.dot.net.nz/RegionPages/Wellington.aspx">dot.net.nz</a>.
</p>
        <p>
          <strong>Microsoft technology focussed:</strong>
        </p>
        <ul>
          <li>
            <a href="http://www.dot.net.nz/UserGroupPages/WellingtonNET.aspx">Wellington .NET
User Group</a>: First and Third Wednesday of the month 
</li>
          <li>
            <a href="http://wellington.sqlpass.org/">Wellington SQL</a>: Third Thursday of the
month 
</li>
          <li>
            <a href="http://www.sharepointusergroup.net.nz/wellington/">Wellington Sharepoint</a>:
Last Wednesday of the month 
</li>
          <li>
            <a href="http://dynamicsug.wordpress.com/">Wellington Dynamics</a>: No fixed day,
normally near the end of the month 
</li>
          <li>
            <a href="http://www.dot.net.nz/UserGroupPages/WellingtonInfrastructure.aspx">Wellington
Infrastructure</a>: Monday night, once every 2 months 
</li>
          <li>
            <a href="http://www.dot.net.nz/UserGroupPages/WellingtonSilverlight.aspx">Wellington
Silverlight</a>: Monthly</li>
          <li>
            <a href="http://www.dot.net.nz/UserGroupPages/WellingtonVSTS.aspx">Wellington Team
System</a>: Bi-monthly<br /></li>
        </ul>
        <p>
          <strong>Other technologies:</strong>
        </p>
        <ul>
          <li>
            <a href="%20http://www.olpcfriends.org">OLPC Friends in Testing</a>: Saturday mornings 
</li>
          <li>
            <a href="http://nzpug.org/MeetingsWellington">Wellington Python User Group</a>: Second
Thursday of the month 
</li>
          <li>
            <a href="http://groups.google.com/group/erlounge-wellington%20">Erlang Users Group</a>:
first Thursday of the month 
</li>
          <li>
            <a href="http://wellington.pm.org/">Wellington Perl Mongers</a>: second Tuesday of
the month 
</li>
          <li>
            <a href="http://groups.google.com/group/wcsug">Wellington Creative Suite User Group</a>:
First Tuesday of the month 
</li>
          <li>
            <a href="http://wellington.geek.nz/group/flex-user-group">Flex User Group</a>: Second
Wednesday of the month<br /></li>
          <li>
            <a href="http://jug.wellington.net.nz/">Wellington Java user group</a>: third Wednesday
of the month 
</li>
          <li>
            <a href="http://groups.google.com/group/WellRailed">WellRailed</a>
          </li>
          <li>
            <a href="http://php.meetup.com/346/">Wellington PHP Group</a>
          </li>
          <li>
            <a href="http://wellylug.org.nz/">WellyLUG Linux User Group</a>: Third Wednesday of
the month 
</li>
          <li>
            <a href="http://www.welmac.org.nz/">Wellington Macintosh Society</a>: Mondays 
</li>
          <li>
            <a href="http://www.agileprofessionals.net/">Wellington Agile Professionals Network</a>:
Mondays</li>
          <li>
            <a href="http://www.novell.com/communities/node/6239/coming-presentations">Wellington
Novell Users International</a>: Monthly<br /></li>
        </ul>
        <p>
          <strong>Technology 'agnostic':</strong>
        </p>
        <ul>
          <li>
            <a href="http://groups.google.com/group/wellington-geeks/">Wellington Geeks Lunch</a>:
Tuesday lunchtime 
</li>
          <li>
            <a href="http://www.up.org.nz">Unlimited Potential</a>: various days of the month 
</li>
          <li>
            <a href="http://www.ict.org.nz/">NZ ICT</a> - voice of industry 
</li>
          <li>
            <a href="http://www.morphological.geek.nz/blogs/permalink/43/69/viewpost.aspx">Wellington
Solution Architects Forum</a>: lunchtime 
</li>
          <li>
            <a href="http://www.meetup.com/wellingtonweb/">Wellington's Web Design &amp; Dev Meetup</a>
          </li>
          <li>
            <a href="http://wellington.thursdaynightcurry.com/">Thursday Night Curry</a>: Thursday
evenings 
</li>
          <li>
            <a href="http://www.isig.org.nz">Information Security Interest Group (ISIG)</a>: Last
Thursday of the month 
</li>
          <li>
            <a href="http://www.tcanz.org.nz/">Technical Communicators Association</a>: Last Monday
of the month 
</li>
          <li>
            <a href="http://www.nzcs.org.nz/about/sigs">Test Professionals Network</a>
          </li>
          <li>
            <a href="http://www.nzcs.org.nz/">NZ Computer Society</a>
          </li>
        </ul>
        <p>
Happy Geeking!
</p>
        <p>
Kirk
</p>
        <img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=6c971616-9c79-4f94-9b65-12b272671f2a" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/pageofwords/~4/HSoL-fk3M0g" height="1" width="1" /></body>
      <title>Technical User Groups in Wellington</title>
      <guid isPermaLink="false">http://pageofwords.com/blog/PermaLink,guid,6c971616-9c79-4f94-9b65-12b272671f2a.aspx</guid>
      <link>http://pageofwords.com/blog/2009/08/18/TechnicalUserGroupsInWellington.aspx</link>
      <pubDate>Tue, 18 Aug 2009 02:26:03 GMT</pubDate>
      <description>&lt;p&gt;
There's a lot of technology groups in Wellington. I decided to get together a list
of all of them so that we could see if we clash on our regular meeting days. Please
let me know if your group is missing, or the details need updating.
&lt;/p&gt;
&lt;p&gt;
Most of these groups run free events with the support of their sponsors!
&lt;/p&gt;
&lt;p&gt;
Form more info about geek events in Wellington, head over to &lt;a href="http://wellington.geek.nz"&gt;wellington.geek.nz&lt;/a&gt; or &lt;a href="http://www.dot.net.nz/RegionPages/Wellington.aspx"&gt;dot.net.nz&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Microsoft technology focussed:&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://www.dot.net.nz/UserGroupPages/WellingtonNET.aspx"&gt;Wellington .NET
User Group&lt;/a&gt;: First and Third Wednesday of the month 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://wellington.sqlpass.org/"&gt;Wellington SQL&lt;/a&gt;: Third Thursday of the
month 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.sharepointusergroup.net.nz/wellington/"&gt;Wellington Sharepoint&lt;/a&gt;:
Last Wednesday of the month 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://dynamicsug.wordpress.com/"&gt;Wellington Dynamics&lt;/a&gt;: No fixed day,
normally near the end of the month 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.dot.net.nz/UserGroupPages/WellingtonInfrastructure.aspx"&gt;Wellington
Infrastructure&lt;/a&gt;: Monday night, once every 2 months 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.dot.net.nz/UserGroupPages/WellingtonSilverlight.aspx"&gt;Wellington
Silverlight&lt;/a&gt;: Monthly&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.dot.net.nz/UserGroupPages/WellingtonVSTS.aspx"&gt;Wellington Team
System&lt;/a&gt;: Bi-monthly&lt;br&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;Other technologies:&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="%20http://www.olpcfriends.org"&gt;OLPC Friends in Testing&lt;/a&gt;: Saturday mornings 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://nzpug.org/MeetingsWellington"&gt;Wellington Python User Group&lt;/a&gt;: Second
Thursday of the month 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://groups.google.com/group/erlounge-wellington%20"&gt;Erlang Users Group&lt;/a&gt;:
first Thursday of the month 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://wellington.pm.org/"&gt;Wellington Perl Mongers&lt;/a&gt;: second Tuesday of
the month 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://groups.google.com/group/wcsug"&gt;Wellington Creative Suite User Group&lt;/a&gt;:
First Tuesday of the month 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://wellington.geek.nz/group/flex-user-group"&gt;Flex User Group&lt;/a&gt;: Second
Wednesday of the month&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://jug.wellington.net.nz/"&gt;Wellington Java user group&lt;/a&gt;: third Wednesday
of the month 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://groups.google.com/group/WellRailed"&gt;WellRailed&lt;/a&gt; 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://php.meetup.com/346/"&gt;Wellington PHP Group&lt;/a&gt; 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://wellylug.org.nz/"&gt;WellyLUG Linux User Group&lt;/a&gt;: Third Wednesday of
the month 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.welmac.org.nz/"&gt;Wellington Macintosh Society&lt;/a&gt;: Mondays 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.agileprofessionals.net/"&gt;Wellington Agile Professionals Network&lt;/a&gt;:
Mondays&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.novell.com/communities/node/6239/coming-presentations"&gt;Wellington
Novell Users International&lt;/a&gt;: Monthly&lt;br&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;Technology 'agnostic':&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://groups.google.com/group/wellington-geeks/"&gt;Wellington Geeks Lunch&lt;/a&gt;:
Tuesday lunchtime 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.up.org.nz"&gt;Unlimited Potential&lt;/a&gt;: various days of the month 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.ict.org.nz/"&gt;NZ ICT&lt;/a&gt; - voice of industry 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.morphological.geek.nz/blogs/permalink/43/69/viewpost.aspx"&gt;Wellington
Solution Architects Forum&lt;/a&gt;: lunchtime 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.meetup.com/wellingtonweb/"&gt;Wellington's Web Design &amp;amp; Dev Meetup&lt;/a&gt; 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://wellington.thursdaynightcurry.com/"&gt;Thursday Night Curry&lt;/a&gt;: Thursday
evenings 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.isig.org.nz"&gt;Information Security Interest Group (ISIG)&lt;/a&gt;: Last
Thursday of the month 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.tcanz.org.nz/"&gt;Technical Communicators Association&lt;/a&gt;: Last Monday
of the month 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.nzcs.org.nz/about/sigs"&gt;Test Professionals Network&lt;/a&gt; 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.nzcs.org.nz/"&gt;NZ Computer Society&lt;/a&gt; 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Happy Geeking!
&lt;/p&gt;
&lt;p&gt;
Kirk
&lt;/p&gt;
&lt;img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=6c971616-9c79-4f94-9b65-12b272671f2a" /&gt;</description>
      <comments>http://pageofwords.com/blog/CommentView,guid,6c971616-9c79-4f94-9b65-12b272671f2a.aspx</comments>
      <category>UserGroup</category>
    </item>
    <item>
      <trackback:ping>http://pageofwords.com/blog/Trackback.aspx?guid=1dfdcb1f-0e6c-4dbb-96db-eca4c96585aa</trackback:ping>
      <pingback:server>http://pageofwords.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://pageofwords.com/blog/PermaLink,guid,1dfdcb1f-0e6c-4dbb-96db-eca4c96585aa.aspx</pingback:target>
      <dc:creator>Kirk Jackson</dc:creator>
      <wfw:comment>http://pageofwords.com/blog/CommentView,guid,1dfdcb1f-0e6c-4dbb-96db-eca4c96585aa.aspx</wfw:comment>
      <wfw:commentRss>http://pageofwords.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=1dfdcb1f-0e6c-4dbb-96db-eca4c96585aa</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://twitter.com/storminwalker">Craig</a>, <a href="http://bgeek.net">Owen</a> and
I (all from <a href="http://www.xero.com">Xero</a>) went along to the Wellington <a href="http://www.summerofcode.co.nz/">Summer
of Code</a> session last night to demo Visual Studio, the .NET runtime and ASP.NET
MVC to 30-ish eager and willing University Students.
</p>
        <p>
It was an interesting time. <a href="http://allfields.co.nz/">Allfields</a> hosted
us in a couple of their training rooms, which was pretty cool as the students got
to follow along using their own copies of <a href="http://www.microsoft.com/express/vwd/">Visual
Web Developer</a>. The Allfields facility is pretty good - each room had about 20
PCs for students to use, and the guys there set up a video link between the two rooms.
</p>
        <p>
Students: If you're got .NET questions, be sure to sign up to the <a href="http://www.dot.net.nz/GeneralPages/TempMailingLists.aspx">dot.net.nz
mailing lists.</a></p>
        <p>
I'm looking forward to meeting with the students again as the programme continues,
and hopefully work with one of them at <a href="http://www.xero.com">Xero</a>!
</p>
        <p>
Kirk
</p>
        <img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=1dfdcb1f-0e6c-4dbb-96db-eca4c96585aa" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/pageofwords/~4/YPztu65d6bw" height="1" width="1" /></body>
      <title>Summer of Code - .NET intro</title>
      <guid isPermaLink="false">http://pageofwords.com/blog/PermaLink,guid,1dfdcb1f-0e6c-4dbb-96db-eca4c96585aa.aspx</guid>
      <link>http://pageofwords.com/blog/2009/08/13/SummerOfCodeNETIntro.aspx</link>
      <pubDate>Thu, 13 Aug 2009 22:02:20 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://twitter.com/storminwalker"&gt;Craig&lt;/a&gt;, &lt;a href="http://bgeek.net"&gt;Owen&lt;/a&gt; and
I (all from &lt;a href="http://www.xero.com"&gt;Xero&lt;/a&gt;) went along to the Wellington &lt;a href="http://www.summerofcode.co.nz/"&gt;Summer
of Code&lt;/a&gt; session last night to demo Visual Studio, the .NET runtime and ASP.NET
MVC to 30-ish eager and willing University Students.
&lt;/p&gt;
&lt;p&gt;
It was an interesting time. &lt;a href="http://allfields.co.nz/"&gt;Allfields&lt;/a&gt; hosted
us in a couple of their training rooms, which was pretty cool as the students got
to follow along using their own copies of &lt;a href="http://www.microsoft.com/express/vwd/"&gt;Visual
Web Developer&lt;/a&gt;. The Allfields facility is pretty good - each room had about 20
PCs for students to use, and the guys there set up a video link between the two rooms.
&lt;/p&gt;
&lt;p&gt;
Students: If you're got .NET questions, be sure to sign up to the &lt;a href="http://www.dot.net.nz/GeneralPages/TempMailingLists.aspx"&gt;dot.net.nz
mailing lists.&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
I'm looking forward to meeting with the students again as the programme continues,
and hopefully work with one of them at &lt;a href="http://www.xero.com"&gt;Xero&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=1dfdcb1f-0e6c-4dbb-96db-eca4c96585aa" /&gt;</description>
      <comments>http://pageofwords.com/blog/CommentView,guid,1dfdcb1f-0e6c-4dbb-96db-eca4c96585aa.aspx</comments>
    </item>
    <item>
      <trackback:ping>http://pageofwords.com/blog/Trackback.aspx?guid=f1045b20-3987-4fe6-bd24-dcffcdbbd9d7</trackback:ping>
      <pingback:server>http://pageofwords.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://pageofwords.com/blog/PermaLink,guid,f1045b20-3987-4fe6-bd24-dcffcdbbd9d7.aspx</pingback:target>
      <dc:creator>Kirk Jackson</dc:creator>
      <wfw:comment>http://pageofwords.com/blog/CommentView,guid,f1045b20-3987-4fe6-bd24-dcffcdbbd9d7.aspx</wfw:comment>
      <wfw:commentRss>http://pageofwords.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=f1045b20-3987-4fe6-bd24-dcffcdbbd9d7</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
If you store, transmit or process credit card data, PCI applies.
</p>
        <p>
How can OWASP help you with PCI compliance?
</p>
        <p>
Credit card data:
</p>
        <ul>
          <li>
Primary Account Number (PAN): Can store it, but protection required.</li>
          <li>
Can never store the CVD 3 digit number or mag stripe</li>
        </ul>
        <p>
Card data attacks have been increasing in sophistication.
</p>
        <p>
PCI-DSS affects anyone who transmits, processes or stores payment card data. E.g.
merchants, service providers (e.g. Paymark, DPS).
</p>
        <p>
Look at <a href="https://www.pcisecuritystandards.org/security_standards/pci_dss.shtml">12
requirements of PCI-DSS</a> (firewalls, storage etc)
</p>
        <p>
          <strong>Protecting stored data:</strong>
        </p>
        <p>
You must not store sensitive authentication data. Principle: if you don't need it,
don't store it. Consider outsourcing, truncation, tokenisation.
</p>
        <p>
Tokenisation: Replace PAN with a unique identifier "token"
</p>
        <p>
Truncation: don't store all the data (e.g. first 4, last 4 digits)
</p>
        <p>
Encryption: Encrypt at point of capture, only decrypt when required, use industry
standard encryption, protect your keys.
</p>
        <p>
          <strong>Developing secure applications / Test app was built securely / <strong>Use
secure coding guidelines</strong>:</strong>
        </p>
        <p>
Standard OWASP guidelines
</p>
        <p>
          <strong>Annual risk assessment:</strong>
        </p>
        <p>
Every year, new threats will affect your site. Go and re-assess against the new threats.
</p>
        <p>
 
</p>
        <p>
Fixing legacy systems: make sure no old data is lying around.
</p>
        <p>
Real life example: it's very easy to mess up (example of reverting to old code)
</p>
        <p>
Parting thoughts: achieve, maintain and validate compliance. Secure development is
a key activity. OWASP is a good source. Reduce storage of PAN data.
</p>
        <img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=f1045b20-3987-4fe6-bd24-dcffcdbbd9d7" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/pageofwords/~4/uUX0jyb2WxQ" height="1" width="1" /></body>
      <title>OWASP NZ: PCI-DSS for OWASP Practitioners: Dean Carter, security-assessment.com</title>
      <guid isPermaLink="false">http://pageofwords.com/blog/PermaLink,guid,f1045b20-3987-4fe6-bd24-dcffcdbbd9d7.aspx</guid>
      <link>http://pageofwords.com/blog/2009/07/13/OWASPNZPCIDSSForOWASPPractitionersDeanCarterSecurityassessmentcom.aspx</link>
      <pubDate>Mon, 13 Jul 2009 03:46:55 GMT</pubDate>
      <description>&lt;p&gt;
If you store, transmit or process credit card data, PCI applies.
&lt;/p&gt;
&lt;p&gt;
How can OWASP help you with PCI compliance?
&lt;/p&gt;
&lt;p&gt;
Credit card data:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Primary Account Number (PAN): Can store it, but protection required.&lt;/li&gt;
&lt;li&gt;
Can never store the CVD 3 digit number or mag stripe&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Card data attacks have been increasing in sophistication.
&lt;/p&gt;
&lt;p&gt;
PCI-DSS affects anyone who transmits, processes or stores payment card data. E.g.
merchants, service providers (e.g. Paymark, DPS).
&lt;/p&gt;
&lt;p&gt;
Look at &lt;a href="https://www.pcisecuritystandards.org/security_standards/pci_dss.shtml"&gt;12
requirements of PCI-DSS&lt;/a&gt; (firewalls, storage etc)
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Protecting stored data:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
You must not store sensitive authentication data. Principle: if you don't need it,
don't store it. Consider outsourcing, truncation, tokenisation.
&lt;/p&gt;
&lt;p&gt;
Tokenisation: Replace PAN with a unique identifier "token"
&lt;/p&gt;
&lt;p&gt;
Truncation: don't store all the data (e.g. first 4, last 4 digits)
&lt;/p&gt;
&lt;p&gt;
Encryption: Encrypt at point of capture, only decrypt when required, use industry
standard encryption, protect your keys.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Developing secure applications / Test app was built securely / &lt;strong&gt;Use
secure coding guidelines&lt;/strong&gt;:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Standard OWASP guidelines
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Annual risk assessment:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Every year, new threats will affect your site. Go and re-assess against the new threats.
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
Fixing legacy systems: make sure no old data is lying around.
&lt;/p&gt;
&lt;p&gt;
Real life example: it's very easy to mess up (example of reverting to old code)
&lt;/p&gt;
&lt;p&gt;
Parting thoughts: achieve, maintain and validate compliance. Secure development is
a key activity. OWASP is a good source. Reduce storage of PAN data.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=f1045b20-3987-4fe6-bd24-dcffcdbbd9d7" /&gt;</description>
      <comments>http://pageofwords.com/blog/CommentView,guid,f1045b20-3987-4fe6-bd24-dcffcdbbd9d7.aspx</comments>
      <category>OWASP;Security;Web</category>
    </item>
    <item>
      <trackback:ping>http://pageofwords.com/blog/Trackback.aspx?guid=3f86c7a5-c70e-403b-a37e-4738592e3fe1</trackback:ping>
      <pingback:server>http://pageofwords.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://pageofwords.com/blog/PermaLink,guid,3f86c7a5-c70e-403b-a37e-4738592e3fe1.aspx</pingback:target>
      <dc:creator>Kirk Jackson</dc:creator>
      <wfw:comment>http://pageofwords.com/blog/CommentView,guid,3f86c7a5-c70e-403b-a37e-4738592e3fe1.aspx</wfw:comment>
      <wfw:commentRss>http://pageofwords.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=3f86c7a5-c70e-403b-a37e-4738592e3fe1</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Bug chaining - an idea that hasn't really propagated yet.
</p>
        <p>
How do we rate how severe a bug is? Consider how easy it is to exploit, where it is
accessible from (client-side, server-side, internet, local, mass exploitable, targeted
exploit, etc).
</p>
        <p>
Audience attempted to rate the severity of a couple of bugs:
</p>
        <ul>
          <li>
SQL injection on authenticated site -&gt; medium/high 
</li>
          <li>
File upload php files on authenticated site -&gt; high/critical 
</li>
          <li>
Local file disclosure -&gt; medium/high 
</li>
          <li>
XSS - reflective, authenticated -&gt; low/medium 
</li>
        </ul>
        <p>
Is attacker considered 'authenticated' once there is an XSS attack? Any subsequent
attacks can be treated as authenticated.
</p>
        <p>
When you join together the XSS bug with the file upload bug, then it's critical!
</p>
        <p>
Bug chaining: taking multiple bugs and chaining them together to create exploitable
vulnerabilities. Instead of looking at each individual bug, look at how they can be
combined together.
</p>
        <p>
There are now frameworks to help chain together exploits - and this is how a lot of
worms now work.
</p>
        <p>
Recent examples of chaining exploits: PHPMyAdmin &lt;= 3.1.3; SugarCRM &lt;= 5.2.0e
- compromise server through 3 bugs together.
</p>
        <p>
How to deal with this? CVSSv2:
</p>
        <ul>
          <li>
Common Vulnerability Scoring System v2.0 
</li>
          <li>
Scoring system for assessing bugs 
</li>
          <li>
Considers exploit complexity, application location, authentication, target likelihood
etc 
</li>
          <li>
Can be very complex, time consuming, difficult to follow 
</li>
        </ul>
        <p>
"You can explain this stuff all day, but when network admins actually see you do it,
that's when they understand" Brett Moore
</p>
        <p>
VtigerCRM - large open-source CRM system which fixed problems with a security patch,
but don't link to the fix (and haven't installed it themselves!).
</p>
        <p>
He wrote a BeEf module for VtigerCRM that can run as an auto-run module (took less
than 2 hours to write):
</p>
        <ul>
          <li>
Chains file upload and XSS bug to upload a malicious PHP script to start a command
shell</li>
          <li>
Connection is from <em>server</em> to the attackers machine, so user doesn't need
to stay connected</li>
        </ul>
        <p>
          <strong>Summary:</strong>
        </p>
        <p>
Don't look at severity of individual bugs - need to look at how bugs can be joined
together.
</p>
        <p>
          <em>Understand </em>the bugs.
</p>
        <p>
Follow the OWASP coding and testing guidelines.
</p>
        <p>
Tools:
</p>
        <ul>
          <li>
            <a href="http://www.bindshell.net/tools/beef/">BeEf</a> - command console for an attacker
to run script on the client computer. Modular list of exploits, and control multiple
victims. Autorun modules to automatically execute modules within 1.5-2 seconds.</li>
        </ul>
        <img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=3f86c7a5-c70e-403b-a37e-4738592e3fe1" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/pageofwords/~4/chrCq99axuQ" height="1" width="1" /></body>
      <title>OWASP NZ: Application Bug Chaining: Mark Piper, Catalyst IT</title>
      <guid isPermaLink="false">http://pageofwords.com/blog/PermaLink,guid,3f86c7a5-c70e-403b-a37e-4738592e3fe1.aspx</guid>
      <link>http://pageofwords.com/blog/2009/07/13/OWASPNZApplicationBugChainingMarkPiperCatalystIT.aspx</link>
      <pubDate>Mon, 13 Jul 2009 02:57:28 GMT</pubDate>
      <description>&lt;p&gt;
Bug chaining - an idea that hasn't really propagated yet.
&lt;/p&gt;
&lt;p&gt;
How do we rate how severe a bug is? Consider how easy it is to exploit, where it is
accessible from (client-side, server-side, internet, local, mass exploitable, targeted
exploit, etc).
&lt;/p&gt;
&lt;p&gt;
Audience attempted to rate the severity of a couple of bugs:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
SQL injection on authenticated site -&amp;gt; medium/high 
&lt;/li&gt;
&lt;li&gt;
File upload php files on authenticated site -&amp;gt; high/critical 
&lt;/li&gt;
&lt;li&gt;
Local file disclosure -&amp;gt; medium/high 
&lt;/li&gt;
&lt;li&gt;
XSS - reflective, authenticated -&amp;gt; low/medium 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Is attacker considered 'authenticated' once there is an XSS attack? Any subsequent
attacks can be treated as authenticated.
&lt;/p&gt;
&lt;p&gt;
When you join together the XSS bug with the file upload bug, then it's critical!
&lt;/p&gt;
&lt;p&gt;
Bug chaining: taking multiple bugs and chaining them together to create exploitable
vulnerabilities. Instead of looking at each individual bug, look at how they can be
combined together.
&lt;/p&gt;
&lt;p&gt;
There are now frameworks to help chain together exploits - and this is how a lot of
worms now work.
&lt;/p&gt;
&lt;p&gt;
Recent examples of chaining exploits: PHPMyAdmin &amp;lt;= 3.1.3; SugarCRM &amp;lt;= 5.2.0e
- compromise server through 3 bugs together.
&lt;/p&gt;
&lt;p&gt;
How to deal with this? CVSSv2:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Common Vulnerability Scoring System v2.0 
&lt;/li&gt;
&lt;li&gt;
Scoring system for assessing bugs 
&lt;/li&gt;
&lt;li&gt;
Considers exploit complexity, application location, authentication, target likelihood
etc 
&lt;/li&gt;
&lt;li&gt;
Can be very complex, time consuming, difficult to follow 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
"You can explain this stuff all day, but when network admins actually see you do it,
that's when they understand" Brett Moore
&lt;/p&gt;
&lt;p&gt;
VtigerCRM - large open-source CRM system which fixed problems with a security patch,
but don't link to the fix (and haven't installed it themselves!).
&lt;/p&gt;
&lt;p&gt;
He wrote a BeEf module for VtigerCRM that can run as an auto-run module (took less
than 2 hours to write):
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Chains file upload and XSS bug to upload a malicious PHP script to start a command
shell&lt;/li&gt;
&lt;li&gt;
Connection is from &lt;em&gt;server&lt;/em&gt; to the attackers machine, so user doesn't need
to stay connected&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;Summary:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Don't look at severity of individual bugs - need to look at how bugs can be joined
together.
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Understand &lt;/em&gt;the bugs.
&lt;/p&gt;
&lt;p&gt;
Follow the OWASP coding and testing guidelines.
&lt;/p&gt;
&lt;p&gt;
Tools:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://www.bindshell.net/tools/beef/"&gt;BeEf&lt;/a&gt; - command console for an attacker
to run script on the client computer. Modular list of exploits, and control multiple
victims. Autorun modules to automatically execute modules within 1.5-2 seconds.&lt;/li&gt;
&lt;/ul&gt;
&lt;img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=3f86c7a5-c70e-403b-a37e-4738592e3fe1" /&gt;</description>
      <comments>http://pageofwords.com/blog/CommentView,guid,3f86c7a5-c70e-403b-a37e-4738592e3fe1.aspx</comments>
      <category>OWASP;Security;Web</category>
    </item>
    <item>
      <trackback:ping>http://pageofwords.com/blog/Trackback.aspx?guid=d1f49c3b-5881-4efa-b142-652a5de9592e</trackback:ping>
      <pingback:server>http://pageofwords.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://pageofwords.com/blog/PermaLink,guid,d1f49c3b-5881-4efa-b142-652a5de9592e.aspx</pingback:target>
      <dc:creator>Kirk Jackson</dc:creator>
      <wfw:comment>http://pageofwords.com/blog/CommentView,guid,d1f49c3b-5881-4efa-b142-652a5de9592e.aspx</wfw:comment>
      <wfw:commentRss>http://pageofwords.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=d1f49c3b-5881-4efa-b142-652a5de9592e</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Firefox extensions: They're just software, like ActiveX. Extend, modify and control
the browser.
</p>
        <p>
Firefox extension points:
</p>
        <ul>
          <li>
XUL: XML user interface language</li>
          <li>
XBL: XML Binding Language - logical behaviour of widgets</li>
          <li>
XPCOM: Reusable components, interface to file system etc.</li>
          <li>
XPConnect: Allows Javascript to connect to XPCOM</li>
          <li>
Chrome: Special browser zone that is fully trusted by firefox - code is fully trusted,
has access to filesystem, user passwords etc.</li>
        </ul>
        <p>
Mozilla security extension model is non-existent. All extensions are fully trusted
by Firefox - no boundaries between extensions, they can modify each other without
the user knowing. Can be coded in C++ and subject to memory corruption etc.
</p>
        <p>
Extensions are very popular (billion downloads) and can be found everywhere - social
networks, search engines, software packages (skype, anti-virus), anti-phishing toolbars.
</p>
        <p>
Biggest problem is the human side of things - Addins.mozilla.org recommend extensions
and add a 'recommended' icon next to them. Extension source code isn't read by third
parties (<em>"It's not the linux kernel"</em>).
</p>
        <p>
There's no protection from an extension with a security problem, it will bypass any
other phishing / malware protection extensions.
</p>
        <p>
Extensions aren't signed (even the Mozilla ones), so we can't rely on people checking
signatures.
</p>
        <p>
If an extension is originally trusted, then subsequent updates won't go through the
same review process.
</p>
        <p>
No current guidelines for testing a Firefox extension, so security-assessement.com
havce come up with their own methodology (whitepaper to be released this year, early
next year):
</p>
        <ul>
          <li>
Isolated testing: Only test one extension at a time, on different OSes with different
Firefox versions.</li>
          <li>
Information gathering: How does the extension work, how is it installed? Look inside
the extension package (a zip file) and look for malicious files (e.g. .exe, .msi etc)</li>
          <li>
Look for XPInstall API functions that are dangerous (e.g. executing code on install)</li>
          <li>
Look for suspicious files in the extension folder (e.g. softlinks to other directories)</li>
          <li>
Look inside install.rdf - some tags can hide extensions so they don't appear in the
addon manager</li>
          <li>
Extensions can have the same description as other installed extensions, so two appear
in addon manager</li>
          <li>
Does the extension try to trick the user into thinking it's verified?</li>
          <li>
Look for pointers outside the extension, or flags that expose the extension object
or content to untrusted code (e.g. contentaccessible=yes or xpcnativewrappers=no)</li>
          <li>
Extensions can be merged into the firefox UI - e.g. top toolbar, bottom status bar.
They can also modify existing buttons e.g. Reload, Back, Forward or Home button.</li>
          <li>
Use the extension. Check the DOM of a test page with the extension loaded (they used
mozreply to do this)</li>
          <li>
Debugging: can set breakpoints using Javascript debugger.</li>
          <li>
Sandbox: can be sidestepped by replacing code inside the sandbox or evaluating it
from outside</li>
          <li>
XPCOM components: .dll or .so - compiled code that the extension may ship with, or
may use existing components on the machine. May need to review source code or decompile.
A bunch of components to watch out for.</li>
          <li>
wrappedJSObject: removes the protection of the XPComComponent, so they are avoiding
the firefox protection.</li>
          <li>
Watch out for callback functions, which may be replaced / modified</li>
          <li>
window.OpenDialog: Opens any URI with elevated chrome privileges</li>
          <li>
Auth: Some expose credentials in plain text, e.g. GET or basic auth</li>
          <li>
Auth: Some expose functionality via javascript that can side-step normal process</li>
          <li>
Skype extension - a javascript call that any web page can use to start dialing your
skype to any 
</li>
          <li>
XSS: Watch out for XSS issues - can execute in the chrome zone from DOM events, embedded
XSS, recursive iframes</li>
          <li>
XSS: Extensions loading external scripts</li>
        </ul>
        <p>
They have applied their methodology to different extensions, and some responses have
been slow or non-existent!
</p>
        <p>
Here are some extensions that were demoed and had problems. They are all common or
Mozilla recommended (all these have been fixed):
</p>
        <ul>
          <li>
FireFTP: Could include malicious code in the welcome method of an FTP server, and
the browser would execute it. Showed a proof of concept sending the contents of win.ini
to a different server, and using BeEf to control client.</li>
          <li>
CoolPreviews: Susceptible to XSS if a data:// URI is used. Showed a remote code execution
when right-clicking on a link and previewing it with CoolPreviews.</li>
          <li>
WizzRSS: HTML and Javascript in the &lt;description&gt; tag of RSS feeds is executed
in the chrome zone. Showed a reverse shell onto the Windows machine from a malicious
users machine.</li>
        </ul>
        <p>
Extension developers and vendors haven't got a security disclosure process yet - they
don't know how to deal with the issues yet. Some extensions don't even publish an
email address for the author.
</p>
        <p>
Tools:
</p>
        <ul>
          <li>
Firebug</li>
          <li>
MozRepl</li>
          <li>
            <a href="http://www.bindshell.net/tools/beef/">BeEf</a> - command console for an attacker
to run script on the client computer.</li>
        </ul>
        <img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=d1f49c3b-5881-4efa-b142-652a5de9592e" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/pageofwords/~4/bzpEr6xlaKg" height="1" width="1" /></body>
      <title>OWASP NZ: Exploiting Firefox Extensions: Roberto Suggi Liverani &amp;amp; Nick Freeman, Security-Assessment.com</title>
      <guid isPermaLink="false">http://pageofwords.com/blog/PermaLink,guid,d1f49c3b-5881-4efa-b142-652a5de9592e.aspx</guid>
      <link>http://pageofwords.com/blog/2009/07/13/OWASPNZExploitingFirefoxExtensionsRobertoSuggiLiveraniAmpNickFreemanSecurityAssessmentcom.aspx</link>
      <pubDate>Mon, 13 Jul 2009 02:19:53 GMT</pubDate>
      <description>&lt;p&gt;
Firefox extensions: They're just software, like ActiveX. Extend, modify and control
the browser.
&lt;/p&gt;
&lt;p&gt;
Firefox extension points:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
XUL: XML user interface language&lt;/li&gt;
&lt;li&gt;
XBL: XML Binding Language - logical behaviour of widgets&lt;/li&gt;
&lt;li&gt;
XPCOM: Reusable components, interface to file system etc.&lt;/li&gt;
&lt;li&gt;
XPConnect: Allows Javascript to connect to XPCOM&lt;/li&gt;
&lt;li&gt;
Chrome: Special browser zone that is fully trusted by firefox - code is fully trusted,
has access to filesystem, user passwords etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Mozilla security extension model is non-existent. All extensions are fully trusted
by Firefox - no boundaries between extensions, they can modify each other without
the user knowing. Can be coded in C++ and subject to memory corruption etc.
&lt;/p&gt;
&lt;p&gt;
Extensions are very popular (billion downloads) and can be found everywhere - social
networks, search engines, software packages (skype, anti-virus), anti-phishing toolbars.
&lt;/p&gt;
&lt;p&gt;
Biggest problem is the human side of things - Addins.mozilla.org recommend extensions
and add a 'recommended' icon next to them. Extension source code isn't read by third
parties (&lt;em&gt;"It's not the linux kernel"&lt;/em&gt;).
&lt;/p&gt;
&lt;p&gt;
There's no protection from an extension with a security problem, it will bypass any
other phishing / malware protection extensions.
&lt;/p&gt;
&lt;p&gt;
Extensions aren't signed (even the Mozilla ones), so we can't rely on people checking
signatures.
&lt;/p&gt;
&lt;p&gt;
If an extension is originally trusted, then subsequent updates won't go through the
same review process.
&lt;/p&gt;
&lt;p&gt;
No current guidelines for testing a Firefox extension, so security-assessement.com
havce come up with their own methodology (whitepaper to be released this year, early
next year):
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Isolated testing: Only test one extension at a time, on different OSes with different
Firefox versions.&lt;/li&gt;
&lt;li&gt;
Information gathering: How does the extension work, how is it installed? Look inside
the extension package (a zip file) and look for malicious files (e.g. .exe, .msi etc)&lt;/li&gt;
&lt;li&gt;
Look for XPInstall API functions that are dangerous (e.g. executing code on install)&lt;/li&gt;
&lt;li&gt;
Look for suspicious files in the extension folder (e.g. softlinks to other directories)&lt;/li&gt;
&lt;li&gt;
Look inside install.rdf - some tags can hide extensions so they don't appear in the
addon manager&lt;/li&gt;
&lt;li&gt;
Extensions can have the same description as other installed extensions, so two appear
in addon manager&lt;/li&gt;
&lt;li&gt;
Does the extension try to trick the user into thinking it's verified?&lt;/li&gt;
&lt;li&gt;
Look for pointers outside the extension, or flags that expose the extension object
or content to untrusted code (e.g. contentaccessible=yes or xpcnativewrappers=no)&lt;/li&gt;
&lt;li&gt;
Extensions can be merged into the firefox UI - e.g. top toolbar, bottom status bar.
They can also modify existing buttons e.g. Reload, Back, Forward or Home button.&lt;/li&gt;
&lt;li&gt;
Use the extension. Check the DOM of a test page with the extension loaded (they used
mozreply to do this)&lt;/li&gt;
&lt;li&gt;
Debugging: can set breakpoints using Javascript debugger.&lt;/li&gt;
&lt;li&gt;
Sandbox: can be sidestepped by replacing code inside the sandbox or evaluating it
from outside&lt;/li&gt;
&lt;li&gt;
XPCOM components: .dll or .so - compiled code that the extension may ship with, or
may use existing components on the machine. May need to review source code or decompile.
A bunch of components to watch out for.&lt;/li&gt;
&lt;li&gt;
wrappedJSObject: removes the protection of the XPComComponent, so they are avoiding
the firefox protection.&lt;/li&gt;
&lt;li&gt;
Watch out for callback functions, which may be replaced / modified&lt;/li&gt;
&lt;li&gt;
window.OpenDialog: Opens any URI with elevated chrome privileges&lt;/li&gt;
&lt;li&gt;
Auth: Some expose credentials in plain text, e.g. GET or basic auth&lt;/li&gt;
&lt;li&gt;
Auth: Some expose functionality via javascript that can side-step normal process&lt;/li&gt;
&lt;li&gt;
Skype extension - a javascript call that any web page can use to start dialing your
skype to any 
&lt;/li&gt;
&lt;li&gt;
XSS: Watch out for XSS issues - can execute in the chrome zone from DOM events, embedded
XSS, recursive iframes&lt;/li&gt;
&lt;li&gt;
XSS: Extensions loading external scripts&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
They have applied their methodology to different extensions, and some responses have
been slow or non-existent!
&lt;/p&gt;
&lt;p&gt;
Here are some extensions that were demoed and had problems. They are all common or
Mozilla recommended (all these have been fixed):
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
FireFTP: Could include malicious code in the welcome method of an FTP server, and
the browser would execute it. Showed a proof of concept sending the contents of win.ini
to a different server, and using BeEf to control client.&lt;/li&gt;
&lt;li&gt;
CoolPreviews: Susceptible to XSS if a data:// URI is used. Showed a remote code execution
when right-clicking on a link and previewing it with CoolPreviews.&lt;/li&gt;
&lt;li&gt;
WizzRSS: HTML and Javascript in the &amp;lt;description&amp;gt; tag of RSS feeds is executed
in the chrome zone. Showed a reverse shell onto the Windows machine from a malicious
users machine.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Extension developers and vendors haven't got a security disclosure process yet - they
don't know how to deal with the issues yet. Some extensions don't even publish an
email address for the author.
&lt;/p&gt;
&lt;p&gt;
Tools:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Firebug&lt;/li&gt;
&lt;li&gt;
MozRepl&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.bindshell.net/tools/beef/"&gt;BeEf&lt;/a&gt; - command console for an attacker
to run script on the client computer.&lt;/li&gt;
&lt;/ul&gt;
&lt;img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=d1f49c3b-5881-4efa-b142-652a5de9592e" /&gt;</description>
      <comments>http://pageofwords.com/blog/CommentView,guid,d1f49c3b-5881-4efa-b142-652a5de9592e.aspx</comments>
      <category>OWASP;Security;Web</category>
    </item>
  </channel>
</rss>
