Currently browsing php


DCPHP 2008 Slides

Wed, 4 Jun 2008 16:32 UTC

As promised to the attendees of my talks, I have posted the slides for my presentations on SlideShare.

Distribution and Publication With Atom Web Services

The Web is transforming into a platform for distributed applications. Rich clients connect to web services to retrieve and store data. The Atom Publishing Protocol provides a common language for these services. Ben Ramsey introduces AtomPub, explaining how it can form the foundation of any web service for publication and distribution of data for enterprises down to small businesses.

Give Your Site a Boost With Memcache

Today’s high-traffic websites must implement performance-boosting measures that reduce data processing and reduce load on the database, while increasing the speed of content delivery. One such method is the use of a cache to temporarily store whole pages, database recordsets, large objects, and sessions. While many caching mechanisms exist, memcached provides one of the fastest and easiest-to-use caching servers. This talk will cover memcached and the memcache extension for PHP from setting up a memcached server to using it to provide a variety of caching solutions, including the use of memcached as a session data store.

Comments 2 Comments »  Permalink Permalink  Tags Tags: , , , , , , , , ,


Stefan Esser: A Most Influential Person in IT

Mon, 14 Apr 2008 1:01 UTC

I subscribe to eWeek. Well, you could hardly call it “subscribing.” They send me the magazine for free, which I think they do for all of their “subscribers.” Nevertheless, I receive a print copy of the magazine each week. Of course, last week was no exception.

I took the April 7th issue out of my mailbox and was going to quickly toss it to the side on my desk, as usually happens these days, but the cover caught my attention with the headline “Top 100 Most Influential People in IT.” This list is put together each year by the editorial staffs of eWEEK, CIO Insight, and Baseline. Naturally, I had to open it to see if any members of the PHP community made the list. The obvious names I was thinking were Rasmus Lerdorf, Andi Gutmans, and Zeev Suraski, the people who brought us the world’s most popular scripting language and who helped bring it to where it is today.

Naturally, the usual suspects top the list: Larry Ellison comes in at #1, Steve Jobs at #2, and Steve Ballmer at #3. Larry Page and Sergey Brin, oddly enough, lag behind, and both appear at #10 on the list. Scanning the list, it’s interesting to note that Linux Torvalds appears at #15, Tim Berners-Lee at #35, Jimmy Wales at #57, and Dave Winer at #96 (with clearly the wrong picture).

However, what I didn’t expect to see was who came in at #60 on the list: the PHP community’s advocate for fixing security vulnerabilities in the PHP core, Stefan Esser. Here’s what eWeek had to say about Stefan:

Esser’s “Month of PHP Bugs” project thoroughly exposed the insecure nature of the widely deployed PHP language and forced a rethink of security in the open-source world.

Congratulations, Stefan, on making the list!

No other member of the PHP community or development team appears on the list.

Comments 4 Comments »  Permalink Permalink  Tags Tags: ,


PHP TestFest 2008 and Atlanta PHP

Mon, 31 Mar 2008 18:03 UTC

Yesterday, php.net announced TestFest 2008!

The PHP-QA team would like to announce the TestFest for the month of May 2008. The TestFest is an event that aims at improving the code coverage of the test suite for the PHP language itself. As part of this event, local User Groups (UG) are invited to join the TestFest. These UGs can meet physically or come together virtually. The point however is that people network to learn together. Aside from being an opportunity for all of you to make friends with like minded people in your (virtual) community, it also will hopefully reduce the work load for the PHP.net mentors.

All it takes is someone to organize a UG to spearhead the event and to get others involved in writing phpt tests. The submissions will then be reviewed by members of php.net before getting included in the official test suite. Please visit the TestFest homepage to get additional details on the TestFest on how to get involved, either as a UG or by setting up the necessary infrastructure.

Atlanta PHP will be taking part in TestFest 2008! As a preview for our May 1st meeting, we will have a workshop format catering to two different groups of developers. For beginning PHP developers, we will help you get started developing PHP applications by helping to set up your environment and teaching a few of the basics. For intermediate-to-advanced developers, we will discuss how you can assist the PHP development community by writing phpt tests. More details to come in the future.

