Mon, 18 Feb 2008

Hardware Into Art: TVIC/Geekosystem Crossover

What will this become?

Come to The Valley in Christchurch this week (Tuesday!) and don't just find out, make IT/ART happen!

Here's some of the details, check out the event announcement for more details:

The Valley In Christchurch February dinner and hack events

When: 6:00pm Tuesday 19th February 2008
Where: The China Kitchen, on Hereford St, opposite the Flight Centre

And then join us post-dinner for a special TVIC-exclusive Geekosystem session:

When: ~7:00pm—10:00pm-ish
Where: The Physics Room, Second Floor, 209 Tuam Street, Christchurch

Rumour is that some pizza and beverages will be provided while you work on your hardware hacking masterpiece.

Thanks to Adam and the Physics Room for organising this special after-hours session for us!

The photo above (courtesy of Adam Hyde) shows some of the "raw materials" that will be on hand.

Tending Networks: The 5th Aotearoa Digital Arts Symposium

As it happens, the Geekosystem coincides with the The 5th Aotearoa Digital Arts Symposium produced by The ADA Digital Arts Network.

Self-described as "New Zealand/Aotearoa's only digital artists' network. ADA was born of the observation that although new media artists were often highly networked in terms of both their own practice and their professional relationships, there was no national organization drawing together those with a common interest in digital art."

The symposium is an opportunity for New Zealand's digital/new media artists to meet face to face. Check out the upcoming weekend's programme.

I've actually been invited to present a brief overview of some of my Arduino hacking to the group during their "lightning talk" session on Saturday afternoon. A pleasant parallel to the symposium topic is my most recent project has been an ethernet expansion shield for the Arduino. I must write some more on that.

Foo Fruition

Speaking of needing to write more... My presentation at the ADA Symposium and the TVIC/Geekosystem crossover are a direct result of my attendence earlier this month at Kiwi Foo Camp 2008 (a.k.a. Baa Camp) and some people I met there. I must write some more on that. :-)

Posted at: 06:12 | category: / | Tags: , , , , , , , , , , , , , , , | Comments ()

Thu, 10 Jan 2008

Summer hacking

Last week I caught up with Marek and the elusive Phillip (finally!) and showed off my Arduino connecting to IRC:

It turned out jandals and shorts weren't actually the best wear for the weather on the day but still good to catch up.

Posted at: 11:10 | category: / | Tags: , , , , | Comments ()

Tue, 27 Nov 2007

Swapping, Meeting and Buying

I've read for ages that Ham Radio Swap Meets are great places to get good deals on various electronics bits and pieces (and, admittedly, junk too). A while back I discovered the website of the local Christchurch, New Zealand Ham radio branch. Unfortunately their most recent events page mentioned a swap meet in March but with no indication of which year!

Until a couple of weeks ago I hadn't followed up on the idea any further but on a whim I decided to email them. In a happy coincidence it turned out that their next annual swap meet was to be in two weeks time (this past weekend).

The shopping list

Although I got to the event later than intended I still picked up a few interesting items. Indeed, it was probably easier on the wallet having less temptation in purchase choice. :-)

Among a few other bits and pieces I managed to pick up three oscilloscope probes and related items for $NZ1, a partially used wirewrap set for another $NZ1 and some small project boxes. It will be interesting to see if having proper probes makes any difference when using xoscope—the Linux sound-card oscilloscope.

Also purchased a box of assorted ICs for $NZ5 which may turn out to be both a convenient and reasonable deal. I'm around halfway through cataloging the contents of the box and about two-thirds of the 70+ ICs seem to be useful with a good assortment of 7400 series, 4000 series and op-amps amongst others. It's taken ages to do the cataloging (Octopart and similar sites have been very helpful) but hopefully it'll pay off in the long run—if nothing else I'm learning things along the way. Looks like there's a few "historical" items dating back to around the late 70's/early 80's too.

Acquiring vices

My largest purchase (something approaching "real money" :-) ) was a PCB Soldering Vise which I later found advertised here at a price that made my purchase price seem reasonable.

Described as a "Mark III Circuit Card Fixture" seemingly made by Technical Devices Company of Torrance, California it's like a PanaVise circuit board holder but presumably cheaper and less well made...


(original image source)

The device looks like this, but less shiny:


