blog

Open source WIN

Wed Feb 25 2009 22:49:58 GMT-0800 (Pacific Standard Time)

tags: linux sanyo katana foss

Another victory for open source. I've been trying to stay fairly cutting edge again at home -- with my Debian unstable and pretty up-to-date kernel builds. I'm usually surprised at just how easy things are now...

sanyo phone

But my crappy little phone stopped automounting for some reason when I plugged it in. I managed to search and find this bug thread which suggested a similar problem and a patch for Nokia phones. A few minutes later I had downloaded the patch, applied it, and then tweaked it to match the manufacturer/product IDs of my silly phone.

It ended up looking something like this:

UNUSUAL_DEV(  0x0474, 0x0749, 0x0000, 0x0481,
        "Sanyo",
        "Sanyo Mass Storage",
        US_SC_DEVICE, US_PR_DEVICE, NULL,
        US_FL_FIX_CAPACITY),

One kernel compile and reboot later and it worked like a champ.

Of course, all this begs the question "Why did it happen in the first place?"...which is another topic completely. Having the ability to take ownership and fix the problem to get work done (until the upstream [kernel]) is priceless. You'll never get that same experience with your closed source OS.

2008 noisybox.net recap

Wed Dec 31 2008 22:27:17 GMT-0800 (Pacific Standard Time)

tags: 2008 noisybox misc reflection zeitgeist

Year-end recaps are all the rage this time of year, and since I've never really done one I figured what the hell. I hope that by rehashing some of the happenings this year and reflecting on successes/failures that I can gear up for a rock solid 2009. I should point out up front that a massively important part of 2008 included spending time with and caring for my family. I won't emphasize it here, though, because I've decided to mostly stop publishing personal information that involves my family. Recapturing privacy and retaining control of one's personal, private life while still maintaining an online presence/persona is a newish goal for me. It's a real challenge at times, and I have no idea how it's all going to work out...but I know that I'm just not that comfortable anymore posting pictures or stories about family details. It's too much of a liability, and for now the risk outweighs the rewards. It's probably already obvious, but the main focus is to make noisybox.net a project site where I can share my technical experiences and clever hacks. Sure, it will sometimes still get interrupted by the occasional rant or personal anecdote or political standpoint. Wait, that's nothing new right? So what happened with me in 2008? In January I organized and hosting a circuit bending workshop called Haywire with Dorkbot PDX. About 40 geeks and noise hackers showed up and had a great time stirring up some junk toy cacophony. There's been talk of doing another bending workshop, but I'm not sure when it'll be (ideally after I finish a small run of kolpxnty boards). In the months after the workshop, I worked on polishing up some software and configuration for my audiopint. The audiopint became a main tool used in a 1 hr live performance I did on KBOO on Jennifer Robin's NOTLT on May 1st. There's HD video of the performance, but I haven't yet managed to stitch it together in a way that I'm comfortable releasing. All in all, playing KBOO was a great experience and I'm happy to have been part of Jennifer's now sadly defunct radio show. In the spring I learned of Michael Waisz's passing and was asked by an avant garde composer to build a cracklebox. I used one of the dorkbotpdx open workshops to etch a small run of 3 new cracklebox boards, one of which was fully populated and sent to the east coast. The remaining two boards are built but are still waiting for enclosures to be built. I started tinkering with image manipulation from Perl with ImageMagick and then started generating video. I created two short abstract video works and submitted them to the 2 mile QUADRUPLEX (video bending and noise films) for consideration...but was really too far past the deadline to be considered seriously. I'm rather proud of these pieces and hope to make them available online soon. Later in the summer, I was asked to host a circuit bending table/outdoor workshop as part of the first St. John's No.Fest organized by Ong and KBOO on the summer solstice. We had a table with circuit bent keyboards and toys and spent a full day explaining to people what circuit bending is and showing them first-hand just how satisfying it can be. I did a short live radio interview thing and encouraged people to come by and experiment. The Kelso Noise BBQ raged up at the BrizShack in Vancouver, and I dragged a few friends up for the brutal experience. Like the other past noise BBQ events, this was so much fun, filled with amazing and inspiring performers and a collection of friendly, approachable ragers in a sea of raw power, On top of it all, David introduced me to the BBQ glory of the New Seasons curry lamb sausage. During the summer I ended up bike commuting to work on a more regular basis, and I participated in the Portland Bike Commute Challenge during the month of September. 200+ miles were conquered in that month, and I continued to commute on the bike very frequently. I rediscovered my love of cycling! Dorkbot continued to inspire me in the fall, and Jared introduced me to the 4066 CMOS switch (yeah, I'm dense). I designed a small circuit board that can trigger 16 individual switch points (buttons) and I built a 2-sided prototype with SMT parts (not a light undertaking for me). The working name for the board is the unpronounceable "kolpxnty", and the prototype is able to control/sequence the guts of a Barbie telephone quite well. My intention is to cascade several boards together in order to control a fairly large number of circuit bent devices at the same time. I am hoping to finish up a revised design before having a small number of boards professionally fabricated. Speaking of "professional", I should give some recognition to my "professional" life and acknowledge the fact that we've had a pretty fun and crazy year. My full-time work with Ensequence on their powerful Blu-ray offerings has been both an enjoyable experience and a stressful ride. It's exciting for me to see our software shipping on more than 50 commercial discs (yes, major titles you've heard of). "Millions of users" is probably the largest audience my software has ever seen. As the year was drawing to an end I started learning Python, rewriting the noisybox photo album, and got snowed in for a few days before xmas. And that's really just about it. "Time for reflection." the little voice nagged. What went well? Well...I'm proud of finishing some projects, and I really enjoy being part of and supporting local communities (like KBOO and DorkbotPDX). I keep finding that branching into unfamiliar territories (like performance or teaching or new technologies) is very rewarding, and I hope to continue that effort in 2009. What sucked? I'm still terrible at time management and wonderful at procrastination. In 2009 I will carve out more free time for family and projects, and I will be more responsible in how I manage that time to yield productive results. I am disappointed that Infiltration Lab didn't have a single audio release this year, so 2009 should see several. I really want to collaborate with people I admire and respect, whether it be in performance, recording, or on great tech hacks. I will complete at least one significant collaboration project in 2009. I will perform live more than once. I will start a side business and plant the seeds of corporate independence. I should never do one of these posts ever again. :) My friend Chelsea did a very nice 12-month-12-resolutions format list. I should have done one of those instead.