Tell your PHP user group organizer about TestFest 2008 and get your members started writing PHP tests today!

Comments 2 Comments »  Permalink Permalink  Tags Tags: , , , , , ,


Making Money With PHP and Google’s Summer of Code

Sat, 29 Mar 2008 1:10 UTC

Are you a student or do you know of a student who wants to make money this summer flipping bits instead of burgers? Furthermore, does said student want to make money programming for the PHP project? If so, then the Google Summer of Code and the PHP project provides just the opportunity.

I’m posting this for two reasons: 1) as a favor to Elizabeth Smith and 2) because I’d really like to see some interesting projects go to benefit the PHP community. In the past, the Google SoC has had some interesting PHP projects (2006, 2007), and this year is no different with a slew of potential projects, some of which I find very interesting.

For the math aficionados, there’s an idea for algorithmic optimizations in the language. For Unicode lovers, there’s the suggestion to continue the work to update every function in php-src, giving full native Unicode support to PHP 6. For those who like working with XML, there’s work to be done on PhD, the PHP-based DocBook renderer. OOP buffs will enjoy building support for anonymous functions, delegates, return type hinting, and property type hinting into the language. The list goes on.

And, if none of these interest you, you’re welcome to submit your own project idea. If you want an idea from me that’s not listed on the wiki, perhaps you’d be interested in doing some C# development to implement PHP on Microsoft’s DLR (more info on the DLR).

So, there’s money to be made and cool projects to work on. Plus, it’ll look good on your resume.

The only problem is the deadline. It’s March 31st! So, submit your proposal today!

Comments No Comments  Permalink Permalink  Tags Tags: , ,


PHP Appalachia 2008

Thu, 28 Feb 2008 6:19 UTC

Elizabeth Naramore announced PHP Appalachia 2008 earlier this week.

WHAT IS PHP APPALACHIA? A PHP unconference nestled in the Smoky Mountains, for those who like to camp or stay in a cabin, enjoy spending time with friends, and talking about PHP. As before, we will have a few presentations, but a lot of the time will be flexible and spent how the group sees fit at the time.

Details are still being finalized. Keep watching Elizabeth’s blog for more information, and I’m sure someone will update http://www.phpappalachia.org/ in the near future. :-)

UPDATE: Keith Casey also blogged about it. I was out of town for several days, so I missed lots. :-D

Comments No Comments  Permalink Permalink  Tags Tags: , , ,


Supporting PUT & DELETE in the Zend Framework

Wed, 27 Feb 2008 18:51 UTC

Creating a RESTful Web service is not simply about serving read-only content through HTTP GET requests. It’s about using the full range of HTTP’s constrained interface to allow clients to consume or create resources within your service. Take a look at CouchDB, for example. Its initial releases look very promising, and the server accepts GET, POST, PUT, and DELETE requests to manipulate resources in the system. I can’t wait until the project implements authentication and authorization features; then, it will look much more attractive for real-world use.

But I digress…

I’ve never been too happy with the Zend Framework’s RPC-based approach to creating RESTful Web services with Zend_Rest_Server, even though I have seen some good discussion about using routes and Zend_Rest_Server to create a resource-oriented architecture. Rather than get too in-depth about this issue, I’ll just point to this thread and save my full thoughts on Zend_Rest_Server for another day.

Suffice it to say, Zend_Rest_Server is not focused on resources but, instead, what you can do with those resources (procedures, methods, verbs) and also assumes you’re only ever going to provide an XML-based, read-only REST service. With REST, this is not the case, and, with the publication of the Atom Publishing Protocol (a protocol that follows the REST architectural style) as RFC 5023, now is the time more than ever to grasp the read-write capabilities of the RESTful Web.

But I digress (again)...

