Archive for category OSCON 2007

OSCON 2007: Perl Lightning Talks on YouTube

Last week around this time the Perl Lightning Talks at OSCON 2007 were presented. Mike Schilli has put some of them up on YouTube.

If I were to watch them, I’d watch Perl In A Nutshell by Pudge first. In fact, that’s just what I’ve done!

OSCON 2007: A Lexicon for Open Source, by r0ml

r0ml (or Robert Lefkowitz for those who don’t know him) is an entertaining speaker who tangents off often and brings in ideas and influences from outside programmers’ typical sphere of interest.

r0ml says that “software is the Trivium of the XXI century.” Rhetoric is the art of communicating through simbols & ideas about reality. Now, the language used by IT vendors in communicating with business intelligence is unclear. This means that there’s a problem with language. The problem is that we don’t know what business intelligence is. We have this habit of rubbing two words together and assert that it means something different.

We should do what the masters do: hang a word off an idea. Invent a word for an idea instead of smooshing two (or more) words together. Then r0ml had an idea: some people (maybe most people) don’t know what incunabula means. It’s the Latin word for cradle, and it refers to books published before 1501. But since nobody knows what it means, we can repurpose it into something that means something completely different.

Aha! What we need to do is find words that were perfectly good words hundreds of years ago and nobody remembers what they mean, but they sound good so we can reuse them! There are plenty of places you can go that very few people these days care about: rhetoric, illuminated manuscripts, heraldry, and fencing are great places to mine for these great words. These are “lexicon frameworks — Words On Rails.”

r0ml’s done this by taking over semasiology: if you search for it all you get is r0ml (or at least you used to — he’s number four now).

“Perl is like the Charles Dickens of the programming world. Perl is literature, of course it’s hard to read!”

r0ml’s goal is to get rid of acronyms: replace GUI with “epideictics”, which means “fit for display”.

There’s a word called “stemma”, which is the reconstruction of the set of changes of a document over time. Sound like version control?

It turns out that there’s an amazing correlation between technical terms used in the early days of publishing, especially for illuminated manuscripts, and the software world.

We need a word for open source, and r0ml modestly proposes “chrysography”, the writing in letters of gold. The alternative is “decretal”, which sounds worse and means papal decree giving an opinion on a point of law.

There’s actually a better replacement for “free as in speech”: “liberal”. “Liberal studies are called this because they render man free,” therefore open source programming should be considered a liberal art.

Of course, “liberal” has been branded these days to mean something different, but r0ml doesn’t want to hear people come to these conferences and say “there’s no English word derived from Latin that means ‘free as in speech’ but not ‘free as in beer’.” So stop saying that!

OSCON 2007: Hack the Real World with Open Source and Microcontrollers, by Brian Jepson

I decided to take Al’s lead and turn Friday into a fun day. Thus I’m in a talk about hacking with microcontrollers, a subject I know nothing about. I was going to go to a talk about Subversion Worst Practices, but it was pretty full…

Open Source hardware involves a bunch of things: mechanical diagrams, schematics & circuit diagrams, parts lists, layout diagrams, core/firmware, and software/API.

The Make Controller has a 32-bit ARM controller, has pen source firmware, API, and tools to play around with it. It’s not as open or cheap as the Arduino board, however.

So what are these things? Microcontroller boards are essentially computers on a chip. They have analogue and digital I/O, some memory (RAM and flash). They’re an interface to the physical world. The problems they solve are usually simple, and the code you run on them is correspondingly simple.

So how do you get started? Pick an input, first. Decide what you’re going to monitor, and this will usually dictate how you’ll be sending input to the microcontroller. You can use light sensors, tilt sensors, RFID, all sorts of different things. Then choose your output — what do you want your microcontroller to tell you. Again, there’s a wide range of possible outputs, from LEDs to motors to audio/video.

Software is fairly easy for people new to programming to set up — the tools look relatively user-friendly. You just tell hte program which pins to monitor, write a polling loop, then update the output when something changes. Watch out though when writing software to monitor inputs or write to output — sometimes it doesn’t always match the spec sheet.

You can buy all kinds of input sensors: RFID scanners, volatile compound sensors, pressure sensors. A serial-to-WiFi exists that allows you to use your microcontroller to access the internet through a telnet-level interface. There’s even a GSM module that you can hook up via a serial interface, and it has a Python interpreter on it. You can get a GPS module too. Attach it to a Bluetooth module and you can do fun things with other Bluetooth devices like cell phones.

