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

<channel>
	<title>untidy blog</title>
	<atom:link href="http://untidy.net/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://untidy.net/blog</link>
	<description>simon steele writes about stuff...</description>
	<pubDate>Wed, 09 Jul 2008 17:28:04 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>C# Automatic Properties can have Attributes</title>
		<link>http://untidy.net/blog/2008/06/05/c-automatic-properties-can-have-attributes/</link>
		<comments>http://untidy.net/blog/2008/06/05/c-automatic-properties-can-have-attributes/#comments</comments>
		<pubDate>Thu, 05 Jun 2008 10:19:02 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
		
		<category><![CDATA[dotnet]]></category>

		<guid isPermaLink="false">http://untidy.net/blog/?p=227</guid>
		<description><![CDATA[The MSDN documentation for Automatic Properties (a C# 3 language feature) states that attributes are not valid on automatic properties. This is not true, the following code compiles and works as expected:

public class Data
{
    [XmlAttribute]
    public int SomeNumber { get; set; }
}

class Program
{
    static void Main(string[] [...]]]></description>
			<content:encoded><![CDATA[<p>The MSDN documentation for <a href="http://msdn.microsoft.com/en-us/library/bb384054.aspx">Automatic Properties</a> (a C# 3 language feature) states that attributes are not valid on automatic properties. This is not true, the following code compiles and works as expected:</p>
<pre name="code" class="c#">
public class Data
{
    [XmlAttribute]
    public int SomeNumber { get; set; }
}

class Program
{
    static void Main(string[] args)
    {
        using (XmlWriter w = XmlWriter.Create(@&quot;c:\temp\test.xml&quot;))
        {
            XmlSerializer s = new XmlSerializer(typeof (Data));
            s.Serialize(w, new Data { SomeNumber = 5 });
        }
    }
}
</pre>
<p>Running this code results in an XML file looking roughly like this (I stripped some unneeded namespace declarations):</p>
<pre name="code" class="xml">
&lt; ?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;data SomeNumber=&quot;5&quot; /&gt;
</pre>
<p>SomeNumber is saved as an attribute, so the XmlAttribute attribute worked correctly.</p>
]]></content:encoded>
			<wfw:commentRss>http://untidy.net/blog/2008/06/05/c-automatic-properties-can-have-attributes/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Line Movement Commands with PyPN</title>
		<link>http://untidy.net/blog/2008/06/03/line-movement-commands-with-pypn/</link>
		<comments>http://untidy.net/blog/2008/06/03/line-movement-commands-with-pypn/#comments</comments>
		<pubDate>Tue, 03 Jun 2008 21:41:15 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
		
		<category><![CDATA[PN]]></category>

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

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

		<guid isPermaLink="false">http://untidy.net/blog/2008/06/03/line-movement-commands-with-pypn/</guid>
		<description><![CDATA[A bug on Google Code asked for an alternative to the built-in Transpose Lines command in Programmer&#8217;s Notepad, allowing a single command to move the current line up or down, allowing repeated use to shift a line through the current document.
To look at implementing this, I started with a python script - it&#8217;s so much [...]]]></description>
			<content:encoded><![CDATA[<p>A bug on Google Code asked for an alternative to the built-in Transpose Lines command in <a href="http://pnotepad.org/">Programmer&#8217;s Notepad</a>, allowing a single command to move the current line up or down, allowing repeated use to shift a line through the current document.</p>
<p>To look at implementing this, I started with a python script - it&#8217;s so much quicker than writing C++ code to add these commands and going through compile/test for every change.</p>
<p>Here&#8217;s how to add these commands as a couple of scripts (which of course can have keyboard shortcuts):</p>
<pre name="code" class="python">
import pn, scintilla, pypn.glue

@script(&quot;Move Line Up&quot;, &quot;Text&quot;)
def MoveLineUp():
	s = scintilla.Scintilla(pn.CurrentDoc())
	l = s.LineFromPosition(s.CurrentPos)
	if (l == 0):
		return

	s.BeginUndoAction()
	s.LineTranspose()
	s.LineUp()
	s.EndUndoAction()

@script(&quot;Move Line Down&quot;, &quot;Text&quot;)
def MoveLineDown():
	s = scintilla.Scintilla(pn.CurrentDoc())
	l = s.LineFromPosition(s.CurrentPos)
	if (l == (s.LineCount-1)):
		return

	s.BeginUndoAction()
	s.LineDown()
	s.LineTranspose()
	s.EndUndoAction()
</pre>
<p>Drop this in a file in your scripts directory to use it (remember you need PyPN installed), or wait for the next version of PN which has these commands built in.</p>
]]></content:encoded>
			<wfw:commentRss>http://untidy.net/blog/2008/06/03/line-movement-commands-with-pypn/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Implementing Notepad&#8217;s .LOG Feature with PyPN</title>
		<link>http://untidy.net/blog/2008/05/28/implementing-notepads-log-feature-with-pypn/</link>
		<comments>http://untidy.net/blog/2008/05/28/implementing-notepads-log-feature-with-pypn/#comments</comments>
		<pubDate>Wed, 28 May 2008 22:20:46 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
		
		<category><![CDATA[PN]]></category>

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

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

		<guid isPermaLink="false">http://untidy.net/blog/?p=225</guid>
		<description><![CDATA[Notepad has a little-known feature where if you start a file with .LOG then every time the file is loaded the current date and time will be appended to the end of the file - allowing you to use a simple text file as a sort of diary.
A feature request came in for this and, [...]]]></description>
			<content:encoded><![CDATA[<p>Notepad has a little-known feature where if you start a file with .LOG then every time the file is loaded the current date and time will be appended to the end of the file - allowing you to use a simple text file as a sort of diary.</p>
<p>A feature request came in for this and, pending a decision on whether to support it directly in <a href="http://pnotepad.org/">Programmer&#8217;s Notepad</a>, I decided to show how it could be implemented using the latest PyPN bits:</p>
<pre name="code" class="python">

import scintilla, pn, pypn.glue, time

oldDocLoad = pypn.glue.onDocLoad

def docLoad(doc):
    &quot;&quot;&quot; docLoad handler to implement notepad .LOG functionality&quot;&quot;&quot;

    # Get the edit component:
    s = scintilla.Scintilla(doc)

    # Get the first line:
    lineLength = s.LineLength(0)
    text = s.GetText(0, lineLength)

    # If we have .LOG then add a blank line and then the date and time
    if text == &quot;.LOG&quot;:
        timestr = &quot;\r\n\r\n&quot; + time.asctime(time.localtime()) + &quot;\r\n&quot;
        s.AppendText(len(timestr), timestr)

    # Jump to the end of the document
    s.DocumentEnd()

    oldDocLoad(doc)

pypn.glue.onDocLoad = docLoad
</pre>
<p>Just drop this code in a file called dotlog.py under Programmer&#8217;s Notepad\scripts and you&#8217;ll have the .LOG functionality. This all uses the very latest 2.0.9 unstable bits and the related PyPN build.</p>
]]></content:encoded>
			<wfw:commentRss>http://untidy.net/blog/2008/05/28/implementing-notepads-log-feature-with-pypn/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Microsoft Source Analysis Released</title>
		<link>http://untidy.net/blog/2008/05/28/microsoft-source-analysis-released/</link>
		<comments>http://untidy.net/blog/2008/05/28/microsoft-source-analysis-released/#comments</comments>
		<pubDate>Wed, 28 May 2008 14:26:34 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
		
		<category><![CDATA[dotnet]]></category>

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

		<guid isPermaLink="false">http://untidy.net/blog/2008/05/28/microsoft-source-analysis-released/</guid>
		<description><![CDATA[My team at work uses a fantastic Visual Studio add-in called Source Analysis to ensure consistency in our C# code formatting, commenting and organisation.
 
Source Analysis has now been released for the whole world to use, for free! The free download is available at the MSDN Code Gallery:
Source Analysis at Code Gallery
There&#8217;s also a blog [...]]]></description>
			<content:encoded><![CDATA[<p>My team at work uses a fantastic Visual Studio add-in called Source Analysis to ensure consistency in our C# code formatting, commenting and organisation.</p>
<p><a href="http://untidy.net/blog/wp-content/uploads/2008/05/sourceanalysis.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="262" alt="Microsoft Source Analysis" src="http://untidy.net/blog/wp-content/uploads/2008/05/sourceanalysis-thumb.png" width="404" border="0"/></a> </p>
<p>Source Analysis has now been released for the whole world to use, for free! The free download is available at the MSDN Code Gallery:</p>
<p><a href="http://code.msdn.microsoft.com/sourceanalysis">Source Analysis at Code Gallery</a></p>
<p>There&#8217;s also a blog here:</p>
<p><a href="http://blogs.msdn.com/sourceanalysis/">Source Analysis Blog</a></p>
]]></content:encoded>
			<wfw:commentRss>http://untidy.net/blog/2008/05/28/microsoft-source-analysis-released/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Damien Guard&#8217;s Envy Code R Font Updated</title>
		<link>http://untidy.net/blog/2008/05/28/damien-guards-envy-code-r-font-updated/</link>
		<comments>http://untidy.net/blog/2008/05/28/damien-guards-envy-code-r-font-updated/#comments</comments>
		<pubDate>Wed, 28 May 2008 14:18:50 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
		
		<category><![CDATA[PN]]></category>

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

		<guid isPermaLink="false">http://untidy.net/blog/2008/05/28/damien-guards-envy-code-r-font-updated/</guid>
		<description><![CDATA[Another update to Damien&#8217;s great coding font Envy Code R, now at preview 7. This time we get a bunch of hinting improvements (Damien paid big bucks for the software to do this, consider donating!) and improvements when the font is used with larger sizes. Envy Code R also contains all the box drawing characters [...]]]></description>
			<content:encoded><![CDATA[<p>Another update to Damien&#8217;s great coding font <a href="http://damieng.com/blog/2008/05/26/envy-code-r-preview-7-coding-font-released">Envy Code R</a>, now at preview 7. This time we get a bunch of hinting improvements (Damien paid big bucks for the software to do this, consider donating!) and improvements when the font is used with larger sizes. Envy Code R also contains all the box drawing characters so makes a good console font - Damien even includes a .reg file to set this up for you.</p>
<p>Here&#8217;s what it looks like editing some python code in <a href="http://pnotepad.org/">Programmer&#8217;s Notepad</a> <a href="http://untidy.net/blog/2008/05/28/programmers-notepad-2-09794-released/">2.0.9</a> with the Murky theme:</p>
<p><a href="http://untidy.net/blog/wp-content/uploads/2008/05/envycoder.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="470" alt="Envy Code R - preview #7" src="http://untidy.net/blog/wp-content/uploads/2008/05/envycoder-thumb.png" width="404" border="0"/></a> </p>
<p><a href="http://damieng.com/blog/2008/05/26/envy-code-r-preview-7-coding-font-released">Read more at Damien&#8217;s Blog</a></p>
]]></content:encoded>
			<wfw:commentRss>http://untidy.net/blog/2008/05/28/damien-guards-envy-code-r-font-updated/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Programmer&#8217;s Notepad 2 0.9.794 Released</title>
		<link>http://untidy.net/blog/2008/05/28/programmers-notepad-2-09794-released/</link>
		<comments>http://untidy.net/blog/2008/05/28/programmers-notepad-2-09794-released/#comments</comments>
		<pubDate>Wed, 28 May 2008 14:07:57 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
		
		<category><![CDATA[PN]]></category>

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

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

		<guid isPermaLink="false">http://untidy.net/blog/2008/05/28/programmers-notepad-2-09794-released/</guid>
		<description><![CDATA[It&#8217;s time for a second 0.9 unstable release, bringing a number of bug fixes and new features:

Automatic Update Check - at launch Programmer&#8217;s Notepad checks in the background whether there is an update available and shows you a message if there is one.
Vista open and save dialogs are now used throughout when you&#8217;re running Vista, [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s time for a second 0.9 unstable release, bringing a number of bug fixes and new features:</p>
<ul>
<li>Automatic Update Check - at launch <a href="http://pnotepad.org/">Programmer&#8217;s Notepad</a> checks in the background whether there is an update available and shows you a message if there is one.</li>
<li>Vista open and save dialogs are now used throughout when you&#8217;re running Vista, previous OS versions should be unaffected</li>
<li>Programmer&#8217;s Notepad is now marked as Vista-aware, meaning that reads and writes to Program Files and similar locations are no longer redirected to the Virtual Store.</li>
<li>Find in Files can now search all open files</li>
<li>PyPN update 0.9 fixes a couple of event handlers</li>
</ul>
<p>The update check is a very commonly requested feature. The system understands the difference between stable and unstable releases so most users will only ever see stable updates.</p>
<p>Currently there&#8217;s no UI option to enable unstable update checks (there will be!) but you can enable them for yourself by setting this registry value (assuming you&#8217;re using a default PN install):</p>
<p>Key: HKEY_CURRENT_USER\Software\Echo Software\PN2\General Settings<br />Value (REG_DWORD): CheckForUnstableUpdates = 1</p>
<p><a href="http://untidy.net/blog/wp-content/uploads/2008/05/209.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="330" alt="209" src="http://untidy.net/blog/wp-content/uploads/2008/05/209-thumb.png" width="484" border="0"/></a> </p>
<p><strong>What else is new in the 0.9 series?</strong></p>
<ol>
<li>File browser window</li>
<li>Open files window</li>
<li>New, far better regular expressions support (multiline is coming)</li>
<li>More colour schemes (I&#8217;m currently using ZenBurn) and the base styles adapt better with the colour schemes</li>
<li>New PyPN release with more event hooks</li>
<li>More Vista control styling dotted around (when running on Vista!)</li>
</ol>
<p><strong>Downloads</strong></p>
<p>Installer: <a href="http://pnotepad.googlecode.com/files/pn209794.exe">http://pnotepad.googlecode.com/files/pn209794.exe</a><br />Zip: <a href="http://pnotepad.googlecode.com/files/pn209794.zip">http://pnotepad.googlecode.com/files/pn209794.zip</a><br />Portable Zip: <a href="http://pnotepad.googlecode.com/files/portable-pn209794.zip">http://pnotepad.googlecode.com/files/portable-pn209794.zip</a><br />PyPN for Python 2.4: <a href="http://pnotepad.googlecode.com/files/pypn-0.9.794-py24.zip">http://pnotepad.googlecode.com/files/pypn-0.9.794-py24.zip</a><br />PyPN for Python 2.5: <a href="http://pnotepad.googlecode.com/files/pypn-0.9.794-py25.zip">http://pnotepad.googlecode.com/files/pypn-0.9.794-py25.zip</a></p>
]]></content:encoded>
			<wfw:commentRss>http://untidy.net/blog/2008/05/28/programmers-notepad-2-09794-released/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Online Help now using Dokuwiki</title>
		<link>http://untidy.net/blog/2008/04/28/online-help-now-using-dokuwiki/</link>
		<comments>http://untidy.net/blog/2008/04/28/online-help-now-using-dokuwiki/#comments</comments>
		<pubDate>Mon, 28 Apr 2008 21:27:11 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
		
		<category><![CDATA[PN]]></category>

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

		<guid isPermaLink="false">http://untidy.net/blog/2008/04/28/online-help-now-using-dokuwiki/</guid>
		<description><![CDATA[The Programmer&#8217;s Notepad Online Help was previously run using MoinMoin, a wiki engine developed using Python and one that I was fond of many years ago. As with everything else on the internet, the help website had begun to develop a lot of spam over the last couple of months, and it would seem that [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://pnotepad.org/docs/">Programmer&#8217;s Notepad Online Help</a> was previously run using <a href="http://moinmo.in/">MoinMoin</a>, a wiki engine developed using Python and one that I was fond of many years ago. As with everything else on the internet, the help website had begun to develop a lot of spam over the last couple of months, and it would seem that MoinMoin just wasn&#8217;t up to the job of helping me to fight that.</p>
<p>I had to resort to regularly shelling into the server to rm -rf the page directories manually, as the web UI had nothing useful for removing several days of spam. In addition, managing the user base was a massive pain. Here&#8217;s how not to implement user control UI:</p>
<ul>
<li>For every user operation, require the current user to switch into the user they wish to operate on (e.g. admin has to switch to be spammer)</li>
<li>Then and only then allow disabling of the spammer account</li>
<li>Once disabled, log the current user out rather than return them to their own account</li>
</ul>
<p>For each bad user, I had to login, switch users, disable account, and log in again. I am fairly sure that the spammers had a much easier job than me!</p>
<p>I stumbled across <a href="http://wiki.splitbrain.org/wiki:dokuwiki">Dokuwiki</a> while browsing, it looked much better maintained and cared for than MoinMoin, and much more feature-rich - the two features I was particularly looking for were <a href="http://docbook.org/">Docbook</a> export (provided via a plugin) and support for <a href="http://akismet.com/">Akismet</a> for spam catching. Akismet support was still not available from MoinMoin last I checked. Dokuwiki also has a much better look and feel than MoinMoin alongside including a reasonable web administration interface, and built-in support for syntax highlighting code.</p>
<p>The <a href="http://pnotepad.org/docs/">Online Help</a> site has now been transitioned to Dokuwiki, maybe now would be a good time for you to take a look and maybe contribute!</p>
]]></content:encoded>
			<wfw:commentRss>http://untidy.net/blog/2008/04/28/online-help-now-using-dokuwiki/feed/</wfw:commentRss>
		</item>
		<item>
		<title>pnotepad.org hacked</title>
		<link>http://untidy.net/blog/2008/04/26/pnotepadorg-hacked/</link>
		<comments>http://untidy.net/blog/2008/04/26/pnotepadorg-hacked/#comments</comments>
		<pubDate>Sat, 26 Apr 2008 20:09:02 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
		
		<category><![CDATA[PN]]></category>

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

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

		<guid isPermaLink="false">http://untidy.net/blog/2008/04/26/pnotepadorg-hacked/</guid>
		<description><![CDATA[
Who would want to hack my website?!

It would appear that hacking doesn&#8217;t always take the &#8220;This site 0WneD by L33t Hax0rs&#8221; form, and that Wordpress sites in particular are being targetted by Spam Injection hacks.
A few weeks ago I noticed that the ads on the front page of pnotepad.org were a little odd, lots of [...]]]></description>
			<content:encoded><![CDATA[<p>
<blockquote>Who would want to hack my website?!</p></blockquote>
</p>
<p>It would appear that hacking doesn&#8217;t always take the &#8220;This site 0WneD by L33t Hax0rs&#8221; form, and that <a href="http://wordpress.org/">Wordpress</a> sites in particular are being targetted by Spam Injection hacks.</p>
<p>A few weeks ago I noticed that the ads on the front page of pnotepad.org were a little odd, lots of drug adverts and nothing programming related. I didn&#8217;t really think much about it, however, and moved on to something else.</p>
<p>Yesterday I got a friendly tip-off e-mail (thanks Erik!) telling me that pnotepad.org was serving up adverts and links for various drugs and other unpleasantness. Weirdly, I couldn&#8217;t see the problem at all. A little bit of investigation showed that these ads were only showing up if you used Firefox (not Safari or IE), but sure enough they were there.</p>
<p>I spent the rest of yesterday evening undoing the work of the hacker, tying down various parts of the host system, upgrading Wordpress and re-doing the customisations used on the pnotepad.org site.</p>
<p>
<blockquote>It&#8217;ll never happen to me.</p></blockquote>
<p>I had put off upgrading Wordpress for a long time due to thinking I&#8217;d need to rework various customisations with the upgraded code, and not really knowing how much effort the upgrade would cost me. I learned a lesson there! The hacker got in via <a href="http://blog.kakkoi.net/wordpress/bluehost-hostmonster-ceo-blog-got-hacked/wordpress/how-to-removed-wordpress-net-in-spam-injection-infected-by-mike-jagger-goro-class-mailphp/">well-known</a> <a href="http://www.howardowens.com/2007/this-blog-was-hacked/">Wordpress</a> <a href="http://robertogaloppini.net/2007/12/12/wordpress-spam-injection-goro-hacked-my-blog/">hacks</a>. In the end, the pnotepad.org site didn&#8217;t work properly for a few hours - perhaps 10 at most (some while I slept). I wish I had just upgraded earlier.</p>
<p>If you run a Wordpress-based site or blog, make sure you are up-to-date! This means you may have to take some pains and use newer versions that you&#8217;re not fully sold on, but the alternative is you may end up with a hacked site. You may not even notice at first!</p>
<p>There are some useful pages on hardening your Wordpress install here:</p>
<ul>
<li><a href="http://codex.wordpress.org/Hardening_WordPress">Hardening Wordpress</a> at the Codex</li>
<li><a href="http://www.reaper-x.com/2007/09/01/hardening-wordpress-with-mod-rewrite-and-htaccess/">Using mod_rewrite and htaccess</a> to harden Wordpress</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://untidy.net/blog/2008/04/26/pnotepadorg-hacked/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Context-Sensitive Python Help</title>
		<link>http://untidy.net/blog/2008/04/24/context-sensitive-python-help/</link>
		<comments>http://untidy.net/blog/2008/04/24/context-sensitive-python-help/#comments</comments>
		<pubDate>Thu, 24 Apr 2008 22:10:24 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
		
		<category><![CDATA[PN]]></category>

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

		<guid isPermaLink="false">http://untidy.net/blog/2008/04/24/context-sensitive-python-help/</guid>
		<description><![CDATA[Over on the forums, Michel Claveau shows how he gets context-sensitive help for Python code in Programmer&#8217;s Notepad:

Check where your python help file is (e.g. c:\python25\doc\Python25.chm)
Install keyHH from http://www.keyworks.net/keyhh.htm 
Create a new tool in PN: &#160;&#160;&#160; - name: Python context Help &#160;&#160;&#160; - command: c:\windows\keyhh &#160;&#160;&#160; - parameters: -MyHelp -#klink &#8220;%w&#8221; c:\python25\doc\Python25.chm &#160;&#160;&#160; - shortcut: [...]]]></description>
			<content:encoded><![CDATA[<p>Over on the <a href="http://pnotepad.org/forums/">forums</a>, Michel Claveau shows how he gets context-sensitive help for Python code in Programmer&#8217;s Notepad:</p>
<ol>
<li>Check where your python help file is (e.g. c:\python25\doc\Python25.chm)</li>
<li>Install keyHH from <a href="http://www.keyworks.net/keyhh.htm">http://www.keyworks.net/keyhh.htm</a> </li>
<li>Create a new tool in PN: <br />&nbsp;&nbsp;&nbsp; - name: Python context Help <br />&nbsp;&nbsp;&nbsp; - command: c:\windows\keyhh <br />&nbsp;&nbsp;&nbsp; - parameters: -MyHelp -#klink &#8220;%w&#8221; c:\python25\doc\Python25.chm <br />&nbsp;&nbsp;&nbsp; - shortcut: F1 </li>
<li>Use it!</li>
</ol>
<p>Open a Python-source-file, click on the middle of a &#8220;strategic&#8221; word (examples: &#8220;time&#8221;, &#8220;sys&#8221;, &#8220;open&#8221;, etc.) or select the entire word, like &#8220;time.sleep&#8221;, and finally press [F1] and [Enter]</p>
<p>[<a href="http://pnotepad.org/forums/topic/384?replies=1">Forum Post</a>]</p>
]]></content:encoded>
			<wfw:commentRss>http://untidy.net/blog/2008/04/24/context-sensitive-python-help/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Programmer&#8217;s Notepad as WinSCP Editor</title>
		<link>http://untidy.net/blog/2008/04/16/pn-winscp-editor/</link>
		<comments>http://untidy.net/blog/2008/04/16/pn-winscp-editor/#comments</comments>
		<pubDate>Wed, 16 Apr 2008 08:47:34 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
		
		<category><![CDATA[PN]]></category>

		<guid isPermaLink="false">http://untidy.net/blog/?p=212</guid>
		<description><![CDATA[SteveJ shows how to use Programmer&#8217;s Notepad as the file editor with WinSCP
]]></description>
			<content:encoded><![CDATA[<p>SteveJ shows how to use <a href="http://blog.stefanjaeger.ch/2008/04/15/winscp/">Programmer&#8217;s Notepad as the file editor with WinSCP</a></p>
]]></content:encoded>
			<wfw:commentRss>http://untidy.net/blog/2008/04/16/pn-winscp-editor/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
