Prepros – Sass, Compass, JS Minifier and other stuff

I’ve recently started using Prepos, it compiles sass, does compassey things (like create image sprites) and can minify JS. It has a really nice interface, its open source and has a smiley face to congratulate you on not making a syntax error. Contains everything in its rather large 40mb container, no worrying about dependencies.

I’ve used Scout before, but much prefer this, no Adobe Air, a better user interface and a lot more features.  I still haven’t used JS concatenation, which will be very useful. Or this live refresh feature, but will definitely be trying them out soon.

Top tip for Prepos, is in the options menu, click Sass then select Use Compass, Full Compass Support and use config.rb options. See below..

Prepos Sass options

This will enable proper compass support. You can also configure all your Sassing from within a Config.rb file, allowing you to keep settings constant amongst people on the same repository.

My advice, if you use Sass and your on a Mac or Windows, use Prepos. Why is it better than command line? Because it has a smiley face.

Nginx, a new IP and Node.js

I decided to get Node.js running on the same server as Apache.  I wanted to keep Apache exactly the same, so not messing with .htaccess files and to keep it manageable with Virtualmin. I also wanted to keep using the same server as it had plenty of spare capacity.

Currently the server is a normal LAMP stack as shown by the diagram below.

LAMP stack

The solution was to get another IP address; get Apache to use one, use Nginx on the other. I decided to use Nginx as its apparently faster at serving static files than Node and will allow other services to be proxied to in the future if needs be. It also looks to be safer as a recent DoS vulnerability in Node is not achievable when Nginx is proxying.

apache nginx nodejs
Apache Nginx and Node.js on the same server

I also decided to try out RethinkDB as a Nosql database for Node.js, it has officially supported drivers for Node and stores data in JSON. I could have used the more popular MongoDB but Rethink’s admin interface caught my attention. Node can also connect to the same MySQL server as PHP currently does. This gives the potential to allow Node to do background processing for PHP sites.

I’ll do another post in the near future detailing how I got it working, including a few bumps along the way.

Offline.js Code of the Week

Offline.js checks your ajax requests to make sure they are succeeding. It can then queue requests so they can be made when the user is back online. Comes with a few nicely styled warnings and reconnection messages.

Looks like it’ll be great for mobile web apps where users can have intermittent internet connections.  But may require changes to your web app as you’ll be receiving a batch of queued up commands.  Make sure you’re not animating every response…

More details about Offline.js

Prestashop white label module

As I discussed in the Prestashop module advertising in back office post, I didn’t want the newish module advertisements being displayed. So I made a module.

Its on GitHub: – Or straight to downloads

What it does

Removes premium/priced modules from Back office module list

Removes tips and featured modules from the back office dashboard

Simply download the release and upload the zip and install as you would any module.

I’m thinking about other features, such as removing the dashboard footer links. Comment any other suggestions you’d like to see.

Prestashop module advertising in back office

In newer releases of Prestashop version 1.5 , Prestashop have added premium modules directly in the list of modules page in the back office. These appear along with your local modules and update every so often to feature new paid modules. The premium modules are always labelled as ‘MUST HAVE’ and the install button is replaced by a cart with the price.

Premium module advert in module list

When clicked the button takes you to the normal Prestashop Addons page in a new window, to purchase the module.

If you are delivering Prestashop to your clients they may get confused.

This may be a good way of increasing purchases of modules on the Addons marketplace, but can be somewhat confusing too.  If you are providing Prestashop to a client, they may believe they are buying the module from you. This can cause all sorts of issues with support, future payments and site stability. Will this module interfere with another module? Will it break the site?

Great for Self-installers, bad for suppliers.

You are being cut out of the transaction, could you develop that module that’s being advertised? Will it require extra testing, extra support?

I believe there should be an option in the settings to disable these modules, keeping them for people that need them, removing them for those that don’t.

I’ve made a module to remove it.