The & I

By now I’m sure a lot of the folks reading the posts from this blog know of the site I’ve helped shape over the past few years, It’s become most successful in PHP circles, but has branched out into other communities, both tech and non-tech. Not too long after the project started up, it was decided to open source the code and pull in contributions from whoever offered their time. I personally feel that, for a first out of the box open source project for me, it’s turned out well and has a great, active community around it. I’ve learned a lot working on not only the code but in management of the project as well.

I’m taking a break from all of this for now though. I know, has been my baby for the last few years, but I’ve been feeling a little burnt out on it the last few months and I’m starting to feel like it’s having a negative impact on the project. My plan is to take a few months to regroup myself and pull my head out of the code and maybe even get a better, broader picture of what the project could become. My priorities are shifting towards another project I’ve been putting in some time on (no hints yet) that I hope can be a good tool for a similar community.

The management of the project is being put in capable hands, though – no worries there. Lorna will be the gatekeeper for all things She’ll be handling both the site and the open source project in their day to day needs. I’ll still be lurking around in the same places, but I won’t be as active in the project as I have been.

Thank you to the community that has made the site everything it is and I know it will grow even more in the months to come. Thanks for your contributions, both in code and even just in kind words. Please keep them coming and if you’re a fan or contributor of the project, ask Lorna if there’s a helpful hand you can lend. I know she’d appreciate it.

UPDATE: You can also see Lorna’s post here.

Advertisement + Combell FTW

A while back we (the team leads of the project) made the decision to move off of the hosting we were on and up to bigger and better things. Slicehost was a good place to start, but our needs were moving beyond what the little VPS was providing. Through a fortunate series of events, Thijs Feryn set up some space for the project to live on in the Combell servers. This allowed us to more easily set up things like a Hudson instance for deployment and a full test site. Here’s the info from the blog post over on

In recent weeks the Joind.In project has moved onto a new hosting platform. After launching the project in a quiet corner of the server used to host (both are the brain-child of @enygma), it had somewhat outgrown the resources available to it as more and more people used it for more and bigger events.

The new platform is generously provided by Combell, who are a large Belgian ISP. They are familiar faces (and often sponsors) at technical events in Europe, and we’re very happy to have them supporting Joind.In! We now have a dedicated platform for the site, a staging area and a build server, all thanks to the support we have received.

In particular we’d like to thank Thijs Feryn who made it all happen, and of course Combell themselves. You can see their logo in our sidebar and footer, so do check them out.

We’re looking forward to some of the great things this move and new technology will allow us to do in the future of the project. If you’d like to get involved, go over to the github repo for the project or troll through the bug list and pick up something to work on.

Thanks again to Combell and to Thijs for their contribution!

A Few Thanks

If you’re a listener of the Voices of the ElePHPant podcast, you’ve probably already spotted the latest episode where Cal interviewed me about and the experiences I’ve had with making to open source and the challenges associated with it. Unfortunately, the podcast was only a few minutes long and wasn’t a good forum for me to thank the folks that have helped to make the project into what it is today. As I mentioned in the recording, I knew to make the site all it could be, I needed to open it and share it with other minds greater than mine.