Learning Python by building image-pooping Markov chains

Fri Dec 19 2008 23:41:05 GMT-0800 (Pacific Standard Time)

tags: python programming markov

In my ongoing attempt to learn yet another utilitarian programming language, I have decided to pick up some Python. I'm only still scratching the surface (for example I haven't even touched python regular expressions yet, nor object persistence/marshalling), but I've managed to make a few toys. I often learn best by just diving in and doing, and I've come to enjoy stumbling through toy projects when learning a new language.

So I thought it would be interesting to see what kind of images I could create with a self-modifying, mutative Markov chain. While the results below aren't yet self-modifying, they're somewhat entertaining eye-candy that's probably been done hundreds of times before.

image image image image image image image image image image image image image image image image image image image image image image

I'm using the Python Imaging Lirbary (PIL) to create/paint the images. Sure, it's pretty well documented and intuitive, but doesn't immediatly support drawing with alpha transparency, which is a real bummer. There is at least one other drawing toolkit that does alpha, and one that does that with opengl. It would be nice to render these in realtime, but the current incantation seems to take about a second to do about 54k 2d polygons, which isn't exactly fast. I'm also not yet sure how much of that time is spent in python versus actual Tk rendering.

I'm now mostly interested in switching drawing toolkits to support alpha, doing marshalling to save/restore interesting chains, and coming up with interesting strategies of self-modification. The current models are very linear, and it might be nice to have a little abstraction that allows nonlinear curving to happen more seamlessly.

I'll probably share the code after I continue to learn from my mistakes and make things more better.

benito + kolpxnty + barbie == <3

Mon Nov 10 2008 00:36:32 GMT-0800 (Pacific Standard Time)

tags: dorkbotpdx dorkbot benito kolpxnty atmel avr


kolpxnty camera phone teaser! from breedx on Vimeo.

I've mostly finished the next phase of the kolpxnty board -- driving the thing from midi over usb from apps like pd (pure-data). In the above clip, a braindead pd patch is sequencing the bowels of a Barbie telephone children's toy without any additional circuit bending bonus points. My video recorder died, so the video was recorded in near darkness on my phone ("Sorry folks!").

The next phase is to see how it can switch in circuit bent components (pitch down resistors/caps, for example) and to shrink the board size before having it fabbed.

Quickie perl hack to fix up image timestamps with Exif data

Tue Oct 21 2008 22:34:36 GMT-0700 (Pacific Daylight Time)

tags: perl hack exif image timestamp

canon

Ooops! I've been organizing image files recently from my camera and realized that I was losing timestamps when moving them to a remote Samba share. Fortunately, image formats and cameras these days are smart enough to embed the original timestamp inside the image itself (assuming you have a moderately recent camera and assuming you've gone thru the process of configuring the date/time).

I hacked up the almost trivial perl script below to touch each file with the data from the exif data.


`#!/usr/bin/perl

Touch files with Exim timestamps

use strict;
foreach my $f (@ARGV){
my $d = jhead $f | grep 'Date/Time';
chomp $d;
$d =~ s/^Date/Time.*: (d+):(d+):(d+) (d+):(d+):(d+)/$1$2$3$4$5.$6/;
touch -t "$d" "$f";

}`