(original image source)

It's likely to be larger than what I need but should hopefully be a useful addition to the tool chest. I even found a scan of Mark III Circuit Card Fixture assembly instructions (original image source) in case I unassemble it accidently...

All up it was an interesting time—I ended up stopping in at the SuperShed and a few garage sales on the way home but only added an ethernet cable to the purchase pile. :-)

Posted at: 01:30 | category: / | Tags: , , , | Comments ()

Mon, 19 Nov 2007

TVIC : Six geeks, Seven CD-ROM drives, One Pub—The Movie

Seth's blogged and uploaded the video from this month's The Valley in Christchurch tech dinner and CD-ROM hackfest.

Here's the finale, just in time for the Christmas lights season:

Links to all the videos on YouTube:

Thanks Seth!

Posted at: 13:50 | category: / | Tags: , , , , , | Comments ()

Thu, 08 Nov 2007

TVIC : Six geeks, Seven CD-ROM drives, One Pub

I've just got back home from this month's The Valley in Christchurch (TVIC) tech dinner. It was goood... Real fun.

After dinner at our now usual haunt we ended up at our (fast becoming usual) follow-up haunt.

Last month—after visiting the recycling oasis Supershed—I had brought along an old CD-ROM drive and dismantled it during the post-dinner conversation. (Hey, why not? ) Apparently inspired by the fun I had had, this month Marek had organised to bring along seven old cd-rom drives supplied by Morris. By this stage we had six people at the table, various beverages and enough screwdrivers that we could all attack the task of drive dissasembly with gusto. And we did.

The highlight of the evening (warning: non-geeks may not understand) was when—following a comment I made—Morris managed to hook up a tray-eject motor to a pair of green and red LEDs (salvaged from a drive), making them flash alternately when he pulled the tray in and out. Seth took some photos and video so hopefully it'll be online soon.

In spite of all this frenzied electrical activity the bar staff never asked us to leave or stop, so I apparently mass cd-rom drive disassembly counts as an acceptable activity at the Bohemian.

Next month: printers!

Update: Check out the CD-ROM hackfest videos.

Posted at: 23:20 | category: / | Tags: , , , , | Comments ()

Wed, 31 Oct 2007

Gratuitous Update

In a transparent attempt to not leave the month of October blog entry-free here's a quick and gratuitous update.

One-way wiki

As noted back in July, I've been running a personal "one-way wiki" as an experiment. My primary goal was to get more of my in-progress hacks off my harddrive and onto the public net where they might be of more use to someone. The secondary goal was to try to reduce the number of browser tabs I had open and chewing up memory.

Overall I think the experiment has been a success with a (very) rough count of about ten-thousand words over about thirty pages in the wiki. While many of those words are only links there's a few in-progress projects partially documented also.

I still probably have more tabs open than I'd like but I think I'm making progress on that front.

The wiki has definitely been a plus for documenting in-progress projects and keeping track of details for recovering from context switches. Hopefully the notes—such as they are—are of use to others as well.

I think the only down-side is that my blogging activity has become even more curtailed than it was—mainly because I'm documenting items in the wiki rather than on the blog. It is entirely possible of course that I wouldn't have posted anything more to this blog even if if I hadn't had the wiki. In light of this however (and a couple of requests in this direction) I'm thinking of generating blog entries from the "recent changes" record of the wiki so people who are interested can still keep track of what I'm up to. When or if this idea actually gets implemented remains to be seen. :-)

Recent changes

In the interim here's a few links into the wiki:

Posted at: 23:20 | category: / | Tags: , , , , , , , | Comments ()

Mon, 26 Mar 2007

SpyderMonkey // twiddle your Javascript from Python

I should prefix this post with the proviso there is no code online yet—yes, I know that sucks but given a choice between (finally) posting about this now or waiting until I have the code online I figured the former was better.

Here is the abstract about the project I submitted to linux.conf.au last year:

