Sunday, May 23, 2010

Looking back at Tek-X

When you go to an IT conference, you expect them to be informative, but not too much so you have a relaxing time while attending it. Well, this year's Tek-X (pronounced tek ten) was a "little" bit more then just informative and relaxing: 1 tutorial day, 3 full days of top sessions by the community's best speakers, workshops (hackatons) and hallway sessions were the ingredients to overload your brain while the social events after the sessions drained you from any energy left.

What follows are my chosen talks and my personal experience that these talks has given me. What's listed is not the complete schedule, since there were too many sessions during Tek X, most of them all at the same time (see schedule).

Tuesday, May 18 2010 - Tutorial days
With the rapid speed technology and processes change, you don't always find time to catch up with the flashy new bells and whistles that might make your job easier. These tutorial sessions are there just for that reason: catching up on new, innovative ideas and products.

Kristina Chodorow (@kchodorow) with her tutorial "Converting Your MySQL App to NoSQL with MongoDB" introduced the audience to a new way of storing data that's more flexible and with better performance compared to traditional databases. It has given me enough food for thoughts for learning more about this NoSQL system.

Allegedly it was (one of) Kristina's first appearances on a conference stage and she pulled it of very well having an interactive session with the audience. The quality of her tutorial and her knowledge on the subject made me forgive the "euhms" and the nervous tremble in her voice. I'm positive that she'll get over those "beginners quirks" once she's more comfortable talking to a large crowd.
Slides are not yet available at the moment, but do check out her pre-tek webcast at http://www.phparch.com/2010/04/27/webcast-mongo-scale/.

Matthew Weier O'Phinney (@weierophinney) and Lorna Jane Mitchel (@lornajane) were educating the audience on best practices with their tutorial session "PHP Best Practices". I had already seen this session before, but the both of them keep adding more interesting ideas and better approaches so it's a session I didn't want to miss.
Slides are available at http://www.slideshare.net/lornajane/best-practices-tekx.

Wednesday, May 19 2010 - Day 1
Excellent keynote "The Art of Simplicity" was given by Josh Holmes (@joshholmes), technology evangelist at Microsoft, where he was re-educating the crowd about keeping things simple. And he did a lot of damage swinging his clue bat, but he was right the whole time. Don't over-engineer challenges when the solution is right in front of you and perfect in it's simplicity. If you're organizing an IT conference, make sure to get Josh right out there on main stage !
Slides are available at http://www.slideshare.net/joshholmes/the-lost-art-of-simplicity.

Eli White (@EliW) presented "Anti-spam and anti-gaming" about the challenges you face when you have public facing web applications in regards to spam. In his excellent way, Eli showed simple hints and tips on how to fight off spam, while maintaining a superb user experience. Great content for anyone out there facing similar challenges.
Slides are available at http://eliw.com/presentations/tek-2010/tek-2010-antispamgame.pdf [PDF]

Lorna Jane Mitchel (@lornajane) presented "Subversion in a distributed world" where she compared the simple model of Subversion to the most common distributed versioning systems (GIT, Mercurial, Bazzaar) and how they all have pro's and con's in their distributed nature. An excellent talk that convinced me to at least try-out GIT, just to get a taste of it.
Slides are available at http://www.slideshare.net/lornajane/subversion-in-a-distributed-world.

Travis Swicegood followed right after Lorna's talk with his session on "Getting GIT", where he (the author of the book "Pragmatic Version Control with GIT") showed the many capabilities GIT offers in a distributed way. He also offered a more in-depth session on GIT during the Hackaton the next day, which of course I attended. A great session that provides a solution for those that often work in closed network environments or have no network at all (like in an airplane). Another session that convinced me to look at and apply GIT.

Eli White (@EliW) presented "Code & Release Management" where he went into detail about various RM strategies offering pro's and con's with each strategy. It's a real challenge sometimes to find the right strategy in order to maintain your code base and I feel Eli has done a great job explaining each solution in his own pragmatic way. I learned a lot just by being there and listening to a true expert.
Slides are available at http://eliw.com/presentations/tek-2010/tek-2010-coderelease.pdf [PDF]

