by Barney Hanlon |
| May 8, 2013
In the previous post about speedy sites, we discussed the static assets of a site, and how providing them to users can be optimised through selective use of aggregation and HTML. Let’s move away from considering what to give the user, and instead look at how we provide it to them: the stack.
How do we define "the stack"? For the purposes of this article, the stack represents everything between the user and the PHP generating the content they see. As with all performance tuning work, you will need to have a sandbox to try out these techniques, and see what works for you. Often this will be a mixture of several technologies, which I affectionately refer to as the "Speed Sandwich", with each layer doing a specific role to improve the overall performance of the user experience, while aiming to limit complexity to a few distinct components. We want to give the end user the page they requested as fast as possible. So how can we achieve this? (more...)
Automated testing is big news these days. There's hardly a PHP conference happening without a talk on testing automation or derivative methodologies. TDD (Test-Driven Development) and BDD (Behaviour Driven Development) are all around us. So why should you care about all this? Well, there are many excellent reasons to do automated testing, including assuring application quality and inspiring developer confidence in a system. If you are a business person, you're most likely to care about the quality; if you're a developer then the confidence aspect is more important. The more complex an application becomes, the harder it is to be sure that each new feature or bug fix won't break the system, and that decreases your overall confidence in your work as developer. That's exactly the reason why you need automated testing - to be confident that you're not breaking important parts of an application.
Now you're convinced that automated testing is important, but isn't unit testing enough? Unit tests are cheap, fast and small. Why might you want to expand into using a technique such as functional testing? Once again the answer is confidence. The more complicated an application becomes, the more complicated the interactions between separate parts of the application become. Just as you can't be confident your car is roadworthy by manually turning each of its wheels independently, you can't be sure that an entire application is working by testing each of its units independently. You need functional testing for complex applications - and today, that's every application. (more...)
by Marco De Bortoli |
| April 29, 2013
After my great experience last year I was eager to attend the second edition of WhiskyWeb and it has to be said that the organisers (in random order, Juozas "Joe" Kaziukėnas, Michael Maclean, Max Manders, Paul Dragoonis and Ben Longden) didn't let me down. The atmosphere was incredible and once again they managed to create something really special. (more...)
by Ben Longden |
| April 24, 2013
As experienced developers we're regularly told that very few API's out there are really RESTful, and sometimes we're even told why and how they could be. But what is the process of actually designing an API that uses hypermedia, and what is hypermedia anyway?
This talk takes the listener through the process of designing an API structure up front that uses hypermedia at it's core over HTTP, what considerations do you need when selecting a media type to represent your resource and what is out there to help you document it for others to use. This session is recommended for architects and developers alike and will give a good grounding in writing excellent, self-explanatory Hypermedia APIs.
(more...)
by Marcello Duarte |
| April 22, 2013
"Why should we write our tests first? Isn't that going to slow my development?"
"What? Assigning a single task to 2 developers? How is that efficient? What a waste of resources!"
"Look, in the perfect world your advice is great, but I have a project to finish here."
In this talk Marcello explores efficiency in contrast to effectiveness. He looks into how practices, traditionally accepted as efficient, sometimes turn out to be less effective than a few "impractical" things he has come across.
(more...)
by Barney Hanlon |
| March 27, 2013
Anyone who went to the PHP Conference 2013 in London hopefully saw Ilia Alshanetsky’s talk on analysing bottlenecks in your application, which had some great techniques for how to test the performance of your site. This article assumes you've taken a look at his slides or are already familiar with Google Chrome’s Developer Tools, so you can refer to the Network tab to gain insight into what is happening to your users. Other tools such as YSlow and Pingdom will also help in gathering data, though they don’t tell the full story.
What happens though if you complete your analysis and you do have a bottleneck, and it’s going to take a while to fix? Or you have some sluggish legacy code that is a huge lump of technical debt? Fixing sites is hard, and as engineers, we are frequently attracted to the most difficult technical challenges. We want to fix the problem, not mask it. That said, there are many ways we can deal with performance without actually fixing the problem, while keeping users even happier. (more...)
by Adam Smith |
| March 22, 2013
As a native geordie I was pleased to have a chance to attend a PHP conference in the north east. Even after living in Manchester for nearly a decade now, Newcastle still feels like home. Despite the nostalgia of revisiting the Tyneside Cinema for the first time in many years, I was a little apprehensive about it's suitability as a conference venue – I couldn't help but recall the regular disturbances to films watched there, caused by the noisy metro line passing underneath the building. I'm pleased to report that I was wrong to doubt the choice, the venue and staff were excellent throughout as we took over both the third and fourth floors of the building.
I arrived in plenty of time to enjoy the complimentary bacon sandwich and coffee on offer before finding some faces I recognised and settling in to the Electra Room where the main track was due to start, with Inviqa's very own Rowan Merewood taking to the stage to deliver the opening keynote. (more...)
by Amy Benson |
| March 20, 2013
Over the last few months at Inviqa we've been developing our first two mobile apps – BNY Mellon Boat Race, a rowing app for iPhone and Android, and another app just for iPhone. We chose to use PhoneGap to build the apps as the idea of developing once and deploying to multiple platforms is very appealing and since we're web developers, HTML, CSS and Javascript are what we know best. There has been a lot of debate recently about using frameworks like PhoneGap versus building native apps, but PhoneGap has worked well for us and I'd happily use it again.

