Magento Data Segmentator

In a fast-moving engineering culture, the ability to quickly push production data to different environments is critical for productivity.

This becomes more than just a giant roadblock.

If the process is slow, engineers will tend to avoid syncing their personal development instances and work with severely outdated database schema.

This will result in the increase of testing times and the number of bugs that slip into production.

Read More

Properly Purging Stale Cart Data From Magento CE and EE

If you are retaining cart data indefinitely you will eventually run into table locking issues as your customers attempt to interact with either cart or checkout within your Magento store.

Locking will result in poor store performance followed by complete infrastructure failure as your http server of choice becomes saturated.

Saturation occurs when dozen of requests are send over to your database server, effectively locking tables.

Database will start queueing up requests until table unlocks. Since http server is now behind schedule, new children will be spawned until you run out of resources to effectively serve your clients.

Read More

Instafeed

Instafeed package contains an extremely simple API adapter for Instagram that you can easily extend.

The http://instagram.com/developer/endpoints/tags/ end-point support is available out of the box as an example.

From packages I saw, you would either get a huge beast of an API client that tries to do everything for you, or a half ass bare bone one that is poorly made and could not be extended without hacking tons of things together.

I also did not like the fact that developers thought it was okay to simply drop random ‘callback.php’ files with their package and ‘index.php’ that forwards you to an authorization URI.

Read More

PHP Judy Array Introduction and Comparison

Judy array (as explained on http://judy.sourceforge.net/) is a C library that provides a state-of-the-art core technology that implements a sparse dynamic array.

Judy arrays are declared simply with a null pointer.

A Judy array consumes memory only when it is populated, yet can grow to take advantage of all available memory if desired.

Not a lot of PHP developers are aware of this library which is available as an C extension (Pecl) for PHP: http://php.net/manual/en/intro.judy.php

I want to give you a quick pros/cons of implementing Judy array in your application and a brief benchmark comparison to a more common types of array implementations available in PHP.

Read More

Benchmarking Memcached and Redis Clients

As some of you may know, I’m crazy about speed. So when I saw that people were happily using Predis as their choice of PHP client for Redis, I was a bit confused. 

Why use a client written in PHP for something that should be ‘fast’ like Redis?

That kind of defeats the purpose - unless you don’t really care about response times and scalability. 

I could understand using it if there were no alternatives such as PhpRedis, or if you wanted to add some sort of proprietary layer that you cannot add on top of a C extension.

Don’t get me wrong, if you have a valid reason to use the extension, then more power to you. I know both packages have contributors who have put tons of sweat into getting them to where they are now.

Read More