In this new post to his blog today, Wim Godden looks at how you can use the PHPUnit unit testing framework to be sure your applications are ready to move to a PHP 5.30-only world.So you or your team has built anywhere between 5 and 500 projects in PHP 4, 5.1 and 5.2 over the past 5 years. And now PHP 5.3 is there, offering a lot of very interesting features, including namespace support, late static binding (finally !), closures, nested exceptions and a bunch more (see the new feature list). So naturally,...
On the PHP North West site today they've released another in their series of video recordings from this year's event. In this session Lorenzo Alberton talks about profiling your application to squeeze out as much performance as possible.Making an application scale and go faster is often seen as a wizardly task. We read the micro-optimisation tricks posted in tech blogs and apply them with unconditional trust and great hope, and then wonder why performances haven't improved that much (Wait, I even...
Review of the new PostgreSQL book. I think this is a must read position for every programmer and administrator, not only for DBAs.
PHP MySQL Caching Wrapper
Translation between Traditional and Simplified Chinese
Simple PHP Upload
Oziams Image Uploader
Random Password Generator Class
So I woke up this morning, checked my email, and saw the email below from Facebook's Open Source Team:Hey Sebastian,we would really like to thank you for all the work youA've done on PHPUnit this year. Testing is important when weA're talking about 500 million people; a bug for 1% of Facebook users is still affecting 5 million people!To show our appreciation we'd like to give you a free year of a GitHub paid account. The link below provides one year of more space, more collaborators, and private...
The Serendipity project has released version 1.5.5 of their blog system a few hours ago. This is a security release, since there is a 0-day exploit out in the wild that is already used heavily. The security issue allows uploading script code to your server, so in other words: if affected, you are hosed.
If you are using Serendipity you should consider updating as soon as possible. Garvin has more on the issue in the release announcement.
Thanks to the Serendipity security team for their prompt actions...
It's finally happening. The end is near. The server is about to be
destroyed by a fleet of Vogon cruisers. Actually, the server is about
to be overrun by mouse clicks. It's time to go look at your code and fix
the slow bits.
The Internet is full of useful advice on how to speed up your code. There
are a lot of slide decks and articles focussed on pushing the last bit
of performance out of your code. They mention things like changing every
occurrence of print to echo, changing
$i++ to ++$i,...
I have been using Vim as my primary PHP development environment for several years by now. Inspired by two blog articles (Coming Home To Vim, Vim Toolbox, 2010 Edition) I recently read I decided to cleanup my Vim configurations and create certain new macros for recurring tasks. One of these macros is the ArgumentRewrap plugin, which instantly saves me a lot of time.
In this day and age, everyone uses the internet for finding new jobs or to find a new employee, but more and more I sense that it's all turning into one big mess.This blog post is devoted to all those people contacting me because they have the best job position. Most hits I get through my online resume at michelangelovandam.com or my linkedin profile. I'm not complaining about the fact that I got contacted this way, but I just mention some points of concern that might be useful for recruiters to at least...
On the Zend Developer Zone today there's a new book review from Cal Evans covering a recent release from McGraw/Hill (by Vikram Vaswani, frequently posted on the ZDZ) called Zend Framework, A Beginner's Guide.Vikram has been a long-time contributor to DevZone and is the author of our most popular article series, Zend Framework, A Beginner's Guide. [...] The language is easy to read, the examples are clear and there's even a joke or two in there that will make you groan. In short, I would recommend this...
In a new post to his blog Till Klampaeckel looks at something the Zend Framework's Zend_Db component dosen't seem to support - an "IN" on a fetchAll - and how he worked around it.The IN-clause is only supported when I wrap my statement with Zend_Db_Select, which is something I rarely do. Part of the reason is that I still don't feel comfortable writing my SQL in a DSL which doesn't really do anything besides wrapping a string into an object and IMHO it doesn't add to readability either. And the other...
New on the Ibuildings techPortal site the latest episode of their DPCRadio podcast series has been posted (as recorded at the Dutch PHP Conference 2010). This episode is Johannes Schluter's talk "Under PHP's Hood".PHP developers usually don't have to care about the inner workings of PHP and the Zend Engine as it simply works. This presentation will present some of the inner workings, like teaching the truth about references. Additionally it will present basics of PHP's opcode, the internal representation...
As of 19 December 2010, web2project v2.2 is officially live! You can download it from SourceForge now.
While in many releases we might focus on cleanup or functionality or developer aspects or similar, this one is a mishmash of a bunch of useful updates on numerous fronts. This isn't all of the updates but a bunch of the important ones:
For the Project Managers:
We reworked much of the Gantt Chart logic. We've added a few icons to better represent the status of tasks and milestones. To make the overall...
Following his Day Camp 4 Developers event, Cal Evans needed a way to release the videos and materials from the day long even to those that paid to attend. Obviously, a download link just wouldn't do, so he went looking for something a bit more powerful and WordPress-y.It sounds like such a simple thing; just put them up for download, right? Not really. Let's look at the actual requirements: Shopping cart to allow me to eventually sell the videos, a way to let my existing ticket holders "buy" them for...
In this recent post to his blog Michael Kimsal asked about the usefulness of the __get and __set magic methods and the sort of code he usually sees along with it.For a long time I've held that __get and __set in PHP were not all that hot - mostly because it's solely error handling. There's no way to deal invoke __get or __set behaviour for properties that are defined on a class. [...] For those who insist on using __get/__set, I *typically* see this [messyy] sort of style code. The effect is to cram a...
On the Box UK Labs site there's an interesting dependency injection tool that uses Reflection to get some of the work done.Dependency injection is a well known concept, and there are currently a plethora of DI containers available from one of the interweb's many pipes. These include Symfony and Crafty, while the Zend Framework also has its own DI container. So why another? One of my personal goals as a developer is to make things so simple, even I can understand them. But most of the DI containers I've...
In my previous post, a€oMySQL Transactions & Why You Can't Emulate Them in PHPa€ť we discussed why transactions are useful and how a few simple SQL commands can make your application more robust. But few things are that easy in the life of a web developera€¦
Statements you can't ROLLBACK
Unfortunately, ROLLBACK isn't a global undo for every database action. If you make a fundamental change to the schema, any existing transactions will be COMMIT-ed and the alteration will run within it's own single...
As part of my on-going domain informatics coverage, I am now publishing some additional information that IA've been able to gather in the last few days.
I am making available two additional geographic chats that breakdown the domain distribution by top world cities. The first chart a preview of which can been below (click to see full, browse-able/zoomable version) shows the Top 150 cities, by domain distribution. These cities represent a total 91.3% of some 102 million domains that could be resolved to...
It is always almost the same story: "As a customer I want to import data from the the superseded system in to the newly build environment".
So whats the deal? Building the new system based on the database structure to make the import as easy as possible? No, way to many drawbacks and since we have our lessons learned we know that flexibility matters and we'd rather go for a better fitting database design.
Web-services for the reScue
As for the flexibility decoupling is the magic word. A web-service might...