<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4606268956541116064</id><updated>2012-01-24T09:05:16.391-08:00</updated><category term='snippage'/><category term='simple english'/><category term='Predictions'/><category term='Review'/><category term='IE Tester'/><category term='Simple'/><category term='iCloud'/><category term='mirror'/><category term='Sequel Pro'/><category term='remember the milk'/><category term='Apple'/><category term='easy'/><category term='tip'/><category term='Sql'/><category term='adobe air'/><category term='C++'/><category term='pointers'/><category term='wikipedia'/><category term='Web Development'/><category term='iPhone'/><category term='iTunes'/><category term='Game development'/><category term='iPod'/><category term='Command Prompt'/><category term='Bluetooth'/><category term='Internet Explorer'/><category term='Tablet'/><category term='car'/><title type='text'>Mark Godwin's Blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://markgodwin.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4606268956541116064/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://markgodwin.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Mark Godwin</name><uri>https://profiles.google.com/111969735768037912549</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3h_c-FUo2fY/AAAAAAAAAAI/AAAAAAAAAxY/9b0GPmKirzE/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>13</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4606268956541116064.post-6909501321362275211</id><published>2011-08-31T19:18:00.000-07:00</published><updated>2012-01-10T14:51:20.899-08:00</updated><title type='text'>LinkedIn's ShareArticle API</title><content type='html'>&lt;div style="text-align: left;"&gt;
If you have found yourself in the (un)fortunate position of having to use LinkedIn's shareArticle API to share a URL, you may notice that there is around zero articles detailing exactly how to utilize the API correctly. &amp;nbsp;Even LinkedIn doesn't have an official developer support page which details exactly how to use their shareArticle API. &lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;
&lt;b&gt;Too Long, Didn't Read:&lt;/b&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;
Use proper meta tags and image combinations and just give LinkedIn the url parameter to their shareArticle API&lt;/blockquote&gt;
&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
Lucky for you I recently had to deal with this horribly under-documented share functionality at work and am going to outline exactly what to do to get it working!&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
Theoretically the shareArticle API should work like this, and actually this is how you &lt;b&gt;want&lt;/b&gt;&amp;nbsp;to use it:&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;pre class="prettyprint"&gt;www.linkedin.com/shareArticle?mini=true&amp;amp;url=http://www.mycoolwebpage.com&lt;/pre&gt;
&lt;div style="text-align: left;"&gt;
&lt;br /&gt;
You may notice that if you try this with your webpage, LinkedIn doesn't gather all the correct information about your page, or possibly it doesn't gather any information about your page except for its title and url. &amp;nbsp;Where is the thumbnail? &amp;nbsp;And where is the description? &amp;nbsp;Lucky for you there's no documentation describing how you can get LinkedIn to pull that information save for a couple forum postings...that have no helpful information. &amp;nbsp;But the shareArticle API also allows you to pass some GET params to the shareArticle API - to trick you, you see, into doing it the wrong way. &amp;nbsp;For example, you can specify &lt;i&gt;title&lt;/i&gt;, &lt;i&gt;description&lt;/i&gt;, &lt;i&gt;source&lt;/i&gt; and a couple other things (ooh this looks like it solves our problem!):&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;pre class="prettyprint"&gt;www.linkedin.com/shareArticle?mini=true&amp;amp;url=http://www.mycoolwebpage.com&amp;amp;title=mycoolTitle&amp;amp;source=dummysource.com&amp;amp;desc=blah%20blah%20blah...&lt;/pre&gt;
&lt;div style="text-align: left;"&gt;
&lt;br /&gt;
&lt;br /&gt;
Except...that if you try sending that URL to LinkedIn and your url-encoded URL is longer than approx. 700 characters, the LinkedIn script throws a Javascript error on IE6&amp;amp;7 on Windows XP, only! &amp;nbsp;Because this is a Javascript error on the LinkedIn side, you have zero control over how it can be fixed, and if you are dealing with a dynamic length description or title, or source url, constructing this URL can be extremely problematic.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Solution&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
Ignore LinkedIn's red-herring extra GET parameters, and just specify the url GET parameter. &amp;nbsp;This will cause LinkedIn to ping back on your URL and look for these tags (title, meta description, img...):&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="prettyprint"&gt;
&amp;lt;html&amp;gt;
  &amp;lt;head&amp;gt;
    &amp;lt;title&amp;gt;&lt;b&gt;The Title&lt;/b&gt;!&amp;lt;/title&amp;gt;
    &lt;b&gt;&amp;lt;meta name="description" content="This is the description of your linkedIn Article!"&amp;gt;&lt;/b&gt;
  &amp;lt;/head&amp;gt;
  &amp;lt;body&amp;gt;
    &lt;b&gt;&amp;lt;img src="/my/img/path.jpg"&amp;gt;&lt;/b&gt;
    &lt;b&gt;&amp;lt;img src="/my/img/path2.jpg"&amp;gt;&lt;/b&gt;
  &amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: left;"&gt;
