Smaller bundles with Webpack and Babili

Recently I took an objective look at file sizes for the bundles generated for formBuilder, Formeo.js and mi18n. Each module had between 30-52kb of bloat added to them so I set out to reduce. For this write-up I’ll be focusing on mi18n since it’s the simplest of the 3 and the gains are more easily measured. It’s also fresh in my mind so should be easier to write about. Continue reading

JavaScript Moving Elements using Keys, the right way.

Screenshot from 2016-03-24 17-33-40The LinkedIn group for PHP Developers featured a jQuery tutorial on how to move elements with the keyboard. It linked to a tutorial on, an ok website with various with jQuery, PHP and MySQL tutorials. I’m interested in this sort of thing so thought I’d see what technique they used in their demonstration. It was this one. I strongly disagreed with the technique so left a polite comment on the share in LinkedIn stating there may be a better way to accomplish the task. Rather than starting a constructive discussion weighing pros and cons my comment was simply removed by author so I took it upon myself to write this article. Continue reading

Icon font management with Gulp and Fontello

With all the buzz around GitHub’s switch to inline svg I thought I better publish my current icon font editing workflow while it’s still semi-relevant. No doubt I’ll be adopting full inline svg myself but someone somewhere may find it useful to stick with icon fonts for a while.
In this tutorial we’ll be working with ECMAScript2016 (ES6) so our Gulpfile will actually be gulpfile.babel.js. To begin we’ll add some config to our package.json. Continue reading

WordPress Push and Pull

I seem to be doing a lot of Dev Op stuff lately and recently needed to quickly deploy a local site I was developing. I thought there would be a simple way of doing this with VVV or some other third-party script but unfortunately I did not find a solution that suited my needs, so I made one. Eventually I will either move to Capistrano or expand on these scripts to accommodate different environments and use cases but for now this is working for me. Continue reading