Thursday, May 20 2010 - Day 2
Keynote of the day was given by Matthew Schmidt (@mpschmid) called "10 Developer Trends in 2010" where he gave the audience an insight to what he discovered at DZone. Although his predictions were basically the same trends followed by the mainstream PHP community (and much of it wasn't really shocking), it was nice to see the same trends appeared on major developer resource sites.
Slides are not yet available.

Next up was Derick Rethans (@derickr) with his insight session on "XDebug". As he is the creator of this powerful debugger tool, it comes without saying he excels at presenting the insides of XDebug. If you really wanna know more about XDebug, don't go looking for the slides on internet but make sure you're at one of his sessions on other conferences ! That's where you'll find the true value of his talk.

Matthew Turland (@elazar) had taken over the torch to promote SPL (the Standard PHP Library) with his session "New SPL Features in 5.3". His session not only gave us an idea on what's new in PHP 5.3, but he also made sure we got to know why we should choose for SPL. Because it's quicker and more memory friendly. After each specific SPL feature, he included graphs about cpu and memory usage to give us a more visual idea how SPL worked with various amounts of data.
Slides are available at http://www.slideshare.net/tobias382/new-spl-features-in-php-53

In the afternoon I attended hackaton sessions with Travis Swicegood who gave us an real good insight on how to use GIT with a Subversion repository. He showed us how to get code from an SVN repository into GIT, how to use GIT on keeping track of modifications in main branch or sub-branches and how to push those changes back into SVN. It all was a bit quick, but I've made some notes and once I've figured it all out, I'll post my findings right here at my blog.

Since it was also Zend Framework Bug Hunt Day, I stayed the rest of the afternoon in the hackaton sessions to fix bugs listed in the Zend Framework Issue Tracker.

Friday, May 21 2010 - Day 3
Ben Ramsey (@ramsey) was getting things clear in his session "Caching with Memcache and APC" where he described what the benefits are of using a caching engine and showed examples on how to use Memcache and APC.
Slides are available at http://www.slideshare.net/benramsey/caching-with-memcached-and-apc.

Lorna Jane Mitchel (@lornajane) presented "Open Source your Career", which was basically the best session given at Tek-X. She used no slides, no fancy graphics. No, she stood there in front of everyone explaining how open source could boost your career. She explained a bit about her own career experiences, but streched out to many people who use open source daily and build a career out of it.
For those of you who weren't at this session, I've heard she's giving this talk again at the Dutch PHP Conference (DPC) next month. If you want to boost your career using open source, get yourself a ticket and make sure you're there !
No slides were used in this presentation.

The community round table was the final session for me during Tek-X, basically since I was up front in the panel alongside Lorna Jane Mitchel (@lornajane), Rafael Dohms (@rdohms) and Ben Ramsey (@ramsey). Moderation was done by the King of Uncon, Mr. Keith Casey (@CaseySoftware).
This whole round table session was a motivational discussion on how to (re)start a PHP User Group in your geographical area, what pitfalls there were and how to get people come to your meeting. People that were attending showed real interest on how to organize and run a user group and how to get sponsorships. I also found that there were already a lot of people who attended our previous round table discussion and had successfully started a user group.
Side note on this: between Tek-X and the publication of this review, two people who attended our session started their own user group. So, a big hand to Chance Garcia (@ChanceGarcia) and Jeremy Kendall (@JeremyKendall) and to others good luck in your setup !
No slides were used in this talk.

Closing keynote was provided by Mr. Marco Tabinni who told us in not so many words that the community drives PHP and PHP the community. #communityworks

Tek-X was an awesome experience ! If you weren't able to come down to Chicago for this event, try better next year. Tek-X seems to me the place where ideas are born, communities are formed and friendships rise. I am happy I was part of it and I'm hoping to see my old and new friends next year for Tex 2011 !

If you're organizing an event, conference or user group meeting, be sure to have it registered at Joind.in so attendees can give valuable feedback to the speakers and other event organizers can see which talk they can accept. For those who were at Tek-X, don't forget to rate your sessions !

Another interesting feature few of the speakers used, was the QRcode barcode, which is basically a 2D barcode containing a URL, a message, an e-mail or a phone number. Using a tool on your mobile phone, you can quickly register the url for the joind.in rating, the link to the page or twitter account and so much more. You might want to try it out. This barcode on the left points back to my main site.

Thursday, May 13, 2010

Book review: Expert PHP 5 Tools

Two weeks ago I received a copy of Expert PHP 5 Tools with the request if I could review this book. Improving development processes using PHP tools is something I promote myself (see my slides about PHP Power Tools on Slideshare), so I could not refuse this request.

The book
Expert PHP 5 Tools is a new book from Packt Publishing written by Dirk Merkel. In 10 chapters Dirk introduces the reader with several PHP tools that will improve development processes and quality of code from a single developer or a team of developers. From simply syntax checking and code validation to automated testing and deploying, each chapter discusses each tool in detail and contains sample code to put the theory into practice.

Besides describing in detail tools to validate (PHPLint and PHP_CodeSniffer), test (PHPUnit), debug (XDebug) and manage PHP codebases (Subversion) and improve collaboration between developers, Dirk has dedicated a whole chapter on using UML to describe and structure your applications, a whole chapter on using Eclipse IDE with the PHP Development Tools (PDT) and continuous integration with Cruise Control and PHPUnderControl using both Ant as Phing to continuous build and deploy your PHP projects.

I must say I was impressed by the detailed description of each tool and how Dirk used simple examples in order to show the reader how to use the tool in the best possible manner. I found this book an easy read since I already had experience with the tools Dirk describes in the book, but even if I had not yet worked with them, the examples he has given in each chapter are of great value and give the reader a good insight in what each tool does and how it responds.

Conclusion
With PHP becoming increasingly important as a technology within corporate application development and enterprise development structures, using automated tools to improve quality have become very important for many developers.

Expert PHP 5 Tools is a must-read book for every PHP developer involved in professional PHP application development and wants to improve the quality of his work. Also for PHP development teams, this book will convince the reader why it's important to focus on coding standards, unit testing, automated documentation and even automated builds to structure each step in an automated, repetitive way.
Creative Commons License
This work is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 License.