The script depends on the jhead tool to get the data from the image, but the rest is dead simple.

More cracklebox boards...

Sun Sep 28 2008 16:46:32 GMT-0700 (Pacific Daylight Time)

tags: phone dorkbotpdx dorkbot cracklebox steim

phone_20080928164631.jpg I etched 3 more cracklebox boards at todays open dorkbot workshop. Didn't get them populated yet but will very soon...

Underwater skateboard is awesome!

Mon Sep 01 2008 23:05:06 GMT-0700 (Pacific Daylight Time)

tags: phone

phone_20080901230505.jpg Where were these things when we were kids huh?? We had to use our old wooden decks, and they just were not designed for sweet underwater shredding action!!

Some of the tiniest soldering I've ever done

Wed Aug 27 2008 23:25:13 GMT-0700 (Pacific Daylight Time)

tags: dorkbot dorkbotpdx benito avr atmel usb programmer soldering

In the last week or two I've been doing some of the smallest soldering I've ever attempted.

It all started with the KOLPXNTY board I've been designing and prototyping. I won't dive into detail here (maybe later!?), but the basic goal is to trigger a fairly large number of circuit bent devices from a networked computer.

kolpxnty

I'll put up a documentation page if/when it's more relevant.

Although this certainly not rocket science, it's certainly the most complex 2-sided surface mount board I've attempted to design. Briefly, there are a few buses, a lot of traces, and a shitton of vias (for my amateur hand anyway). I soldered down the teeny LEDs and 6 small SMT chips and the bypass caps and resistors and rested confident in knowing that even though the board was hand-ironed and soldered haphazardly, that it was good and efficient and tight.

Then I decided to finally build out the benito kits that I scored from Dorkbot Don a month or longer ago.

the little tuff one

Let's be clear -- this shit is pretty damn small. It's not exactly microscopic. It's still hand soldered, but wow, it's really tight. The TQFP part is really hard not to bridge, but the braid will save you. The LEDs are really light and challenging, but totally doable if careful. The remainder of the SMT parts (caps and resistors mostly) are surprisingly fun to mount and actually save you the trouble of cutting those long leads (like on thru-hole parts).

I built two of them and although I managed to ruin one of the LEDs on one of the boards, I have been able to confirm that they're both functional.

Don has really done some great and amazing work here!

Let's be absolutely clear: He's designed and built us a cheap and readily available platform that can act as a usb-to-and-from-serial bridge, an Atmel programmer, or even more generally, a really great cheap and open platform for USB+AVR hacking. Wanna control a servo? Sure, this can do it! Wanna read from an SPI sensor? Sure, this can do it too!

It's still probably in need of some general purpose cross-platform code and reusable modules, but what a great small, cheap, and efficient platform on which to build computer-enabled projects! It think it was nearly ten years ago that I read about the death of the serial port and the future of this newfangled USB thing.

It was a hobbyist nightmare. How were (are?) we going to deal with the insanity? Other than the overpriced FTDI chip (not to fully knock it -- that chip is great), the benito is the first real usb platform that does what we hobbyists kinda want. Granted the software has to be there to support it -- and it will follow soon. Pay attention. :)

KBOO dada surrealism radio festival is under way

Wed Aug 27 2008 22:33:29 GMT-0700 (Pacific Daylight Time)

tags: kboo dada surreal surrealism radio fm

kboo.dada It's really hard for me to type "dada". After years of brainwashing and typing and whoknowswhat, it always comes out "data". These are actually different concepts.

So there's a local, independent, community sponsored radio station that is doing a wonderfully brilliant 101 hours of dada and surrealism

I'm biased -- I have performed live on this community platform and I have helped out with a festival in the past...but this is really a great thing and I need to get the word out. Portlanders can listen on 90.7 on the fm dial, out of towners can also listen by streaming magic via the internet.

Once time time in time, in the spirit of dada, we proclaimed "stud pony midgets in bondage gear. $5" available at the student health center. It is altogether true and yet not real but quite false in its actuality and refuted in its continued insistence of existence. It is a failure baby and a falsehood meme of blind eye turning of steering quality of knowing. You will deny.

I've been following the gross artwork of Larry Carlson for a while...and to my surprise and joylation, he's got a segment slotted in the fest (see Thursday 6am -- yes, like 7 hours from now).

There's tons of great performances slated, including Argumentix and Celestville (both of which I'm a sucker for). Check out the full schedule for great victory.

The unicorn is late.

Tue Aug 05 2008 00:22:31 GMT-0700 (Pacific Daylight Time)

tags: phone

phone_20080805002230.jpgOk, fine, sure. It is a full month late and cheesy and now irrelevant...but the unicorn marks the first phone to blog photo post for noisybox! Yay!