Semaphore Bull Memorial

I joined Easy Forex back in 2012 to work on a rather complex project – migrate main website of the company from a really outdated version of DotNetNuke to WordPress.  WordPress, even though it is an absolutely amazing platform, turned out not to be the right tool for the job.  But we’ve managed to deliver anyway.  One of the annoying practices that we had to employ though was a semaphore flag for the database changes – only a single developer could work on the database at any given time.  (Again, this wasn’t a WordPress limitation, but rather specifics of our environment at the time).  That was the time when we introduced the Semaphore Bull to our development process.

Semaphore Bull

 

It worked out quite well.  But being a soft toy, it got abused a lot along the way.  It lost a leg, which was screwed in for a while.  Then it nearly lost the whole butt.  Then the head.  Beaten, barely alive, it still stood its ground and did the job!  At some point it got so bad, that we’ve had to place it into the plastic container, where it survived for a few more month.

Today we’ve finalized our migration of the main website from WordPress to CakePHP.  The system is so simple now that we don’t even need a database  anymore.   And with that, the job of the Semaphore Bull ends.   Gone, but not forgotten though!

Because of its huge contribution to our work, because it saved us from countless painful hours of resolving SQL conflicts, we’ve decided to create a memorial.  Ironically, the memorial to Semaphore Bull is built out Semaphore Bull itself, and the container it lived in.  For the future generations to remember the deed, we’ve printed out the snippet of the developer’s manual and embedded it into the memorial together with the dates.   Here’s how it looks altogether now.

Semaphore Bull memorial

Thank you, Semaphore Bull.  You’ve done us a great service.  Rest in peace.

PHỞ DEVSTACK 1.0 – automated workflow for front-end developers in one tasty bowl of code

PHỞ DEVSTACK 1.0 – automated workflow for front-end developers in one tasty bowl of code.

Features:

  • Yeoman generator
  • Livereload (without refresh for CSS)
  • LESS stylesheets compilation
  • HTML, JavaScript and CSS minification
  • Advanced image handling (base64 inlining, image optimization, sprite generation)
  • Browserify JavaScript modules
  • Linting JavaScript
  • Running unit and end to end tests
  • Configurable directory structure
  • Replacing text in HTML (meta tags, analytics codes)
  • Scripts and stylesheets revisioning
  • Running build after file is changed
  • Configurable plugins
  • Stays up-to-date

Rob Ashton : you have ruined JavaScript

Rob Ashton : you have ruined JavaScript

Rob talks about “enterprise”-level-like frameworks in JavaScript and the complexity of abstractions in some of them. For example, quoting AngularJS framework documentation like this:

An Angular “service” is a singleton object created by a “service factory”. These service factories are functions which, in turn, are created by a “service provider”. “The service providers are constructor functions”. When instantiated they must contain a property called $get, which holds the service factory function.

Whether you agree (I do) or disagree with his point of view, the blog post is still hilarious.