In a bit over a week I attended two conferences (volunteering at one), travelled across the USA, and saw a play. The high points of some of these are summarised below.

HOPE: The Next Hope

The first conference was The Next Hope, held at Hotel Pennsylvania in mid-town Manhattan. It's a "grand old hotel", with 1700 rooms and a floor and a half set aside for conference facilities.

The conference is a "hacker" conference run by and for enthusiasts in all sorts of areas loosely related computers and technology. It's run by 2600 which grew out of the phone phreaking hobby.

I started the conference by volunteering, and ended up mostly helping with the AV setup (and tear down after the conference). (There seemed to be some sort of "volunteer and win" system, but since one of my objectives of the trip was not to accumulate unnecessary "stuff" I largely ignored that. And besides my main objective of volunteering was to meet people, which worked very well.) It was a useful hands on insight into what goes into making the lighting, sound, and video actually work for a short event. And the audio level tweaking was made very entertaining by the test audio being readings from a book on audio theory, read in a mock-serious voice, rather than the typical "test, test, test".

The conference itself consisted of 3 streams of talks running continuously, for 3 days -- the first talks started at 10am, and the last talk for the "day" started at midnight. There were no scheduled breaks -- if you wanted a break you were responsible for scheduling it yourself. In addition to that an entire separate floor was set up for a small vendor area, a film area, the locking picking village, short rides on a Segway, art exhibits, the radio station, music, etc. I got down to that floor a few times, but one could easily spend much of the weekend there without getting bored.

There were lots of good talks at the conference, many of which I managed to get to and some of which I just couldn't schedule in. Fortunately every talk was recorded, with the video available for sale about 10 minutes after the talk finished; few if any other conferences manage anything like that, and The Next Hope achieved it with just volunteers. (2010-08-13: Recently the audio of the talks has been released online for free; and the video is availble for sale for $5 per session.)

Some highlights of the talks:

  • "Light, Color, and Perception" by Jonathan Foote included lots of excellent detail on colour and colour perception, including the (obvious in hindsight) observation that when mixing two colours you can generate only colours on a straight line between the two on a colour chart. And described the CRI, Colour Rendering Index; 100 is perfect sunlight rendention, good white LEDs are around 90 now and fluroescent light is around 70 due to being a mix of blue (mercury vapour) and orange/yellow (phosphor). (Cheap white LEDs tend to be a blue LED with a yellow/green LED, and mostly miss red and thus have poor colour rendering.) Also recommended by the speaker, Brian MacEvoy's Handprint.com site which includes lots of detail on available pigment colours.

  • "Cooking for Geeks" by Jeff Potter, which was an awesome talk by an awesome speaker (and also allowed me to confirm that I'm not a supertaster). There was lots of good "how it works" detail, including some of the temperatures where some of the reactions which denature food in a pleasing way occur (eg, Milliard reaction, Caramelisation, etc). He's got a book just released by O'Reilly, also called "Cooking For Geeks", which should be available for orders soon; the preprints looked good. Also recommended was "On food and cooking". He also suggests an IR themometer, and Sous Vide cooking (in a water bath).

  • Dan Kaminsky's keynote about secure string interpolation, which he is calling Interpolique -- the idea being to make SQL string injection and HTML/Javascript injection more difficult while still allowing SQL queries to be written with user input "inlined". It's using a combination of base64 encode/decode as a robust escaping mechanism, and Javascript to inject literal string values into the HTML page to avoid it being interpreted. (Ironically the security advice has long been to turn off Javascript for security, and this works only with Javascript turned on. But when questioned Dan did point out that you could detect Javascript and use his technique if it was present, or fall back to inlining the data if you are sure that Javascript is off, since it is then safe from Javascript injection.)

Other things worth following up:

OSCON

The second conference was OSCON 2010 run by O'Reilly Media (who started as book publishers and have expanded into other things including conferences and Make Magazine). The conference was held at the Oregon Convention Center in Portland, Oregon (on Wikipedia). The convention centre is huge, purpose built, and can easily swallow thousands of people without anyone really seeing where they went. As a result despite there being (I believe) over a thousand people there, it mostly seemed extremely quiet and low energy -- in stark contrast to the HOPE conference which was vibrant and very high energy.

OSCON is fairly well regarded in technical circles for the wide variety of topics and people that it brings together. But for me it didn't really live up to its promise nor did I get the same feeling of "extremely good value for money" that I got from the HOPE conference. Aside from the super-silent venue adding an atmosphere of "be quiet here" a couple of choices seem almost designed to reduce the value of the conference to any given attendee:

  • The schedule adopts a "breadth first" approach, with up to 14 streams happening at once, but only about 6 relatively short talks a day (cf the HOPE "depth first" approach, with up to 14 talks a day, but only 3 streams). With 14 streams in parallel and only one person, there's a high opportunity cost to going to any given talk (since it's virtually inevitable that there are at least a few other talks one would like to see, if you have even slightly widespread interests). (Not to mention that the schedule grid is far too wide to be viewable in any browser with anything other than minute type, so is annoying to use.)

  • Adding to that, OSCON chosen to record only the keynotes (which were plenary sessions with nothing else in parallel), so any sessions that one didn't go to were "gone for good" (in many cases the speakers chose to make their slides available, but this was optional and at least some of them are buried in DRM-like sites to make them difficult to view; the contrast with something like Linux.Conf.Au that insists all slides must be made available under an open content license is fairly stark)