Building these apps has been a learning process for us so I thought it might be useful to share some of things I’ve learned along the way. (more...)
by Sarunas Valaskevicius |
| March 14, 2013
The performance of a web application plays a critical role in how an application is perceived by its users. It is important to measure it, identify the causes if it changes and react swiftly to any unexpected changes. This article describes an industry leading tool, New Relic, and how it can be used to monitor and improve your site performance.
Setting up a good web application monitoring system can be tiresome, but it's well worth it. Without the monitoring tools the only thing we could tell is if our site is performing as expected or not. In order to improve the performance we have to be able to identify the worse performing user actions and profile them independently to pinpoint the cause. New Relic achieves that and more in just a few screens, all without manually adding any profiling code to your application.
(more...)
by Lorna Mitchell |
| March 5, 2013
Charles Proxy is exactly what its name implies; a proxy. This proxy is special however, as it is specifically aimed at giving functionality that developers will need. It allows you to view, change and replay the traffic that passes through, and can handle SSL. Charles isn't free, but at $50 (at the time of writing) for a license, it reaps returns from day one. This article will show you how to start using Charles and covers techniques that will help you work with your web and mobile applications; basically anything that works over HTTP. (more...)
by Tom Kitchin |
| February 26, 2013
It’s the start of a new day, and off we go to the Brewery for the second day of PHPUK 2013. Day 1 has been covered with aplomb by Javier so I’ll not go into details here, but suffice it to say that it was my first day of my first conference and I had an excellent time wandering without the hint of a clue, eyes filled with the misty wonder of a newborn. This, however, is about day 2, with a day’s worth of experience under my belt, the confidence of a conference veteran, and the bleary eyes of an early morning after a late night’s social.
The day started off well, with an excellent breakfast which I’d mostly missed out on the day before. A colleague had extolled the virtues of the porridge - the porridge - some four hours after breakfast had passed on day 1, and any breakfast able to make porridge so memorably exciting had to be tried. It was, I think, possibly the best porridge I have ever tasted. A strange thing to score a conference on, but there we have it. Moving on...
(more...)
by Javier Lopez |
| February 26, 2013
Last week, the 8th PHPUK Conference took place. Due to a previous commitment I could only attend Friday's session so if you think I am missing something, do not hesitate to leave a comment. Here is my personal point of view of the PHPUK Conference this year.
Talks
The conference opened with Aral’s keynote “You are a designer”. I have to say that the talk was just brilliant, probably one of the best talks I’ve ever been to. Unfortunately, in my humble opinion, the opening keynote for one of the biggest events on the PHP scene should be related to PHP. I know this is a matter of taste and I actually talked to a lot of people who thought it was an excellent opening.
The next talk in my agenda was “Event Stream Processing in PHP”, by Ian Barber. I couldn’t have been happier to have picked this talk. Ian started from zero, introduced the basic concepts of event stream (more...)