The schedule for day 2 was entirely keynote/speaker based. Everyone attending was in the main auditorium listening to the same talks. The great part is everyone gets to hear the same things, and you don't feel like you're missing anything. The downside is that some of the talks may not be relevant or interest you. The other downside is they were so rapid-fire, that I'm having trouble separating them out in my head.

Most of the talks focused on front-end development or design. While interesting, they don't really apply to me. Also, most of the speakers were speaking specifically to others that did the same job as themselves. Overall, I felt energized by the talks, but didn't really come away with anything concrete to do.

My favorite speakers was Steve Smith from GitHub. He talked about all of the internal products they use to keep the team working efficiently and effectively. Plus, most of them were incredibly cool. The best one for me was the application they built to capture and aggregate all of the errors on GitHub. It gives them an immediate way to know if something is broken, and where it is. They don't have to wait for users to report a problem, they can just see that something is going wrong and address it. That may be the one tool I want to build, so that we can provide better service to clients.

Overall, I had a good time, but I definitely preferred the first day. The one question I did have, but couldn't get an answer for, even after tweeting is: Do you guys know how to post videos to Facebook?

Posted
AuthorMichael Cantrell
CategoriesConferences
Just like last year, when I went to the PHP Community Conference, I have come back with many things to think about. Oddly, many of them are the same. Maybe that is the purpose of conferences, to keep us thinking about the persistent problems we all encounter, and continue to attempt to address them. Don't let apathy or defeat overtake us. Keep pushing. Keep working. Keep innovating.

The most obvious difference between Converge SE and the PHP Community Conference for me was the workshop day. The workshops offered focused more on actual code and possible techniques than pie in the sky ideals. I definitely enjoyed the workshop day more than the speaker day. This was probably due to the focus of each of the sessions. Several tracks were offered (Mobile, Development, Front-end, Design, Business Dev, and Marketing). By providing a focus, the speakers were able to get into the technical details that a designer might not need or want to know (Development track).

I can only comment on the sessions I attended, but I found them to be very informative. As is always possible though, I did find some things to be disappointed in. I'll focus on the positives here though, because they outweigh the negatives. (I have a plan for a post to address the negatives not only at the conference, but in the general development community.)

The workshops definitely gave me an opportunity to learn about some things I didn't know enough about, and some clarity on things I did. For instance, the first session I attended was about Node.js. I had read about Node.js online, but didn't know anyone that had actually used it. The general idea is non-blocking code, so that you can serve out more requests concurrently. The system is built on JavaScript, and can integrate with client-side javascript quite easily. I came away with my basic assumptions of Node.js confirmed. It is an interesting technology with specific uses, but I don't feel it will be effective for the general use. More to come later.

The second session I went to was Mobile Design Process. This was definitely my favorite workshop, which is funny, since it probably doesn't affect me that much. The focus was on responsive design and changing the way we think about it. Rather than letting screen-size dictate the breakpoints, let the content dictate it. Basically I hadn't seen anyone change their design based on watching the content flow in the browser. Once you see it, the idea validates itself.

For the third session, I went back to development and learned about identity on the internet. This was definitely the most eye-opening session. The sheer amount of data that can be easily gleaned about someone on the internet is impressive. Web Finger being the most scary to me. Basically, from just an email address you can get social profiles, contacts, etc. Luckily, it appears to be opt-in, and I'm not opted-in. However, I have a gmail account that is from the original beta, long before Google added it. Who knows whether it is on by default or not. Yet another reason to be wary of what you share on the internet.

The final session of the day for me was Breaking Free from JQuery. I found this to be the least convincing. The basic argument was that JQuery was heavy and had many bad plugins. Both of these are fair accusations, but both are easily deflected. As far as JQuery being heavy, use the Google CDN. Also, it has to be big to work properly in all browsers. It's not perfect, but you work with the tools you have. Gzip and minify the file (done for you on the Google CDN), and you reduce the burden. The second argument that there are bad plugins is missing the point. Of course there are bad plugins. Every language/tool with any popularity is going to have that problem. Don't blame the language/tool for amateur hour. Blame yourself if you use one of them without doing your homework. Plus, once Ender.js was completely laid out for everyone to see, it has the exact same problems as JQuery and more, but since you pick and choose plugins, you can save maybe 20kB. The added headache, in my opinion, isn't worth it. If you're a massive company like Facebook, Google, Amazon, etc 20kB is a big deal, but most of the sites worked on can spend that time and money better. Infinite money = Superior optimization. Finite money = tough choices.

Overall, the first day was great. Even though I disagree with some of the speakers talks, I still respect them for getting up there and giving them. Speaking at a conference has to be difficult and takes some courage.
Posted
AuthorMichael Cantrell
CategoriesConferences
The PHP Community Conference was my first time attending a conference. I definitely enjoyed the experience and will go again. Honestly, I should have gone to a conference earlier in my life, because I feel like I learned so much about development and myself.

The first thing I learned was a renewed sense of humility. In my little bubble I felt I was near the top, but outside of that bubble, I realized I am not quite so hot. There are people doing amazing things with new development, profiling, testing, deployment, etc. I, meanwhile, push out predominately CMS sites with the occasional custom site. The custom sites aren't anything to laugh at, as they require some expertise, but nothing on the scale of what I saw. This was a truly sobering moment.

That brings me to my second feeling, motivation. I feel energized to go out and do many of the things I heard discussed. I want to act on this new knowledge to improve myself and the company I work for. We can and should do better than we are. Beyond that, I need to get involved in open source; I need to start filing bug reports; I need to start posting fixes; I need to contribute to the community as a whole. Up to now I have been a freeloader, the time has come to give back.

