Vermont Code Camp

This year’s Vermont Code Camp will be on Saturday, September 11th, 2010 at Kalkin Hall on the University of Vermont campus. Last year’s event was a big success with 85 attendees and 19 sessions and this one promises to be even bigger and better! The second annual Vermont Code Camp will be a full day event bringing together technology community members, students, and professionals from around Vermont and beyond.

Vermont Code CampThere will be four rooms with sessions on .NET, PHP, Ruby, Python, Java, and more. Two of the rooms will have .NET topics and another will have sessions on free/open source software. There will be a fourth room where developers will be introduced to various technologies that they may not use every day. For example, are you a .NET developer? Come and learn about PHP, Ruby, Python, or Java. A Ruby developer? Learn about .NET, PHP, Python, or Java. You get the idea.

Vermont Code Camp is a great way to bring together technology user groups from around Vermont. The Vermont.NET User Group is the primary organizer of the event but we hope to see others from the Burlington, VT PHP Users Group (which I organize), the Vermont Ruby On Rails User Group, the Vermont Area Group of Unix Enthusiasts (VAGUE), the Green Mountain Oracle Users Group, the New England Adobe User Group, and the VT SQL Server Users Group there. Do you know of any other Vermont technology user groups? Please let me know so that we can invite them!

PHP Users Group Survey

I recently surveyed the Burlington, VT PHP Users Group to get an idea of what motivates people to be involved with the group. I got the idea from a blog post on the top 7 reasons why people join a user group community. This was certainly not a scientific survey and there were only 16 responses, but it still offers some insight that can be useful in planning user group activities. Here are the top reasons, in order of most important to least important:

  1. Network and make new connections
  2. Learn from your peers
  3. Share your expertise and knowledge
  4. Meet experts
  5. Find job opportunities
  6. Get solutions to problems

Burlington, VT PHP Users Group Survey Results

Zend Framework 2.0 and PHP 5.3 Web Applications SXSW Interactive Panel

I have submitted a panel on Zend Framework 2.0 and PHP 5.3 Web Applications for the 2011 SXSW Interactive Festival. Please consider giving this panel your vote. From the panel’s description:

Zend Framework is a free/open source web application framework. It can be used either as a component library or as a full-stack Model–View–Controller (MVC) framework. As compared to its 1.x counterparts, Zend Framework 2.0 is easier to learn, trivially simple to extend, and more performant. It is also easier to use just specific parts of the framework as needed. We will explore the many features of Zend Framework 2.0 including its tooling, functional testing, form, database, pagination, date, markup, navigation, and MVC components. Zend Framework 2.0 takes advantages of several new features in PHP 5.3 including closures/lambdas, namespaces, and late static binding. We will explore some of these new features to understand why PHP 5.3 is a requirement for Zend Framework 2.0 and how you can leverage these new features within your application itself. An example web application will be provided that you can use as a reference when building your own Zend Framework web application.

For those wondering, Zend Framework 2.0 is not out yet but SXSW is not until next March and Zend Framework 2.0 will most likely be released by then. The description above is based on the Zend Framework 2.0 Requirements and discussions on the Zend Framework contributors mailing list.

Burlington, VT PHP Picnic

On Sunday, August 15th the Burlington, Vermont PHP Users Group will be hosting a PHP Picnic. From the description:

The Burlington, Vermont PHP Users Group invites you to join us for a picnic at Oakledge Park. All are welcome but we’d like to extend a special invitation to members of other local technology user groups. Please bring a dish and/or beverages (potluck-style). If you’re not sure what to bring, you can ask on the mailing list. Please note that beer or soda may only be in cans or plastic, no glass and no kegs. Parking is available for $5 per vehicle ($8 for non-residents). The park is also accessible via the Burlington Bike Path.

Registration is free. If you’re in the Burlington area and involved in a technology user group then I hope to see you there!

CouchDB 1.0 Released

Apache CouchDB is a free/open source RESTful JSON document (NoSQL) database with map reduce views and peer-based replication. Version 1.0 was just released today and is 300% faster than the previous version and includes Microsoft Windows support, an authentication system, and flexible replicator options. The New York Times, ReadWriteEnterprise and InfoWorld covered the release. Couchio has a clever release announcement as well. I’ve been reading up on CouchDB since Matthew Weier O’Phinney‘s presentation on Document Databases at the last Burlington, VT PHP Users Group meeting and I may have some projects where CouchDB will be a good fit.

Document Databases

At tomorrow’s Burlington, VT PHP Users Group meeting Matthew Weier O’Phinney will be giving a presentation on Document Databases. From the meeting description:

NoSQL has become a new buzzword in web development—but what is it, exactly? We’ll look at the big picture to identify what types of NoSQL solutions exist, what sorts of problems they solve, and go into some specifics on CouchDB and MongoDB usage so that you can see how you might use these new tools within your PHP development.

The meeting will be at Office Squared in downtown Burlington from 6:00 PM to 8:00 PM tomorrow (June 24th, 2010) evening. Registration is free.

Update (6/24): The meeting has been postponed until next Tuesday, June 29th, 2010.

Magento Roundtable

Next week’s Burlington, VT PHP Users Group meeting will be a Magento Roundtable discussion. From the meeting description:

