I love the PHP community. We have a very diverse group of people in our community. Men, women, straight, gay, white, black, yellow, red, vegetarians, vegans, democrats, republicans, labour, tory, zend framework users, symfony users, people who hate frameworks, people who would prefer to write most of their code in C and compile it to a PHP extension. And all these people come together at conferences to eat, drink, listen, learn, make jokes and talk business.
A project that I'm working on right now required me to migrate data from the existing database to the new database and database structure. Since the application is built on top of Symfony2, I decided to write a Command that would take care of the migration. I ran into an issue though: Doctrine2 insisted on creating new IDs where I wanted to keep the old one. The solution turned out to be really simple.
It's no secret that I like the PHPNorthWest Conference. It's no secret that I think it is the best PHP conference in the world. If you have some kind of opportunity to make it to Manchester for PHPNW, you should. I'm not joking. You should. As always, I submitted some talks and I'm happy to be accepted again. Being accepted as a speaker also allows me to help someone else go to PHPNW.
The PHP TestFest that Dutch usergroups PFZ.nl and AmsterdamPHP organized last saturday was a huge success. About 15 people made their way to the office of WEBclusive to collaborate with three key figures from the PHP-world, who travelled to Amsterdam to be a mentor, to write tests for PHP.
This morning, I had a nice e-mail in my mailbox telling me I got accepted into the NorthEast PHP conference with no less than 3(!) topics! Awesome, and I would love to be part of the conference, however... the conference is organized by the community, and the way they work, there is no travel reimbursement.
For a project I am working on I needed to iterate over all .xml files in a specific directory. I started out with a DirectoryIterator, then considered I didn't want the XML filtering to take place inside my foreach loop. I decided to add a FilterIterator to the setup, but then felt this was not the right solution either. So I turned to my favorite SPL guru, Joshua Thijssen, to see if I was overseeing some kind of filter-option in the DirectoryIterator. I didn't, but I did oversee something else: GlobIterator.
I'm currently working on a project where I need to curl to an external server to get some information. If this takes too long, I fall back to a local solution. The timeout for this should be really, really low, so we decided on a 250ms timeout. While testing with this timeout feature, for some reason it *always* used the local fallback. I couldn't figure out why, as when I did a manual curl to the external server, it took 50ms at maximum, way below the timeout value. Turns out it is a problem with libcurl.
Today I needed to get a client application up and running on my local system. This application uses the Geoip PECL package, so I needed to get this up and running. This turned out to be slightly more difficult than just a PECL install, as you're missing some libraries by default, so here is my log of things to do to get it up and running.
Right, end of the year, time to look back. Let's have a look at the things that have happened this year. If you've read my PHP|architect column in the december issue, you might've already read some things, but my annual "looking back" post here is based more on my blog. So, let's have a look.
As the year ends, we're looking back at an interesting year. More of that you'll also find in the PHP|architect december community column, which I've written looking back at the year a bit. But that is about the PHP community, not about the global community. We should be grateful for living "in the west", where despite economic issues, we live a good and usually healthy life. And if we're ill, we can get treated. And depending on social system and insurance, we still get paid, even if we can't work for a while. There are places in the world where this isn't the case. I personally believe we have a responsibility to support those that don't have all the opportunities we have.
What to do when you want to migrate to Symfony2, but can't invest the time into rewriting your whole application at once? I get this questions sometimes, and I've asked myself as well for some time already. Talking to other people, I found I was not the only person struggling with this issue. Wrapping Symfony2 around your old application is one option, and I've found this works well in some situations. To automate this, I wrote a very simple wrapper bundle: IngewikkeldWrapperBundle.
Just a little heads-up for people working with Symfony2/Twig: Today I ran into an issue that I couldn't figure out. "It shouldn't be this hard..." I thought, and indeed, it turned out not to be as hard. It's just easy to overlook: Make sure to close your twig tags correctly
As I've found out after starting my own company, training is a hot topic. On the one hand, everyone wants and needs training, but on the other hand, training seems to be really expensive. And while in-depth expert training has a good value (and I deliver those on a regular basis), I felt there should be a way for web developers to stay up-to-date on recent developments in a quick and not too expensive way. Talking with friend, old colleague and soon-to-be freelancer Joshua Thijssen I found someone who felt the same way. This is what lay at the root of a new training concept we have just launched: Techademy.
I'm happy and proud to announce that I will be speaking at the D-Day conference in Finland. I will be doing my "Don't use a screw when you need a nail" talk there, a talk I've done before at Symfony Live in San Francisco and Paris and highly enjoyed doing.
In August of last year, I wrote this excited blogpost about phpBB joining the Symfony2 camp by announcing they were going to use Symfony2 as the basis for their new version. Things like this are exciting, because it will allow several communities to work on the same software: Symfony2 developers would be able to help with the development of phpBB, and the other way around. Now, the same thing is happening with Drupal. Even though they are not adopting the full Symfony2 stack, they have just started implementing some Symfony2 components.
I have been aware of Silex for a while as a nice microframework based on Symfony2, and have looked into it a couple of times to see if it would be useful for a project. So far though, the projects I was working on seemed to need more than just Silex, so I picked Symfony2 instead. This morning, I decided to dig into Silex a bit more with a real-world project I still wanted to develop myself: A URL shortener.
Some time ago, inspired by the #linktuesday initiative Lorna started, I built this relatively simple website which I put on LinkTuesday.com. It fetches tweets from Twitter with the #linktuesday hashtag, groups them together and then displays them in various rankings. Insanely simple idea, insanely simple execution.
The PHP job market is booming. Lots of companies are looking for (good) developers, but these are hard to find. Lots of developers are looking for a (good) job, but these are equally hard to find. Wait, that sounds strange... but it's true.
It's been a busy conference year for me. In the first half of 2011, I was away from home for (on average) one week every month. While I've really enjoyed all the conferences, it's been busy. A bit too busy. So for the rest of the year, I've decided to take it a bit slower. Basically, I'll be at 4 conferences, and that's it.
Yesterday there was a bit of discussion after uncon superstar Keith Casey mentioned he had been accepted to speak at an event, but the event required him to pay for his ticket. The discussion focussed on this specific event, but the topic is wider of course. And there are valid reasons for doing this, but you can also make mistakes with it.
Today, a riotfight strong discussion happened on Twitter regarding PHP. Some guy forked PHP and made some changes to it, then released his package on his own site. Some of the improvements were clearly just to please his own taste, others were definitely useful additions. The discussion following all this was interesting. Not just the one on Twitter, but I also got a more lengthy response through e-mail. While responding to that, I thought I'd write a blogpost as well to offer my 2 cents on what I think PHP needs.
Inspired by Jan Willem Eshuis who did a series in Dutch on his favorite tools (both software and hardware), I wanted to do a similar thing. Why? To share my toolset which could make it easier for other developers to find the right tools for their specific situation. I'm not saying my tools are the best for everyone, but who knows someone might benefit from the tools I use, so I want to share it with the world. Where Jan Willem started with his hardware, I'm going to start with the software, as to me, the software is way more important than the hardware it runs on
There's two PHP conferences right now that have their CfP open where I'm one of the people who will be selecting the proposals. I would like to invite everyone to submit to these CfPs as both conferences are awesome!
People using PHP that want API documentation usually automatically think of phpDocumentor, which used to be the de facto standard for generating API documentation from your PHP projects. However, the project has been dormant for a long time now and definitely does not support new PHP features such as namespaces, so it was really time to look for an alternative. In this blogpost, I'll show you how I set up my Jenkins CI to use DocBlox, one of the new API documentation generators currently available.
The upcoming month is a crazy month in terms of PHP conferences. There is a lot of very good conferences going on, and I'm very happy to be attending three of them! I will either be speaking or hosting an uncon. It is a busy month and I'm looking forward to it, and I hope to see you at one of these!
Today I encountered a situation I've not encountered before: I have a project-wide stylesheet that should be used for everything, except one specific module that has different (brandable) stylesheets. I created a view.yml for this module with a different stylesheet, but of course the configuration files are merged so it doesn't actually overwrite the main stylesheet file. And this wasn't really what I needed here.
In January I announced that I had become a Sensio training partner. So far, I had not scheduled any training sessions though. With Symfony2 nearing completion though, it's time to change that, and I've finally scheduled my first training session on Symfony2.
Recently in an article (Dutch) in Dutch publication "Webwereld", Drupal advocate and developer Bèr Kessels stated that while Drupal is an awesome CMS, it is not a good fit for government websites and other big projects. An interesting statement for someone from the Drupal camp to make. While Bèr has some valid points, his statements are a bit too generic for my liking.
Over the past years I've done several talks at conferences on how to contribute to the community. The ones that most stood out to me so far have been the talks in Chicago at PHP|Tek together with my friend Lorna Mitchell, and the one in Paris last year at Symfony Live. In all those talks, I tell people that a good way to contribute to the community is to write blogposts.
So as you might or might not have noticed yet, PHPBenelux is organizing a new contest in collaboration with Microsoft: The PHP on Azure contest. The idea is simple: Build an application in PHP that runs on the Windows Azure platform. I think it's a great idea to participate, let me try to tell you why.
Some of you might have already seen me presenting my "Would you like docs with that?" talk at a conference, as I've done it a couple of times already. If you've not seen it yet and would like to, this is your chance!
Quite some time ago, I can't remember exactly when and I'm too lazy to research it, this awesome PHP magazine went from a print+PDF version to PDF-only. I was bummed. I can easily read long texts from paper (and the printed magazine looked *awesome*), but I have a hard time reading articles from my laptop screen. My eyes quickly get tired. So with the magazine turning PDF-only, an end came to my following the magazine actively. I thought the magazine's management has lost all touch with reality, with what developers wanted. Had they?
For a project I am working on right now, I needed to generate barcodes and QR codes. Looking around for solutions for the barcodes I quickly found Zend_Barcode (thanks to someone pointing me to it, by the way. I had not expected a barcode generator in Zend). For QR, it was slightly harder to find a good solution. A quick question on Twitter helped a lot. In the end, it boiled down to two options: PHP QR Code and using the Google Chart API.
For some time now I've been working on a partnership, and it is with great pride and happiness that I can now officially announce it: My company Ingewikkeld is now an official Sensio trainingpartner for Benelux and Germany. This means that as of January 1st, I am now able to officially offer all Sensio courses in these countries.
NOS is a dutch public broadcasting organization focussing mostly on news. Some months ago, NOS announced opening up their data by offering an API which would give access to (some of) their data. Today, the API is opened up to the public and developers who requested API keys will start receiving them. To make it easier for developers to use the API, I've developed a PHP5.3 library.
I am very happy to announce that I will be speaking at both of next year's editions of Symfony Live. In February I will be travelling to San Francisco for the American edition of Symfony Live, and in March I will be present at the European edition of Symfony Live in Paris. At both conferences I will be giving the same talk: Don't use a screw when you need a nail.
So earlier this week I attended this year's Fall Edition of the International PHP Conference in Mainz. They were celebrating their 10th anniversary (with waffles!) and had an excellent schedule again. I was scheduled for given two talks but took the opportunity to also attend many of the conference's talks. And obviously I also was present in the hallway track for quite a while. Let's see what I learned at the IPC.
It's going to be an interesting week in October, when I'm speaking at SymfonyDay right before the weekend, then doing the International PHP Conference right after. But it's going to be a PHP-filled week for starting the 9th of October. In Cologne I'll be doing a workshop on starting development with symfony, and in Mainz I'll be speaking about documentation and integrating symfony and Zend Framework.
Earlier this year at the Symfony Live event in Paris, I spoke with Nils Adermann, the new lead developer of the phpBB software. At the conference it was announced that phpBB was considering moving to a Symfony basis for their upcoming version 4. Since then, an RFC was posted and given the schedule for the Libertyvasion conference organized by phpBB, they're gearing up to dive deep into Symfony. This article reflects the thoughts I've offered at the Libertyvasion Conference on the combining of powers of phpBB and Symfony.
About a month ago my good friend Lorna Mitchell put out a call for stories on how working with Open Source has influenced people's careers. Given that a lot of my recent career has been driven by my involvement in Open Source, I shared my story with Lorna. But I also wanted to share some of my story with everyone. So here is my story and opinion on how Open Source can influence your career in a positive way.
Time for a new adventure. Last monday, my wife Marjolein and I visited the local Chamber of Commerce to register our new company: Ingewikkeld. We're both doing completely different things, but we've decided to capture both into a single company because it saves us a shitload of administrative work, and since we're married anyway, it doesn't really matter. I (could you have expected something else?) will be offering (PHP) development, consultancy and training services, and my wife will be a baby wearing consultant.
This week there was an interesting discussion on twitter between several people from the PHP community on the use of access modifiers, and why things should be public, protected or private, or why not. The thing that triggered this was the fact that the new Symfony2 Coding Style disallows the usage of private methods. This discussion earlier on triggered Lukas Smith to post his opinion. I commented there but the comment became thus long that I decided to write a blogpost about it myself.
Just like last year I will again be present this year at the Symfony Day Cologne, which is organized by my friends at Interlutions. Last year was a huge success with many attendees, a wonderful list of speakers, and a great party afterwards. This year will be at least just as good, and is slightly extended: I will be doing a full-day symfony workshop not just on the Symfony Day but also on the day after.
As happened the past years I was at the Dutch PHP Conference this year. Something was different though, this year. I've hardly seen a conference talk this year at DPC. This was because I was part of the PHPBenelux team responsible for running the DPC Uncon, which was held for the first time parallel to the main conference. And what an awesome uncon it was!
Only a couple of more days until the Dutch PHP Conference takes place again in Amsterdam. I am already really looking forward to it and I know many others feel the same way. With this year's line up of speakers and topics, the conference again proves to be the best conference for people looking for advanced topics. But this year's edition of DPC has another addition: A fourth track, with no schedule so far: The DPC Uncon.
So today is the last day of the European WinPHP Challenge. Unfortunately I didn't have as much time as I had hoped to spend on my entry, MediTerra. Still, I believe I have a nice working version of MediTerra, at least as far as blobs and to a lesser extent tables go.
With the deadline looming (tomorrow is the last day we can work on our projects) I've spent some time today to really get some stuff done. I hope to do some more stuff tomorrow, but at least right now I've got most of the blob stuff in there.
After having set up my environment and started my first coding, yesterday I actually got to play around with Azure. And really, it isn't all that hard! Things like "cloud computing" and "Azure Storage" sound complicated, but I found out that, using the right tools, working with that is a breeze.
So time for some work on my European WinPHP Challenge entry tonight. Previously, I worked on setting up my Windows environment, and now it's time to work on getting my basic PHP setup running and configure the webserver to actually serve my PHP stuff.
Error pages. Most people don't really consider error pages when building a website or application. They usually contain some debug information so that when something goes wrong the developer knows what is wrong. But in a lot of cases when an application goes into production, this information is still exposed.
Since I am not working with a Windows environment on a day-to-day basis, the first task for the WinPHP Challenge for me was to actually install a Windows environment and get my development environment up and running.
So not too long ago I announced I had entered the European WinPHP Challenge, a contest by Microsoft to build a PHP application that runs on Windows. Now I want to tell you a bit about the application that I'm planning to build.
As has become tradition, the dutch web developers usergroup Pfz is again organizing their Pfcongres. I've been a visitor for the past years with a speaking engagement two years ago. With Pfcongres having a much bigger setup and more international focus I am very proud to announce I am again speaking this year. I will be doing my "Would you like docs with that?" talk.
Today I filled in the registration form for the European WinPHP Challenge (there is also a Canadian version of that here). My application, of which I will post more details in a later blogpost, will be written specifically for the Windows Azure platform. It will be an interesting experience for sure.
If there has been one buzz in the past days, it's been the announcement of Facebook of the Hip Hop for PHP (or HPHP). This new tool for PHP developers (or actually for users of PHP) is aimed at gaining performance by converting PHP code to C++ code, then compiling the C++ code to a binary which includes a web server. But what will it actually mean for PHP?
Two days have passed now since the PHPBenelux Conference 2010. On the one hand, I feel a bit stupid to have spent the majority of my free time into a conference I can not really attend any sessions in. On the other hand, I'm so grateful that I did. Let me elaborate.
So, now that I've looked back at 2009, it is time to look ahead at the coming year. I already know it will be quite an exciting year. But it's the future, so we can't predict everything that is going to happen. But there's quite a few things I already know will happen.
With the new year having started, it's always fun to look back at the previous year. Something I've donebefore in previous years. 2009 for me was one hell of a year, both in the positives and in the negatives. It means lots of conferences, but also a forced change of job. Let's have a look at this year.
Great stuff is happening today! I would dare to say that to date, december 1 2009 is probably the most active and important day in the history of the symfony project! Three(!) new versions have been released, amongst which the first of the last branch of symfony 1, and a new book is available in the form of an online advent calendar and a print book.
After a lot of hard work, a very tough selection after a successful Call for Papers, I am very happy to announce that the PHPBenelux Conference 2010 website is now online, and speakers will be announced over the coming days.
Recently as several quite known and respected people in the PHP community are looking for new challenges, I've been following their efforts a bit (hard not to, with Twitter these days). One thing has been surprising me all along: Companies still don't get it: They still require developers to be local.
Recently, I was involved in trying to solve a blocking issue at work. It took us quite some time to figure out was what going on, and it ended up being one of those cases of "If it ain't broken, don't fix it". So, even though everybody knows about this line, I want to give it some extra attention.
As I'm writing this (though it is published later), I'm sitting in the sunday morning program of the PHPNW09 conference in Manchester. The conference started on friday night with speakers dinner and a social, with the main conference on saturday, dinner and drinks afterwards, and now the slightly less official sunday morning program. It has been a great conference.
Last tuesday was the phpBenelux meeting for this month, which took place in Tilburg at the office of Freshheads. Given I was helping with the organization *and* speaking, I was a bit stressed upfront. Things worked out well though, and we had a great meeting. This post contains a short report of the meeting as well as my slides for the "Integrating symfony and Zend Framework" talk I did.
Recently I had to compose some XML documents that needed to be validated with XSDs. All fine of course, but I had some problem with two date/time fields that according to the XSD were supposed to be xs:dateTime fields. Googling around I found a lot of references to the ISO8601 format, so I decided to format my date using the DATE_ISO8601 constant. That did not work though.
Last year I was a speaker at the PHPNW08 conference in Manchester. It was a great conference and I've met some wonderful people there. We even held a short symfony update meeting there in one of the rooms during a break. I am happy to announce I will be a speaker again this year at the PHPNW09 conference!
In the past week I have been very excited about symfony Day Cologne, and now that it's over, I was right to be excited. What a wonderful event it was! It was very nice to meet all the people, and I had a great time doing my workshop.
After a nice summer, last week was the kick-off for the new season for the phpBenelux user group. Two events were planned, one in The Netherlands and one in Belgium, and I attended both. Let's have a look at what we got...
PhpBenelux, the PHP usergroup for Belgium, The Netherlands and Luxembourg is on a roll! At the end of the month there's two cool meetings you can attend! So if you're in the area (mid-west of Germany is also "in the area" ) then you should definitely come by!
On monday, I started my new job at Unet. And now, I am ready to announce another new job. I have been approached by Kris Wallsmith, the previous community manager of symfony, to see if I would take over that position, and I am excited to say that I have said yes to this job!
I am quite excited to announce that I have found a new job. Starting two weeks from now, I will be working at Unet, a dutch company for broadband, fiber and VOIP services mostly aimed at the business market. My job will combine senior developer work with being the team lead of the PHP development team at Unet.
Every once in a while you need to solve this unique problem. This problem that you usually only have to solve once or twice. So you start developing, but quickly wonder what the best solution is. You can write your own solution, but it pays off to at least search through PHP.net a bit to see if there is not already a solution for it in PHP.
Over the past weeks while I was trying to find a new job, I've made an interesting observation. Well, I made the observation before already, but my interviews over the past weeks have confirmed it: Most developers seem to limit themselves to a single framework. Be it Zend Framework (more popular than I even thought), be it symfony, there's even still a huge amount of custom "we built it because we have our own needs" frameworks out there, even in companies doing things similar to any other web development company out there.
While at the PHP UK Conference, O'Reilly had a stand. A new series of books caught my attention because they were not the standard "animal on white cover" book I had come to expect from O'Reilly. After looking at those books, I made my pick and went for Neal Ford's The Productive Programmer. A wise choice, as it soon turned out.
While Paris had Symfony Live and Nieuwegein had Joomla!Days, Amsterdam had the Dutch PHP Conference last weekend. Three days completely packed with the most amazing content from speakers that flew in from around the world. Let's have a look back at this amazing event.
The biggest PHP event of the year is coming for The Netherlands: Dutch PHP Conference will start with a tutorial day on thursday and the first official conference day on friday! In this post I want to give some recommendations on which sessions to visit. If you don't have a ticket yet, better get one fast! Some tutorials are already sold out, and there's only a few tickets left for the main conference days!
posted on June 8, 2009 - 0 comment(s) - tags: php, dpc, dpc09
Last week there was some fuzz about something bad happening the community. Now I'm not going to really go into that, but it is in my humble opinion hard (if not impossible) to prevent the occassional problem in a community as varried as the PHP community. But there's also much beauty in our community.
posted on June 6, 2009 - 0 comment(s) - tags: php, community
Much has been said already in the past days and weeks about the PHP standards initiative that was started by a group of PHP developers at the php|tek conference two weeks ago. As I was there but have not really given my opinion on this in public, I will do that now.
Last week I attended the php|tek conference in Chicago. It was one hell of a great conference, definitely one of the best conferences I've ever been to. I got to meet many people I'd only spoken to online, got to attend some great sessions and got to do some nice presentations.
I had not yet posted this here, but I just wanted to let you know that this friday, I will be speaking at the Microsoft DevDays in The Hague. DevDays is an annual conference revolving around Microsoft- and related technologies, and this year it contains a 4-talk PHP track on friday.
As I wrote earlier, several TestFest events will be held soon with the biggest one being the European TestFest initiative of quite a big bunch of European usergroups. But why should you attend such a TestFest?
posted on May 6, 2009 - 0 comment(s) - tags: php, testfest
Last year's TestFest was a huge success. The worldwide initiatives by usergroups and individuals gave a nice addition to the code coverage for PHP itself. This year, the TestFest period has been extended to 3 months, starting the beginning of this month and ending end of june. But a nice bunch of European usergroups including the Dutch usergroup are combining TestFest on may 9th!
Just a little notice that a blogpost was just published over at the Ibuildings Techportal. This is but the first thing you hear from me there, next week there will also be an article on refactoring published on the same site.
I use DreamHost for quite some sites, both my own and of friends. Recently I got informed that one of my sites was triggering a warning in anti-virus software and when I went to investigate, it turned out quite a few sites got hit by an annoying script that inserts a hidden iframe. Removing all those by hand would be an annoying job, so I decided to automate it. Given that I don't know much shell scripting but have a firm knowledge of PHP, I decided to give that a go.
Last week we had a usergroup meeting in Amersfoort, and quite unexpectedly we announced that we'll have another one next week. This is slightly unusual, but you got to recognize opportunities as they arise.
Last week we had a usergroup meeting in Amersfoort, and quite unexpectedly we announced that we'll have another one next week. This is slightly unusual, but you got to recognize opportunities as they arise.
This morning, as the first Ada Lovelace Day posts started rolling into my Google Reader, I found out about the whole concept of Ada Lovelace Day. I immediately pledged to write a post, because I think it is a good idea to give "women in technology" some attention. I would wish it wasn't necessary, but we're living in a world where this is still necessary. I'm going to pick two "heroines" though, instead of one.
For quite some time I've been struggling to set up the backend of a symfony application to be served from a subdomain that is being served by the same document root, to no avail. My backend subdomain would keep serving my frontend. Today, by accident, I found out which stupid mistake prevented this from working, so I thought I'd share.
As we all know by now, we're living in times of crisis. A recession is hitting us, and it's hitting us hard. Even here in The Netherlands, where at first it seemed we'd be avoiding the biggest hit, we're now getting reports that the recession is the biggest since WWII. The crisis seems to be hitting bigtime in many places. So how does it affect open source and PHP?
This week is the week of PHPCon Italia. It already starts on wednesday with workshops, and has two conference days after that. I'll be speaking twice on thursday, in the morning I'll talk about the symfony framework in my myphpbusters talk, and in the afternoon I'll go into refactoring.
Those of you who have already done presentations, whether internally in your company, at user group meetings or at conferences, know that it can sometimes be a tedious job to write coherent, useful and understandable slides. You have all the knowledge on the topics you speak about in your head, yet turning that into a useful presentation with a clear slide deck can be a hassle. One solution I recently found to this problem was writing.
So this morning I gave my The Power of Refactoring talk at the 4developers conference in Krakow, Poland. This is the first time I've given this version of the presentation, which is quite different from the previous versions.
This weekend, I will be doing a quick trip to Poland. Overthere, a new conference is seeing the light called 4developers, and I will be part of the "dedicated languages" track with my refactoring talk.
Only a few more days until PHP UK Conference 2009! I am looking forward to it a lot. As I do with most conferences, I make my own schedule up front of what I want to see (no guarantee I'll end up seeing those talks of course).
phpUnderControl is a continuous integration setup for automatically running certain tasks on a project such as testing, documentation building, code sniffing and more. It is based on CruiseControl and uses PHPUnit by default. The default symfony unit testing framework is not PHPUnit, so it was time to enable continuous integration for that.
Last year the PHP TestFest was a huge success. Both the full international initiative and our dutch contribution. This year's TestFest has been announced and it promises to be even bigger than last year. Let's get that code coverage up into the far 90%!
posted on February 4, 2009 - 0 comment(s) - tags: php, testfest
Yesterday the phpBB.com server got hacked. People who, like me, were there back in the days of phpBB2 will be reminded of the security flaws found in the software back then. However, this was not the cause of this hack. It was an unpatched version of another PHP package that caused the hack, which exposed amongst other things the full user database and several server passwords.
Ever since starting with PHP 5 object oriented development, all documentation I read on the topic seemed to suggest that the only way to write the method keywords is "public static". I've been following along those lines, and for a while I really thought any other order would trigger errors. Only recently I found out the other way round is actually nicer.
This year's edition of the Dutch PHP Conference will be taking place on June 11-13, and the Call for Papers is now open. So all of you, I know you have something interesting to say, now it's time to let the DPC know!
I've tweeted about this on january 1st but now it's official! I will be speaking at PHP|Architect's PHP|Tek conference in may. I will be doing two presentations: My good old refactoring talk and a joint talk with Lorna on the community.
Today the Dutch PHP Usergroup announced their first event of the year. Instead of a regular meeting, we're going to take a bit more effort and we're introducing the phpGG Frontend Special on january 24th!
As I did last year, I wanted to have a look at this year. This year was quite the year for me, with the birth of our second child, a lot of conferences, the reviving of the dutch PHP Usergroup and new symfony versions.
I've been really busy lately hence it being quiet here. My TODO list has quite a few topics I want to write about, I just need to find the time. So what have I been up to? Mainly Jobeet, work and Spore
This weekend the PHPNW conference took place in Manchester. It was a great conference and my talk went much better than at IPC in Mainz in my opinion. There's always room for improvement but this was definitely better. Here's my slides...
Yesterday was the first BugHuntDay that our dutch PHP usergroup organized together with the Belgian usergroup. Somewhere between 25 and 30 people (I forgot to do an actual headcount) came together in Roosendaal to work on fixing bugs in Zend Framework.
Continuous Integration. It is something that a lot of companies don't actively work on. It is very useful though. I am currently working on bringing CI to symfony in the form of phpUnderControl. This message is a short status update for those who already knew I was working on this.
In May of this year, the Dutch PHP Usergroup (phpGG) re-launched after a while of inactivity with a very successful PHP TestFest. After this succesful collaboration with our friends from phpBelgium and having done our first dutch meeting, we're again going to collaborate with phpBelgium to help the community at large: The BugHuntDay is coming!
With symfony 1.0, one of the nice features was the freeze option, which allowed you to package the symfony libraries inside your project quite easily. This was very useful, for instance when deploying your project on a server where you couldn't install symfony. With symfony 1.1, it is apparently not advised anymore to use the freeze option (even though it is still available). So how should this be done then? Let's have a look...
So today was a good day. The only thing bad was the fact that FC Utrecht lost in the dutch cup and is thereby thrown out. By Ajax, nonetheless. However, that is quickly forgotten when I think of all the good things.
Yesterday my employer Ibuildings made an announcement that I think will be very good news for the PHP community as a whole. A new initiative, the PHP Center of Expertise. Once again, an initiative that confirms I made the right choice last year.
I've only just announced my session at this year's SymfonyCamp, and already I can announce the next one. I will be speaking at this year's installment of the International PHP Conference, one of the biggest conferences in the PHP realms of this world.
After having organized the event last year, I am very happy to announce that I will be speaking at this years edition of the SymfonyCamp in Leusden, The Netherlands. SymfonyCamp is one of the best ways of getting in touch with the symfony community - and you'll learn something in the process.
Today I tried the DbFinderPlugin for the first time. I am truely impressed. Using this plugin, it is not necessary anymore to really care about which ORM you pick for your project. It's the thought behind symfony 1.1 taken into the symfony ORM-selection.
At work, I am at the moment working on a Zend Framework project. Opposite to earlier projects with Zend Framework, I am slowly learning of the power behind the framework. But not all of the power is document well enough. On friday, I encountered one such small detail.
Last week, I put online the new version of my dutch symfony advocacy website: symfony-framework.nl. The main focus is not advocacy anymore though, I feel that even though that still needs to be done, it's not anymore the main thing needed in The Netherlands.
In a Skype conversation with me and a few colleagues today, my colleague Ivo Jansch explained to us the difference between meta() and postMeta() in the atkMetaNode. He used for this the analogy of pregnancy. The analogy was too good to leave for the few that attended the skype chat, so I am publishing it here - with permission of Ivo - for everyone's education.
While playing around with the Zemanta API today, I bumped into a small problem. I first attempted to do it in symfony using the sfWebBrowserPlugin, but as I kept running into a 403 Developer Inactive error, I decided to try other tools, to see if the problem was on my side or on Zemanta's side. The problem, as it turned out, was on my side.
Last year, back then I was not yet employed by Ibuildings, I spoke highly of the Dutch PHP Conference. It was an excellent event, with enough variation in speakers and topics. This friday and saturday, this year's installment of the same conference is taking place.
No, I still have not written a book (though there are actually plans for that ) but my name can again be seen in print. After my first official print mention as technical reviewer of Packt's phpBB book, I am now happy to announce I am named and even quoted in Michael Kimsal's new PHP Job Hunter's Handbook.
I've so far worked only very little with XML with namespaces, especially in terms of parsing it. Therefor, I was quite stumped today on the parsing of a particular snippet of XML which contained an element that had an xlink:href attribute. I just couldn't get that attribute's value out. The solution, as often seems to be the case, is quite simple.
I was already quite proud when I got the possibility to work at Ibuildings. They've shown to be (one of) the most professional PHP companies in the Netherlands, and after they partnered with Zend, it all became even more interesting. Now, I am even more proud to work for Ibuildings; they just announced a partnership with PHP|Architect.
Recently I wrote a review of Getting Real , the book by the guys from 37signals. But how, if at all, does this apply to, for instance, symfony ? Let's take some points from the book and see how symfony does...
Yesterday and today I have been away from home (I am actually quite happy that my presentation for tomorrow evening was cancelled, I actually get to stay home). Both evenings I really enjoyed myself, both evenings in the presence of some people I know mainly online.
I started using symfony by taking a single workday to walk through the first seven steps of the Askeet tutorial. After that, as time was scarce, we dived into the project we were planning to use symfony on. Here I'll present you with some tips that I either found or experienced myself.
Last year, while I was not yet working for Ibuildings, I did an introductory session on symfony at the Dutch PHP Conference. I was really looking forward to the event , and it turned out to be the success I expected . Ibuildings proved beyond a doubt that they organize a killer conference! This year, the DPC is back, and stronger than ever!
You can configure a lot of caching in symfony, so rarely do you need to cache things yourself, but it may happen that one day you decide you need it. I came to that point when I wanted to cache certain results from external web services. I could have used the Function caching, but in this case I wanted to keep a bit more control, possibly altering the cache etc.
Since a few weeks the new generation of the Zend IDE for PHP is available. Instead of the completely Zend-written IDE that there used to be, this one is based on the Eclipse platform, a platform I've never really been a fan of...
In the development lifecycle of web applications, I think deployment is something that doesn't get nearly enough attention of developers. But where you can test your code, testing deployment is a bit harder. A good system for deploying applications is therefore a useful thing to have. Symfony has a very easy and strong system for deploying applications based on rsync.
Steer CMS is a new open source application based on symfony. It offers a CMS for websites in a way similar to other open source CMS'es, yet is based on symfony and so quite a bit more interesting to me.
Due to yesterday's happy news I only picked up on another joyful thing happening yesterday somewhere very late in the evening. So let me announce it today: The episode I recorded for the PHP Abstract Podcast on symfony was published yesterday.
Finally the day has come. The final PHP4 release is available , so from now on, aside from possible security issues, no new PHP4 releases will be done. PHP5 is without a doubt the main line for PHP now.
For a while, I've been looking at several implementations of Wiki software. MediaWiki is nice, but very heavy on the server. Not weird, considering the software is loaded with features. Of course, a lot of those features are hardly needed, so I chose to stay away from MediaWiki. After trying various other Wiki implementations, I came by WikkaWiki. It has all the usual features of a wiki, but isn't too loaded with features that I don't need. I just need some wiki functionality. Looking at the code, it was quite easy to customize. And fully XHTML and CSS-based, which is also a big plus. And so I now have a fully functional wiki for my Electronic Music World website. I also immediately made a slight change to the code.