If you're having trouble getting the images to work because your page is so cluttered, you can setup your page to skim the browser user-agent and look for 'LinkedInBot', and display an altered form of the webpage for LinkedIn specifically.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4606268956541116064-6909501321362275211?l=markgodwin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://markgodwin.blogspot.com/feeds/6909501321362275211/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://markgodwin.blogspot.com/2011/08/linkedins-sharearticle-api.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4606268956541116064/posts/default/6909501321362275211'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4606268956541116064/posts/default/6909501321362275211'/><link rel='alternate' type='text/html' href='http://markgodwin.blogspot.com/2011/08/linkedins-sharearticle-api.html' title='LinkedIn&apos;s ShareArticle API'/><author><name>Mark Godwin</name><uri>https://profiles.google.com/111969735768037912549</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3h_c-FUo2fY/AAAAAAAAAAI/AAAAAAAAAxY/9b0GPmKirzE/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4606268956541116064.post-4892039656223360408</id><published>2011-05-25T08:50:00.000-07:00</published><updated>2011-05-25T08:51:11.704-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Development'/><category scheme='http://www.blogger.com/atom/ns#' term='Sql'/><category scheme='http://www.blogger.com/atom/ns#' term='Sequel Pro'/><title type='text'>Sequel Pro - The Mac's Hidden SQL Gem</title><content type='html'>&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-xZENbBxyh8c/Td0im_fAa6I/AAAAAAAAAv8/6IlorPEPVtc/s1600/Screen+shot+2011-05-25+at+9.37.58+AM.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="301" src="http://1.bp.blogspot.com/-xZENbBxyh8c/Td0im_fAa6I/AAAAAAAAAv8/6IlorPEPVtc/s400/Screen+shot+2011-05-25+at+9.37.58+AM.png" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Sequel Pro is the SQL editor you've always wanted but didn't know existed&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;I've spent far too many hours searching for a good SQL editor. &amp;nbsp;Having used a wide variety ranging from MSSQL Server, MySQL Workbench, PhpMyAdmin and just rolling everything from the command line, I had practically given up on finding something that I thought would make me more efficient. &amp;nbsp;The good news is that Sequel Pro just about the best piece of database management software I've ever found on any platform, and it's free! &amp;nbsp;The UI is spectacular and everything is just so easy... &amp;nbsp;I can now throw together a database, edit, add keys delete tables and do just about everything in a few seconds/minutes. &amp;nbsp;Seriously, if you have a Mac and you do any sort of database work, this is the software you want to be using.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;One other great thing is that if you're working in an environment where you need to take all your queries and save them as you make them, Sequel Pro keeps a detailed log of all queries that its running so you can add it to your migration file if you're keeping one. &amp;nbsp;Seriously awesome!&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;I was saddened that I didn't know about this software sooner, so that's why I'm sharing with you right now (apparently it's been around for years)! &amp;nbsp;Do you know of any other hidden gems for development purposes hiding away on the Mac?&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4606268956541116064-4892039656223360408?l=markgodwin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://markgodwin.blogspot.com/feeds/4892039656223360408/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://markgodwin.blogspot.com/2011/05/sequel-pro-macs-hidden-sql-gem.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4606268956541116064/posts/default/4892039656223360408'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4606268956541116064/posts/default/4892039656223360408'/><link rel='alternate' type='text/html' href='http://markgodwin.blogspot.com/2011/05/sequel-pro-macs-hidden-sql-gem.html' title='Sequel Pro - The Mac&apos;s Hidden SQL Gem'/><author><name>Mark Godwin</name><uri>https://profiles.google.com/111969735768037912549</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3h_c-FUo2fY/AAAAAAAAAAI/AAAAAAAAAxY/9b0GPmKirzE/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-xZENbBxyh8c/Td0im_fAa6I/AAAAAAAAAv8/6IlorPEPVtc/s72-c/Screen+shot+2011-05-25+at+9.37.58+AM.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4606268956541116064.post-710292766499561209</id><published>2011-05-16T08:36:00.000-07:00</published><updated>2011-08-08T09:57:06.391-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iTunes'/><category scheme='http://www.blogger.com/atom/ns#' term='iCloud'/><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><category scheme='http://www.blogger.com/atom/ns#' term='Predictions'/><title type='text'>Apple, iCloud and iTunes - Predictions</title><content type='html'>Apple is much expected to make an announcement next month that they're releasing a cloud based music service a la Amazon Cloud Drive and Google Music. &amp;nbsp;Much of what I've heard from others is speculation that they're going to release a competitor to those serices directly, a "music locker" &amp;nbsp;where you uplaod music that you already own to their servers are are able to stream it directly to your device. &amp;nbsp;While possible, I think they are going to release something of the same vein but drastically different.&lt;br /&gt;
&lt;br /&gt;
If you look at the headlines, one thing is immediately obvious, record labels are unhappy with Google and Amazon. &amp;nbsp;They want in on the cloud based music streaming business as much as anyone, making absurd claims that streaming your own song from someone elses computer consitutes a public performance among other things. &amp;nbsp;Google and Amazon launched their services anyways, not worrying about any potential&amp;nbsp;repercussions&amp;nbsp;with the record labels (a good decision if you ask me). &amp;nbsp;Apple on the other hand is stil in talks with 2 of the record companies, but why? &amp;nbsp;Surely if they were announcing a cloud based locker service there's no reason to really get the approval of the record labels...&lt;br /&gt;
&lt;br /&gt;
We speculate that Google's negotiations with the recording industry fell apart when trying to negotiate a deal to stream music purchased through Google Music to users from a single copy of the song hosted on Google's servers. Therefore with a little bit of extrapolation, it's not hard to imagine thats where Apple is held up as well. &amp;nbsp;So... if Apple is making that a core part of their business model then my prediction is that Apple is trying to make a cloud based service where they host only one version of the song....and everyone streams that &lt;b&gt;one version that they've purchased through iTunes, foregoing the music locker concept altogether.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
So a few people I've mentioned this to said they wouldn't use the service if Apple did this but if you think about it, Apple has every reason to only offer this service.  No huge bandwidth requirements for people uploading 200 days of music, way less space required on the server side and perhaps most importantly &lt;i&gt;Apple gives you yet another reason to buy things through iTunes&lt;/i&gt;.  With tight integration into iOS and iTunes, Apple could make this offering seem pretty lucrative albeit restrictive.&lt;br /&gt;
&lt;br /&gt;
What do you think?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4606268956541116064-710292766499561209?l=markgodwin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://markgodwin.blogspot.com/feeds/710292766499561209/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://markgodwin.blogspot.com/2011/05/apple-icloud-and-itunes-predictions.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4606268956541116064/posts/default/710292766499561209'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4606268956541116064/posts/default/710292766499561209'/><link rel='alternate' type='text/html' href='http://markgodwin.blogspot.com/2011/05/apple-icloud-and-itunes-predictions.html' title='Apple, iCloud and iTunes - Predictions'/><author><name>Mark Godwin</name><uri>https://profiles.google.com/111969735768037912549</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3h_c-FUo2fY/AAAAAAAAAAI/AAAAAAAAAxY/9b0GPmKirzE/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4606268956541116064.post-8998160716376497110</id><published>2010-01-16T18:25:00.000-08:00</published><updated>2010-01-16T19:01:27.554-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPod'/><category scheme='http://www.blogger.com/atom/ns#' term='Bluetooth'/><title type='text'>How to make your iPod 2G/3G bluetooth not suck</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T5X_NpuyaQ0/S1J2yz0_UpI/AAAAAAAAArE/qgNgvaJDUJs/s1600-h/ipod-bluetooth.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_T5X_NpuyaQ0/S1J2yz0_UpI/AAAAAAAAArE/qgNgvaJDUJs/s400/ipod-bluetooth.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5427531116212867730" /&gt;&lt;/a&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;(Oh iPod... Why does your bluetooth suck so much?)&lt;br /&gt;


&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;One of the better features in iPhone OS 3.0 was that it enabled you to use the Bluetooth module hidden within second generation iPods (and of course third gen now).  Although I was initially excited at this prospect, I realized quickly that I had basically no reason to use the Bluetooth - after all I don't have a Bluetooth headset and its not like Apple would ever let you &lt;i&gt;sync&lt;/i&gt; it wirelessly to your computer...  So, while the functionality was cool, I never really had a need for it until recently when I got a bluetooth enabled car stereo.  &lt;/div&gt;
&lt;br /&gt;
&lt;div style="text-align: left;"&gt;The prospect of having no wires running everywhere in my car to get my iPod to play over the stereo has long been a dream of mine, and now that I have it working, it's pretty amazing.  Until recently however; I was stuck with choppy playback and a spotty bluetooth connection on my iPod - which after doing some Googling for 'iPod touch 2G bluetooth sucks' returned some interesting results.  According to some users, the iPod was given a really horrible bluetooth module, so I was left feeling ripped off by Apple for putting in terrible hardware - after all I knew it wasn't my stereo since it would play music from my phone with no choppiness.  I considered switching all my music over to my phone, but I kept reminding myself that, "No, I bought this damn iPod to play my music, and I'm going to use it."&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;

&lt;/div&gt;&lt;div style="text-align: left;"&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;So after doing some more reading, I discovered that bluetooth operates on the already crowded 2.4 GHz frequency, and as it turns out something else on the device runs in the same frequency - WiFi.   So after reading some postings by people on a forum, I decided to turn off the WiFi and give the bluetooth some time to try on its own.  Guess what!  My music streams to my stereo almost completely uninterrupted and the connection almost never drops!&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;

