My friends and family are under attack in Ukraine.
Donate to protect them directly or help international organizations.

Profiling MySQL Queries

February 21st, 2012

You website is slow. You suspect MySQL queries are slow, but don’t know where to begin. This article, aimed at intermediate developers, will present my methodology and serve as a starting point for first-timers. I won’t go in-depth, only cover some of the basics. Turn On the Slow Query Log I once had a server […]

Read more

jQuery Performance Pitfalls

January 3rd, 2012

At FooLab, we have been using jQuery because it’s easy to learn, there is a big community with a lot of examples and advice and also because it’s easier to find developers familiar with it. It’s not a bad framework, but it’s very easy to abuse when you do not know how it works and […]

Read more

Profiling JS Applications

January 3rd, 2012

Some of the web apps that we build at FooLab rely heavily on Javascript. But when your CPU usage is through the roof, where do you start looking? Many developers start straight with a hypothesis and then try various corrections until something happens. This is a waste of time; no amount of experience changes that. […]

Read more

Symfony Form: Extract Values

September 8th, 2011

I had to look deep into Symfony 1.4 code this morning as I was trying to get a field’s value. Form values come from different sources: default values, record values (when editing, for example), original POST values and clean POST values. So when is each available and how do we get it? Get the values […]

Read more

Their Programming Language Sucks!

September 2nd, 2011

Or at least this is what I hear often all around me. Many want to think that their language is better than all others, and go to great lengths to discredit them. Just like at sport events, people would paint their faces in their team’s colors and yell insults at the opponents. I’m here to tell you […]

Read more

Updating RubyGem on OSX

July 28th, 2011

No gem would install on my machine because my RubyGem was outdated and rubyforge.org kept returning 302 (redirect) status code. After trying every recipe to update RubyGem on Mac OSX that I had the patience for, I came up with my own solution. [...]

Read more

Public Call for Papers: What Does That Mean?

July 18th, 2011

Some of you may have already heard that the ConFoo call for papers is already open. The great thing about it this year, is that it’s public. This means that anyone can vote on the proposals. Besides being fun for the speakers and attendees, it opens up a whole lot of possibilities. Selection As organizers, […]

Read more

SoundMixer + ByteArray

June 16th, 2011

As I was writing a prototype for a voice-driven user interface, I ran into a wall. I was convinced that I could analyze a sound’s frequency spectrum with ActionScript 3. It turn out that the awesome SoundMixer.computeSpectrum(), which implements the Fast-Fourier Transformation, can only sample currently played sounds. It cannot be supplied a ByteArray, such […]

Read more

Sync git fork with maintainer

May 30th, 2011

I forked the joind.in project on GitHub, committed a few patches and sent pull requests. It was fun until I asked myself “how do I keep my fork synced with the maintainer’s repo?” I found the info (with minor bug) on Google Groups by Matt Todd. It deserved its own post post. Create and checkout […]

Read more

Symfony task “default” context

May 17th, 2011

When creating Symfony 1.4 CLI tasks, I stumbled upon an error message: The "default" context does not exist. After searching some old forums, I found a solution. Before you access any Doctrine class, you mus first bootstrap your context correctly. Here is an example: […]

Read more

Newer Posts Older Posts