In this article we will talk about how to use Xdebug remotely. We will assume that you already know some basic debugging techniques, and also, that you already know how to configure Xdebug. If you missed it, or you just want to refresh your memory, we strongly recommend checking out our previous article about how to configure and use Xdebug locally.

When a web application reaches a sufficiently large size, it can become infeasible to perform all actions required within a single web request/response life-cycle.
You may find yourself wishing to for example - batch up and send queued emails at particular intervals, or process payments asynchronous to the point in-time the user made the initial request.
In this post I would like to discuss our changing use of background processes (both time-dependent and continuous) due to increasing throughput demands.

At MyBuilder, we do a lot of user research. From guerrilla testing to working with research agencies such a Fluent Interaction, user research is an essential part of how we work. Our in-house usability testing set-up needed some work, though. Our team wasn’t able to view usability testing sessions while they were happening. This how we solved this problem with the tools that were available to us.

An interesting problem arose last week when we wished to generate a listing of recently completed jobs (along with their shortlist fees).
Upon review of some earlier attempts, we did not like the aesthetics present when many of a particular shortlist fee were clustered together (i.e. two or more adjacent jobs with the same shortlist fee).
What we were instead looking for was to create a constraint-based ordering that when applied to the recently completed jobs, would give an even distribution of shortlist fees (data-set permitting).

We assume that you use PHPStorm on a daily basis, and this guide will help to debug your code locally using the IDE. A remote debugging guide is available, but we strongly recommend going through this one first as it explains the very basics of debugging.

Whilst working on resolving a recent JavaScript event handler bug, it deemed necessary to implement a form of throttling to make sure a race-condition would not occur.
Throughout the fix I found myself seeking a clear definition of what both throttling and debouncing a function actually entailed; as it can be very easy to mix the two subtly different concepts.

My adventure in London started around a year ago. I arrived at the end of July 2015, after working as a software developer for a company located in Gliwice (Poland), for 1 year and a half. My wife and I decided that it was the time to make a very important step in our lives. I applied to companies in Germany and the UK, and finally I got a job at MediaMath, in London, where I spent 8 months working with a very good and talented group of people.

I have been working at MyBuilder for six months now, so that means it’s time to explain a little bit about my experience here.

After working at my last job for over five years and finishing my final degree project, it was time for a new challenge. A big challenge. My partner and I decided to move from Barcelona to London, we thought it could be a great experience for us to live abroad for a while, and a good opportunity to learn. We wanted to learn more about other cultures, other ways of doing things, and also we wanted to improve our English.

Sometimes you look at a feature request and think that it maybe a very tricky implementation to develop.
I felt this way in regard to recording input fields in an recent application I have been working on.
The idea was to be able to record a user’s interaction with a HTML component (in this case a textarea), and be able to replay these events (in real-time) at a later date.
Thinking about how I would go about creating such an implementation in trivial JavaScript, with all the browser nuances and user input differences, was not very appealing.

When somebody makes an action on a webpage, they expect instant feedback. They’re not thinking about the server responding and acknowledging a change. At MyBuilder we’re aware our customers are using mobile devices more then ever. Without optimistic updates network latency can kill our app’s perceived speed.