<?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, ramblings and insights from someone fed up with FAKE</description>
	<lastBuildDate>Fri, 09 Apr 2010 21:47:09 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>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 by the end [...]]]></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>4</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 each [...]]]></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>
		<item>
		<title>Do you really need a space?</title>
		<link>http://waaronw.com/blog/praise/do-you-really-need-a-space/</link>
		<comments>http://waaronw.com/blog/praise/do-you-really-need-a-space/#comments</comments>
		<pubDate>Fri, 14 Aug 2009 15:20:35 +0000</pubDate>
		<dc:creator>W. Aaron Waychoff</dc:creator>
				<category><![CDATA[Praise]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[community]]></category>
		<category><![CDATA[DINO]]></category>
		<category><![CDATA[diy]]></category>
		<category><![CDATA[hackerspace]]></category>

		<guid isPermaLink="false">http://waaronw.com/blog/?p=75</guid>
		<description><![CDATA[Recently, Emily Daniels, David Nunez and I decided that it was Time To Do Something. We were all struggling with some personal creative projects, and felt that we needed a community of people around us who were making interesting things. With the right kind of people gathered, a lot of magic can happen. We were [...]]]></description>
			<content:encoded><![CDATA[<p>Recently, <a href="http://www.emilydaniels.com" target="_blank">Emily Daniels</a>, <a href="http://www.davidnunez.com" target="_blank">David Nunez</a> and I decided that it was Time To Do Something. We were all struggling with some personal creative projects, and felt that we needed a community of people around us who were making interesting things. With the right kind of people gathered, a lot of magic can happen. We were especially interested in exploring the energy that’s created when productive, enthusiastic, creative people come together &#8211; whether they are working on their own projects or a collaboration.</p>
<p><span id="more-75"></span></p>
<p>Naturally, one of the first topics that came up in our conversations was what kind of space we needed, where, how big, etc. It was at the beginning of these explorations that we all realized that a persistent space is not a requirement for our goals. There are a lot of positives about having a space to call “home” to such a community &#8211; not the least of which is that a space facilitates a much faster growth of that community &#8211; but we decided it was not something to wait for. Communities start whenever and wherever they are needed and the only thing that is required is a group of generally like-minded individuals with a little motivation.</p>
<p>Realizing this really took some of the pressure off and allowed us to focus more on what we saw this group of people to be and less on Where/When/How Much issues. The Where became Anywhere, the When became Now, and the How Much became Essentially Free. That’s when Em organized the first <a href="http://www.emilydaniels.com/2009/06/bring-your-own-robot-night-got-brought/" target="_blank">Open Hack at True Grounds</a>, a coffee shop in Ball Square, Somerville. And that’s when the community started coming together.</p>
<p>Everyone already knew each other (and, sadly, I was out of town and unable to join), but it had the feeling of something new, something a little more focused, something a little truer. It was a group of productive, enthusiastic, creative people coming together. And we didn’t have to wait to have a space to make it happen.</p>
<p>Since that night, we have gone on to secure a location that can serve as home to our community, and it has certainly raised the level of what we can do with projects, events, and education, but it was not a requirement to get the ball rolling. It was optional, a very nice option, to be sure, but had we waited until we had a space to get the ball rolling, we would just be that much further up the road than we are now.</p>
<p>So, I guess the point of this post is to say “Get Started Now!” and don’t let things like the lack of a space or lack of funds keep you from going forward. Choose a spot (it’s nice to check with the owners if it’s a cafe, bar, etc.) invite some friends, and do some stuff. Eventually you’ll figure out how to get a space, or even if a space is right for you.</p>
<p>And if you are in the Boston area, and need someplace to try out your community for a night or two, contact us as <a href="http://www.dinospace.org">DINO</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://waaronw.com/blog/praise/do-you-really-need-a-space/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Making money (on twitter, without a record label, with fans)</title>
		<link>http://waaronw.com/blog/observations/making-money-on-twitter-without-a-record-label-with-fans/</link>
		<comments>http://waaronw.com/blog/observations/making-money-on-twitter-without-a-record-label-with-fans/#comments</comments>
		<pubDate>Sat, 27 Jun 2009 17:49:04 +0000</pubDate>
		<dc:creator>W. Aaron Waychoff</dc:creator>
				<category><![CDATA[Observations]]></category>
		<category><![CDATA[Praise]]></category>

		<guid isPermaLink="false">http://waaronw.com/blog/?p=71</guid>
		<description><![CDATA[These days, I am a total fanboy of Amanda Fucking Palmer. (Please check her and her music out if you do not know her and The Dresden Dolls) As with more and more artists, AFP is dissatisfied with her relationship with her music label, Roadrunner Records. While the restrictions on her expression may be the [...]]]></description>
			<content:encoded><![CDATA[<p>These days, I am a total fanboy of <a href="http://www.amandapalmer.net">Amanda Fucking Palmer</a>. (Please check her and her music out if you do not know her and The Dresden Dolls) As with more and more artists, AFP is dissatisfied with her relationship with her music label, Roadrunner Records. While the restrictions on her expression may be the root of her disagreement with them, the problems run much wider &#8211; including lack of support, general idiocy, and more. Simultaneously with this realization, AFP has made steps to support herself &#8211; on her terms &#8211; without the involvement of her label. This is something that has, inarguably, been made possible by the Internet and will likely gain more and more steam in the future.</p>
<p>AFP has a moderately sized, but rabidly loyal fan base. This is not an accident, she is not simply &#8220;lucky&#8221; &#8211; she reaches out to her fans, cultivates the fields and, above all, remains honest and approachable. Such an interested and loyal group of fans seems to be a far more valuable asset to AFP than any record company ever will. And recently, she has really begun to figure out how to tap these fans for what they will gladly, emphatically give to see their favorite artist continue to create.</p>
<p><span id="more-71"></span></p>
<p>Unlike many other smaller-scale artists, AFP know how to do merchandising at her shows, on her website, and, more recently, on Twitter. It&#8217;s more than just being able to pick up a &#8220;Who Killed Amanda Palmer&#8221; t-shirt or album at a show or even snagging a &#8220;WKAP World Tour&#8221; poster. She makes merchandise that is tied to the specific event, the actual performance, and other items that while less specific, are nonetheless honest reflections of AFP, her music, and her fans. (You will find military-punk style shoulder bags and screen printed &#8220;Property of AFP&#8221; thongs. You won&#8217;t find cheap, gaudy crap or silly &#8220;tour date&#8221; posters.) At a recent concert at Wellesley College she had the entire audience feign a 2-minute nap and then produced a couple hundred t-shirts emblazoned with &#8220;I slept with Amanda Palmer at Wellesley College.&#8221; (Not the first time she has done this.) It was very popular and it seemed many, many more people were buying a shirt than would have otherwise. It was unique, tied to the experience, and meant something to the buyer that a generic WKAP shirt would not.</p>
<p>Recently, Amanda Palmer took this idea even further, though an inspiring, organic &#8220;meeting&#8221; of hundreds of people on Twitter. Being alone at home on Friday night, with her computer (AFP is a very tech-savvy artist) and, of course, a bottle of wine, she began tweeting, quite simply, about how she was alone at home on a Friday night with her computer. Thus was born the #lofnotc hashtag &#8211; losers of friday night on their computers. It spread, hit the top spots on Twitter&#8217;s trending topics, pulled in hundreds of people to the &#8220;party&#8221; and went on for a couple of hours of AFP asking and answering questions, making observations, and avoiding cleaning her apartment. There&#8217;s that honesty again.</p>
<p>What came of this &#8211; again, quite organically &#8211; were a couple of simple drawings AFP made as a &#8220;logo&#8221; for #lofnotc and posted webcam pics of. This quickly became the idea for a printed t-shirt, which even more quickly became available to purchase via her web site though a simple paypal cart. Keep in mind that this took less than a day from conception to ready-for-purchase. She began giving away prizes (like the original artwork) for the 100th shirt sold, then the 200th, and it continued through the 400th(!) shirt sold. At $25/each, as AFP put it, &#8220;you&#8217;re all paying my fucking rent!!! i love life.&#8221;</p>
<p>I cannot imagine how many copies of WKAP would have to sell for Amanda Palmer to net the same amount that she has off a couple of hours on Twitter. And this was all without her record label, and made possible though her amazing fan base who can see where their money is going and are happy to support their favorite artists.</p>
]]></content:encoded>
			<wfw:commentRss>http://waaronw.com/blog/observations/making-money-on-twitter-without-a-record-label-with-fans/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New project released: iSrch Rndmzr 3000!</title>
		<link>http://waaronw.com/blog/me/new-project-released-isrch-rndmzr-3000/</link>
		<comments>http://waaronw.com/blog/me/new-project-released-isrch-rndmzr-3000/#comments</comments>
		<pubDate>Wed, 13 May 2009 17:33:17 +0000</pubDate>
		<dc:creator>W. Aaron Waychoff</dc:creator>
				<category><![CDATA[Me]]></category>
		<category><![CDATA[projects]]></category>

		<guid isPermaLink="false">http://waaronw.com/blog/?p=69</guid>
		<description><![CDATA[I&#8217;ve finally finished the photography for my project, &#8220;iSrch Rndmzr 3000! by Subverted Industries&#8221;. The &#8220;project&#8221; really consists both of a device I fabricated (from an Arduino, display, and salvaged enclosure) and the corresponding web site. I&#8217;ll let you visit the site for details. My comments on the project can be found under the &#8220;about&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve finally finished the photography for my project, &#8220;iSrch Rndmzr 3000! by Subverted Industries&#8221;. The &#8220;project&#8221; really consists both of a device I fabricated (from an Arduino, display, and salvaged enclosure) and the corresponding web site. I&#8217;ll let you visit the <a href="http://subvertedindustries.com">site</a> for details. My comments on the project can be found under the &#8220;about&#8221; section at the site.</p>
<p>There will be more to come for the <a href="http://subvertedindustries.com">Subverted Industries</a> brand. Keep an eye out.</p>
<p>~w</p>
]]></content:encoded>
			<wfw:commentRss>http://waaronw.com/blog/me/new-project-released-isrch-rndmzr-3000/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bizarre.</title>
		<link>http://waaronw.com/blog/uncategorized/bizarre/</link>
		<comments>http://waaronw.com/blog/uncategorized/bizarre/#comments</comments>
		<pubDate>Mon, 20 Apr 2009 03:00:31 +0000</pubDate>
		<dc:creator>W. Aaron Waychoff</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://waaronw.com/blog/uncategorized/bizarre/</guid>
		<description><![CDATA[I&#8217;m on a plane. The guy in front of me just reached over and grabbed the back of his chair, stretching. I wanted to lick his hand. Just to see what he would do. I would deny it, of course, because that would make for a more interesting exchange. 
Is that wrong?
]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m on a plane. The guy in front of me just reached over and grabbed the back of his chair, stretching. I wanted to lick his hand. Just to see what he would do. I would deny it, of course, because that would make for a more interesting exchange. </p>
<p>Is that wrong?</p>
]]></content:encoded>
			<wfw:commentRss>http://waaronw.com/blog/uncategorized/bizarre/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
