Grant Kruger (thirdworld) wrote,
Grant Kruger

DrupalCampPDX 2008 retrospective

So I've been a little scarce on LJ again. The past week has been recovery. From what? Well I'd been helping to run DrupalCampPDX 2008. Yes, I got involved in conrunning again, or more specifically, running a BarCamp-like event. I've written all about it, hidden under the cut for those of you whose f-lists need to be spared. Photos from an online Flickr collection

Drupal Oath

Open Source and Drupal
I've been getting into the Open Source world in a big way since leaving the multi-million dollar projects I specialized in being a part of before moving to Portland. I've also become more involved in local tech communities and am going to more and more group meetings. Mostly I go to the PHP user group (where I sometimes annoy folks because I know that many aspects of PHP are crap and I'm not afraid to say it) and to the Drupal group.

Open Source programming languages, CMS platforms/frameworks and the like form the backbone of a lot of today's non-profit web presences, as well as small businesses and many others. The programmers and Drupalers were a good bunch and some really sweet souls mixed in to the bunch, amidst some fine self-starters. The culture of sharing really appealed to me and I'd found another niche... another home.

Drupal 101 and Top 10 Drupal mistakes
The Seeds of a Drupal Event
From time to time folks in the Portland Drupal group muttered about holding a con or a camp (an unconference), but the mutterings, much to my disappointment, always died down again. I knew that several well-motivated volunteers were needed. It never happened. All the while, agrathea watched me with bemusement, knowing that my involvement in a DrupalCamp was inevitable, and seeing no way to stop it. I was not even sure one would happen and I did not want to fly solo, so I waited.

So when David, a rather charming techie-designer who I was getting to know a bit, brought it up once more, I again watched with interest. Crazy as my life has been I was not ready to be the go-to guy on even a small conference. For a time it did seem like it would die down again, but it came back to life. This time the group did not want to let go. We'd all seen BarCamp and knew this was doable with very few resources and minimal planning. We had a group meeting with the DrupalCamp as a focus, and sure enough it was the biggest Drupal user group (DUG)meeting I'd seen yet. Support came from many different quarters and I could tell this time it had too much momentum and was going to happen, in one form or another. I was excited, and so were all present.

I've helped run many science fiction conventions, all-volunteer run events that were formed on know-how and traditions that date back to long before any of us Drupalers present had been born. I'd learned more than a little on those conventions, that convention center staff can scarce believe are all-volunteer run. Some of the volunteers I learned from had been running conventions for decades, all as a hobby, or for community. Still, a big part of me was still inclined to sit this one out and just enjoy it as an attendee. It's much easier that way. I'd just started a new job and was not looking for freelance work, contacts, an enhanced profile or any of the usual suspects. I just did not need life complications and had no reason to get involved, except to attend and learn.

During the meeting, folks were excited and it was contagious. A date just over two months out was chosen, something I spoke against as I felt much more time was needed. However, unconferences by their nature are much easier to run and it seemed possible, and most present felt it was, so I went with the flow. Each community has it's own rules after all.

Lightning Talks and Presentations 3

Reasons to Get Involved
All would have been well, had I simply shut up and let others run with it, but little hints kept popping up all over that a little, or a lot, of what I'd learned in all those volunteer-run cons was going to be needed. Not too many volunteers stepped forward to run major portions, so when programming came up and little was said, I knew that it was speak now or forever hold my peace.

Programming is always the backbone of any con that is not purely social in nature. Screw it up and little else matters. The big 900-pound gorilla here in Portland is OSCON, marketed as an open source convention. You pay over $1K to get in. I go to Worldcon, a 5-day 5,000 person con, and prices range from just $100-$230 or so (depending on how far in advance you buy a membership). It's that cheap because it's all-volunteer run. I've been to a Worldcon with over 1000 programming items, from readings through a major award ceremony. This dwarfs OSCON and most like it. And most of those SF events have several panelists talking, usually authors, editors, agents, scientists, academics, etc. Program participants number over 200 at most Worldcons. They too are paying members and equal participants. In other words, it's more in tune with open source than any over-priced OSCON-like convention.

And worse? OSCON programming, in my opinion, mostly sucked. It's almost all single speakers, and about half of those I saw got on program with a clever tag-line and then talked about something else entirely, most often, "Use my product." Even when they had good things to say, some of them were poor speakers who were too shy, unable to express themselves clearly or unable to communicate their ideas. And presentation-heavy programming? I joked with agrathea that some fans were needed to sort it out, along with a lot more of a true open-source mentality. In fact, in my head I compared the quality of programming to a couple of small SF conventions I'd been to, with just 100-150 attendees and a price-tag under $50, and both of them had vastly superior programming than OSCON, in my opinion. An overpriced sales-heavy conference, with attendees almost exclusively coming from staff at companies that could afford to send them there, well it seems to me it just does not gel with the open source community at all.

Contrast this to BarCamp, which is free and far more in tune with the open source (some of you would call it fannish) mentality. I really enjoyed it and I'd later make they could learn from SF cons, and also that SF cons could learn more than a few innovations from BarCamp. Still, programming at BarCamp has as its strength that it is planned and executed by attendees. However, this is also a weakness, with the following as issues:
  • Duplication of related topics.
  • Poorly thought-out topics.
  • Poor speakers who often don't know as much as they think they do, though BarCamp can be self-correcting in this regard, if those who know more are present.
  • Room size chaos with large rooms having poorly attended talks and small rooms having the reverse.
  • A lack of focus, where speakers sometimes barely scratch the surface of a topic, because of a myriad of meaningless banter from the audience.
  • Inadequate write-ups that see panels missed, even where interest is high.


Now all cons/camps/conferences have issues, even the best run, but the better the planning the better the event and the better the quality of the programming. OSCON and BarCamp both share a lack of this planned-program element, in many ways, both leaving it entirely in the hands of presenters. Some tech conferences and almost all SF conferences overcome these issues in a simple way. They allow presentations, but the main focus of much of the program is on building panels of experts, diverse opinions and complimentary/contrary views, and setting up an organized discussion right there in front of an audience, with controlled audience participation. Further, the specific nature of our community was that we were all there for one reason, Drupal, and so we were many of us, at least in part, experts, and certainly expert enough to share the stage with several other speakers.

This was a good group of people who wanted to share, and learn, and grow. I wanted to see how all this would work out, how all these techies, designers and start-up folks would combine in an act of community. And I wanted to see how some SF fan ideas would work in a tech conference. Somehow, of my own accord, as the practical part of me screamed, "No, no! Stop you dumbass moron!" I put my hand up and I offered to do programming. From comments doing the rounds in the room at the time, many of them fiercely anti-panels, and many assuming that we could just run with regular BarCamp programming, few of us in the room at the time realized that I'd just taken on responsibility for DrupalCampPDX 2008's backbone. And in the end not only was it an easy sell, it instinctively made sense to most.

agrathea looked at me with a resigned look on her face. She knew, though I did not yet realize it, that I had just volunteered both of us and would look to get design work out of her. Theresa has heard me speak out many a time about how many science fiction conventions I go to have really terrible logos, publications and web presence. In fact, to be blunt, many major SF events still look like their web page was put together by a high-school time-traveler from the 80s. This despite a horde of really smart volunteers. Remarkably, many tech sites are just as bad, though most have learned the error of their ways through sheer necessity of their jobs. So agrathea knew I'd ask her to help here, and believe me, Drupal starts out with a fairly poor logo, often referred to with names such as, "The Evil Alien Head," or "The Creepy Evil-Eyed Acid Drop." She was of course quite correct. And boy, did we need her help.

I'll go into more camp-specific detail below, but suffice it to say, again as agrathea knew all along, I got sucked into far more areas than I planned and lost many hours of spare time and sleep working on aspects I'd not anticipated. I'm still not certain what my motivation was. I needed no exposure and I still have a lot to learn about Drupal. Part of it was I already knew how strong a volunteer-run community could be and what was possible, and I wanted it for this new community of mine as well. I'm sure an element of pride was involved, the desire to see it done right, to set a positive trend that will see it gain momentum, thrive, and continue. I've seen how easily something like this can fall apart. And yes, before agrathea points it out for me, part of me is a compulsive volunteer who just can't help himself.


I will admit to doubt. Initially energy was high and things looked good, as several posts appeared on the Drupal PDX group page, including a wiki for volunteer panelists to put down their names and topics they wanted to speak on. This latter proved to be the seed our success, allowing BarCamp-style programming (self selecting topics and presenters), but with some control possible. Still, despite the short timeline it was a couple of weeks before we organizers first met, which troubled me and meant that we had to play some catch-up later.

When we did meet it quickly became clear that it was a strong group of folks -- smart, motivated and highly capable -- and huge strides were made right away. David, the latest seed for the idea, and someone with management ability and great energy. Andrew, the heart and soul of the Drupal PDX group and one of its founders. Mike, smart and capable, with Camp experience from LA, and who had replaced me at OpenSourcery after I left, and who was a much better fit for them. Kerry, whose company's promise of paying for the space and eagerness for the event o happen added a sense of urgency and inevitability. Roger, who always stands out at monthly meetings as someone with a ton ok knowledge and a deep desire to share. Dean, fresh from DrupalCon in Boston and filled with an eagerness to be involved and help, even though he was still new to Drupal. Bart, a influential character who seems to have a finger in every Portland open source pie. And agrathea, a brilliant designer with endless energy and dedication, and a complete sod bastard of a boyfriend who volunteered her against her will.

David hooked us all up with his company's BaseCamp site, a management tool that proved very useful, though probably we could do much of the same with a customized Drupal page. Essentially, as pertains to how we used it, it involved a team blog (each post turning into a discussion and with a good set-up for file attachments) and a series of somewhat underutilized to-do lists and milestones. Still, coordinating a team of contractors, freelancers, regular-jobbers, and the like proved difficult and meeting attendance would be patchy thereafter.

During that meeting we made some important program decisions. We decided on two tracks of planned programming, and one dynamic track. We also decided on hour-long panels, with 15 minute breaks and breaks for lunch and supper. This boiled down to 10 organized program items, and I knew we had a challenge ahead given that we already had more than 10 panels volunteered. Other decisions made included registration hours and capping our membership numbers at 100, due to space constraints.

Theming Strategy

On the program front success was assured on four fronts. First it started with the wiki. This kept the community selected programming of the BarCamp model. Folks added themselves and the topics, including asking that some topics be covered and seeing others pick them up. We set a deadline for the week before our monthly DUG meeting so that we could present programming to the group, and then froze the wiki, keeping program as it stood. We had 20 volunteered items to cram into 10 slots.

In the meantime, a site visit revealed that we had three rooms for potentially three tracks of programming, but one could seat over 70, while the others were 15-30 if crammed. This meant that we had to be far more careful about how we organized programming than a normal BarCamp might be. We had to ensure that big ticket items were in the main room and that the smaller items that ran against them would be different enough to split the group, but not by too much.

Further, there was a glaring hole in program. Drupal's hot-button topic is theming, otherwise known as, "Making Drupal sites look good, but also not look like Drupal sites." Drupal includes many themes and some are really powerful and attractive too, but when everyone's site uses a few of them, and many are just variations on each other anyway, well many sites tend to look much the same. So I talked agrathea and her strategic partner Jerry into doing a theming panel. It was a good call too as this panel was the best attended panel of the day, after the keynote. Which meant the remaining 20 volunteered panels had to be squeezed into just 9 timeslots.

Based on this, the second part of our success was one fine evening when I met with Roger, Mike and David one and we took the 21 panels and turned them into 10. We promised ourselves that every volunteer would still be a presenter, and starting from that we merged panels with similar themes. We also had to be sure to make good use of Matt Westgate, now a Portlander and the guy who co-authored the best selling Drupal book ever. In the end we kept all the volunteers and met our goal, having to split just a single hour-long panel into two 30-minute panels. Immediately this meant that many of the talks had already become panels of speakers, and some had also already had more than one speaker.

We took great care with which items went up against which (we wanted to minimize the occasions when attendees would want to do both panels), which panels were going to need to be in the main room, which ones would start the day, and which ones end the day. We made sure there were no conflicts with presenters on twice for the same slot, and tried not to have speakers do consecutive panels. We ended up with a formal schedule which I presented at the next group meeting and to the DUG. I remember on one small change coming out of that. In general the feedback was very positive and folks were excited.

New data display options

Further, no presenters flaked out, no time change requests were received, no complaints about our decisions, nothing. With presenters who are that flexible, amenable and keen... well, it's hard to fail.

The merging of panels had already given us much of the third part of our success - panels (i.e. multiple speakers). Further, I hunted down a couple more folks to add to some of the panels and invited those who wanted to speak but had missed the deadline, to volunteer for existing panels. The panels were to prove a huge success, as I expected, but also beyond my expectations. Not only did it keep things well-paced and interesting, while adding a greater level of knowledge, but it also brought some speakers out of the woodwork who did not feel comfortable hosting a panel alone.

To enhance this format we encouraged presenters to post their bios and write up extended blurbs for their panels. Further, I sent presenters emails explaining the format and what was expected of them, and I appointed moderators, and explained their role as well (primarily to control audience participation and to ensure no single speaker took over the panel). I encouraged prep work and the handing out of light handouts, if it suited them. This meant that they all knew what was expected of them and many were extremely well prepared.

This of course was the fourth and final secret to our success - excellent, motivated, well-prepared speakers who loved the idea of sharing their knowledge with fellow Drupalers. Some of them were nervous, others uncertain, but all of them did magnificently well on the day. We had laid the foundations for them and come show time they simply made it happen. I did not see or hear about a single poor panel, and that is remarkable, even for just 10 panels, especially given that most of them had never been on a panel before.

In general I've helped run many conventions, but few that had programming go that smoothly or had that quality (no missing presenters, schedule conflicts, requirements to swap rooms, etc). I was stunned and thrilled. It exceeded our expectations and hopes. I think it was easier this time because it was our first and interest in all the topics was high. Next time it will be more difficult to come up with new spins on what is essentially a limited scope.

Scaling Drupal 4

On the day of the event we had free admission and meals for all attendees, which is the BarCamp model. This was paid for by sponsors, who were seeking us out right from the get-go and in the end I believe we only actively sought out three sponsors, one for buttons and two to give us breaks on meal prices. The rest found us because they were already affiliated with our DUG, or a part of it. This included the sponsors who not only recommended the function space but paid for it as well.

A couple of the sponsors gave their professional skills or personal resources to the event instead of direct donations. agrathea threw in not only all the design, but also paid for or printed flyers, signs (some laminated), handouts and the like. This sort of thing is very common on science fiction conventions, where volunteers spend their own money with regularity. We made the decision that since we had a sponsor page anyway, that those doing this were just as entitled to be on the sponsor page as anyone else. After all, the volunteers, many of whom delivered full-blown professional services, if they totaled up their donated time at their own billing rates were by far the biggest sponsors. It was an interesting twist on what I'm used to.

We also had Philippe from OYOAHA create a custom module for our camp site (heh, could not resist calling it that). The module controlled registration. Since we had capped registration at 100 we needed something to control this. When we went over 100 later on, Philippe's module automatically put people onto a waiting list. Just before the event we asked attendees who knew they were no longer coming to cancel. When they did, those on the waiting list were automatically assigned a spot and sent an email notification. We watched this happen for a couple of days until we eventually ended up with 2 open slots.

Keynote Audience 2

On the day at least 5 people who did not register turned up. Knowing that we had a couple of spots to spare and figuring on no-shows, we let them all in. We had reasoned that 80 would be a great fit and that a cap at 100 for a free event would likely result in 80 actually turning up. We were wrong. By my count, we had 95. Pretty damned good community participation. Not bad on the organizing either.

For a time it seemed we might be 20 or 30 short, as we had made a conscious decision to do very little PR, since we could only cater for 100 tops. agrathea and I put together a flyer for BarCamp (held the weekend before) and I turned up at a bif Drupal panel and spread the word. This put us over the edge. In the end I'd say membership numbers were almost perfect.

Organization and PR

Or taking the evil alien acid head:

The ugly evil-eyed alien acid drop

And turning him into these:

After the event Matt, who has attended a lot of these events and is regularly a featured speaker, twittered this:
Big shout out to the Portland Drupal posse. Most organized BarCamp ever, with marketing!
The marketing referred to the excellent logo, publications, signage and button work agrathea had done. We put out an excessive amount of free buttons and most of them were picked up. But mostly we had a slick, professional look with great logos for both the group and the Camp, reflected in all of our printed materials.

This was carried over into handouts, signage and a banner. I at first thought we had too much signage, but then everything went so smoothly and I remembered an endless stream of conventions where things were hard to find. Further, every attendee received a little pocket-program with the day's events on one side and a map of our function space on the other. Enlarged versions were posted centrally. Both seemed well used. Rooms were well marked and all of it had a consistent look and feel. We posted wifi instructions, twitter feeds, links to program on the web and so on, on all the walls and on the program. It meant that less help had to be asked for and contributed greatly to the "runs itself" aspect.

I think having agrathea's help was huge, and I don't just say this because she's my girl. For years before I met her I bemoaned how few all-volunteer-run events had an image that was even tolerable, let alone excellent. I wished for a designer many a time. I've worked a lot of conventions now, some of them with 6000 people, and every one of them could have used some of what we got. How the hell did she make the evil alien acid-drop into something attractive? Theresa is also going to share all her artwork, so we will be throwing some cool stuff out into the Drupal community.

Lightning Talks and Presentations 1

On the Day
We were starting a tad early, with the keynote at 9:30am on a Saturday, and this troubled me some. To help get people in early we had set Matt for the first panel after the keynote. However program excited people enough that the Keynote had close to 80 people in attendance.

I started proceedings by thanking everyone for being there, then thanking everyone else who needed thanking and gave the sponsors present a minute to speak. I then handed things over to Andrew Morton and Ben Kaplan, who had prepared their presentation just the night before. With the help of a fun collection of pictures and slides they delivered a rocking, fun presentation on what Drupal is and is not. They ended it with a Drupal oath that they had everyone stand and take. It was funny, entertaining, uplifting and educational. Hell I've rarely seen better, and never seen better at a tech conference. It woke us all up and put everyone into a positive frame of mind. This was an intangible, but proved very important to setting the tone for the day, as people in a good mood are much easier to please.

Unbeknown to most present it was phase two of the intangibles that got the day off to a great start. The night before we had done setup and had called for volunteers to help. All of them and agrathea and I became lost on the way following either a map service or the terrible maps posted on the PSBA site. For me it was the second time getting lost. We had known that the place was a bit hard to find, but had not realized just how bad it was. We realized this was going to be an issue. So, despite being exhausted and needing an early night, agrathea sat for 4 hours building a much better set of directions. Several times on the day I heard people mention how helpful those maps and directions were to them... including an organizer. People arriving much less grumpy is a very good thing. Still, it was yet another late night for us, in a string of late nights.

For myself my day went as follows (with many organizer-type interruptions):
First I went to Matt's Build a Site in an Hour panel, which was mostly stuff I knew, but fun to see him in action. Then I saw some of the Search Engine Optimization (SEO) panel and learned a couple of things, before having to rush off.

After lunch I was on a panel titles, Drupal 101 and Top 10 Drupal mistakes, with Alex Bronstein and Ben Kaplan. I think we did quite well, talking about some key issues and coming up with 18 mistakes between us before time ran out. I wish an attendee would post their notes as I'd like to see them.

After that a panel on Views 2 and Panels 2 was very intriguing and we were all impressed by the new power. However Panels 2 is only available in Drupal 5 and Views 2 is only available in Drupal 6, so right now we can't use the two together. Finally I went to Matt's Scaling Drupal and showcasing high-profile sites. There was much of interest, but I wish I'd been able to go to the non-profit talk as well. We wrapped up the evening with Lightning Talks and Presentations, which had some fun little talks, though we were down to 40 by then - it had been an intense and tiring day. Many stayed to help with cleanup and then it was home and collapsing exhausted into bed.

SEQ and Workflow

General Comments and Areas of Improvement
I think food was a big hit and very well organized. However, I think we needed slightly more food for lunch and a better coffee/hot drinks arrangement. Further I think next time we need to make sure snacks are on hand in social spaces, to encourage folks to hang out there, maybe even some form of entertainment, like packs of cards.

We seemed fine for size on the small room all day long, except the first panel, when we had almost 30 in there... but they fit! Ideally it took about 20. But with two tracks of programming and 100 people we needed a bigger second room.

Programming was so interesting that our social room was an almost complete bust. Initially it was going to be used for a third track of traditional BarCamp on-the-day attendee-proposed panels. However, just the weekend before at BarCamp we observed that, despite endless tracks of programming, there were many just sitting about between panels. This may be because there was a lot of noise programming and semi-duplicate items, and also because many were very poorly written up. Or maybe just exhaustion. Still, seeing all of these folks sitting about when panels were on convinced us to change our plans and turn the third room into a purely social/relaxing space. However people were too into the programming and rarely used it. We were victims of our own success.

Next time, I'd strongly suggest a minimum 6-months to a year lead-time and no more 2-month lead-time. The short lead-time caused us many problems. Volunteers whose life took a turn were unable to help for long stretches, whereas if we built this over 6 months or more this would almost have been a non-issue (and it was sizable issue with our small pool of volunteers). Plus, if the many who spoke to me on the day were sincere, we'd also have had more volunteers in the first place. All this is important because it helps to avoid volunteer burnout on the remaining volunteers, which could result in an event imploding (I've see it happen), or volunteers never volunteering again (common).

CCK Panel

Further, if we want this to be a bigger event (and I doubt we could avoid that now) then we need to give people more time to plan to be there. As successful as we were, right at our capacity, we certainly lost some folks who had other engagements, including potential presenters. We also scheduled our event around when Matt was available, but given enough lead-time most everyone would make themselves available, regardless. We also need more PR as many never had the chance to hear about us at all.

Further, for many of the same reasons, I think we needed to take more care to avoid clashing with other Northwest Drupal events. Seattle's camp was to follow ours the next month and we were on the same day as Vancouver BC. At a future event the people we lose this way will affect us more. Further, there is great value in cross-pollination between regional events, and yes, it does happen. We supposedly had someone fly in from Idaho and had folks from around the state. It is also considered bad form to step on each other's toes, and we did. As much as our camp helped us as a community, imagine when our PDX community is interacting with other communities, learning each other's best tricks for running camps, groups and in Drupal itself. I know we lost CiviCRM guys to Vancouver, though they are closer to us.

The next DrupalCampPDX will bigger, like it or not, and we'll need a bigger space. This means finding a new location. CubeSpace is an option (hosted the last 2 BarCamps for free), especially with their free sodas, snacks and coffee already on hand, and plenty of expansion space. College space is also an option, as well as community centers. An easier to find location would also be a plus. Having more than one day of events is another thing we want to consider, as that will result in more socialization and more diverse programming.

We might also want to be less Camp programming and more Con programming (I.E. more formal), though this will involve a much larger workload. In other words we'd decide on what topics we think our DrupalCon needs to cover, and then seek out panelists for these topics. This is harder than it seems because our local pool is not established enough, though we sure just took a big step forward on this. Non-camp programming is much tougher, and it will be tougher anyway if we add more tracks of programming.

On committee/staff, more clearly defined roles and responsibilities would help. It never hurts to know exactly what's expected of you (eg, chair, PR head, volunteer head, food and social spaces head, program head, registration head, web head, etc). Further, several committee meetings planned well in advance would be a plus, instead of the disjointed ones we managed. Advance planning means we can better work it into our schedules.

On volunteers I'd say we need a person in charge of volunteers, both recruiting and handling them. Even so, programming was once again an issue, as several potential volunteers told me that they would have helped, but they did not want to miss anything. This will ease as folks see more panels that they don't need, and also as we get more overlap with other tech groups.

Drupal for nonprofits...

Final thoughts
As always with volunteering, a huge positive for me was getting to a great group of volunteers better. Volunteering is always a great way to make friends and contacts within the committee/volunteer pool. Having several of us simultaneously working on our Camp's web presence at the same time was also a very interesting, educational and enjoyable experience.

Thoughts for future camps include: themed Drupal Camps, for example DrupalBeginnerCamp, DrupalThemerCamp, DrupalNonProfitcamp (we might get Trust sponsors for that one), etc. Maybe not even camps or even cons, but something new. For example there could be a hands-on aspect where experienced Drupalers work with inexperienced Drupalers, or with each other, semi-classroom style. Or where we learn by tackling non-profit projects hands-on, live, in teams.

Many of you may have suggestions. Please feel free to make them here. I'd love to see them.

Finally, the only currency I could be paid with is in thanks. I have never been thanked as much at any prior event I helped run, not only by many of attendees, but also by presenters and fellow organizers. Pretty damned amazing community. I was heavily overpaid. Further, it was an enormously satisfying event to host. Things went so well that we were all filled with a tremendous sense of achievement. We felt like we had done something fantastic and had helped our community, and maybe had started a new tradition. So tired, well exhausted really, but happy. I took the following Monday off to recover but really have no regrets whatsoever for being a part of this small success.

CCK (Level 2) - 3
Tags: barcamp, con, drupal

  • Post a new comment


    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened