Keith CaseyBook Review: Producing Open Source Software (26.1.2010, 10:31 UTC)

Recently, I realized that despite talking about Karl Fogel's book - "Producing Open Source Software" - numerous times over the past year[1][2][3], I've never written a review of it. So without further ado, here we go.

I originally picked up my copy in mid-2007. It took me a couple months to get to it, but once I did, it rocked my professional world. To be clear, Karl Fogel is an early (founding?) member of the Subversion Version Control System.

Karl starts off talking about the beginning an Open Source project and the things - both community and technical - that are required to get things rolling. If you're participated in an even moderately active/successful open source project, none of this will be surprising, but having all of it enumerated clearly never hurts. If you go with something like SourceForge, Google Code, Launchpad, or Microsoft's CodePlex, you'll have version control, forums, some release management and bug tracking immediately. Honestly, getting the technical infrastructure setup is just plain simple.

The more important portion to me was the other "half" of the book where he discusses the team dynamics side of things.

First of all, he talks about basic Political and Social Structure of the team itself. While he lays out some general principles, the more important and valuable stuff is in his specifics. How are important decisions made? How do community members become team members? What roles and responsibilities does a team member have over a random community member?

Next, in Communications, he talks about all the day to day things we have to deal with. Difficult users, the proper tone, how to diffuse arguments, and generally how to keep things on topic are all covered. Does it all work? Nope, not all the time. But some of it definitely might work some of the time. Regardless, it's a good overview of tips and tactics interspersed with real world examples from the Subversion project.

Finally, there is detailed discussion of Managing Volunteers. This is where the vast majority of projects have problems and the reason is obvious. Very few developers - no matter how sharp they are - know how to motivate people, engage a community, and delegate tasks. Most of us confuse communications and evangelism with marketing... which realistically, I guess they are the same. Doh.

This was highlighted for me last fall at ZendCon when one person asked a panel "Do you think it's appropriate for a project to ask their users to go vote in [technical] polls?" If a project's leadership isn't supposed to engage and occasionally direct their community towards goals complementary with the project, I'm not sure what the point is.

So overall, almost every single idea struck me as both blindly obvious, incredibly powerful, and almost always missed. And the single best part about this entire book... about 90% of it applies to any project or technical community. Yes, I don't care if you're working on an Open Source project, an internal project, or a commercial shrink-wrapped application. You can use almost any idea from this book and apply it immediately.

When I started reading this book, I was active in DCPHP, working with a startup, and on the verge of leaving dotProject. This book crystallized many of my concerns and thoughts about what a community and project could and should be, so I set out to take the best ideas from the book and apply them to each of the communities that I participate in. It's been one of my primary motivators in unconference organizing and web2project and I don't hesitate to recommend this one to anyone who needs to make their project successful.

Overall, I give it a 10.

By the way, all of "Producing Open Source Software" is available under a Creative Commons license at ProducingOSS.com.

Link
Fabien Potencier2009 Conferences Wrap-up (15.12.2009, 10:09 UTC)

This year, I traveled in 7 countries for PHP conferences, giving a total of 12 talks. It has been a very exiting year of conferences for me. I met old and new friends, I learned a bunch of new things (not always related to PHP) and I had of course very interesting conversations about PHP 5.3, symfony, Twig, the Zend Framework, and various other topics.

In March, I went to the PHP Quebec conference. Three years ago, this was my first PHP conference, and as such it's always a very special event for me. This was also the first conference where I gave a talk about Symfony 2.

In May, I had the pleasure to go to the PHP Day in Italy. This was probably one of the most convivial conference of the year. Italian people are very friendly, and the food is always amazing.

In June, it was the first Symfony Live conference. I was one of the organizer, and also a speaker of course. This was a great success and I had a wonderful time talking with so many symfony users.

In September, I went to Japan for their 10th PHP conference. This was my first time in Japan, and I'm eager to come back someday. This was also the first time I worked with a professional translator.

In October, thanks to Zend, I went to the Zend PHP Conference in San Jose. Needless to say that this was an amazing experience. I have also kind of officially "launched" Twig at this conference, and created Pirum during a night thanks to the jetlag. This is also where I decided that Symfony 2 would only support PHP 5.3. At the end of October, I also went to the PHP Barcelona conference for the first time.

In November, after the Forum PHP conference in Paris, where I talked about PHP 5.3, my new friend, I went to the IPC conference in Karlsruhe. Two great conferences, where I always meet a lot of friends.

