Man, it seems like a week can't go by without some sort of drama in the PHP Community. I never thought I would be so close to one of the issues but yeah it was that sort of slow news week I guess. So this is my rant of the issue.

Let me prefix this post with some obvious disclosures, I am one of the organizers of the San Diego PHP User Group. I put a good amount of effort in the running of the group and take a tremendous amount of pride in what I do. With that said, the amount of work I do and pride I have in SDPHP pales in comparison to that of the head organizer, and friend John Congdon.

What Happened?
We had a member do presentation on Laravel 4. He did a great job. We had a great turn out, one of our larger turn outs, and there were a lot of questions, good general discussion. Really nothing out of the ordinary for a user group. Immediately after the meeting the praises started on how well the presenter did including post to our social streams, again not out of the ordinary. Speaking with the presenter you could tell he was a little disappointed that he might not have been able to answer all the questions thrown his way to his satisfaction. Anyone who has done public speaking or a presentation on topics know the feeling of being asked a question that you might not have an answer for.

Let's take a step back here, our group has some core members who stay very involved. We've built up friendship, helped each other find work, find solutions to problems, and find a good place to have a beer. We are on an IRC channel all day and will typically speak to each other everyday. Anyone is welcome to be part of this core and typically people will come and go. Like all tight groups, we will push each others buttons and joke with each other. We do it all in fun and when one of us crosses a line it is typically addressed pretty quickly and resolved. This particular situation probably would not have been any different except that it involved people outside our little group and became more public.

What The Hell Happened?
The presenter decided to follow up with the creator of Laravel 4, Taylor Otwell. I don't personally know Taylor but there are a couple of people in our group who do and from everything I've ever heard, he is a top notch guy and needless to say very well respected in the PHP Community. He is very accessible and helpful. This is where things start to go bad. Maybe out of frustration or just poor perspective but the presenter started to complain to Taylor about the group and how he was treated, feeling that he was being heckled. For the recorded that couldn't be further from the truth, he wasn't heckled and everyone was very respectful towards him. At this point everything is being contained in private IM chats between the presenter and Taylor.

Taylor starts to generalize and make some very negative statements about the group as a whole which were unjust but based mainly on the perspective of the what he is being told by the presenter. Whether Taylor felt he was just consulting a battered friend or if he honestly started to develop ill feelings towards the group wouldn't really matter, it would have all actually ended there in that IM window between two people.

Here is where things go off the tracks. The presenter then turns around and post screenshots of the IM chat to the SDPHP groups public IRC channel. Now we have a problem, and that conversation just became the business of everyone in the room. I personally addressed it publicly in the channel at the time.

So this next chunk is from the IRC Chat that followed after I saw the post of the IM conversation with Taylor.

