Open source skillset

It’s interesting how one develops a different group of skills to work with open source elements that with closed source ones. ‘course, the skillset change is also related to the availability of the web and search engines, which are resources of inestimable value to software developers whether or not they’re working with open source elements.

Today I was investigating a problem with PyAMF, getting an exception that says “Unknown command operation 12”. In the old days, had PyAMF been closed source and the web not been what it is today, I’d have been forced to do the BBPD (Black Box Probe Dance). I’d have looked in the official docs, seen nothing of any help, so I’d spend the day messing with the context of the problem until I got some different results that eventually led me to understand the basic shape of the offending turd somewhere inside there. Then I’d devise a workaround (because there’s never time or money or vendor enough to get proper support from the library vendor), which in this case would probably be in the form of some sort of proxy class that would drop the incoming message before it got into the library (i.e. a turd shredder).

In the new days, I did the RFTS loop (Read, Fiddle, Test, Search). I searched for “Unknown command operation 12”, found only dead ends, found the line in the PyAMF code where the exception was coming from, read enough of the context to try a hack to basically ignore the operation, saw that that removed the exception, found the list of operations in the code, saw that 12 was not in it, searched for the text name of one that was in the list, found Adobe’s Flex 2 docs, discovered the list of names/numbers in Adobe’s docs matched those in PyAMF, hacked the doc URL to get the Flex 3 version, saw that DISCONNECT_OPERATION/12 was added for Flex 3, searched for “pyamf disconnect_operation”, saw that there was a patch to PyAMF for this problem and that it was equivalent to my hack, applied the patch so as to match PyAMF’s official code, and checked in the change to our repo.

It’s a very different process, very interesting to develop.

FYI, if you came to this page because you got “Unknown command operation 12”, try applying the patch.

One comment

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.