So, here’s a few thanks to some of the folks that have made an impact on the project:

  • Lorna Mitchell

    Honestly, without Lorna, a co-lead on the project, things wouldn’t be where they are today. She is one of the very first contributors to the project and was around back when the code was hosted on my own SVN server. She’s been the one that has waded through my early code and has helped point out the broken parts and encourage work on the features we agreed would be best to have. Her involvement with the project has grown considerably ever since php|tek last year and she’s become an invaluable part of the project.

    Because of her busy schedule, we’ve moved into different roles in the project that play more to our strengths. She, the always outgoing, willing to talk to anyone person she is, has taken up championing the project to anyone who will sit still long enough to listen. Some of the sessions she’s given have even included as an integral part. In fact, she has a talk coming up at Dutch PHP Conference that’s about the new version of the API she’s been hard at work on. Oh, and not to be forgotten, she also pushed the bug tracking for the project off of Github and onto Jira – a major upgrade to the bug tracking abilities of the project. The project is lucky to have her as a lead.

  • Kathryn Reeve

    Kathryn has been one of the few that’s voluntarily tackled the Javascript for the project. The changes she’s made won’t jump out at you when you visit the site, but they’ve
    helped to make the site more stable and more usable. She’s recently been working on date picker update for all of the date fields on the site and has made the tabs on the
    event page more accessible via the URL.

  • Joshua Thijssen

    Joshua’s a relatively new developer to the project, but he’s the kind open source projects love. He’s the kind of guy that dives head-first into code and doesn’t look back. I’m
    not completely sure, but I think that in the first week he was involved in the project, he closed about 10 bugs single-handedly. He’s active in both the IRC channel
    ( on and in the bug tracker, both in providing suggestions and in closing out issues. Joshua is also the creator of the Android application (which he gave a presentation on at the 4Developers conference).

  • Kevin Bowman

    Kevin’s been involved in the project for quite a while with contributions that range from server-side work, code updates, conversations on the mailing list and his most visible
    contribution, the iPhone application. This app, along with the Android one, are widely used at conferences for those times when it’s just easier to get out a phone than
    a laptop. He’s a great asset to have around for some of the more technical bits and I’m thankful for his continued efforts to help the project grow.

  • Mike van Riel

    Mike has been another one of those developers that’s extremely eager to help. Some of his latest work has helped bring the project more up to a unified coding standard.
    He and Michelangelo van Dam also laid the foundation for the unit testing functionality that the site currently uses (as well as some additional debugging handling). Before that
    he contributed loads of bug fixes.

I could go on and on with a list of folks that have helped out the project in one way or another, but here’s a few more of the thanks I want to send out…thank you to Jeremy Kindall, Derick Rethans, Stefan Koopmanschap, Ryan Mauger, Michelangelo van Dam and Rob Allen. I know there’s people I’ve missed on this list – there’s a whole host of you out there that have helped promote the site and make it what it is. I am so thankful that the PHP community is as open and sharing as it is. Without it, there’s no way a project like this would have gotten much beyond its infancy.

Thanks you to all of the PHP conferences that consistently use the site for their feedback – PHPUK, php|tek, ZendCon, PHPBelenux, ConFoo, Symfony events, PHP Community Conference, Day Camp 4 Developers, phpDay, PHP Unconference Europe, Dutch PHP Conference, PHP Northwest and the PHP Brazil Conference – and to all of the user groups and other events that contribute events and show their support daily.

I personally want to thank you all for being a part of our project, and I’m looking forward to where the future will take us. 🙂

API Testing with Frisk (and!)

Two great tastes taste great together, right? As I’ve been working more on Frisk in my spare time (yes, there’s a little in there between and I’ve been trying to develop features for it that would be helpful not only for testing web site interaction, but also in working with other kinds of web-based interfaces. Naturally, my thoughts wandered over to the API and how I could use Frisk to work with and test the responses it gives.

I’ve added a few more handy things lately – like matching values inside of JSON objects and different output options – but one of the latest things is an improvement to the POST and GET handlers to allow for more verbose options on requests. This comes in handy when we want to test something a bit more technical than just your average web site.

First, if you just want to check out the test, here’s the code in a handy .phps file. It’s the sample test I’ll be describing.

public function testSiteStatus()
// This is our object to send
$postData = json_encode(array(
‘test_string’=>’my test’))

// This is what the object that comes back should look like
$response = json_encode(array(
‘dt’=>date(‘r’),’test_string’=>’my test’

// Build the settings for the connection
‘location’ => ‘/api/site’,
‘host’ => ‘ji-enygma.localhost’,
‘postData’ => $postData,
‘outputFormat’ => ‘json’,
‘headers’ => array(

// Make the request and check the response!

The large part of the example test is made up of the “setup” to even make the test happen. In $postData I’ve created a JSON message based on what the API is expecting for the Site/Status request and pushed it into a string. The second JSON object, $response, mimics what the API’s response will look like. The $settings array is the more verbose way of specifying settings for the ActionPost request (including the additional headers). The API requires that you give it a Content-Type of the message you’re giving it – it’s not a very good guesser.

The next two lines do all of the work – make the post request to the remote API, return the message and check to see if it’s the same as $response. Simple, right?

If you wanted to get a little more fancy with checking, you can use the “paths” in the assertContains to look inside of a JSON object. So, you could do something like:


->assertContains(‘look for me’,’message_list/message/message1′);


That will look at “message1” in this JSON to see if it contains that “look for me” string:

{“message_list”:{“message”:{“message1″:”I think you should look for me”,”message2″:”but not here”}}}

You can find out more about the API and all it has to offer on the site and for more information on Frisk, check out it’s project on github.

  • API – Interface directly with Community events & feedback
  • Frisk – automated functional unit testing

New @ – Widgets!

With the latest site release over on, we’ve added something a bit more fun for users of the site – handy little widgets that let you embed information from the site into yours. You can see an example of it if you look to the right (well, if you’re looking at the site not the feed, of course).

The widgets currently let you do a few things with a few different bits of information:

  • talks
  • events
  • and users

Each of the widgets comes in different sizes (some are still in the works) and right now you can use a small and large template for the talks, a large template for the events and a large template for the user information. The example I’ve put here on the site is a user widget that lists the talks I’ve claimed on the site and the ratings they’ve been given. Here’s how I called it:



Pretty easy, huh? Well, you can find out more about the widgets on the site here:

For those interested in how it all works, I’m working on a post detailing each of the pieces. If you’d like to look more into the templating used, check out mustache (javascript).

If you haven’t heard of and are involved in events (or speaking) at all, you should check it out! The site lets you give and get real-time feedback on presentations! Articles – Import & WordPress

I’ve been slacking a bit and haven’t posted these two articles/tutorials written up by Lorna Mitchell about using the site in two different ways – importing your event’s information in and a handy WordPress plugin she’s whipped up to show some of the latest information from the site’s API.

  • Importing Data into
    “As a conference organiser I work extensively with the site, which allows attendees to comment on sessions at a conference. Recently the site has also started supporting sessions with both times and tracks, making it indispensable as a way of keeping track of all the sessions during an event. The only downside is entering all the data into it!! does have some import functionality, which I recently rebuilt to reflect the timings and track changes, however this only accepts XML at present, so there is still some preparation work to get your data ready to import.”
  • WordPres Plugin for
    In case anyone thinks I’ve gone crazy after already writing about its import functionality this week, I really haven’t. Its just that some months of pulling a few things together have finally bourne fruit and so I can actually write about them now they are done! The good news is that this includes a plugin for wordpress, which pulls data from the website. You can find its official page on the wordpress plugin directory here:

Many thanks to Lorna for writing these up! It’s always great to see something you’ve worked on be well used by the community that has contributed so much back to it. Want more information on and what it has to offer? Check out the About page or send an email to me personally – i’m always happy to answer any questions!