[11:48am] shocm: CA***: WTF? Dude really? going to slam the group like that
[11:48am] CA***: ha
[11:48am] CA***: well
[11:48am] CA***: look man
[11:48am] CA***: i was asking
[11:49am] CA***: but the q's were kinda douchey
[11:49am] CA***: if you know its an intro
[11:49am] shocm: I'm calling Bullshit
[11:49am] a**: dude..... all of my questions were legit questions
[11:49am] CA***: ok
[11:49am] CA***: i was ill prepared
[11:49am] shocm: they were normal questions dude
[11:49am] shocm: You were fine
[11:49am] shocm: but don't slam the group if you feel like you couldn't answer something
[11:49am] shocm: its not an issue unless you make it an issue
[11:50am] shocm: No one cared you didn't know
[11:50am] shocm: But they were normal questions
[11:50am] CA***: i was actually asking
[11:50am] ka**: shocm I know, right?
[11:50am] shocm: No i don't think you were ill prepared. I think you were fine.
[11:51am] shocm: And you preference it with "Hey I am new to this and this is what I know"
[11:51am] CA***: http://cl.ly/image/3q2v3s031A0e
[11:51am] EchoBot: [ http://is.gd/pUjskG ] Screen Shot 2013-08-15 at 11.51.02 AM.pn...
[11:51am] shocm: we do that all the itme
[11:51am] wr**: Ya for an intro it was perfect
[11:51am] shocm: and the group is cool with it
[11:51am] CA***: now
[11:51am] shocm: but they don't know what you don't know so they ask questions
[11:51am] CA***: the elitism that i felt was what i felt w/ some of the Q's
[11:52am] CA***: perhaps i mis conciened that
[11:52am] CA***: but the point of the screens wads to show that hey
[11:52am] CA***: I am looking into the Q's
[11:52am] CA***: from the source
[11:52am] CA***: the framework is still cool
[11:52am] CA***: and so is TO
[11:53am] CA***: and the group for that matter
[11:53am] ka**: <3 [11:53am] a**: The questions i asked were questions that would allow people, who use other frameworks, to more easily integrate with this framework. I didnt bring up the fact that i didnt like facades in the actual presentation. [11:53am] shocm: Look, I am cool with us in the group give each other a hard time in fun, and I think we do a lot of that, but representing the group as a whole in a bad light is a crap move. CA***: i mean shit [11:53am] CA***: well [11:53am] CA***: I don't think I did that [11:53am] CA***: but [11:54am] CA***: I will share the video w/ him [11:54am] CA***: and everyone for that matter [11:54am] CA***: and we can all have our opinions [11:55am] ka**: nice, I want a watch [11:55am] CA***: yea [11:55am] ka**: the whole presentation? [11:55am] CA***: yea [11:55am] ka**: sweet [11:55am] CA***: perhaps sharing my convos was a bad move [11:55am] CA***: i wanted to show that hey i am looking into it [11:55am] CA***: but hey [11:55am] CA***: it is what it is [11:56am] a**: the direction your convo went with him was the issue [11:56am] CA***: true [11:56am] CA***: the chump comment was directed directly at you

I am not sure what the purpose of posting the IM conversation to the group IRC was. The presenter claims he was showing that he was following up on the questions but the discussion he posted was a back and forth with Taylor slamming the group. So now there are a lot of people offended by this when John gets online and catches wind of what is being discussed.

John has a ton of respect for the PHP Community and especially the leaders who help make up the PHP Community and he reaches out to them on Twitter. This is where the topic got a little more exposure and Taylor starts to learn a conversation he thought was private was publicly shared and discussion sparked up on Twitter on what was said. Chris Hartjes starts to address the issue. If you are not familiar with Chris, he's sort of an "in your face" guy who has been known to be a little abrasive but is someones opinion who I personally hold in high regard. He is brutally honest, with an emphasis on honest (and shit for that matter brutal).

Here are some of the threads from twitter

Taylor mentions in some of the conversations on twitter that he never even knew what group he was speaking towards and I think that he feels there is a general assumption that he was referring to the act in general, but he wasn't. He made negative remarks and generalized a group based on little information he had and as a leader in the community you simply can't do that because people take that shit to heart. Especially people like John and myself who feel like we work pretty hard to better the PHP Community by running groups like SDPHP. It sucks your private conversation was made public and I can appreciate. The presenter shouldn't have shared the chat, there is no question there, but at the same time he was having a conversation with someone he respected very much and that person was agreeing with him, so why wouldn't he share it?

The PHP community is very passionate and I think this only goes to show how quickly lines can get drawn over the most mundane topics at times. I am personally happy we have people like Taylor Otwell, Chris Hartjes, and John Congdon making PHP and the PHP Community stronger. They are held to a higher standard and should know the impact of their opinions and discussions to the group at large.

Really, that's it? Why did you waste my time?
I told you this was my rant, why are you still reading this anyways? For the record, the presenter did apologize for his involvement. Acknowledges it was a bad idea to share that conversation and that maybe his perception on the events was not a good representation of what actually happened. With that said, I truly hope this matter is done, that we haven't lost a member of the group and that we can all move on. I think I have, at least that is what I will say to wrap this up because it seems like the appropriate thing to say and I do feel better now.

If you are interested in more perspective on this:
John also did a Blog Post on his personal blog if you are interested to continue reading about this.

** FOLLOW UP - August 17, 2013**
Figure I would add this here instead of creating a new post. So it was a very eventful 24 or so hours. I won't bother to rehash but to say we had people step up and show us support, people step us and let us know how wrong they felt we were, and people step up and help us resolve the issue.

There are so many "for the record" statements I would like to make here but it really doesn't matter at this point. Everything we discussed is public. Bottom line, at the end of the day we got an opportunity to show Taylor Otwell that we are a group of passionate PHP developers. Taylor took the time out of his day to join our IRC channel and discuss any follow-up questions the group had about Laravel. He was very accommodating and even shared some insight.

I am very happy and appreciative that Taylor took the time to speak with us. As I've already told Taylor, our door is always open whenever he wants to drop by.

SDPHP – Google App Engine PHP

My presentation from tonight's SDPHP Meetup. Some great discussions. Was happy to see so much interest in Google App Engines PHP offering. I think we could have been there all night talking about this.

Thanks to Invisible Children for hosting. Also thanks to La Touraine, Inc for sponsoring the food.

A couple of people asked me what presentation software I was using, pretty basic actually. It's was Google Drives Presentation with the "Light Gradient" theme. Happy everyone enjoyed them.

Download Presentation Here

Encryption: It’s For More Than Just Password

Earlier this week John Congdon gave this talk at tek13, one of the top PHP Conferences. I didn't get a chance to attend the conference this year but I did get to see a preview of the talk a couple of times as John practiced his presentation on the SDPHP group. It's very informative and has me really looking forward to a couple new features that should be released in the next version of PHP version 5.5.

New SDPHP Mentoring Program

I am helping organize a mentoring program for the San Diego PHP User group. We officially announced the program at last nights meeting.

The SDPHP Group is always looking for what it can do to better strengthen the PHP community in San Diego. It is in this spirit we are launching a project to help facilitate PHP Mentorship. The purpose of this project is to give individuals looking for guidance and personal development with PHP related topics a clear avenue to find people willing to help them. As well as to help organize individuals who are willing to offer guidance and a support, by giving them network to allow them to give the best help possible.

Feel free to check out the full posting, especially if you are interested in getting involved with the project >> SDPHP Mentoring Program

Awesome Free PHP Resources: Web & PHP Magazine

I'm doing a little cross posting here to promote a post I wrote on the SDPHP site:

There are a ton of good PHP resources out on the net, both free and paid. Web & PHP Magazine is one of those resources that raises that bar from your typical smart developer posting blog articles on the weekend to a very polished, well-organized publication. Best of all, IT’S FREE!!

Rest of the story Awesome Free PHP Resources: Web & PHP Magazine.

15 Minutes with CakePHP

I recently gave a quick, and I mean quick, presentation on CakePHP to our San Diego PHP User Group. The presentation consisted of 5 slides of which only 2 were actually about CakePHP. The rest of my presentation was me building a quick blog which I might add I successfully did in about 15 minutes.

SDPHP CakePHP Presentation 1 SDPHP CakePHP Presentation

So the presentation went something like this:

But it probably goes without saying that 2 slides and a quick 15 minute demo really doesn't do a framework like CakePHP justice. CakePHP is an awesome framework with a ton features and of course you can always read the documentation yourself. However, there did seem to be a lot of interest in the command line interface I was using to build my demo code with.

I showed a lot of the functionality of the 'Console/cake bake' command. To recap a little.

> Console/cake bake
App : app
Path: /path-to/project/app
Interactive Bake Shell
[D]atabase Configuration
[T]est case
What would you like to Bake? (D/M/V/C/P/F/T/Q)

I also demonstrated you can run

> Console/cake bake all

and we saw all sorts of auto code generation magic happen.

But there are also other options I didn't touch one.

> Console/cake bake db_config
> Console/cake bake model
> Console/cake bake view
> Console/cake bake controller
> Console/cake bake project
> Console/cake bake fixture
> Console/cake bake test
> Console/cake bake plugin plugin_name

One of my complaints was that CakePHP didn't have built-in migrations. Cake does have a couple commands to make moving database around a little easier.

Now we take a look at Console/cake schema.

We start with

> Console/cake schema generate

This will generate a schema.php of the data in your projects database.

To then use this data on another project or database you run

> Console/cake create create

which uses that schema.php to import the schema.

You can also use the schema command to create a database dump file

> Console/cake schema dump --write filename.sql

Cake Shell also comes with a ACL Shell interface for managing and inspecting Acl databases. We spoke a lot about the need to run PHPUnit test and touched on how cake bake had the option to generate test files. As such the command line interface also includes

> Console/cake test

One of the more interesting commands, and one I have not tried using myself is the Upgrade command.

> Console/cake upgrade all

According to the Cake documentation "The upgrade shell will do most of the work to upgrade your CakePHP application from 1.3 to 2.0." which, if worked as advertised, would make updating projects to the latest version of the framework a lot easier.

The full list of shells available look like this

Available Shells:

[CORE] acl, api, bake, command_list, console, i18n, schema, test, testsuite, upgrade

Hope this perks the interest of some of you to give CakePHP a try.

Why aren’t you using git flow?

Attended another great presentation put on by the San Diego PHP User Group (which I am now a co-organizer of) around a workflow built off Git called Gitflow, presented by John Congdon (@johncongdon). Unfortunately the slides, as good as they are, don't capture all the great discussion and examples that were sparked up from the presentation but its a good start.

As I mentioned, I've taken a more active role is the SDPHP Group so if you have any question feel free to ping me. You can also keep tabs on the groups in the normal spots:
Twitter: @sdphp
Facebook: San Diego PHP
Meetup: SanDiegoPHP


A local PHP User Group is starting to get some traction here in San Diego again which makes me very happy. Last night we attend a pretty good presentation on MySQL help at the Oracle building here in San Diego. It was given by Dave Stokes who is the MySQL Community Manager there at Oracle and he was nice enough to share his presentation online.

http://www.slideshare.net/davestokes/san-diegophp via @slideshare