&lt;/div&gt;&lt;div style="text-align: left;"&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;So the solution is surprisingly simple, just turn off WiFi when using bluetooth (unless you're already connected to a network). &lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;&lt;br /&gt;

&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;I think the reason behind the choppiness is not due to the fact that the WiFi is being used but instead that the iPod scans for WiFi networks.  If &lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;you notice, the iPod is periodically scanning for wireless networks in the background to connect to, and when it does so - the entire iPod lags up (not just the Bluetooth).  Now imagine all the networks the iPod is encountering as you're driving down a residential street...  And I think you might just see why the audio starts getting choppy :)&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;
&lt;/div&gt;&lt;p class="mobile-photo"&gt;
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4606268956541116064-8998160716376497110?l=markgodwin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://markgodwin.blogspot.com/feeds/8998160716376497110/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://markgodwin.blogspot.com/2010/01/blog-post.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4606268956541116064/posts/default/8998160716376497110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4606268956541116064/posts/default/8998160716376497110'/><link rel='alternate' type='text/html' href='http://markgodwin.blogspot.com/2010/01/blog-post.html' title='How to make your iPod 2G/3G bluetooth not suck'/><author><name>Mark Godwin</name><uri>https://profiles.google.com/111969735768037912549</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3h_c-FUo2fY/AAAAAAAAAAI/AAAAAAAAAxY/9b0GPmKirzE/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_T5X_NpuyaQ0/S1J2yz0_UpI/AAAAAAAAArE/qgNgvaJDUJs/s72-c/ipod-bluetooth.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4606268956541116064.post-5101813471008219704</id><published>2009-08-20T01:00:00.000-07:00</published><updated>2012-01-10T14:31:49.172-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tip'/><category scheme='http://www.blogger.com/atom/ns#' term='pointers'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>C++: Reference to Pointer</title><content type='html'>Recently working with some code, I came across an interesting concept - references to pointers.  What does that even mean?  Why would you need a reference to a pointer - ever?
&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
After spending some time with my friend Google, I found out the answer.  Suppose we have these two function definitions, and a main function:&lt;/div&gt;
&lt;pre class="prettyprint"&gt;
void function_a(int *&amp;amp; a) {
*a += 5;
int * c = new int(7);
a = c;
}&lt;/pre&gt;
&lt;div&gt;
&lt;pre class="prettyprint"&gt;
void function_b(int * a) {
*a += 5;
int * c = new int(7);
a = c;
}
&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;pre class="prettyprint"&gt;
int main() {
int * myInt = new int(5);
int * myInt2 = new int(5);

function_a(myInt);
// what is the value of myInt?

function_b(myInt2);
// what is the value of myInt2?

return 0;
}&lt;/pre&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Analysis&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
Above, in '&lt;i&gt;function_a&lt;/i&gt;' we're actually passing in '&lt;i&gt;int *&amp;amp; a&lt;/i&gt;', which is a '&lt;i&gt;reference to a pointer&lt;/i&gt;' - a better way to think of this as passing in a '&lt;i&gt;pointer by reference&lt;/i&gt;'.  Now, I admit, when I first saw this I thought it was called a '&lt;i&gt;pointer to a reference&lt;/i&gt;' but I'm not really sure what that actually would mean.  So for now, just take my word for it that it's called a reference to a pointer. :)&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
Ok, well if you look at '&lt;i&gt;function_b&lt;/i&gt;', it's passing in it's paramter by pointer only ('&lt;i&gt;int * a&lt;/i&gt;').  Both functions do the same operations within their bodies, so whats with the ampersand in function_a?  Lets assume that you compiled this application and ran it.  Using the int main above, you would expect the value of myInt to be 7 after function_a, right?  How about for myInt2?  Again, you'd expect it to be 7 after function_b.  That's where you're wrong though.  After running the main function above you'll get this output:&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;myInt = 7&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;myInt2 = 10&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;div&gt;
Hooray for unexpected results!  The reasoning behind this actually makes sense when you realize this rule for C++:&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;
&lt;/b&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;b&gt;&lt;/b&gt;&lt;br /&gt;
&lt;blockquote&gt;
&lt;b&gt;All parameters are passed by value, unless the ampersand is specified.&lt;/b&gt;&lt;/blockquote&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;
Yes, even pointers are passed by value, meaning that a local copy is made for that function.  This gets confusing because a pointer simply stores a memory address - and you can change the value at that memory address.  The key though, is that if you make a local copy of that memory address in another variable, you can still modify the area in memory that memory address refers to, but now since it's a copy of that, if you try to change the address, it only changes for the scope the variable lives in.  Confused?  Lets see an example:&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
int * outside - points to memory at 0xFF9999, and lets say the value at that address is the integer '27'.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
suppose we write&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;pre class="prettyprint"&gt;
int * outside = new int(27);
function_b(outside);  // Using function_b from above
&lt;/pre&gt;
&lt;div&gt;
&lt;ol&gt;
&lt;li&gt;Inside function_b, our local int pointer 'a' now has a copy of that memory address 0xFF9999.  &lt;/li&gt;
&lt;li&gt;We first add 5 to the value at that address the way we normally would... So, 27+5 = 32.  Now 'a' has a value of 32.  And so does 'outside', since they both point to the same location.  This is what we expected!&lt;/li&gt;
&lt;li&gt;Now we initialize int * c = new int(7) - so 'c' has a value of 7 and lets say it has an address of 0x22CCCC.  &lt;/li&gt;
&lt;li&gt;Then we set the address of 'a' to 'c'.   Well 'a' now has the address 0x22CCCC, and consequently the value 7, but we're no longer changing the 'outside' pointer value, since 'a' was a copy of 0xFF9999.  So 'outside' still is pointing to 0xFF9999, and 'a' is pointing to '0x22CCCC'.&lt;/li&gt;
&lt;li&gt;The function returns, 'outside' now has a value of 32, and the memory at address 0x22CCCC has been leaked since nothing is pointing to it any longer!&lt;/li&gt;
&lt;/ol&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;How Passing a Pointer by Reference Solves this Problem&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;
When we pass the pointer by reference, as in function_a, the local variable 'a' is no longer a copy of the memory address that 'outside' points to, it literally is the variable 'outside'.  Therefore setting the address of 'a' to 'c', will actually change the value of 'outside' to 7, as it changes the address of 'outside'.  (You may have noticed that function_a also leaks memory as it never deletes the memory that 'a' pointed to before switching to 'c' as well!)&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;
Hopefully this explanation ends up helping someone out there that may encounter this problem, which seems to be some what not well documented and untaught in basic programming classes in school!&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;
Feel free to post about your experiences with references to pointers below.&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
Thanks!&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;script src="http://w.sharethis.com/button/sharethis.js#tabs=web%2Cpost%2Cemail&amp;amp;charset=utf-8&amp;amp;style=default&amp;amp;publisher=45ea738d-bc9a-4f32-933e-23ef4cfac22e" type="text/javascript"&gt;
&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4606268956541116064-5101813471008219704?l=markgodwin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://markgodwin.blogspot.com/feeds/5101813471008219704/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://markgodwin.blogspot.com/2009/08/c-reference-to-pointer.html#comment-form' title='13 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4606268956541116064/posts/default/5101813471008219704'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4606268956541116064/posts/default/5101813471008219704'/><link rel='alternate' type='text/html' href='http://markgodwin.blogspot.com/2009/08/c-reference-to-pointer.html' title='C++: Reference to Pointer'/><author><name>Mark Godwin</name><uri>https://profiles.google.com/111969735768037912549</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3h_c-FUo2fY/AAAAAAAAAAI/AAAAAAAAAxY/9b0GPmKirzE/s512-c/photo.jpg'/></author><thr:total>13</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4606268956541116064.post-1207202227248467215</id><published>2009-08-19T21:32:00.000-07:00</published><updated>2009-08-20T00:16:22.973-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tip'/><category scheme='http://www.blogger.com/atom/ns#' term='car'/><category scheme='http://www.blogger.com/atom/ns#' term='mirror'/><title type='text'>Random Tip of the Month - Eliminate Blind Spots in your Car</title><content type='html'>I recently read an &lt;a href="http://wheels.blogs.nytimes.com/2009/08/18/are-blind-spots-a-myth/?no_interstitial"&gt;article&lt;/a&gt; on the New York Times which talked about a new device Ford is coming out with that alerts you to a car being present in your blind spot by lighting up a light on the respective side of your rear view mirror.  Initially I thought, "This is genius!"  but after reading on a little bit further I found that you can position your car mirrors in a certain position so as to completely remove blind spots from your car for free.&lt;div&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;From the New York Times article:&lt;/div&gt;&lt;br /&gt;&lt;div&gt;
&lt;div class="Apple-style-span" style="color: rgb(51, 51, 51); line-height: 21px; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;blockquote&gt;"The driver leans his head against the driver’s window and sets the mirror so that the side of the vehicle is just visible. Then, the driver leans to the middle of the vehicle (between the front seats) and does the same thing with the passenger-side mirror."&lt;/blockquote&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
I set out to test out this theory - after work, I placed my head against the driver's side window, adjusted until the side of the car was just along the side of the mirror at this angle...kind of how I would normally have it in my driver side mirror.   Then I moved my head to the middle of the car and adjusted the right side mirror in the same manner as the other one from this perspective.  OK! All set to go.&lt;div&gt;
&lt;/div&gt;&lt;br /&gt;&lt;div&gt;When I started driving, it was weird.  I could see my surroundings moving quickly around me, something I guess I just never noticed before, maybe because my car was a static portion of the image in the mirror?  Anyways, it was a little strange, but after I got on the highway, it was beautiful! I felt like I could see everything around me at all times!  It was a little hard to adjust to at first, because I'm SO used to checking my blind spot but now I just need to do a little glance at the mirror and I'm good to go!&lt;/div&gt;&lt;br /&gt;&lt;div&gt;
&lt;/div&gt;&lt;div&gt;I suggest just giving it a shot if you're skeptical, after all - you can just change them back!  Let me know of your experiences with this little trick in the comments below!&lt;/div&gt;&lt;br /&gt;&lt;div&gt;
&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;&lt;span class="Apple-style-span"  style="color:#FF6666;"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;DISCLAIMER: I'm not held responsible for any damage to your car or you or anyone else because you adjusted your mirrors differently!  I found this works for me, and you try it at your own risk!&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;


&lt;script type="text/javascript" src="http://w.sharethis.com/button/sharethis.js#tabs=web%2Cpost%2Cemail&amp;amp;charset=utf-8&amp;amp;style=default&amp;amp;publisher=45ea738d-bc9a-4f32-933e-23ef4cfac22e"&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4606268956541116064-1207202227248467215?l=markgodwin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://markgodwin.blogspot.com/feeds/1207202227248467215/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://markgodwin.blogspot.com/2009/08/random-tip-of-month-eliminate-blind.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4606268956541116064/posts/default/1207202227248467215'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4606268956541116064/posts/default/1207202227248467215'/><link rel='alternate' type='text/html' href='http://markgodwin.blogspot.com/2009/08/random-tip-of-month-eliminate-blind.html' title='Random Tip of the Month - Eliminate Blind Spots in your Car'/><author><name>Mark Godwin</name><uri>https://profiles.google.com/111969735768037912549</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3h_c-FUo2fY/AAAAAAAAAAI/AAAAAAAAAxY/9b0GPmKirzE/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4606268956541116064.post-8699944323050493199</id><published>2009-03-16T14:20:00.001-07:00</published><updated>2009-03-16T14:39:15.850-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wikipedia'/><category scheme='http://www.blogger.com/atom/ns#' term='Simple'/><category scheme='http://www.blogger.com/atom/ns#' term='tip'/><category scheme='http://www.blogger.com/atom/ns#' term='simple english'/><category scheme='http://www.blogger.com/atom/ns#' term='easy'/><title type='text'>Simple English Wikipedia</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T5X_NpuyaQ0/Sb7CsTCizzI/AAAAAAAAAio/XRBny59OJPA/s1600-h/simpleenglish.gif"&gt;&lt;img style="display:block; border:1px solid #000000; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 136px; height: 160px;" src="http://4.bp.blogspot.com/_T5X_NpuyaQ0/Sb7CsTCizzI/AAAAAAAAAio/XRBny59OJPA/s400/simpleenglish.gif" border="0" alt="" id="BLOGGER_PHOTO_ID_5313898676624740146"&gt;&lt;/a&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;The simple english Wikipedia makes it easy for everyone to learn!&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-size: 10px;"&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;So the image above kinda looks like a joke but I guarantee you it's completely legitimate.  The &lt;a href="http://simple.wikipedia.org/"&gt;Simple English Wikipedia&lt;/a&gt; offers 'dumbed down' versions of standard Wikipedia articles.  &lt;/div&gt;&lt;div style="text-align: left;"&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;It's great if you're just looking for a short summary of a potentially confusing topic like quantum mechanics (or any math article really), check out the simple version for a very easy to understand introduction/outline.  When you feel like you've got a good grasp on the basics, then you can delve into the real Wikipedia article.
&lt;/div&gt;&lt;div style="text-align: left;"&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;You can visit any wikipedia page in simple form by changing the url from &lt;a href="http://en.wikipedia.org/wiki/Database"&gt;http://en.wikipedia.org/wiki/Database&lt;/a&gt; to &lt;a href="http://simple.wikipedia.org/wiki/Database"&gt;http://&lt;/a&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;a href="http://simple.wikipedia.org/wiki/Database"&gt;simple&lt;/a&gt;&lt;/span&gt;&lt;a href="http://simple.wikipedia.org/wiki/Database"&gt;.wikipedia.org/wiki/Database&lt;/a&gt;.&lt;/div&gt;&lt;div style="text-align: left;"&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;If you know any other cool things like this post them in the comments!&lt;/div&gt;

&lt;script type="text/javascript" src="http://w.sharethis.com/button/sharethis.js#tabs=web%2Cpost%2Cemail&amp;amp;charset=utf-8&amp;amp;style=default&amp;amp;publisher=45ea738d-bc9a-4f32-933e-23ef4cfac22e"&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4606268956541116064-8699944323050493199?l=markgodwin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://markgodwin.blogspot.com/feeds/8699944323050493199/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://markgodwin.blogspot.com/2009/03/simple-english-wikipedia.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4606268956541116064/posts/default/8699944323050493199'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4606268956541116064/posts/default/8699944323050493199'/><link rel='alternate' type='text/html' href='http://markgodwin.blogspot.com/2009/03/simple-english-wikipedia.html' title='Simple English Wikipedia'/><author><name>Mark Godwin</name><uri>https://profiles.google.com/111969735768037912549</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3h_c-FUo2fY/AAAAAAAAAAI/AAAAAAAAAxY/9b0GPmKirzE/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_T5X_NpuyaQ0/Sb7CsTCizzI/AAAAAAAAAio/XRBny59OJPA/s72-c/simpleenglish.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4606268956541116064.post-49411559489833468</id><published>2009-03-11T11:23:00.000-07:00</published><updated>2009-03-11T11:44:29.446-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Game development'/><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><title type='text'>Cocos2d - iPhone/iPod Touch Game Development</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T5X_NpuyaQ0/SbgB1oOtKGI/AAAAAAAAAig/XCLSSO-VeTM/s1600-h/cocos2d-Icon.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 187px; height: 186px;" src="http://2.bp.blogspot.com/_T5X_NpuyaQ0/SbgB1oOtKGI/AAAAAAAAAig/XCLSSO-VeTM/s400/cocos2d-Icon.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5311997781327292514" /&gt;&lt;/a&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;The Cocos2d Icon&lt;/span&gt;&lt;/div&gt;&lt;div&gt;
&lt;div&gt;Cocos2d is a 2d game library/framework, originally written in python, that was ported over to use Objective-C, and therefore can be used on the iPhone/iPod Touch.  It greatly simplifies some of the more difficult things with standard iPhone development and uses OpenGLES, which means it can take full advantage of the hardware.  Because it effectively serves as a wrapper around OpenGL, you can have a game up and running in a few hours, if you know what you're doing!  &lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;div&gt;I'll be posting some more tips about iPhone development in the next few days as well as additional information about cocos2d when I come across it in my code!  Have you seen anything better for iPhone development?&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;div&gt;Grab Cocos2d for the iPod/iPhone &lt;a href="http://code.google.com/p/cocos2d-iphone/"&gt;here&lt;/a&gt;.&lt;/div&gt;

&lt;script type="text/javascript" src="http://w.sharethis.com/button/sharethis.js#tabs=web%2Cpost%2Cemail&amp;amp;charset=utf-8&amp;amp;style=default&amp;amp;publisher=45ea738d-bc9a-4f32-933e-23ef4cfac22e"&gt;&lt;/script&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4606268956541116064-49411559489833468?l=markgodwin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://markgodwin.blogspot.com/feeds/49411559489833468/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://markgodwin.blogspot.com/2009/03/cocos2d-iphoneipod-touch-game.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4606268956541116064/posts/default/49411559489833468'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4606268956541116064/posts/default/49411559489833468'/><link rel='alternate' type='text/html' href='http://markgodwin.blogspot.com/2009/03/cocos2d-iphoneipod-touch-game.html' title='Cocos2d - iPhone/iPod Touch Game Development'/><author><name>Mark Godwin</name><uri>https://profiles.google.com/111969735768037912549</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3h_c-FUo2fY/AAAAAAAAAAI/AAAAAAAAAxY/9b0GPmKirzE/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_T5X_NpuyaQ0/SbgB1oOtKGI/AAAAAAAAAig/XCLSSO-VeTM/s72-c/cocos2d-Icon.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4606268956541116064.post-48920055956154412</id><published>2009-02-27T13:36:00.001-08:00</published><updated>2009-02-27T14:14:55.963-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Internet Explorer'/><category scheme='http://www.blogger.com/atom/ns#' term='IE Tester'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Development'/><title type='text'>IETester - IE 5.5 - IE 8 in one program</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T5X_NpuyaQ0/SahdBK0oVNI/AAAAAAAAAiQ/6HH9M55OkqQ/s1600-h/ietester.gif"&gt;&lt;img style="display:block; border:1px solid #000000; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 190px;" src="http://3.bp.blogspot.com/_T5X_NpuyaQ0/SahdBK0oVNI/AAAAAAAAAiQ/6HH9M55OkqQ/s400/ietester.gif" border="0" alt="" id="BLOGGER_PHOTO_ID_5307594435522483410" /&gt;&lt;/a&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;Great for testing your webpage in past versions of IE.&lt;/span&gt;
&lt;/div&gt;
IE6 is still one of the more mainstream browsers according to &lt;a href="http://www.w3counter.com/globalstats.php"&gt;W3 Counter&lt;/a&gt;.  It has about a 25% market share, only trumped by IE7 at 31% at the time of this posting.  So...how do you test these older browsers when Microsoft will only let you have the latest version of IE installed?  Well I came across this awesome product called IE Tester (picture above), which lets you choose which IE rendering engine to use, and simply opens up that browser in a tab.  It is definitely very useful for web development, so if you have windows you can grab it &lt;a href="http://www.my-debugbar.com/wiki/IETester/HomePage"&gt;here&lt;/a&gt; (Oh it's free of course).

&lt;script type="text/javascript" src="http://w.sharethis.com/button/sharethis.js#tabs=web%2Cpost%2Cemail&amp;amp;charset=utf-8&amp;amp;style=default&amp;amp;publisher=45ea738d-bc9a-4f32-933e-23ef4cfac22e"&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4606268956541116064-48920055956154412?l=markgodwin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://markgodwin.blogspot.com/feeds/48920055956154412/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://markgodwin.blogspot.com/2009/02/ietester-ie-55-ie-8-in-one-program.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4606268956541116064/posts/default/48920055956154412'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4606268956541116064/posts/default/48920055956154412'/><link rel='alternate' type='text/html' href='http://markgodwin.blogspot.com/2009/02/ietester-ie-55-ie-8-in-one-program.html' title='IETester - IE 5.5 - IE 8 in one program'/><author><name>Mark Godwin</name><uri>https://profiles.google.com/111969735768037912549</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3h_c-FUo2fY/AAAAAAAAAAI/AAAAAAAAAxY/9b0GPmKirzE/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_T5X_NpuyaQ0/SahdBK0oVNI/AAAAAAAAAiQ/6HH9M55OkqQ/s72-c/ietester.gif' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4606268956541116064.post-6799441565570853765</id><published>2009-02-19T12:42:00.000-08:00</published><updated>2009-02-24T12:28:10.026-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Command Prompt'/><title type='text'>Windows Vista/7 - Open Command Prompt Here</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T5X_NpuyaQ0/SaG6HQZUqiI/AAAAAAAAAho/acEf6lCmrJY/s1600-h/commandwindow.gif"&gt;&lt;img style="display:block; border:1px solid #000000; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 214px;" src="http://1.bp.blogspot.com/_T5X_NpuyaQ0/SaG6HQZUqiI/AAAAAAAAAho/acEf6lCmrJY/s400/commandwindow.gif" border="0" alt="" id="BLOGGER_PHOTO_ID_5305726469842184738" /&gt;&lt;/a&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;Probably the best thing since sliced bread...Or just really useful :)&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style="font-size:10px;"&gt;
&lt;/span&gt;&lt;/div&gt;As a semi-frequent user of the Windows command prompt, I find it frustrating that it always opens in the same folder, in my case "C:\Users\Mark".  I had previously discovered a power toy for Windows XP that enabled you to open a command prompt window in the current directory by right clicking on a folder in explorer, and clicking 'Open Command Window Here'.

Luckily, Microsoft decided that this was really sweet and actually integrated the functionality straight into Windows Vista/7, you just have to know how to get to it.  To have it appear in the right click menu, all you have to do is &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;press and hold shift and then right click&lt;/span&gt; on the folder you want to open the command prompt window at.  You'll get it to appear in the right click menu, like the picture above :)  Pretty Nifty!&lt;br /&gt;
&lt;script type="text/javascript" src="http://w.sharethis.com/button/sharethis.js#tabs=web%2Cpost%2Cemail&amp;amp;charset=utf-8&amp;amp;style=default&amp;amp;publisher=45ea738d-bc9a-4f32-933e-23ef4cfac22e"&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4606268956541116064-6799441565570853765?l=markgodwin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://markgodwin.blogspot.com/feeds/6799441565570853765/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://markgodwin.blogspot.com/2009/02/windows-vista7-open-command-prompt-here.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4606268956541116064/posts/default/6799441565570853765'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4606268956541116064/posts/default/6799441565570853765'/><link rel='alternate' type='text/html' href='http://markgodwin.blogspot.com/2009/02/windows-vista7-open-command-prompt-here.html' title='Windows Vista/7 - Open Command Prompt Here'/><author><name>Mark Godwin</name><uri>https://profiles.google.com/111969735768037912549</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3h_c-FUo2fY/AAAAAAAAAAI/AAAAAAAAAxY/9b0GPmKirzE/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_T5X_NpuyaQ0/SaG6HQZUqiI/AAAAAAAAAho/acEf6lCmrJY/s72-c/commandwindow.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4606268956541116064.post-5565308383640336952</id><published>2009-02-18T12:05:00.001-08:00</published><updated>2009-02-24T12:24:49.771-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Review'/><category scheme='http://www.blogger.com/atom/ns#' term='Tablet'/><title type='text'>Turn a Standard Laptop into a Tablet - Pen DUO</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T5X_NpuyaQ0/SZyIQ8LYrJI/AAAAAAAAAgY/TREFfaRqmlE/s1600-h/TabletWriting.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 100px;" src="http://2.bp.blogspot.com/_T5X_NpuyaQ0/SZyIQ8LYrJI/AAAAAAAAAgY/TREFfaRqmlE/s400/TabletWriting.gif" border="0" alt="" id="BLOGGER_PHOTO_ID_5304264285748767890" /&gt;&lt;/a&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;A little bit of writing that was done on my $350 Acer Laptop.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;A Tablet PC is a PC that you can take notes on, annotate pdf's, emails etc.  Also known as the best thing ever for a college student.  However, they tend to cost around $800 even for the cheapest ones, and that is just too far out of the price range for a poor college student like me.  So instead I found a way to turn my $350 Acer laptop into one!  It doesn't look completely ridiculous either...Minimizing ridicule is always a good thing :)
&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;The DUO&lt;/span&gt;&lt;/div&gt;&lt;div&gt;The product I found is called the DUO.  The company refers to it as a 'Pen Mouse' because it serves both mouse and pen functionalities. It looked legitimate enough after I found a couple videos on youtube such as this one, below:&lt;/div&gt;
&lt;div align="center"&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/qWZJrstIems&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/qWZJrstIems&amp;amp;hl=en&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;
&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;Notice that the size of the device at the top of the monitor is small and sexy.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;No ridiculing to be had here! :)&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;So, how does it work?  The pen sends out an ultrasonic sound (you can barely hear it if there's no background noise) and a reciever measures the time for the sound to travel to it - so by physics 101, you can derive the distance...because distance = velocity * time.  When you want to draw, lightly press the pen against the screen - this'll push the tip of the pen inward slightly and essentially click a switch in the pen, changing the signal, which tells the reciever to 'draw'.  Neat!&lt;/div&gt;&lt;div style="text-align: left;"&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Purchase it - $80-100&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;So if you're getting excited like I was, you're probably saying, "Sign me up!" but where can you purchase it, and how much does it cost?  A google search for 'Pen DUO' basically results in the company webpage (&lt;a href="http://www.penandfree.com/"&gt;http://www.penandfree.com&lt;/a&gt;) and that's about it.  The only place to actually purchase it is on Ebay, and all vendors are based out of Korea, because that's where the product is made.  So..this started to sound pretty sketchy, and in all honesty if I had not seen the video above I probably wouldn't have actually purchased it, but the vendor offered a full refund if the product didn't work as advertised, and paypal had buyer protection, so I felt pretty safe.  &lt;/div&gt;&lt;div style="text-align: left;"&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;The overall cost for me was &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;$98&lt;/span&gt;, and considering I spent $350 on my laptop I was still getting the tablet functionality for a good $300 less than the cheapest tablets on the market.  I found the same vendor selling it a week later for $78, so look around first!&lt;/div&gt;&lt;div style="text-align: left;"&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;A Review of the DUO&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;I recieved the item in a record 3 days from Korea, and with free shipping!  Most excellent.  It came in a pretty box that looked like an Apple product.&lt;/div&gt;&lt;div style="text-align: left;"&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T5X_NpuyaQ0/SZy4wXWKQMI/AAAAAAAAAgg/sVYNKH8vmDg/s1600-h/box.jpg"&gt;&lt;img style="display:block;border: 1px solid #000000; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_T5X_NpuyaQ0/SZy4wXWKQMI/AAAAAAAAAgg/sVYNKH8vmDg/s400/box.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5304317602175795394" /&gt;&lt;/a&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;Its as professional as I could get with a cellphone camera!  Pretty box though :)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;Inside was the unit and the pen, both of which were much smaller than I expected.&lt;/div&gt;&lt;div style="text-align: left;"&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T5X_NpuyaQ0/SZy5PoH2PnI/AAAAAAAAAgo/sSUlxYNppLQ/s1600-h/penandreciever.jpg"&gt;&lt;img style="display:block; border:1px solid #000000; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_T5X_NpuyaQ0/SZy5PoH2PnI/AAAAAAAAAgo/sSUlxYNppLQ/s400/penandreciever.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5304318139255111282" /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;It also came with a nice little carrying bag, replacement pen tips, a slew of manuals, a nice CD, and some batteries.&lt;/div&gt;&lt;div style="text-align: left;"&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T5X_NpuyaQ0/SZy5oCEYK5I/AAAAAAAAAgw/thLrIaB3T1s/s1600-h/thegoods.jpg"&gt;&lt;img style="display:block;border: 1px solid #000000; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_T5X_NpuyaQ0/SZy5oCEYK5I/AAAAAAAAAgw/thLrIaB3T1s/s400/thegoods.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5304318558536739730" /&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;&lt;div style="text-align: center;"&gt;Please note, the CD does exist, I just couldn't find it for this picture...but it comes with one :)
&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;Here's my awesome $350 Acer laptop, just to give an idea of what it will be attaching to.&lt;/div&gt;&lt;div style="text-align: left;"&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T5X_NpuyaQ0/SZy6bqw4AsI/AAAAAAAAAg4/og799jyREEA/s1600-h/regularlaptop.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px;border: 1px solid #000000; text-align:center;cursor:pointer; cursor:hand;width: 300px; height: 400px;" src="http://1.bp.blogspot.com/_T5X_NpuyaQ0/SZy6bqw4AsI/AAAAAAAAAg4/og799jyREEA/s400/regularlaptop.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5304319445634122434" /&gt;&lt;/a&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;She's oldish but gets me through all the development work I need to do :)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;The reciever attaches to the laptop via a pretty strong magnet.  Make sure you keep the reciever away from magnetically sensitive things (i.e. credit cards)!  The magnet is attached to the laptop with a very sticky adhesive.  You can place the reciever on the top, left side, or right side of the laptop.  I chose the top.&lt;/div&gt;&lt;div style="text-align: left;"&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T5X_NpuyaQ0/SZy6f2ozfeI/AAAAAAAAAhA/sjnSeXUaPjo/s1600-h/attachingmagnet.jpg" style="text-decoration: none;"&gt;&lt;img style="text-decoration: underline;display: block;border: 1px solid #000000; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 300px; height: 400px; " src="http://1.bp.blogspot.com/_T5X_NpuyaQ0/SZy6f2ozfeI/AAAAAAAAAhA/sjnSeXUaPjo/s400/attachingmagnet.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5304319517540974050" /&gt;&lt;/a&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;You'll want to be careful to place the magnet exactly where you want it - &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;because I'm not exactly sure you can reposition it very many times.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style="font-size:10px;"&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style="font-size:10px;"&gt;
&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Here's what it looks like when it is attached.&lt;/div&gt;&lt;div style="text-align: left;"&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T5X_NpuyaQ0/SZy6jl_Y1AI/AAAAAAAAAhI/-CROrDp8YVc/s1600-h/attached.jpg"&gt;&lt;img style="display:block;border: 1px solid #000000; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 300px; height: 400px;" src="http://1.bp.blogspot.com/_T5X_NpuyaQ0/SZy6jl_Y1AI/AAAAAAAAAhI/-CROrDp8YVc/s400/attached.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5304319581791769602" /&gt;&lt;/a&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;Pretty low profile :)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;Here's another angle.&lt;/div&gt;&lt;div style="text-align: left;"&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T5X_NpuyaQ0/SZy6tVi-F6I/AAAAAAAAAhY/SFkodtYIdcw/s1600-h/attached2.jpg"&gt;&lt;img style="display:block;border: 1px solid #000000; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 300px; height: 400px;" src="http://2.bp.blogspot.com/_T5X_NpuyaQ0/SZy6tVi-F6I/AAAAAAAAAhY/SFkodtYIdcw/s400/attached2.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5304319749176301474" /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;When you first plug it in, and insert the CD, all you need to do is install the calibration software.  I'm running the Windows 7 beta and it automatically detected that I had an input device that lets me write on the screen.  After a quick calibration like so...&lt;/div&gt;&lt;div style="text-align: left;"&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T5X_NpuyaQ0/SZ0Q1ts6E1I/AAAAAAAAAhg/FMg7EDV2QFs/s1600-h/calibrate.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer;border: 1px solid #000000; cursor:hand;width: 400px; height: 250px;" src="http://4.bp.blogspot.com/_T5X_NpuyaQ0/SZ0Q1ts6E1I/AAAAAAAAAhg/FMg7EDV2QFs/s400/calibrate.gif" border="0" alt="" id="BLOGGER_PHOTO_ID_5304414451099374418" /&gt;&lt;/a&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;Just gotta make sure it knows where the edges of your monitor are...&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style="font-size:10px;"&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style="font-size:10px;"&gt;
&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;I was able to write just as if I had a real Tablet PC!&lt;/div&gt;&lt;div style="text-align: left;"&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T5X_NpuyaQ0/SZy6pNq7gnI/AAAAAAAAAhQ/qSWU0PPFY0s/s1600-h/writingonscreen.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px;border: 1px solid #000000; height: 300px;" src="http://2.bp.blogspot.com/_T5X_NpuyaQ0/SZy6pNq7gnI/AAAAAAAAAhQ/qSWU0PPFY0s/s400/writingonscreen.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5304319678342726258" /&gt;&lt;/a&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;There really isn't any lag, and it feels like you're writing!&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;But wait, there's more!&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;So the other really cool thing about this device is that you can remove it from the top of your laptop, place it on your desk, clip a piece of paper into it and write on the paper and have it transcribe it directly onto your monitor as well!  There are replacement ball-point pen tips that enable you to take notes on notebook paper and retain a digital copy for those of you that might find writing on the screen vertically a bit awkward.&lt;/div&gt;&lt;div style="text-align: left;"&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Concerns&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;ol&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;Is it good to write on my LCD screen that wasn't designed to be a tablet?&lt;/span&gt;
     - I don't think it is really good to do it directly with the pen...it has a felt tip, which is pretty gentle on the screen, but I think you should definitely invest in a screen protector if you're going to get one of these.  They go for about $10 on Ebay.

&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;The pen freaks out in some rooms, and not in others?
&lt;span class="Apple-style-span" style="font-style: normal;"&gt;    - This has to do with the fact that some light conditions, such as those offered by flourescent lights, for example, can output a very deep humming sound that can interfere with the sound emitted from the pen.  This causes the pen to act 'broken' even though it isn't.  I've found that this is rarely ever an issue although I do have one classroom where this is the case - luckily I don't really ever take notes in that class, so just something to keep in mind.

&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;Writing on the screen vertically looks really awkward.
&lt;span class="Apple-style-span" style="font-style: normal;"&gt;    - Honestly, this was the thing I was most concerned about.  Standard Tablet PC's allow the monitor to rotate around and lie flat over your keyboard so it's like you're writing on a piece of paper.  I do wish that my laptop was capable of such a feat, but in all truthfulness you do get pretty used to it after a while.  Yes... you probably won't have perfect accuracy or your finest handwriting, but you can definitely take notes, and it's not horribly awkward.  Truthfully it'd be the one thing that I would change...but it really has nothing to to with the product.  You could always just put the reciever on a flat surface and just write on that, as it doesn't know what is your monitor and what isn't :)&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Verdict&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;This is probably the cheapest solution to obtaining tablet functionality without spending huge amounts of money on a tablet.  It works really well and install was a breeze, plus it looks really slim and sexy.  It has a few drawbacks, although they're certainly able to be worked around or just overlooked if you're desiring tablet functionality.  For me, it's been a great investment and a great study tool.  I didn't see any reviews for this product out there on the internet, so hopefully it helps you decide whether or not it's worth the money.&lt;/div&gt;&lt;div style="text-align: left;"&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;If you have any questions, comments or advice, please leave a comment below!&lt;/div&gt;&lt;div style="text-align: left;"&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;Thanks!&lt;/div&gt;
&lt;script type="text/javascript" src="http://w.sharethis.com/button/sharethis.js#tabs=web%2Cpost%2Cemail&amp;amp;charset=utf-8&amp;amp;style=default&amp;amp;publisher=45ea738d-bc9a-4f32-933e-23ef4cfac22e"&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4606268956541116064-5565308383640336952?l=markgodwin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://markgodwin.blogspot.com/feeds/5565308383640336952/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://markgodwin.blogspot.com/2009/02/turn-standard-laptop-into-tablet-pen.html#comment-form' title='16 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4606268956541116064/posts/default/5565308383640336952'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4606268956541116064/posts/default/5565308383640336952'/><link rel='alternate' type='text/html' href='http://markgodwin.blogspot.com/2009/02/turn-standard-laptop-into-tablet-pen.html' title='Turn a Standard Laptop into a Tablet - Pen DUO'/><author><name>Mark Godwin</name><uri>https://profiles.google.com/111969735768037912549</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3h_c-FUo2fY/AAAAAAAAAAI/AAAAAAAAAxY/9b0GPmKirzE/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_T5X_NpuyaQ0/SZyIQ8LYrJI/AAAAAAAAAgY/TREFfaRqmlE/s72-c/TabletWriting.gif' height='72' width='72'/><thr:total>16</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4606268956541116064.post-5415310019880477415</id><published>2008-12-05T10:35:00.001-08:00</published><updated>2009-02-24T12:27:30.888-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='snippage'/><category scheme='http://www.blogger.com/atom/ns#' term='remember the milk'/><category scheme='http://www.blogger.com/atom/ns#' term='adobe air'/><title type='text'>RTM On Vista - Revisited</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T5X_NpuyaQ0/STl4dDHCrVI/AAAAAAAAALk/PmJ0l2-6pb4/s1600-h/airandrtm.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 300px; height: 100px;border:0px solid #FFFFFF;" src="http://2.bp.blogspot.com/_T5X_NpuyaQ0/STl4dDHCrVI/AAAAAAAAALk/PmJ0l2-6pb4/s400/airandrtm.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5276380878887628114" /&gt;&lt;/a&gt;
It's been a couple months, but a user has posted an awesome link to another solution for getting RTM to display on your desktop.  It's a combination of Adobe Air and Snippage, and seems to be a little more graceful than the minibrowser approach.  (Incidentally, this should also work for XP users!)  The process of what to do can be found here (it's in French but you can google 'translate webpage' and find a website translator): &lt;a href="http://www.spawnrider.net/blogs/2008/12/04/rtm-todolist-sur-votre-bureau-via-adobe-air/"&gt;&lt;/a&gt;&lt;div&gt;&lt;a href="http://www.spawnrider.net/blogs/2008/12/04/rtm-todolist-sur-votre-bureau-via-adobe-air/"&gt;http://www.spawnrider.net/blogs/2008/12/04/rtm-todolist-sur-votre-bureau-via-adobe-air/&lt;/a&gt;&lt;div&gt;
&lt;/div&gt;&lt;div&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T5X_NpuyaQ0/STl4rp3EXeI/AAAAAAAAALs/f2OVw167-9Q/s1600-h/rtmsnipdesk.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 267px;" src="http://2.bp.blogspot.com/_T5X_NpuyaQ0/STl4rp3EXeI/AAAAAAAAALs/f2OVw167-9Q/s400/rtmsnipdesk.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5276381129807781346" /&gt;&lt;/a&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;Rtm on my desktop via Adobe Air + Snippage&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;div&gt;Which one do you prefer?  Weigh in on the comments below!  Happy holidays!&lt;/div&gt;&lt;/div&gt;
&lt;script type="text/javascript" src="http://w.sharethis.com/button/sharethis.js#tabs=web%2Cpost%2Cemail&amp;amp;charset=utf-8&amp;amp;style=default&amp;amp;publisher=45ea738d-bc9a-4f32-933e-23ef4cfac22e"&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4606268956541116064-5415310019880477415?l=markgodwin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://markgodwin.blogspot.com/feeds/5415310019880477415/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://markgodwin.blogspot.com/2008/12/rtm-on-vista-revisited.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4606268956541116064/posts/default/5415310019880477415'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4606268956541116064/posts/default/5415310019880477415'/><link rel='alternate' type='text/html' href='http://markgodwin.blogspot.com/2008/12/rtm-on-vista-revisited.html' title='RTM On Vista - Revisited'/><author><name>Mark Godwin</name><uri>https://profiles.google.com/111969735768037912549</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3h_c-FUo2fY/AAAAAAAAAAI/AAAAAAAAAxY/9b0GPmKirzE/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_T5X_NpuyaQ0/STl4dDHCrVI/AAAAAAAAALk/PmJ0l2-6pb4/s72-c/airandrtm.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4606268956541116064.post-822020587055687935</id><published>2008-10-06T12:01:00.000-07:00</published><updated>2009-08-26T15:49:04.622-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='remember the milk'/><title type='text'>Remember the Milk on your Vista Desktop!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T5X_NpuyaQ0/SOumS0CzUpI/AAAAAAAAAJQ/pjx-6Z7SElU/s1600-h/rtmdesk.jpg"&gt;&lt;/a&gt;&lt;div style="text-align: center;"&gt;
&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T5X_NpuyaQ0/SOp0nQAkpGI/AAAAAAAAAJA/QIGVJw6W9ws/s1600-h/rtm.png"&gt;&lt;img style="display:block; margin:0px auto 10px;border:0px solid #FFFFFF; text-align:center;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_T5X_NpuyaQ0/SOp0nQAkpGI/AAAAAAAAAJA/QIGVJw6W9ws/s200/rtm.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5254140132942193762" /&gt;&lt;/a&gt;
Remember the Milk is one of the best websites out there.  If you aren't familiar with it, you should definitely go check it out! One of my biggest gripes with it however is that you can't do task list management from your desktop... I'm really lazy and so forgetful that I often forget a task as I am opening the browser and navigating to rememberthemilk.com to put it in the task list! (If that sounds pathetic, just go try it yourself like 50 times...you'll get tired of it too =) )
&lt;br /&gt;&lt;br /&gt;
&lt;b&gt;My Solution&lt;/b&gt;
&lt;br /&gt;&lt;br /&gt;
So I run Windows Vista...  and I wanted a sidebar gadget to interact with my task list from my desktop.  What's more convienent for updating your task list than your desktop?  The folks at rememberthemilk.com put together an awesome &lt;a href="http://blog.rememberthemilk.com/2008/07/5-cool-ways-to-interact-with-remember.html" target="_blank"&gt;blog post&lt;/a&gt; detailing alternative ways to interact with your task list in a bunch of different operating systems, but none of them either: were for Vista, or did what I wanted.&lt;br /&gt;&lt;br /&gt;

