Easy human-readable date difference

This article presents a very simple method to show things like “20 seconds ago” or “3 weeks ago” or any other arbitrary date difference expressed in human-readable form in Javascript without relying on libraries like moment.js. The method applies to other programming languages as well, but may need adjustments depending on their quirks.


Improving nginx integration with CloudFlare

Using CloudFlare for its firewall capabilities has undeniable benefits, but it’s not as foolproof and transparent as one may think. In this post I’ll explain how to configure nginx on your server for better integration and security.


How to create chess diagrams with PHP

In this post, I’ll show you how to generate chess diagrams on the server using PHP. The diagrams are cached automatically and served directly next time they’re requested.


Using Python to batch rename email files

This little tutorial is intended for those learning Python and demonstrates a number of features, including OS-independent file manipulation, email parsing, string formatting and error handling.


Batch minify & gzip new files only with some date tricks

With everybody using grunt.js for linting, css compilation and minification nowadays, I wanted to make a simple experiment and see if I could do the same using a plain batch file – in Windows no less. Turns out some things are very easy and some quite tricky.


Smart generation of Gzip files for nginx

As the complexity of today’s sites increases, so are the challenges to keep the site loading fast and bandwidth usage low. Minified scripts, concatenated CSS, image sprites and even hand-crafted static html are used for speedy delivery. This article discusses some less-known features of nginx that can lead to significant speed increase.


Replacing Union Platform Default Derby Datasource with MySQL Server

Union Platform is a powerful and easy-to-use multiplayer server written in Java. By default it uses an embedded Derby database. In this article I’ll show you how you can replace this datasource with a MySQL one and how to process the database with minimum downtime.


Photoshop tricks: Solving common photography problems using Image Stacks

Have you ever wanted to take a noiseless landscape shot in low light but didn’t have a tripod with you? Got frustrated while trying to get a macro shot into perfect focus? Or have you ever tried to photograph some landmark but those pestering tourists kept getting into view?


The Best 3 Photo RAW Converters of 2013

While most casual photographers still shoot in JPEG, there’s no denying that RAW gives unparalleled control. And what’s really exciting is that with each new generation of software, the processing becomes even more powerful, allowing one to revisit old photos and get even more “punch” out of them. In this article I’ll review the best new RAW processors: Adobe Lightroom 4, DXO 8 and Capture One Pro 7


Correct Name Capitalization in PHP

One annoying scenario is when you let users enter their names and then you need to output their names nicely, for example in a newsletter. Some users simply enter their names in upper/lowercase, but obviously when you address them you can’t do the same. On the other hand PHP’s ucfirst() and ucwords() functions are too naive for proper capitalization.


PHP Download Script with Resume option

A while ago I wrote an article about the¬†common pitfalls of handling file downloads in PHP. One thing I did not realize at that time is that in most cases developers don’t have the time to write such a script and they’ll use whatever they can find, even if it has flaws.

Because of this, I decided to write a download script and release it free for everyone with a BSD License.