Last week, my friend and collaborator Jessica Mumford asked me to come move in the motion-analysis driven sonic environment the Enactive Arts group at AME has developed over the past few years as part of documentation for a conference she's currently presenting at. She edited bits of this into a shorter piece, also including other movers, for presentation at that conference. She's given me permission to share some of my motion in its raw form, however, so here it is: Yours' Truly moving in Responses Environment #1:
Obviously, I'm not trained as a mover (we like the term "mover" rather than "dancer" for a variety of reasons) -- I don't do nearly enough with my lower body, or the space behind me. I'm really performing motion for the system (trying to get certain sound qualities, to varying degrees of success) rather than an audience. It's incredible to see someone who moves more like a dancer in here, but, well, you get me. All the same, the rig is a blast to "dance" in.
If there's interest, I can dig up the academic papers where this work is discussed -- it's all out there, but I didn't work on the papers so I don't have the citations handy.
tags: None
[ posted by R. Spicer on 24-Jun-08 11:35 | 2 comments ]
About a year ago, when I first moved to Phoenix, I bought a used bike. I then bought a pannier rack and attached it to said bike. Then I realized that said pannier was actually not installed correctly, but it wasn't hurting anything. Then a friend bought a bike and asked how I attached my rack. I took this as an excuse to properly re-attach my rack, and document it. My flickr photoset contains all the detailed images.
tags: None
[ posted by R. Spicer on 18-Jun-08 13:00 | 0 comments ]
I'm about to start development of a Rails 2.0-powered web application as part of my work in the Reflective Living group at Arizona State University's Arts Media and Engineering program. Previously, we've used trusty standby subversion for version control, but there's a lot of hype in the rails blogosphere about git, so I decided to give it a shot. One of the most interesting things about git, compared to svn, is that it can be used without a server. Since I don't have the admin access needed to create a new repository on our department svn server, I decided to put my local copy (the only existing copy as now) of the new project under git. First roadblock: my work development machine is a Mac Pro running 10.4.11, but there is no 10.4 build of git available from the main distribution page.
After a quick google, I came back to macports, which is my go-to point for installing almost any unix-world software these days. It's a system based loosely on the bsd port concept, but from an end-user perspective it operates similarly to apt-get, which I'm familiar with from debian/ubuntu. I know somebody out there is probably pulling out their hair and screaming "but wait, apt-get distributes binaries; macports actually downloads and compiles the source." I realize the difference, but from my perspective, I type one command for either program and the dependencies are fetched and compiled, and that's good enough for me.
Anyway, installing macports is pretty much simple. There're instructions on the macports homepage, and they're reasonably complete. The only gotcha I've ever encountered is that sometimes, for some reason unknown to me, the installer fails to add the /opt/local/bin and /opt/local/sbin paths to your ~/.profile (the file that tsch executes on startup to set environment variables). In that case, you just need to edit ~/.profile in your text editor of choice to add the line "export PATH=/opt/local/bin:/opt/local/sbin:$PATH" (without the quotes). You'll need to open a new terminal window for the changes to take effect.
Next, install git-core. The command is "port install git-core" . This may take a few minutes, so feel free to get some coffee, refresh google reader, or otherwise relax.
So, now I had git running on my local development machine. It's relatively similar to svn in many ways, and there is a great transitional document available that explains similarities and differences among svn and git. One thing I find very cool are the gitk and git-gui commands, which provide two different guis for git functionality. Happily, they both run on OS X (both 10.4.11 and 10.5.3) with no additional work when compiled by macports as part of git-core.
So, running a scm package on asingle machine is great fun, and very handy if you want to tag stable versions of your work in case you botch something up trying to implement a new feature. However, it doesn't help with the traditional collaboration-support role of svn, where multiple developers can concurrently work on the same version of the code, with conflict resolution and other neat collaborative tools.
Subversion is designed from the ground up to be multi-user; git is sort of different. I actually had to google around for some time to work out how git-as-server-for-multiple users works. There's git-daemon, which provides anonymous read-only access to git and git-shell, which is a limited shell providing more controlled access which can be configured as a unix user account's shell. I needed the ability to make repositories access-controlled, so git-daemon is right out. Git-shell sounds better, but the idea of setting up lots of different user accounts on my machine for the sole purpose of allowing my collaborators to log in to git-shell struck me as unnecessarily annoying. Then, I found gitosis.
This python-based tool provides access control for git repositories based on RSA keys, through a single extra user account. Good times, I say. However, as with many things git, the OS X install route isn't entirely clear. Scie.nti.st has a very thorough how-to for gitosis setup on linux, but it doesn't address the OS X end of things.
Trying the command from the article to install gitosis (python setup.py install) resulted in an error about missing setuptools. I'm not a Python developer, so I was a bit confused. What's setuptools? Turns out setuptools is a Python plugin -- or whatever Python folks call software that extends the functionality of the language -- that makes permanently installing packaged python scripts easier. Bottom line: it isn't available in Python 2.3, which ships with OS X 10.4.
Okay, so no big deal, right? Macports has python25 and py25-setuptools. However, if you read the scie.nti.st writeup, you'll notice a caveats section suggesting that gitosis does not like to live in a non-default path. Heed this caveat. Trust me on this one. Thar be dragons. I successfully installed python 2.5 and setuptools through macports, then ran the gitosis setup command, created the git user/group, and proceeded to get a lot of really noxious python errors about paths when attempting to continue with the scie.nti.st tutorial. Bad mojo.
So, okay, gitosis really wants to be in a more standard location. Thankfully, macpython.org has a Python 2.5 distribution (first item on that list, as of this writing) that includes setuptools and installs as an OS X mpkg. Now, this also puts Python in a weird place, so I'm not sure why gitosis is more okay with this than with the macports route, but it is. Second useful link I found was an OS X Leopard gitosis how-to that explains how to set up an OS X user for git and provides a bit more clarification on OS X specific details covered by the scie.nti.st article. While the tutorial is targeted at Leopard, it worked for me after installing Python 2.5 on OS 10.4.11.
After completing the setup, refer back to the scie.nti.st article for setup and usage. I really haven't done anything with my gitosis repository yet, but I thought I'd share the solution to my woes for anyone trying to set up a gitosis server on older OS X.
tags: git gitosis osx scm versioncontrol
[ posted by R. Spicer on 29-May-08 19:24 | 0 comments ]
AMENITIES, the first AME Open House was held last night at Matthews and the Digital Arts Ranch here at ASU Tempe. We had a great turnout and saw some great work exhibited by many ongoing AME group and student projects. Thank you to all who showed work, and all who attended! My photos from the event are on my Flickr stream and in the AME group. If you took photos, please post them to the AME pool tagged with 'AMENITIES' so we can find them.
This entry cross-posted from the AME Blog.
tags: None
[ posted by R. Spicer on 30-Apr-08 09:15 | 0 comments ]
Saturday morning I'm flying out to CHI2008 in Florence, Italy, the ACM's annual conference on human-computer interaction. I'll be presenting my works-in-progress poster, "LifeSampler: Enabling Conversational Video Documentary" during the Wednesday morning poster session. Presenting at CHI is an honor, particularly since the paper covers work
performed in my first semester as a graduate research assistant at AME.
Lisa Tolentino, another AME researcher, will presenting a poster/works-in-progress on the Sensor Squid and its' Relation Game during the Tuesday morning poster session.
You can read more about my thoughts on Conversational Documentary and Narrative Complexity in the projects.
tags: None
[ posted by R. Spicer on 03-Apr-08 21:29 | 0 comments ]
In writing up a tutorial I've been meaning to write for months, I remembered my frustration with the terminology surrounding, and sources for, connectors commonly used in DIY electronics. I know I'm not the only one who doesn't find existing stores of knowledge intuitive because I recently helped a friend of mine source female headers for a project — I know what I'm doing, and it took me a minute to find the relevent part on Jameco's site! Online vendors, particularly sites like Jameco and Digikey tend to be targeted at engineers who already know exactly what they're looking for. If you don't know the right search terms, finding the right part can be a bear. Since I made my start in electronics a few years ago, Octopart has made finding parts much easier, but you still have to know what you're looking for! In hopes of helping people who're building their first homebrew boards know what to look for, I've tried to compile a bit of what I've picked up. I'm entirely self-taught so it may or may not be accurate, but I'm hoping it helps make the learning curve a bit less steep.
Most electronics you're likely to build/interface with as a hobbyist use 0.100"-spaced pins. There are other, more finely-pitched connection options out there, but this is the bread-and-butter of low-voltage homebrew electronics. This is the spacing common to most solderless breadboards and DIP-package ICs, too.
Headers solder to PCBs and provide connectors that are easily connected and disconnected. They come in many varieties. Here, I discuss those which I've used, or which are commonly used in DIY electronics. There are, of course, a whole world of interconnection options, particularly if you deal with finer-than-0.100" pitch parts.
Searching for "0.100" male headers" yields a dizzying array of parts — 25,919 items in the "Rectangular - Headers, Male Pin" category at DigiKey; 64 in "Interconnects:Rectangular Connectors:.100" (2.54mm) Series" at Jameco; 3,458 in "Interconnects >> Rectangular Connectors" at Mouser Electronics. An Octopart search yields 46,300 results. Thankfully, most of these are variations on the same basic design and by understanding a few of the keywords these stores use to filter those results, you can find what you're actually looking for relatively quickly.
Unshrouded Male Headers
I'll start with the basics — unshrouded male headers are the duct-tape of interconnects. If you've ever assembled anything electronic with more than one board, you've seen a few of these. The image at right pictures "double-row male header;" single-row is also available. I find male headers handy (and versatile) because you can easily snip them to whatever length you with your diagonal shears -- I tend to buy 30x2 header and snip it into 5x2 and 3x2 for interconnects and AVRISP headers, respectively.
You can use them to break out pins that need jumpers (see the Arduino board's external/USB power selector, for instance), and single-row male header is the perfect size to connect to most solderless breadboards — the Arduino Barebones Board can be built with the digital I/O header and VCC/GND header on the bottom of the board to exploit this to great utility, and LadyAda's Boarduino kits are built this way by default.
To purchase a header that looks like this on Jameco, Digikey, Mouser, or similar sites, you'll want to make sure you select "unshrouded" headers that mount with "through-hole" connectors. As with everything I'm discussing in this article you'll want 0.100" pitch.
Shrouded Male HeadersI'm covering these seperately from male headers because they're a much less flexible, but occasionally useful animal. These parts have the same pin configurations as their unshrouded counterparts, but have a plastic border surrounding the pins. The shell both protects the pins from damage and can be "keyed" with a small slot so that polarized sockets can only fit in one orientation. These can't easily be snipped to size and don't work well with jumpers. On the other hand, the keyed shroud means they're great for idiot-proofing connections, even (or maybe especially!) when the only idiot you're proofing against is yourself. You can even find variants with plastic latches for interconnects in vibration-prone environments.
Again, for typical use, you're looking at shrouded, through-hole mount, 0.100" pitch and spacing parts. There are many alternatives in terms of complexity/cost for shrouds, so make sure to check the datasheet!
I don't have any polarized headers on-hand to photograph; imagine, however, something akin to a shrouded header, but with only one long side of the connector shrouded. Polarized headers tend to have only one row of pins.
The Arduino introduced me to the very nifty idea of using female headers on PCBs, rather than male. Female headers are similar to the sockets that connect to male headers, but with through-hole pins rather than cable connections. If you're prototyping on a solderless breadboard, you can connect hookup wire directly between female headers and the holes on the breadboard. This is far handier for prototyping than trying to use various combinations of female-to-female cables and hook-up wire. Female headers also enable you to build "shield" boards with matching male headers that attach directly to your board, without interconnecting cables. Many Arduino accessories are designed in this way, and that's how the BlueSMiRF is connected to the Arduino in the NG/Diecimila-based wireless smart objects we build at AME.
Sockets connect to cables and attach to headers. They're typically female -- I may be mixing terminology here, actually, but this works for me. If there's a more appropriate generic term, please let me know!
Insulation-Displacement Connector Sockets & Ribbon Cable These connectors are commonly known as "IDC sockets." They consist of a two-part body that crimps down onto a ribbon cable, cutting (displacing, if you will) the insulation and making electrical contact. IDC connections are apparently considered to be of lower-quality than individually-crimped connections, but for speed and ease-of-use, it's hard to beat the concept. The IDC sockets Futurlec sells are keyed, which means they have a small plastic protrusion on one of the long sides such that they can only be attached to keyed, shrouded headers in one orientation. If you search for these on Digikey or Jameco, you'll have a pile of options — you probably want 0.100" spacing.
Octopart suggests a variety of suppliers, but I've purchased my connectors and ribbon cable from Futurlec — for instance, 10-pin female IDC connectors $0.25 ea, Futurelec PN:IDCC10; 10-conductor ribbon cable, $0.40 per meter, Futurelec PN:GRCABLE10. The datasheets for the headers will discuss the gauge/pitch ribbon cable that each requires.
Polarized Headers and SocketsPolarized headers have a small plastic tab on one side of the row of pins, unlike the shrouded headers discussed above. I don't tend to work with these, much, but I can see situations in which they'd be useful -- again, they're potentially useful in the pursuit of idiot-proofing your builds.
"Lab Cables"I'm honestly not sure what the "correct" term for these cables are. Anyone want to leave a comment? Unlike IDC sockets, which crimp onto a ribbon cable, these sockets connect to hookup wire -- each wire gets a crimp-on pin that is inserted into the socket body. They are sold in two parts by vendors like Futurlec -- "connector for male header" and "pins" To build a cable, you insert the pin and a stripped hookup wire into the connector body, which crimps them together. Pictured here, a two-conductor cable, but these connectors are available in most of the same sizes as the IDC sockets discussed above. They're handy to keep around for making quick connections on or between boards, but in most cases I find the IDC connectors more useful.
I found additional information on connectors at this site on pinball-machine repair.
This is only a rough first stab at trying to gather some knowledge regarding cables and connector sources for homebrew/DIY. I'm sure there are errors and ommissions here -- please comment if you have anything to add or see anything that's blatantly inaccurate.
tags: development, microcontrollers, tutorial
[ posted by R. Spicer on 13-Jan-08 16:47 | 21 comments ]
For the Media Theory class I'm currently taking at ASU's AME program, we were asked to generate works re-imagining a piece of media content in a different medium -- my group was assigned a scene from Pulp Fiction, which we rendered in Twitter (I'm still trying to decide if I should link that here -- yay philosophical personal/public divide). In any case, another group generated a performance piece expressing their interpretation of a series of letters exchanged between school children and Albert Einstein. I was struck by the performative nature of their presentation and asked if they could recreate it on video.
Sadly, this version differs significantly from what we saw in class -- the original choreography involved a 3rd person portraying the role of the postal service as the channel in the Shannon-Weaver model of communication; she wasn't available to perform, so they modified the choreography with each endpoint also portraying the transmission portion. Also lost is the really, really flipping cool bit at the end where they mixed their spoken explanatory presentation with text from the actual letters, which was very cool to watch. Anyway, without further ado:
tags: media mediatheory video
[ posted by R. Spicer on 29-Aug-07 10:33 | 0 comments ]
So last night I took a time-lapse video of me assembling one of the Arduino Bare-Bones Board kits I ordered from Modern Device. My camera's experiencing some funky CCD issues and this isn't very well put-together, but check it out:
I plan to edit together a better version with some real narration soon; this is mostly just a test of my ability to generate flash video.
tags: arduino assembly AVR microcontroller tutorial video
[ posted by R. Spicer on 17-Aug-07 09:09 | 2 comments ]
Here, have a sample blog entry!
[ posted by R. Spicer on 24-Jul-07 08:50 | 4 comments ]
Showing 1 - 9 of 9 Articles | Page 1 of 1