How King Eagle got his white head
How King Eagle got his bald head - a story from the Mother West Wind How stories by Thornton Burgess
How King Eagle got his white head
How King Eagle got his bald head - a story from the Mother West Wind How stories by Thornton Burgess
ApacheCon welcomes SourceForge back for another year
The following guest post appears on the SourceForge blog today. I'm personally very pleased to welcome SourceForge back to ApacheCon for another year.
The Apache Software Foundation is pleased to announce ApacheCon US 2014, which we’re presenting in conjunction with the Linux Foundation. The conference will be held in Denver, Colorado, and features three days, ten tracks of content on more than 70 of the Apache Software Foundation’s Open Source projects, including Apache OpenOffice, Apache Hadoop, Apache Lucene, and many others.
We’re especially pleased to welcome SourceForge as a media partner for this event.
See http://na.apachecon.com/ for the full schedule, as well as the evening events, BOFs, Lightning Talks, and project summits.
Co-located with the event is the Cloudstack Collaboration Conference - http://events.linuxfoundation.org/events/cloudstack-collaboration-conference-north-america - the best place to learn about Apache CloudStack.
Apache OpenOffice - http://openoffice.apache.org/ - has an entire day of content, including both technical and community talks.
Hadoop, and its ecosystem of Big Data projects, has more than five full days of content (two tracks on two days, one track on the other).
If you want to learn more about Apache Allura (Incubating), an Open Source software forge (and also the code that runs SourceForge) we’ll have two presentations about Allura, by two of the engineers who work on that code: Dave Brondsema and Wayne Witzel. Learn how to use Allura to develop your own projects, and join the community to make the platform even better.
This is the place to come if you rely on any of the projects of the Apache Software Foundation, and if you want to hang out with the men and women who develop them. We’ve been doing this event since 1998, and this promises to be the best one yet, with more content than we’ve ever presented before.
Come see me at ApacheCon NA 2014
In April I will be speaking at ApacheCon North America in Denver, Colorado. I've had two talks accepted:
Configurable Configuration is a talk about some of the new shiny configuration syntax available in Apache httpd 2.4 - stuff like the If/ElseIf/Else syntax in configuration files, the new expression evaluation engine, and mod_macro for scriptable configuration blocks, for starters.
Demystifying mod_rewrite will drag you kicking and screaming from being a mod_rewrite newbie to being a mod_rewrite expert. You don't dare miss it.
We're also presenting two whole days of Apache http server content - code-named "httpd.conf" - get it?
And there's ten tracks of amazing content across more than 70 projects from the Apache Software Foundation.
Register at na.apachecon.com by March 14 to get the early rate.
feb 24 2013
LAX, Gate 47A
The travelers cling to the island
fighting for a foothold,
for a chance to pluck the limited fruit.
Their phones, laptops, and tablets
balance precariously on the tiny table,
their cables drinking from the meagre outlets.
They sit on the floor, lean on the wall,
look longingly at the
sitting in the cramped seats
around the A Concourse,
trying not to bump knees,
squirming to be comfortable,
in seats designed more for the rowing galley
than for comfort.
Waiting for their turn at the island,
watching carefully with seeming unconcern
for the moment when an outlet
and they can dash across to claim it,
take their spot on the island.
The tide goes out.
The tide comes in,
and a new crew of castaways
cling to the island.
Worst travel day ever
Yesterday was just the worst travel day ever. My flight out of LEX was delayed, but got to ORD in time to make my connection at 1:50 ... except we sat on the runway for almost an hour waiting for our gate to open up. I got to the connection about 10 minutes after it had left.
I was rebooked on the 3:45, and even got an exit row seat. It was, of course, delayed a couple of times.
Meanwhile, I was approached by the gate agent, who said the plane was very, very full, and would I consider checking my rollerbag, in exchange for early boarding. Sounds good.
Finally, we boarded, and I was in my seat when someone discovered that the handle on that same exit door wasn't properly flush with the plane body. They brought in maintenance to look at it, and I had to get off while they tinkered, and ended up removing the door and trying to figure out what to do.
As I was waiting for these decisions, I looked out the window and noticed my rollerbag, sitting on a baggage card, in the rain. My roller bag with my second laptop in it, and all of my recording gear, not to mention my clothes. I mentioned this to the gate agent, who after about 20 minutes managed to get someone to move it under shelter.
They finally decided that the door couldn't be fixed, and delayed the flight while they looked for a replacement door, and then a replacement plane, and then cancelled the flight.
Now that the flight was cancelled, my bag was nowhere to be seen and I was told it was probably on the next flight to LA - not the one that I would be on - I was, after waiting in line for another 45 minutes, booked on the 9:30 flight.
The 9:30 flight was, of course, delayed for a further 45 minutes before it finally left, and I got to LA at about half past midnight, almost 9 hours after I had expected to arrive.
Because of the way my bag had been checked, I didn't actually have a claim check for it, but I managed to convince the baggage folks it was mine, and headed out to the hotel shuttle bus stand where the bus for my hotel was pulling away.
So, I eventually arrived at my hotel at a little after 1 am.
I know folks get a lot of amusement out of the fact that no matter where I fly, no matter what airline I choose, or how I route my flights, I am delayed. Every. Single. Time. But this was by far the worst travel day I've ever had.
Last week I was in Brussels for FOSDEM, and then went to Config Management Camp and Infrastructure.next in Ghent. I'm still catching up from the week, but wanted to take a moment to note some of the highlights.
First, FOSDEM was incredible, for a number of reasons.
I've never been to a FOSDEM, so while I had some idea of what to expect, the reality was still kind of overwhelming. FOSDEM has an estimated attendance of 5000. Estimated, because it's free and they don't actually count. Instead, they estimate based on how many devices are on the wireless network. I could easily believe 5000. It was spread across several buildings at the University of Brussels, and they were all packed, all the time.
In addition to the size, the community aspect of it was amazing. While most events I go to have strong corporate involvement, FOSDEM is all about Free/Open Source project communities. There were no companies with tables (although there was an obvious strong Red Hat presence, just judging by the hats), and every table/booth was run by a project community. And the folks at the tables were all (at least the ones I talked to) knowledgeable about the projects, rather than being marketing or sales types. So, a deeply technical audience.
I was at the RDO table on Saturday, and I had some RDO branded swag to give away. I tried to give it only to people with whom I had a meaningful conversation about RDO, but was still all out of everything within about 5 hours, with nothing left either for Sunday or the other two events.
The event was, as I said, at the University, while most people were staying downtown, several miles from the venue. This meant that we had to take the bus back and forth to the venue. This was kind of stressful, especially the first day when my instructions were "follow the crowd." Being somewhere where I can't read the signs, trying to figure out a public transport system, is pretty intimidating. But I managed to get where I needed to go.
The evening events were likewise overwhelming, with thousands of geeks descending upon venues designed for a few dozen.
It was also awesome to catch up with old Apache friends, some of whom I hadn't seen in years, and some of whom I've talked with for years and never met in person.
On Monday morning, I met several colleagues for breakfast, and then got on the train to Ghent. We arrived just in time for the start of the Configuration Management Camp, which was another deeply technical event around configuration management, monitoring, and automation. In a short time, I learned a lot about puppet, chef, and foreman. On Tuesday, I attended some of the morning sessions, but spent about 5 hours or so walking around Ghent, which is a lovely little city.
On Wednesday, Red Hat sponsored Infrastructure.next, which was attended almost entirely by people who had been at the config management camp the previous two days - so lots of hard-core DevOps kinds of folks. There were some great presentations.
And I also spoke, talking about measuring OpenStack with Ceilometer. There was some strong reactions to my talk, critiquing Ceilometer's approach to monitoring, and I'm looking forward to pursuing that conversation further, to see if there are concrete recommendations for what Ceilometer could do differently going forward.
Back home again, after the expected delays in Atlanta, and the water heater burst a few hours after I walked into the door. But ... that's another blog post.
I have lots to catch up on, as I never seemed to have a moment to read email or other daily tasks. And I'm gearing up to go to SCALE next weekend, where I'll give a modified version of the Ceilometer talk, as well as giving a mod_rewrite talk, and a talk titled "Write a Better FM". See some of you there.
Ceilometer API, Net::OpenStack::Ceilometer
A couple of weeks ago, I agreed to give a talk at Infrastructure.Next about the Ceilometer component of OpenStack. Immediately afterwards, I regretted this, simply because I'm not exactly an expert on Ceilometer. But I've often said that the best way to learn something is to teach it, and what better way to learn about Ceilometer than prepare a presentation about it.
I also find that the folks with the in-depth technical knowledge of a subject might not be the right ones to give intro talks, because they tend to get into the weeds before their audience can get a big picture.
And so I started on a quest to understand Ceilometer, get some basic reporting working, and put together a howto style presentation on reporting with Ceilometer.
It turns out that several things worked very strongly in my favor:
* Ceilometer is installed and enabled by default when you install RDO. So there was no difficulty in getting it installed and configured.
* The documentation has lots of examples in it, and the API works exactly as documented.
* My presentation is only a half hour, rather than the hour that I initially thought it was, so I ended up having to trim the content, rather than come up with additional examples.
Along the way, I got tired of trying to issue HTTP API requests from the command line, and parse the response. Being a Perl guy, I started to write some perl code around this, and before I knew it, I had a full module to do all of the stuff that I wanted for my presentation.
It's up on Github at https://github.com/rbowen/NetOpenStackCeilometer and I expect I'll put it on CPAN eventually, once it stabilizes a little. In particular, the statistics() method lacks a lot of the capabilities of Ceilometer's statistics functionality, and does only what I needed for my talk. Also the interface is kind of icky.
I should note that there are some other OpenStack modules already on CPAN, and this one takes a very different approach. This is the main reason I haven't put this on CPAN yet. The other modules, by Naveed Massjouni, use Moose, and I have not yet used Moose for anything. I'm reluctant to put my stuff on CPAN while it uses such a different approach.
Patches welcome. I'd love to hear if you find this at all useful.
Come see me at Infrastructure.Next.
Copyright statements in source files
Earlier today I was looking at a source file for the Ceilometer docs and noticed that there's a copyright statement at the top.
Now, in no way do I want to pick on Nicholas. There are hundreds of such copyright statements in the OpenStack docs and code, and this is just the example I happened to be looking at.
(Note that my employer has its share of copyright statements in the OpenStack code. Pretty much every company participating in OpenStack does this. I think we need to stop.)
I sent a note to the OpenStack-docs list, and it has generated a thread of remarks.
As I understand it, people are encouraged to put copyright statements in contributed source code and documentation, and add copyright lines to files that they modify.
I believe this to be a very bad thing to do, for the following reasons:
* If I edit a file and it says at the top that the file is copyright BigCo, I am discouraged from editing that file, because of the implication that I'm treading on someone else's toes. Files should not have any indication that they are "owned" by any one person or company. (See this by Karl Fogel for more on "owning" code.) This actively discourages people jumping in and fixing stuff.
* If N people contribute to a file, are we supposed to have N copyright statements in the file? This doesn't scale over time. Imagine what these files will look like 10 years from now, and fix the problem now.
* Having author names in a file encourages people to contribute for the wrong reasons.
* Git keeps track of who contributed what changes. It's not necessary to have explicit copyright statements.
The first of those reasons is, to me, the most compelling. Anything that discourages contribution, particularly from beginners, should be eschewed as much as possible.
I have had people ask me, when encountering a copyright statement in source code, whether they have to ask that person's permission before submitting a patch. If we can avoid even one person asking this question, we've done a service to the project.
I also worry that companies that insist on copyright statements in their contributions understand neither copyright law nor Open Source. On the one hand, the audit trail in Git protects your record of contribution, and thus your copyright. On the other hand, if your copyright is that important to you, perhaps you shouldn't be contributing it to an Open Source project. It's anti-community to say to a project that they can have your contribution, but only as long as you get to assert that it's your personal property. Open Source is about community and collaboration. If the building is owned by the community, what do you gain by insisting that a particular brick is yours?
At the Apache Software Foundation, we had this debate a decade ago, and decided that author tags in source code were anti-community, and thus discouraged. To quote from the thread of comments at the time, and, in particular, to quote Sander Striker:
At the Apache Software foundation we discourage the use of author tags in source code. There are various reasons for this, apart from the legal ramifications. Collaborative development is about working on projects as a group and caring for the project as a group. Giving credit is good, and should be done, but in a way that does not allow for false attribution, even by implication. There is no clear line for when to add or remove an author tag. Do you add your name when you change a comment? When you put in a one-line fix? Do you remove other author tags when you refactor the code and it looks 95% different? What do you do about people who go about touching every file, changing just enough to make the virtual author tag quota, so that their name will be everywhere?
There are better ways to give credit, and our preference is to use those. From a technical standpoint author tags are unnecessary; if you wish to find out who wrote a particular piece of code, the version control system can be consulted to figure that out. Author tags also tend to get out of date. Do you really wish to be contacted in private about a piece of code you wrote five years ago and were glad to have forgotten?
This is a slightly different issue (author tags rather than copyright statements) but makes exactly the same point. Do I add a copyright statement when I correct grammar or spelling in a doc? How about when I add a paragraph or reorder sentences for greater clarity? At what point do I remove your copyright statement because I've changed so much of that file?
And then of course, you should consider the bigger question - why do you care? What are you trying to protect against? If you're trying to protect against your contribution being taken by the community and used for other purposes, perhaps contributing to an Apache-licensed code base isn't the smartest thing to do.
I posted a few days ago about personal ticket tracking, and received a lot of suggestions. The one that worked for me immediately was Todo.txt, which augments the way I was already doing things - plain text with a little markup - with a set of tools to give me reporting and a command-line interface to add/edit/remove items.
You can read more about it on the todotxt.com website, of course. I'm feeling much more productive today. Maybe it's an illusion, but my 'done' list is growing, and my 'todo' list isn't stressing me out as much, so that's progress.
Check it out.
Personal ticket tracker
I ask this every few years, because I've never found a particularly good solution. I'd love to hear what you use.
I need a personal ticket tracker. I'm not talking about a check-it-off style To Do List app, but rather something more approaching a software ticket tracker.
I need to be able to set priority, dependencies, and relationships between tasks (ie, projects comprised of several subtasks). I need to be able to get reports of what I did on a given day or week or month. I need to be able to set deadlines on tasks, and get reminders when a deadline is approaching.
I have never used a full-blown project management tool, and that *might* be what I want, but I suspect that it's not, as I'm doing N projects at any given moment, and I don't want something monolithic for each.
In the past I've used RT, which is a great project by an awesome company, but it's a bit difficult to get set up initially, mostly because it is *so* configurable.
While I was at SourceForge, I used the Allura ticket tracker (ie, the tracker attached to projects) and that's fine if your tasks are public-facing, as mine were there. The facility for private tasks was (at the time) a little weak.
I've also used a lot of different ToDo list apps. TeuxDeux is far and away the best of them, but I have since moved to Android, so, no joy there.
Oh, yeah, access from web and mobile are essentials, so a desktop-only project management tool is out.
At the moment, I'm using a text file, written in markdown, which gets converted to a web page, but this doesn't do a good job of reporting (I move done items to a "done this week" list), or of priorities and dependencies. I have "Now", "Today", "Soon" and "Later" lists, and what ends up happening is that everything is either in the "Now" or "Later" lists, and I just do stuff in order of the list.
I'd love to see what other folks use to track enormous ToDo lists of this type, particularly people who are as scatterbrained as I am.
New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.
Keep up with the latest Advogato features by reading the Advogato status blog.
If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!