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

<channel>
	<title>Zabreznik.net</title>
	<atom:link href="http://zabreznik.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://zabreznik.net</link>
	<description>Marko&#039;s Stash</description>
	<lastBuildDate>Wed, 20 Feb 2013 15:17:15 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>Coverage.py with PyScripter (&amp; PythonPortable w/ PyPi)</title>
		<link>http://zabreznik.net/2012/11/03/use-coverage-py-with-pyscripter-and-pythonportable-with-pypi/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=use-coverage-py-with-pyscripter-and-pythonportable-with-pypi</link>
		<comments>http://zabreznik.net/2012/11/03/use-coverage-py-with-pyscripter-and-pythonportable-with-pypi/#comments</comments>
		<pubDate>Sat, 03 Nov 2012 14:07:18 +0000</pubDate>
		<dc:creator>Marko Zabreznik</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[pypi]]></category>
		<category><![CDATA[pyscripter]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[udacity]]></category>

		<guid isPermaLink="false">http://zabreznik.net/?p=101</guid>
		<description><![CDATA[During my Udacity&#160;Class CS258 I was introduced to Coverage.py. You can read up on Code Coverage on Wikipedia&#160;but I would also recommend the free course on the subject via Udacity. To get Coverage.py running on your installation, the&#160;easiest way is using the console command easy_install. If you are using PythonPortable, you need to navigate to&#160;App\Scripts [...]]]></description>
				<content:encoded><![CDATA[<p>During my <a title="Udacity Online University" href="http://www.udacity.com/" target="_blank">Udacity</a>&nbsp;Class <abbr title="Software Testing Course (CS258)">CS258</abbr> I was introduced to <a title="Coverage.py is a tool for measuring code coverage of Python programs." href="http://nedbatchelder.com/code/coverage/" target="_blank">Coverage.py</a>. You can read up on <a href="http://en.wikipedia.org/wiki/Code_coverage" target="_blank">Code Coverage on Wikipedia</a>&nbsp;but I would also recommend the free course on the subject via Udacity.</p>
<p>To get Coverage.py running on your installation, the&nbsp;easiest way is using the console command easy_install. If you are using <a href="http://www.portablepython.com/" target="_blank">PythonPortable</a>, you need to navigate to&nbsp;App\Scripts before executing the following command:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="sh" style="font-family:monospace;">easy_install coverage</pre></td></tr></table></div>

<p>Easy, wasn&#8217;t it?</p>
<p><a title="Python IDE" href="http://code.google.com/p/pyscripter/" target="_blank">PyScripter </a>is a neat IDE packaged with PythonPortable. It has a feature called External Tools (found under the menu Tools-&gt;Tools). To make a neat shortcut you can &#8220;Configure Tools..&#8221; under the same menu.</p>
<p>Here are two shortcuts, one for running coverage on one file, the other for constructing the HTML:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
</pre></td><td class="code"><pre class="ini" style="font-family:monospace;"><span style="color: #000066; font-weight:bold;"><span style="">&#91;</span>Tools\Tool11\ExternalTool<span style="">&#93;</span></span>
<span style="color: #000099;">Caption</span><span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;">Coverage</span>
<span style="color: #000099;">Description</span><span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;">http://nedbatchelder.com/code/coverage/</span>
<span style="color: #000099;">ApplicationName</span><span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;">$<span style="color: #000066; font-weight:bold;"><span style="">&#91;</span>PythonDir-Short<span style="">&#93;</span></span>Scripts\coverage.exe</span>
<span style="color: #000099;">Parameters</span><span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;">run $<span style="color: #000066; font-weight:bold;"><span style="">&#91;</span>ActiveDoc-Short<span style="">&#93;</span> $<span style="">&#91;</span>CmdLineArgs<span style="">&#93;</span></span></span>
<span style="color: #000099;">WorkingDirectory</span><span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;">$<span style="color: #000066; font-weight:bold;"><span style="">&#91;</span>ActiveDoc-Dir<span style="">&#93;</span></span></span>
<span style="color: #000099;">ShortCut</span><span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;">0</span>
<span style="color: #000099;">Context</span><span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;">tcActivePythonFile</span>
<span style="color: #000099;">SaveFiles</span><span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;">sfActive</span>
<span style="color: #000099;">ParseTraceback</span><span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;">TRUE</span>
<span style="color: #000099;">MessagesFormat</span><span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;">$<span style="color: #000066; font-weight:bold;"><span style="">&#91;</span>FileName<span style="">&#93;</span> $<span style="">&#91;</span>LineNumber<span style="">&#93;</span></span></span>
<span style="color: #000099;">ConsoleHidden</span><span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;">FALSE</span>
&nbsp;
<span style="color: #000066; font-weight:bold;"><span style="">&#91;</span>Tools\Tool12\ExternalTool<span style="">&#93;</span></span>
<span style="color: #000099;">Caption</span><span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;">Coverage HTML</span>
<span style="color: #000099;">Description</span><span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;">http://nedbatchelder.com/code/coverage/</span>
<span style="color: #000099;">ApplicationName</span><span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;">$<span style="color: #000066; font-weight:bold;"><span style="">&#91;</span>PythonDir-Short<span style="">&#93;</span></span>Scripts\coverage.exe</span>
<span style="color: #000099;">Parameters</span><span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;">html</span>
<span style="color: #000099;">WorkingDirectory</span><span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;">$<span style="color: #000066; font-weight:bold;"><span style="">&#91;</span>ActiveDoc-Dir<span style="">&#93;</span></span></span>
<span style="color: #000099;">ShortCut</span><span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;">0</span>
<span style="color: #000099;">Context</span><span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;">tcActiveFile</span>
<span style="color: #000099;">ParseTraceback</span><span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;">TRUE</span>
<span style="color: #000099;">MessagesFormat</span><span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;">$<span style="color: #000066; font-weight:bold;"><span style="">&#91;</span>FileName<span style="">&#93;</span> $<span style="">&#91;</span>LineNumber<span style="">&#93;</span></span></span>
<span style="color: #000099;">ConsoleHidden</span><span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;">FALSE</span></pre></td></tr></table></div>

<p>Just pasting this inside PyScripter.ini does require some additional fiddling, so I recommend just using the gui. The new commands will appear inside Tools->Tools. The generated HTML will be inside the scripts working directory.</p>
<p>Now go do some coverage testing!</p>
]]></content:encoded>
			<wfw:commentRss>http://zabreznik.net/2012/11/03/use-coverage-py-with-pyscripter-and-pythonportable-with-pypi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wise Timetable to iCalendar Converter in PHP</title>
		<link>http://zabreznik.net/2012/10/23/wise-timetable-to-icalendar-converter-in-php/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=wise-timetable-to-icalendar-converter-in-php</link>
		<comments>http://zabreznik.net/2012/10/23/wise-timetable-to-icalendar-converter-in-php/#comments</comments>
		<pubDate>Tue, 23 Oct 2012 10:07:17 +0000</pubDate>
		<dc:creator>Marko Zabreznik</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://zabreznik.net/?p=92</guid>
		<description><![CDATA[Wise Timetable is a software for scheduling used by many universities and schools. This gist https://gist.github.com/3937963 is a PHP script to parse the classes using the specified courses and convert them to a format most calendar software can read. Thus one can grab the schedule with eq. Google Calendar or any other web/desktop/mobile app.]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.wisetimetable.com/">Wise Timetable</a> is a software for scheduling used by many universities and schools.</p>
<p>This gist <a href="https://gist.github.com/3937963">https://gist.github.com/3937963</a> is a PHP script to parse the classes using the specified courses and convert them to a format most calendar software can read.</p>
<p>Thus one can grab the schedule with eq. Google Calendar or any other web/desktop/mobile app.</p>
]]></content:encoded>
			<wfw:commentRss>http://zabreznik.net/2012/10/23/wise-timetable-to-icalendar-converter-in-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Import and update a CSV file into MySQL the right way</title>
		<link>http://zabreznik.net/2012/10/19/import-and-update-a-csv-file-into-mysql-the-right-way/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=import-and-update-a-csv-file-into-mysql-the-right-way</link>
		<comments>http://zabreznik.net/2012/10/19/import-and-update-a-csv-file-into-mysql-the-right-way/#comments</comments>
		<pubDate>Fri, 19 Oct 2012 20:56:35 +0000</pubDate>
		<dc:creator>Marko Zabreznik</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://zabreznik.net/?p=68</guid>
		<description><![CDATA[Making a script to check, update and add a set of records to MySQL can be quite daunting. And even when done, the script will be slow.&#160;Luckily, there is a way to do this with a simple and fast SQL command. 1 2 3 4 5 6 7 8 9 10 LOAD DATA LOCAL INFILE [...]]]></description>
				<content:encoded><![CDATA[<p>Making a script to check, update and add a set of records to MySQL can be quite daunting. And even when done, the script will be slow.&nbsp;Luckily, there is a way to do this with a simple and fast SQL command.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
</pre></td><td class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">LOAD</span> <span style="color: #993333; font-weight: bold;">DATA</span> <span style="color: #993333; font-weight: bold;">LOCAL</span> <span style="color: #993333; font-weight: bold;">INFILE</span> <span style="color: #ff0000;">'/location/on/drive'</span> <span style="color: #808080; font-style: italic;">-- the location of the CSV</span>
<span style="color: #993333; font-weight: bold;">REPLACE</span> <span style="color: #993333; font-weight: bold;">INTO</span> <span style="color: #993333; font-weight: bold;">TABLE</span> mytable <span style="color: #808080; font-style: italic;">-- table to 'replace' in to</span>
<span style="color: #993333; font-weight: bold;">CHARACTER</span> <span style="color: #993333; font-weight: bold;">SET</span> charset_name <span style="color: #808080; font-style: italic;">-- the character set the CSV is in</span>
<span style="color: #993333; font-weight: bold;">FIELDS</span> <span style="color: #993333; font-weight: bold;">TERMINATED</span> <span style="color: #993333; font-weight: bold;">BY</span> <span style="color: #ff0000;">';'</span> <span style="color: #808080; font-style: italic;">-- character between fields</span>
<span style="color: #993333; font-weight: bold;">OPTIONALLY</span> <span style="color: #993333; font-weight: bold;">ENCLOSED</span> <span style="color: #993333; font-weight: bold;">BY</span> <span style="color: #ff0000;">'&quot;'</span> <span style="color: #808080; font-style: italic;">-- character to enclose fields</span>
<span style="color: #993333; font-weight: bold;">ESCAPED</span> <span style="color: #993333; font-weight: bold;">BY</span> <span style="color: #ff0000;">'&quot;'</span> <span style="color: #808080; font-style: italic;">-- excape character</span>
<span style="color: #993333; font-weight: bold;">LINES</span> <span style="color: #993333; font-weight: bold;">TERMINATED</span> <span style="color: #993333; font-weight: bold;">BY</span> <span style="color: #ff0000;">'<span style="color: #000099; font-weight: bold;">\n</span>'</span> <span style="color: #808080; font-style: italic;">-- end of line character</span>
<span style="color: #993333; font-weight: bold;">IGNORE</span> <span style="color: #cc66cc;">1</span> <span style="color: #993333; font-weight: bold;">LINES</span>; <span style="color: #808080; font-style: italic;">-- ignore n lines, useful if first line is a header</span>
<span style="color: #66cc66;">&#40;</span>id<span style="color: #66cc66;">,</span> name<span style="color: #66cc66;">,</span> location<span style="color: #66cc66;">,</span> @phonenumber<span style="color: #66cc66;">&#41;</span> <span style="color: #808080; font-style: italic;">-- fields, use @ to name a field that does not corespond to a existing column </span>
<span style="color: #993333; font-weight: bold;">SET</span> contact<span style="color: #66cc66;">=</span>CONCAT<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'Phone number: '</span><span style="color: #66cc66;">,</span>@phonenumber<span style="color: #66cc66;">&#41;</span> <span style="color: #808080; font-style: italic;">-- maybe use the new name to set a column value</span></pre></td></tr></table></div>

<p>The keyword LOCAL is used to specify, that the given file is relative to the client, from&nbsp;which&nbsp;the script was run, otherwise, the path relative to the server would be used.</p>
<p>REPLACE replaces the lines, that have a matching unique field. IGNORE ignores them.</p>
<p>Resources:</p>
<ul>
<li><a href="https://dev.mysql.com/doc/refman/5.0/en/load-data.html">https://dev.mysql.com/doc/refman/5.0/en/load-data.html</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://zabreznik.net/2012/10/19/import-and-update-a-csv-file-into-mysql-the-right-way/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ScreenSave 2.0.0</title>
		<link>http://zabreznik.net/2012/10/16/screensave-2-0-0/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=screensave-2-0-0</link>
		<comments>http://zabreznik.net/2012/10/16/screensave-2-0-0/#comments</comments>
		<pubDate>Tue, 16 Oct 2012 15:06:19 +0000</pubDate>
		<dc:creator>Marko Zabreznik</dc:creator>
				<category><![CDATA[ScreenSave]]></category>
		<category><![CDATA[Web Kiosk]]></category>

		<guid isPermaLink="false">http://zabreznik.net/?p=55</guid>
		<description><![CDATA[A new version of ScreenSave for Joomla! is out! Features: JavaScript completely redone in jQuery (thus Joomla! 3 support only) option to pick a image position style option to pick a animation opacity removed for now]]></description>
				<content:encoded><![CDATA[<p>A new version of ScreenSave for Joomla! is out!</p>
<p>Features:</p>
<ul>
<li>JavaScript completely redone in jQuery (thus Joomla! 3 support only)</li>
<li>option to pick a image position style</li>
<li>option to pick a animation</li>
<li>opacity removed for now</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://zabreznik.net/2012/10/16/screensave-2-0-0/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>FxKeyboard 2.4.1</title>
		<link>http://zabreznik.net/2012/10/15/fxkeyboard-2-4-1/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=fxkeyboard-2-4-1</link>
		<comments>http://zabreznik.net/2012/10/15/fxkeyboard-2-4-1/#comments</comments>
		<pubDate>Sun, 14 Oct 2012 22:17:20 +0000</pubDate>
		<dc:creator>Marko Zabreznik</dc:creator>
				<category><![CDATA[FxKeyboard]]></category>
		<category><![CDATA[Web Kiosk]]></category>

		<guid isPermaLink="false">http://zabreznik.net/?p=44</guid>
		<description><![CDATA[The latest of FxKeyboard, the virtual keyboard for Firefox has been released today. The changes from the last addons.mozilla.org release (2.2.1) are: new languages: it-IT, ru-RU new settings: ability to set font styles new api: ability to set fields that the keyboard ignores bugfixes]]></description>
				<content:encoded><![CDATA[<p>The latest of FxKeyboard, the virtual keyboard for Firefox has been released today.</p>
<p>The changes from the last addons.mozilla.org release (2.2.1) are:</p>
<ul>
<li>new languages: it-IT, ru-RU</li>
<li>new settings: ability to set font styles</li>
<li>new api: ability to set fields that the keyboard ignores</li>
<li>bugfixes</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://zabreznik.net/2012/10/15/fxkeyboard-2-4-1/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Gene Spafford on testing</title>
		<link>http://zabreznik.net/2012/10/14/gene-spafford-on-testing/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=gene-spafford-on-testing</link>
		<comments>http://zabreznik.net/2012/10/14/gene-spafford-on-testing/#comments</comments>
		<pubDate>Sun, 14 Oct 2012 21:04:19 +0000</pubDate>
		<dc:creator>Marko Zabreznik</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://zabreznik.net/?p=18</guid>
		<description><![CDATA[“The only system which is truly secure is one which is switched off and unplugged, locked in a titanium lined safe, buried in a concrete bunker, and is surrounded by nerve gas and very highly paid armed guards. Even then, I wouldn&#8217;t stake my life on it.”]]></description>
				<content:encoded><![CDATA[<blockquote><p>“The only system which is truly secure is one which is switched off and unplugged, locked in a titanium lined safe, buried in a concrete bunker, and is surrounded by nerve gas and very highly paid armed guards. Even then, I wouldn&#8217;t stake my life on it.” </p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://zabreznik.net/2012/10/14/gene-spafford-on-testing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Website Redesign</title>
		<link>http://zabreznik.net/2012/10/14/website-redesign/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=website-redesign</link>
		<comments>http://zabreznik.net/2012/10/14/website-redesign/#comments</comments>
		<pubDate>Sun, 14 Oct 2012 20:58:32 +0000</pubDate>
		<dc:creator>Marko Zabreznik</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://zabreznik.net/?p=15</guid>
		<description><![CDATA[There comes a time, in the life of any webpage, that a redesign is in order. Partly because my old blog RawDev.net was in need of a clean up and I really didn&#8217;t want to push that brand any more. This site will (hopefully) always be WordPress bleeding edge, starting with WordPress 3.5 and it&#8217;s default [...]]]></description>
				<content:encoded><![CDATA[<p>There comes a time, in the life of any webpage, that a redesign is in order. Partly because my old blog RawDev.net was in need of a clean up and I really didn&#8217;t want to push that brand any more.</p>
<p>This site will (hopefully) always be WordPress bleeding edge, starting with WordPress 3.5 and it&#8217;s default theme Twenty Twelve &#8211; to be released December 5th.</p>
<p>Just a bit of visual touches and voilà!</p>
]]></content:encoded>
			<wfw:commentRss>http://zabreznik.net/2012/10/14/website-redesign/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
