Learn More About PHP And The Web Platform!

Struggling with your web server, or to scale your PHP application to meet growing demand?

Whether you're running one server or a whole server farm; whether you're hosting on Windows Server or on Linux.

Learn from Stuart's experience with system design, delivery, support and management to help you do a better job and have an easier time.

Beneath Whitby breakwater

TechniqueNW 10

Posted by Stuart Herbert on January 31st, 2010 in Training.

Whilst everyone else was over at PHP Benelux 10 (which sounded like a great conference according to the Twitter feedback!), I was up in Morecambe, at the Technique|NorthWest training event organised by Northwest Vision and Media and run by The White Room. A huge thanks to Paul Collins for inviting me up at the last minute to run the PHP workshop on the Saturday, and I’d love to be involved in further events like this.

I had a great time at the event, and I was delighted to see how the North West of England is trying to build and support a digital economy, instead of simply leaving it to chance. If only South Wales had such an initiative!

Perhaps the most interesting thing I took from the weekend was the large disconnect between the people who attended and many of my friends on Twitter. If you listen to the Twitterarti, you’d think that Adobe Flash is a technology that has run its course and is now in terminal decline (mostly because the iPhone and iPad do not support it, plus Adobe not seen as exactly a bastion of innovation these days). And yet, by far the most popular workshop at Technique|NorthWest was the Flash workshop. To these people, Flash is not only still relevant, but in their industry it is still the only real option for delivering online advertising campaigns.

Food for thought.

PS: I also took some photos of Morecambe before the Saturday workshops started.

Be the first to leave a comment »

PHP 5.3 Adoption: Some Numbers

Posted by Stuart Herbert on January 30th, 2010 in Conferences, Toolbox.

Last year, I ran a series of polls via Twitter to try and learn a bit more about your plans to move to PHP 5.3, and whether or not you actually followed through. A huge thank you to everyone who voted!

I’m not talking at any conferences this year, so I’ve published the planned PHP 5.3 adoption talk online for anyone who’s interested in what the PHP user community told us via these polls. As well as the raw data, I’ve included an analysis of what the data might mean, and some talking points about what the PHP Group might want to do differently when PHP 6 (or PHP 5.4 if there is one) is released.

You can find the talk online at Slideshare, along with all of my older talks. I hope you find it useful and informative.

Be the first to leave a comment »

Playing With Storytlr

Posted by Stuart Herbert on January 26th, 2010 in Storytlr.

I haven’t been blogging very much for some time now; since the car crash my weekends have mostly been spent recovering from the long commute to and from work during the week. But I do tweet a lot, and thought it would be a good idea to update my website to show more of a lifestream rather than just the blog.

Storytlr has been getting a few mentions recently, such as this story on Arstechnica, since its authors decided to release it under the Apache license. Based on Zend Framework, Storytlr is relatively simple to install, but not yet as polished as WordPress has become.

My first impressions are that it has promise, but that it’s not yet a 1.0 release in terms of quality. That surprised me, given that the guys used to run a business based on this, but full credit to them for placing the code under an open source license so that the community can keep it alive.

The Google project … I wouldn’t say it was dead, but at the time of writing it hadn’t been updated for over six weeks. There’s also a github project from the Storytlr authors, and jmhobbs has an active clone of the Storytlr project where he’s busy adding some much-needed polish. I’ve cloned the project too, and I’ll commit fixes and improvements (such as improving the Twitter plugin, and a new podcasting plugin) there as and when time allows.

I hope others pick up Storytlr and start contributing fixes and improvements too. I think it has the potential to be worth the effort.

Be the first to leave a comment »

Whether you’re looking at your own code before (or after!) you have shipped it, or you’re picking up someone else’s code after they have shipped it, tracking down and fixing bugs is a fundamental part of programming. If you know the code well, perhaps you can make an intuitive leap to immediately jump to where the bug is. But how do you go about tracking down a bug when intuition doesn’t help?

The nature of all code is that larger systems are built from smaller underlying systems and components. They in turn are also constructed from smaller components. The bug you are tracking down will have a cause in one of these systems, and will have symptoms that are visible in other systems. The remaining systems work fine (as far as the bug you’re looking for is concerned), and you can use this to quickly and reliably find where the bug is.

Divide your larger systems down into smaller systems at logical points, such as different server stacks, APIs, major interfaces, classes, methods and if necessary individual lines of code. Test both sides of the divide, with your tests focusing on the data that crosses the divide. If one side works as expected, the bug is not in there, and you can eliminate that side from further testing. Continue testing the remaining systems and components, which you have now isolated, by dividing those up into smaller systems and components. Keep going until you’ve reached the smallest testable system, component, unit, or lines of code that show the fault. Congratulations: you have isolated the fault.

