<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;D0MNRn8_eyp7ImA9WhRaE0o.&quot;"><id>tag:blogger.com,1999:blog-7810909564320569203</id><updated>2012-02-15T22:58:17.143-08:00</updated><category term="nodejs" /><category term="images" /><category term="nodejs debugging" /><category term="contracting" /><category term="Computers" /><category term="humanitarian" /><category term="debugging" /><category term="thinkofthechildren" /><category term="politics" /><title>For The Community</title><subtitle type="html">focused on community, programming, and encouraging others to be involved with both.</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://blog.danielbeardsley.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://blog.danielbeardsley.com/" /><author><name>Danny Beardsley</name><uri>http://www.blogger.com/profile/17827328767469242609</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>18</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/ForTheCommunity" /><feedburner:info uri="forthecommunity" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:browserFriendly></feedburner:browserFriendly><entry gd:etag="W/&quot;DUMCSHw5cCp7ImA9WhdaEUs.&quot;"><id>tag:blogger.com,1999:blog-7810909564320569203.post-4375907831211008156</id><published>2011-10-20T20:24:00.000-07:00</published><updated>2011-10-20T20:24:29.228-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-20T20:24:29.228-07:00</app:edited><title>strict-object.js</title><content type="html">&lt;a href="https://github.com/danielbeardsley/strict-object"&gt;Github Repo&lt;/a&gt; and &lt;a href="http://search.npmjs.org/#/strict-object"&gt;npm package&lt;/a&gt;

&lt;p&gt;I love javascript, and descriptive property names, but occasionally I suffer from property name typos.  It's great to be able to refer to a property of an object in &lt;tt&gt;x['several'] + x.ways&lt;/tt&gt;, but there are dangers. A mistyped property name won't throw an error on get or set and you may not know at all till your results are not what you expected.&lt;/p&gt;

&lt;h3&gt;strict-object&lt;/h3&gt;
&lt;p&gt;To deal with this issue, I created a very simple, very small, and very reusable (node.js, browsers, windows script host) helper called &lt;a href='https://github.com/danielbeardsley/strict-object'&gt;strict-object&lt;/a&gt;. It's on github, so feel free to fork away and contribute.&lt;/p&gt;

Here are some examples:
&lt;script src="https://gist.github.com/1302975.js?file=strict-object-examples.js"&gt;&lt;/script&gt;

