I’ve long been a believer in the 80/20 rule.  Not the way it’s usually thought of, where 80% of the results will accrue from 20% of the input.  But the view that says the last 20% is darned hard to earn.  In fact, I’ve often believed that each incremental movement forward had a strong probability of being significantly harder than the last incremental movement.  In economics, they call it diminishing returns – getting less and less result for the last bits of effort.

So, it’s never unexpected to me when there’s a set of crazy challenges at the tail end of a project.  In fact, I’ve grown to count that as an indicator of nearness of the finish line.  The weirder the curveballs coming my way, the closer I must be to glory.  Hey, if it’s a fantasy, at least it’s a fantasy that keeps me going instead of quitting.

In the last few weeks, I’ve been working diligently on a project for OSCON.  I had some early wins, but the going’s gotten really rough of late.  Once I finally got over my fear of cutting wires to patch in a digital signal, I discovered that signals through wires weren’t really going to get me there.  I found a lot of guidance on infrared signals interacting with Furbys and how to run infrared from Arduino, and then discovered that my version of Furby doesn’t have an infrared sensor.  That’s OK – I have experience driving Furbys with sound, based on my Women In Computing efforts.  Hmmm – not thinking that the piezo that comes with my startup kit is going to do quite what I want.  But Adafruit has a Wave shield… uh, I’d have to assemble it, which will require soldering.  And it’s not available in our area, meaning it _might_ get here sometime Monday.

OK, SparkFun builds an MP3 player – perfect – do a WAV to MP3 conversion using various tools online.  Not so fast – after dragging the family and trekking ’round the Beltway to get the part, it doesn’t work on my Arduino + SEEED Ethernet shield stack.  Just plain doesn’t fit / seat to do anything useful.  Worse, I then read that the MP3 player shield needs to take over exclusive use of certain pins, meaning it would likely cause issues even if it did seat correctly.  I foresee a trip back to Micro Center in my future…

Things got a bit better and a bit worse…  I fell back to an approach just using an SD card, but didn’t have a SD card reader.  That was what I originally went to Micro Center to get, but had decided the MP3 player was the more complete solution.  It would’ve been, if it had worked.  So, off I went to Radio Shack to get an SD shield from SEEED, on the hope that it works  more nicely with the SEEED Ethernet shield than did the SparkFun one.

Hurrah!  It fits!  I’m now fighting issues with serial ports coming and going, and even a Windows BSoD.  Code’s working intermittently.  Gonna be a long night.

 

Working with a mish-mash of shell scripts and maven files, all of which were designed to work together in an environment with specific paths and environment settings that aren’t all well-documented.  (Even better would be checked at first run from a script with a fast fail, but…)  The builds are long – very long.  So it becomes useful to do partial builds.  Very happy to find someone listing an approach for block comments in a shell script.  That way as I figure out a new hack (documented in my script, of course), I don’t need to execute everything that came before.

Link for future reference: http://stackoverflow.com/questions/947897/block-comments-in-a-shell-script

 

For my OSCON brief, I’m hooking up an Arduino to a Furby. Got the Arduino, got the Furby. Have had a near panic attack at realizing that what I’m lacking is electronics expertise. The past few days have been a whirlwind of loosely analogous electronic circuits, trying them out, and dashes of terror followed by waves of relief as first something doesn’t work, then it doesn’t work some more, I worry about whether I’ve fried the equipment, and then finally something works. The thing I haven’t yet crossed my terror boundary on yet is soldering… all of my wiring has been through unplugging, connecting in via male or female connectors (see, I’ve already learned something!), and testing to see what’s different…

Tonight, though, I had to cut a wire. Two, actually. My Furby is now dead, though hopefully only temporarily. I’ve severed his ground and power wires (black and red, pretty conventional, I’ve discovered), and will now to attempt to splice them them with new wires that’ll plug into the bread board connected to my Arduino. The bread board has its transistor and resistor and diode all nicely arranged, and pretested with a little electric motor. Here’s hoping my Franken Furby arises again! Or my conference talk next week will be slightly different than I’d planned…..