Apart from being a strategy that allows you to work on code you’ve never seen before, this approach also has the advantage that it is evidence-based. This approach eliminates guess work, and it forces developers’ assumptions about how their code actually works in practice to be challenged. The data never lies, but be aware that it can be mis-interpreted!

The approach is iterative, and you’ll find that you’ll often go back and forth between your code and your tests, making your code easier to test and your tests have clearer and more targeted test domains and results. Fix the tests that are relevant to the bug you are tracking down, and make a list of any other issues you find along the way for you to come back and address at a later date. Stay on target, and park potential tangents and distractions for another time.

Although this sounds like a slow process when described on paper, with practice it can be executed at high speed during an emergency situation. However, the need to restore service in a timely manner isn’t always compatible with this approach, and you’re normally better off returning to your test environment where you can study the fault without inconveniencing your customers any further.

Be the first to leave a comment »

Buy My Old MacBook Pro!

Posted by Stuart Herbert on September 28th, 2009 in Toolbox.

It has been my ever-faithful companion for the last three years, but now sadly the time has come to part ways with my old MacBook Pro. The only reason I’m selling is that I need longer battery life on occasion. The machine works fine, and I’ve just fitted it with a 500GB HDD (taken from my new MBP; sorry, but I’m keeping my SSD 🙂 ). The outer casing’s finish is worn in one spot; not bad considering this machine has been with me all day every day for the past three years.

Full details are in the listing on eBay.

Be the first to leave a comment »

Are you going to PHPNW09? Are you interested in my two day course on how to organise a team of PHP developers? Do you still want to go, but missed the early bird tickets?

Then keep an eye on your inbox … there’ll be an email from the PHPNW09 organisers in the next day or so including a discount code you can use to buy tickets for my course at a nice reduction.

And if you’re not yet convinced that you’d benefit from the training I’m offering, I’ve put together some reasons why this is important, and what benefits you’ll get from the course.

Be the first to leave a comment »

Stuart is running a course in Manchester in October immediately before the PHPNW09 conference on how to setup and organise your PHP developers to ensure things run smoothly for you and your customers, which will include looking at how to get the most out of Trac. Learn more about the course, or sign-up now.

When it’s just you, working on one project at a time, it’s easy enough to keep track of the work you’re doing and the work you still need to do to complete the job. Chances are you can keep it all in your head, or at least keep the discussions with your customer on something like Basecamp in your head. You know that you should be using source control and bug tracking because it is “best practice”, but it just seems like too much of an overhead to bother with when it’s just you. After all, you’re working on the customer’s server, and there’s no-one else editing the code anyway.

Some of the folks reading this blog post might be cringing at that, but I’ve lost count of the number of times I’ve come across professional PHP developers who work in exactly this way. Is it because they don’t know better? Maybe. Is it because it has worked okay for them up to now? For sure.

But eventually, there comes a point where one developer becomes a team of two … or more. Having a team means that you can go after larger projects … but it also means that you have to go after larger projects to pay the team. Larger projects mean more complicated requirements, multiple phased deliveries … and a larger, more demanding (and probably a more complicated) customer holding the pay cheque.

Running a team of PHP developers (like all management activity in all walks of life) comes down to three key things: direction, organisation, and supervision. Only now it isn’t just you and a customer, just a list that you can keep in your head. Now you need to keep track of a larger list, of multiple lists for multiple people to work on that need to be brought together in the end, and if anything slips through the cracks it’s your reputation on the line. Getting the customer to come back for repeat business just got a lot less easy to take for granted.

Trac and Subversion have been part of our community’s toolkit for many years now. Used correctly, you can get yourself and your customers well-organised, and grow your reputation when you grow your team. If you haven’t started using them yet, both are open-source, and well-backed with plenty of information freely available around the blogosphere on how to use them.

Or join me in Manchester in early October, where I’ll show you how they fit into an overall approach to running your team of PHP developers.

Be the first to leave a comment »

What Do You Develop On?

Posted by Stuart Herbert on September 11th, 2009 in Toolbox.

At work, we have quite a variety of kit that we use for development:

  1. Cheap and cheerful desktop machines w/ multiple monitors and plenty of RAM, normally with AMD CPUs. These machines mostly run some form of Linux … Ubuntu and Debian are both popular.
  2. Various laptops, a fair mix of MacBook Pros and other kit running Linux.
  3. Virtual machines running on the desktops and laptops, used for cross-browser testing.
  4. Virtual machines running on HP servers and blades, used for system testing, release testing and production.