&lt;p&gt;Note: It has a full suite of tests and all functions are on the prototype, so a StrictObject doesn't consume any more memory than a regular object.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7810909564320569203-4375907831211008156?l=blog.danielbeardsley.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.danielbeardsley.com/feeds/4375907831211008156/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7810909564320569203&amp;postID=4375907831211008156" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7810909564320569203/posts/default/4375907831211008156?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7810909564320569203/posts/default/4375907831211008156?v=2" /><link rel="alternate" type="text/html" href="http://blog.danielbeardsley.com/2011/10/strict-objectjs.html" title="strict-object.js" /><author><name>Danny Beardsley</name><uri>http://www.blogger.com/profile/17827328767469242609</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;D0EDQns5cCp7ImA9WhdWFU0.&quot;"><id>tag:blogger.com,1999:blog-7810909564320569203.post-3632795115562243778</id><published>2011-09-08T11:14:00.000-07:00</published><updated>2011-09-08T11:14:33.528-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-08T11:14:33.528-07:00</app:edited><title>PHP is dreadful 2: implications of array copying</title><content type="html">As a follow-up to my &lt;a href="http://blog.danielbeardsley.com/2011/09/php-is-dreadful-variable-assignment.html"&gt;last lament&lt;/a&gt;, the fact that php copies arrays on variable assignment means that pretty much anything you do with an array automatically copies it.&lt;br /&gt;
&lt;br /&gt;
When using &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;foreach&lt;/span&gt; to iterate over an array, php copies the array, and if the values are arrays, it copies them too. &amp;nbsp;This is terrible, and can cause horrible inefficiencies when working with large data structures. &amp;nbsp;This is mentioned in the docs, but it's a &lt;a href="http://php.net/manual/en/control-structures.foreach.php"&gt;small note&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
There is an easy way to get around this default behavior, but it's not obvious and this one character can cause HUGE slowdowns and massive memory use if you have a&amp;nbsp;sizable&amp;nbsp;2D array.&lt;br /&gt;
&lt;br /&gt;
Workaround&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #666666; font-family: 'Courier New', Courier, monospace;"&gt;# foreach by reference (note the '&amp;amp;')&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #666666; font-family: 'Courier New', Courier, monospace;"&gt;foreach($array as $key =&amp;gt; &amp;amp;$value){&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #666666; font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; // ...&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #666666; font-family: 'Courier New', Courier, monospace;"&gt;}&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7810909564320569203-3632795115562243778?l=blog.danielbeardsley.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.danielbeardsley.com/feeds/3632795115562243778/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7810909564320569203&amp;postID=3632795115562243778" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7810909564320569203/posts/default/3632795115562243778?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7810909564320569203/posts/default/3632795115562243778?v=2" /><link rel="alternate" type="text/html" href="http://blog.danielbeardsley.com/2011/09/php-is-dreadful-2-implications-of-array.html" title="PHP is dreadful 2: implications of array copying" /><author><name>Danny Beardsley</name><uri>http://www.blogger.com/profile/17827328767469242609</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total></entry><entry gd:etag="W/&quot;CU4FQHY9eCp7ImA9WhdWFU0.&quot;"><id>tag:blogger.com,1999:blog-7810909564320569203.post-75446983223671195</id><published>2011-09-08T10:45:00.000-07:00</published><updated>2011-09-08T10:45:11.860-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-08T10:45:11.860-07:00</app:edited><title>PHP is dreadful: variable assignment</title><content type="html">&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;PHP is dreadful.&lt;/span&gt;&lt;div&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;I bet everyone knows this but me, but really, it's dreadful.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;Arrays are shallow copied on assignment to a new variable.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;COPIED, on ASSIGNMENT, by DEFAULT.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;I don't know who thought this was a good idea, but they were wrong.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;Example:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class="Apple-style-span" style="color: #666666; font-family: 'Courier New', Courier, monospace;"&gt;$a = array(1,2,3);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class="Apple-style-span" style="color: #666666; font-family: 'Courier New', Courier, monospace;"&gt;$b = $a;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class="Apple-style-span" style="color: #666666; font-family: 'Courier New', Courier, monospace;"&gt;$a[] = 4;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class="Apple-style-span" style="color: #666666; font-family: 'Courier New', Courier, monospace;"&gt;echo count($b);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class="Apple-style-span" style="color: #666666; font-family: 'Courier New', Courier, monospace;"&gt;&amp;gt; 3&lt;/span&gt;&lt;/div&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7810909564320569203-75446983223671195?l=blog.danielbeardsley.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.danielbeardsley.com/feeds/75446983223671195/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7810909564320569203&amp;postID=75446983223671195" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7810909564320569203/posts/default/75446983223671195?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7810909564320569203/posts/default/75446983223671195?v=2" /><link rel="alternate" type="text/html" href="http://blog.danielbeardsley.com/2011/09/php-is-dreadful-variable-assignment.html" title="PHP is dreadful: variable assignment" /><author><name>Danny Beardsley</name><uri>http://www.blogger.com/profile/17827328767469242609</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;D0cNRH0-eip7ImA9WhdTF0w.&quot;"><id>tag:blogger.com,1999:blog-7810909564320569203.post-8787500015731409644</id><published>2011-07-15T00:31:00.000-07:00</published><updated>2011-07-15T00:31:35.352-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-15T00:31:35.352-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="nodejs" /><category scheme="http://www.blogger.com/atom/ns#" term="debugging" /><title>Node.js on Windows</title><content type="html">&lt;span class="Apple-style-span" style="font-family: arial; font-size: x-small;"&gt;The creator and new owners of Node.js among others have been putting heavy work into getting node.js to compile on Windows, now it does. &amp;nbsp;If you are stuck in windows-ville and don't want to bother with cygwin....&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;a href="http://nodejs.org/dist/v0.5.1/node.exe"&gt;BAM!&lt;/a&gt;&amp;nbsp;- there it is&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Take a look around the&amp;nbsp;&lt;a href="http://nodejs.org/docs/v0.5.1/api/"&gt;docs&lt;/a&gt;.&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Here is the release post:&lt;br /&gt;
&lt;a href="http://blog.nodejs.org/2011/07/14/node-v0-5-1/"&gt;http://blog.nodejs.org/2011/07/14/node-v0-5-1/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;More about it:&lt;/div&gt;&lt;div&gt;&lt;a href="http://nodejs.org/"&gt;http://nodejs.org/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7810909564320569203-8787500015731409644?l=blog.danielbeardsley.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.danielbeardsley.com/feeds/8787500015731409644/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7810909564320569203&amp;postID=8787500015731409644" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7810909564320569203/posts/default/8787500015731409644?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7810909564320569203/posts/default/8787500015731409644?v=2" /><link rel="alternate" type="text/html" href="http://blog.danielbeardsley.com/2011/07/nodejs-on-windows.html" title="Node.js on Windows" /><author><name>Danny Beardsley</name><uri>http://www.blogger.com/profile/17827328767469242609</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CUQFQHwzfip7ImA9WhZUEEU.&quot;"><id>tag:blogger.com,1999:blog-7810909564320569203.post-2510383063179119086</id><published>2011-06-02T23:35:00.000-07:00</published><updated>2011-06-02T23:41:51.286-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-02T23:41:51.286-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="nodejs debugging" /><title>Legit GUI Debugging for node.js</title><content type="html">If you use node.js and haven't tried &lt;a href="https://github.com/dannycoates/node-inspector"&gt;node-inspector&lt;/a&gt; by &lt;a href="https://github.com/dannycoates"&gt;Danny Coates&lt;/a&gt;, you really need to. &amp;nbsp;It is by far the best GUI debugging environment I've ever used. &amp;nbsp;It magically connects the webkit inspector (which is amazing anyway) to a running node instance. &amp;nbsp;You can now debug your server-side javascript using the same wonderful set of tools as we do on the client-side.&lt;br /&gt;
&lt;br /&gt;
I've used node-inspector a ton when working on &lt;a href="http://wompt.com/"&gt;Wompt&lt;/a&gt;, it is roughly 1000% more productive than using lots of console.log(), which I always end up forget to remove.&lt;br /&gt;
&lt;br /&gt;
Here's a screencast from the creator of node-inspector:&lt;br /&gt;
&lt;iframe allowfullscreen="" frameborder="0" height="300" src="http://www.youtube.com/embed/fCASP6SBs_o" width="460"&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;br /&gt;
P.S. You can also &lt;a href="https://github.com/dannycoates/node-inspector/wiki/LiveEdit"&gt;edit the running code&lt;/a&gt; LIVE as you debug it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7810909564320569203-2510383063179119086?l=blog.danielbeardsley.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.danielbeardsley.com/feeds/2510383063179119086/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7810909564320569203&amp;postID=2510383063179119086" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7810909564320569203/posts/default/2510383063179119086?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7810909564320569203/posts/default/2510383063179119086?v=2" /><link rel="alternate" type="text/html" href="http://blog.danielbeardsley.com/2011/06/legit-gui-debugging-for-nodejs.html" title="Legit GUI Debugging for node.js" /><author><name>Danny Beardsley</name><uri>http://www.blogger.com/profile/17827328767469242609</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://img.youtube.com/vi/fCASP6SBs_o/default.jpg" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;Ck4GRH0_eip7ImA9WhZVFkk.&quot;"><id>tag:blogger.com,1999:blog-7810909564320569203.post-6506506509181048196</id><published>2011-05-28T20:47:00.000-07:00</published><updated>2011-05-28T20:48:45.342-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-28T20:48:45.342-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="contracting" /><title>Free Contract for Development / Design</title><content type="html">I needed a contract recently for some programming / development work and I wanted it to be free so I did what everyone does, I &lt;a href="http://www.google.com/search?q=free%20development%20service%20contract"&gt;Googled&lt;/a&gt; it. &amp;nbsp;Unfortunately, most of the results were&amp;nbsp;&lt;a href="http://www.aitoc.com/en/web_development_agreement.html"&gt;not free&lt;/a&gt;, &lt;a href="http://agreements.realdealdocs.com/Development-Agreement/DEVELOPMENT-SERVICES-AGREEMENT-2830436/"&gt;too wordy&lt;/a&gt;, or just &lt;a href="https://agree2.com/templates/37a9d0507479e9d5fa48f24c47126bb73bfef40d"&gt;not what I wanted&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
So I wrote my own &lt;a href="https://github.com/danielbeardsley/service_contracts"&gt;development service contract&lt;/a&gt;&amp;nbsp;in markdown and have open-sourced it on github. &amp;nbsp;The language is simple, the terms are simple and I've only included stuff that I care about. &amp;nbsp;There is no need to state the obvious as many contracts do: "developer is allowed to work on other projects ... blah blah" and no need to be overly verbose when describing the terms.&lt;br /&gt;
&lt;br /&gt;
I intended for this &lt;a href="https://github.com/danielbeardsley/service_contracts"&gt;github repository&lt;/a&gt; to be a collection of service contracts, but there is only one in there right now, as that's all I've required.&amp;nbsp;You are welcome to fork it and send pull-requests.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7810909564320569203-6506506509181048196?l=blog.danielbeardsley.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.danielbeardsley.com/feeds/6506506509181048196/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7810909564320569203&amp;postID=6506506509181048196" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7810909564320569203/posts/default/6506506509181048196?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7810909564320569203/posts/default/6506506509181048196?v=2" /><link rel="alternate" type="text/html" href="http://blog.danielbeardsley.com/2011/05/open-source-development-design-contract.html" title="Free Contract for Development / Design" /><author><name>Danny Beardsley</name><uri>http://www.blogger.com/profile/17827328767469242609</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DkUMR38yeCp7ImA9WhZVEkw.&quot;"><id>tag:blogger.com,1999:blog-7810909564320569203.post-7195776310527098686</id><published>2011-05-23T22:18:00.000-07:00</published><updated>2011-05-23T22:18:06.190-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-23T22:18:06.190-07:00</app:edited><title>Transactions</title><content type="html">The banking industry could stand to learn a thing or two from all the exploitation of holes in their security.  Thankfully, for the moment, they usually foot the bill for the losses from these problems (identity theft).&lt;br /&gt;
&lt;br /&gt;
The first company (or maybe the second) to offer these services will start a wave of secure transactions and see a huge reduction in fraud.&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Bank employees should NOT have access to information that allows money to be withdrawn from an account. Transactions should only be made to authenticated, traceable parties.&lt;/li&gt;
&lt;li&gt;For that matter, there should NOT exist information that could allow untraceable sums be withdrawn from an account.&lt;/li&gt;
&lt;li&gt;It follows that third-parties should also NOT be able to withdraw as much as they would like from your account.  Account holders should be allowed to place limits or conditions on transactions made by authorized third parties.&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7810909564320569203-7195776310527098686?l=blog.danielbeardsley.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.danielbeardsley.com/feeds/7195776310527098686/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7810909564320569203&amp;postID=7195776310527098686" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7810909564320569203/posts/default/7195776310527098686?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7810909564320569203/posts/default/7195776310527098686?v=2" /><link rel="alternate" type="text/html" href="http://blog.danielbeardsley.com/2011/05/transactions.html" title="Transactions" /><author><name>Danny Beardsley</name><uri>http://www.blogger.com/profile/17827328767469242609</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;D0MEQXc_fSp7ImA9Wx9WEk8.&quot;"><id>tag:blogger.com,1999:blog-7810909564320569203.post-2318067634569102867</id><published>2011-01-16T16:48:00.000-08:00</published><updated>2011-01-16T16:50:00.945-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-16T16:50:00.945-08:00</app:edited><title>Invoices and Timesheets</title><content type="html">&lt;p&gt;I've recently started using &lt;a href="http://www.getcashboard.com/"&gt;Cashboard&lt;/a&gt; and I love it.  Plus, at $10/month it doesn't break the bank.&lt;br /&gt;
&lt;/p&gt;&lt;p&gt;I've used a number of different approaches for keeping track of my time on projects over the years, some were good, some were error-prone.  I've also almost always created my own invoices using a couple of different schemes along the way, including Excel and Google Docs.  About six months ago I was kinda fed up with how much of my time was spent keeping track of my time!  I signed up for probably 5 different time-tracking and invoicing systems and messed around with each one.  Though there are quite a few solutions out there, I found one that was excellent and cheap, not to mention has very quick and helpful support.  I highly recommend it, and it will probably meet all of your requirements and-then-some, as it did mine.&lt;br /&gt;
&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.getcashboard.com/"&gt;Cashboard&lt;/a&gt;, has lowered my time spent invoicing and time-tracking from 3-4 hours per month down to about 10 minutes, plus I get to see when invoices were viewed by clients instead of just hoping they took a look at the PDF I emailed them.&lt;br /&gt;
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7810909564320569203-2318067634569102867?l=blog.danielbeardsley.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.danielbeardsley.com/feeds/2318067634569102867/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7810909564320569203&amp;postID=2318067634569102867" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7810909564320569203/posts/default/2318067634569102867?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7810909564320569203/posts/default/2318067634569102867?v=2" /><link rel="alternate" type="text/html" href="http://blog.danielbeardsley.com/2011/01/invoices-and-timesheets.html" title="Invoices and Timesheets" /><author><name>Danny Beardsley</name><uri>http://www.blogger.com/profile/17827328767469242609</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;Dk4GRn87eSp7ImA9Wx5bFkg.&quot;"><id>tag:blogger.com,1999:blog-7810909564320569203.post-7790260615961151734</id><published>2010-11-01T16:42:00.000-07:00</published><updated>2010-11-01T16:42:07.101-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-11-01T16:42:07.101-07:00</app:edited><title>Questions and answers on the Stack</title><content type="html">This is about &lt;a href="http://stackexchange.com/sites"&gt;Stack Exchange&lt;/a&gt; and the communities surrounding each of the topics.&lt;br /&gt;
&lt;br /&gt;
If you are a developer and haven't used &lt;a href="http://ww.stackoverflow.com"&gt;StackOverflow.com&lt;/a&gt;, you really need to.  It's been a fantastic resource for developers of all types and it's a great way to help the community and garner a reputation yourself.&lt;br /&gt;
&lt;br /&gt;
What you may not know is that StackOverflow has become a whole host of similar Q&amp;A sites (&lt;a href="http://stackexchange.com/sites"&gt;Stack Exchange&lt;/a&gt;) using the same format but covering many different topics.  There really is something for everybody: Programmers, Cooks, Mathematicians, Bikers, DIYers, ...  &lt;br /&gt;
&lt;br /&gt;
These are amazing resources and there are lots of intelligent people answering questions, so &lt;a href="http://cooking.stackexchange.com/questions/8728/what-to-dip-in-cheese-fondue-besides-bread-and-fruit"&gt;go&lt;/a&gt; &lt;a href="http://english.stackexchange.com/questions/4604/the-times-they-are-a-changin"&gt;learn&lt;/a&gt; &lt;a href="http://photo.stackexchange.com/questions/4487/why-are-wide-angle-lenses-so-much-more-expensive"&gt;something&lt;/a&gt;!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7810909564320569203-7790260615961151734?l=blog.danielbeardsley.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.danielbeardsley.com/feeds/7790260615961151734/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7810909564320569203&amp;postID=7790260615961151734" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7810909564320569203/posts/default/7790260615961151734?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7810909564320569203/posts/default/7790260615961151734?v=2" /><link rel="alternate" type="text/html" href="http://blog.danielbeardsley.com/2010/11/questions-and-answers-on-stack.html" title="Questions and answers on the Stack" /><author><name>Danny Beardsley</name><uri>http://www.blogger.com/profile/17827328767469242609</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DE8ASH07cSp7ImA9Wx5UEEU.&quot;"><id>tag:blogger.com,1999:blog-7810909564320569203.post-8440144038413536598</id><published>2010-10-14T13:07:00.000-07:00</published><updated>2010-10-14T13:07:29.309-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-10-14T13:07:29.309-07:00</app:edited><title>Learning Ruby on Rails</title><content type="html">I've just found an excellent free resource for learning Ruby on Rails (as well as Git and a few other tools) from the ground up.  It's extensive and very well written, I'd recommend scanning through it or reading it entirely if you are at all interested.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://railstutorial.org/book"&gt;http://railstutorial.org/book&lt;/a&gt;&lt;br /&gt;
- Michael Hartl&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7810909564320569203-8440144038413536598?l=blog.danielbeardsley.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.danielbeardsley.com/feeds/8440144038413536598/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7810909564320569203&amp;postID=8440144038413536598" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7810909564320569203/posts/default/8440144038413536598?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7810909564320569203/posts/default/8440144038413536598?v=2" /><link rel="alternate" type="text/html" href="http://blog.danielbeardsley.com/2010/10/learning-ruby-on-rails.html" title="Learning Ruby on Rails" /><author><name>Danny Beardsley</name><uri>http://www.blogger.com/profile/17827328767469242609</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;A08HR3Y4cSp7ImA9Wx5SGU4.&quot;"><id>tag:blogger.com,1999:blog-7810909564320569203.post-4178091467083115909</id><published>2010-08-15T23:23:00.000-07:00</published><updated>2010-08-15T23:23:56.839-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-15T23:23:56.839-07:00</app:edited><title>Easily try out rDoc, Haml, Sass, Markdown, ...</title><content type="html">&lt;a href="http://formattr.heroku.com/"&gt;Formattr&lt;/a&gt;: a micro-app for developers &lt;br /&gt;
&lt;small&gt;(running on &lt;a href="http://heroku.com/"&gt;Heroku&lt;/a&gt; with code on &lt;a href="http://github.com/danielbeardsley/formattr"&gt;github&lt;/a&gt;)&lt;/small&gt;&lt;br /&gt;
&lt;br /&gt;
Ever wanted to see what a bit of markup language like Markdown, rDoc, Sass, or Haml would look like when &amp;nbsp;processed into it's resultant format (HTML or CSS)?&lt;br /&gt;
&lt;br /&gt;
I needed something like that and I thought it would be a perfect time to experiment with a couple new things I've been wanting to try out, namely &lt;a href="http://haml-lang.com/"&gt;Haml&lt;/a&gt;, &lt;a href="http://www.sinatrarb.com/"&gt;Sinatra&lt;/a&gt;, and &lt;a href="http://sass-lang.com/"&gt;SaSS&lt;/a&gt;. &amp;nbsp;Let me say, I had a great time! &amp;nbsp;all three of those technologies were fantastic replacements for the more traditional HTML, ?, and CSS.&lt;br /&gt;
&lt;br /&gt;
&lt;h1&gt;&lt;a href="http://www.sinatrarb.com"&gt;Sinatra&lt;/a&gt;&lt;/h1&gt;Sinatra is a DSL for quickly creating web applications in Ruby with minimal effort. Seriously, minimal effort, lots of simplicity. After a few requires, here is the code to respond to the home page:&lt;br /&gt;
&lt;pre&gt;# send the return value of the the below block to the client when receiving a GET request for '/'
get '/' do
  haml :index  # process /views/index.haml using the haml markup processor