OSCON 2007: Friday Morning Keynotes

Nat is starting the show by telling us that conference presentations will be up on the website, and video from the keynotes will be put on YouTube. I will have links for those later in the day.

The Thursday morning keynotes kick off with Philip Rosedale talking about open source code and whatnot in Second Life. He says that Second Life and the X-Prize represent two possible escapes for humanity, one is virtual and one is literally leaving the planet. He says that open source (and Second Life) allow for greater return on capabilities over time, because you’ve got a community to help you out. “We don’t set the rules of governance, we just let it do its own thing.” I think that that statement is quite incorrect; Linden Labs does have rules of governance, some of which have greatly upset the Second Life community. Using the tools available, someone’s built a Second Life client that runs within a web browser — you can’t do much with it, but you can login and check messages and whatnot.

Jimmy Wales is up now, talking about the future of search. Imagine a world in which every single person on the planet is given free access to the entire sum of all human knowledge. An encyclopedia was the start of this. This is continued at Wikia, which is becoming a library of human knowledge. A second major project focusses on the “free access” aspect. This should be driven by search, which currently is dominated by a number of large monolithic closed search engines. Why not do the same thing for search what Wikipedia did for the encyclopedia? This is being done at search.wikia.com. This project will be focussing on transparency – openness in how the systems and algorithms operate, collaboration – everyone who wants to contribute can contribute, quality – improve the relevancy and accuracy of search results, and privacy – “Pursuing the Holy Grail of Privacy Protection”. The unfortunately-named Grub (it’s a bootloader, dammit!) has been acquired by Wikia to help the search process.

Simon Wardley is talking about commoditization of IT. An excellent talk, he makes the point that open source is a force behind pushing the new whizzy stuff into an ubiquitous commodity, and things like patents or DRM are attempts by company to keep their products as the new whizzy stuff.

I’ll post links to the last two keynotes when they show up on the web. All I have to say is that Nat’s was excellent and James Larsson’s was informative in an insane way.

OSCON 2007: Perl Lightning Talks

Perl Lightning Talks are five-minute talks by random people about random topics. Sometimes they’re tangentially related to Perl, sometimes they’re just rants, but they’re usually always good.

Vani Raja talked about the YUI CSS. I’m waiting for the Perl… I think this is a CSS demo. I have no idea what makes this interesting.

Schwern is up. “How Long Is Five Minutes” is the title of this talk. I do believe that this is a tea-brewing demonstration. Yes, yes it is. He’s making the point that it’s very difficult to determine how long five minutes is, especially if you’re doing something else while waiting for that five minutes to pass. And if you don’t know how long five minutes is, how do you know how long an hour is? Two hours? A day? Then how do you know how much work you can do in five minutes, or an hour, or a day?

Schwern is up. There is now a Wiki for Perl5. It will eventually be the Perl Encyclopedia — a brain-dump of the Perl community.

Schwern is up. Perl demographic survey is up at perlsurvey.org.

Schwern is up. Perl5 doesn’t have a charismatic leader any more, as Larry’s gone up the mountain to write Perl6. If you want to do something and you’re not sure if you should do it, ask Schwern.

Steve Medlin is talking about qpsmtpd for mail servers. There are plugins for everything, and plugins are very easy to write. He’s going quickly…

Andy Lester is talking about ack, which is basically grep for large trees of source code, all written in Perl. It can use Perl regular expressions for searching. It ignores .svn directories, your blib directories, binaries, emacs backup files. It does colour highlighting of search results, and a whole lot more!

He’s moved on to Perl 101, a place where the new Perl programmers can go to find answers to what you should know when programming Perl.

Andy Number 3, Google Code kicks Sourceforge’s ass.

Andy Number 4, Andy’s rant about how Perl isn’t a scripting language, it’s a programming language. Halleluia!

Following Andy is Rebecca, who’s drawing similarities between open source programmers and volunteers. OS programmers don’t call themselves that, they’re developers or contributers. Fair point. “There are those volunteers who put in 40 or 60 hours a week and should be employees. Those aren’t normal volunteers.” New open source volunteers need tasks assigned to them. Instead of just saying “find something to do”, it would be wonderful if people with OS projects kept a list of things that new people could work on. Having something to do allows positive feedback and allows a sense of accomplishment. Right now open source is more geared to the hardcore people and needs to cater more to the one-shot people.

