<?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>MattStypa.com</title>
	<atom:link href="http://mattstypa.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://mattstypa.com</link>
	<description></description>
	<lastBuildDate>Fri, 30 Sep 2011 00:13:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>auto DST for punBB 1.0 released</title>
		<link>http://mattstypa.com/2011/09/auto-dst-for-punbb1-0-released/</link>
		<comments>http://mattstypa.com/2011/09/auto-dst-for-punbb1-0-released/#comments</comments>
		<pubDate>Wed, 28 Sep 2011 21:47:58 +0000</pubDate>
		<dc:creator>Matt Stypa</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mattstypa.com/?p=350</guid>
		<description><![CDATA[pun Auto DST 1.0 has been released. This extension for punbb expands timezone selection and makes DST adjustment automatic. Head over to pun Auto DST page for more information.]]></description>
			<content:encoded><![CDATA[<p><img src="http://mattstypa.com/wp-content/uploads/2011/09/timezones_2001-300x149.jpg" alt="" title="timezones_2001" width="300" height="149" class="alignright size-medium wp-image-348" />pun Auto DST 1.0 has been released.</p>
<p>This extension for punbb expands timezone selection and makes DST adjustment automatic.</p>
<p>Head over to <a title="recaptcha-for-punbb" href="http://mattstypa.com/auto-dst-for-punbb/">pun Auto DST</a> page for more information.</p>
]]></content:encoded>
			<wfw:commentRss>http://mattstypa.com/2011/09/auto-dst-for-punbb1-0-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>reCAPTCHA for punBB 1.1 released</title>
		<link>http://mattstypa.com/2011/09/recaptcha-for-punb-1-1-released/</link>
		<comments>http://mattstypa.com/2011/09/recaptcha-for-punb-1-1-released/#comments</comments>
		<pubDate>Tue, 27 Sep 2011 03:31:35 +0000</pubDate>
		<dc:creator>Matt Stypa</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://mattstypa.com/?p=328</guid>
		<description><![CDATA[A small bug has been fixed. Head over to reCAPTCHA for punBB page for more information.]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-322" title="recaptcha-example" src="http://mattstypa.com/wp-content/uploads/2011/09/recaptcha-example.gif" alt="" width="314" height="125" />A small bug has been fixed.</p>
<p>Head over to <a title="recaptcha" href="http://mattstypa.com/recaptcha-for-punbb/">reCAPTCHA for punBB</a> page for more information.</p>
]]></content:encoded>
			<wfw:commentRss>http://mattstypa.com/2011/09/recaptcha-for-punb-1-1-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>reCAPTCHA for punBB 1.0.0 released</title>
		<link>http://mattstypa.com/2011/09/recaptcha-for-punb-1-0-0-released/</link>
		<comments>http://mattstypa.com/2011/09/recaptcha-for-punb-1-0-0-released/#comments</comments>
		<pubDate>Tue, 20 Sep 2011 23:38:24 +0000</pubDate>
		<dc:creator>Matt Stypa</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://mattstypa.com/?p=320</guid>
		<description><![CDATA[reCAPTCHA for punBB 1.0.0 has been released. This extension for punBB integrates google's reCAPTCHA system to minimize spam on the forum. Head over to reCAPTCHA for punBB page for more information.]]></description>
			<content:encoded><![CDATA[<p><img src="http://mattstypa.com/wp-content/uploads/2011/09/recaptcha-example.gif" alt="" title="recaptcha-example" width="314" height="125" class="alignright size-full wp-image-322" />reCAPTCHA for punBB 1.0.0 has been released.</p>
<p>This extension for punBB integrates google's reCAPTCHA system to minimize spam on the forum.</p>
<p>Head over to <a title="recaptcha" href="http://mattstypa.com/recaptcha-for-punbb/">reCAPTCHA for punBB</a> page for more information.</p>
]]></content:encoded>
			<wfw:commentRss>http://mattstypa.com/2011/09/recaptcha-for-punb-1-0-0-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Task scheduler permission management</title>
		<link>http://mattstypa.com/2011/03/task-scheduler-permission-management/</link>
		<comments>http://mattstypa.com/2011/03/task-scheduler-permission-management/#comments</comments>
		<pubDate>Thu, 10 Mar 2011 01:13:56 +0000</pubDate>
		<dc:creator>Matt Stypa</dc:creator>
				<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://mattstypa.com/?p=274</guid>
		<description><![CDATA[Few days ago I needed to grant task scheduler permission to non-admin user and I quickly realized that it will not be as easy as one might think. The problem is that by default only admins have access to task scheduler and windows does not provide an easy way to grant this right to members [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-279" title="Windows Logo" src="http://mattstypa.com/wp-content/uploads/2011/03/windows_7_300x300.jpg" alt="" width="300" height="300" />Few days ago I needed to grant task scheduler permission to non-admin user and I quickly realized that it will not be as easy as one might think. The problem is that by default only admins have access to task scheduler and windows does not provide an easy way to grant this right to members of other groups. Turns out that access is controlled by file level permissions to c:\windows\tasks. However this folder is treated differently the the rest of your folders and you can't simply right click and change security options. Fortunately it works just fine when command prompt is used.  I created a new local group called Task Admins and added all users that required access to task scheduler. Then i ran this command.</p>
<pre class="brush: plain; title: ;">Windows XP:
cacls c:\windows\tasks /t /e /g &quot;task admins&quot;:f</pre>
<pre class="brush: plain; title: ;">Windows 7:
icacls c:\windows\tasks /t /grant &quot;task admins&quot;:f</pre>
<p></span></p>
<pre id="ctl00_MTCS_main_ctl04_code"><span style="text-decoration: underline; color: #ff0000;"><strong>Warning</strong></span>: Do not omit /e on windows XP or you will wipe the existing permissions.</pre>
]]></content:encoded>
			<wfw:commentRss>http://mattstypa.com/2011/03/task-scheduler-permission-management/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OWA Dump</title>
		<link>http://mattstypa.com/2011/01/owa-dump/</link>
		<comments>http://mattstypa.com/2011/01/owa-dump/#comments</comments>
		<pubDate>Fri, 14 Jan 2011 02:22:31 +0000</pubDate>
		<dc:creator>Matt Stypa</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://mattstypa.com/?p=262</guid>
		<description><![CDATA[I always try to find a way to make my work more convenient. Recently my company decided to drop all employee blackberries and instead to provide us with allowance for our own phones. Everything would be great if not this one little problem with that. I get a lot of alerts and status updates on [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-94" title="Code" src="http://mattstypa.com/wp-content/uploads/2010/06/code.jpg" alt="code" width="300" height="225" />I always try to find a way to make my work more convenient. Recently my company decided to drop all employee blackberries and instead to provide us with allowance for our own phones. Everything would be great if not this one little problem with that. I get a lot of alerts and status updates on my work email and by a lot i mean A LOT. I wanted to have an ability to quickly check my work email when I wanted, with minimal impact to my phone configuration and battery life. The trick is that the only way to do that is either through Exchange Server or through Outlook Web Access (OWA). I started analyzing my options and finally settled on something that could dump my email list to a file in the cloud that I can easily view from anywhere, when I want, and without inconvenient login system. Then I realized that dumping a text file to my dropbox would be the best option.</p>
<p>At this point I needed something that could read emails by connecting to Exchange Server or by parsing emails from OWA. Exchange Server route seemed too complicated for my needs so I started working on OWA parsing script. I decided to use VBScript due to easy IE automation. At the end I had a script dumping all my emails to a text file. I set that text file to sync with my dropbox and scheduled the script to run on a short interval. Problem solved.</p>
<p>Check out the script here: <a href="http://mattstypa.com/owa-dump/">http://mattstypa.com/owa-dump/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://mattstypa.com/2011/01/owa-dump/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Converting CSS colors to grayscale</title>
		<link>http://mattstypa.com/2011/01/converting-css-colors-to-grayscale/</link>
		<comments>http://mattstypa.com/2011/01/converting-css-colors-to-grayscale/#comments</comments>
		<pubDate>Thu, 06 Jan 2011 02:13:33 +0000</pubDate>
		<dc:creator>Matt Stypa</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://mattstypa.com/?p=237</guid>
		<description><![CDATA[Last week I was working on integrating punBB into my website and I ran into a small challenge. I needed to make punBB match my blog's color scheme. By default punBB looks like this: I started editing the CSS file and quickly realized that it is going to take much more time and effort that [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-medium wp-image-245" title="punbb" src="http://mattstypa.com/wp-content/uploads/2011/01/punbb-300x251.jpg" alt="" width="300" height="251" />Last week I was working on integrating punBB into my website and I ran into a small challenge. I needed to make punBB match my blog's color scheme. By default punBB looks like this:</p>
<p>I started editing the CSS file and quickly realized that it is going to take much more time and effort that I was willing to invest at that time. I started analyzing alternative solutions and quickly figured out that converting the default color scheme to grayscale would do the trick. I started looking online for a tool that could do such a thing. I didn't find anything but it didn't seem too hard to write a script that would change all the colors in a css file. Having absolutely no idea how to convert an RGB code from color to grayscale I setup my first experiment.</p>
<p>If RGB code describes intensity of red, green, and blue respectively, if I total the intensity values and then spread them evenly between red, green, and blue I should get gray of the same intensity as the base color. With that assumption in mind, I wrote the following VBScript code. I realize that it's dirty and could be written much better but I had 5 minutes to write it and it worked so don't wine.</p>
<pre class="brush: vb; title: ;">
'Setting up System File Object
Set objFSO = CreateObject(&quot;Scripting.FileSystemObject&quot;)
'Opening input css file. 1 = reading
Set inFile = objFSO.OpenTextFile(&quot;in.css&quot;, 1)
'Opening output css file. 2 = writing
Set outFile = objFSO.OpenTextFile(&quot;out.css&quot;, 2)

'Main loop
Do Until inFile.AtEndOfStream
	'Read a line from input file
	line = inFile.ReadLine
	'Find position of first &quot;#&quot;
	pos = InStr(line,&quot;#&quot;)
	'If &quot;#&quot; was found pos will be larger then 0. The reason this is a while loop is that &quot;#&quot; could occur more then once per line
	while pos &gt; 0
		'Checking if the &quot;#&quot; found could be a 3 digit color code
		if mid(line,pos+4,1)=&quot; &quot; or mid(line,pos+4,1)=&quot;;&quot; then
			'Converting rgb values to decimal from hex
			r = CInt(&quot;&amp;H&quot; &amp; mid(line,pos+1,1))
			b = CInt(&quot;&amp;H&quot; &amp; mid(line,pos+2,1))
			g = CInt(&quot;&amp;H&quot; &amp; mid(line,pos+3,1))
			'This is where the conversion to grayscale happens
			t = hex((r+b+g)/3)
			'Rebuilding the line with the new value
			line = mid(line,1,pos) &amp; t &amp; t &amp; t &amp; mid(line,pos+4)

		'Checking if the &quot;#&quot; found could be a 6 digit color code
		elseif mid(line,pos+7,1)=&quot; &quot; or mid(line,pos+7,1)=&quot;;&quot; then
			'Converting rgb values to decimal from hex
			r = CInt(&quot;&amp;H&quot; &amp; mid(line,pos+1,2))
			b = CInt(&quot;&amp;H&quot; &amp; mid(line,pos+3,2))
			g = CInt(&quot;&amp;H&quot; &amp; mid(line,pos+5,2))
			'This is where the conversion to grayscale happens
			t = hex((r+b+g)/3)
			'Making sure that t is two digits long and if not add &quot;0&quot; in front
			if t &lt; 2 then
				t = &quot;0&quot; &amp; t
			end if
			'Rebuilding the line with the new value
			line = mid(line,1,pos) &amp; t &amp; t &amp; t &amp; mid(line,pos+7)
		end if
		'Checking for another &quot;#&quot; on this line
		pos = InStr(pos+1,line,&quot;#&quot;)
	wend
	'Write to the output file
	outFile.WriteLine(line)
Loop
'Closing files
inFile.Close
outFile.Close
'Done
msgbox(&quot;Done&quot;)
</pre>
<p>Amazingly it worked like a charm so enjoy it.</p>
]]></content:encoded>
			<wfw:commentRss>http://mattstypa.com/2011/01/converting-css-colors-to-grayscale/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Batch Image Resizer 1.1 released</title>
		<link>http://mattstypa.com/2011/01/batch-image-resizer-1-1-released/</link>
		<comments>http://mattstypa.com/2011/01/batch-image-resizer-1-1-released/#comments</comments>
		<pubDate>Tue, 04 Jan 2011 04:30:43 +0000</pubDate>
		<dc:creator>Matt Stypa</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://mattstypa.com/?p=221</guid>
		<description><![CDATA[Batch Image Resizer 1.1 has been released. This program allows you to easily resize large amount of images. While extremely powerful it is also lightning fast and lightweight. Head over to Batch Image Resizer page for more information.]]></description>
			<content:encoded><![CDATA[<p>Batch Image Resizer 1.1 has been released.<img class="alignright size-medium wp-image-212" title="batch_image_resizer_ss1" src="http://mattstypa.com/wp-content/uploads/2011/01/batch_image_resizer_ss1-300x175.jpg" alt="" width="300" height="175" /></p>
<p>This program allows you to easily resize large amount of images. While  extremely powerful it is also lightning fast and lightweight.</p>
<p>Head over to <a href="http://mattstypa.com/resizer/" target="_self">Batch Image Resizer</a> page for more information.</p>
]]></content:encoded>
			<wfw:commentRss>http://mattstypa.com/2011/01/batch-image-resizer-1-1-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MBSA XML PARSER 1.0.0.0 released</title>
		<link>http://mattstypa.com/2010/11/mbsa-xml-parser-1-0-0-0-released/</link>
		<comments>http://mattstypa.com/2010/11/mbsa-xml-parser-1-0-0-0-released/#comments</comments>
		<pubDate>Wed, 03 Nov 2010 22:53:03 +0000</pubDate>
		<dc:creator>Matt Stypa</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://mattstypa.com/?p=155</guid>
		<description><![CDATA[MBSA XML PARSER 1.0.0.0 has been released. This program helps with identification of missing Windows updates by parsing Microsoft Baseline Security Adviser(MBSA) XML report file. It has been specifically designed to analyze output of mbsacli.exe /xmlout. Head over to MBSA XML PARSER page for more information.]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-medium wp-image-145" title="mbsa xml parser" src="http://mattstypa.com/wp-content/uploads/2010/11/mbsa-300x200.jpg" alt="" width="300" height="200" />MBSA XML PARSER 1.0.0.0 has been released.</p>
<p>This program helps with identification of missing Windows updates by parsing Microsoft Baseline Security Adviser(MBSA) XML report file. It has been specifically designed to analyze output of mbsacli.exe /xmlout.</p>
<p>Head over to <a href="http://mattstypa.com/mbsa/" target="_self">MBSA XML PARSER</a> page for more information.</p>
]]></content:encoded>
			<wfw:commentRss>http://mattstypa.com/2010/11/mbsa-xml-parser-1-0-0-0-released/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
		<item>
		<title>Using MBSACLI.EXE</title>
		<link>http://mattstypa.com/2010/11/using-mbsacli-exe/</link>
		<comments>http://mattstypa.com/2010/11/using-mbsacli-exe/#comments</comments>
		<pubDate>Mon, 01 Nov 2010 22:33:08 +0000</pubDate>
		<dc:creator>Matt Stypa</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://mattstypa.com/?p=129</guid>
		<description><![CDATA[MBSACLI.EXE is a command line tool that allows you to scan a computer for missing Microsoft updates. It's extremely useful when you have a lot of computers to check. Unlike MBSA (Microsoft Baseline Security Advisor), it does not need to be installed on your target computer. Here's how to use MBSACLI.EXE There are two files [...]]]></description>
			<content:encoded><![CDATA[<p><em><img class="alignright size-full wp-image-132" title="Windows Update Icon" src="http://mattstypa.com/wp-content/uploads/2010/11/20080527012145Windows_update_icon.png" alt="" width="267" height="275" />MBSACLI.EXE</em> is a command line tool that allows you to scan a computer for missing Microsoft updates. It's extremely useful when you have a lot of computers to check. Unlike MBSA (Microsoft Baseline Security Advisor), it does not need to be installed on your target computer. Here's how to use <em>MBSACLI.EXE</em></p>
<p>There are two files that you need to get from MBSA. <em>MBSACLI.EXE</em> and <em>WUSSCAN.DLL</em>. You can either copy them from a computer that has a full version of MBSA installed or extract them from the installation file.</p>
<p>Either way you need to download MBSA first. You can do so at the following URL:<br />
<a href="http://www.microsoft.com/downloads/en/details.aspx?displaylang=en&amp;FamilyID=02be8aee-a3b6-4d94-b1c9-4b1989e0900c" target="_blank"> http://www.microsoft.com/downloads/en/details.aspx?displaylang=en&amp;FamilyID=02be8aee-a3b6-4d94-b1c9-4b1989e0900c</a></p>
<p>If you have decided to install MBSA go ahead and execute the file you have downloaded and follow the instructions. If you have installed MBSA to the default directory, navigate to <em>C:\Program Files\Microsoft Baseline Security Analyzer 2\</em> and copy <em>MBSACLI.EXE</em> and <em>WUSSCAN.DLL </em>somewhere else.</p>
<p>If you don't want to install MBSA you can extract it using any good archiving software. One of the extracted files will be called <em>DATA.CAB</em>. You will need to extract that file once again. Inside you will find <em>MBSACLI.EXE</em> and <em>WUSSCAN.DLL</em> and just like before copy these files somewhere else.</p>
<p>There is one more file needed and it's called<em> WSUSSCN2.CAB</em>. This file contains information about all the updates available for Windows operating system. You can download this file from the following URL:<br />
<a href="http://go.microsoft.com/fwlink/?LinkId=76054" target="_blank"> http://go.microsoft.com/fwlink/?LinkId=76054</a></p>
<p>Save it to the directory you copied <em>MBSACLI.EXE</em> and <em>WUSSCAN.DLL</em> to.</p>
<p>At this point you are ready to scan your first computer. Copy the three files (<em>MBSACLI.EXE, WUSSCAN.DLL, </em>and<em> WSUSSCN2.CAB</em>) to the computer you would like to scan, and execute the following command on that computer:</p>
<pre class="brush: plain; title: ;">mbsacli /xmlout /catalog wsusscn2.cab &gt; results.xml</pre>
<p>If everything worked correctly you will now have a new file called <em>RESULTS.XML</em>. This file contains information about missing updates on the computer you have just scanned.</p>
<p>At this point you can use <a href="http://mattstypa.com/mbsa/" target="_self">MBSA XML PARSER</a> to "translate" <em>RESULTS.XML</em> into English.</p>
]]></content:encoded>
			<wfw:commentRss>http://mattstypa.com/2010/11/using-mbsacli-exe/feed/</wfw:commentRss>
		<slash:comments>32</slash:comments>
		</item>
		<item>
		<title>Tabs in TEXTAREA</title>
		<link>http://mattstypa.com/2010/06/tabs-in-textarea/</link>
		<comments>http://mattstypa.com/2010/06/tabs-in-textarea/#comments</comments>
		<pubDate>Tue, 29 Jun 2010 17:15:12 +0000</pubDate>
		<dc:creator>Matt Stypa</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://mattstypa.com/?p=39</guid>
		<description><![CDATA[I was working on a small personal project the other day and I ran into a surprising obstacle. I wanted an online form to behave just like notepad does. Specifically I wanted to use tabs in a textarea of a form. The shocking part was how scarce the information on the issue was and how [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-94" title="Code" src="http://mattstypa.com/wp-content/uploads/2010/06/code.jpg" alt="code" width="300" height="225" />I was working on a small personal project the other day and I ran into a surprising obstacle. I wanted an online form to behave just like notepad does. Specifically I wanted to use tabs in a textarea of a form. The shocking part was how scarce the information on the issue was and how bizarre some approaches were. I ended up writing my own JavaScript to handle this issue and realized that my code works so well that I need to put it out there for others to use. You can check it out in action <a href="http://mattstypa.com/other/tab.html" target="_blank">HERE</a>.</p>
<p>Tested with: IE6, IE7, IE8, FireFox, Chrome, Safari, and Opera</p>
<p>Here is the business end that goes into the "HEAD" section.</p>
<div style="clear: both;"></div>
<pre class="brush: jscript; title: ;">&lt;script type=&quot;text/javascript&quot;&gt;
	// This script allows intuitive TAB functionality in HTML form fields.
	// Due to browser incompatibilities the following code has to be included in the field tags:
	// onkeydown=&quot;checkTab(event)&quot;; onkeypress=&quot;operaTab(event)&quot;;
	// visit MattStypa.com for more information

	function checkTab(event)
	{
		// First we check if the key pressed was a tab
		if (event.keyCode == 9)
		{
			// Is this IE?
			if (navigator.appName == 'Microsoft Internet Explorer')
			{
				// This stops the default behavior of the tab key. preventDefault does not work in IE.
				event.returnValue = false;
				// This gets the current selection or cursor location
				range = document.selection.createRange();
				// Replaces the current selection with a tab character or simply inserts it at the current cursor position
				range.text = &quot;\t&quot;;
				// This resets the selection
				range.collapse(true);
				// And this executes above statement.
				range.select();
			}
			else
			{
				// This stops the default behavior of the tab key
				event.preventDefault();
				// We need to save the current position of the cursor.
				var c = event.target.selectionStart;
				// Inserting a tab into the string.
				// First we grab what comes before the current selection (or cursor position).
				// Then we add the tab character. Finally we add the part the comes after the
				// current selection (or cursor position).
				event.target.value = event.target.value.slice(0,event.target.selectionStart).concat(&quot;\t&quot;).concat(event.target.value.slice(event.target.selectionEnd,event.target.value.length));
				// This sets the cursor position.
				event.target.selectionStart = c + 1;
				// And this cancels selection. Opera requires that this is on a seperate line.
				event.target.selectionEnd = c + 1;
			}
		}
	}

	function operaTab(event)
	{
		if (navigator.appName == 'Opera' &amp;&amp; event.keyCode == 9)
		{
				// This stops the default behavior of the tab key
				// Opera is unable to do that when called from onkeydown
				event.preventDefault();
		}
	}
&lt;/script&gt; </pre>
<p>Also we need to map some events to the field.</p>
<pre class="brush: xml; title: ;">&lt;textarea onkeydown=&quot;checkTab(event)&quot;; onkeypress=&quot;operaTab(event)&quot;;&gt;&lt;/textarea&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://mattstypa.com/2010/06/tabs-in-textarea/feed/</wfw:commentRss>
		<slash:comments>93</slash:comments>
		</item>
		<item>
		<title>Switching to Chrome</title>
		<link>http://mattstypa.com/2010/03/switching-to-chrome/</link>
		<comments>http://mattstypa.com/2010/03/switching-to-chrome/#comments</comments>
		<pubDate>Fri, 26 Mar 2010 02:02:42 +0000</pubDate>
		<dc:creator>Matt Stypa</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://mattstypa.com/?p=26</guid>
		<description><![CDATA[I have been using Firefox since its first release back in 2004. It is an amazing browser. It's fast, it's secure, it has tons of add-ons and most of all it's open source. However, for some time now, I have been considering switching to Google Chrome. This browser has been shown to perform better then [...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-medium wp-image-25 alignright" title="google-chrome-logo" src="http://mattstypa.com/wp-content/uploads/2010/03/google-chrome-logo-300x214.jpg" alt="Google Chrome Logo" width="300" height="214" />I have been using Firefox since its first release back in 2004. It is an amazing browser. It's fast, it's secure, it has tons of add-ons and most of all it's open source. However, for some time now, I have been considering switching to Google Chrome. This browser has been shown to perform better then Firfox in numerous speed and compliance tests.</p>
<p>One of such tests is called <a href="http://en.wikipedia.org/wiki/Acid3" target="_blank">ACID3</a>, and it checks for browsers compliance with HTML, CSS, JavaScript etc. It's hard to believe that there are only 3 browsers for windows that pass this test, and it's beyond me how the newest, not even released yet, Internet Explorer 9 scored 55/100 while iPhone scored 100/100.</p>
<p>Compliance and Speed aside, I think that the most important feature of a browser is it's security. Fortunately there is a test for that as well, and it's called Pwn2Own. Actually it is a competition where experts try to compromise each browser. This year only Chrome remained un-hacked the first day. Of course it doesn't mean that it's 100% secure, it means that it is harder to brake then the rest. With that in mind I would strongly recommended that you consider switching as well.</p>
]]></content:encoded>
			<wfw:commentRss>http://mattstypa.com/2010/03/switching-to-chrome/feed/</wfw:commentRss>
		<slash:comments>33</slash:comments>
		</item>
		<item>
		<title>WordPress</title>
		<link>http://mattstypa.com/2010/03/wordpress/</link>
		<comments>http://mattstypa.com/2010/03/wordpress/#comments</comments>
		<pubDate>Sat, 20 Mar 2010 06:30:38 +0000</pubDate>
		<dc:creator>Matt Stypa</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://mattstypa.com/?p=20</guid>
		<description><![CDATA[It seems that writing about an amazing blogging system is quite appropriate for a first post on my, well, blog. The one I chose is called WordPress. At first I was skeptical about it and a visit to WordPress.com did not convince me to try it. I thought that it is just another hosted service [...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-medium wp-image-19 alignright" title="wordpress" src="http://mattstypa.com/wp-content/uploads/2010/03/wordpress-300x300.jpg" alt="wordpress logo" width="300" height="300" />It seems that writing about an amazing blogging system is quite appropriate for a first post on my, well, blog. The one I chose is called WordPress. At first I was skeptical about it and a visit to WordPress.com did not convince me to try it. I thought that it is just another hosted service such as Blogger. My good friend enlightened me and pointed to WordPress.org where I learned what it truly is. Essentially, WordPress is an Open-Source PHP script that, together with MySQL, provides every feature a blogger might desire.</p>
<p>I fell in love with this system right away. This truly is what I have been looking for. And I am not the only one to think that. WordPress is used by more then 200 million websites worldwide and is consistently gaining more supporters. You may ask, "What makes it so much better then anything else out there?" Lets take a look.</p>
<p>Besides the standard features you would find in other blogging system, WordPress has support for Themes and Plugins that expend its looks and functionality. One of the cool things about those is that they can be installed directly from the control panel. You don't need to upload any files through ftp anymore. On top of that WordPress is so flexible that it is also commonly used as CMS or even a photo gallery.</p>
<p>Multiple tags and categories can be assigned to your posts. Those in return are displayed in an appropriate widget and help visitors find related or other interesting topics on your blog. Widgets are like building blocks that can be placed, organized, and customized to fit your own needs. Some of these include  Archives, Links, Pages, and even a Tag Cloud.</p>
<p>WordPress also features an amazing Media Library that allows you to easily upload your images. It even has a simple image editor build right in. This whole thing is simply stunning.</p>
<p>P.S: Welcome to my Blog</p>
]]></content:encoded>
			<wfw:commentRss>http://mattstypa.com/2010/03/wordpress/feed/</wfw:commentRss>
		<slash:comments>27</slash:comments>
		</item>
	</channel>
</rss>