Thanks to all conference organizers for giving me these great opportunities.

All my slides are available in the talk section of this website, and also on Slideshare.

Here is a list of the most interesting/up-to-date talks I gave this year:

2009 is coming to an end, and 2010 is already almost here. I'm going to be doing a fair bit of traveling early next year as I will speak at least at these conferences:

See you next year at one of the PHP conference!

Link
Helgi Þormar ÞorbjörnssonZendCon, the aftermath. (28.10.2009, 23:08 UTC)

Now that ZendCon 2009 is over and I’m back home safely, albeit tired, in London after a whole week of giving presentations and meeting old friends and making new, I have an itch to reflect a little bit on the trip, reminisce if you like.

First I would like to mention the talks I gave at ZendCon and make my slides available, as I have been asked quite a few times so far to publish them but have no yet had much time to deal with it.
If anyone wants the originals they can contact me directly and I will be more than happy to oblige :-)

The first talk I gave was about frontend caching and how you can get the most speed out of your website by optimizing the various bits of the frontend.
This is a talk I really enjoy giving and have but a good amount of work in preparing for, and didn’t spoil it that I got a full room for that one where people were very engaging and keen on learning about the topic.
All in all it was a huge success and I got a lot of good feedback from people, both in terms of how I can tweak the presentation and people just generally interested in knowing more, both of which makes it worth it spending time on making a good presentation! :-)

Here is the slide deck for the caching talk: http://www.slideshare.net/helgith/frontend-caching-the-new-frontier

My other talk was about PEAR2 and Pyrus and what’s upcoming with both of those initiatives, this one I was asked to give at a very short notice but I’m very ecstatic how it turned out, especially given the time constraints I had on various fronts.
My crowed was small, mostly due to the fact that Elizabeth Smith was giving her famous SPL talk, but I didn’t mind as I had a very good group of people and I toned it down into a more of a personal approach where I gave each person more attention and it gave people the opportunity to more freely bring up their questions and control the flow of my talk, a very nice change of pace.

The slides are available at http://www.slideshare.net/helgith/pear2-pyrus-the-look-ahead

PEAR2 and Pyrus are definitely something for everyone to look at as soon as they can and something they will use in the future.
The future is here! Reach out and embrace it ;-)

Now with a big conference like ZendCon there are many aspects to the conference it self and how one can measure the conferences success, ranging from the speaker experience to the attendee experience all the way over to the social aspect of the conference and in between.
With ZendCon as far as I could see, most of those went over stellar! As a speaker I really enjoyed the conference and I heard very good feedback from people about the conference in general.
It didn’t hurt that Keith Casey organized a unconference for ZendCon this year and man oh man it was a success, a lot of quality talks and panels came out of it and it was to a point where some people attended more uncon sessions than actual conference sessions! Now if that is not success then I don’t know what is!

On the social side of things there were fewer conference organized social events than most other conferences that I usually attend and the open bars were a fair amount of joke, I’m sorry Zend but you get a minus point there :-/
But fear not, that’s where the whole social aspect comes in, the people around you will make it bearable and you will feel more inclined to chat with a random person just to make up for the lack of alcohol.
But as with any other PHP conference there were a couple of self organized social events in various bits of San Jose and San Francisco, where speakers and attendees likewise get up and figure out a plan to entertain them self, usually involving alcohol, and the outcome – A great social event with drinks at hand and great people to get to know and catch up with old friends.

In relation to the social portion above, among other things, I feel like I should make a special mention of Microsoft and the people they had at ZendCon this year.
Josh Holmes and Paul Treichler were the Microsoft guys that stand out head and shoulders above the rest.  Not only was it enjoyable to talk to them about the way and the world, but they were just as adapt and prepared to discuss what Microsoft were doing right and what they were doing wrong, in addition to talk about Microsofts competitors (One could say that in some cases they knew the competitors tech just as well, if not better than Microsofts, but you didn’t hear that from me! ;-)) on top of being socially capable and just fitting right into the crowed with us, be it at the bar of at the conference – This kind of dive

Truncated by Planet PHP, read more at the original (another 4080 bytes)

Link
Mike WillbanksHandling Database Deployments (27.10.2009, 17:28 UTC)

I presented during the Unconference at ZendCon 2009 on Handling Database Deployments. I have posted the slides up on slideshare and you can find them embedded below:

Overall it was a great experience, I have put in a few of the examples in the slides. Slideshare did cut a few slides off so you might want to download the slides to ensure that you can view them.