Eric Wilhelm is now talking about Test::Harness 3.0 (currently TAP::Parser). See also testanything.org.

Eric Wilhelm Number 2 is now talking about Module::Build. It started with perl -MCPAN -e 'install Foo'. But CPAN can become out of date, so you have to install CPAN before installing Foo. But then there can be updates to Module::Build, so you have to update CPAN then update Module::Build then install Foo. But they’ve updated CPAN with something or other so you just have to update that before installing Foo. Eventually we’ll just get back to the future where you just have to install

Someone who didn’t introduce themselves is talking about MoveMyData.org, which allows you to multi-publish, synchronise, republish data between multiple sites.

Tim Bunce is doing three talks in ten minutes. First up, he’s recapping a talk from last year when he said that database interaction in open source languages sucks. Fixing this needs an API, and Tim suggests JDBC. Not actually JDBC, but the API. The idea is to adopt JDBC between DBI and the database drivers. Amazingly enough there’s a java2perl6 program, which he’s used to convert JDBC class definitions into Perl6. Wild.

Second up, imagine you have a 100k LOC web application. When it gets slow, you don’t really know what bit of it contributes to the slowness. He’s written DashProfile which you can use to profile your code.

Third up, his talk on DBI::Gofer compressed into five minutes.

Now Michael Potter is talking about something that I completely missed. Oh, standardizing data definitions. Instead of going to ANSI, he thinks it’s time for an open organization that’ll warehouse data definitions.

Catalyst in five minutes is up next, presented by Jonathan Rockway. He’s talking about making a blog with Catalyst. Went by too fast.

He’s now talking about Angerwhale. Yet Another Blog Application. It’s apparently “blogging 2.0″.

SVN::Notify::Mirror, to monitor SVN repositories. That’s all I got.

Now music! Perl In A Nutshell to the tune of Life In A Nutshell. Awesome!

OSCON 2007: Building Domain Specific Languages in Perl, by Jesse Vincent

Domain specific languages are little languages built for specific programming tasks. You might want to use them because they’re easier to read, they’re expressive. SQL is an example of a DSL for dealing with relational datasets. Excel macros are a DSL for working with numbers and spreadsheets. XSLT is a DSL for transforming XML.

DSLs can be called by your host language, and they’re called “internal” DSLs. Most of everything in this talk will be an internal DSL. The Ruby community is big on DSLs and says that you can’t do them with Perl, but you can!

A DSL exists for declaring database schema, similar to Rails. One exists for web templating, one exists for dispatching HTTP requests, and one exists for making web testing easier.

Jifti::DBI::Schema is a very nice implementation of describing a schema.

Template::Declare is a pure Perl templating system. The two big Perl templating systems, Template:: and HTML::Mason, are either not Perl or are full of HTML. Why learn another language? Template::Declare looks very useful for prototyping HTML in Perl. There are a few little things it can’t do (like make a tr equivalent) (edit: yes, it can, it uses row, and also cell for td tags; see comment below), but all in all it’s very nice.

Test::WWW::Declare is a readable language for testing web interactions. You can do things like content should match qr{RT Essentials}i, which is pretty cool.

DSLs are tougher to debug. Errors can sometimes be confusing. But they make coding fun and can introduce programming to non-programmers.

OSCON 2007: wxPerl: Agile Cross-Platform GUI Development, by Eric Wilhelm

wxPerl is an extension module that allows you to develop graphical user interfaces (or GUIs) in Perl. It’s multi-platform, uses native widgets, it’s object oriented and event driven. It runs on heaps of platforms. Why would we want to develop local desktop apps? To take advantages of local machine resources, to keep data private, etc. wxPerl is apparently hard to install, but it’s made improvements recently. wxGlade can be used to make a GUI, but there are a lot of problems with the auto-generated code it produces. Once you’ve figured out how to get started, don’t take the one-page academic example and transform that into an architecture. Use modularity, subclassing, traits, named subprocesses, and exert discipline. There was more to this presentation, but I zoned out.

A question from the audience raised the point that the documentation is more geared towards C++ programmers, and it doesn’t sound like there’s going to be a change to this. If you’re struggling you could use wxGlade and try to go through the code that it generates, but it’s pretty hairy and your eyes might bleed.

OSCON 2007: Thursday Keynotes

