ciplogic.com
Live with grace. Write superb software.

development

  • Fast Iteration With Byobu, Vim and fast-live-reload

    A while back I wrote a small program named fast-live-reload. The point of it was to be able to do things whenever files change (be that refreshing browsers, or executing programs, such as Compass compilation).

    Here is another sample on how I use it to try out python snippets really fast:

    I basically split my current view in two (using byobu), and I edit in the left view with my trusty vim. Whenever I save, fast-live-reload picks it up and executes the script.

    Instant feedback is instant ;-).

  • fast-live-reload Presentation

    When creating web applications, a lot of time is consumed switching back and forth between the code and the application itself. What if there would be an application that would refresh your browsers automatically?

  • Live reloading web pages using VIM

    Do you want to live reload the browser as you edit and save using VIM?

    Well wait no more, you can install the application by simply running:

    1
    2
    npm install -g fast-live-reload
    fast-live-reload

    Afterwards whenever saving, the page is automatically reloaded. Without any browser plugins.

    fast-live-reload in action

  • Native vs Bluebird vs Core-Promise Benchmark

    I just took for a test the native promises implementation (that is available since node v0.12), the bluebird implementation, and core-promise, my own TypeScript implementation.

    The tests are here for the native, bluebirdor core-promise. Note that all the implementations pass the full Promises/A+ test spectrum of 872 tests.

    I ran each test file 11 times, using:

    1
    for f in `seq 0 10`; do time mocha test-core-promise.js > /dev/null 2>&1; done

    Obviously, I changed the file name between iterations.

    I removed 11.9 seconds, because these are setTimeouts in the actual tests, remaining with actual execution of promises time, and these are the final results (in seconds):

     

    Native Bluebird Core-Promise

    1.616 1.760 1.564

    1.567 1.626 1.520

    1.568 1.669 1.548

    1.539 1.657 1.573

    1.574 1.595 1.557

    1.583 1.604 1.580

    1.543 1.582 1.540

    1.529 1.622 1.567

    1.600 1.605 1.567

    1.407 1.661 1.544

    1.467 1.640 1.587

     

    Conclusion

    Unsurprisingly the native implementation won performance wise, but only less than 1% compared to the core-promise, but ~5% compared to bluebird. Also core-promise defaults to the native promises implementation if it's available, if you would use the exported Promise class (for tests I accessed the CorePromise implementation on purpose).

    1
    var Promise = require("core-promise").Promise;

    Not to mention readability of code: core-promise's Promise vs bluebird's Promise.

    *Disclaimer* I am the creator of the core-promise, and yes I feel pretty good getting better performance than the "unmatched performance" of bluebird. :)

Germanium

The one to rule them all. The browsers that is.

SharpKnight

SharpKnight is an Android chess game.

MagicGroup

MagicGroup is an eclipse plugin.