Python meets BoA

[tl;dr photos here]

Last night’s London Python Dojo was held, for the first time, at the very spacious Canary Wharf offices of the Bank of America. They’re big users of Python and, as we were told in an brief introductory, were keen to give something back to the Community.

They certainly did it in style. Their main reception is about the same size as Ealing Common. The meet-and-greet bar area where we had Pizza on classy platters & Beer served by bar staff is not much smaller than the whole of the offices of Fry IT, our long-standing default hosts. And the area below where a few of us gathered feels like a swimming pool with a long slide-like flight of stairs leading down. The function room where the main business of the evening was transacted was spacious with large tables (and *lots* of pencils!).

The guys at BoA had really done their prep work: power strips were already in place and every possible laptop-to-screen adapter was available. (For those who haven’t done this kind of thing: there’s *always* some kind of mismatch between a screen which can only take DVI-I and a Mac user who doesn’t have the Mini-HDMI-to-DisplayPort adapter. Or whatever: I use Windows which never has these problems ;) ).

As well as the friendly intro from one of the BoA guys, we had an enthusiastic lightning talk on Bitcoin from Sam Phippen (who comes in from Winchester or Bristol for the Dojos!). With over 30 people present, we had about 15 suggestions for the evening’s challenge, including old favourites (How does 20 Questions work, Nicholas?) and new ideas, some around the theme of banking. After the usual two rounds we settled on Steganography and made use of the generous table space (and pencils) which our hosts had provided.

The results are on Github (or will be, depending on when you’re reading this) as pull requests come in and are honoured. In short, two (three?) teams went for piggybacking on image bits; two teams (including the one I was with) encoded bits in the extraneous whitespace of a text document; and the last team tried to use the Python’s indentation to carry information in some way which I couldn’t quite understand at the time. I think that every team bar the Python-indentation one had a working result[*]; ours even had unittests!

FWIW my first idea for our team was to encode the characters in Morse code (using spaces & tabs as dots & dashes). We finally settled on binary but I still think Morse would have been cooler — and we could have played the message out as a midi file for extra points!

Of course at the end we had a draw for O’Reilly’s usual generous contribution to proceedings along with an added bonus: an historical map of programming languages. Appropriately enough, the book was won by Sal who’d been the driving force behind Bank of America hosting the Dojo this month.

Next month we’ll probably delay by a week to come in after Europython. Not sure where we’ll be yet, but follow @ldnpydojo or look out on python-uk.

And, of course, big thanks to Bank of America for being our hosts this time round.


[*] And they may have got things working after a live “Aha!” moment by Al who was demo-ing. [UPDATE: Al was actually in another team per his comment below; so many teams, so short a memory span…]

8 Comments so far »

  1. OpenID said,

    Wrote on June 7, 2013 @ 1:05 pm

    My team was actually one of the image based teams - our technique was to alter the section of the image we were using to hide the message. We converted our header+data+terminator to binary, then used each pixel from the top-left of the image to store one bit in each of the colour channels - making the channel value even for 0 and odd for 1, but only processing as much of the image as we needed to hide our image. To decode you then iterate through the image in the same way, first taking enough bits for the header, and comparing them to check for validity, then reading a byte at a time as a character to an output list until the current byte matched the terminator, at which point all the characters were joined into a string.

  2. tim said,

    Wrote on June 7, 2013 @ 1:09 pm

    Whoops! Sorry, Al. I’ve added an update.

  3. Salim Fadhley said,

    Wrote on June 11, 2013 @ 9:39 pm

    Tim, thanks for the kind words!

  4. Salim Fadhley said,

    Wrote on June 11, 2013 @ 9:42 pm

    The pencils were my idea: Daniel Pope and I were checking out the room in advance of the event. I found a whole bunch of pencils in leatherette-clad pots on one of the shelves in the room. We thought it would be utterly absurd if we could gift each table with an unusable glut of pencils.

  5. Florian said,

    Wrote on June 11, 2013 @ 10:40 pm

    Tim, nice write-up, but your rant about display adapters doesn’t make any sense: the particular OS you’re using has nothing to do with the issue whatsoever!

  6. tim said,

    Wrote on June 12, 2013 @ 8:25 am

    @Florian: thanks, Florian. I know that, strictly speaking, you’re quite correct. And, obviously, I was exaggerating for humorous effect :)

  7. Florian said,

    Wrote on June 12, 2013 @ 7:25 pm

    Yes, I can see that. In defense of all Linux users: my long term observation is that on average Mac users take longest to connect to a projector. It’s only the odd case of a Linux user with a weird setup (in almost all cases non-Nvidia drivers) which sticks in people’s heads…

  8. tim said,

    Wrote on June 14, 2013 @ 9:25 am

Comment RSS · TrackBack URI

Leave a Comment


Sign in with your OpenID ?


Name: (Required)

E-mail: (Required)