Link
Fabien PotencierMy first Zend Conference was a blast (23.10.2009, 22:05 UTC)

This was my first Zend Conference, and I must say I had a great time there. The organization was top notch, there were plenty of good sessions, and the unconference topics proved to be very interesting.

I've also met and talked with a lot of great people. I have particularly enjoyed the talks I had with the Zend team, and with all the people I had email conversations with in the past but never had the chance to meet in person.

Beside my talk about how to use symfony within a Zend Framework project, I have also held an uncon session about Twig, and took part in a roundtable about Dependency Injection.

If you have not attended Zend Con this year, most of the presentations are now available online on both slideshare and joind.

Last but not the least, I have been invited yesterday by the San Francisco symfony user group to talk about Symfony 2, and I had a great time talking with SF symfony users.

Thanks again Zend for inviting me this year, and I hope to come back next year.

Link
ThinkPHP /dev/blog - PHPIPC Unconference (22.10.2009, 08:55 UTC)

@phpconference told in a tweet: free registration for this year's inaugural IPC Unconference is open. Expect some cool sessions there! On Sunday, November 15th., all attendees will have the chance to not only to get a taste of the upcoming main conference, but to actively contribute to the conference itself.

 

See you there at Karlsruhe!

Link
Christopher JonesOracle OpenWorld starts today! (11.10.2009, 14:28 UTC)
If you have an interest in dynamic language programming here are the Oracle sessions to attend. There are also unconference sessions happening - check out the OTN area for details on each day. Conference Sessions S311373 Agile Web Development: Ruby/Rails...
Link
Fabien PotencierTemplating Engines in PHP (7.10.2009, 21:40 UTC)

This blog post is not for the faint-hearted! Some people will strongly disagree with me and some others will probably want to kill me at the upcoming Zend Conference. And if starting an argument in the comments can help you feel better, please feel free to do so. If you want to have a more advanced discussion on this topic, vote for my talk at the Zend UnConference.

So, you think PHP is a templating engine? So did I... for a very long time. But recently, I changed my mind. Even if PHP can be used as a templating engine, the syntax is just plain ugly as a template language.

For several years now, I have been promoting web development best practices, and one of them is the separation of concerns. Of course, as the lead developer of symfony, all the projects we work on at Sensio are modeled after the MVC architecture. It certainly helps when we have big projects where many people need to work together. The developers work on the code (the Controllers and the Model) and the web designers work on the design. And templates are sometimes written by developers, but more often than not, they need to be written by web designers or by the webmasters themselves.

And a template language is something that helps you to write templates that respects this separation of concerns. A template language should find a good balance between giving enough features to ease implementing the presentation logic, and restricting the advanced features to avoid the business logic to cripple your templates.

So, when I asked a few days ago about the best and popular templating engines in PHP on Twitter, some people naturally answered "PHP" itself. I was not even surprised as that would probably have been my answer some weeks ago too.

Why PHP is not (anymore) a good template language?

Why do people still think PHP is a templating engine? Sure enough, PHP started its life as a template language, but it did not evolve like one in the recent years. If you think PHP is still a template language, can you give me just one recent change in the PHP language which enhanced PHP as a template language? I cannot think of one.

Template languages evolved a lot since 1995 and the initial release of PHP/FI:

<!--include /text/header.html-->
 
<!--getenv HTTP_USER_AGENT-->
<!--ifsubstr $exec_result Mozilla-->
  Hey, you are using Netscape!<p>
<!--endif-->
 
<!--sql database select * from table where user='$username'-->
<!--ifless $numentries 1-->
  Sorry, that record does not exist<p>
<!--endif exit-->
  Welcome <!--$user-->!<p>
  You have <!--$index:0--> credits left in your account.<p>
 
<!--include /text/footer.html-->
 

And as a matter of fact, PHP doesn't support many features modern template languages should have nowadays.

I will take Django as an example of a modern template language in my examples for reasons you will understand later on, and mainly because I think Django template language hits that sweet spot I talked about above.

The following sections describes the main features I want to find in a modern template language:

Concision

The PHP language is verbose. You need no less than 14 characters just to output a simple variable (and no, using the more compact <?= shortcut is not an option):

<?php echo $var ?>
 

And PHP becomes ridiculously verbose when it comes to output escaping (and yes, escaping variables coming from an unsafe source is mandatory nowadays):

