<?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>dyadica.net &#187; C#</title>
	<atom:link href="http://blog.dyadica.net/archives/tags/c/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.dyadica.net</link>
	<description>Fun and Games in the Dyadic Sea</description>
	<lastBuildDate>Wed, 21 Jul 2010 14:04:27 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Creating an MSI Uninstall Program Shortcut</title>
		<link>http://blog.dyadica.net/archives/creating-an-msi-uninstall-program-shortcut</link>
		<comments>http://blog.dyadica.net/archives/creating-an-msi-uninstall-program-shortcut#comments</comments>
		<pubDate>Sun, 21 Jun 2009 15:12:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[installer]]></category>
		<category><![CDATA[MSI]]></category>
		<category><![CDATA[setup]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://blog.dyadica.net/?p=1979</guid>
		<description><![CDATA[As a general rule, Microsoft expect you to uninstall MSI applications from the Add/Remove Programs tool in the Control Panel.
Sometimes however, its nice to add a Start-&#62;Programs Menu &#8211; &#8216;Uninstall Shortcut&#8217; to facilitate this action, ...]]></description>
			<content:encoded><![CDATA[<p>As a general rule, Microsoft expect you to uninstall MSI applications from the Add/Remove Programs tool in the Control Panel.</p>
<p>Sometimes however, its nice to add a Start-&gt;Programs Menu &#8211; &#8216;Uninstall Shortcut&#8217; to facilitate this action, for user convenience.</p>
<p>The following post details adding such a shortcut to a simple MSI build in Visual Studio 2008.</p>
<p>Browse to the MSI project folder (using Windows Explorer), right click and select New-&gt;Shortcut from the context menu. In the Create Shortcut Wizard dialog that pops up type &#8216;%windir%\system32\msiexec.exe -x {prodCode} &#8216; as the location of the shortcut, where prodCode is the Product Code of the MSI package.</p>
<p><span class="twovid_left"><a href="http://blog.dyadica.net/wp-content/uploads/2009/06/create_shortcut_uninstaller.png"><img class="aligncenter size-full wp-image-1982" title="create_shortcut_uninstaller" src="http://blog.dyadica.net/wp-content/uploads/2009/06/create_shortcut_uninstaller.png" alt="create_shortcut_uninstaller" width="628" height="465" /></a></span><span class="twovid_right"><a href="http://blog.dyadica.net/wp-content/uploads/2009/06/product_code_uninstaller.png"><img class="aligncenter size-full wp-image-1983" title="product_code_uninstaller" src="http://blog.dyadica.net/wp-content/uploads/2009/06/product_code_uninstaller.png" alt="product_code_uninstaller" width="594" height="299" /></a></span></p>
<p>This Product Code can be identified from the Project Properties of the MSI Project in Visual Studio. Also, provide a proper name for the shortcut<span id="more-1979"></span> (such as Uninstall &#8220;product&#8221;, where &#8220;product&#8221; is the name of the application) and click Finish.</p>
<p>The next step involves adding this shortcut to the User&#8217;s Programs Menu folder of the MSI project in Visual Studio. The problem is that files with extension .lnk (extension of the shortcut) cannot be added to the Project.</p>
<p>First we need to rename the shortcut extension from .lnk to .txt. Open up a DOS command window and browse to the location of the shortcut using the &#8216;cd&#8217; command. Remember to Run as Administrator if you are using Vista!</p>
<p><span class="twovid_left"><a href="http://blog.dyadica.net/wp-content/uploads/2009/06/command_rename_uninstaller.png"><img class="aligncenter size-full wp-image-1989" title="command_rename_uninstaller" src="http://blog.dyadica.net/wp-content/uploads/2009/06/command_rename_uninstaller.png" alt="command_rename_uninstaller" width="837" height="424" /></a></span><span class="twovid_right"><a href="http://blog.dyadica.net/wp-content/uploads/2009/06/user_programs_uninstaller.png"><img class="aligncenter size-full wp-image-1991" title="user_programs_uninstaller" src="http://blog.dyadica.net/wp-content/uploads/2009/06/user_programs_uninstaller.png" alt="user_programs_uninstaller" width="651" height="563" /></a></span></p>
<p>Now type &#8216;ren uninstall.lnk uninstall.txt&#8217; where &#8220;uninstall&#8221; is the name of the shortcut item. Simply add the renamed shortcut into the User&#8217;s Programs Menu folder of the MSI project in the same manner as you would add any other file (Right Click &gt; Add &gt; File). Then in Visual studio Rename the shortcut from .txt back to .lnk and your done.</p>
<p>Build the MSI project and the necessary setup files will be created in the bin folder of the project. Once run the uninstall shortcut will appear in the program menu.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dyadica.net/archives/creating-an-msi-uninstall-program-shortcut/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creating a Transparent Control</title>
		<link>http://blog.dyadica.net/archives/creating-a-transparent-control</link>
		<comments>http://blog.dyadica.net/archives/creating-a-transparent-control#comments</comments>
		<pubDate>Wed, 11 Feb 2009 20:28:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Controls]]></category>
		<category><![CDATA[Transparent]]></category>
		<category><![CDATA[Windows Forms]]></category>

		<guid isPermaLink="false">http://blog.dyadica.net/?p=1850</guid>
		<description><![CDATA[Recently I have had to utilize transparent images within Panel(s) and PictureBox(s) for the wiindows app. 
However it seems that neither will not do true transparency because each clears it&#8217;s background using the Windows Forms ...]]></description>
			<content:encoded><![CDATA[<p>Recently I have had to utilize transparent images within Panel(s) and PictureBox(s) for the wiindows app. </p>
<p>However it seems that neither will not do true transparency because each clears it&#8217;s background using the Windows Forms transparency scheme, thus resulting in the background color of any parent elements being rendered. </p>
<p>All is not lost however as you can create a custom transparent control to host your image fairly easily. First of all you need to create a new component class.</p>
<p>Once this has been done just modify the code to reflect the following:<span id="more-1850"></span></p>
<blockquote><p><code>using System;<br />
using System.Drawing;<br />
using System.Collections;<br />
using System.ComponentModel;<br />
using System.Windows.Forms;<br />
using System.Data;</p>
<p>namespace wiindows.utilties // change to your own namespace or even make abstract<br />
{<br />
    public partial class trans_comp : Control<br />
    {<br />
        private readonly Timer update_me;<br />
        private Image _image;</p>
<p>        public trans_comp()<br />
        {<br />
            SetStyle(ControlStyles.SupportsTransparentBackColor, true);<br />
            BackColor = Color.Transparent;<br />
            update_me = new Timer();<br />
            update_me.Tick += TimerOnTick;<br />
            update_me.Interval = 200;<br />
            update_me.Enabled = true;<br />
            update_me.Start();<br />
        }</p>
<p>        protected override CreateParams CreateParams<br />
        {<br />
            get<br />
            {<br />
                CreateParams cp = base.CreateParams;<br />
                cp.ExStyle |= 0x20;<br />
                return cp;<br />
            }<br />
        }</p>
<p>        protected override void OnMove(EventArgs e)<br />
        {<br />
            RecreateHandle();<br />
        }</p>
<p>        protected override void OnPaint(PaintEventArgs e)<br />
        {<br />
            if (_image != null)<br />
            {<br />
                RectangleF rect = new RectangleF(0, 0, this.Width, this.Height);<br />
                e.Graphics.DrawImage(_image, rect);</p>
<p>            }<br />
        }</p>
<p>        protected override void OnPaintBackground(PaintEventArgs e)<br />
        {<br />
            //Do not paint background<br />
        }</p>
<p>        public void Redraw()<br />
        {<br />
            RecreateHandle(); //Hack<br />
        }</p>
<p>        private void TimerOnTick(object source, EventArgs e)<br />
        {<br />
            RecreateHandle();<br />
            update_me.Stop();<br />
        }</p>
<p>        public Image Image<br />
        {<br />
            get<br />
            {<br />
                return _image;<br />
            }<br />
            set<br />
            {<br />
                _image = value;<br />
                RecreateHandle();<br />
            }<br />
        }<br />
    }<br />
}</code></p></blockquote>
<p>So there you have it a truly transparent control that can be used to host your image.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dyadica.net/archives/creating-a-transparent-control/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Data Execution Prevention Workaround</title>
		<link>http://blog.dyadica.net/archives/data-execution-prevention-workaround</link>
		<comments>http://blog.dyadica.net/archives/data-execution-prevention-workaround#comments</comments>
		<pubDate>Thu, 22 Jan 2009 23:03:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[ActiveX]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Data Execution Prevention]]></category>
		<category><![CDATA[DEP]]></category>
		<category><![CDATA[NXCOMPAT]]></category>

		<guid isPermaLink="false">http://blog.dyadica.net/?p=1140</guid>
		<description><![CDATA[Here is a post I have been meaning to write for a while now as it was quite a big issue for me at one time:
DEP is short for Data Execution Prevention, a technology which ...]]></description>
			<content:encoded><![CDATA[<p>Here is a post I have been meaning to write for a while now as it was quite a big issue for me at one time:</p>
<p>DEP is short for Data Execution Prevention, a technology which exists to prevent the execution of code from memory pages marked as none executable. This is done to reduce the attack surface available to malicious software that is trying to hijack a process.</p>
<p>This is great you might say, and yes it is, however if your application interops with native binaries or exposes a plugin model to 3rd parties (shockwave ActiveX component in my case) you may say&#8230; aggggghhhh.</p>
<p><strong>A Bit of Background</strong></p>
<p>I first came across DEP when I decided to add  facility for direct communication between my <a title="wiindows project" href="http://blog.dyadica.net/index.php/pages/wiindows">wiindows</a> application shockwave .dcr/swf  movies. In order to do this part of the application has a windows form with the relevant ActiveX controls embedded within it.</p>
<p>Fine so far and yes it was in VS2005, however upon my first Build in VS2008 the following error was triggered:</p>
<blockquote><p><code>Unable to get the window handle for the 'AxShockwaveCtl' control. Windowless ActiveX controls are not supported</code><strong><br />
</strong></p></blockquote>
<p>After a little Google time in reference to this error DEP reared its ugly head as a possible/likely cause. This is due to the C# compiler in Visual Studio 2008 and the .NET 3.5 Framework (csc.exe) now generating PE files with the NXCOMPAT bit set.<span id="more-1140"></span></p>
<p><strong>A Bit More Detail<br />
</strong></p>
<p>In the header of a PE file there is a flag called <code>IMAGE_DLLCHARACTERISTICS_NX_COMPAT</code>. This flag affects whether or not the OS enables DEP for a process. Setting this flag tells the OS that the image is compatible with DEP. For executable images, if this flag is set, the process is run with DEP enabled unless the machine is configured with the DEP policy set to AlwaysOff.</p>
<p>Since the C# compiler emits PE files which are MSIL only and therefore compatible with DEP, the output binaries from the VS 2008 and .NET 3.5 C# compilers have this flag set.</p>
<p>This means that by turning off DEP It would be possible to test weather DEP truly was the cause of the error.</p>
<p><strong>Enabling and Disabling DEP in Vista</strong></p>
<p>DEP can easily be enabled and disabled in Vista by using the following command line calls:</p>
<ol>
<li><span>Open the Start Menu.</span></li>
<li><span>In the white line (Start Search) area, type cmd</span></li>
<li><span>Right click on Cmd (at top), and click on Run as Administrator.</span></li>
</ol>
<p>This will open a elevated command prompt. To enable DEP type the following at the command prompt  and press Enter:</p>
<blockquote><p><code>bcdedit.exe /set {current} nx OptIn</code></p></blockquote>
<p>If for some reason this command does not enable DEP after restarting the computer, then repeat the process and try the following code instead:</p>
<blockquote><p><code>bcdedit.exe /set {current} nx AlwaysOn</code></p></blockquote>
<p>To disable DEP repeat steps 1-3 and in the command prompt, type the following and press enter:</p>
<blockquote><p><code> bcdedit.exe /set {current} nx AlwaysOff</code></p></blockquote>
<p>With this facility a few tests were run and as suspected DEP was identified to be causing the error. This meat that all we need to do to resolve the error is manipulate status of the NXCOMPAT bit.</p>
<p><strong>Controlling the Flag in the PE Header</strong></p>
<p>If you are using visual studio this can be simply accomplished via adding a switch to the postbuild event of your project to mark your compiled project as DEP non compliant. The steps for doing this are as follows:</p>
<ol>
<li><span>Right click on project in Visual Studio</span></li>
<li><span>Properties</span></li>
<li><span>Build Events</span></li>
<li><span>Edit Post Build with your bit switch code</span></li>
</ol>
<p>My post build step (4) is as follows:</p>
<blockquote><p><code>REM Mark project as DEP Noncompliant<br />
call "$(DevEnvDir)..\..\VC\bin\vcvars32.bat"<br />
call "$(DevEnvDir)..\..\VC\bin\editbin.exe" /NXCOMPAT:NO "$(TargetPath)"<br />
</code></p></blockquote>
<p>Another possible way to do this is to open up the Visual Studio command prompt, browse to your exe location and type:</p>
<blockquote><p><code>editbin.exe /NXCOMPAT:NO YourProgram.exe</code></p></blockquote>
<p>However I have not tested this as of yet.</p>
<p>Please note that if you sign the binary in Visual Studio, flipping the <code>IMAGE_DLLCHARACTERISTICS_NX_COMPAT</code> flag in the post build step after the binary has been signed will result in an assembly that will fail strong name validation. To work around this sign your binary as part of the post build steps.</p>
<p>To do this, use SN.EXE from the Windows SDK.</p>
<p>So there you have it, Data Execution Prevention, problem and solution and methods of manipulation.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dyadica.net/archives/data-execution-prevention-workaround/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Caligari have Released trueSpace 7.6 for Free</title>
		<link>http://blog.dyadica.net/archives/caligari-have-released-truespace-76-for-free</link>
		<comments>http://blog.dyadica.net/archives/caligari-have-released-truespace-76-for-free#comments</comments>
		<pubDate>Sat, 02 Aug 2008 11:38:24 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[XNA]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[game development]]></category>
		<category><![CDATA[Graphics]]></category>
		<category><![CDATA[Homebrew]]></category>
		<category><![CDATA[trueSpace]]></category>

		<guid isPermaLink="false">http://blog.dyadica.net/?p=939</guid>
		<description><![CDATA[With my ongoing conversion to OSX I am now in need of a new 3D solution that will enable me to develop for both Unity3D and XNA (still cannot leave the MS grip), thus my ...]]></description>
			<content:encoded><![CDATA[<p>With my ongoing conversion to OSX I am now in need of a new 3D solution that will enable me to develop for both <a href="http://unity3d.com/">Unity3D</a> and XNA (still cannot leave the MS grip), thus my initial thoughts are of <a href="http://www.blender.org/">Blender</a>.</p>
<p>However whilst browsing some XNA resources I discovered that the guys over at <a href="http://www.caligari.com/">Caligari</a> have Released trueSpace 7.6 for Free download. All you have to do is register for an account, then download the software.</p>
<blockquote><p>trueSpace7.6 is a fully-featured 3D authoring package that will let you model, texture, light, animate and render 3D content. As well as traditional images and movies, you can also make 3D content for online shared spaces, and for Virtual Earth.</p></blockquote>
<p>An entirely re-written X format exporter lets you save your trueSpace creations to load into game engines such as XNA to develop games for Windows or the Xbox 360.</p>
<p style="text-align: left;"><a href="http://www.caligari.com/Products/trueSpace/tS75/brochure/intro.asp?Cate=BIntro"><img class="xlarge" title="A real-time scene with several lighting set-ups  (by Marcel Barthel)." src="http://blog.dyadica.net/wp-content/uploads/2008/08/marcelbarthel_greengarden4_s.jpg" alt="" width="500" height="178" /></a></p>
<p style="text-align: center;"><em> A real-time scene  					with several lighting set-ups  (by Marcel Barthel).</em></p>
<p>trueSpace also supports import from a wide variety of formats, letting you take existing objects and use them in Virtual Earth. <span id="more-939"></span></p>
<p>Most of you probaby already know that Caligari was snatched up by Microsoft&#8217;s Virtual Earth team (keep an eye on their blog <a href="http://blogs.msdn.com/virtualearth/default.aspx">here</a> &#8212; good hints and tips on modeling with trueSpace as well as how to integrate with Virtual Earth).</p>
<p>So it all looks good eh, but there is still the OSX issue, however as both <a href="http://www.blender.org/">Blender</a> and trueSpace are free why not try both.</p>
<p><a href="http://www.blender.org/">Blender</a> also has an  FBX Export and looking at the <a href="http://www.blender.org/features-gallery/features/">features</a> breakdown caters for trueSpace. With this in mind its time for a play to see which is the best option, however I have a feeling that a combinational approach will prove to be the optimum solution for my needs.</p>
<p>Coming from years of using max at work, i reckon my evaluation of each is going to be&#8230; er fun. I just wish discreet / autodesk kept plasma going, I loved that package.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dyadica.net/archives/caligari-have-released-truespace-76-for-free/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WiimoteLib v1.4</title>
		<link>http://blog.dyadica.net/archives/wiimotelib-v14</link>
		<comments>http://blog.dyadica.net/archives/wiimotelib-v14#comments</comments>
		<pubDate>Tue, 03 Jun 2008 21:53:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Wii]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[brian peek]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[driver]]></category>
		<category><![CDATA[HomeBrew: Wii]]></category>
		<category><![CDATA[wiimote]]></category>
		<category><![CDATA[wiimoteLib]]></category>

		<guid isPermaLink="false">http://blog.dyadica.net/?p=505</guid>
		<description><![CDATA[
In an effort to put out more frequent builds with fewer changes, Brian peek has released WiimoteLib v1.4 to CodePlex.  This release contains the single most requested feature:  multiple Wiimote support.
The original Coding4Fun ...]]></description>
			<content:encoded><![CDATA[<div class="BlogPostContent">
<p>In an effort to put out more frequent builds with fewer changes, Brian peek has released <a href="https://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=WiimoteLib&amp;ReleaseId=14031" target="_blank">WiimoteLib v1.4 to CodePlex</a>.  This release contains the single most requested feature:  multiple Wiimote support.</p>
<p>The <a href="http://blogs.msdn.com/coding4fun/archive/2007/03/14/1879033.aspx" target="_blank">original Coding4Fun article</a> has also been updated with some details on how to use multiple Wiimotes, as has the WiimoteTest application included with the distribution.</p>
<p><span style="text-decoration: underline;">Changes</span></p>
<ul>
<li>Multiple Wiimotes supported!</li>
<li>Slight change to ExtensionType enum for better extension detection</li>
<li>Decided I didn&#8217;t like the dependency on System.Drawing for the 2D point so am now using my own Point structs.  Sorry&#8230;</li>
<li>WiimoteTest app updated to show multiple Wiimotes working</li>
</ul>
<p>SOURCE: Brian Peek</p></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.dyadica.net/archives/wiimotelib-v14/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>QR Banner Graphics</title>
		<link>http://blog.dyadica.net/archives/new-header-banners-with-qr</link>
		<comments>http://blog.dyadica.net/archives/new-header-banners-with-qr#comments</comments>
		<pubDate>Fri, 18 Jan 2008 15:29:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[Barcode]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Data]]></category>
		<category><![CDATA[Graphics]]></category>
		<category><![CDATA[N95]]></category>
		<category><![CDATA[QR]]></category>
		<category><![CDATA[QR Code]]></category>

		<guid isPermaLink="false">http://blog.dyadica.net/archives/new-header-banners-with-qr</guid>
		<description><![CDATA[Let me introduce you to my geeky side and also QR Code:
Although initially used for tracking parts in vehicle manufacturing, QR Codes are essentially 2D bar codes. I first came across them when I purchased ...]]></description>
			<content:encoded><![CDATA[<p>Let me introduce you to my geeky side and also QR Code:</p>
<p>Although initially used for tracking parts in vehicle manufacturing, QR Codes are essentially 2D bar codes. I first came across them when I purchased my N95 and found the <a href="http://www.jasonbradbury.com/jason_bradbury/2007/04/n95s_barcode_sc.html#more" title="N95 Barcode Scanner">N95&#8217;s Barcode Scanner</a> article over at <a href="http://www.jasonbradbury.com" title="jasonbradbury.com">Jason Bradbury</a>&#8217;s blog.</p>
<p>If you got to this post by entering 010101010 into the search box then UBER KUDOS to you (your also a bit sad lol) otherwise you probably are wondering what the hell I am typing about so Ill explain.</p>
<p>Basically If you have a camera phone equipped with the correct reader software you can scan a QR Code produced image and obtain the data within, cool huh. Anyhoo take a look at the following image:</p>
<p><a href="http://blog.dyadica.net/wp-content/uploads/2008/01/qr-code-demo.png" class="thickbox" title="qr-code-demo.png"><img src="http://blog.dyadica.net/wp-content/uploads/2008/01/qr-code-demo.png" alt="qr-code-demo.png" class="center" /></a></p>
<p>This image is a QR Generated barcode that states:</p>
<p>Hello and welcome to http://blog.dyadica.net. I hope you enjoy this little QR Code Demo.<span id="more-385"></span></p>
<p>If you have a phone that caters for QR try it out.</p>
<p>Take a look at the top of the page. If you right click on the header and view the background image you will find 11 code blocks detailing information about both dyadica.net and QR resources, one of which states enter 010101010 into the search box.</p>
<p>By entering that code you end up at this post, all very 007 eh.</p>
<p>If you are interested in QR have a look at the following:</p>
<ul>
<li><a href="http://www.codeproject.com/KB/cs/qrcode.aspx" title="QR at codeproject">CodeProject.com</a></li>
<li><a href="http://www.denso-wave.com/qrcode/index-e.html" title="denso-wave.com / qrcode.com">The QR Master</a></li>
<li><a href="http://en.wikipedia.org/wiki/QR_Code" title="qr at wikipedia">Wikipedia</a></li>
</ul>
<p>Right Im of to print a QR T-Shirt, So So So Sad. But just think of the fun you could have on a night out&#8230;.!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dyadica.net/archives/new-header-banners-with-qr/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