Over the last year, Magento has increased in popularity as a viable open source eCommerce platform for the mid to large scale online retailer. This rapid growth has lead to many questions on what has been fixed, what continues to be a problem, and how complex a system an eCommerce engine needs to be.

Have you used Magento? Are you considering using it for an upcoming project? Do you have a specific problem that Magento solves for you and would like to share your story? Join the roundtable and compare notes with others who have experience with Magento.

Meetings are open to the public via RSVP. You will have the chance to network and connect with fellow PHP developers.

To Participate:

  1. Register on Eventbrite.
  2. Sign up for the Burlington, VT PHP User Group list on Google Groups.
  3. Forward this link to anyone else you feel would be interested in this meeting’s topics.

TEK·X Day Three

Sadly, today was the final day of TEK·X. However, there was plenty of information and networking packed into the last few days. Marco Tabini and the rest of the team put on a top-notch conference. Being the last day, there were only three sessions. I started out with Jason Austin’s Lean Mean PHP Machine session where he talked about implementing software development best practices in a small team. Lorna Jane Mitchell then gave an excellent talk, without the aid of slides, called Open Source Your Career. Her talk provided a nice transition to the Community Roundtable session with Michelangelo van Dam, Lorna Jane Mitchell, Rafael Dohms, Ben Ramsey, and Keith Casey moderating. User groups were a big focus of the roundtable and I hope more people were inspired to start their own local PHP user groups.

TEK·X Day Two

It’s hard to believe tomorrow is the last day of TEK·X. Where did the time go? Today started with Matthew Schmidt’s 10 Developer Trends in 2010. He talked about agile development, browser standards, AJAX, security vulnerabilities, RIAs, touch interfaces, key/value stores, version control, cloud computing, and dynamic languages. While not a bad keynote, the topics seemed fairly basic and obvious given the audience.

Next up for me was Derick Rethans’ Xdebug talk. Xdebug is an extremely useful tool for PHP developers. I’ve used its stack trace feature as well as its code coverage analysis via PHPUnit. I’ve also dabbled with its profiling capabilities. The session introduced me to several other Xdebug features with which I’d like to experiment.

After that I had the pleasure of seeing Matthew Turland’s talk on New SPL Features in PHP 5.3. New SPL data structures in PHP 5.3 include stacks, queues, heaps, priority queues, and sets. Matthew provided test code that compared the performance and memory usage of each these new data structures to that of using PHP’s array functionality.

I skipped the first afternoon session to take part in the Hack Track which happened to coincide with Zend Framework’s May Bug Hunt Days. I was granted commit access and directly committed my first bug fix, a small change to make HTTP headers case-insensitive.

Others stuck around to fix more bugs while I went to check out Bill Karwin’s Models for Hierarchical Data with SQL and PHP. Examples of hierarchical data include categories/subcategories, bill of materials, and threaded discussions. Bill talked about four main approaches to storing hierarchical data in SQL databases: adjacency list, path enumeration, nested sets, and usage of a closure table.

The adjacency list is a naive approach that almost everyone tries first. Basically, each entry knows its immediate parent. The problem with this approach is that querying deep trees can be very inefficient involving many joins. Path enumeration involves storing an enumerated chain of ancestors in each entry. This can be very efficient and take advantage of indexing. However, there is no referential integrity with this approach. The nested set approach seemed a bit complicated. I don’t feel I can explain it properly here, so you’ll have to check out Bill’s slides if you’re interested in how this works. The closure table approach made the most sense to me and didn’t seem overly complicated. Not only do you store each entry, but you also store every path including those from the parent node to each descendant, those from each ancestor to its child node, as well as a reflexive reference from the node to itself.

My final session of the day was Travis Swicegood’s Building Real-Time Applications with XMPP, the Extensible Messaging and Presence Protocol. If you’ve use Google Talk then you’ve used XMPP. As a web developer, the request and response pattern in HTTP is ingrained into my thinking. However, XMPP is a very different creature in that it keeps a socket open during what can be a lengthy exchange of messages. While I don’t think HTTP is going away anytime soon, real-time applications involving potentially large numbers of publishers and subscribers (e.g. Twitter) are becoming more prevalent and XMPP is well suited for this environment.

TEK·X Day One

Day one of TEK·X here in Chicago got off to a great start with Josh Holmes’ Lost Art of Simplicity keynote. I agreed with pretty much everything that Josh had to say. As software developers, we’re often all too eager to start building a complex solution to what may be a simple problem.

Following are some short notes on the other sessions I attended today:

  • I’m always amazed at the Apache web server’s capabilities and Rich Bowen didn’t disappoint with his Apache Cookbook talk.
  • Joël Perras’ talk on Graphs, Edges & Nodes was a useful introduction to an important concept in today’s world of social networking and linked data.
  • David Strauss gave the audience a ton of helpful information about creating a scalable LAMP infrastructure.
  • Scott MacVicar talked about some upcoming features in the PHP language itself.
  • Bill Karwin gave a very clear presentation on SQL Injection Myths and Fallacies. This is a topic any web developer must have a good handle on since SQL injection is one of the most common security vulnerabilities.
  • Ben Ramsey talked about creating Desktop Apps with PHP and Titanium. I found this to be a very intriguing, albeit bizarre, technology.

The evening wrapped up with a social event and open bar sponsored by Zend and Echolibre. This was a great opportunity to catch up with others from the PHP community. I’m looking forward to another full day of sessions tomorrow.