These two choices combined left me feeling that I was mostly missing things which somewhat detracted from some of the good talks I did see. Given that OSCON charged over ten times as much for entry as HOPE did, it's sad that they couldn't at least record audio from the talks and make that available later; audio from the talks and a PDF of the slides is very useful in catching up on a topic one had to choose to skip. (It was also ironic that the "professionally done" audio setup was both more poorly put together -- eg, I have photos of a bulky cable join in the middle of major walkway, only covered with gaffer tape -- and less capable, with more feedback ringing and no recordings.)

All that said, there were some useful talks with useful content, including:

  • "New Beginnings with Perl5", by Piers Cawley (well known in the Perl community and also an amazing singer); alas it's one of the talks without slides. He pointed out various newer things which make Perl more pleasant to use, including:

    • MooseX::Declare, giving proper parameter declarations (some examples from his blog)

    • TryCatch, and Try::Tiny for nicer exception handling

    • Plack, for better webserver interface handling via PSGI, borrowing from Python's WSGI and Ruby's Rack. The app runs effectively as a callback with an argument for the environment, and returns status code, content type and body (string, or IO::Handle). There are backends to most webservers now. (HTTP::Server::Simple is one trivial example for testing; Starman is another all-Perl example intended for production load, by the author of Plack.)

    • App::cpanminus, aka cpanm, also available from cpanmin.us, which amongst other things helps with managing per-project module trees

    • NYTProf, a better source profiler for Perl

    • Test::Class::Sugar, a helper for writing tests.

  • "21st Century Systems Perl - the New Perl Enlightment for sysadmins", by Matt Trout (blog, another very well known Perl personality. He suggests:

    • the Catalyst Framework, DBIx::Class, and Moose represent modern perl

    • use local::lib, to manage per-project module directories; auto-sets environment directories so that perl, CPAN tools, etc, just work. He recommends against installing anything project-related into the system Perl directories.

    • Module::Install, a standalone module installer and cpan2dist (from CPANPLUS), to auto-build vendor packages). Also PAR::Packer, and App::Fatpacker to roll up your dependencies into a single script; PAR::Packer is apparently a bit fragile, so App::FatPacker is recommended. A clever trick to run result on remote system needing only perl binary installed:

       $ fatpack trace myscript.pl
       $ fatpack packlists-for `cat fatpacker.trace` >packlists
       $ fatpack tree `cat packlists`
       $ (fatpack file; cat myscript.pl) >myscript.packed.pl
       $ (cat myscript.packed.pl; echo "__END__"; cat) | ssh host perl
      
    • Task::Kensho, for enlightened Perl ("Kensho" means enlightenment), from the Englightened Perl Organisation, which aims to provide a best practice set of modules to use.

    • IO::* handlers, including io('$'), which allows doing IO from a scalar, and IO::All::LWP which allows using HTTP URLs for IO.

    • DBIx::Connector to manage database connections, including auto-validating them.

  • "Building Mobile Web Apps with HTML, CSS, and Javascript" (slides, behind DRM :-( ) by Jonathan Stark (blog), who also has a book out on on the topic. He described how to use a jQuery plugin called jQTouch to quickly develop a web application that looked fairly native (at least to iPod/iPhone; the Android support is work in progress). Combined with new HTML 5 features which allow things like offline HTML, this offers an approach to rapid development/deployment of native looking applications. He worked through a real, trivial, example in the tutorial and getting something that looks good, complete with sliding panels, is very quick -- just add application code. (Also mentioned was Phone Gap, which attempts to emulate as many missing features on various phones as possible, to improve cross-platform compatibility.)

Also of note as topics:

  • DevOps (more explanation), which is an attempt to do operations (especially provisioning) in a development style, with build automation checked into revision control, ideally the same revision control as the developers use so when everything works in staging you just hit "deploy" against
    production and it automagically works. See also: devops-toolchain code, and devops-toolchain group.

  • Beagleboard, a low cost (under US$200) ARM-based board with no fans, which is designed to run Linux. It is capable of outputting 720p video via HDMI/DVI-D (no analogue signal). Suggested Linux distribution: Angstrom with more detail on eLinux BeagleBoard wiki.

  • Moose::Role for mixin-style programming in Perl (will detect conflicts caused by multiple inheritance at "compile" time, and refuse to run until you explicitly choose which of alternatives you want)

  • List::OO, and Lambda for parallelisable/delayable list operations (seems to be basically map/reduce in effect, and only map is parallelised and delayable); talk slides.

  • PGXN, the PostgreSQL Extension Network, a sort of CPAN-for-PostgreSQL.

Hopeless

On the Friday evening after OSCON (which finished early Friday afternoon) I went to see "Hopeless" a one woman play by Melanya Helene performed at The Brooklyn Bay a tiny theatre in a warehouse district (the theatre is actually a converted workshop, which turns out to work fairly well as a "black box"). The play was inspired by the writings of Pema Chodron a teacher of meditation.

The play tells a number of stories around hope and fear, and how the two are intertwined. The most memorable theme, which I had occassion to reference again the next day, was that only by "giving up hope" -- by being hope-less -- can you get away from the fear that things won't go the way that you hope (or aren't going the way you hope, are going wrong), and just be with what happens.

In a sense OSCON was "hopeless" compared with HOPE, and I certainly felt that way at the time as the transition was very abrupt. But on looking back through my notes and writing them up, it definitely had its own value. By letting go of the hope of what it would be, by being "hope-less", it turns out to have been a better experience. Which I think is a valuable lesson for many times in life.