I’ve recently been wrapped up in an effort to design and implement a RESTful API using the Atom Protocol for a project at work. We are using the Zend Framework as the underlying framework for the project, so, in order to follow the Atom Protocol, I needed to support the HTTP methods PUT and DELETE. Apache can handle GET and POST easily because the request itself tells Apache the resource to use when processing the request. With PUT or DELETE, the resource identified by the request may not even exist, so Apache needs you to specify a script to process the request. To do this, I added the following lines to my virtual host configuration:

# PUT and DELETE support
Script PUT /index.php
Script DELETE /index.php

Now, all PUT and DELETE requests are handled by the Zend Framework bootstrap script and the dispatcher handles them in the same way it handles GET and POST requests.

To further support other HTTP methods and the REST architectural style, I’ve proposed the addition of the following methods on the Zend_Controller_Request_Http class:

  • isGet() – Was the request made by GET?
  • isPut() – Was the request made by PUT?
  • isDelete() – Was the request made by DELETE?
  • isHead() – Was the request made by HEAD?
  • isOptions() – Was the request made by OPTIONS?

Congrats Costa Rica PHP!

Wed, 30 Jan 2008 19:33 UTC

Last night, Costa Rica PHP held their first user group meeting. A whopping 37 developers attended! While I’m excited to see any new PHP user group form and be successful, I’m especially ecstatic about Costa Rica PHP because it’s headed up by two of my colleagues from Schematic: Pablo Viquez and Karolina Hidalgo.

It sounds like they have a very active and vibrant PHP developer community in Costa Rica, and they’ve found two very supportive universities that have offered to host their meetings and events. I wish that every PHP user group could find sponsors willing to provide computer labs and even bring in outside speakers!

Pablo writes the following about their first meeting:

I’m very pleased to announce that we had a great response from the PHP developers here in Costa Rica. We held our first meeting in the University of Costa Rica (UCR), with a total of 37 developers of different backgrounds and skills. At the end of the meeting everyone was very excited and happy with the initiative of the Costa Rica group, and willing to contribute.

We’ve received support from two universities who want to host our monthly meetings, they offered the opportunity to not just do monthly meetings but use their labs to have workshops and even offered the support to bring speakers from other countries.

Congratulations, Costa Rica PHP on a successful first meeting, and here’s to many more successful meetings!

Check out the Costa Rica PHP website at http://www.costaricaphp.org/.

Comments 1 Comment »  Permalink Permalink  Tags Tags: , , , ,


Goals for 2008

Fri, 4 Jan 2008 4:38 UTC

Yesterday, Cal Evans blogged about his goals for the New Year, and a lot of them sound like the same things that have been going through my mind as my own personal goals. Well, I normally don’t make resolutions, and when I do think of things I want to accomplish, I almost never write them down or keep track of them, which inevitably leads to failure.