With that motivation, I want to really start a company. I have tried and failed in the past, but I need to learn from those mistakes. I always tried to go it alone, and I've realized that won't work. I need someone to work with me and provide the pieces of the puzzle I don't have. Luckily, I have that person now, and we're in the first steps of that dream. I have a doubly renewed motivation to move forward. I'm going to stop waiting for certain things to get done and just go for it. I need to stop treating things like they are a single chronological thread and start multithreading (pardon the pun). Stop thinking, and start doing.

I also have the motivation to start trying to speak. I have wanted to be a conference speaker for a while now, but having never been, I didn't know quite what that entailed. I never felt like I had anything interesting to say, and I probably didn't. That means I need to go out and do something worth talking about. From there, I'll gain the experience and the clout to be a speaker. Maybe one day I can provide the inspiration to someone else to get up and do something new.

On my drive home I had to make the choice of what I would take away from the conference. I saw two options: become depressed and resign myself to going nowhere or become energized and go out to do something great. I feel that I've chosen the latter and hope that time will see that to be true. Words are cheap, actions are rich.
Posted
AuthorMichael Cantrell
CategoriesConferences
Day 2 turned out to be amazing just like day 1. The talks were all focused on stories in the context of project evolutions.

The opening Keynote by Rasmus Lerdorf was great. He is the guy that got PHP off the ground in the 90s. He talked about performance measures that can be taken in PHP, and things that all developers should be doing, but most don't. He focused in on what PHP is and isn't.

Next I attended Drew Mclellan's talk in Perch. He discussed how the project came about, his successes, his failures. He talked about how they set a goal to make sure all support requests were unique. If a support request came in the goal was to fix the problem not just for the person asking, but for all future users.

After that I went to Paul Reinheimer's talk on XHProf and Wonderproxy. He talked about getting Wonderproxy started, and the kinds of projects it could be used for. Basically the service provides proxies for developers to use to test features in their code that rely on GeoIP data. For instance, running credit card transactions through certain vendors based on the user's country of origin. It was an interesting product, and he talked about some of the difficulties in getting a company started. One of the main problems he has to deal with is SEO. There are an enormous number of sites hosting garbage about proxies just to raise their pagerank, and he said he isn't willing to do that, because he wants to make the web better, not worse. I really respect that. For XHProf, he talked about some of the amazing profiling that can be done. Basically, XHProf counts all of your function calls in a run, and shows you graphs with all of the data. You can even compare previous runs to new runs, basically giving you historical profiling over code changes. This is great because it will give you a real sense of whether your change was good or bad for performance. Definitely a tool I'm going to look into using.

The third talk of the day for me was Laura Beth Denker's talk on the evolution of testing at Etsy. She went into some great depth on the testing tools and methodology used, as well as the basic rollout system. Essentially, Etsy uses a Continuous Integration method, and they were rolling out 3 changes a day 6 months ago. Over the last 6 months they have altered their procedures to increase the number of tests from 1500 to 7000, while decreasing the runtime of those tests from 30 minutes to 7 minutes. This has allowed them to release 40 changes a day to production. That is an amazing turnaround. The talk has gotten me thinking about how we handle rollouts at my current job, and our system is woefully inadequate. Additionally, I'm going to enforce some strict rules on myself for my startup to ensure a great process from the beginning.

For the last talk I went to, I'm not really sure what to say. The focus was on how to tell stories and convince users of something, but it was somewhat dampened by NDA constraints. I'm sure Marcel Esser had some cool things to talk about, but just couldn't.

The closing keynote was given by Terry Chay, and it was probably my favorite talk of the conference. He definitely had the engagement of the audience. He talked about some of the great things that PHP can do, but also talked about some of the things it currently can't, and what we can do to fix it. We need to focus on getting PHP into the cloud, because Rails currently does it better. I definitely felt like he ended the conference on an inspirational note.

I'll have a wrap-up some time later today or tomorrow with my over-arching thoughts on the conference. I had a lot of time to think on the drive back last night, but I'm still trying to piece together what I want to take away.
Posted
AuthorMichael Cantrell
CategoriesConferences
I'll make this quick, as the keynote of the conference should be starting in about 30 minutes.

Yesterday was day 1 of the PHP Community Conference, and so far it has been a blast. There were four speakers in two time slots, so I had to choose two. I ended up choosing Lorna Mitchell's talk on API design and Helgi (can't spell his last name)'s talk about front end caching. Both were very informative, and mostly confirmed things I was already aware of.

Lorna focused in the very basics of API design. She covered the use of HTTP status codes as the very first indication of a request's result. That was one thing I hadn't thought about using. She also talked about using the HTTP headers sent to determine the content type requested and other information. While this sounds great in practice, I'm not sure about the practicality. For the latest API I've built, Keno To Go, the requests were all coming from Flash or JavaScript. I don't know if JavaScript can specify certain headers like that. Definitely worth looking in to though.

Helgi's talk on front end caching mostly validated many of the things I already knew. Spiriting, combining JavaScript files, combining CSS files, compressing images, etc. One thing that was very interesting was the different methods that can be used to expire cache. Frequently we've had trouble with replacing images that then don't expire client-side immediately, so the client complains. Obviously you can change the filename, but then you have to change all of the references. You can also use query strings with some unique string each time, such as the timestamp, but then you never cache the image. The most interesting method talked about was the use of URL rewriting to make the image path different, without actually changing the file path. I like this idea the best, because you can change the file path in all of the locations you can find, but if you miss one you're still ok.

That sums up day 1. Today there are 8 speakers with an opening and closing keynote. I'm planning on going to the "Original Hypertext Preprocessor", "XHProf and Wonderproxy", "Is It Handmade Code If You Use Power Tools", and "From Earth To Jupiter With NASA" talks today.
Posted
AuthorMichael Cantrell
CategoriesConferences