<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Sometimes I hate the world.      Sometimes I love humanity.</title>
	<atom:link href="http://waaronw.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://waaronw.com/blog</link>
	<description>Rants and ramblings and things in between.</description>
	<lastBuildDate>Fri, 23 Sep 2011 12:29:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>How I handle Craigslist spammers</title>
		<link>http://waaronw.com/blog/observations/how-i-handle-craigslist-spammers/</link>
		<comments>http://waaronw.com/blog/observations/how-i-handle-craigslist-spammers/#comments</comments>
		<pubDate>Fri, 23 Sep 2011 12:29:28 +0000</pubDate>
		<dc:creator>W. Aaron Waychoff</dc:creator>
				<category><![CDATA[Annoyances]]></category>
		<category><![CDATA[Me]]></category>
		<category><![CDATA[Observations]]></category>

		<guid isPermaLink="false">http://waaronw.com/blog/?p=188</guid>
		<description><![CDATA[Whenever I post anything online for sale, I usually get quite a few responses like &#8220;Is the item still available&#8221; or &#8220;I&#8217;m interesting in buying.&#8221;  Well, unfortunately, most real people responding to CL ads aren&#8217;t much more (if any) articulate, so I often find myself replying to these initial queries, not that I often expect [...]]]></description>
			<content:encoded><![CDATA[<p>Whenever I post anything online for sale, I usually get quite a few responses like &#8220;Is the item still available&#8221; or &#8220;I&#8217;m interesting in buying.&#8221;  Well, unfortunately, most real people responding to CL ads aren&#8217;t much more (if any) articulate, so I often find myself replying to these initial queries, not that I often expect a legitimate response.</p>
<p>In fact, almost always, I get something like this:</p>
<blockquote><p>I&#8217;m purchasing it for my cousin as a gift.  I&#8217;m presently out of town (offshore) so I can&#8217;t pick up, but I will offer you $[MORETHANYOUASKED] including shipping expenses via USPS Express Mail to him as he schools in Belgium<br />
Let me know if we can make the transaction asap, and I&#8217;ll send the money through my paypal account.<br />
Regards<br />
Susan</p></blockquote>
<p>So, recently, I&#8217;ve starting responding like this:</p>
<blockquote><p>Oh, wow, that sounds great!  However, I looked into it, and it&#8217;s going to cost US $4963.00 to send this ITEM overseas. If you send me that amount, plus the $1750 I&#8217;m asking for the ITEM, plus a US $3722.00 packing fee, then once the cashier&#8217;s check has cleared (in about 90 days) then I will send the ITEM right out to you!</p>
<p>Let me know if you agree.</p></blockquote>
<p>I&#8217;m hoping I get a bite one of these days and make a nice return on my time&#8230; <img src='http://waaronw.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>I have thought about taking one up on their offer some day, and then sending them wet phonebooks instead of the &#8220;item&#8221; but since I don&#8217;t go to great lengths to hide my identity, I just figure that would backfire and find me in trouble. Dang legal system!</p>
<p>~w</p>
]]></content:encoded>
			<wfw:commentRss>http://waaronw.com/blog/observations/how-i-handle-craigslist-spammers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Some people are just plain silly</title>
		<link>http://waaronw.com/blog/observations/some-people-are-just-plain-silly/</link>
		<comments>http://waaronw.com/blog/observations/some-people-are-just-plain-silly/#comments</comments>
		<pubDate>Wed, 10 Aug 2011 01:03:07 +0000</pubDate>
		<dc:creator>W. Aaron Waychoff</dc:creator>
				<category><![CDATA[Annoyances]]></category>
		<category><![CDATA[Me]]></category>
		<category><![CDATA[Observations]]></category>

		<guid isPermaLink="false">http://waaronw.com/blog/?p=177</guid>
		<description><![CDATA[I was walking home a little bit ago, in a light drizzle as I am wont to do. I was crossing Mass Ave near Beech street in Cambridge, using the crosswalk in front of the Newtowne Grille. I looked both ways, as always (and, as anyone who walks with me can attest, I&#8217;m nearly paranoid [...]]]></description>
			<content:encoded><![CDATA[<p>I was walking home a little bit ago, in a light drizzle as I am wont to do. I was crossing Mass Ave near Beech street in Cambridge, using the crosswalk in front of the Newtowne Grille. I looked both ways, as always (and, as anyone who walks with me can attest, I&#8217;m nearly paranoid about crossing the street) and I saw a van, about 2/3 of a block away coming my direction, but easily far enough way to slow for my crossing. I began to cross, and noticed that the van was not slowing at all. I picked up the pace and just as I entered the second lane, the van sped past me with the audible growl of acceleration and honked at me. The vehicle honked at me for being in a crosswalk. Yes. Again. A motor vehicle honked at a pedestrian for using a crosswalk. A woman across the street laughed when I finished crossing and said &#8220;how do you like that, beeped at for being in the crosswalk.&#8221; It was vey obvious the driver was wrong &#8211; not just to me, but to the bystanders.</p>
<p>That upset me a bit because Cambridge is a very pedestrian-friendly town, the van was in an area that has no less than five crosswalks crossing Mass Ave within about a three block section, and with behavior like that, the driver is going to hurt someone some day. I like to look after my fellow humans, and my righteousness was flaring, so I ducked around the corner where the van was parking and began to write down the number to the plumbing company that the van belongs to along with the license plate. The driver jumped out at that point and began yelling at me, telling me to be sure to tell the company that I jumped out in front of him when I call and that he would have killed me had he tried to slow down since he would have locked up the brakes. Yes, apparently he was unable to slow the vehicle over a 2/3 block distance without locking up the breaks. Honestly, if he thought that it was too rainy for me to be using the crosswalk normally, then doesn&#8217;t it follow that it was too rainy for him to be driving so fast as not to be able to safely stop in that distance?</p>
<p>Anyway, at that point he started getting belligerant. He claimed to have a witness who would testify that I jumped in front of him and demanded my name so he could file a police report before the morning. Of course, that is just a waste of resources for a petty situation, so I told him we could just drop the whole thing and leave it be. He would hear none of it and instead called me a douchebag. Yes. A douchebag. It&#8217;s funny, he looked older than 12, but I guess not.</p>
<p>I left at that point, unwilling to put up with any more from this silly person. After talking with my husband, I did choose to call his workplace and leave a message, calmly explaining the situation, stating that I was calling them because it was their vehicle that was being driven irresponsibly and dangerously, and mentioning that I would be happy to let the situation pass if the driver would as well. Then I shrugged it all off and headed home. I can&#8217;t imagine that anyone of sound mind would make anything of this, but if he choses to do so, I wanted to put down my recollections of the incident while it was fresh.</p>
<p>&nbsp;</p>
<p>Now for some pure speculation&#8230;</p>
<p>I have no idea what was going on in this guy&#8217;s head, but I imagine that he legitimately thought that I was misusing the crosswalk because he was in a situation where he needed to make accommodation for a pedestrian. (comments he made like &#8220;I know you pedestrians think you own the road&#8221; made it clear where he stands in regards to the most healthy and environmentally friendly mode of transportation we have) I imagine, though, that he quickly realized he was in the wrong when he noticed me taking down the information on his van, and in typical macho-man fashion, chose to embellish, expand, and vigorously defend his story so as to have something to fall back on if he got called on his actions. Unfortunately this is a vicious kind of person &#8211; the person who knows he&#8217;s wrong but has followed the lie so far that he can&#8217;t get out of it. I find these people to defend their positions so irrationally and vehemently as to be scary, impossible to deal with, and dangerous.</p>
<p>I made only one mistake in this entire situation. I gave him my business card when he demanded my name. I have absolutely nothing to hide, and so I should not be worried about this, but, honestly, when dealing with an irrational person like this, I do have some misgivings having given him too much information about myself. It will all work out, of course.</p>
]]></content:encoded>
			<wfw:commentRss>http://waaronw.com/blog/observations/some-people-are-just-plain-silly/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Protest the Keystone XL Pipeline</title>
		<link>http://waaronw.com/blog/observations/protest-the-keystone-xl-pipeline/</link>
		<comments>http://waaronw.com/blog/observations/protest-the-keystone-xl-pipeline/#comments</comments>
		<pubDate>Wed, 20 Jul 2011 20:31:03 +0000</pubDate>
		<dc:creator>W. Aaron Waychoff</dc:creator>
				<category><![CDATA[Observations]]></category>
		<category><![CDATA[politics]]></category>

		<guid isPermaLink="false">http://waaronw.com/blog/?p=172</guid>
		<description><![CDATA[I suspect that many of you already know about the proposed Keystone XL pipeline that may be built from Canada all the way through the midwest to Texas &#8211; a 36&#8243; diameter behemoth that will be carrying some of the nastiest crude oil we know thousands of miles through fragile ecological areas. Land is being [...]]]></description>
			<content:encoded><![CDATA[<p><!-- p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica} p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px} span.s1 {text-decoration: underline ; color: #1c4fae} span.Apple-tab-span {white-space:pre} -->I suspect that many of you already know about the proposed Keystone XL pipeline that may be built from Canada all the way through the midwest to Texas &#8211; a 36&#8243; diameter behemoth that will be carrying some of the nastiest crude oil we know thousands of miles through fragile ecological areas. Land is being seized and government funds are being used to make this project possible but only a handful of large oil corporations will see any benefit from it at all &#8211; and I can&#8217;t imagine that they will ever be held responsible for the horrendous fallout should even a small leak occur. (Which, even by the admission of their engineers will happen on average of every 7 years.)</p>
<p>The Obama administration essentially must grant permission for this pipeline and they are likely to do so without a lot of pressure. With the money thrown around by the large corporate stakeholders, it&#8217;s essential that those of us who oppose this short-sighted and dangerous project are even louder so that we may be heard.</p>
<p>&nbsp;</p>
<p>Late this August and into September, volunteers will be marching and protesting at the White House in an attempt to get President Obama to pay attention to non-corporate, non-profit-driven interests. I was scheduled to go, but my injury has prevented that from happening. I am inviting and encouraging as many others to take action and join in the protests as possible.</p>
<p>&nbsp;</p>
<p>Please take a moment and read more about this critical issue here: <a href="http://www.tarsandsaction.org/invitation/">http://www.tarsandsaction.org/invitation/</a></p>
<p>There may be some &#8220;alarmist&#8221; speech on that page, but I, for one, have begun to feel that raising the alarm is no longer premature.</p>
<p>&nbsp;</p>
<p>~w</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://waaronw.com/blog/observations/protest-the-keystone-xl-pipeline/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Arduino Dimensions</title>
		<link>http://waaronw.com/blog/observations/arduino-dimensions/</link>
		<comments>http://waaronw.com/blog/observations/arduino-dimensions/#comments</comments>
		<pubDate>Fri, 08 Jul 2011 18:41:02 +0000</pubDate>
		<dc:creator>W. Aaron Waychoff</dc:creator>
				<category><![CDATA[Observations]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[reference]]></category>

		<guid isPermaLink="false">http://waaronw.com/blog/?p=168</guid>
		<description><![CDATA[I&#8217;m always looking for the exact dimensions of the official Arduino board. It&#8217;s 2.1&#8243; x 2.7&#8243; if you need to know. If you need more, check out this handy image.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m always looking for the exact dimensions of the official Arduino board. It&#8217;s 2.1&#8243; x 2.7&#8243; if you need to know. If you need more, check out this <a href="http://forum.sparkfun.com/viewtopic.php?f=20&amp;t=22709">handy image</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://waaronw.com/blog/observations/arduino-dimensions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Self-serving media roundup post</title>
		<link>http://waaronw.com/blog/me/self-serving-media-roundup-post/</link>
		<comments>http://waaronw.com/blog/me/self-serving-media-roundup-post/#comments</comments>
		<pubDate>Fri, 09 Apr 2010 21:47:09 +0000</pubDate>
		<dc:creator>W. Aaron Waychoff</dc:creator>
				<category><![CDATA[Me]]></category>

		<guid isPermaLink="false">http://waaronw.com/blog/?p=149</guid>
		<description><![CDATA[So with this crazy iPad launch thing, I got some photos of me in the press!  Here&#8217;s where I ended up (that I know about): Boston Globe (My photo was used, a competitor was actually mentioned in the article) Boston.com (haven&#8217;t been able to bring myself to watch that one yet) TUAW.com (That&#8217;s me back [...]]]></description>
			<content:encoded><![CDATA[<p>So with this crazy iPad launch thing, I got some photos of me in the press!  Here&#8217;s where I ended up (that I know about):</p>
<p><a href="http://www.boston.com/news/local/massachusetts/articles/2010/04/04/tech_fans_turn_out_in_droves_for_ipad/">Boston Globe</a> (My photo was used, a competitor was actually mentioned in the article)</p>
<p><a href="http://www.boston.com/business/technology/gallery/ipadlaunch?pg=11">Boston.com</a> (haven&#8217;t been able to bring myself to watch that one yet)</p>
<p><a href="http://www.tuaw.com/photos/two-lines/#2861548">TUAW.com</a> (That&#8217;s me back by the end of the cattle guards with David Nunez, a partner in DINO)</p>
<p>OK, that&#8217;s enough tooting.</p>
]]></content:encoded>
			<wfw:commentRss>http://waaronw.com/blog/me/self-serving-media-roundup-post/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>An iPad security observation</title>
		<link>http://waaronw.com/blog/observations/an-ipad-security-observation/</link>
		<comments>http://waaronw.com/blog/observations/an-ipad-security-observation/#comments</comments>
		<pubDate>Tue, 06 Apr 2010 12:37:56 +0000</pubDate>
		<dc:creator>W. Aaron Waychoff</dc:creator>
				<category><![CDATA[Annoyances]]></category>
		<category><![CDATA[Criticism]]></category>
		<category><![CDATA[Observations]]></category>
		<category><![CDATA[DINO]]></category>

		<guid isPermaLink="false">http://waaronw.com/blog/?p=147</guid>
		<description><![CDATA[The moment I had my iPad out and began setting up an email account, I realized that the iPad presents a challenge that the iPhone and iPod touch largely avoided. It is much easier to see someone typing in their password on the iPad than the smaller devices &#8211; not only is the keyboard larger, [...]]]></description>
			<content:encoded><![CDATA[<p>The moment I had my iPad out and began setting up an email account, I realized that the iPad presents a challenge that the iPhone and iPod touch largely avoided. It is much easier to see someone typing in their password on the iPad than the smaller devices &#8211; not only is the keyboard larger, but the password entry fields (and thus the text) is also larger and still displays each character in clear text as they are being displayed. Add to all this the fact that I expect more people will be using their iPads flat on a surface for typing and it&#8217;s a bit of a worst-case scenario for password security. Luckily a little user training and common sense is enough to circumvent this security issue &#8211; just hold your iPad close and be aware of your surroundings when you are entering passwords.</p>
]]></content:encoded>
			<wfw:commentRss>http://waaronw.com/blog/observations/an-ipad-security-observation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPad physical interface objects</title>
		<link>http://waaronw.com/blog/uncategorized/ipad-physical-interface-objects/</link>
		<comments>http://waaronw.com/blog/uncategorized/ipad-physical-interface-objects/#comments</comments>
		<pubDate>Mon, 05 Apr 2010 14:29:26 +0000</pubDate>
		<dc:creator>W. Aaron Waychoff</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://waaronw.com/blog/?p=145</guid>
		<description><![CDATA[I&#8217;ll be blogging a lot more over at my studio&#8217;s website &#8211; which is where I just posted about some physical interface objects I&#8217;ve made for the iPad.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ll be blogging a lot more over at my <a href="http://www.dinospace.com">studio&#8217;s website</a> &#8211; which is where I just posted about some <a href="http://dinospace.com/2010/04/ipad-physical-object-interface/">physical interface objects</a> I&#8217;ve made for the iPad.</p>
]]></content:encoded>
			<wfw:commentRss>http://waaronw.com/blog/uncategorized/ipad-physical-interface-objects/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Meta-Nixie Clock</title>
		<link>http://waaronw.com/blog/projects/meta-nixie-clock/</link>
		<comments>http://waaronw.com/blog/projects/meta-nixie-clock/#comments</comments>
		<pubDate>Sat, 23 Jan 2010 00:01:54 +0000</pubDate>
		<dc:creator>W. Aaron Waychoff</dc:creator>
				<category><![CDATA[projects]]></category>
		<category><![CDATA[DINO]]></category>

		<guid isPermaLink="false">http://waaronw.com/blog/?p=101</guid>
		<description><![CDATA[I recently caught Matt Mets&#8217; post on hacking a digital photo frame into a clock by generating a static image for each minute of the day, and then automating the action of advancing the image once per minute. This allows for any number of interesting clocks to be made with suggestions ranging from a written-word [...]]]></description>
			<content:encoded><![CDATA[<div id="_mcePaste"><a href="http://waaronw.com/blog/wp-content/uploads/2010/01/intro.jpg"><img class="aligncenter size-full wp-image-130" title="intro" src="http://waaronw.com/blog/wp-content/uploads/2010/01/intro.jpg" alt="" width="600" height="434" /></a>I recently caught Matt Mets&#8217; <a href="http://www.cibomahto.com/2009/12/word-clock-from-cheapo-photo-frame/">post</a> on hacking a digital photo frame into a clock by generating a static image for each minute of the day, and then automating the action of advancing the image once per minute. This allows for any number of interesting clocks to be made with suggestions ranging from a written-word clock (as Matt&#8217;s project did) to photographing various clocks at each minute of the day to photographs of people miming clock hands. I happened to show this post to my husband and he absolutely loved the idea and wanted one for his desk at work. I immediately realized that I had found the perfect Christmas gift for him!<span id="more-101"></span></div>
<div id="_mcePaste">I knew I wanted to do more than just pop some pics on a memory card and hack the frame to advance every minute, so I got to thinking and settled on the idea of upholstering the frame in leather, accenting it in brass, and having a vaguely steampunky piece. I found a decent digital frame that had a nice, wide (and, importantly, solid wood) accent frame at my local Radio Shack, went shopping at my fabric store for some split leather, and hit several art and hardware stores to get some brass fittings. After that, I was ready to get started.</div>
<div id="_mcePaste">First off, I started the upholstery with a couple of layers of batting so I would have a &#8220;pillowy&#8221; look on the frame. This is because I would later be using a pattern of brass tacks to create a pattern on the frame and I wanted the whole thing to look overstuffed. Once I had the batting in place, I pulled a square of leather nice and tight over the frame and tacked it in place. I then cut out the center and tacked that down tightly.</div>
<p style="text-align: center;"><img class="size-medium wp-image-102 aligncenter" title="image1" src="http://waaronw.com/blog/wp-content/uploads/2010/01/image1-300x189.jpg" alt="" width="300" height="189" /><a href="http://waaronw.com/blog/wp-content/uploads/2010/01/image2.jpg"><img class="aligncenter size-medium wp-image-122" title="image2" src="http://waaronw.com/blog/wp-content/uploads/2010/01/image2-300x285.jpg" alt="" width="300" height="285" /></a></p>
<div id="_mcePaste">Next up was marking the pattern of brass tacks I would be applying. I was going for the classic zig-zag offset pattern one might find on an old leather club chair, so I marked off a grid with a fine-tipped sharpie and went to work with the tacks and hammer. (Just before tacking, I made a quick pass over the frame with some dark brown shoe polish to create an aged look)<a href="http://waaronw.com/blog/wp-content/uploads/2010/01/image2.5.jpg"><img class="aligncenter size-medium wp-image-121" title="image2.5" src="http://waaronw.com/blog/wp-content/uploads/2010/01/image2.5-300x225.jpg" alt="" width="300" height="225" /></a></div>
<div id="_mcePaste">The tacks didn&#8217;t take as long as I expected, and eventually the frame was shaping up just as I wanted.</div>
<div><img class="size-medium wp-image-105 aligncenter" title="image3" src="http://waaronw.com/blog/wp-content/uploads/2010/01/image3-300x216.jpg" alt="" width="300" height="216" /></div>
<div>However, the corners, particularly the interior corners, looked a little saggy, so I decided to do something about that. I rummaged through the brass findings I had on hand and came up with some great brass channel which fit nicely over the inside edge of the frame. After cutting it on my tiny mitre box, I attached it using some strong adhesive, though the pieces were cut snug enough that the glue was hardly needed. With the interior of the frame cleaned up, I added the (admittedly common) brass outer corners which classified things considerably.</div>
<div id="_mcePaste"><img class="size-medium wp-image-124 aligncenter" title="image4" src="http://waaronw.com/blog/wp-content/uploads/2010/01/image4-300x224.jpg" alt="" width="300" height="224" /></div>
<div>Next up was the back. Even though people aren&#8217;t going to see the back in regular use, I wanted to cover it to clean it up. Taking the time to do things like that really adds a professional feel to projects. I cut a piece of black art board I had around and attached it with double-sided tape. Once the digital frame was inserted (and a few loose ends trimmed) even the back looked nice and clean.</div>
<p><img class="size-medium wp-image-125 aligncenter" title="image5" src="http://waaronw.com/blog/wp-content/uploads/2010/01/image5-300x236.jpg" alt="" width="300" height="236" /></p>
<div id="_mcePaste">So, this is the frame mostly complete. Of course that white border is rather unsightly, but I had plans to take care of it. But before doing that, I had a very important thing to decide &#8211; what were the images going to be? Well, to be honest, I&#8217;d known from the start &#8211; I decided to use photos of Nixie tubes for the digits on the clock making a sort of &#8220;meta-Nixie clock&#8221; &#8211; a Nixie without all the hassle of high voltages! (before you chastise me, yes, I would like to do something fun with real Nixies soon, no I&#8217;m not afraid of the voltages, and yes, I do thing Nixie clocks have become boring)</div>
<div id="_mcePaste"><a href="http://waaronw.com/blog/wp-content/uploads/2010/01/image6.jpg"><img class="aligncenter size-medium wp-image-126" title="image6" src="http://waaronw.com/blog/wp-content/uploads/2010/01/image6-300x237.jpg" alt="" width="300" height="237" /></a></div>
<div id="_mcePaste">Leaving the physical side of the frame for a bit, it was time to tackle creating the images and getting the frame to properly display them. I started by combing Flickr for some good Nixie images. I found <a href="http://www.flickr.com/photos/16938341@N03/sets/72157622168744715/">these</a> by Flickr user <a href="http://www.flickr.com/photos/16938341@N03/">erickanderson</a>. (who built a great <a href="http://www.youtube.com/watch?v=G6EjVe1NcmM">Nixie clock</a> and who graciously agreed to let me feature his photos here) Of course I wasn&#8217;t going to sit and manually composite 720 images for the frame, so I broke out Processing and ripped Matt Mets&#8217; original sketch for his clock to create this sketch: (Note, I did properly crop and normalize the images before sending them through this sketch)</div>
<pre>
<div>//Thanks to Matt Mets for the initial version of this, to which the code below
//bears only a passing resemblance…
//To use this sketch, you will need an image of all 10 digits (all equally
//sized and closely cropped) as well as a colon image and a blank spacer image.
//These must be in the Data directory in the sketch's directory

// Set these to match the resolution of your frame
int imageWidth = 480;
int imageHeight = 234;

//This array holds the names of the digit images
String[] imagenames =
  { "zero.jpg", "one.jpg", "two.jpg", "three.jpg", "four.jpg", "five.jpg",
    "six.jpg", "seven.jpg", "eight.jpg", "nine.jpg" };
String imageName = new String();

//This will hold the image objects for each digit
PImage[] images = new PImage[10];
//This image will be added to the front and back of the clock
//image to pad it out to the size of the frame as defined at the top
PImage spacerImage;
//The colon image used to separate the hours from the minutes
PImage colonImage; 

//The width of each digit. Generally you will take the width of your frame
//and divide by 5. (4 digits plus the colon) Since the colon will be much
//narrower, you will want to split the extra into the front and back
//padding. My frame is 480px which gives me 5 digits of 96px. I chose to
//make my colon 26px wide, leaving 70px. I then divided that in two to
//arrive at a 35px spacer front and back

int digitwidth = 96;
int colonwidth = 26;
int spacerwidth = 35;

int myInt, count=0;

void setup() {
  //Populate the array of images using the image name array above
for (myInt = 0; myInt&lt;10; myInt++){
 images[myInt] = loadImage(imagenames[myInt]); 

}

//load the non-digit images
  spacerImage = loadImage("spacer.jpg");
  colonImage = loadImage("dot.jpg");
  imageMode(CORNER);

// Set Processing's screen to the size of the frame so the images won't
//be scaled by the frame, get blocky, take too long to load, etc. and
//give us all black bg/fill/stroke
  size(imageWidth, imageHeight);

//You can use a different background color, but if your images are
//sized correctly, you shouldn't see it anyway
  background(0);
  stroke(0);
  fill(0);

//Starts at 1:00 and works through to 12:59 - your clock will start at
//1:00 instead of 12:00 when first powered up

for( int hours = 1; hours &lt; 13; hours++ ) {
    for( int minutes = 0; minutes &lt; 60; minutes++) {
      // Clear the background by painting over it
      background(0);
      //Draw the first spacer image at the far left
      image(spacerImage,0,0);
      //Draw the colon in the middle
      image(colonImage,spacerwidth+(digitwidth*2),0);
      //Draw the second spacer at the far right
      image(spacerImage,spacerwidth+colonwidth+(digitwidth*4),0);

      //divide hours by 10 to get first digit, 0 or 1
      image(images[hours/10],spacerwidth,0);
      //mod hours by 10 to get second digit, 0-9
      image(images[hours%10],spacerwidth+digitwidth,0);
      //divide minutes by 10 to get first digit, 0-6
      image(images[minutes/10], spacerwidth+colonwidth+(digitwidth*2), 0);
      //mod minutes by 10 to get second digit, 0-9
      image(images[minutes%10], spacerwidth+colonwidth+(digitwidth*3), 0); 

// Write out an image file. My frame handleded &gt;200 images/folder fine, so
//I removed the subfolder code, but you can enable it if you need.
//Note the ugly code that pads zeros into the imageName string and which
//should be done a different way with string formatting, but, hey, it was
//very early when I wrote this.

      imageName="";
      if(count &lt; 1000){
          imageName="0";
          if(count &lt; 100){
            imageName = "00";
            if (count &lt; 10){
              imageName = "000";
            }
          }
      }

//Use this line if you need to break the images into 200/folder
//      save(count/200 + "/" + imageName + count++ + ".jpg"); 

//This line saves the image as a jpg
      save( "img/" + imageName + count++ + ".jpg");
    }
  }
}</div>
</pre>
<div id="_mcePaste">With this sketch, it takes about 30 seconds to create all the images for the frame and means that the digit sets could be swapped out easily. I copied the images over to an SD card, popped it in the frame, and viola! I had a clock. Which went from 1:00 to 1:20 then to 1:06… the images were not displaying in sequence on the frame despite being named sequentially!  It took me a moment to realize what was going on, but I&#8217;d had this problem before with an old MP3 player. It&#8217;s important to know that many operating systems (Mac and PC included) don&#8217;t necessarily copy files to media sequentially when you use their GUI interfaces. So, even though the files were named 001.jpg through 720.jpg, they were copied in a different order by Finder on my Mac. The frame seemed to be more interested in the order the files showed up in the file table than their names, so they were being displayed out of order. Luckily, there&#8217;s simple way to fix this &#8211; use the command line to copy the files. (Pop open Terminal, navigate to the folder with the images, and simply type &#8220;cp * /Volumes/SDCard/&#8221;  where SDCard is your memory card. On Windows, use &#8220;copy&#8221; and the appropriate file paths)</div>
<div id="_mcePaste">So, I had my frame displaying images, but I needed to advance it every minute. For this, I just took Matt&#8217;s code directly, programmed a Real Bare Bones Arduino from Modern Device (it&#8217;s tiny and cheap and fit in the frame nicely) and wired it up using an optoisolator to the &#8220;forward&#8221; switch on the frame. I elected to replace the ceramic resonator with a crystal and caps on the board so it kept better time. Since I was shoving an Arduino in the frame, I chose to use some of the spare pins to run some amber LEDs for lighting effects. I wouldn&#8217;t do it again, though. They were too flashy.</div>
<div id="_mcePaste"><a href="http://waaronw.com/blog/wp-content/uploads/2010/01/image7.jpg"><img class="size-medium wp-image-127 aligncenter" title="image7" src="http://waaronw.com/blog/wp-content/uploads/2010/01/image7-300x145.jpg" alt="" width="300" height="145" /></a></div>
<div>So, the frame looked mostly good, the images were in place, what&#8217;s next? Well, there&#8217;s that ugly white border I wanted to get rid of, and there was the annoying &#8220;feature&#8221; of my frame &#8211; it insisted on throwing a &#8220;loading&#8221; bar on the screen as it swapped from image to image. I decided to use some brass sheeting to mat down the frame to the size of the Nixie images and lend a little bit more of an ornate look to the frame. I started by sketching out a design and cutting the brass sheeting. I used a rotary tool to add some accent cuts.</div>
<div><img class="size-medium wp-image-128 aligncenter" title="image8" src="http://waaronw.com/blog/wp-content/uploads/2010/01/image8-300x225.jpg" alt="" width="300" height="225" /></div>
<div>I wanted the brass to have an aged look, so I covered it in black sharpie and then used sandpaper at varying angles to sand most of it off. After applying to the frame, I ended up with a nice brass mat.</div>
<p>So, putting it all together and turning it on, I ended up with a very nice meta-Nixie clock as a great gift for my husband Cameron &#8211; who absolutely loved it, by the way!</p>
<div id="_mcePaste"><a href="http://waaronw.com/blog/wp-content/uploads/2010/01/image9.jpg"><img class="aligncenter size-full wp-image-129" title="image9" src="http://waaronw.com/blog/wp-content/uploads/2010/01/image9.jpg" alt="" width="600" height="474" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://waaronw.com/blog/projects/meta-nixie-clock/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>lolshield hacking</title>
		<link>http://waaronw.com/blog/projects/lolshield-hacking/</link>
		<comments>http://waaronw.com/blog/projects/lolshield-hacking/#comments</comments>
		<pubDate>Tue, 29 Dec 2009 23:46:04 +0000</pubDate>
		<dc:creator>W. Aaron Waychoff</dc:creator>
				<category><![CDATA[projects]]></category>
		<category><![CDATA[DINO]]></category>

		<guid isPermaLink="false">http://waaronw.com/blog/?p=92</guid>
		<description><![CDATA[My friend Jimmie Rodgers, maker extraordinaire has come up with a great new shield for the Arduino which he is calling the LoLshield for &#8220;lots of leds&#8221;. It&#8217;s a charliplexed array of 126 LEDs in a 9&#215;14 grid that pops right onto an arduino. Neat! A problem with charliplexing is brightness. Since you have to turn [...]]]></description>
			<content:encoded><![CDATA[<p>My friend <a href="http://jimmieprodgers.com">Jimmie Rodgers</a>, maker extraordinaire has come up with a great new shield for the Arduino which he is calling the <a href="http://jimmieprodgers.com/kits/lolshield/">LoLshield</a> for &#8220;lots of leds&#8221;. It&#8217;s a charliplexed array of 126 LEDs in a 9&#215;14 grid that pops right onto an arduino. Neat!</p>
<p><img class="alignright" title="LoLshield" src="http://waaronw.com/files/photo.jpg" alt="" width="225" height="177" />A problem with charliplexing is brightness. Since you have to turn each led on and off only one at a time, you must cycle them very quickly and rely on persistance of vision to make it look like many are on at once. The faster you can cycle, the brighter they will seem.</p>
<p>Arduino libraries can be very convenient, but some are slow. Using the original routine which called PinMode() and DigitalWrite() twice for each LED, only limited brightness could be achieved. I worked out a way to use direct port manipulation instead, a process which allows you to directly set the output mode and state of the pins of the ATMega very quickly &#8211; and set multiple pins at once to boot! Check out the Arduino <a href="http://www.arduino.cc/en/Reference/PortManipulation">Port Manipulation</a> page for more.</p>
<p>Here&#8217;s how it works. At the <a href="http://jimmieprodgers.com/kits/openheart/">heart</a>, we have a 2D lookup array which contains 4 values for each of the 126 LEDs on the board. The values are what needs to be shoved into the corresponding DDR and PORT registers to turn each LED on. (I used a quick processing sketch to generate this) As an example, let&#8217;s walk through the 4 values stored for LED 0, the upper-left LED. It uses pin 13 as its positive pin, and pin 5 as its ground. The values stored are:  {32, 34, 32, 0}</p>
<div id="_mcePaste">- first byte is the value to enable pin 13 in the DDRB register (00100000) ORed with the value to enable pin 5 in the DDRB register(00000000) (it&#8217;s in the DDRD reg so it&#8217;s just zeros) = 32</div>
<div id="_mcePaste">- second byte is value for pin 13 in the DDRB (00000000) ORed with the value for pin 5 in the DDRD reg(00100010) (includes keeping pin 1 enabled for serial) = 34</div>
<div>(These two values are ORed between the pins so that they can be set simultaneously in one assignment of each DDR register)</div>
<div id="_mcePaste">- third byte is the value needed to turn on pin 13 (the positive pin) in PORTB = 32</div>
<div id="_mcePaste">- fourth byte is the value needed to turn on pin 13 in PORTD (either the 3rd or 4th byte will always be zero since we only turn on 1 pin) = 0</div>
<div>(Notice there&#8217;s no ORing with these last two &#8211; we only want pin 13 high, pin 5 should stay low to sink current and provide the ground. Luckily low is the default state for a pin set as an output so we don&#8217;t have to do anything with pin 5 here)</div>
<div>Since the enable bit for both pins is now set in value 1 and 2, we just have to shove byte1 into DDRB and byte 2 into DDRD to enable the pins as outputs</div>
<div id="_mcePaste">Since the output bit for the correct pin is set in either value 3 or 4, we just have to shove byte 3 into PORTB and byte 4 into PORTD to turn the proper pin high</div>
<div>Now, with these values, we just have to put them where they belong, so we have been able to turn this:</div>
<div>
<blockquote>
<div>void turnon(int led) {</div>
<div>int pospin = ledMap[led][0];</div>
<div>int negpin = ledMap[led][1];</div>
<div>pinMode (pospin, OUTPUT);</div>
<div>pinMode (negpin, OUTPUT);</div>
<div>digitalWrite (pospin, HIGH);</div>
<div>digitalWrite (negpin, LOW);</div>
<div>}</div>
</blockquote>
</div>
<div>into this:</div>
<div>
<blockquote>
<div>void turnonbin(int led){</div>
<div>DDRB = ledMapBin[led][0];</div>
<div>DDRD = ledMapBin[led][1];</div>
<div>PORTB = ledMapBin[led][2];</div>
<div>PORTD = ledMapBin[led][3];</div>
<div>}</div>
</blockquote>
<div>Which seems to run faster, updating the LEDs faster, and resulting in better brightness and LED stability. Just what I was going for!</div>
<div>You can find my version of Jimmie&#8217;s demo code attached, along with the messy processing sketch I used to translate the original LED map into the new version.</div>
<div>Now, go buy a kit from Jimmie and get loling!</div>
<div><a href="http://waaronw.com/files/lolshield_waw.pde">Arduino demo code</a></div>
<div><a href="http://waaronw.com/files/ledpinmapper.pde">Processing sketch</a></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://waaronw.com/blog/projects/lolshield-hacking/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Searching for Space (for your hackerspace)</title>
		<link>http://waaronw.com/blog/observations/searching-for-space-for-your-hackerspace/</link>
		<comments>http://waaronw.com/blog/observations/searching-for-space-for-your-hackerspace/#comments</comments>
		<pubDate>Mon, 17 Aug 2009 13:48:22 +0000</pubDate>
		<dc:creator>W. Aaron Waychoff</dc:creator>
				<category><![CDATA[Observations]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[DINO]]></category>
		<category><![CDATA[diy]]></category>
		<category><![CDATA[hackerspace]]></category>

		<guid isPermaLink="false">http://waaronw.com/blog/?p=82</guid>
		<description><![CDATA[A long list of things to think about when looking for a physical location for your hackerspace or maker community.]]></description>
			<content:encoded><![CDATA[<p>So, once Em, David and I decided that we didn’t need a space, we immediately started looking for a space. It was as if knowing we did not absolutely need a place made the search easier to handle. As I have mentioned previously, there are a lot of benefits to having a location around which to build a community, but the location need not be a defining part of the community. Still, I do think it’s easier for a community to define itself if it has a physical home. (But it’s not so necessary that a group should wait for space to start doing stuff!)</p>
<p>There are a few things you should know about when looking for spaces. (Warning: this could get a little long)</p>
<p><strong>What kind of zoning fits your needs?</strong><br />
This can be a big one, and is going to vary a lot depending on your location and goals. If you are just getting a private space to have a few people share as a studio, lounge, hackerspace, etc. then you may well be able to get by with a residential place. This will generally keep everything cheaper, but you could run into issues with the landlords (who often frown on non-traditional use of residential space), neighbors (people coming and going at odd hours, suspicious of what you are doing, noise complaints), and government agencies (running many businesses out of a residence is illegal, gathering of people for commercial events is problematic, etc.).<br />
A popular co-working facility I know started in a residential area, which served them well for a while. But with their growth and popularity on the rise, friction with the neighbors and landlords have forced them to look for a new space.</p>
<p><strong>How much space do you really need?</strong><br />
Space is a paradox. It simultaneously goes further than you might expect, and is always smaller than you think. It pays to think this one out well. Get too little space, and you won’t have anything better than the corner of your bedroom where your soldering iron is threatening to send the bed up in a blaze. Get too much space and you may not be able to afford it long enough to get your community off its feet.</p>
<p><span id="more-82"></span>I highly recommend pulling out a program like Visio, Illustrator, or even just a sheet of graph paper. Mark out a reasonable space, say, 300 square feet. Now measure out some of the average pieces of furniture you would like to have &#8211; chairs, couches, desks, workbenches, server racks. Make shapes (either electronically or physically) and arrange things in the space. (Allow for things like doors, clearance for chairs, etc.) This will give you a much better idea of how much space you need and want. Scale up or down the room as needed &#8211; and keep in mind, you may not get a single, big rectangle of space, so be prepared for odd corners and niches. (Great for mini lounge areas!)</p>
<p><strong>What amenities do you need?</strong><br />
This is where you decide if you need a bathroom (or if the one down the hall will work), a shower, utility sink, kitchen, lots of windows, no windows, 220V power, and more. There are a lot of things that fall into this list, and it’s easy to go overboard. (Of course we need a full bathroom, kitchen, back yard, porch, parking, hardwood floors, 220V, fiber internet, and a live-in housekeeper!) Prioritize things into “requirement”, “important”, and “nice-to-have” lists. No space is likely to have everything, but you can use this list to evaluate what it does have against other potential spaces. And, depending on the space, landlord, and funds, many of your amenities could be added after you move in.</p>
<p><strong>Where should your space be located?</strong><br />
This can make or break your space. Put your hackerspace down a dirt road four miles from the nearest place to buy coffee and snacks with no parking for visitors and a scary/grimy back alleyway leading to the entrance and you’ve likely doomed yourself from the start. (There are exceptions to this, especially if you have a closed group of people who *like* grimy alleys, like to be left alone, and you aren’t looking at starting a open/public group.)If you live in a car-centric area, make sure you have parking. If you live in a transit-centric area, make sure you are convenient to the bus or subway. If most of your members live on one side of town, don’t put the space on the opposite side. The convenience of getting to/from the space is key in making sure people use it regularly.<br />
I don’t think you can overestimate how important this is. (But it’s all a balancing act &#8211; you probably can’t get a floor in a high-rise downtown no matter how convenient it might be!)</p>
<p><strong>What kind of lease are you willing to settle for?</strong><br />
There are a lot more to leases than just the length of the lease term. Residential leases are going to be about the same from place to place in your district, but they all need to be read carefully. (What if they don’t like what you are doing and kick you out on a technicality &#8211; are you still responsible for paying for the rest of the lease?) Commercial leases are a different ball of wax and will vary greatly from place to place and landlord to landlord. If you are going with a commercial place, you are probably going to be better off going with a space that you lease directly from a person. They are more likely to work with you to understand your needs and to give you reasonable terms on a lease. Corporate lessors are often more interested in tenants they can put into a pre-defined category (“office workers”, “restaurant” or “manufacturing”) and their leases are often much more strict owing to the army of lawyers who have made their mark on them.<br />
One of the most important things you can understand about commercial leases is the concept of a “Gross Lease” vs “Net Lease” &#8211; and the variations between. In the residential lease world, if your stove breaks or toilet leaks, you are used to calling the landlord who (usually) comes and takes care of it. Not necessarily so in the commercial world. Residential leases are usually gross leases which means the landlord takes care of pretty much any expense that arises from the ownership of the property, including repairs and taxes. There are commercial gross leases available. On the other hand, a full net lease could leave the lessee holding the bag for all repairs (regardless of original condition of the property) and even the taxes! Often, you will find leases fall in the middle somewhere, but you should expect to take care of some of the repairs of the space that come up over time yourself &#8211; and by that, I mean you foot the bill for the plumber or electrician unless you are *well* qualified to complete such repairs.</p>
<p>Also, a note on pricing terms. You may see commercial spaces advertised at &#8220;$25/sf&#8221; or &#8220;$3/sf&#8221; &#8211; this usually means &#8220;per year&#8221; or &#8220;per month&#8221; depending on the going rates in your area. Once you get a feel for what space is renting for around you, you&#8217;ll know at a glance whether they are talking per year or per month rates.</p>
<p><strong>Landlords and listing agents lie in online ads.</strong><br />
Ok, so that’s a bit harsh, but in my experience it’s true more often than not. They aren’t always big lies, but things like the convenience of the location (especially when an address is not supplied), the total square footage, the actual lease payments, and even the city in which the property is located are misrepresented more often than I ever expected. I remember calling on a series of promising properties listed on Craigslist only to find that it was the same property, listed by three different people all likely on commission. That same location varied from 250sf to 600sf and the rent fluctuated by $200 depending on who I was talking to. So, don’t dismiss ads you see, but be prepared for some part of the property to be dissapointing. (Really, this isn’t much different from apartment hunting. At lease commercial listers don’t usually use “cozy home” or “cute apartment” as euphemisms for closets.)</p>
<p><strong>Branch out beyond the online ads.</strong><br />
If your community still has printed papers, check them. Visit real estate agents. Drive/bike/walk through the neighborhoods you are interested in. Non-tech-savvy landlords may be your best find as they may be more willing to deal with you on a person-to-person basis. (I don’t know about you, but I like to be treated like a human.) Keep in mind that going through an agent may mean paying a fee or commission, but that can be worth it if they have the perfect space for you. And these fees can be negotiable &#8211; try to get the landlord to foot the bill, split it with you, or lower the rent a bit to compensate.</p>
<p><strong>Check out the property thoroughly and make sure it meets your needs.</strong><br />
Make sure it’s sturdy. Be sure the sinks/toilets work. Check the outlets, A/C, heat and anything else you need and may be responsible for repairing. Make sure it’s going to work for your purposes &#8211; big tools generally don’t work well in third-story walk-up wood-framed units from 1902 no matter how beautiful the crown moulding is. It&#8217;s not worth taking a space simply because it&#8217;s available and well-priced if it&#8217;s not going to work for you.</p>
<p><strong>Think carefully before entering into a lease &#8211; it’s a legal contract.</strong><br />
Consult a lawyer if you can. Consider who will be named on the lease &#8211; a person, or do you need a partnership/LLC/etc? Think about how long you and others can commit to paying the lease &#8211; and if those commitments are feasible. What happens if half your members walk away on one day and take their rent payments with them?  Defaulting on a lease can have real and terrible repercussions &#8211; especially in our credit-score-centric society. You don’t want your experimental hackerspace to keep you from renting an apartment next time you have to move.</p>
<p>Whew &#8211; and that’s just what I can say about searching for a space. There will be more coming. I hope someone finds this helpful.</p>
]]></content:encoded>
			<wfw:commentRss>http://waaronw.com/blog/observations/searching-for-space-for-your-hackerspace/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