So, this time, I’m jotting them down here as much as a way for me to keep track of them as it is for me to share with others. Many of these sound like echoes of Cal’s post, so I apologize. Get over it.

  • Lose 20 lbs.
    As Cal mentioned in his post, this is invariably the New Year’s Resolution of resolutions. Back in 2006, I did manage to lose 20 lbs. using Weight Watchers online. However, I’ve gained about 10 of those pounds back, and, so I’d like to lose 20 lbs. and get down to my ideal weight.
  • Work out and eat healthy meals
    This follows closely along the heals of my resolution to lose weight. It’s all part of a healthier lifestyle that I’d like to adopt.
  • One blog post per week in 2008
    This is a direct echo of one of Cal’s goals. In my mind, I was thinking that I’d like to do at least two posts a week, but I don’t think I can commit to that, so I’m going to try for one post a week. This isn’t something that I have to do, but something I want to do, especially since I do have a lot of topics always running through my head to blog about. I just need to put forth the effort and make the time to write.
  • Write one new article per month
    Now, I’m beginning to sound like I’m copying Cal’s post entirely, but it’s true. This is a goal that I’ve been mulling over for some time now.
  • Be a active contributor to the PHP project
    This year, I would like to step up my contributions to the PHP project by contributing more to the documentation, working on several PECL extensions, and submitting some patches to the PHP core.
  • Jumpstart a variety of PHP community projects
    There are a handful of PHP community projects in which I am involved that are somewhat stagnant. I want to do my part to get them rolling, active, and healthy again.
  • Learn a new language
    I have my sights set on German. By the end of this year, I’d love to be able to carry a simple conversation in German.
  • Be more organized
    I used to carry around a Moleskine notebook. Actually, I still do, but I rarely write in it, and I find it a difficult instrument to organize my notes and ideas. Instead, I’ve created a personal wiki in which I’ve begun logging thoughts, notes, TODOs, scrap writings, research, etc. I want to expound on this and continue to record my observations and use the wiki to help organize my life.
  • Kill my TODO list
    I have a TODO list a mile long of things that need to be done around our house/yard. I want to finish up everything on the list this year.
  • Pay off debts and begin investing
    To this end, I’ve already opened up some high-yield investor checking and brokerage accounts, and I’ve been working to make a dent in my debts. By the end of the year, I want to have most of my debt paid off, and I’d love to have a clear investment plan in place.
  • Work towards finishing my Masters
    Finally, I started a Masters in Applied Computer Science program a few years ago, but I never finished. I’d like to return to school later this year and begin working towards finishing my degree.

    So, those are my goals. They seem pretty daunting at this point, but at least I’ve got them jotted down somewhere, and now I can keep up with them. In a year, I’ll check back and see what I was able to accomplish. I hope I’ll be able to say I met all of my goals, but only time will tell. I’ll need to quit being so lazy first. :-)

    Comments 7 Comments »  Permalink Permalink  Tags Tags: , ,


PHP Advent Calendar

Wed, 12 Dec 2007 16:33 UTC

I thought I’d take a quick moment to promote myself by making a meta-post about Chris Shiflett’s latest PHP Advent Calendar entry from me.

I’m often asked how one can get involved in the PHP community, so I decided to write my entry about just that, offering suggestions for how one can get help from the community, get connected to the community, and get involved in the community by giving back.

Credit for the idea goes to Brian DeShong, who recommended I write it. Thanks, Brian! :-)

I hope you’ll find a way to get connected and involved in, in what is my opinion, the greatest community of any programming language.

Happy Holidays and Merry Christmas!

Comments No Comments  Permalink Permalink  Tags Tags: , ,


Funcaday.com Dashboard Widget

Tue, 11 Dec 2007 17:29 UTC

» Download the Widget Now!

NEW RELEASE! I’ve released version 1.1 of the funcaday.com dashboard widget. This release provides for better interoperability with Paul’s service and uses his new JSON interface instead of the RSS feed.

Last night, I was vigorously attacked by a virus of some sort. My body ached, I tossed and turned all night, and I got no sleep. It was not fun. This morning, taking a sick day and feeling much better with the help of meds, I decided to do something I haven’t had the luxury of doing for a while: catch up on blog posts.

While reading through news and blog entries, I came across a post on Zend’s Developer Zone about Paul Reinheimer’s new PHP Function a Day website. The Function a Day site functions in much the same way as those nifty tear-off-a-page-per-day desktop calendars we all buy for those on our Christmas shopping lists for whom we can’t quite figure out what to get. The calendars are hit-or-miss. The Far Side is always a popular favorite; Inspirational Stories of Left-Handed Leaders not so much.

Paul’s Function a Day, however, is a hit with but one problem: I have to visit the site everyday to see the newest calendar entry. Ick! If I know me—and I hope I know me—then I know I’ll forget to visit the site. Thus, in my sicken and medicated stupor, I decided to do the only logical thing one would do while taking a sick day: write some code!

Thus was born the PHP Function a Day Dashboard Widget for Mac OS X. Now, you can have the Function a Day delivered right to your desktop just like that day-to-day calendar, except this time, you don’t have to remember to tear off the page each day. Enjoy!

Comments 6 Comments »  Permalink Permalink  Tags Tags: , , ,