For those who’ve been around the PHP community for a while, you’ll recall the successful PHP TestFest events that began after a discussion at PHP Quebec in 2008. Many user groups and mentors signed on to host and help with events, and a lot of folks became first-time contributors to the PHP project, helping improve our code coverage. It ran strong in a global sense from 2008 to 2010. After that, various groups (particularly the Brazilian groups) have continued the tradition.
At AWS re:Invent, Amazon announced a new service for building and testing code: AWS CodeBuild. They provide managed environments for Android, Java, Python, Ruby, Golang, and Node.js. While PHP is missing, it is possible to build PHP projects using the service. Follow along to find out how.
This week, I’m attending php[tek]. This is my seventh php[tek], and the first I’ve attended not as a speaker. It’s one of my favorite conferences, and I didn’t want to miss its first year in a new city: St. Louis. As we gear up for the eleventh php[tek] conference, I thought I’d list my seven tips for getting the most out of your php[tek] experience.
I’ve published my first article in php[architect] magazine since 2009! It’s only fitting that it’s an article on OAuth 2.0, since one of the last articles I published in their magazine was on OAuth 1.0. I’m proud and excited to finally publish a new article with them after such a long hiatus, and I hope my next article doesn’t take seven years to write.
I’m a tad late to this discussion, but I think it’s still pertinent today—perhaps even more so—and Jordi Boggiano’s recent post, “Common files in PHP packages,” got me thinking about the lack of open source licenses in public repositories.
It seems quite absurd for me to introduce ramsey/uuid, a library that saw its 1.0.0 release on July 19, 2012, and is now at version 3.4.1, having had 35 releases since its first, but what’s even more ludicrous is that I haven’t once blogged about this library. I mention it only in passing in my “Dates Are Hard” post. So, allow me to introduce you to perhaps a familiar face, an old friend, the ramsey/uuid library for PHP.
I volunteered to help with an Hour of Code during Computer Science Education Week. This is my story, with a few tips to help when you volunteer.
A recent struggle to solve a programming problem reminded me that yak shaving isn’t just part of our jobs, it’s the entire job description.
One of the most common problems I see in API development is lack of hypermedia, or none at all.
Remembering PHP community members who have died.
For many years, I’ve claimed that Chicago PHP held its first meeting in February of 1997. Unfortunately, I was wrong.
I prefer to hard-lock Composer dependencies for non-distributed apps, including hard-locking to a specific commit. Today, I encountered a problem…
In this post, I discuss my InfoWorld article, @phpc’s timeline, #20yearsofphp hashtag, PHP cake, and community posts reflecting on 20 years of PHP.
Twenty years ago today, Rasmus Lerdorf released Personal Home Page Tools (PHP Tools) version 1.0 to the world. I first encountered PHP in early 2000…
Earlier today in the
#coderabbi Freenode IRC channel, we were discussing recruiter messages. I thought I’d share one of my favorite gems from over the years.
I’ve fully redesigned my website and have added more content. In this post, I explain why and how.
In 2013, I began crafting soft skills talks as a return to the PHP conference speaker circuit, but I learned I wasn’t suited to deliver these talks.
What can developers do during the interview process to get an idea of the kind of codebase a company has? Here are a few tips I think go a long way in helping determine the state of a company’s codebase.
My first day at ShootProof was July 1st, and as I’ve come to my one-month anniversary with the company, I wanted to share some of the reasons that attracted me to ShootProof and why I’m still excited about it, after a month of working here.
I’ve spent the past four-and-a-half years at Moontoast. It has been an excellent ride, but it’s time for me to move on.
Encryption is hard, and the difficulty barrier keeps us from adopting it. I hope Keybase paves the way to making encryption easier for us all, from the technologically-skilled to the technologically-challenged.
I recently encountered an issue when calculating the time for an RFC 4122 UUID that had me questioning the accuracy of our modern, accepted calendars, especially with regard to the days of the week on which our dates fall.
In just a few short years, Composer has revitalized the PHP community and changed the way we do development. Composer is what PEAR should have been.
We were finishing up lunch at ZendCon in 2008, when I became the infamous Wild Garlic.
I’ve been accepted to speak at ZendCon this year. One of the three talks I’ll be presenting is a new one: “Contributing to Core: My Journey to Add
array_column() to the PHP Core.” While PHP conferences sometimes include talks or tutorials on creating PHP extensions or the intricacies of the PHP internals, I’ve never seen a talk about one’s personal experiences contributing to core, from start to finish, and how one would go about getting started. That’s what this talk is about.
Earlier this year, I wrote about how my patch for
array_column() was merged into the development branch for PHP 5.5 in preparation for the beta release. I received a lot of great feedback and many kind words. Then, on June 20, the PHP team announced the general availability version of 5.5.0. With that,
array_column() was released to the world for general use.
Earlier today, David Soria Parra declared a feature freeze on PHP 5.5 and tagged php-5.5.0beta1, but not before merging in pull request #257, which includes my humble addition to the PHP programming language:
Twitter pretty much killed blogging for me. When I signed up for the service six years ago, I was blogging quite a bit, but Twitter’s rapid-fire, ultra-short status updates have given me a 140-character attention span. Not only did I stop blogging, but I stopped reading blogs, too. Reading and writing became a chore. While I could fire off a message on Twitter within minutes or seconds of crafting it, blogging was an endeavor that took much longer—hours or even days, at times.
Earlier today, I was asked “Any tips on how to write a proposal for a major conf?” I’ve never shared tips on this, and since the calls for proposals for Sunshine PHP and Midwest PHP both end tomorrow, I thought it would be a good idea to share my approach to writing conference proposals.
Over the past decade, the PHP community has progressed through a handful of distinct eras that have each been marked by a focus on specific best practices. This is most evident in the types of talks presented at conferences and user groups and in the articles published by php|architect magazine, PHPDeveloper.org, and the blogs of those whose feeds are distributed through Planet PHP.
The PHP world is exploding with community conferences. In fact, web development technologies in general are seeing a wide range of community-driven conferences springing up around the world. I think there are many reasons for the proliferation of these conferences, and in this post, I present my opinion on how this trend came to be, along with a definition of what I think constitutes a technology-focused community conference.
In case you haven’t heard the news, the PHP project released version 5.4.0 last Thursday. Naturally, I decided it was time to install and give it a try. I chose to install to a clean and bare-bones CentOS 6.2 virtual machine using VirtualBox. I did this for two reasons: 1) I wanted a clean environment for the build, and 2) I wanted to play with CentOS. At the time of this writing, there are not yet any official CentOS RPMs for PHP 5.4, so I had to build PHP from source. What follows are the notes I took during the installation and build process. I hope you find them helpful.
It used to be that once a year I would take a good, hard look at the tools I used and endeavor to learn something new or change my workflow with those tools. However, I’ve been living the #startuplife for the past two years, so it’s been about three years since I last addressed my development toolchain. I decided to come up for air and take some time this weekend to rectify that by addressing five main areas: my terminal emulator, my shell, my terminal multiplexer, my IRC client, and my color scheme—yes, even my color scheme! In addition, I decided to push out my updated Octopress-powered blog, even though things are still a little rough around the edges.
For those who have been following along, you’ll know that I helped organize a mini-conference for PHP, along with Elizabeth Naramore, in the Fall of 2006. It was little more than an excuse for a small group of people to get together, kamp, talk shop, and have fun—and it was a lot of fun. It was so much fun, in fact, that Elizabeth and Keith organized it again in 2008. That was PHP Appalachia. It was the stuff of legends.
Moontoast, the company where I now work, is looking for senior PHP developers. This is an on-site (Nashville, TN), contract position that could potentially develop into a full-time position. If you’re interested, let me know, and send your resume to hr [at] moontoast.com.
I recently moved to Nashville, and as part of that transition, I’ve taken the helm as the new organizer for the Nashville PHP user group. I posted what follows to the Nashville PHP mailing list, but I thought it would be a good blog post. Enjoy!
Since I announced on Twitter that January 15 would be my last day at Schematic, I’ve received many positive responses and much encouragement. The biggest question, though, was where I would be going next.
Six years ago, I became aware of the PHP community. I joined it three years prior to that.
For the past three years, Microsoft has hosted the Microsoft Web Development Technology Summit, inviting a small group of community leaders, project developers, and prominent members of the PHP community, primarily for the purpose of eliciting feedback on how to better support PHP on Windows. I’m privileged and honored to be invited back for a third year to the fourth annual edition of this summit.
I never wrote about days 13 & 14 of CodeWorks, nor did I post the slides on October 7, like I promised to attendees of my talks. After CodeWorks, my website underwent weird spikes in traffic, causing it to be extremely slow. I thought the problem was DreamHost, so I moved everything to a slice at Slicehost. Long story short, my slice kept crashing, so I moved everything back to DreamHost after several weeks of intermittent uptime to let them deal with the problems. That’s what delayed my posting, and I apologize to those who have been looking for the slides.
This morning, Matthew writes about building RESTful services with the Zend Framework. I have a lot of thoughts on his post, and I might blog more about it later, but right now, I want to focus on David’s comment:
Several months ago, I started the process of embedding PHP into the Titanium platform. After several sprints of work, the Appcelerator team was finally ready to merge my work into their master branch, and Martin Robinson worked to bring the implementation to maturity. The current release of Titanium Developer does not yet have the PHP support built in to the bundled SDK, and I’m not sure when it will be released, so I thought I’d share how to get a development version built with PHP support so you can start playing with it and even help the Appcelerator team by catching bugs in the implementation.
Departing Miami, I gazed upon the Atlantic Ocean as we cut through the clouds, making our way farther from the shore, and the thought occurred to me that this tour — these two weeks — has taken me from sea to shining sea across this great country. What a fitting thought to have as this next leg of the tour took us to Washington, DC.
Miami CodeWorks, so far, was the smallest conference but I still think some important connections were made, especially with regard to user group contacts.
Atlanta was the mid-point stop on the CodeWorks tour, and since it’s my home, I decided to use it as an opportunity to spend time with my family before heading off on the second half of the tour. As such, there was very little hallway track activity for me, but I did get a chance to make it to a few events.
Yesterday, the CodeWorks B-Team (the session day team, a.k.a. Team Awesome) ran into a bit of a travel snafu that actually worked out better for us. On the way to the airport in Los Angeles, we got stuck in traffic caused by an overturned cement mixer truck. And by overturned, I literally mean the cement mixer was lying flat on its back across the barrier separating the north bound from the south bound lanes. I’m not sure how it was even possible, but there it was. Derick took some video of the accident that he may or may not post later.
I’m writing this from Los Angeles during the session (or conference) day of CodeWorks. The “A Team” (tutorial team) is en route to Dallas today, while the “B Team” (session team) gives their talks.
I’m breaking a long and terrible habit of not blogging in order to share my experiences at CodeWorks over the next two weeks. As you may know, CodeWorks is a touring PHP conference that is traveling to seven cities. I’m privileged to be speaking in each of the cities.
Another php|tek come and gone. I’m saddened by leaving, but, as usually happens, I’m reinvigorated and reenergized to go back to work. It seems I need these events to get together with other developers to raise me up out of periods of burn-out. I’m sure the same goes for others.
As a Twitter user (@ramsey) with over 700 followers, a good followers-to-following ratio (4 followers for every 1 I’m following), and over 4600 updates, I think I have a valuable perspective on the use of Twitter. I throw these numbers out there not to brag, and I’ll be quick to point out that this is certainly not a high number of followers, and a certain percentage of them are probably spammers, but the numbers tell that I obviously have something to say that some people find interesting and engaging.
A couple of months ago, an e-mail thread went around the company discussing “Web 3.0” technology. Naturally, I felt the need to put in my two cents, and I thought it would make for a good blog post. Let me know what you think. Do you agree? Disagree?
It looks like there’s a lot of momentum behind
rev="canonical" now – and all built up within the span of about forty-eight hours. So, while I disagree with the use of “canonical” for semantic reasons and
rev for the potential of mass misunderstanding and improper implementation, I think I’ll bite the bullet on this one for now, but time will tell what the community ultimately decides.
I think my central argument against
rev="canonical" in my previous post was lost due to the fact that my post was so long. So, I’ll try to summarize my points in a very concise way.
There’s a lot being said about
rev="canonical". Others have already explained what it is and stated the arguments for it, so I won’t go into all of that, but I would like to offer a rebuttal – to play devil’s advocate, so to speak – in hopes that we’ll all slow down and think about what we’re doing before we jump all-in and start implementing something that may not be a good standard for the Web, leading to more problems down the road.
Last year, I wrote about the
100 Continue HTTP status code and the usage of the Expect header with the
100-continue expect value. However, I made a few erroneous statements, and a reader recently corrected me on them. So, I’m writing now to correct those statements so that I’m not misleading anymore readers.
When I was contacted by a representative of Packt Publishing to review RESTful PHP Web Services by Samisa Abeysinghe, I was naturally interested. After all, I’ve written and spoken a lot about representational state transfer (REST). But I was also skeptical because plenty of people these days talk about RESTful web services, but they don’t really explain REST.
The last post in my HTTP status code series was just over six months ago. I’m sorry for taking so long to revive the series, but I’m back with a discussion about the 4xx status codes. I hope you enjoy it!
We’re well into the New Year – 24 days to be exact – and I’ve long since been putting off this post, but it’s not really a single post. Instead, it’s a collection of things that I’ve been wanting to say but have been putting off, and it’s a look forward to things I’m working on, would like to see happen, or would like to be involved with this year. So, rather than the obligatory look back at what I did last year, this is a look forward at what I’m interested in for the coming year (in no particular order).
Someone at the office sent around a link to an InfoWorld article that discusses a blog post made by Anne Thomas Manes, vice president and research director at Burton Group, in which she announces the death of SOA.
Started by Tony Bibbs (or maybe Marcus Whitney before him) and tagged by Elizabeth Naramore and Jon Whitcraft, I have succumbed to the 2009 blogging phenomenon known as “tagging.” Initially, I was going to ignore the tag, but when Elizabeth tagged me “just because,” I knew it was on.
Here are the slides for my talk “You Look Like You Could Use Some REST!” given on the general track at php|works and PyWorks in Atlanta a few weeks ago. In my talk, I mentioned that I would be adding my notes from the talk to this blog post, but I’ve decided against doing that for the time being. However, I’ve been thinking about REST a lot lately, and I’ll use this blog in the near future to write some of these thoughts. I’m also working on a now overdue article on REST for php|architect, and I’m sure my editor would not like it if she knew I was blogging about REST instead of writing my article about it. I’ll announce that article here when it’s published so you can go snag a copy.
Next week, I’ll be speaking at php|works and PyWorks in Atlanta on Representational State Transfer (REST). My talk is in the general track this time, so it’s good for both the PHP and Python audiences who will be attending the conference.
I usually don’t announce Atlanta PHP meetings from my blog, but given the short notice, I figured that greater exposure would be best, so here we go…
See below for the slides from my Distribution and Publication With Atom Web Services talk given at the 2008 Zend PHP Conference and Expo in Santa Clara, CA.
As I write this post, I’m sitting at about 38,000 ft on a Boeing 757-200, flying high above the now tropical storm Ike. My destination is Santa Clara, CA and the Zend PHP Conference and Expo.
After a long hiatus and a very quiet mailing list and forum, I am delighted to announce that the main communication channel for PHP Groups is moving to the official PHP project at php.net!
Here are my slides for the memcached presentation I gave at OSCON this year. I experimented with a new slide template, which turned out for the worst, since the contrast of the type on the screen was very poor, making it difficult for attendees to read. I apologize for this. In addition, I was completely distracted during my entire talk by loud music coming from the room next door. Nevertheless, the majority of my audience was still around even after I ran 5-10 minutes over schedule, eating into their free beer time, so I suppose that says something and that they were learning. :-D
I find myself once again in Portland, OR at the O’Reilly Open Source Convention. This year, I’m giving a talk on memcached. The talk is on the PHP track, but the concepts can apply in any of the other languages represented at OSCON, so if you’re interested in memcached and how to use it, stop by on Wednesday at 5:20pm.
I’ve been rather uninspired and, therefore, uninterested in blogging lately, which is why I’ve neglected to continue my series on HTTP status codes. However, while trying to figure out a quick and easy way to delete tons of received direct messages from my Twitter account, I stumbled across one of my HTTP pet peeves coupled with the odd use of a 3xx status code, which inspired me to launch into a short rant followed by a discussion on the redirection series of status codes.
As promised to the attendees of my talks, I have posted the slides for my presentations on SlideShare.
So, my first conference of this year’s conference “season” has come to a close, and as a wrap-up post for the conference, I’d like to do something a bit different. I’m not going to discuss the sessions I attended or talk about the keynotes. Instead, I’d like to approach this post from the community aspect.
The 200 range of HTTP status codes represents successful requests. I’ve already covered 201 Created and 202 Accepted and 206 Partial Content. Today, I’ll wrap up my discussion of the 200 range by talking about 204 No Content and 205 Reset Content. The 200 OK response is probably the status with which most are familiar, and I’ll discuss it later when covering the HTTP verbs.
Special thanks to all the twitterites who recommended UML modeling tools. Umbrello UML Modeler appears to be the one I was looking for. Here are a couple of quick notes about what I had to do to get it running on my Mac, mainly for my own future reference, but I hope these also help someone else.
UPDATE: This post contains some false information. Particularly, you should not send back a 417 Expectation Failed response as a way of telling the client that the server could not fulfill the response because of data presented in any of the request headers other than the Expect header. I have corrected my statements here in a newer post, and I apologize if I caused any confusion.
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.
Yesterday, php.net announced TestFest 2008!
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.
Creating a RESTful (Representational State Transfer) 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
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.
This year marks the tenth anniversary – or birthday, if you will – of the Extensible Markup Language. Version 1.0 of the W3C recommendation was published on February 10, 1998.
I’ve spent the last month deeply entrenched in the intricacies and idiosyncrasies of RFC 5023(The Atom Publishing Protocol) and RFC 4287(The Atom Syndication Format). You could say that we’re pretty intimate right now…but we haven’t yet made it to “third base.” I’m a gentleman, mind you!
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.
Since I get off work at 6pm and have to drive through what is often an hour and a half of traffic, I usually get home after my son has gone to bed. I feel guilty about this, and I don’t like that it happens, but I’ve grown accustomed to it over the last year – so accustomed, in fact, that I’ve sort of come to expect it.
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.
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. I decided to turn it into a Dashboard Widget for Mac OS X!
I’m privileged to be in Redmond, WA this week at the Microsoft Web Development Summit. (Special thanks to Glen Gordon for sending me an invitation.) Also in attendance are a good crowd of PHP developers from various backgrounds and experience, including developers from Drupal, Gallery, Facebook, CakePHP, Solar, core developers, extension developers, authors, and just plain PHP programmers. Microsoft has invited us to their main campus in an effort to reach out to the PHP community to solicit opinions and feedback on various technologies, including IIS, Silverlight, their Ajax library, Expression Web, etc.
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.
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.
Today, Zend Developer Zone published my article on the Standard PHP Library (SPL).
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.
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…
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.
Here are the slides from my Designing RESTful Web Applications presentation I gave today at php|works.
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.
I just wanted to take a moment to promote the PHP Unconference to be hosted this year by Zend during the Zend/PHP Conference & Expo in Burlingame, CA. The Chairperson for the PHP Unconference ‘07 is none other than the PHP community’s very own Patrick Reilly. He’ll be in charge of making sure things run smoothly and that the open community aspect of the unconference is maintained.
Last year, a substantial number of regulars of #phpc attended the Zend/PHP Conference and Expo, so we decided to make #phpc t-shirts for everyone. This year, that number of attendees from #phpc has dramatically risen, and, again, we’ll be creating special t-shirts, this time using the original PHPCommunity.org logo created by Peter Jovanovic (with contributions from Richard Davey).
As OSCON winded to a close today, I attended the morning’s keynotes, which I found to be some of the better keynotes I’ve seen at OSCON. They were entertaining, thoughtful, and weren’t filled with marketing drivel.
I didn’t get a chance to post yesterday, so today’s post will include my thoughts on sessions I’ve attended for the past two days, but I’ll try to keep things short. If you know me, you’ll understand how difficult this can be.
Yesterday, I mentioned a “super secret” announcement party that Intel was throwing for bloggers and the press. So, what did they announce? Well, in short, they are releasing a fully open source version of their Intel Threading Building Blocks (TBB) C++ template library. It’s under the GPLv2 (and not an Intel OSS license). The TBB simplifies development of software running on multiple cores (in parallel).
Hi, all. It’s been about a month since my last post, and, for those who know me, I’ve been off of IRC and IM for nearly a month, as well. It’s been very busy around the office, but now that things have slowed down a little, I plan to be around a bit more.
I’ve been catching up on reading old blog posts (and, by old, I mean older than 6 months) – I’ve sort of been out of the loop lately – and I came across a November 2006 post by Adam Trachtenberg questioning the proper use of HTTP response codes in a Web Service. In particular, he was wondering when it is acceptable to return certain response codes.
Maggie writes about an Oracle problem over which we were pulling out our hair. In the end, the solution was fairly simple, but I’ll let you read her post for all the details. I’ll just mention that Christopher Jones pointed me to a freely available book he and Alison Holloway wrote specifically for PHP developers using Oracle: The Underground PHP and Oracle Manual.
I’ve been using Thunderbird for quite some time for company e-mail, and for the most part, I’ve been happy with it, but when the company uses Microsoft Exchange Server for shared calendars and scheduling, anyone that’s not using Outlook on a PC gets left out in the cold. Keeping track of my schedule has been the source of increasing frustration. Our recommended solution is to simply use OWA to accept all calendar invitations. However, this defeats the purpose of using Thunderbird in the first place, and if you use a browser other than Internet Explorer, your experience is severely limited and downright fugly. The root of the problem is that I use a Mac. I could choose to use OWA or Entourage, but OWA is simply unacceptable, and Entourage is clunky and slow at best.
I’ve been neglecting for far too long to post these slides, and I’ve been reminded several times by conference attendees that I need to post them. Thank you for the reminders, and I apologize that it has taken me this long to post these. Links to the slides are below…
So, I will once again find myself in New York City next week, and while I’m there, I’ll be attending New York PHP’s April meeting. If you’re in the neighborhood, drop by. Chris Shiflett will be presenting a talk entitled “Security 2.0.” I’ve seen a sneak peak of the title slide, and this talk will be highly informative – as usual – but this time there will be a twist on the sometimes dry topic of security. You’ll have to come see what I’m talking about; you’re bound to be entertained. I’m looking forward to it.
For the second time in two weeks, I find myself back in New York City for a project with Schematic. This is also the second time I’ve ever been to New York, the first time being, of course, just over a week ago. For anyone who hasn’t yet visited New York, if you find yourself flying into Newark and taking a cab into the city, it’ll cost you about $70. However, if you have the opportunity – and it’s nighttime – ask the cab driver to take you through the Lincoln Tunnel (via the NJ Turnpike) rather than the Holland Tunnel. You’ll get a spectacular, panoramic view of the lit-up city from uptown to downtown.
I’ve been working a lot lately with the Zend Framework for a project at work, and in a recent upgrade from 0.8.0 Preview to 0.9.1 Beta, I made a few discoveries that I’d like to share, especially since the manual for the Zend Framework is sorely out of date, and many of the examples are either deprecated or no longer work.
A year ago, I left a fast-paced, non-profit organization to work from home for Art & Logic, a software development company based in Pasadena, California. It was a much-needed change of pace for me, and allowed me the chance to rediscover PHP and work a lot more with PHP 5, sort through some personal things, cast off some excess weight (both physical and metaphorical), and spend time with my wife through her pregnancy up until now, seven weeks after my son’s birth.
As I mentioned a while ago, I will be attending PodCamp Atlanta this weekend. I also mentioned that I’m interested in attending to hear more about vlogging. However, PodCamp Atlanta didn’t have any vlogging sessions scheduled at the time. So, in the spirit of the unconference, I decided to pull together a group of vloggers from across the Southeast to form a vlogging panel – moderated by yours truly.
ATLANTA, Ga., Mar. 7, 2007 — PHP Groups, a worldwide network for PHP user groups, launched today with the intent to foster an open community for PHP user groups to share and exchange ideas and information. Membership is open to anyone working with a PHP user group or interested in starting one.
So, I popped into
#apache on Freenode IRC today to ask a question. That’s when I noticed the news in their topic that ApacheCon US will take place this year in Atlanta, GA from November 12-16 at the Westin Peachtree. This is good news for me (since I won’t need to get a plane ticket) and Atlanta PHP!
UPDATE: I’m an idiot. The LinkedIn “info” button shows up next to every e-mail address on every web page because I finally upgraded to the newest version of the LinkedIn Browser Toolbar for Firefox. I feel pretty stupid now for jumping the gun on this, and there is no mysterious partnership between Google and LinkedIn, but isn’t this a good example of how browser plugins are changing the way we view sites? (More thoughts on this later.) At any rate, I wouldn’t mind seeing some kind of mash-up of Google/LinkedIn/Plaxo; it’d definitely make managing my contacts between the three much easier.
If you’ve been following along, then you’ll recall the ‘Stache Bash photos I posted to my Flickr account a year ago. Well, my group of friends and I decided we wanted to take this year’s ‘Stache Bash to the next level, so we decided to promote the hell out of it on MySpace, but then I got an idea: why not make a website devoted to the ‘Stache Bash.
In an effort to organize my life, I’ve been trying out various organizer programs, from Yojimbo to SOHO Organizer to Contactizer. That’s when I realized that I need Google’s help. If I do everything the Apple way, then I need to use Address Book, iCal, and Apple Mail. Then, I can make the most out of organization software like SOHO Organizer and Contactizer, but I don’t use the Apple programs. I use things on the Web like Gmail and Google Calendar. I could go back to using programs like Apple Mail, but Gmail has ruined me simply because of two simple features that seem so obvious I don’t know why other mail applications don’t have them: tagging and conversation threading.
I have the bad habit of being unable to say “no” when something comes along that I think will be a good opportunity. The truth is: I just don’t want a good opportunity to pass me by that I will regret later. The problem is that, in accepting these opportunities, I’ve caused myself to become needlessly overwhelmed, and I’ve even hurt my relationships with other people because I’ve let them down, being unable to pull through and finish certain things.
I recall several years ago a discussion on #phpc on Freenode IRC about the need for white papers on the use of PHP in the enterprise/business world. These white papers would serve as a sort of advocacy for PHP, but more important than advocating the use of PHP, they would help answer questions about PHP that management types have. The white papers would discuss the benefits of using PHP, highlighting its strengths and even noting its limitations. In short, it would answer the question: why is PHP suited (or not suited) for the task we need to complete? I was particularly interested in these white papers for Atlanta PHP to use and distribute to the local business community.
Sean Quinn Ramsey was born this morning (Feb 1st) at 2:27AM.
Just thought I’d take a moment to promote a local BarCamp-style event being held at Emory University in Atlanta on March 16-18: PodCamp Atlanta. Apparently, there’s a lot of PodCamps going on around the world this year, and this is just one of them.
Yesterday my grandmother passed away (my mom’s mom). She had battled cancer for many years, and underwent chemotherapy treatments for a long time. Chermotherapy is just plain evil. It’s poison that’s meant to kill cancer cells. The problem is that it doesn’t target cancer cells, so it affects your entire body. It’s very painful, and it’s hard to watch someone undergo the treatments.
Just got a call from Robert Swarthout of PaperBackSwap.com and SwapaCD.com. Robert’s a member of the Atlanta PHP user group, and he was calling to let me know that he and Zack (also of PaperBackSwap and SwapaCD) want to speak at a meeting about what to do when your “pet” project grows into a huge, heavily-trafficked website.
Last week, I received a rather cryptic e-mail with the following subject line: “Are you available today to talk about PHP?” The body was even more cryptic: “If so, please provide a phone number. Thanks.” Normally, I would’ve tossed such a message aside, assuming that it’s either spam or someone in Nigeria wanting me to build a PHP application for them after I give them my bank account and routing numbers so they can deposit the funds necessary to complete the work, but I noticed that this message was sent by an Editor at Large from InfoWorld. So, I decided to give it a shot and send my number back to him.
I’m pleased to announce the official Atlanta PHP Call for Proposals. If you’re going to be in the Atlanta area and would like to present at an Atlanta PHP meeting, then, by all means, please let me know!
PHP Throwdown announced today that registration is now open for any individual or team interested in taking part in the competition. PHP Throwdown is, in a nutshell, a competition to see what can be accomplished with PHP in a span of 24 hours.
UPDATE (5 Jan, 21:00): Patrick Mueller has just posted some links to information about XDebug support for PDT. Now, for those not wishing to use the Zend Debugger, you may now use XDebug.
It’s become a personal tradition of mine to try various winter and holiday ales and lagers each year around this time. I’ve also found that many members of the PHP community are aficionados of good beer. Thus, my Christmas gift to the PHP community this year will be a list of recommended winter brews. I won’t spend too much time describing the beers. Instead, I’ll link to their pages at Beer Advocate (a PHP-driven site) for reviews.
In my effort to clean my plate of blog topics, here’s yet another post for this week. I promise to keep this one much shorter…
From the I-noticed-this-one-day-while-looking-at-a-co-worker’s-code department comes a tale about the use of undefined constants in PHP – and relying on this twisted “feature” to make an application function properly.
This post is long overdue, but I was finally able to sit down and type out my thoughts about the Zend/PHP Conference and Expo and the International PHP Conference. I had the privilege of being invited to speak at both of these conferences, and I accepted both invitations, which, in retrospect, may not have been a great idea since they were back-to-back in different parts of the world; I felt like I knew the NSA on a first-name basis. Looking back, though, I enjoyed each trip because I was able to meet new people, develop new friendships, and spend time with old friends.
I recently wanted to try out the Eclipse PHP IDE, the official Eclipse project that is endorsed/backed by Zend (I’m not entirely sure about the nature of their relationship, to be honest). I already had a working Eclipse installation that I had used to try out PHPeclipse for Eclipse (not to be confused with the PHP IDE), so I didn’t want to bother downloading a brand new full package of Eclipse that includes the PHP IDE and all its requirements. So, I set about on a tedious journey to figure out how to install PHP IDE using the Eclipse Update Manager. These are my notes.
Aaron Wormus recently criticized me on IRC for putting too much thought and effort into blogging. He may have a point there. I’ve got a huge list of things I want to write about, but I haven’t put forth the effort because I do take too much time to write a post. So, here goes one for writing up a quick post…
I’ve been at the International PHP Conference in Frankfurt, Germany all week. In all, I like the feel of this conference. They have a good balance of catering to the community while appealing to businesses and management. It’s also a great opportunity to network with PHP programmers and the community on the other side of the pond.
I’ve just finished giving my presentation on XML & Web Services with PHP (An Overview). Overall, I think the presentation went quite well, though I had entirely too much material to cover in a very short period of time, so it was impossible to go into much depth on any one type of Web Service. This was unfortunate, but I think the “overview” nature of the presentation allowed for this top-level approach.
The first day of the Zend/PHP Conference and Expo (the day of tutorials) was great. I sat in on Robert Richards’s Advanced XML and Web Services and Marcus’s and Sara’s Extending PHP tutorials. I multi-tasked as best I could, catching up on some work while finishing my slides and listening to the presentations. Robert went into a great deal of information on DOM, which was all very excellent material – you can definitely tell where his passion lies and that he knows his stuff – but discussion on Web Services was not very prominent. My presentation today, though, while entitled “XML & Web Services with PHP” will be nearly the opposite and discuss Web Services in general, while glossing over XML. So, I think the two properly balance each other. Marcus and Sara covered PHP extensions brilliantly, but, while WiFi here has been excellent, trying to connect to Sara’s ad hoc network for the presentation hosed my wireless connection, and I couldn’t connect for the remainder of the day from the presentation rooms.
I’m at the Zend/PHP Conference and Expo right now sitting in Robert Richards’s Advanced XML and Web Services tutorial. I’ll be attending Marcus’s and Sara’s Extending PHP tutorial later today. Had a great day yesterday, in which Andrei drove us to wine tastings at two different wineries: Ridge and Picchetti.
I’m flying out to San Jose tomorrow for the Zend/PHP Conference and Expo. Does anyone know the way? ;-)
While at PHP Appalachia, I had the pleasure of meeting David Rasch, the founder of Triangle PHP, which meets in the Raleigh-Durham-Chapel Hill region of North Carolina. One night, by the campfire, David and I launched into a discussion about how newbies learn PHP from current books on the market. He suggested that the format for teaching PHP needs to change and that these books need to start not by teaching PHP from the Web but by introducing newbies to PHP concepts by creating command-line applications. The idea being to introduce them early on to OOP and best practices, rather than trying to get them started fast with a simple “Hello, World” Web site.
Since there will be a substantial number (something like 9 or 10) of
#phpc frequenters in attendance at the Zend/PHP Conference and Expo, we decided it would be cool to print up some t-shirts for fun and wear them at the conference. So, quickly, Aaron Wormus came up with a t-shirt design, and we’re ready to start printing them. Tuesday, October 31 will be the official #phpc wear-your-t-shirt day for conference goers.
If you’re keeping count, you’ll know that there are seven women listed in my blogroll. These seven women are PHP programmers, and I’ve made it a point to include them in my blogroll because women are underrepresented in PHP and these women provide a much-needed voice for all female PHP developers. However, it still seems that there are very few PHP developers who are women, or perhaps, they’re just not very active in the community, which is my hunch (seeing as how there are at least four women who frequent the Atlanta PHP meetings).
Today, php|architect has released the latest in their line of nanobooks: php|architect’s Zend PHP 5 Certification Study Guide. Writing along with Davey Shafik, I’m proud to have been a part of this project.
To me, it’s always very interesting to hear the pre-PHP stories of other PHP programmers – the days before they programmed in PHP, what they did and how they came to call themselves PHP programmers. The stories vary greatly from programmer to programmer, and almost none begin with: “I was working toward a degree in computer science ….” In fact, the more people I talk with, the more I’m convinced that the typical PHP programmer, in fact, sort of got to where they are by an odd arrangement of life circumstances we call coincidences. Almost none elected to be where they are, but nearly all enjoy the work they do, many to a great degree of passion.
Well, I’m heading to PHP Appalachia to get things set up and ready for tomorrow. I hope to keep things regularly updated here, on the PHP Appalachia Web site, on my Flickr blog, and on
#phpappalachia (on Freenode IRC). Join us in any of these places to keep track of our discussions and activities, as I’ll be encouraging attendees to blog and post notes about the event.
We now have an IRC channel for the PHP Appalachia conference:
#phpappalachia on Freenode. Come join us!
I’ve had talks accepted at several conferences this Fall, so I’ll have a fairly busy travel schedule ahead of me. Here are the conferences at which I’ll be speaking. If you happen to attend any of these, be sure to drop by and say “hi.”
I couldn’t sleep tonight, so, instead of doing one of the many other things on my plate that I need to actually work on, I decided to set up the Zend Framework on Ning so that others could clone it and use it for their Ning applications. If you’re unfamliar with Ning, here’s what the Ning developer documentation says about itself:
This is just a reminder to let you know that the extension for reserving your campground spot for PHP Appalachia will expire soon – on August 1, to be exact. After August 1, you will still be able to reserve a spot at the campground, but you will not receive the group discount, nor is there any guarantee that your campsite will be placed with or near the rest of the group. So, sign up today!
Right now, I’m sitting in Greg Stein’s A New Google Service for the Open Source Community presentation at OSCON where he has just announced project hosting on Google Code starting today for open source projects. This service is similar to Sourceforge, but it’s done the Google way. Here are my quick notes from the presentation:
PHP Appalachia is an informal gathering of PHP enthusiasts who just want an excuse to get together and enjoy exchanging information in a relaxed, beautiful setting. There is no set agenda, no formal speakers. Just 3 days of camping and sharing PHP ideas and experiences with people just like you.
I originally posted this to the Atlanta PHP Freelance Advice forum, but I don’t think it’ll get much attention there for a while since we’ve just launched our new boards and they have very little traffic. Thus, I wanted to try it out here to see what the community thinks. This topic came up after an Atlanta PHP meeting a few months ago, and I’ve been asked the same question several times since then. So, what exactly is an acceptable rate for a PHP programmer?
Sir Tim Berners-Lee warned against a two-tiered Internet “dark period” at the WWW2006 conference in late May, and now it appears that we are moving toward that Internet dark age. Yesterday, the US House of Representatives overwhelmingly passed the Communications, Opportunity, Promotion, and Enhancement (COPE) Act of 2006 (H.R. 5252) and rejected the Markey of Massachusetts Amendment (Net Neutrality) to the bill.
Geoff Young posted a note on his use.perl blog about how he’s going to reply from now on when someone asks “Did you test it?” He says that, unless he has actual tests for the application, he’ll now respond, “I poked it and it seemed to work, but it doesn’t have tests.” His point being that actual tests “count for a lot, while a few mouse clicks really don’t.”
The term “Web 2.0” is the marketing brainchild of O’Reilly Media. Yet, it has come to be associated with so many different facets of this new culture of the Internet we see emerging. I, like Ivo Jansch, believe that Web 2.0 is now more about a cultural shift than the technology used. It’s about the way we handle data and communicate with others. It’s about sharing ideas in an open forum. It’s about who holds the knowledge and, thus, the power – in a Web 2.0 world, everyone has free and open access to the knowledge; everyone has the power.
I am a strong supporter of small government. I believe in as little government regulation in our lives as possible, and these beliefs carry over into my feelings on software, patents, and copyrights. I also tend to believe that fewer laws are better, but there are circumstances in which more laws can help protect certain freedoms we take for granted. One of these freedoms is that of “Net Neutrality.”
I had some time to kill and a silly problem to solve, which means here’s some more SimpleXML fun for you:
I was very excited today while glancing through the code in ext/simplexml/simplexml.c to find some, as of yet, undocumented methods in PHP’s SimpleXMLElement class. This discovery came after I’ve spent several hours over the last couple of nights banging my head against the desk to figure out a way to create a class that extends SimpleXMLElement and adds a new method for adding a child, which would have to use DOM in order to work – or so I thought.
It seems I’ve been focused on OPML for the past few posts, and why not? OPML appears to be gaining a lot of attention lately. There’s even an OPML Camp in Boston later this month.
The other day, I came across Scott Johnson’s PHP OPML Reading List. Offering an OPML reading list for others to download is a great idea, and, since I’ve not yet blogged about it, I wanted to point out that I’ve been doing this for a long while now. On my home page, under the “syndicate” heading, is a link to my OPML blogroll. Feel free to import my OPML into your feed reader; that’s what it’s there for. (Please also note that I use SimpleXML to generate the blogroll on my home page from this list.)
This time last year, a single word began a revolution in Web design. Coined and published on February 18, 2005, by May, the word “AJAX” was on everyone’s lips. It soon became the talk of the entire industry, and has revolutionized Web design as we know it – or, at least, it’s given plenty of bloggers lots to talk about. Ajax is old hat now. This year, the word is “Comet.”
Jim Plush’s recent blog post “The Soon to be PHP Boom” reminded me of my October 2005 post “What’s Good for Zend is Good for PHP.” In that post, I observed – from comments made by Marc Andreessen in the Wall Street Journal and Zend’s involvement in the Enterprise – that “the forecast for PHP looks bright and sunny.”
Well, it’s been long enough. It’s time to polish off the ol’ blog and start blogging again. So, while everyone’s down in sunny Orlando blogging about php|tek, I’m sitting right here 12 hours away (by car; 1.5 hours by plane) in Atlanta in my new home office, enjoying the scent of new office furniture – which is most likely just the scent of pressed fiberboard, or something. But, hey, I don’t care how it smells as long as it’s a good tax write-off.
On Thursday, March 2, Atlanta PHP gathered for its usual monthly meeting. However, this time, I decided to try to capture an audio recording of our meeting. The audio from the podcast attempt of our meeting actually turned out much better than I anticipated, given the equipment used to create the recording: my PowerBook’s internal microphone. Yet, the Q&A session we had following Kevin Roberts’s presentation had to be cut for two reasons: a) time and b) it was too hard to hear most of the discussion.
A preview release (v0.1.1) of the Zend Framework is now available, and, so far, I must say that all looks well.
Channel 4’s new show about an IT department is hilarious! Plus, their office is littered with Electronic Frontier Foundation (EFF) stickers. Just check out the door in this pic.
In a pointer from Laura Thomson, Luke Welling has started blogging. Luke and Laura are the authors of the bestselling PHP and MySQL Web Development. They’re from Down Under, and, as such, have cool accents.
Today, PHP Architect and Pro PHP Podcast held their first live podcast (Interview with Andi Gutmans) since PHP Architect announced their “acquisition” of the podcast. However, due to some technical difficulties, the live feed was canceled after about fifteen minutes into the interview, and the audience was unable to participate in the Q&A session at the end.
This is in response to Chris Shiflett’s “Technical Vocabulary and Grammar” post. My comment became so long that I decided to blog it instead.
A while back, when I was doing some research for a talk on server-side security for PHP, I looked into various “secure” methods for setting up a server for multiple users. Despite my search, I couldn’t find a simple and effective solution for managing a server with a large (and untrusted) user base (as is the case with many virtual hosting companies). Sure, there’s PHP’s
safe_mode, but its “safety” is misleading at best. There’s also
open_basedir, which helps a little, but it’s not quite enough. I also looked at jailing Apache (both the hard way and the easier way), but even then, all user directories have to be in the root jail, and any user can still read the readable and write to the writable files of another user in the jail.
Lately, there has been a good deal of discussion on php-general concerning filtering input. Richard Lynch even tossed out a few of his ideas concerning the use of a
$_CLEAN superglobal variable that would merely serve as a reminder to programmers (through its constant use in the PHP manual) to filter input as a “best practice” (see here and here). Furthermore, on Chris Shiflett’s blog, Richard comments that “[s]urely our base solution for minimal Security should be a fundamental part of the PHP language, not some add-on second thought.”
Via Planet Web 2.0, I found this post by Richard MacManus about an English blog discussing Web 2.0 in China: the China Web2.0 Review. Looking at the blog, it appears that China will soon host its own blogging conference in Shanghai.
I’ve been giving a lot of thought to Web 2.0 lately. Specifically, I’ve been thinking about tagging and collective ownership (and sharing) of information. While these aren’t necessarily Web 2.0 in and of themselves – indeed, Web 2.0 is merely (depending on your thought-leader of choice) the notion of the Web as a platform – I think they are becoming integral parts of the concept, and I think they complement one another.
By now, you’ve probably heard of the latest browser craze known as Flock. I call it a craze, and really it is just that; the hype for this browser came when it was announced and long before there was any code or builds to view. It seems that this kind of hype occurs all too often these days, and I even find myself wrapped up in it occasionally. And why not? It feels good to know that the industry wheels are churning again, that there’s money in the air – or, at least, the hint of it, anyway.
I’ve just finished reading Chris Shiflett’s Essential PHP Security, and I have to say that it’s a great book. It’s very small – weighing in at only 109 pages (including the appendices and index) – but I think Chris feels this is its main draw. Indeed, it’s a quick and easy read, but that doesn’t mean it’s lacking in thoughtful and careful attention to detail – on the contrary. Rather, Chris has created a very concise and easy-to-read guide to Web application security. The language is clear, as are the examples.
I began this year with the optimistic outlook that it would be the “year of PHP.” Indeed, little did I know that this hopeful view would come true. With astounding and visionary statements from such prominent figures as Marc Andreessen, who recently joined the board of Zend Technologies, Inc. – “when it comes to the Web and Web applications, Java is not the right language” and “PHP is to 2005 what Java was to 1995” – the forecast for PHP looks bright and sunny.
You’ve heard a lot of buzz about security in PHP, lately, but you’re still confused about this ‘input filtering’ thing? Ben Ramsey lends a helping hand in part 2 of his mini-series on this technique.
So, I decided to have a little bit of fun, and I was feeling creative one day. Thus, inspired by George Schlossnagle, who’s made his own PHP T-shirts, and a picture I took of Chris Shiflett during his talk at OSCON, I decided to create PHP’s very own security mantra T-shirt bearing none other than the likeness of Chris Shiflett. I hope I don’t owe him money for this…maybe just a beer, but no money, Chris.
I just thought I’d point out that Andrei Zmievski announced today the official merger of Unicode support into PHP. Those who decide to make modifications to certain parts of the codebase during this time, says Zmievski, will suffer painful consequences (e.g. memorizing the entire Unicode character set…in binary).
This year has seen an increased focus on PHP security, and this is good for the language, developers, and business community. One phrase that comes to mind when discussing secure coding practices is Chris Shiflett’s mantra of ‘filter input, escape output.’ While we know what this means in a general sense, practical examples elude us. Ben Ramsey provides part one of his input filtering series, chock full of code examples.
Has your blog (or that of a friend) been inundated with comment spam? Columnist Ben Ramsey brings back the Tips & Tricks column with an overview of ways to prevent this annoying side-effect of running a publicly-commentable website.
Tomorrow marks Atlanta PHP’s fourth consecutive, regular meeting at New Horizons in Tucker, GA. Originally, Matt Kern was slated to present a talk on Ajax, but he is now gearing up to move to Oregon, so he is not able to prepare his presentation. Thus, I have taken up the reigns again, and I will be presenting a talk that I’m preparing for some of the fall conferences (in the event that my proposals are selected).
Take part in this MIT survey to help them gather data about bloggers and the blogging phenomenon.
I’ve been toying with the realization of what this means over the past few days – ever since I upgraded to Tiger, actually. I’ve also searched around the Web for articles, but I haven’t found any, which begs the question: Has no one yet realized what’s happening here, or is everyone so entrenched in the Windows vs. Linux discussions that this is completely escaping the radar of the Web development community?
I just upgraded my Mac to Tiger this morning and had some fun playing with the dashboard widgets (and downloading new ones).
I was recently asked about my thoughts on Ajax, and I thought my response would make for a good, though-provoking post. Here’s how I responded:
I created a php-news cloud at TagCloud, a new service that launched this week. TagCloud accepts RSS feeds and uses the Yahoo! Content Analysis Web service to create an automated folksonomy for the posts in the feeds. In short, it guesses at the tags for each post (based on the post content) and organizes the posts according to those tags. Then, it creates a “cloud” of the tags to show frequency.
Ten years ago, when Rasmus Lerdorf gave birth to Personal Home Page Tools 1.0 little did we know that it would grow and mature into the PHP: Hypertext Preprocessor that it is today. For that matter, far be it from any to predict (at that time) that an entire sub-industry would be created from it. So, today, on the 10th birthday of PHP, let me share my story and early experience with PHP, as others have been doing.
Atlanta PHP is having its third regular meeting in a row tomorrow at New Horizons in Tucker, GA. While the location may not be the greatest for everyone, it’s a good thing to have a consistent location when just starting out like this, and I think it’s been quite an accomplishment to have three meetings in a row. Thanks to George Jempty who got the ball rolling and thanks to Matt Kern who got our Web site in order. And especially thanks to all the members who have attended meetings or supported us in other ways!
FYI, the materials for the 2005 International PHP Conference Spring Edition are being posted to the conference materials page as they become available (in other words: when the speakers finally get around to e-mailing them to S&S.)
For those of you who have been waiting for the slides for my IPC talks, I have posted them on my talks page. There, you will find PDFs for my frameworks, PHP security, and PHP-GTK talks. Enjoy.
Aside from the learning and networking aspects of conferences, another great by-product of attending a conference is the sharing of ideas. I came away from the International PHP Conference reinvigorated with new ideas and techniques and applications I want to try out. Also, I came away with a great definition for the ever-intangible “enterprise framework.”
As I mentioned earlier, I was unable to find any time to blog during the week of the International PHP Conference in Amsterdam. This was due to several factors including, but not limited to, the lack of high-speed Internet connectivity and the sheer fact that I was largely unprepared for my talks. Sure, I had my outlines and slides, but I didn’t quite have all the examples and screenshots on the slides. This required much of my time during the early part of the trip, and so my brain didn’t want to think in order to attempt any sort of formulation of thoughts about the conference or the trip in general.
Well, I didn’t blog during the conference at all, which is a great shame. I had hoped that I would be more active with the official conference blog, as well, but I didn’t end up posting anything to this. Of course, a great hinderance to posting was the great lack of Internet connectivity here. We can only connect to the Internet from the hotel lobby, and then we must pay for specified lengths of time. The conference center wasn’t much better, though Toby set up a router, but I wasn’t able to sit down long enough during the breaks to formulate any coherent thoughts to post.
8:10am CET (Central European Time) marked the end of my neverending 9-hour flight from Atlanta to Amsterdam. Unfortunately for me, this was also 2:10am EDT, the time my body thought it was.
Just taking a few minutes to have some fun with Google Maps. Here’s the Tom Moreland Interchange in Atlanta (a.k.a. Spaghetti Junction).
Egads! When will Google’s innovation find its end?!
As I mentioned earlier, I had the privilege of meeting Esther Dyson and briefly discussing Yahoo! 360. Here’re a few links to blog posts by others who attended what I’m calling the “360 summit” that Yahoo! hosted on Thursday:
Really only a two-day event, the NTC wrapped up with a closing reception and a few words from the new N-TEN director. The crowd of nearly 800 attendees had thinned down to only a hundred or so, and I was left alone to fend for myself, so I found Andy and the NPower gang (since I had met them earlier through my boss) and decided to go out to dinner with them.
Esther Dyson (of ICANN and EFF fame, among many other things) gave a sort of informal interview this morning at the NTC in Chicago. The interview had this “fireside chat” feel to it with two antique-looking chairs seated at angles on the stage, plants surrounding them. You could tell they were trying to evoke some sort of cozy atmosphere. I’m not sure whether the atmosphere went over well, nor did the interview; the interviewer did not seem to steer the questions in the direction suggested by the title of the plenary: “What’s New. What’s Next. What Matters.” Then again, I was too busy going through my feedreader to pay much attention.
So, I could shoot myself in the foot for forgetting to bring my digital camera for this trip. Before walking out the door, I distinctly remember hearing my wife say, “Don’t forget to take the camera; I put it with your stuff.” But what do I do? I forget within moments to grab the camera. What’s more is that I would’ve loved to have had my picture taken with a few people I’ve met while here. So, I’ll use this time to drop a few names of the more prominent (IMO) and, to me, fascinating figures I’ve met:
It’s clear from Six Apart’s acquisition of Live Journal, Yahoo!’s purchase of Flickr, the Yahoo! 360 service, and Microsoft’s MSN Spaces service that the blogosphere is changing. Jeremy Zawodny posted yesterday a few of his thoughts on where he thinks the future of certain blogging software and services is headed. It’s a fascinating topic to consider.
Today, Chris Shiflett announced the launch of Brain Bulb, his new PHP consultancy. His new venture is already showing signs of great success, and the future looks promising. I thought I’d take a moment to promote him.
Thanks to Richard Lynch and Chicago PHP, it looks like we’ll be having a nice PHP get-together in Chicago next Thursday night, March 24 at 6:00 PM CST. Details follow:
This is sort of a continuation of yesterday’s post. I’ve received one comment, and I intend to respond as soon as I hear from several others.
I will be attending Penguin Day Chicago (a conference for non-profits and open-source developers to network and “demystify free and open source software for social change organizations”) and am interested in whether anyone else from the PHP community will be in attendance. The conference is on Saturday, March 26 and is offered for the low price of $60 to individuals.
As I’ve mentioned before, eWeek is my favorite industry news magazine. So, when Chris Shiflett mentioned to me yesterday that eWeek contacted him in regard to the PHP Security Consortium (PHPSC), I was ecstatic. It appears that the folks at eWeek have been keeping tabs on PHP–not that they don’t cover open source technologies; on the contrary, they give generous attention to the open source movement and Linux. I was just a little bit surprised to see them interested in covering PHP.
The PHP Security Consortium (PHPSC) received its first Slashdot post today. Chris was worried about whether the server could handle heavy traffic. I guess this will be its first true traffic test. If it can handle this, it can handle just about anything. ;-)
An international group of PHP experts today announced the official launch of the PHP Security Consortium (PHPSC), a group whose mission is to promote secure programming practices within the PHP community through education and exposition while maintaining high ethical standards.
Yesterday, I was informed that several of my proposals have been accepted, and I will be presenting at the International PHP Conference 2005 - Spring Edition in Amsterdam in May.
What can I say? This post is really a blatant attempt to help the search-engine page rank of the portrait studio my wife works for. I’m shameless.
Via Donna Wentworth of Copyfight: IBM announced today that they will be granting open access to 500 of its patents to developers of open-source software. This does not mean that IBM is no longer interested in the patents or will no longer hold them. On the contrary, IBM plans to maintain ownership of the patents while providing royalty-free access to open-source developers. This move will likely spur open-source development of technologies recently restricted. Specifically, Linux is poised to benefit greatly.
I rarely use this blog to discuss something that’s not related to technology, but someone sent me a link to these satellite before and after pictures of the devastation caused by the massive ocean wave. What this wave did is incredibly awesome with all the meaning that this word used to embody.
I’ve upgraded my blog to Wordpress 1.5 beta 1 (the latest nightly snapshot). Thus, things look a bit different around here, in case you haven’t noticed.
Since I like to copy Chris Shiflett as much as possible, I decided to create my own list of 2004 highlights. My list is relatively short, though it’s a start, and I’m quite proud of my personal achievements. I began 2004 as a no-name in PHP-dom; now, at least five people know who I am.
In a recent post by Tim Bray, a Technology Director at Sun Microsystems, he describes a “summit” held in which the leading developers of popular dynamic languages were invited to Sun to spend the day discussing issues in and surrounding the use of their languages and the projects created to make them work on the Java platform. I speak mainly of Jython (Python on Java) and Groovy (a mixture of Python, Ruby, Smalltalk, and Java).
Over 12 million Internet domains worldwide use the PHP language to power their websites. If you are a programmer included in this group, or would like to be one, you should pick up a copy of PHP Unleashed. The definitive guide in PHP programming, PHP Unleashed thoroughly and authoritatively covers the release of PHP 5, as well as advanced topics not found in other books.
In his article, Ben takes a speculative look ahead to PHP 6 and the Parrot VM.
PHPCommunity.org has adopted a rudimentary set of policies and procedures. This adoption is a step in the right direction to get the early momentum of the community moving again. Included is a “silence is acceptance” policy and a 72-hour rule for decisions. In addition, those proposing actions must be ready and willing to carry out the tasks of fulfilling the proposal.
I’m currently looking for case studies of companies that have used a PHP-based application framework. The particular framework is unimportant, as long as it is PHP-based.
Since, John Coggeshall posted about this today, I suppose it’s okay for me to do the same. :-)
It seems that php|architect will be launching two series of books next year. One, their “php|architect Guides,” will feature books focused on a single, niche subject of 250-300 pages. The other series, presently referred to as “NanoBooks,” will be less than 100 pages (basically, these are described as being like expounded-upon php|a articles).
It’s been three weeks since I passed the Zend PHP Certification Exam, and I’ve been waiting to receive my certificate before I blogged on it so that I could scan it and display an image of what it looks like.
Today, I had lunch with Patrick Reilly and Camden Spiller. Both were in town for the LISA conference at the Atlanta Marriott Marquis, so I met them there and we walked a few blocks to Max Lager’s for lunch.
Indu Britto released today a preview of the 01.2005 issue contents of PHP Magazine. Included will be Aaron Wormus’s coverage of the PHP Conference and MySQL ComCon, as well as articles covering eCommerce solutions with PHP, MySQL 5.0, creating a “J2EE-like environment with PHP,” XML and Web services, and my article on Parrot and the Pint PHP interpreter for Parrot.
Via Tom Sommer’s weblog, I can now follow along with the activities taking place at the PHP Conference and MySQL ComCon. They’ll have live blogging from the conference floor so those of us who can’t make it to the conference can at least live vicariously through blogs.
I have one word for these cry-babies:
I’ve scheduled my Zend PHP Certification exam appointment at a local testing center for Friday, October 29 at 2:00 PM.
Today, Atlanta PHP softly announces their “soft launch.” That is, this is a launch without all the bells and whistles and media attention generated from the distribution of press releases. There will be a time for that. For now, we wish to direct the attention of prospective members and interested parties to our mailing lists, which are now live, active, and ready for subscriptions.
I found out about del.icio.us through a post by Chris Shiflett. In short, it’s a place to store and share your bookmarks in a central location, and it has a built-in community aspect, showing who has bookmarked the same links. I’ve already got over 125 bookmarks in my collection.
I’m looking for any notes or slides for the OSCon session “Chasing the Dragon: Compiling PHP to Run on Parrot.” If anyone has anything related to this session, please send it to me ASAP.
This morning, via Zak, I heard about MySQL ComCon, which occurs concurrently with International PHP Conference in Frankfurt, Germany. Both conferences are hosted by the good folks at Software & Support Verlag.
Back in March, I mentioned a MySQL FOSS Exception drafted to allow other types of FOSS licensing models to use and distribute MySQL libraries. Apparently, questions about MySQL licensing issues continue to drive developers insane, so Zak Greant has written an article for PHP Magazine that discusses “The Top 7 MySQL Licensing Questions.”
I attended “America’s largest, multi-media, popular arts convention,” Dragon*Con, this weekend. I went a few years back, so it was a privilege for me to go again this year. There are all sorts of tracks and panels focusing on a wide variety of topics. My favorites include the TrekTrak and the Tolkien Track hosted by TheOneRing.net. However, I noticed a track by the name of Electronic Frontiers Forums, hosted by the (now defunct?) Electronic Frontiers Georgia group, which is associated with the EFF. While they offered a wide variety of panels covering such topics as “Web Cam Girls” and the “FCC Broadcast Flag,” they didn’t offer much discussion on more technical topics for the hard core programmer. Still, their discussions on Web culture did intrigue me, and since sociology and Web culture are among my interests, I managed to make it to the “My So-Called LiveJournal (.com)” panel.
I just spent the past weekend with my wife at Dragon*Con It was a great and exciting convention, complete with all the geeks, freaks, and their costumes.
A while back I mentioned a problem I had with seeing the changes made to PHP after running a
make install. I couldn’t see the new build date or the changes in
phpinfo(), nor could I see the new build date with
php -v. I was perplexed and frustrated.
From a Slashdot post today is the official Linux birthday!
PHP-GTK has been around for several years now, and you may have heard what it can do - allow developers to create graphical applications using PHP. Egads! It sounds as if it’s the Holy Grail of PHP, something that can take PHP to new heights, breaking it free from the bonds of the Web. In fact, it can do just that, as we see with a practical application: a simple text editor.
I’m proud of my degree. It makes me happy that I have one and that I can consider myself worth more to people in the business world because I have it. But I’m a programmer, and my degree, well, let’s just say that it has something to do with a language and that’s where the similarities stop.
After waiting around for several weeks with the words “hope to roll PHP 5.0.1 soon” or even “tomorrow,” the day has finally come, and I wasn’t paying any attention because I was too busy at the office trying to wrap things up on my last day.
I’m just trying out a nifty syntax hiliter plugin for Wordpress. This particular plugin handles HTML, CSS, PHP, Java, and SQL. I’ve modified it a little bit to suit my own personal tastes.
And you thought they were done.
When you hit my site today, you probably noticed a few different things. The first thing you noticed may have been that you were whisked away to a new URL. The second, and most noticable, thing was the new design.
Each week, I receive a complimentary issue of eWeek in my mailbox. I receive complimentary issues of other magazines, which I usually promptly toss aside, but I never toss aside eWeek. I could make a nice advertising plug for eWeek right now, but I won’t. I’ll simply say this: I read it because of Jim Rapoza’s “Tech Directions” column.
I have recently accepted a Web application development position (heavily involving PHP) at Hands On Network (formerly CityCares) in downtown Atlanta. This leaves the position I have with my previous employer, EUREKA! Interactive, wide open, and he needs a developer that has a strong command of PHP (and also ASP) to take over where I’ve left off. Because of my good relationship with him, I have informed him that I would try to provide him with a list of local PHP developers before I leave, so that he has an easier time finding someone to replace me. The company is a creative place to work, and the culture is very relaxed.
I logged on today to find a very interesting and controversial article at DevShed.com (via this post) concerning the future direction of PHP. In short, the author surmises that the changes made to PHP 5, essentially making it more Java-like, are a step on the path to a Sun-influenced, if not owned, PHP. It presents some stark evidence, all circumstantial of course, that points to this direction, saying that “the long-lasting popularity of LAMP environments (Linux, Apache, MySQL, PHP) will soon be replaced by SLOP environments (Sun, Linux, Oracle, PHP).”
The Atlanta PHP front has been very slow and pretty much non-existant since March. In fact, the last time I spoke with Matt Kern about it was probably four or five months ago. I’ve not seen him in #atlphp on Freenode IRC in a while. Things had been so slow that I thought I might put up something temporary at atlantaphp.org, a domain I own that forwards to Matt’s atlphp.org.
Yes, it’s true. I have succumbed to the level of blogging about not blogging. It’s the lowest form of the blog.
So, I’m not the only one who’s noticed an increase in interest here. Harry Fuecks mentioned in his weblog yesterday that many ASP 3.0 developers are moving to PHP because of ASP.NET. I’m one of them, though I made the complete switch over a year ago.
One of the biggest discussions on the pear-dev mailing list right now is that of the HTML::Template_Savant proposal. Lots of people like it, others still want to do away with template engines in PEAR altogether. I won’t go into all the details about what Savant is (you can figure that out for yourself), but I will say that this discussion is reshaping the way we think of HTML templating engines in PEAR – for the better, IMO.
There is an interesting article by Andy Tanenbaum defending Linux and the history of Unix. Apparently, there are some out there who would like to claim that Linus Torvalds was not the sole developer of Linux and that he plagiarized code from Unix, MINIX, and elsewhere.
Aaron Wormus has created an “unofficial” PEAR and PECL Weblog titled “Of Pears and Pickles” that tracks news and updates in and about PEAR and PECL. It’s a very useful and informative site, and I’ve bookmarked it and set it up in my Firefox RSS feeds. Good job, Aaron!
In this month’s issue of PHP Magazine (which I have yet to receive, but I suppose it’s on its way), Chris Shiflett features PHPCommunity.org. The article talks a lot about how the project started and its current progress. However, it’s titled “PHP Community: Part I” so I’m looking forward to the next installment to see what he has to say, though I feel that part two may come as we grow nearer to the site launch.
Speaking of Google, I found a very interesting blog concerning their very massive clustered computer. It’s well worth the read.
A while back, I wrote about Bloomba and how Alison Overholt of Fast Company raved over its powerful search features. At the time, I dismissed the search features, my mind still lingering in the world of distinct folders and locations to store e-mail messages, files, etc. However, after reading around other places (I’ve looked for links but could find none), it seems that searching is the wave of the future. As systems and applications seek to be more and more user-friendly, they are turning to more abstract, search-based designs. In a sense, I guess they’re becoming more like the human brain (granted, I know very little about how the human brain works).
I’ve been very busy lately with my real job, so I have neglected to blog in a while, but much has been happening, so it would seem to me, in the news (especially with Microsoft and Sun and Gmail), but I’ll post on these later. For now, let me promote FCKeditor. In the process of developing a CMS for a government Web site, it was decided that we needed a WYSIWYG editor that we could embed in a Web page and use as part of our system. We looked around at many different options and decided to go with Rich Editor, a paid and licensed editor that was supposed to work well in all browsers.
Chris Shiflett announced the new PHPCommunity.org logo on his blog yesterday. Peter Jovanovic and Richard Davey are the winning artists.
I was hunting around today for a good RSS reader, when I found something called Pluck. It sounded interesting enough, so I decided to check it out. Boasting claims of no adware/spyware, I thought, “Well, maybe it’s okay.” Still, claims or no claims, I am always wary of freeware. Nonetheless, I wanted to see what it could do and whether it was what I wanted. In short, it wasn’t. It was a plugin for Microsoft Internet Explorer. This planted another seed in my head. “What if,” thought I, “Mozilla has such an extension for Firefox?” So, I proceeded to Mozilla.org.
Since everyone and his brother has mentioned this on their blogs, I feel compelled to do the same. Yahoo! News posted an article on PHP 5. In all seriousness, it’s actually a good article and features quotes from PHP experts John Coggeshall and George Schlossnagle.
Today, I received an e-mail in response to my comments on Alison Overholt’s “The Google of E-mail?” from Ms. Overholt herself of Fast Company She directed me to a page where she has posted several reader comments that she has received since her article went to press.
Today, I had the pleasure of meeting both Matt and Jeff face-to-face to talk about the formation of Atlanta PHP. We have a lot to accomplish before we finalize anything dealing with organizational structure, but we agreed that the Web site, a mission statement, and a mailing list are of utmost importance for starting. So, look for these features soon at atlphp.org.
Just a few moments ago, I heard some steps on my front porch. It was the mail carrier, and she left Chris Shiflett’s book HTTP Developer’s Handbook at my front door! And, yesterday, the mail person came bearing Advanced PHP Programming, George Schlossnagle’s book.
For those interested in Atlanta PHP, Matt has set up an IRC channel (#atlphp) on Freenode. We are working on getting some information up at the site (atlphp.org) and a mailing list once DNS issues are resolved. Until then, join us at #atlphp!
When relying on your end-user to supply information in the proper format, you’re S.O.L. when it comes to doing anything with that data. It’s best to use some proper PHP tools to validate your data and make sure it’s in a format your application can read before passing it along to other places. Follow me as I take a look at validating user-entered data in this first installment of what I hope to be a continuing series.
Since the news of PHPCommunity.org reached me and I was connected to the New York PHP Web site through Chris Shiflett’s site, I have been toying with the idea of starting a PHP group in Atlanta, Georgia. It strikes me as odd that there isn’t already one.
Rich Bowen mentioned this little “feud” in a short post on his Web site. According to the GNU web site, the Apache Software License version 2.0 (ASL 2.0) is listed as being incompatible with the GPL. Apache claims they have no clue where this comes from, and they stand by their belief that the ASL 2.0 is, in fact, compatible with the GPL. Apparently, it is believed that Slashdot may be fueling this “inaccurate” perception.
Today on the PHP-general mailing list, a question was asked regarding the usage of a new class in PHP5 beta 4. Being the ignorant programmer that I am, I responded asking where this person saw the class in question. I thought it was perhaps a PEAR package (since it wasn’t in the PHP manual) and that the person was merely a newbie asking a dumb question. (You know the old adage that there are no stupid questions; well, I disagree when the PHP manual has been completely overlooked in favor of just asking blankly on the mailing list.)
I just read “The Google of Email?” in the March issue of Fast Company. In this article, Alison Overholt examines flaws in Microsoft Outlook and looks for a competing e-mail client to take its place. The good alternative client, she concludes, is Bloomba. The folks at Bloomba must’ve paid her for this blatant attempt at publicity; she doesn’t review any other competitors. The major reason she recommends Bloomba is for its search features. The “powerful [search] feature makes folders largely unnecessary,” says Overholt.
I’m working on a personal project that I will eventually release under the GNU General Public License (GPL) in order to benefit the community. I would tell you the details of the project, but, since it’s another content management system programmed with PHP, you’d probably ask why we need another one like you need a hole in your head. So, let me humor myself and build it.
Back in December 2003, Chris Shiflett announced on his Web site (an announcement that was carried over to PHP.net) his intention to launch a site for the PHP community by the PHP community. He filtered through mass amounts of e-mail in response to the announcment and set up a wiki at PHPCommunity.org. Since then, the site following has grown by leaps and bounds, though the site lauch may not be for quite some time. This is an exciting opportunity for the PHP community, and I’m excited to be involved. The advent of this community site has inspired me to finally put this Web site together and start doing what I enjoy most: writing.