-
Thoughts on the OSCON move
2008-09-12 10:20 in /tech/conferences/oscon
It’s now official that OSCON is leaving Portland and moving to San Jose next year. There’s a lot of unhappiness around here about it and a definite feeling that the stated reason (rising travel costs) isn’t the whole story.
Personally, I don’t think it’s clear that making the conference local for more people is a good thing. I’ve noted two years running that I felt like it was a very different experience to be living in Portland and attending the conference — you’re much less immersed in the conference. Increasing the number of people who are there for the sessions but don’t stick around for the evening social activities won’t necessarily improve the conference.
ZDNet thinks “Portland just doesn’t have the facilities to house a fast-growing conference covering a global audience”, but I’d like to hear more justification for that claim. OSCON doesn’t come close to filling the whole Oregon Convention Center.
Personally, this feels like the usual Silicon Valley bubble mentality, combined with a touch of corporate greed. I also have a fear, possibly unjustified, that this may also trigger a slip backwards on the “women in tech” front. My impression is that Portland has one of the best environments for trying to increase the participation of women in technology and open source, and I also have the impression that the Valley has one of the worst.
I’m trying really hard to look at this beyond the personal impact on me (because it certainly did just get less likely that I’ll be able to attend next year), and I’m hearing a lot of the same unhappiness from people outside Portland as well. I guess what I’d like is a bit more openness from O’Reilly about this. Because, really, openness is what OSCON is all about, right?
-
OSCON in a Nutshell
2008-07-26 23:01 in /tech/conferences/oscon
I couldn’t take detailed notes this year on account of a sprained wrist, but here’s the highlights of my week.
I spent most of Monday and Tuesday working on my talk. Tuesday afternoon, I bounced back and forth between People for Geeks and Francesco’s Erlang Tutorial. Nothing new for me in the Erlang talk, but I wanted to get an idea of what he was covering. There was a lot packed into 3 hours, but people I talked to said positive things — that they learned a lot about the language. Over in “People for Geeks”, Andy Lester had quite a bit to say about working with your manager which I considered questionable. For example, “don’t go to your manager with problems” (I thought a manager’s job was to clear obstacles) and “your job is to make your manager look good” (I wonder what our shareholders and upper management have to say about that one). On the other hand, pointing out that your manager is probably not actually incompetent or malicious is valid, although it’s a little sad that we have to point that out.
Tuesday evening was the opening extravaganza. I was kinda bored by Mark Shuttleworth’s talk, but r0ml and Damian Conway were excellent as usual. Although, knowing enough physics to be bothered by the inaccuracies in Conway’s talk was a little annoying.
Wednesday I skipped the keynotes in favor of a proper breakfast and another practice run before giving my talk. Seemed to go well — good attendance, questions that indicated people were interested in the subject matter. Bummer that they scheduled both Erlang-related talks at the same time, though. A talk about Hypertable was interesting, although a few too many questions were answered by “we’re still working on that”. Wrapped up the day with Paul Fenwick’s An Illustrated History of Failure, a fun overview of some of the more spectacular (mostly software) failures the world has seen. In the evening, went by the MySQL / Zend / Sun party, but spent most of the time worrying that drunk people on tricycles were going to run into me and complicate my injuries. Also, giant rabbits are creepy.
Thursday. Nat’s keynote on teaching kids to program was inspirational. I downloaded the programs he recommended to try out with my daughter. Processing Large Data with Hadoop and EC2 was quite interesting. The New York Times used Hadoop and EC2 to do a pile of image processing related to releasing the archives of the first 100 or so years of the paper onto the web. Tim Bunce talked about Ultimate Perl Code Profiling using Devel::NYTProf v2. To quote an audience member, “I have only one question: why are you so awesome?”. I also went to a talk about Meebo’s Interview Process which was pretty interesting. I’m not sure that I picked up anything new, but it did validate a number of opinions I’ve formed about what works and what doesn’t over the years. In particular, having candidates spend a couple hours actually doing the sort of work they will on the job is a really valuable technique. She’s stressed that you have to ask people to do a task that people who don’t do that job would actually fail. I’d add that your interview process should probably be rigorous enough that some of your current employees who are doing that job would fail it.
Thursday evening I decided to go home for a proper dinner, then came back for Beerforge (kinda disappointingly sparsely attended) and the O’Reilly speakers’ party (full of interesting people, unsurprisingly).
On Friday, Tim Bray’s keynote was an amusingly frantic discussion of language trends, with a nice shout-out given to Erlang, and a general leaning towards functional languages as a promising developing direction. The Twilight Perl was a little less scary than average Conway, because he limited himself to no source filters or even outside modules for the most part. As a result, most of the tricks weren’t too difficult to figure out if you’re familiar with all the corners of the base language. But, it was still quite entertaining. After his talk, I bailed on the closing keynotes (a repeat of “An Illustrated History of Failure” for some reason) in favor of lunch and trying to replace my missing phone (lost somewhere Weds evening).
Two fan-boy moments: Spent a few minutes talking with Larry Wall about Erlang, and asked Tim Bray for advice about hats (specifically traveling with them).
Overall, it was a good week as usual. Once again, I was struck by how much I felt that living in town actually detracted from the conference experience. If I submit a talk for next year, I’ll make sure to actually start writing it more than a week in advance; that was stress I didn’t need.
-
Accepted (#1)
2008-03-27 14:15 in /tech/conferences/oscon
I took the shotgun approach to this year’s OSCON call-for-proposals and submitted 3 talks. My biggest fear was actually that all three might get accepted. But, it worked out as I hoped and they picked just one. I’ll be talking about “Beautiful Concurrency with Erlang”. The talk will be an improved and expanded version of my presentation to PDXfunc last month, demonstrating how easy it is to convert sequential programs in Erlang into concurrent / distributed programs taking advantage of your multi-core machine, or a cluster of machine.
I’m slightly nervous, because I’ll freely admit that I was likely selected to give this talk more because I’m good at writing proposals, than because I’m the most qualified person out there to discuss Erlang. That said, I’ll make an effort to draw on the expertise of others to help make the talk as good as possible and as effective as possible at drawing new people into the community.
As a minor aside, I’m currently scheduled for Wednesday morning, which is ideal as far as I’m concerned. I get to give my talk, then relax and enjoy the remaining 2 days of the conference.
-
2007 OSCON Wrapup
2007-08-05 21:40 in /tech/conferences/oscon
I figured I should write a few words on my overall thoughts about this year’s OSCON. Although it’s a bit hard to remember precisely, I felt like it was a better conference than 2005, despite the absence of Damian Conway and a couple other luminaries. Certainly the keynotes were a vast improvement. I do hope that next year sees the return of the Tuesday Evening Extravaganza, though.
It seems like there was a lot less blogging at the conference. Or, perhaps it’s that there was less use of the wiki, and so I just didn’t know about much of the blogging. I did make much greater use of IRC this year, though, and it paid off in a few new friends: Chris, Brad, Alasdair, and others without blogs.
Somewhat unexpectedly, living in the same place as the conference actually made things somewhat tougher. I had to wake up 30-45 minutes earier than I would have if I’d been staying at the hotel. Partly that’s my own choice though, for being too stubborn to drive to the convention center, even after my bike got nicked. Of course, it’s also hard to balance family demands with the crazy schedule of the conference. I’m thinking next year I’ll send them off on vacation for the week or something.
I didn’t get much of anything out of the tutorials this year. Unless there’s something that really looks like it’ll be exceptional, I imagine that I’ll skip them entirely next year.
-
OSCON 2007, Day 5 — Palimp My Code
2007-07-27 23:20 in /tech/conferences/oscon
I was a bit late to the keynotes this morning, but I got there in time for Nat’s talk, which was a bit sad, as he announced this is his last year as the program chair for OSCON, but also a bit inspirational as he gave some advice on family dynamics to all the various open source communities gathered at the conference. After that, James Larsson talked about how to “Pimp Your Garbage”, demonstrating some pretty insane things you can do with your junk (and also demonstrating a slightly disturbing obsession with leather boots).
After the keynotes, I went to back-to-back talks by Robert ‘r0ml’ Lefkowitz. The first was on “Preventing Code”, about how businesses treat code like some sort of dangerous weapon that their employees must be prevented from using at all costs. An example: Windows security settings which prevent unsigned Excel macros from running, and no mechanism for employees to sign macros in spreadsheets they create for work. The second talk was “A Lexicon for Open Source”, in which he observed that people aren’t really sure what a lot of the terms we use in business mean, even though they are formed by combining words we do understand. He suggests that instead of using words which already have common uses, we should dig up archaic words which might or might not have related meaning and just use those, since no one knows what they used to mean and it makes you sound erudite to use them. For example, “reuse” has a common meaning which is really somewhat different from what we mean by “code reuse”. He suggests resurrecting “palimpset” for this use. Maybe we could call open source software “Chrysography”, while the alternative would be decretal software. In closing, he pointed out that contrary to the common claim that there’s no word in English which unambiguously means “free as in speech”, there is and the word is “liberal”. I guess it depends on your point of view whether it’s good or bad that that word already has strong connotations in our society.
The closing keynote was about “Open Source Hardware: A Start”, which might have been interesting if I hadn’t been starving. I’m not sure why they always run the sessions on Friday until 1:30 without any real food.
-
OSCON 2007, Day 4
2007-07-27 15:40 in /tech/conferences/oscon
I didn’t take as many notes today. Really only two talks I went to were worth reporting on.
A talk about DTrace and how they used it to profile the performance of Twitter was quite good. They actually went through a full profiling session to show how you can progressively dig down through the diagnostics to pinpoint issues with a program. It was very inspiring. Some day I hope to be able to use an operating system at work that has DTrace. (I really need to spend some time with oprofile to see how it compares.) I was surprised how few people were at this talk; I wonder if that’s because most people are using Linux and thus it’s somewhat irrelevant to them.
Later in the day, I went to a talk from one of the authors of Jifty about implementing DSLs in Perl. Specifically, he’s talking about ‘internal DSLs’ which are implemented inside the host language. He showed 4 DSLs which they have created: Jifty::DBI::Schema, Template::Declare, Jifty::Dispatcher, and Test::WWW::Declare. These are languages for Rails-like schema migrations, HTML templating, HTTP dispatch rules, and mechanized web page testing, respectively. He talked very rapidly about what was involved to create the DSLs that they wanted and make it valid, working Perl, but honestly I could not absorb it as quickly as it went by. I’m planning to go look at the code more closely at some point to understand how they do it.
At the end of the day, I went to the Perl Lightning Talks, which were a mixed bag and which others took much better notes on. Then there was the Perl Foundation Auction, which took too long, followed by the State of the Onion, which is always hard to summarize, but my take was that Larry talked about all the different choices that go into designing a programming language, then assured us that Perl 6 makes all the right choices (including giving the programmer the ability to override many of the choices if they feel they need to).
-
OSCON 2007, Day 3 — I CAN HAS LOLCATZ
2007-07-27 10:40 in /tech/conferences/oscon
On Wednesday, the pace picked up a lot. I’m going to have to condense my notes considerably to keep this post to a reasonable length.
I was pretty impressed with the keynotes this morning. Tim O’Reilly had some interesting thoughts to share on the matter of open software vs. open services. We have to think about what openness means when even if you had, for example, Google’s source code, you still couldn’t run the application (since you probably don’t have thousands of CPUs laying around). The Intel guys talked about Threading Building Blocks again. Sort of amusing as they had the “marketing guy in a suit” start the talk, and then get interrupted by the geek in a teeshirt to announce the open-sourcing. Then, keeping with the theme of concurrency, Simon Peyton-Jones talked about software transactional memory, which is basically using a declarative syntax for atomic code sequences.
Andy Lester gave a good talk on “Managing Technical Debt”. First step, you have to identify your debt: ugly code, fragile code, failing tests, TODO and XXX comments, lack of bug tracking or version control, jerks on the team or in management, lack of coding standards, etc. That’s the easy part. Then you have to figure out what the technical debt is costing you (in terms management understands), as well as what it will cost to get rid of the debt. Then start paying down your debt starting with the most profitable. (Not the easiest or most fun.) Make a commitment to not taking on new debt. If you do, you must record it somewhere and track your net “cash flow”. Stay vigilant, watch the corners, automate stuff (testing and standards). Remember: debt management is an investment.
A talk on Seaside and Rail was mostly about Seaside, and was very similar to every other Smalltalk presentation I’ve been to. Basically, it was about how the experience of Smalltalk (and the development environment) is great, and that’s all you need to know. The only real content about Seaside is that it’s continuation-based, but he didn’t address the obvious questions like: what about bookmarking, or sending links to people? If continuations are kept live forever, what about memory leaks? How do you scale horizontally?
Next I want to another talk by Simon Peyton-Jones about “Nested Data Parallelism”. The nested part is having data-parallel algorithms calling other data-parallel algorithms. Trying to do this by hand is almost hopeless. So, instead he says you should let the runtime do it for you. This is in the GHC CVS, although not released. You can write code that’s almost identical to normal array syntax but that gets executed in parallel if you have multiple processors. For example:
vecMul :: [:Float:] -> [:Float:] -> Float vecMul v1 v2 = sumP [: f1*f2 | f1 <- v1 | f2 <- v2 :]
In this case,
sumP
also does the sum in parallel, (making it nested). In order to get good performance for this, you need to fuse the two loops to multiple and add in one step. GHC can also do this automatically. The basic summary of this talk is: GHC is nearly magical, and writing data-parallel algorithms is getting much easierLet’s see... then I went to a talk about the Atom Publishing Protocol, which was a little dull.
Finally, I went to “Myths of Innovation” which was quite good and entertaining. By the author of the book with the same name, this talk was about how most of what people understand about innovation is wrong. For example, we tend to obsess about the moment of breakthrough, ignoring all the context and work leading up to it. We also ignore mistakes and failures. Another big fallacy is that people like new ideas. On the contrary, new ideas that threaten people’s jobs or established habits make them scared. Overall, this was a good talk and I imagine that I’ll pick up the book at some point.
I didn’t go to any of the evening activities. See the next post for why.
Oh, yeah, I should explain the title of this post. I think every talk this year has had at least one lolcatz slide. My feedback to presenters: one lolcatz may already be too many; having every other slide be a lolcatz is not cool.
-
OSCON 2007, Day 2
2007-07-26 09:10 in /tech/conferences/oscon
On Tuesday morning, I went to the “OpenID Bootcamp”. A lot of the material was stuff I already knew about the protocol, but there were some interesting points they made that I hadn’t thought about before. For example, they pointed out that most security concerns that people have about OpenID also apply to email. For example, while OpenID being a relying party means that you are “outsourcing security” to the OpenID provider, if you send out forgotten password emails to users, you are also relying on the security of a third party (the user’s email provider).
In the latter part of the presentation, they talked about some interesting new stuff on the OpenID horizon. Some relying parties may want to whitelist providers to those they trust or those who provide a sufficiently strong level of authentication. Both Microsoft and Verisign have schemes for bringing the authentication process closer to the user and the user’s local machine to remove the potential for phishing. Verisign has made a Firefox plugin that manages your OpenID identities. Microsoft runs a local application to manage interactions with providers and relying parties.
In the afternoon I went to Schwern’s talk about “How To Be A Better Programmer”. He started with the claim that Computer Science + People = Software Development, and that while we’re pretty good at the CS part, dealing with people is a lot harder. He spent a fair bit of time stressing the importance of continuous learning. Learning is hard, particularly when you already know one way of doing a task (like learning Dvorak when you already can type QWERTY). But, expanding the ways you think about things pays big dividends in the end. Learning new programming paradigms can help you recognize a substantially simpler way of solving certain problems. And, talking with people outside the technology team and learning how they think about the business problems makes you much more valuable to the company. Two phrases to practice: “Tell me about it” and “Why?”. He also stressed that email is one of the most difficult and problematic modes of communication. People get angry really easily in email and stop talking productively.
The second half of the talk dealt more with the actual practice of programming with some fairly familiar suggestions like: document as you code, test copiously and automatically, and use version control obsessively. In particular, he stressed keeping each commit limited to a single change. Doing this probably means you want to branch freely, and maybe use a distributed version control system. Another interesting phrase he brought up was “Fear-based Programming”, which is where you get into a mode where fear keeps you from actually doing anything. I think that’s probably a concept that most people working on large systems can relate to.
-
OSCON 2007, Day 1
2007-07-24 15:30 in /tech/conferences/oscon
I skipped the monday morning tutorials. There was nothing that looked really interesting, and I know from experience to pace myself. In the afternoon, I went to “Linux Performance Monitoring”. The talk was decent, but unfortunately it was considerably more basic than I had hoped, covering the basic tools that ship with the distros: vmstat, iostat, sar, and friends. I learned a couple little things, like using dstat to match interrupt counts to devices, but for the most part this is stuff I’ve already been using for years. I was hoping there was going to be some more advanced or newer stuff, like oprofile or systemtap, but there was nothing like that.
In the evening, I sort of crashed this Intel “press event”. It was supposed to be for bloggers (hey, look, I guess I’m one of those) and semi-invitation-only, but the invite URL was getting passed around. At any rate, they didn’t seem to upset about a few people who weren’t on the list. They fed us and gave us drinks, then had a presentation about processors and multi-cores and how thread programming sucks, as a lead-up to “The Big Announcement”, which is that they are open-sourcing Threading Building Blocks (and porting it to a number of OSes and architectures). I haven’t had time to look at it closely, but it seems like a pretty cool library for doing concurrent programming in C++. Sort of like an STL for concurrency. They gave everyone a copy of the book, so I guess I’ll learn a little more about how it works sometime soonish.
-
OSCON 2007, Day 0
2007-07-22 11:01 in /tech/conferences/oscon
It hasn’t quite sunk in that OSCON is starting tomorrow. I guess that’s because I don’t have to travel this year. I’m just going to wake up in my bed, and instead of heading into my home office, I’ll drive/bike/bus to the Convention Center. Definitely a strange change.
(I think I’m going to bike to and from the conference, but I haven’t decided completely. Usually OSCON happens during the most brutally hot week of the summer in Portland, but the forecast for next week isn’t too bad — mid 80s and partly cloudy. I’ll probably bike in tonight to get my badge and see how it goes. Of course, I really should get in some training if I’m going to ride in the BridgePedal in a couple weeks.)
This difficulty in internalizing that the conference is starting really soon means I still haven’t really looked at the schedule too closely. I picked out tutorials a couple months ago, although I need to review my selections and make sure I don’t want to make any last minute changes. Beyond that, it’s pretty wide open. The Perl track is really light this year; once you remove the talks that are repeated every year, there’s less than 10 sessions. But, this is just a good excuse to get exposed to something new. I’m just not sure what that’ll be yet.