community php community

The 2015 Slack vs IRC debate rages on

irc-v-slackIt seems that 2015 will likely be partially remembered as the year IRC zealots raged against those using Slack instead of the old reliable, and still growing daily, IRC chat. And it is turning out to be as lively as the “tabs versus spaces” debate that never seems to end.

Of course this means I am only left with one solution…it’s time for me to create a blog post to commemorate this seemingly HUGE issue, and make my thoughts known.

The answer is, I use both depending on circumstances.

For those who aren’t aware (shame on you), IRC (internet relay chat) allows the creation of “chatrooms” where folks can get together to share common interests. And thanks to many individuals and companies providing servers for the cause, it is free. Freenode has been around for more than 15 years.

IRC for all of it’s greatness is also fairly bland, and is pretty much just chat, and while many people use it there is still not much to make it “sticky”. For some this may be perfect because there is less “noise”, but for others there is not enough to warrant their attention.

Lately there is a new kid on the block called Slack.

Slack had a bumpy beginning as a failed startup. The app was likely doomed to be discontinued and never see the light of day as a private resource for companies, because nobody was using it. So as a last ditch effort the company decided to open it to the public, where it boomed to become a regular part of many projects by companies and open source projects and/or communities.

Not only does Slack perform the same activities as IRC, but it also includes the ability to integrate information from outside sources. For instance, via connectors you can pull in RSS feeds from pretty much anything that provides RSS, Tweets and Retweets by certain accounts, Facebook content, IRC content, Github comments and notices, news and announcements from virtually anywhere, and much more. In short, you can create a one stop portal with tons of information relevant to your “Team” which makes Slack a place where everyone can get together and share at a much higher degree than with traditional IRC.

So, what is the problem you may ask? The answer would be that Slack is not entirely free (though there is a free level), and if Slack were to change their pricing model or if they closed entirely all is lost. Communities, projects, and all these things created around this great platform disappears. There are no options to kick up your own server retaining the content, or any other alternative to carry on without the Slack company.

Those who are speaking up against using Slack for things like User Groups and OSS projects are voicing a valid concern because history and entire communities could be lost forever if Slack were used and evil things happen. This is a valid concern, and I was one of those people, until recently, which I will share in a moment.

However, on the other side of the issue is this: Though IRC is still growing and is not really being hurt by Slack, a vast majority of people simply don’t want to use it. Not because of anything malicious, but because a well set up Slack Team can become such a wonderful thing.

I organize the South Florida PHP User Group (SoFloPHP), and a long time ago I created the #soflophp chatroom on IRC Freenode. Then I promoted it heavily to the group of 800 members over and over and over again, and even posted it on the group website. Yet, at best we only had 2 or 3 people in the chat at any one time…BORING!

Recently a member, and now co-organizer, of the group asked if we could create a Slack team for the SoFloPHP user group. I was initially against it and voiced my concern as well as pointing out that there was already an IRC chatroom for the group. But the member was persistent, so I reluctantly agreed. And WOW!

Now to be fair, the Slack Team likely would have been a failure also because in Slack you need to invite every person into the team. There is not a way for folks to just join in, as with IRC. However, there is a handy app (Slackin) you can post on a server that allows people to enter their email address for an auto invite to the Team. We simply posted the app on a free Heroku instance and were off and running.

The problem of getting people into the Slack Team was handled, but how to make it better than IRC and ensure it was used? I then created a couple of Channels within the Team. One was for “Social” which I then created a couple of connectors to some relevant Twitter accounts. This kept fresh content, announcements, and relevant updates automatically flowing in to keep everyone informed and encourage discussion. Then I created a “Jobs” Channel to do the same, but with posts from our user group jobs board at And I also created a feed to the “Random” Channel from the Reddit /r/php hot board to infuse news and updates relevant to PHP. (Note: While Reddit can create an overload of posts, it does seem to promote chat around some of the posts in the General Channel.)

Now that we are using Slack as the user group communication portal (in addition to for the group management) we’ve noticed a much higher level of activity in the group. There are 50’ish members after only a couple of months, and the usage is growing instead of staying stagnant as the IRC did for a few years.

So the bottom line for me: Without paid services like our user group would not be what it is, and it seems that Slack has enabled us to become more active. I will continue using both, until they no longer work. Because the bottom line is that the group was created to serve the community, and Slack seems to do that for now.

Conferences interview php community Uncategorized

Adam Culp OSCON 2014 Interview

While at OSCON 2014 speaking about refactoring I gave an interview.  Here it is:

cakephp Conferences php php community programming Quick Tips workshop

Hack-a-thons are not “normal”

In life I tend to do things a bit strange.  Not what most would consider “normal”.  For instance, I run thousands of miles each year and have been known to run up to 100 miles in a single week. (Yes, run.)  I am a black belt in Judo, and enjoy being thrown to the ground, only to bounce up and get my turn bouncing someone else.  I love scuba diving, and feel a great sense of relaxation while deep under water with only the sounds of my own breathing and bubbles around me.  I’m the organizer of a PHP user group, and the organizer of a PHP conference.  My family and I take vacations where we hike 30 or more miles over a few days, and come home feeling rested.  To top it all off, I love to refactor code!

So, no, I do not live life in the “normal” zone.

However, when it comes to coding PHP I do things pretty much as you would expect from a senior developer.  Most of what I do is pretty normal, with only a small dash of interesting here and there to satisfy some exotic needs.  Of course I spend most of my time these days refactoring other people’s code, but even then it is pretty normal and usually falls into a normal pattern.

Then a couple weeks ago I had the great opportunity to organize my first hack-a-thon for the South Florida PHP User Group (SoFloPHP), and it sure was an eye opening experience for me.  Things kicked off pretty normal as most attendees split up into groups and started discussing their projects for the day, and the coding began.  I also had a small project I intended to work on, but ended up spending most of my day pulled between groups to help out in one way or another.  Questions on how to set up hosting, how to use Git version control and github, as well as how to use CakePHP.  I loved it, and really enjoyed helping others with their projects.

Later in the day I was helping someone with a Git workflow when he said something that hit me squarely in the face.  He said, “I do not get to use Git in my normal job, so it is nice to do it here.”  Now this is not the first time I have heard such a thing, but for some reason it really sunk in this time as I realized that hack-a-thons are not for “normal” things we do every day.  Instead we enjoy hack-a-thons and other social coding activities because it affords us a chance to learn new things, use technologies we would not normally get to touch, and to go beyond our “normal” things.

This opened up a whole new world for me, and from now on I have another way of looking at these social activities.  Attending activities like this are educational, enlightening, and door opening as well as presenting a social aspect that really helps developers advance their skills and networks.

I can’t wait until the next one.