SpyderMonkey : twiddle your Javascript (or someone else's!) from Python

SpyderMonkey (http://code.rancidbacon.com/spydermonkey/) aims to let you twiddle with your Javascript (or someone else's!) from Python.

While at least one unmaintained Python wrapper for JavaScript exists (http://wwwsearch.sourceforge.net/python-spidermonkey/) SpyderMonkey differs in its implementation by using ctypes (http://docs.python.org/dev/lib/module-ctypes.html) to wrap the underlying Mozilla spidermonkey JavaScript implementation (http://www.mozilla.org/js/spidermonkey/). SpyderMonkey is also the only implementation I am aware of that also wraps the parser and not just the interpreter--this is key to its use in static JavaScript code analysis.

The primary motivation for wrapping the JavaScript parser was to enable further development of JavaScript reverse-engineering and code analysis tools.

During my previous efforts of reverse engineering of JavaScript "Rich Internet Applications" like GMail, Google Maps and similar products I developed a number of scripts based on regular expression parsing "pretty-printed" versions of the obfuscated/compressed source code. While simplistic, these scripts were able to generate Class and Function references listing arguments and the locations where they were used (http://libgmail.sourceforge.net/googlemaps/maps.js.html).

Eventually regex based parsing runs into a wall and this drives the use of an actual parser. JavaScript has a quite complex grammar and in my research I was unable to find a functioning pure-Python JavaScript parser.

This presentation will look at the development of the GPL SpyderMonkey wrapper and some of the issues involved in its construction. In addition we will look at some actual and potential applications that an easier Python-friendly interface allows us to construct in order to assist efforts in areas of debugging, reverse engineering, inter-operability, maintenance and source recovery.

With most RIA JS applications using compression or obfuscation and environments like Google's Web Toolkit AJAX framework for Java (http://code.google.com/webtoolkit/) (or Python's PyJamas http://pyjamas.pyworks.org/) producing JavaScript without direct human involvement there is a growing need for tools to analyse this generated-code. Attend this session and learn what approaches can work for you now and how SpyderMonkey may help you create new tools for the future. (In preparation for the perhaps inevitable "Ummmm, I thought *you* had the original source code..." realisation.)

So, yeah, anyway, the proposal didn't get accepted and so the code's still sitting on my harddrive... The SpyderMonkey page does have a cool logo on it though—that's got to count for something, surely? :-)

As mentioned in the abstract I was attempting to wrap the SpiderMonkey Parser API except it didn't/doesn't really have an official one so I had to make it up as I went along. I wrapped enough of the spidermonkey library with ctypes that I was able to detect items such as functions and variable declarations. This was implemented by way of processing the tree produced by calling js_ParseTokenStream.

I would like to Tidy-Up-The-Code-Enough-To-Release (TM)—don't you hate it when people write that—but a release ain't going to happen tonight. Sorry!

Oh, but I will leave you with a link to the post with instructions on how to compile the spidermonkey JavaScript library for Mac OS X.

Posted at: 04:55 | category: / | Tags: , , , , , , | Comments ()

Wed, 28 Feb 2007

Sneaky spy camera pen snaps shots

A couple of weeks ago I discovered one of these spy camera pens at the local Jaycar Electronics store (image courtesy of this pen camera product listing):

The device was in the clearance bin and a purchase was pretty tempting—it was discounted from $NZ144 to just $NZ20! (I did actually manage to hold off buying it until the next day when I returned to the store for another purchase—such restraint!)

I'd be interested to know when someone last paid anything close to $NZ150 for the device as the specs aren't anything flash by today's standards (Engadget has a review from early 2005 and links to more product details):

Further product details can be seen at the product listings linked above. In terms of practical use I can't imagine it being much help to the average spy as its user interface consists of pushing a single button in response to audible voice prompts! ("*Click*, I am now photographing your soopa-secret documents." Okay, so it's not quite as bad as that: listen to the spy pen voice prompts [~1.2MB WAV].)

An unique feature of the RS232 serial connection is the cable (see left side of photo above) with a female DB9 connector to a 2.5mm stereo audio jack that fits into a socket at the top of the pen.

Here is an initial and—coincidentally—suitably spy-related snapshot taken under poor incandescent lighting conditions (converted from BMP):

There was actually another of the devices in the clearance bin but by the time I got back there today it had been sold—I'll just have to make sure my explorations are non-destructive then...

The more observant of you may have noticed the Windows-only compatibility "feature"—my main laptop is non-Windows but I thought "Hey, it's a serial device, how difficult can it be to get the data?".

And that, dear reader, was the beginning...

Posted at: 03:45 | category: / | Tags: , | Comments ()