Vanilla Javascript Image Crop Component

Demo gif. If this image doesn't appear check out the demo page

While building an image upload tool for a client recenly, I found myself in the need for a decent, easy to use crop component. As these things usually go, nothing I found online really satisfied me, so I had to roll my own, using vanilla JavaScript and nothing else. Check out the demo page, and if you ever find yourself in need of a quick, plug-and-play solution, I published it on

Stop selling me products I just bought

Imagine going to a fast food joint, buying a hamburger, and the cashier asking you, “Do you want a hamburger to go with that hamburger?”. Ridiculous, right?

I’ve noticed a design flaw in most e-commerce websites I’ve shopped from, including giants who should know better, in how they deal with product recommendations. You know, how when you browse the website and visit a few product pages, other products from the same categories as the ones you visited are recommended to you in widgets, sidebars, on the homepage, etc. Some shops even email you the recommendations (assuming you were logged in when you visited).

The problem I have (or rather, most stores have) is that, when recommending products, they completely ignore the user’s recent order history. I’ve bumped into this behaviour recently when shopping for headphones. I placed an order on a local e-commerce for a pair yesterday, and now the website is filled with recommendations for headphones. Well, I don’t need any more headphones, you are wasting valuable screen real estate with products you have zero chance of selling me, when you could at least have a small chance to make a sale by recommending products like audio cables, sound cards, speakers, etc. Hell, in the case of stores like Amazon, who sell pretty much any product known to man, they could even improve their odds slightly by promoting audibooks, music, and so on. This wouldn’t guarantee sales, of course, but any chance is better than zero, no?

Now, for those of you developing e-commerce websites. The backend of the store should have an option to group product categories into “related categories”. While the user browses the website, make them recommendations from the same categories as the ones he’s been visiting, just as stores all around the world are currently doing, this feature of the e-commerce platform should already be in place. But, as soon as the user places an order, immediately switch the recommendations and promote products from the categories related to the ones he just bought from. This is a small technical tweak that makes so much sense it’s a wonder so few stores do it.

I completed M101P

In case you didn’t already know, 10gen, the company behind MongoDB offers free online classes for developers and DBAs that want to become familiar with their DB. I took and completed the M101P course (the P stands for Python, although you don’t need to know Python to take the class) and if you want to learn more about how to work with MongoDB, I strongly suggest you take the course when it next starts. You can find more information on the courses on

M101P certificate

Wikitten: my own personal wiki


Lately I’ve been looking all over the place for a small, fast personal wiki that I could use to store my notes, ideas and code snippets. I’ve tried a lot of solutions, but none of them really fit my peculiar needs, so in the end I’ve decided to do what every developer does from time to time – reinvent the wheel.

Enter Wikitten, a PHP self-hosted Wiki that parses Markdown documents and code snippets and displays them in a friendly, clean manner. No database necessary, simply drop it somewhere where Apache can run it, and you’re good to go:

dbv.php: Database version control, made easy!

dbv.php: Database version control, made easy!

Over the years, I’ve developed quite a few tools that make my life as a developer easier. Ranging from simple scripts to full blown automatic deployment software, it started to dawn on me that it would be nice to share these tools with the Open Source community, to give something back.

One of the most useful tools I’ve ever made and used, and the one I’ve launched today, is dbv.php, a database version control application that makes it easier for teams of developers to make sure their local databases are always in sync with each other. If your database hasn’t been under version control until now, it should be.

Without further ado, head over to the project website to read about the application’s features, documentation and download links!