So...just when I was about to give up (two months of searching, and potentially developing one on my own), I found &lt;a href="http://thirderror.com/your-remember-the-milk-to-do-list-on-the-desktop/" target="_blank"&gt;this article&lt;/a&gt; that detailed how to use the 'Active Desktop' feature of Windows XP with Remember the Milk!  If you check out the article you'll see its exactly the thing I was looking for...except on XP.  So I searched for the 'Active Desktop' feature on Vista and soon found out that they stripped this functionality out of Vista for some reason or another...  Basically all it does though is just display a webpage on your desktop.&lt;br /&gt;&lt;br /&gt;

So I have kinda made a sidebar gadget in the past and knew they're made up of HTML, javascript and XML (I think?)...so I figured it wasn't a stretch for there to be a browser gadget for the sidebar.  I searched the sidebar gadget gallery at Microsoft.com and found a sweet gadget called Minibrowser!!  A couple tweaks and I got RTM on my desktop, just like the active desktop feature in XP!  Needless to say I'm pretty happy now, and if you'd like to do this in Vista, check out the step by step instructions below:&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Get the gadget&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;So you're looking for a gadget called 'Minibrowser' which can be found at &lt;a href="http://gallery.live.com/liveItemDetail.aspx?li=83ad7bc9-48d7-455f-b659-d3f58cc11155&amp;amp;bt=1&amp;amp;pl=1"&gt;this link&lt;/a&gt;.  Click download, install..install, and you're good to go!  Add the gadget to your sidebar.

