Archive for September, 2007
Fri, 28 Sep 2007 3:08 UTC
In just over a week, I’ll be flying to sunny California to attend and speak at the Zend/PHP Conference and Expo. I’ll be giving two talks at the conference: “Give Your Site a Boost With Memcached” and “Mobilizing & Sharing: How the Zend Framework Builds Community for Nokia MOSH.” The former is an updated version of a talk I gave earlier this year in Germany; the latter is a new talk I’m giving with my colleague Brian DeShong, and it’s more or less a case study of Schematic’s use of the Zend Framework in building Nokia’s mobile social networking website, MOSH.
A month ago, I wrote about the unconference being held at ZendCon this year. The unconference is a community space provided by Zend and organized by Patrick Reilly to facilitate discussion among members of the PHP developer community. This space is open to all conference attendees, who are free to schedule a time slot to lead a discussion or give a presentation. This is a perfect opportunity for you if you’re interested in testing the presentation waters by giving your first talk at a conference, trying out a new (or rehashing an old) presentation, or just sharing your knowledge with and learning from others. Be sure to add your session to the schedule soon!
I’ll be giving a new talk at the unconference with the obnoxiously long title “Getting Information About Your Upload Before It’s Finished Uploading or How To Use A Very Long Presentation Title To Otherwise Say I’m Talking About pecl/uploadprogress.” (Look for a blog post about pecl/uploadprogress from me soon.)
Finally, don’t forget about the #zendcon channel on the Freenode IRC network. That’s your place to chat with other attendees during the conference and find out where everyone’s going for food and drinks in the after-hours. In addition, there is a zendcon twitter user. Start following it today to get zendcon tweets during the conference.
1 Comment »
Permalink
Tags: conferences, php, zendcon, zendcon07
Wed, 26 Sep 2007 0:43 UTC
When I first came across Jonathan Street’s “7 tips for lightning fast PHP sites” blog post via PHPDeveloper.org, my first reaction was something like: “Egads! These benchmarks are stupid and misleading! These functions are simply aliases of each other. There should be no discernible difference, and any buffoon should realize this fallacy!” This was before I clicked through from PHPDeveloper.org to read his post.
Then, I clicked through to the post, and I was still dumbfounded that Jonathan found marginal microsecond differences between how the functions performed and was advocating the use of one function over the other based on this “data.” I questioned the testing, and I was prepared to dig through the PHP source to write up a post refuting his claims.
And then I did something smart…
I followed a link to his follow-up post entitled “Better Benchmarks” in which he explains that his previous post was a lampoon that “was supposed to be a spoof celebrating the worst aspects of these types of posts.” He went on to explain:
I had thought that with comparing aliases of functions seven times over people would realise what I was doing but apparently my post was just too close to the sad reality and lacking in sufficient humour for people to catch on.
When reading it in this light, it actually is really humorous. He goes on to explain another round of testing he did that was intended to show a more accurate measurement of the results. His findings are not unexpected, and he admits that:
Overall I conclude that there is no statistical difference between the aliases of a function in the tests that have been run. Although this was the expected result I hope that the analysis presented is sufficiently rigorous to discount the possibility of personal bias in the benchmark.
However, for the naysayers out there, I’ll post some lines from ext/standard/basic_functions.c in the PHP source. This should prove that the only difference in these functions is the name itself. All other code is shared. (Note that is_int() and is_integer() are actually both aliases of is_long(), even though the manual prefers is_int()).
PHP_FALIAS(chop, rtrim, arginfo_rtrim)
PHP_FALIAS(ini_alter, ini_set, arginfo_ini_set)
PHP_FALIAS(doubleval, floatval, arginfo_floatval)
PHP_FALIAS(is_int, is_long, arginfo_is_long)
PHP_FALIAS(is_integer, is_long, arginfo_is_long)
PHP_FALIAS(join, implode, arginfo_implode)
PHP_FALIAS(fputs, fwrite, arginfo_fwrite)
PHP_FALIAS(sizeof, count, arginfo_count)
So, what can we learn from this? For starters, always read follow-up posts, and never take part in function benchmarking wars.
6 Comments »
Permalink
Tags: aliases, benchmarks, php, testing
Tue, 25 Sep 2007 21:08 UTC
Today, Zend Developer Zone published my article on the Standard PHP Library (SPL).
All too often, I think developers overlook the SPL because it appears massively unwieldy and difficult to understand. While it is often difficult to understand due to lack of proper documentation (articles/tutorials/examples), it is not unwieldy. Rather, it’s fairly easy to use… once you get the hang of it. And getting the hang of it requires a good introduction, which is why I wrote this article.
My article was originally intended to be part of a series of articles about features and functionality in PHP 5 that provided a case for adopting/upgrading to PHP 5. Cal Evans, editor-in-chief of Zend Developer Zone, ultimately decided against publishing these articles in a “series” format, but I think the individual articles that were published still fit together fairly well for making a case to upgrade to PHP 5.
The articles are:
1 Comment »
Permalink
Tags: articles, php, spl
Sat, 22 Sep 2007 15:19 UTC
Last week, during php|works, Andrew Collington quietly sat down with us after a long day of tutorials. He kept his mouth shut, so his presence went largely unnoticed, but his blog was unable to escape the wide range of my ego.
Right now I’m sitting at a table with the likes of Cal Evans, Ben Ramsey, Sara Goleman, and Derick Rethans—all big players in the PHP world. And here I am, lowly ol’ me who does a bit of PHP at work. Wow. I feel a little starstruck (in a geeky kinda way), I have to admit!
Wow! I’m a STAR! Following this realization, this conversation ensued on #phpc:
<CalEvans> :) I'm a bit player in the PHP drama...jsut happy to be on
the stage.
<ramsey> same here
<Elazar> Pffft... your names are better known than most of the people
in here. :P
<ramsey> I'm known for having a name, though... nothing else ;-)
* ramsey is like the Paris Hilton of the PHP world... without all the STDs
<CalEvans> That would make me Lohan?
2 Comments »
Permalink
Tags: php, stardom
Fri, 21 Sep 2007 21:27 UTC
It’s been a week since Day 3 (Day 2 for those on the zero-indexed conference time-table), and it’s high time I got around to writing up my thoughts on the conference…
I arrived late to Sebastian Bergmann’s “Graph-Oriented Programming with PHP” presentation, where he showed how to use graph-oriented programming to implement workflows in PHP applications.
Next up was Maggie Nelson’s “How to Optimize a Database Query,” about which others have written nice things. (As a side note, Maggie presented this with live examples from the Oracle command line interface instead of using slides—a difficult and risky way to present, but she pulled it off flawlessly.)
After that, I sat in on Ed Finkler’s “Intro to Code Igniter” presentation. As a minimalistic framework (which I love), Code Igniter appears promising, but I was a bit disappointed to see that it makes attempts to be supported on PHP 4, so there are no advanced OOP techniques being used.
The highlight of the day came next with Terry Chay’s new talk “The Internet Is An Ogre: Finding Art in the Software Architecture” where Terry was his typical self, dropping the f-bomb and pointing out where popular books are dead wrong. I look forward to watching him present this again at ZendCon and seeing how it’s evolved by then.
Finally Chris Jones and Ed Finkler rounded out the day with “Next Generation Database Applications” and “Securing the PHP Environment With PhpSecInfo” (respectively).
In all, this was one of the best PHP conferences I’ve attended. I agree with Ed, who said, “php|architect conferences lack pretension, and that’s really nice—it’s about the people and sharing knowledge.” This really was the case. And there wasn’t a time slot that I couldn’t find something of interest to attend; all the speakers and topics were interesting and relevant. Kudos to the folks at php|architect for having the discernment to select excellent presenters/topics!
There was one thing, however, that was a shame: although the event was held in Atlanta, there were few locals in attendance. I counted about five or six from the Atlanta PHP user group, but apart from that, I don’t know of any others from Atlanta who attended.
Atlanta PHP developers: you had a PHP conference in your backyard, and you missed it! What a wasted opportunity!
1 Comment »
Permalink
Tags: conferences, php, phpworks, phpworks2007, works07
Thu, 13 Sep 2007 22:03 UTC
Even though today is officially “day 1” of php|works, I consider it “day 2” because I spent the majority of yesterday (six hours of it) standing and talking to a room full of people about topics they need to know to pass the Zend Certification Exam. It was a tiring day, and my lack of sleep and trek through two hours of Atlanta rush-hour traffic didn’t help. Still, I made it through the day, I think the tutorial was a success, and I hope that those attending who took the exam yesterday or today passed with flying colors.
Today began with Andrei Zmievski’s keynote entitled “The Future: PHP6,” or “Im in ur endginn, playin wif ur stringz.” Here are a few notes I gleaned from his presentation:
- Unicode is so simple you could probably explain it to Paris Hilton, or Miss Teen South Carolina might be able to explain it to you.
- PHP6 = PHP5 + Unicode, PHP5 = PHP6 – Unicode, Unicode = PHP6 – PHP5
- mojibake: phenomenon of incorrect, unreadable characters shown when software fails to render a text according to its associated encoding
- “APC is the best thing to happen to PHP since Rasmus stopped working on it single-handedly.”
- “Ask yourself: Can I live with PHP 4? Until 8/8/8? If yes, you’re done. Thanks for playing.”
Afterwards, I supported my colleague, Maggie Nelson, by attending her talk, “You Don’t Need A DBA.” I had the opportunity to see a preliminary version of her talk, and while I enjoyed the preliminary version, she had vastly improved it with great examples and information.
After Maggie’s presentation, it was my turn to give my talk “Designing RESTful Web Applications.” The slides for this talk are already available on my site.
Due to some unavoidable distractions from work, I had to miss the lunchtime keynote, “PHP 4 is dead! Migrate your code,” delivered by Chris Shiflett. This was unfortunate because I was apparently featured in all my drunken karaoke glory on one of the slides. Now, I’ll never know how I helped to convince people to transition from PHP 4 to PHP 5.
The highlight presentation of the day, though, was perhaps Sara Golemon’s “How PHP Ticks.” In this talk, Sara explained how the PHP engine converts PHP code into tokens, which get further converted into their opcodes that the Zend engine then runs. It was very informative and not at all dry, due mostly in part to Sara’s sense of humor and presentation style. Two big take-aways from this talk:
- Use token_get_all() to get all the tokens in your script
Thu, 13 Sep 2007 18:24 UTC
Here are the slides from my Designing RESTful Web Applications presentation I gave today at php|works.
REST (or Representational State Transfer) has become a buzzword to describe almost any application that uses XML over HTTP as a Web Service, but REST is more than XML over HTTP, and it’s more than another Web Service mechanism like SOAP and XML-RPC; REST is an architectural pattern that can be applied to Web applications.
While REST is generally applied to Web Services, the principles that embody REST can be applied to all Web applications, providing better information design, cleaner URLs, and a more “semantic web†approach.
This talk will explain the principles and theory behind REST–starting with its basic foundation, HTTP—offer a detailed approach to design a RESTful application, and examine several so-called RESTful Web Services and explain why they may or may not follow REST principles.
Enjoy the slides:
3 Comments »
Permalink
Tags: conferences, phpworks, phpworks2007, rest, talks, works07
Tue, 11 Sep 2007 21:06 UTC
So, I’m here gearing up for php|works at the Sheraton Gateway Hotel near the Atlanta airport. I’m giving a 6-hour Zend PHP 5 Certification Crash Course tomorrow. Following that, I’ll play host to some speakers and conference attendees (as a sort of unofficial social coordinator—as if I have those skills) for after-hours dinner and drinks. If you’re interested in hanging out after-hours this week, look me up at the conference and let me know.
Also, I’ll be logged into #phpc on Freenode IRC this week along with many other conference attendees. The channel will serve as a sort of (unofficial) conference chatter channel to find conference goers, make plans, and make general mischief, heckling the speakers behind their backs.
I assume there’s still time to register if you’re interested in attending.
No Comments
Permalink
Tags: conferences, php, phpc, phpcommunity, phpworks, phpworks2007, works07, zce
Mon, 10 Sep 2007 13:56 UTC
The company I work for was just acquired by WPP. Congratulations, Schematic!
Link to press release, or read it below…
WPP Digital acquires Schematic, a leading interactive design company
WPP Digital announces that it has acquired the entire issued share capital of Schematic, a leading interactive design, development and technology company in the US.
Founded in 1999, Schematic’s expertise extends to all digital platforms, including the Web, interactive television, mobile devices and digital environments, and it is an industry leader in identifying and utilising emerging platforms. The award-winning agency also has considerable experience with media and entertainment companies, as well as with retailers, telecommunications and technology companies. Clients include Coca-Cola, Comcast, CondeNast, Disney, NBC Universal, Nokia, Panasonic, SanDisk, Target, Time Warner and Turner. Schematic is based in Los Angeles, with offices in New York, Boston, Atlanta and San José, Costa Rica, and employs 255 people.
Schematic’s revenues for the year ended 31 March 2007 were US$29.6 million, with gross assets at the same date of US$8.0 million.
This investment continues WPP’s strategy of developing its networks in fast growing markets and sectors and strengthening its capabilities in digital media.
2 Comments »
Permalink
Tags: aquisition, job, schematic, wpp