It gives us a lot of flexibility, allows us to develop and test on standards-compliant environments (but still use Windows for testing IE), and most of the time the developer is the bottleneck not the equipment 🙂 Recently, I’ve added both a netbook and an Atom-based mini-itx machine into the mix, and this blog post is my attempt to recommend that you consider doing the same.

Netbooks are incredibly popular in the wider computer-owning population. Over here in the UK, they come free with many mobile broadband packages, making them cheaper than many low-end laptops. They’re sold in the supermarket and the high street. Their small form factor and relative lightweight makes them appealing to people who would never willingly cart a traditional laptop around. And they run Windows, which most people are familiar with.

After an initial explosion of innovation, the specs have settled around a 1.6GHz Atom processor, 1 GB of RAM and a 10″ 1024×600 resolution screen. That’s not a lot of power, and it isn’t a lot of screen estate. How do your websites look on a netbook? Does your home page or your landing pages make an impact at that size, or is your site’s message partially or completely below the fold? How do the rest of the pages look? If you’re creating an app, does the user have enough of a working area to comfortably do their tasks? Try using Google Reader or Zimbra on a netbook to see examples of what to avoid.

And how do your websites run on a netbook? Too much Javascript, and the pages won’t be snappy. The CPU won’t keep up, and the different latencies and throughput of mobile broadband make round-trips back to the server much more noticeable. Javascript that fires at regular intervals (e.g. rotating marketing spotlight images) can force the CPU to switch execution speeds, and so drain the netbook’s battery much quicker.

Testing on a netbook is one way you can spot and deal with these problems before your customers do.

Stuart is running a course in Manchester in October immediately before the PHPNW09 conference on how to setup and organise your PHP developers to ensure things run smoothly for you and your customers. Learn more about the course, or sign-up now.

Be the first to leave a comment »

Looking At PHP On Windows Adoption

Posted by Stuart Herbert on September 11th, 2009 in Opinion.

On Zend’s DevZone, Remi Woler recently talked about his experiences as a judge for the WinPHP contest organised through the Dutch PHP User Group and the Dutch PHP Conference. One of his closing remarks really stood out for me, where he was expressing his surprise at how few people participated: “I refuse to believe there are only a couple of dozen PHP developers in Europe.”

It’s an odd statement … the world and his dog knows that PHP is immensely popular over here in Europe. Perhaps Remi completely overlooked the Windows factor here?

  1. I’ve been running a series of polls looking to learn more about the wider PHP community. One of the things that comes out of those polls is that 15% of developers use Windows as a platform, but only 3% are using Windows for their production platform.
  2. At this year’s PHP UK Conference in London, Microsoft’s Hank Jansen (who heads up their open-source efforts) spoke in the main room. I wasn’t able to attend personally, but by all accounts his talk was not well-attended. Not only aren’t people using Windows, but the curiosity doesn’t seem to be there either.
  3. Most hosting services (and practically all shared hosting services) are Linux based. If you want to host your site on Windows Server, there are plenty of firms offering this as an option, but many of these services are beyond the budget of many PHP projects.

My personal experience over the years is that many developers work in PHP on Windows because they’re working on laptops … and Linux on laptops continues to be a very hit-and-miss experience sadly. (They should all buy Macs instead 😉 ) About half of the larger corporations I’ve worked with in the UK prefer Windows Server because Linux skills are rare in their organisation, but these corporations were also reluctant to use PHP-based solutions, still wrongly seeing PHP as a hobbyist language compared to .NET or Java.

Be the first to leave a comment »

October in Manchester is home to the PHPNW09 conference. Last year’s conference was a great event, and this year’s promises to be even better. And I’m not just saying that because I’m a conference sponsor this year, honest 🙂

Immediately before the conference, I’m running a two day tutorial in the fundamentals of setting up and running a team of PHP developers, covering:

  • Keep your promises to your customers using written specifications
  • Organise your team using Subversion and Trac
  • Control quality using code reviews
  • Deliver to your customers using release management and follow-up support arrangements
  • Where to go after the course for additional learning

Places are limited to just 25 people, and there is an early-bird discount for anyone who signs up before 21st September. You can find out more on the course website, and sign-up online.

Be the first to leave a comment »
Page 12 of 19« First...1011121314...Last »

This Month

July 2020
« Sep