end
&lt;/pre&gt;&lt;br /&gt;
Then I have several actions that respond to post requests for converting the various markup formats.  Here's the one for markdown:&lt;br /&gt;
&lt;pre&gt;require 'bluecloth'
#...
post '/markdown' do
  BlueCloth::new(params[:input]).to_html
end
&lt;/pre&gt;&lt;br /&gt;
It's exciting working with a web-framework that requires so little overhead and even less setup.  Though if you aren't careful you may end up getting too excited and re-inventing the wheel (Rails).  Sinatra is GREAT for applications like this, it's super easy to put up a quick prototype, create a web-service, ...&lt;br /&gt;
&lt;br /&gt;
&lt;h1&gt;&lt;a href="http://haml-lang.com/"&gt;Haml&lt;/a&gt;&lt;/h1&gt;A simple markup language that outputs structured HTML.  Like Python, hierarchy is accomplished using indentation.  It might sound strange, but pretty quickly HTML begins to look gross while Haml gets easier on the eyes and brain.  I strongly suggest you take a look at Haml and at least try it out for something small.&lt;br /&gt;
Haml&lt;br /&gt;
&lt;pre&gt;.group
  .buttons#format_buttons
    .button.left_most#rdoc_btn rDoc
    .button#markdown_btn MarkDown