&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Login to Remember the Milk&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Fire up Internet Explorer (this is because Minibrowser uses IE for page rendering), and go to &lt;a href="http://www.rememberthemilk.com/"&gt;http://www.rememberthemilk.com&lt;/a&gt; and login.  Make sure to check the 'remember me on this computer' checkbox!

&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Point the gadget to the URL&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;In the gadget's address bar, set the url to: 
&lt;span class="Apple-style-span" style=" white-space: pre; "&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 153, 153);"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;http://rememberthemilk.com/services/modules/googleig/ &lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Customize the gadget
&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;br /&gt;Assuming nothing's gone wrong, you should have your remember the milk task list on your Vista desktop now!  You'll notice that you have a somewhat ugly address bar and some buttons...and status bar, but if you click on the settings icon for the gadget, you can turn all those pesky things off.  Also, there's a tab called 'size' which enables you to resize the gadget so you can get the optimum viewing of your RTM task list.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;
&lt;/div&gt;&lt;div style="text-align: center;"&gt;
&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T5X_NpuyaQ0/SOumS0CzUpI/AAAAAAAAAJQ/pjx-6Z7SElU/s1600-h/rtmdesk.jpg"&gt;&lt;img src="http://4.bp.blogspot.com/_T5X_NpuyaQ0/SOumS0CzUpI/AAAAAAAAAJQ/pjx-6Z7SElU/s400/rtmdesk.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5254476232396067474" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; " /&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;RTM on my desktop!&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;That's it!  Feel free to comment/post suggestions if you have any!  Thanks!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;-Mark&lt;/div&gt;
&lt;script type="text/javascript" src="http://w.sharethis.com/button/sharethis.js#tabs=web%2Cpost%2Cemail&amp;amp;charset=utf-8&amp;amp;style=default&amp;amp;publisher=45ea738d-bc9a-4f32-933e-23ef4cfac22e"&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4606268956541116064-822020587055687935?l=markgodwin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://markgodwin.blogspot.com/feeds/822020587055687935/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://markgodwin.blogspot.com/2008/10/remember-milk-on-your-vista-desktop.html#comment-form' title='30 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4606268956541116064/posts/default/822020587055687935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4606268956541116064/posts/default/822020587055687935'/><link rel='alternate' type='text/html' href='http://markgodwin.blogspot.com/2008/10/remember-milk-on-your-vista-desktop.html' title='Remember the Milk on your Vista Desktop!'/><author><name>Mark Godwin</name><uri>https://profiles.google.com/111969735768037912549</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3h_c-FUo2fY/AAAAAAAAAAI/AAAAAAAAAxY/9b0GPmKirzE/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_T5X_NpuyaQ0/SOp0nQAkpGI/AAAAAAAAAJA/QIGVJw6W9ws/s72-c/rtm.png' height='72' width='72'/><thr:total>30</thr:total></entry></feed>
