<?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>Silicon Sparrow &#187; Uncategorized</title>
	<atom:link href="http://siliconsparrow.com/category/uncategorized/feed/" rel="self" type="application/rss+xml" />
	<link>http://siliconsparrow.com</link>
	<description>Electronics and Software Design</description>
	<lastBuildDate>Sun, 13 May 2012 00:24:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Raphael Vector Graphics in Javascript</title>
		<link>http://siliconsparrow.com/raphael-vector-graphics-in-javascript/</link>
		<comments>http://siliconsparrow.com/raphael-vector-graphics-in-javascript/#comments</comments>
		<pubDate>Sun, 13 May 2012 00:21:31 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://siliconsparrow.com/?p=544</guid>
		<description><![CDATA[Raphael is my new favourite Javascript library. I can&#8217;t believe that I&#8217;ve managed to learn it and write a simple vector-based drawing program in one afternoon. Click here to see my test Raphael library can be found here: http://raphaeljs.com/]]></description>
			<content:encoded><![CDATA[<p><a href="http://siliconsparrow.com/demos/raphaeltest/"><img class="alignright size-full wp-image-545" title="raphtest" src="http://siliconsparrow.com/wp-content/uploads/2012/05/raphtest.png" alt="" width="342" height="215" /></a>Raphael is my new favourite Javascript library. I can&#8217;t believe that I&#8217;ve managed to learn it and write a simple vector-based drawing program in one afternoon.</p>
<p><a href="http://siliconsparrow.com/demos/raphaeltest/">Click here to see my test</a></p>
<p>Raphael library can be found here:</p>
<p><a href="http://raphaeljs.com/">http://raphaeljs.com/</a></p>
<p><br clear="all" /></p>
]]></content:encoded>
			<wfw:commentRss>http://siliconsparrow.com/raphael-vector-graphics-in-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Interactive Periodic Table</title>
		<link>http://siliconsparrow.com/interactive-periodic-table/</link>
		<comments>http://siliconsparrow.com/interactive-periodic-table/#comments</comments>
		<pubDate>Sun, 22 Apr 2012 01:20:04 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://siliconsparrow.com/?p=539</guid>
		<description><![CDATA[This is pretty neat toy if you&#8217;re into chemistry. An interactive periodic table which shows properties, electron configuration and everything else you could think of &#8211; including a 3D render of the electron orbitals! http://ptable.com/]]></description>
			<content:encoded><![CDATA[<p>This is pretty neat toy if you&#8217;re into chemistry. An interactive periodic table which shows properties, electron configuration and everything else you could think of &#8211; including a 3D render of the electron orbitals!</p>
<p><a href="http://ptable.com/">http://</a><a href="http://ptable.com/">ptable.com/</a></p>
<p><img class="alignleft size-full wp-image-540" title="ptable.com" src="http://siliconsparrow.com/wp-content/uploads/2012/04/ptable.com_.png" alt="" width="630" height="376" /></p>
]]></content:encoded>
			<wfw:commentRss>http://siliconsparrow.com/interactive-periodic-table/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Toy</title>
		<link>http://siliconsparrow.com/new-toy/</link>
		<comments>http://siliconsparrow.com/new-toy/#comments</comments>
		<pubDate>Sat, 18 Feb 2012 00:45:47 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://siliconsparrow.com/?p=526</guid>
		<description><![CDATA[In the past I&#8217;ve written a couple of posts on how to get better magnification out of a digital camera. Well, you can get some pretty reasonably priced digital microscopes these days &#8211; and now I have one, the DigiTech QC3247. It has two modes, a 20X mode which is fairly useful and a 400X mode [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-527" title="Microscope" src="http://siliconsparrow.com/wp-content/uploads/2012/02/Microscope.jpg" alt="" width="100" height="100" />In the past I&#8217;ve written a <a href="http://siliconsparrow.com/macro-photography-with-a-phone-camera/">couple</a> of <a href="http://www.doctort.org/adam/general/macro-photography-with-a-phone-camera.html">posts</a> on how to get better magnification out of a digital camera. Well, you can get some pretty reasonably priced digital microscopes these days &#8211; and now I have one, the DigiTech QC3247.</p>
<p>It has two modes, a 20X mode which is fairly useful and a 400X mode which is ridiculous.</p>
<p>Here&#8217;s a capture from 20X mode. To give you an idea of scale, the brown chip capacitors in the picture are 0603 &#8211; ah, that is 1.6mm long and 0.8mm wide. Click on the picture to get the full-res 800&#215;600 image.</p>
<p><a href="http://siliconsparrow.com/wp-content/uploads/2012/02/microscopetest.jpg"><img class="alignnone size-medium wp-image-528" title="20X Mode" src="http://siliconsparrow.com/wp-content/uploads/2012/02/microscopetest-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p>Now here&#8217;s a capture of one of those same chip capacitors at 400X. It took me ages to position and focus it as the frame is less than 1mm from side to side. This mode is of limited use I think unless I build a mount for the microscope. It is impossible to hand-hold it at this magnification and the supplied stand is too flimsy to hold it in position without wobbling.</p>
<p><a href="http://siliconsparrow.com/wp-content/uploads/2012/02/1202181141264751494.jpg"><img class="alignnone size-medium wp-image-529" title="400x Mode" src="http://siliconsparrow.com/wp-content/uploads/2012/02/1202181141264751494-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p>All in all, this will be a nice addition to my toolbox.</p>
]]></content:encoded>
			<wfw:commentRss>http://siliconsparrow.com/new-toy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Class D Amplifier is Working</title>
		<link>http://siliconsparrow.com/class-d-amplifier-is-working/</link>
		<comments>http://siliconsparrow.com/class-d-amplifier-is-working/#comments</comments>
		<pubDate>Mon, 13 Feb 2012 06:49:32 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://siliconsparrow.com/?p=519</guid>
		<description><![CDATA[A few posts ago I mentioned that I was having trouble with my Class-D amplifier design. It&#8217;s been sitting on the shelf for a few weeks and I think it&#8217;s time to have another look at it. It&#8217;s amazing how you can notice new things when you take a fresh look at something. The problem [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-520" title="ClassDAmp2" src="http://siliconsparrow.com/wp-content/uploads/2012/02/ClassDAmp2.jpg" alt="" width="420" height="251" />A few posts ago I mentioned that I was having trouble with my Class-D amplifier design. It&#8217;s been sitting on the shelf for a few weeks and I think it&#8217;s time to have another look at it.</p>
<p>It&#8217;s amazing how you can notice new things when you take a fresh look at something. The problem is obvious now. I was missing a ground trace which introduced some noise into the input. Also the input impedance was way too high which made the amp very sensitive to that noise. The result was some nasty buzzing and it had nothing to do with the power supply as I first thought.</p>
<p>So now it&#8217;s working. Yay! I also upgraded it to the Texas Instruments TPA3110 which is completely pin-compatible and has 15 Watts of power. My ears are suitably hurting after running some tests at full volume and it didn&#8217;t even get warm.</p>
<p>So next I need to correct the PCB in light of these changes and it is done.</p>
]]></content:encoded>
			<wfw:commentRss>http://siliconsparrow.com/class-d-amplifier-is-working/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Synchronize two video replays using Javascript</title>
		<link>http://siliconsparrow.com/synchronize-two-video-replays-using-javascript/</link>
		<comments>http://siliconsparrow.com/synchronize-two-video-replays-using-javascript/#comments</comments>
		<pubDate>Thu, 09 Feb 2012 01:19:15 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://siliconsparrow.com/?p=509</guid>
		<description><![CDATA[Here&#8217;s a quick Javascript I whipped up to make an HTML5 video object track a second HTML5 video object. I needed to do this because I had two videos from a talk &#8211; a video of the speaker and a video of his powerpoint presentation, both as MP4 files. This script will trap events from [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a quick Javascript I whipped up to make an HTML5 video object track a second HTML5 video object. I needed to do this because I had two videos from a talk &#8211; a video of the speaker and a video of his powerpoint presentation, both as MP4 files.</p>
<p>This script will trap events from one video window and pass them on to the other window so they stay in sync with each other. I&#8217;m posting it here because it may be useful to someone&#8230;</p>
<pre>
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;HTML5 Synchronize Video Test&lt;/title&gt;
&lt;script&gt;

// Script to synchronize playback of two HTML5 video windows
// by Adam Pierce <adam@siliconsparrow.com>
// This script is public domain. You can copy, modify and share it as much as you like.

window.onload = function(){
	var v2 = document.getElementById('v2');

	v2.addEventListener("play", function() {
		document.getElementById('v1').play();
	});

	v2.addEventListener("pause", function() {
		document.getElementById('v1').pause();
	});

	v2.addEventListener("seeking", function() {
		document.getElementById('v1').currentTime = v2.currentTime;
	});

	v2.addEventListener("seeked", function() {
		document.getElementById('v1').currentTime = v2.currentTime;
	});
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;h1&gt;HTML5 Synchronize Video Test&lt;/h1&gt;
&lt;div id="video-container"&gt;
	&lt;video id="v1"&gt;
		&lt;source src="screen.mp4" type="video/mp4"&gt;
	&lt;/video&gt;
	&lt;video id="v2" controls&gt;
		&lt;source src="camera.mp4" type=""&gt;
	&lt;/video&gt;
&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://siliconsparrow.com/synchronize-two-video-replays-using-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>UI Horror Story of the Day</title>
		<link>http://siliconsparrow.com/ui-horror-story-of-the-day/</link>
		<comments>http://siliconsparrow.com/ui-horror-story-of-the-day/#comments</comments>
		<pubDate>Fri, 03 Feb 2012 23:27:58 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://siliconsparrow.com/?p=493</guid>
		<description><![CDATA[I finally got around to upgrading to Dev Studio 2010 Express. It looks nice so far but I don&#8217;t know whether to laugh or cry at the number of fundamental UI mistakes they have made with the documentation system. Have Microsoft learned nothing about user interface and user experience in the 18-odd years they have [...]]]></description>
			<content:encoded><![CDATA[<p>I finally got around to upgrading to Dev Studio 2010 Express. It looks nice so far but I don&#8217;t know whether to laugh or cry at the number of fundamental UI mistakes they have made with the documentation system. Have Microsoft learned nothing about user interface and user experience in the 18-odd years they have been developing Windows? I&#8217;d like to take this blog post to list some of the issues with this software.</p>
<p>Now in previous versions of Dev Studio, if you wanted to look up the manual for a key word or library function, you placed your cursor on the name and pressed F1. So wanting to know how to create a fixed array in C#, I typed the word &#8216;fixed&#8217; and pressed F1. Did I see the documentation? Nope.</p>
<p>What I did see was a dialog box asking whether I&#8217;d like to look up the documentation on my local machine or on the internet. I wish I&#8217;d taken a screen-shot of that dialog box because it was an absolute classic of bad design but I can&#8217;t make it appear again. Once I&#8217;d chosen, there was no way to go back to it and make a different choice.</p>
<p><strong>UI Lesson #1: Let the user go back. People make mistakes, if it is possible to undo, then allow it.</strong></p>
<p>&nbsp;</p>
<p>The choices on the dialog were &#8220;YES&#8221; or &#8220;NO&#8221;. Um, does that mean yes, look it up on the internet or no, don&#8217;t look it up on my local machine? Heads I win, tails you lose. Bad choice of wording for the buttons.</p>
<p><strong>UI Lesson #2: Label your dialog buttons with verbs &#8211; SAVE / DON&#8217;T SAVE is easier to understand than YES / NO</strong></p>
<p>&nbsp;</p>
<p>So I took a punt on NO which it turns out meant loading the documentation from the local machine. Well that&#8217;s OK, it should be faster loading locally right? But then again, should I care where it gets the documentation from as long as it gets it. Microsoft is interrupting my work flow. I just want to see the documentation, right now.</p>
<p><strong>UI Lesson #3: Don&#8217;t interrupt the user&#8217;s work flow unless you have a very good reason.</strong></p>
<p>&nbsp;</p>
<p>So next it goes about setting up a small web server on my PC so it can serve up the documentation in my browser. Takes a few seconds but that&#8217;s OK, except &#8211; get this &#8211; it doesn&#8217;t work! I get a 404 error! I did take a screenshot this time:</p>
<p style="text-align: center;"><img class="size-full wp-image-494 aligncenter" title="HelpFail" src="http://siliconsparrow.com/wp-content/uploads/2012/02/HelpFail.png" alt="" width="506" height="130" /></p>
<p>&nbsp;</p>
<p>So what this is telling me is that <strong>there is no local help! </strong>And the software was too brain-dead to realise it.</p>
<p><strong>UI Lessage #4: If you can automatically check something, don&#8217;t make the user manually check it!</strong></p>
<p>&nbsp;</p>
<p>There is no way I am going to spend time installing the local help on my PC. Remember what I want to do is view the help, not dink around with my computer all afternoon. So of course I now choose to look for the help online. So I click the link and&#8230;</p>
<p style="text-align: center;"><img class="size-full wp-image-495 aligncenter" title="HelpFail2" src="http://siliconsparrow.com/wp-content/uploads/2012/02/HelpFail2.png" alt="" width="484" height="331" /></p>
<p>&nbsp;</p>
<p><strong>UI Lesson #5: Honestly, just think!</strong></p>
<p>&nbsp;</p>
<p>I cannot believe how utterly broken this is. I think I&#8217;ll go look up my keyword on Google.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://siliconsparrow.com/ui-horror-story-of-the-day/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Incompatible Objective-C types initializing struct</title>
		<link>http://siliconsparrow.com/incompatible-objective-c-types-initializing-struct/</link>
		<comments>http://siliconsparrow.com/incompatible-objective-c-types-initializing-struct/#comments</comments>
		<pubDate>Tue, 31 Jan 2012 01:57:28 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://siliconsparrow.com/?p=489</guid>
		<description><![CDATA[This bizarre iPhone compiler error message had me tearing my hair out this morning. I&#8217;ve finally figured it out. Here&#8217;s the scene: You have two classes, each class has an init method with the same name and taking the same parameters. Here&#8217;s an example: @interface myClass1 : NSObject { } -(myClass1 *)initWithName:(NSString *)name; @end @interface [...]]]></description>
			<content:encoded><![CDATA[<p>This bizarre iPhone compiler error message had me tearing my hair out this morning. I&#8217;ve finally figured it out.</p>
<p>Here&#8217;s the scene: You have two classes, each class has an init method with the same name and taking the same parameters. Here&#8217;s an example:</p>
<pre>@interface myClass1 : NSObject { }

-(myClass1 *)initWithName:(NSString *)name;

@end

@interface myClass2 : NSObject { }

-(myClass2 *)initWithName:(NSString *)name;

@end</pre>
<p>Now try to initialize an instance of the first class:</p>
<pre>myClass1 *c = [[myClass1 alloc] initWithName:@"Fred"];</pre>
<p>You get <em>Incompatible Objective-C types initializing &#8216;struct myClass2 *&#8217;, expected &#8216;struct myClass1 *&#8217;</em> which doesn&#8217;t make any sense because the initializer never even mentions myClass2.</p>
<p>The thing is that the program will run fine, it just gives this warning at compile-time because the compiler can&#8217;t tell the difference between two different methods with the same signature. I like my code to compile with no errors and no warnings because I&#8217;m very fussy. So even though this warning could be safely ignored, it still bugs me and I have to get rid of it!</p>
<p>So to shut the compiler up, I need to cast the object so it explicitly knows which method to call.</p>
<pre>myClass1 *c = [(myClass1 *)[myClass1 alloc] initWithName:@"Fred"];</pre>
<p>Casting always looks ugly to me but that&#8217;s the way around it.</p>
]]></content:encoded>
			<wfw:commentRss>http://siliconsparrow.com/incompatible-objective-c-types-initializing-struct/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NMEA Checksum Calculator</title>
		<link>http://siliconsparrow.com/nmea-checksum-calculator/</link>
		<comments>http://siliconsparrow.com/nmea-checksum-calculator/#comments</comments>
		<pubDate>Thu, 12 Jan 2012 06:49:08 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://siliconsparrow.com/?p=480</guid>
		<description><![CDATA[I&#8217;ve been doing a lot of GPS work lately. Here&#8217;s a little utility I wrote which I&#8217;d like to share with you all. It&#8217;s an NMEA checksum calculator written in PHP. Try it out here: http://siliconsparrow.com/nmeachecksum.php Here&#8217;s the source code: &#60;html&#62; &#60;head&#62; &#60;title&#62;NMEA Checksum Calculator&#60;/title&#62; &#60;/head&#62; &#60;body&#62; &#60;h1&#62;NMEA Checksum Calculator&#60;/h1&#62; &#60;?php // Simple NMEA Checksum [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been doing a lot of GPS work lately. Here&#8217;s a little utility I wrote which I&#8217;d like to share with you all. It&#8217;s an NMEA checksum calculator written in PHP.</p>
<p>Try it out here: <a href="http://siliconsparrow.com/nmeachecksum.php">http://siliconsparrow.com/nmeachecksum.php</a></p>
<p>Here&#8217;s the source code:</p>
<pre>&lt;html&gt;
&lt;head&gt;
&lt;title&gt;NMEA Checksum Calculator&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;h1&gt;NMEA Checksum Calculator&lt;/h1&gt;
&lt;?php
// Simple NMEA Checksum calculator by Adam Pierce &lt;adam@siliconsparrow.com&gt;
// Created 12-Jan-2012.
// This code is public domain. Copy &amp; share it all you like for any purpose.

	if(array_key_exists('nmea',$_REQUEST))
	{
		$nmea = $_REQUEST['nmea'];
		print "&lt;p&gt;Calculating checksum for: ".htmlspecialchars($nmea)."&lt;/p&gt;\r\n";

		$checksum = 0;
		for($i = 0; $i &lt; strlen($nmea); $i++)
		{
			$c = substr($nmea,$i,1);
			$n = ord($c);
			if($c == '$')
				$checksum = 0;
			else if($c == '*')
				break;
			else
				$checksum ^= $n;
		}
		print "&lt;p&gt;Checksum is ".dechex($checksum)."&lt;/p&gt;\r\n";
	}
?&gt;
&lt;form action="nmeachecksum.php"&gt;
&lt;p&gt;Enter an NMEA String: &lt;input name="nmea" size="100" /&gt;
&lt;input type="submit" /&gt;
&lt;/form&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://siliconsparrow.com/nmea-checksum-calculator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Replicating ASCII Database to UTF-8 in PostgreSQL</title>
		<link>http://siliconsparrow.com/replicating-ascii-database-to-utf-8-in-postgresql/</link>
		<comments>http://siliconsparrow.com/replicating-ascii-database-to-utf-8-in-postgresql/#comments</comments>
		<pubDate>Mon, 28 Nov 2011 23:33:20 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://siliconsparrow.com/?p=470</guid>
		<description><![CDATA[Well here&#8217;s a curly issue I blundered into today. I was trying to replicate a Postgres database from an old server to a new one using pg_dump/pg_restore and found some errors like this: invalid byte sequence for encoding "UTF8": 0x92 After some investigation it turns out the older version of Postgres defaults to ASCII encoding [...]]]></description>
			<content:encoded><![CDATA[<p>Well here&#8217;s a curly issue I blundered into today. I was trying to replicate a Postgres database from an old server to a new one using pg_dump/pg_restore and found some errors like this:</p>
<pre>invalid byte sequence for encoding "UTF8": 0x92</pre>
<p>After some investigation it turns out the older version of Postgres defaults to ASCII encoding of the data wheras the new version of Postgres defaults to UTF-8. Of course I would much prefer to use UTF-8 but shouldn&#8217;t those two encodings be compatible anyway? UTF-8 is supposed to be backward-compatible with ASCII.</p>
<p>What happened is a few non-ASCII characters got into the database. 0&#215;92 is not a valid ASCII code. It is a code from Latin-1 encoding. This was in the database thanks to my business partner who was entering some crap into the database using a Macintosh which wasn&#8217;t following the ASCII standard so much.</p>
<p>So how to solve it?</p>
<p>First I did a plain-text export of the database on the old server</p>
<pre>pg_dump -Fp my_database &gt; mydatabase.sql</pre>
<p>Then I converted the encoding to UTF-8</p>
<pre>iconv -f 8859_1 -t UTF-8 mydatabase.sql&gt; mydatabase.utf8.sql</pre>
<p>Finally I imported the converted data into the database on the new server</p>
<pre>createdb my_database
psql my_database -f mydatabase.utf8.sql</pre>
<p>And then I wrote a blog post so I&#8217;d remember all this next time the issue comes up.</p>
]]></content:encoded>
			<wfw:commentRss>http://siliconsparrow.com/replicating-ascii-database-to-utf-8-in-postgresql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Macro Photography with a Phone Camera</title>
		<link>http://siliconsparrow.com/macro-photography-with-a-phone-camera/</link>
		<comments>http://siliconsparrow.com/macro-photography-with-a-phone-camera/#comments</comments>
		<pubDate>Tue, 28 Jun 2011 07:12:20 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://siliconsparrow.com/?p=373</guid>
		<description><![CDATA[Here&#8217;s a real easy way to do close-up when you&#8217;ve only got a phone. All you need is a loupe which is a magnifying lens inside a tube, they are used a lot by jewellers, artists and well, people who work in micro-electronics like me. Just plonk it over the lens of your phone&#8217;s camera [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://siliconsparrow.com/wp-content/uploads/2011/06/PhonePlusLoupe.jpg"><img class="alignright size-full wp-image-374" title="PhonePlusLoupe" src="http://siliconsparrow.com/wp-content/uploads/2011/06/PhonePlusLoupe.jpg" alt="" width="384" height="299" /></a>Here&#8217;s a real easy way to do close-up when you&#8217;ve only got a phone. All you need is a <strong>loupe</strong> which is a magnifying lens inside a tube, they are used a lot by jewellers, artists and well, people who work in micro-electronics like me. Just plonk it over the lens of your phone&#8217;s camera and away you go! Use lots of light to get a good sharp image.</p>
<p><br clear="all" /><br />
<a href="http://siliconsparrow.com/wp-content/uploads/2011/06/FrozenPea.jpg"><img class="alignleft size-medium wp-image-375" title="FrozenPea" src="http://siliconsparrow.com/wp-content/uploads/2011/06/FrozenPea-300x179.jpg" alt="" width="300" height="179" /></a>Here&#8217;s a frozen pea! well, why not?<br />
<br clear="all" /></p>
<p><a href="http://siliconsparrow.com/wp-content/uploads/2011/06/PCBCloseup.jpg"><img class="alignleft size-medium wp-image-376" title="PCBCloseup" src="http://siliconsparrow.com/wp-content/uploads/2011/06/PCBCloseup-300x179.jpg" alt="" width="300" height="179" /></a>And of course, the real reason I want to do this &#8211; closeups of circuit boards.<br />
<br clear="all" /></p>
]]></content:encoded>
			<wfw:commentRss>http://siliconsparrow.com/macro-photography-with-a-phone-camera/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