<?php echo htmlspecialchars($var, ENT_QUOTES, 'UTF-8') ?>
 

Compare with the same examples written with the Django template language:

{{ var }}
 
{{ var|escape }}
 

Template oriented syntax

This one is mostly a matter of taste, but modern template language have nice idioms to express common needs. For instance, let's say you want to iterate over an array and want to display a default text when the array is empty. That's very common, but the PHP version is not very readable:

Truncated by Planet PHP, read more at the original (another 19059 bytes)

Link
Keith CaseyZendCon Uncon 2009 - Update (7.10.2009, 03:46 UTC)

Well somehow it got to be that time of year again... at present, we're less than two weeks from ZendCon 2009.  Odds are, if you're going, you've already booked your flight, bought your tickets, maybe even reviewed the schedule a couple times and marked your have to see sessions.

But odds are that you missed something:  Your session.

I know, I know.  Your session wasn't accepted this year - the competition was fierce - but you have one more shot in the ZendCon Uncon.

Alright, quite a few people still don't know what an Unconference is...  An Unconference is an event where attendees pitch ideas they want to present, everyone votes on ideas they want to see, and we schedule the whole thing at the last minute.  Yes, it's a little chaotic but it ends up being a great place to explore new ideas, new presentations, and even give new speakers a chance to stand out.  The exciting thing is that the format is open.  You can give a standard presentation, participate or lead a round table or panel discussion, or even do a hands-on workshop.  Last year we had a round table on "Women in IT", a presentation on the internals of Adobe AIR, and a panel discussion on updating your technology infrastructure on a shoestring and a prayer.

This year we already have ideas ranging from Doctrine 2.0 to PHP on Windows to PHP User Groups to Unit Testing with the Zend Framework to... well, you still need to submit yours, don't you?

All you need to do is visit: http://joind.in/event/zendcon09-uncon and submit your idea or vote on ideas of interest.

And even if you can't afford ZendCon this year, not a problem.  My friend and unindicted co-conspirator Eli White (Community Manager at Zend) managed to negotiate an ZendCon Uncon pass for only $99 using discount code: UNSP9.

Unfortunately, you only have two days left... after October 9th, your only option is to buy a pass on site.

Link
tillMy first PHP Unconfernce (18.9.2009, 14:55 UTC)

I went to Hamburg last weekend to visit the PHP Unconference, which was probably my first conference ever. I've been to a couple barcamps and other smaller events, but anyway, this felt more like a real conference to me. That is, if I exclude ALA and the various ad:tech's I had to go to.

The reasons why I usually avoid tech conferences include foremost the price tag (working for myself, I can technically label it as an expense, but I still have to pay for it), doubts that it'll be worth it in terms of knowledge gained and probably time. I tend to catch up with people outside of conferences (when they are in Berlin :-)) and that has worked well for me.

I'm glad I set all these things aside for Hamburg (and it was all too easy). A lot of people expressed how much they liked their (often 3rd) PHP Unconference, and I can second, or third that — job really well done. Ulf Wendel took it one step further, blogged and asked, "Is perfect too boring?", because everything worked out so well. I guess I would say, "No, it's not boring", and I'm inclined to add, "Thanks, it really felt like having a weekend off, yet I still learned something and met a ton of nice people (or connected online nicknames to real faces)!".

I can definitely see why people visit the PHP Unconference each year, and I'll be one of them next year! ;-)

As I said, I had a great time, both my topics were accepted too. One was merged with another PHP performance talk which was overbooked with PHP VIPs which is why I decided to listen to Kore Nordmann's talk on CouchDB instead, and the other one ("Deployment") — I kind of overslept. And I'm sorry about that! I'll make sure to avoid party, party Hamburg next year.

Here are the slides for my Zend Framework (performance) talk, I hope you find them interesting:

The slides and speaker-notes contain...

  • a small intro as of why I think it's worth while to get into the ring with it
  • hints and pointers on general PHP optimization
  • I detail on a couple components (e.g. things to look out for and how to overcome them)

Make sure to check the speaker notes (using this link) — I didn't put everything in there, but a lot.

(The deployment slides will be up later this weekend.)

This also reminds me to improve my presentation-fu. I need something as kickass as keynote, but for Windows (currently). If anyone has a pointer, let me know. ;-)

Link
LinksRSS 0.92   RDF 1.
Atom Feed   100% Popoon
PHP5 powered   PEAR
ButtonsPlanet PHP   Planet PHP
Planet PHP