&lt;/pre&gt;&lt;br /&gt;
HTML&lt;br /&gt;
&lt;pre&gt;&amp;lt;div class=&amp;quot;group&amp;quot;&amp;gt;
  &amp;lt;div class=&amp;quot;buttons&amp;quot; id=&amp;quot;format_buttons&amp;quot;&amp;gt;
    &amp;lt;div class=&amp;quot;button left_most&amp;quot; id=&amp;quot;rdoc_btn&amp;quot;&amp;gt;rDoc&amp;lt;/div&amp;gt;
    &amp;lt;div class=&amp;quot;button&amp;quot; id=&amp;quot;markdown_btn&amp;quot;&amp;gt;MarkDown&amp;lt;/div&amp;gt;
  &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h1&gt;&lt;a href="http://sass-lang.com/"&gt;Sass&lt;/a&gt;&lt;/h1&gt;There is actually a new version out called Scss which has the advantage of allowing traditional CSS along side Sass markup.  This enables you to take your traditional CSS file and only replace pieces of it with Scss.  Anyway, for this project I've only used Sass, which is still FAR better than plain CSS.  Unlike Haml, Sass actually ADDS features to CSS (variables, nested rules, style macros, ... check the website)&lt;br /&gt;
&lt;br /&gt;
Sass&lt;br /&gt;
&lt;pre&gt;$button_color: #aad
@mixin bottom-shadow
  background: url(/images/bottom_shadow.png) repeat-x bottom right

.buttons
  float: left
  color: white

  .button
    @include bottom-shadow
    background-color: $button_color
&lt;/pre&gt;&lt;br /&gt;
CSS&lt;br /&gt;
&lt;pre&gt;.buttons {
  float: left;
  color: white;
}
.buttons .button {
  background-color: red;
}
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h1&gt;&lt;a href="http://heroku.com"&gt;Heroku&lt;/a&gt;&lt;/h1&gt;What a breeze!  It took minutes to get my app up and running on their platform and further deployments are only a git push away.  These folks have done some serious good for the community and provide an excellent, robust, easy to use service that takes the tedium out of setting up your own hosting stack.  TRY HEROKU.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7810909564320569203-4178091467083115909?l=blog.danielbeardsley.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.danielbeardsley.com/feeds/4178091467083115909/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7810909564320569203&amp;postID=4178091467083115909" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7810909564320569203/posts/default/4178091467083115909?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7810909564320569203/posts/default/4178091467083115909?v=2" /><link rel="alternate" type="text/html" href="http://blog.danielbeardsley.com/2010/08/easily-try-out-rdoc-haml-sass-markdown.html" title="Easily try out rDoc, Haml, Sass, Markdown, ..." /><author><name>Danny Beardsley</name><uri>http://www.blogger.com/profile/17827328767469242609</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;AkIFSXc4fyp7ImA9WxFUEko.&quot;"><id>tag:blogger.com,1999:blog-7810909564320569203.post-1002542877817973067</id><published>2010-06-23T00:35:00.000-07:00</published><updated>2010-06-23T00:35:18.937-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-06-23T00:35:18.937-07:00</app:edited><title>Github Deploy Keys, granting single-repository access</title><content type="html">Until now, I had been granting access to my &lt;a href="http://github.com/danielbeardsley"&gt;github account&lt;/a&gt; to several production servers so they could pull from my private repositories when they deployed. &amp;nbsp;I didn't &lt;i&gt;want &lt;/i&gt;to allow full access to my account from clients production servers, I just didn't think there was another option.&lt;br /&gt;
&lt;br /&gt;
Well there is, with it's &lt;b&gt;Deploy Keys&lt;/b&gt; feature,&amp;nbsp;Github has the ability to associate SSH keys with single repositories, giving you much finer grained control over what server has access to what. &amp;nbsp;The feature can be&amp;nbsp;accessed in the Admin section of repository; here's how to setup single-repo&amp;nbsp;access&amp;nbsp;to a&amp;nbsp;Linux&amp;nbsp;server:&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Log into your server on the account that will be connecting to github to pull from the repository&lt;/li&gt;