The first keynote is about getting a different kind of person interested in and using Open Source. Ben Fry started out talked about visualizing data, showing a branching graph representation of an Apache log file. His keynote is about Processing, a programming environment for teaching, visualizing, and graphing. It’s a domain-specific language for graphing, and includes hooks for interactivity. Baseball salaries, interactive Grass display, airplane flight tracking, all done with Processing.

The next speaker, according to Nat, is going to make our brains function in a completely different way. Robin Hanson presents Understanding Bias. We, as humans, have a set of cognitive biases, systematic tendencies that make our errors go up. Wishful thinking is an example of one of these biases. Because of these biases, things go wrong. Schedules go late. The “not built here” belief is rampant. We’re in a world of polarized opinion because we think we’re better than other people, therefore we disagree. In fact, even though we know we have biases, we usually project those biases on other people more strongly than on ourselves, so we think we’re correcting for them, but we aren’t. So why do people let these biases continue? They can help us as individuals, but there’s a societal cost. Should your top cause be Truth and the others be subsidiary? Bottom line: we’re all biased, and even if we know we’re biased and have taken steps to deal with those biases, we’re more biased than we think.

Bill Hilf (or, as Nat says, “our man on the inside”) is from Microsoft and is talking about the last year of Open Source at Microsoft. Microsoft is a big company, going from Windows and Office to entertainment devices, CIO software, research and development… Microsoft is entering a collaboration with Drupal… They’re going to be working with OSI in getting their “shared source” licenses proclaimed as open source. microsoft.com/opensource is live now.

Rick Falkvinge, the founder of the Pirate Party (see also the Wikipedia entry), talks about Copyright Regime vs. Civil Liberties. The Pirate Party exists to rail against copyright, which they feel is a commercial monopoly. Today, because you’re not allowed to send copyrighted materials to someone else, that means that to prevent copyright infringement, private communications need to be monitored. This leads to problems with whistleblowers and self-censorship. Society needs to choose between privacy and copyright. This is what the copyright fight is about: civil liberties, not about economics. Politicians do not understand this, but the copyright industry definitely does. This shows when they lobby for things like four years of prison for filesharing, which they tried to do in Europe. Even though the Pirate Party didn’t get a lot of votes in 2006 (0.63%), they’ve influenced other parties — the Norwegian Liberal party used the same copyright platform as presented by the Pirate party. How can a 4% party have influence? Sweden has primarily two parties that split the vote, and the Pirate Party wants to be a wedge between them.

Steve Yegge from Google is up in a technical glitch storm, talking about how to ignore marketing and become irrelevant in two simple steps. Branding isn’t something we talk about very much. As programmers we think that if we write a really good product it’ll be used and become popular. “Introducing New Coke is like introducing New God.” He’s talking about why Coke introduced New Coke, because their blind taste tests showed that New Coke tasted better than Coke Classic, yet people liked Coke Classic better when they knew what they were drinking — showing that branding matters. A brand, in geek terms, is a pointer, it’s an identifier that’s a placeholder for some word in your mind (like how Kleenex is a placeholder for a tissue). How do you make a brand? Through publicity, not through advertising. Perl and Rails are two good brands. And brands are immutable, once your brand is established it’s set. Two problem brands in the IT world are JavaScript and open source licenses (GPL is the brand). The biggest problem brand is “Open Source”, which has become a brand that doesn’t have a strong hold on peoples’ minds.

OSCON 2007: SUN CAN HAS CRAPPY PARTIEZ

Sun threw a party last night that was, on the grand scheme of things, fairly crappy. The guys pouring the beer didn’t have a clue, so I got a half a cup of foam. They had ping pong balls but no ping pong tables. The food was medium-to-high end buffet finger food, including a ‘build-your-own-sandwich’ section (as long as you wanted meat and mustard…I didn’t see any vegetables but someone can correct me if there were some there). The music was horribly balanced, resulting in bass bass bass. It was in a converted parkade, and by “converted” I mean “nothing’s changed except rug on the floor”. And they had plastic big-wheel tricycles there that the wheels kept falling off of.

I’ll leave it to the reader to draw parallels between Sun and the tricycles.

Edit: By the way, the title refers to the ad for the Sun OSCON BoF. lolcats has totally jumped the shark.

OSCON 2007: Machine Learning Made Easy With Perl, by Lino Ramirez

Key lesson: computers should empower people, not replace them.

Machine learning is a three phase process: preparation, modelling, and implementation. These three phases overlap.

Actually, just go read Al’s coverage or Chris’s coverage. :-)