&lt;ul&gt;&lt;li&gt;On most of my boxes, I've set up a 'deploy' user that only has access to the website directory&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;See if there are already some ssh keys for your user account:&lt;/li&gt;

&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;ls ~/.ssh/&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;If you don't see a file called id_rsa.pub learn how to &lt;a href="http://help.github.com/linux-key-setup/"&gt;Generate SSH Keys&lt;/a&gt;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Assuming the file does exist, type &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;cat ~/.ssh/id_rsa.pub&lt;/span&gt;&lt;/span&gt; and copy the contents to the clipboard&lt;/li&gt;

&lt;ul&gt;&lt;li&gt;It should look like this (the length may vary):&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;ssh-rsa NnwI5kou4LPMgTcwiX+sWmpgQUfKO/D4nzOYkPEVG&lt;br /&gt;
jafcM9Rr3hdgK5GCdiuxmsBELrxy+f4KR1B8kPA1V&lt;br /&gt;
4URS08Dfco6RVCJH6PCW0RqJ445VJUU4TewbSN28C&lt;br /&gt;
gY3SHgcFUpqvK3m318PkwS+eAnR0K64M/kGtkz/wA&lt;br /&gt;
KVt/pD6QssZ5U54m==&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Visit your repository page on github&lt;/li&gt;
&lt;li&gt;Click the "Admin" button (it must be owned by you to do this)&lt;/li&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_T5jTdUqSAPM/TCG3rQCyY8I/AAAAAAAAL18/Pm0RLn8Khh4/s1600/admin_button.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="107" src="http://3.bp.blogspot.com/_T5jTdUqSAPM/TCG3rQCyY8I/AAAAAAAAL18/Pm0RLn8Khh4/s400/admin_button.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;ul&gt;&lt;/ul&gt;&lt;li&gt;Click the "Deploy Keys" section to the left.&lt;/li&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_T5jTdUqSAPM/TCG4C2ZSGAI/AAAAAAAAL2E/6MaWJDZxuLs/s1600/deploy_keys.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="182" src="http://1.bp.blogspot.com/_T5jTdUqSAPM/TCG4C2ZSGAI/AAAAAAAAL2E/6MaWJDZxuLs/s400/deploy_keys.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;li&gt;Choose "Add another deploy key" and paste the key you copied in step 3.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Done!&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;div&gt;That should be it, that server now has access to ONLY that repository, not your entire github account. &amp;nbsp;Good luck safely deploying!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7810909564320569203-1002542877817973067?l=blog.danielbeardsley.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.danielbeardsley.com/feeds/1002542877817973067/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7810909564320569203&amp;postID=1002542877817973067" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7810909564320569203/posts/default/1002542877817973067?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7810909564320569203/posts/default/1002542877817973067?v=2" /><link rel="alternate" type="text/html" href="http://blog.danielbeardsley.com/2010/06/github-deploy-keys-granting-single.html" title="Github Deploy Keys, granting single-repository access" /><author><name>Danny Beardsley</name><uri>http://www.blogger.com/profile/17827328767469242609</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_T5jTdUqSAPM/TCG3rQCyY8I/AAAAAAAAL18/Pm0RLn8Khh4/s72-c/admin_button.jpg" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;C04GQHsyeip7ImA9WxFVFUg.&quot;"><id>tag:blogger.com,1999:blog-7810909564320569203.post-2564434205269679827</id><published>2010-06-14T14:45:00.000-07:00</published><updated>2010-06-14T14:45:21.592-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-06-14T14:45:21.592-07:00</app:edited><title>Function Definitions in JSON: an un-quoted string</title><content type="html">Technically, the &lt;a href="http://www.json.org/"&gt;JSON standard&lt;/a&gt; doesn't allow javascript function definitions. &amp;nbsp;This is because it's meant to be a literal representation of simple types (strings, numbers, arrays, key-value stores) that can be interpreted in many languages.&lt;br /&gt;
&lt;br /&gt;
I'm using &lt;a href="http://www.extjs.com/"&gt;ExtJS&lt;/a&gt; In a project I'm working on and, in several instances, it would be convenient to prepare JSON-like object configuration hashes in ruby and &lt;i&gt;then&lt;/i&gt; convert them to JSON. &amp;nbsp;This worked fine until I needed to reference an ExtJS constant, function, or create a new function. &amp;nbsp;Hash#to_json just calls to_json on all of it's key's and values and drops them into the output. &lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;String#to_json&lt;/span&gt;&lt;/span&gt; just returns a copy of the string quoted and escaped:&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="color: #999999;"&gt;'Double-quote character:" '&lt;/span&gt;.to_json -&amp;gt;&amp;nbsp;&lt;span class="Apple-style-span" style="color: #999999;"&gt;'"Double-quote character:\" "'&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
I needed it to NOT quote the string and drop it into the JSON just as it was.&lt;br /&gt;
Enter a new class:&amp;nbsp;&lt;b&gt;UnQuotedString&lt;/b&gt; which inherits from &lt;b&gt;String&lt;/b&gt; and replaces the to_json method. See the ruby code below:&lt;br /&gt;
&lt;br /&gt;
&lt;script src="http://gist.github.com/438310.js"&gt;
&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7810909564320569203-2564434205269679827?l=blog.danielbeardsley.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.danielbeardsley.com/feeds/2564434205269679827/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7810909564320569203&amp;postID=2564434205269679827" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7810909564320569203/posts/default/2564434205269679827?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7810909564320569203/posts/default/2564434205269679827?v=2" /><link rel="alternate" type="text/html" href="http://blog.danielbeardsley.com/2010/06/function-definitions-in-json-un-quoted.html" title="Function Definitions in JSON: an un-quoted string" /><author><name>Danny Beardsley</name><uri>http://www.blogger.com/profile/17827328767469242609</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total></entry><entry gd:etag="W/&quot;CEENQ3k8fip7ImA9WxFVE04.&quot;"><id>tag:blogger.com,1999:blog-7810909564320569203.post-5189403803926090412</id><published>2010-06-12T01:51:00.000-07:00</published><updated>2010-06-12T01:51:32.776-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-06-12T01:51:32.776-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="images" /><title>PNG-8 support in Photoshop</title><content type="html">&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;I went to open a PNG file today and I was surprised to find it didn't look anything like it did when I had seen it in my browser. &amp;nbsp;The image looked mangled and transparency was wrong or non-existent.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt; &lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;So I did some investigating (including posting a &lt;/span&gt;&lt;a href="http://superuser.com/questions/151662/why-are-png-8-files-mangled-when-opened-in-photoshop"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;question &lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;on &lt;/span&gt;&lt;a href="http://superuser.com/"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;Super User&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;) . &amp;nbsp;It turns out that PNG supports both PNG32 &lt;/span&gt;&lt;span class="Apple-style-span" style="color: #999999;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;(8 bits for each component of RGBA)&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt; and PNG8 &lt;/span&gt;&lt;span class="Apple-style-span" style="color: #999999;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;(an 8 bit indexed color format similar to gif)&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;. &amp;nbsp;I knew this, but what I didn't know was that PNG8 &lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;also&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt; supports an 8 bit alpha component for each entry in it's color palette. &amp;nbsp;This makes it possible to get decent looking transparency with a small file size in an indexed color image.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;That's great!&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;Photoshop (even CS4) doesn't support this.&lt;/span&gt;&lt;br /&gt;
&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;That sucks.&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt; &lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;Photoshop just renders every pixel as fully opaque, so you often get mangled looking images like this &lt;/span&gt;&lt;a href="http://blog.stackoverflow.com/wp-content/uploads/icon-so.png"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;icon&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt; from Stack Overflow. &amp;nbsp;The one on the right is a screen-grab from my browser and the one on the left is how it looked when I opened it up in Photoshop CS3.&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_T5jTdUqSAPM/TBNCWBgl_aI/AAAAAAAAL1M/GAJXTKld96Q/s1600/so-icons.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_T5jTdUqSAPM/TBNCWBgl_aI/AAAAAAAAL1M/GAJXTKld96Q/s320/so-icons.png" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt; &lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;There are actually only a few pieces of software out there that handle this part of the PNG spec. ArtzStudio wrote an excellent &lt;/span&gt;&lt;a href="http://www.artzstudio.com/2008/07/png-alpha-transparency-no-clear-winner/"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;blog post&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt; covering PNG8 and a few of those programs.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7810909564320569203-5189403803926090412?l=blog.danielbeardsley.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.danielbeardsley.com/feeds/5189403803926090412/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7810909564320569203&amp;postID=5189403803926090412" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7810909564320569203/posts/default/5189403803926090412?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7810909564320569203/posts/default/5189403803926090412?v=2" /><link rel="alternate" type="text/html" href="http://blog.danielbeardsley.com/2010/06/png-8-support-in-photoshop.html" title="PNG-8 support in Photoshop" /><author><name>Danny Beardsley</name><uri>http://www.blogger.com/profile/17827328767469242609</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_T5jTdUqSAPM/TBNCWBgl_aI/AAAAAAAAL1M/GAJXTKld96Q/s72-c/so-icons.png" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DUANSH09eSp7ImA9WBFaGEQ.&quot;"><id>tag:blogger.com,1999:blog-7810909564320569203.post-1634990083014944374</id><published>2007-05-22T12:15:00.000-07:00</published><updated>2007-05-22T22:23:19.361-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-05-22T22:23:19.361-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="humanitarian" /><category scheme="http://www.blogger.com/atom/ns#" term="thinkofthechildren" /><title>Sudan needs your help</title><content type="html">&lt;div style="width:90%; font-size:140%; padding:5px; background-color:red; color:white;"&gt;&lt;table style="color:white; width:100%; cell-border:0; border:0;"&gt;&lt;tr&gt;&lt;td&gt;&amp;nbsp; Darfur, Sudan.&lt;/td&gt;&lt;td style="text-align:right;"&gt;&lt;span style="font-size:60%;"&gt;link to&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;a href="www.darfurwall.org" style="color:white; text-decoration:overline,underline;"&gt;Donate&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="line-height: 1.4em"&gt; &lt;br /&gt;&lt;strong&gt;The Conflict&lt;/strong&gt;&lt;br /&gt;It's sad.  Like a lot of 3rd world nations they are in bad shape.  There are several rebel groups who are attacking government armies and the government army is attacking back with reckless abandon, even hiring large militias to decimate areas of the country that could harbor rebels.  This has been going on for numerous years and has caused the deaths of an estimated 400,000 (a large portion due to famine and food shortages from people being displaced from their land).  The government also fervently opposes the 17,000 peacekeeping troops the UN wants to send in. &lt;br /&gt; &lt;br /&gt;&lt;strong&gt;Donating&lt;/strong&gt;&lt;br /&gt;Here is a convenient and cool way to donate to 4 organizations all at once, 100% of the proceeds are split evenly between the four (costs to run the website are paid out of pocket, not taken from the donations).  You can donate as little as $1 or as much as you want. &lt;a href="http://darfurwall.org/"&gt;darfurwall.org&lt;/a&gt;&lt;br /&gt;&lt;em&gt;Note: There are tragedies going on everywhere, but don't feel overwhelmed.  Even if it seems silly to donate $1 to a problem so big, every little bit helps.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Information&lt;/strong&gt;&lt;br /&gt;A Decent Source for information and the history of the conflict: &lt;a href="http://en.wikipedia.org/wiki/Darfur_conflict"&gt;Darfur Conflict&lt;/a&gt; &lt;small&gt;(Wikipedia Article)&lt;/small&gt;&lt;br /&gt;See the conflict in Google Earth: Expand the "Global Awareness" layer in the layers pane on the left and select the layer called "USHMM: Crisis in Darfur".&lt;br /&gt;&lt;br /&gt;Yes, DarfurWall is a legit non-profit:&lt;br /&gt;&lt;a href="http://www.secstate.wa.gov/corps/search_detail.aspx?name=DARFUR+FOUNDATION&amp;ubi=602662972"&gt;Washington Secratary of State's website&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7810909564320569203-1634990083014944374?l=blog.danielbeardsley.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.danielbeardsley.com/feeds/1634990083014944374/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7810909564320569203&amp;postID=1634990083014944374" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7810909564320569203/posts/default/1634990083014944374?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7810909564320569203/posts/default/1634990083014944374?v=2" /><link rel="alternate" type="text/html" href="http://blog.danielbeardsley.com/2007/05/sudan-needs-your-help.html" title="Sudan needs your help" /><author><name>Danny Beardsley</name><uri>http://www.blogger.com/profile/17827328767469242609</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>4</thr:total></entry><entry gd:etag="W/&quot;DU8HQng5eSp7ImA9WBFaGEQ.&quot;"><id>tag:blogger.com,1999:blog-7810909564320569203.post-3200618649076535428</id><published>2007-05-17T10:52:00.000-07:00</published><updated>2007-05-22T22:23:53.621-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-05-22T22:23:53.621-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Computers" /><title>I Can Fix Your Computer From Anywhere</title><content type="html">Seriously, I can, I will, and I'll enjoy doing it; fixing things is one of my few passions.  Not many people know about it, but Windows XP has had the ability to be remotely controlled for a while now, hardly anybody uses it though.  So here is my offer...  If &lt;em&gt;I know you &lt;/em&gt;(or have met you) and you are having computer problems of any type, and you have Windows XP, I will gladly try and fix it for you.  To those I don't know, Sorry, I have nothing against you, but I can't fix everyone's computer and I had to draw the line somewhere. &lt;br /&gt;If you live around me, I'll also try and fix &lt;em&gt;anything else&lt;/em&gt; that isn't working properly: Appliances, Cars, Plumbing, ...  Don't worry about bothering me, I don't have a job and if I'm out having lots of fun, I'll probably just call you back later :-) &lt;br /&gt;&lt;br /&gt;It's really not hard at all; the pictures are just here to look pretty.&lt;br /&gt;Here's how it works (if you have trouble, just call me): &lt;br /&gt;&lt;img style="float:right; clear:both; margin:0 0 10px 10px;" src="http://1.bp.blogspot.com/_T5jTdUqSAPM/RlM6uZ8m3yI/AAAAAAAABM4/tBzR4wzMThs/s400/Run-Dialog.png" border="0" id="BLOGGER_PHOTO_ID_5067458574635425570" /&gt;&lt;br /&gt;&lt;strong&gt;Step 1&lt;/strong&gt;: Click this link: &lt;a href="http://downloads.sourceforge.net/vnc-tight/tightvnc-1.3.9-setup.exe"&gt;TightVNC Download&lt;/a&gt; and Choose "Run" when the dialog comes up.&lt;br /&gt;&lt;small&gt;source: &lt;a href="http://www.tightvnc.com/download.html"&gt;http://www.tightvnc.com/download.html&lt;/a&gt;&lt;/small&gt;&lt;br /&gt;&lt;img style="float:right; clear:both; margin:0 0 10px 10px;" src="http://1.bp.blogspot.com/_T5jTdUqSAPM/RlM6uZ8m3zI/AAAAAAAABNA/UPMc8xtdXBI/s400/Security+Wanring.png" border="0" id="BLOGGER_PHOTO_ID_5067458574635425586" /&gt;&lt;br /&gt;&lt;strong&gt;Step 2&lt;/strong&gt;:  There will be a Security warning, just click Run again (trust me).&lt;br /&gt;&lt;img style="float:right; clear:both; margin:0 0 10px 10px;" src="http://4.bp.blogspot.com/_T5jTdUqSAPM/RlM6uJ8m3xI/AAAAAAAABMw/W2xm0vdYoSc/s400/Installation.png" border="0" id="BLOGGER_PHOTO_ID_5067458570340458258" /&gt;&lt;br /&gt;&lt;strong&gt;Step 3&lt;/strong&gt;:  Go with all the default options, including leaving "Full Install" selected.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step 4&lt;/strong&gt;:  Call me or email me to make sure I'm at the computer, or to find out when I'll be home (you'll need my ip address as well).  When you are ready to have me fix your computer, click the following menu option: Start Menu -&gt; All Programs -&gt; TightVNC -&gt; Launch TightVNC Server.&lt;br /&gt;&lt;br /&gt;&lt;img style="float:right; clear:both; margin:0 0 10px 10px;" src="http://2.bp.blogspot.com/_T5jTdUqSAPM/RlM6up8m30I/AAAAAAAABNI/u-sWqvmZLv0/s400/Server+Settings.png" border="0" id="BLOGGER_PHOTO_ID_5067458578930392898" /&gt;&lt;br /&gt;&lt;strong&gt;Step 5&lt;/strong&gt;:  A dialog will come up with a bunch of options, Just Click OK, and when it warns you about not having a password, just click OK again. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step 6&lt;/strong&gt;:  Now you should see a little "V" icon in the bottom right of your screen (the system tray).  Right Click on the V and select "Add New Client".  Type in the ip address that I give you and click OK.&lt;br /&gt;&lt;br /&gt;Then I'll be able to see your screen and control your computer.&lt;br /&gt;When we are done, you can close the program, even uninstall it if you want.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7810909564320569203-3200618649076535428?l=blog.danielbeardsley.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.danielbeardsley.com/feeds/3200618649076535428/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7810909564320569203&amp;postID=3200618649076535428" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7810909564320569203/posts/default/3200618649076535428?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7810909564320569203/posts/default/3200618649076535428?v=2" /><link rel="alternate" type="text/html" href="http://blog.danielbeardsley.com/2007/05/i-can-fix-your-computer-from-anywhere_17.html" title="I Can Fix Your Computer From Anywhere" /><author><name>Danny Beardsley</name><uri>http://www.blogger.com/profile/17827328767469242609</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_T5jTdUqSAPM/RlM6uZ8m3yI/AAAAAAAABM4/tBzR4wzMThs/s72-c/Run-Dialog.png" height="72" width="72" /><thr:total>1</thr:total></entry><entry gd:etag="W/&quot;CUYGRHc-fCp7ImA9WBFbGEs.&quot;"><id>tag:blogger.com,1999:blog-7810909564320569203.post-750298271700914419</id><published>2007-05-10T22:22:00.000-07:00</published><updated>2007-05-10T22:58:45.954-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-05-10T22:58:45.954-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Computers" /><category scheme="http://www.blogger.com/atom/ns#" term="thinkofthechildren" /><title>Help Save the World With Your Computer</title><content type="html">&lt;a href="http://www.worldcommunitygrid.org"&gt;&lt;img src="http://docs.google.com/File?id=ddtb3scr_11gwhw93dn" style="border:none; FLOAT:left; MARGIN:1em 1em 0px 0px"/&gt;&lt;/a&gt;&lt;br /&gt;There are numerous organizations out there that enable you to use some or all of your computer's idle time (which is probably 99.5% of the time it's on) to calculate or compute things for science. Some are for physics research, some try to detect signals from extra-terrestrials, some calculate weather predictions, ... and so on. &lt;a href="http://www.worldcommunitygrid.org"&gt;&lt;strong&gt;World Community Grid&lt;/strong&gt;&lt;/a&gt; is a non-profit organization that uses the idle time of more than half a million computers around the globe to aid medical research.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;How it works:&lt;/strong&gt;&lt;br /&gt;1. You download and install a little program from here: &lt;a href="http://www.worldcommunitygrid.org/reg/viewRegister.do"&gt;World Community Grid&lt;/a&gt;&lt;br /&gt;2. It downloads a project to work on and does it's thing when you aren't using your computer.&lt;br /&gt;3. It reports results back to the organization over the Internet.&lt;br /&gt;4. The medical community benefits, and new drugs for AIDS/Cancer/lots of other diseases are found sooner. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Potential&lt;/strong&gt; &lt;br /&gt;Computers are fast, I mean really fast, I mean really mind-bogglingly fast. 2 Ghz (A typical processor speed) means TWO BILLION operations per second, and many computers these days have dual cores (some four) which means two (or four) times as many operations per second. Anyway, most of the stuff we do with computers doesn't use anywhere near the entire potential of your average computer, and even if it does, only does it for very brief intervals. You can now use this vast potential for the good of society.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Reasons&lt;/strong&gt;&lt;br /&gt;Medical research and development is expensive because MANY different combinations of proteins and chemicals have to be tested and this can take a long time. Technology has advanced to the point where we can simulate many chemical reactions and the folding of proteins instead of trying them manually one at a time in the lab. The World Community Grid now enables research to be done quickly for diseases that was previously not economically feasible.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Concerns&lt;/strong&gt;&lt;br /&gt;Q: Won't this slow down my computer?&lt;br /&gt;A: No, it's designed to have the lowest priority on the system, so anything that you do on the computer will have absolute priority over the program and it won't hinder anything. The program is also designed to only use 60% of your computer's idle time, and never more. &lt;em&gt;&lt;font size="1"&gt;Note: It does use a bit of RAM, so if you have less than 512MB, it might slow down your computer perceptibly.&lt;/font&gt;&lt;/em&gt; &lt;br /&gt;&lt;br /&gt;Q: Can I see what it's doing?&lt;br /&gt;A: Yes, if you double click the little World Community Grid icon &lt;img style="margin: 0; padding:0; border: none;" src="http://3.bp.blogspot.com/_T5jTdUqSAPM/RkQApebjAWI/AAAAAAAABLQ/3FaSMM8W59U/s400/WCG-Icon.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5063172593614520674" /&gt; in the system tray, you'll see a window that describes which research project it's working on and your current statistics. If you click the (I) in the lower right, you can see a picture of the exact molecule it is working on.&lt;br /&gt;&lt;div style="WIDTH:100%"&gt; &lt;div style="BORDER:lightgrey 1px solid; FLOAT:left; PADDING:5px; MARGIN:10px"&gt; &lt;img src="http://docs.google.com/File?id=ddtb3scr_9hsqkqpcx" style="border: none; MARGIN:5px"/&gt; &lt;img src="http://docs.google.com/File?id=ddtb3scr_10gwwz7df2" style="border: none; MARGIN:5px"/&gt; &lt;/div&gt; &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Q: Won't this just give more money to already wealthy pharmaceutical companies?&lt;br /&gt;A: No, here's a quote "World Community Grid is making technology available only to to public and not-for-profit organizations to use in humanitarian research that might otherwise not be completed due to the high cost of the computer infrastructure required" &lt;font size="1"&gt;Source: &lt;a href="http://www.worldcommunitygrid.org/about_us/viewAboutUs.do"&gt;http://www.worldcommunitygrid.org/about_us/viewAboutUs.do&lt;/a&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;If you have any questions about it, please ask them in the comments so others can see the answers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7810909564320569203-750298271700914419?l=blog.danielbeardsley.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.danielbeardsley.com/feeds/750298271700914419/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7810909564320569203&amp;postID=750298271700914419" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7810909564320569203/posts/default/750298271700914419?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7810909564320569203/posts/default/750298271700914419?v=2" /><link rel="alternate" type="text/html" href="http://blog.danielbeardsley.com/2007/05/help-save-world-with-your-computer.html" title="Help Save the World With Your Computer" /><author><name>Danny Beardsley</name><uri>http://www.blogger.com/profile/17827328767469242609</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_T5jTdUqSAPM/RkQApebjAWI/AAAAAAAABLQ/3FaSMM8W59U/s72-c/WCG-Icon.png" height="72" width="72" /><thr:total>2</thr:total></entry><entry gd:etag="W/&quot;C0ABQnk5cCp7ImA9WBFbGUg.&quot;"><id>tag:blogger.com,1999:blog-7810909564320569203.post-3186933842474396982</id><published>2007-05-05T01:45:00.000-07:00</published><updated>2007-05-11T23:35:53.728-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-05-11T23:35:53.728-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="politics" /><category scheme="http://www.blogger.com/atom/ns#" term="thinkofthechildren" /><title>Barack Obama</title><content type="html">&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_T5jTdUqSAPM/Rjxb4-bi_7I/AAAAAAAABH0/vP2Ksf0MytE/s400/barackobama.jpg" border="0" id="BLOGGER_PHOTO_ID_5061021115646934962" /&gt;&lt;br /&gt;So, we owe it to our country and the people who've fought for it to spend some time researching presidential candidates and deciding who to vote for next year.  I know it's early, but the sooner the better.  Whatever you do, don't just blindly follow party lines, unless you really believe the candidate is the right choice for America.&lt;br /&gt;&lt;br /&gt;A Good friend of mine told me to take a look at Barack Obama.  At first I didn't really care because &lt;i&gt;I'm so tired, as we all are, of political rhetoric&lt;/i&gt;, party wars, and the like, but when I actually listened to what he said, I really got the feeling he genuinely cares for America and aims to do his best to fix our political system.   Anyway, there is a lot to like about the guy, it seems his head and heart are in the right place.&lt;br /&gt;&lt;br /&gt;Oh yeah, he's a Christian.  Listen to this amazing speech on &lt;b&gt;Faith and Politics&lt;/b&gt;, seriously, it's worth watching even if you don't like him.&lt;br /&gt;&lt;BR&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;span style="font-size:70%;"&gt;Tip: you can use the Zoom feature in the bottom right of IE 7 to make this webpage and the video bigger.&lt;/span&gt;&lt;br /&gt;&lt;embed src="http://services.brightcove.com/services/viewer/federated_f8/353515028" bgcolor="#FFFFFF" flashVars="videoId=416343938&amp;playerId=353515028&amp;viewerSecureGatewayURL=https://console.brightcove.com/services/amfgateway&amp;servicesURL=http://services.brightcove.com/services&amp;cdnURL=http://admin.brightcove.com&amp;domain=embed&amp;autoStart=false&amp;" base="http://admin.brightcove.com" name="flashObj" width="400" height="330" seamlesstabbing="false" type="application/x-shockwave-flash" swLiveConnect="true" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"&gt;&lt;/embed&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;span style="font-size:78%;"&gt;Original Source: &lt;a href="http://origin.barackobama.com/issues/faith/"&gt;http://origin.barackobama.com/issues/faith/&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;More Speeches and Talks: &lt;a href="http://www.barackobama.com/tv/"&gt;http://www.barackobama.com/tv/&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br&gt;For the comments, is there any candidate you really like or think deserves more attention?&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7810909564320569203-3186933842474396982?l=blog.danielbeardsley.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.danielbeardsley.com/feeds/3186933842474396982/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7810909564320569203&amp;postID=3186933842474396982" title="16 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7810909564320569203/posts/default/3186933842474396982?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7810909564320569203/posts/default/3186933842474396982?v=2" /><link rel="alternate" type="text/html" href="http://blog.danielbeardsley.com/2007/05/barack-obama.html" title="Barack Obama" /><author><name>Danny Beardsley</name><uri>http://www.blogger.com/profile/17827328767469242609</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_T5jTdUqSAPM/Rjxb4-bi_7I/AAAAAAAABH0/vP2Ksf0MytE/s72-c/barackobama.jpg" height="72" width="72" /><thr:total>16</thr:total></entry></feed>

