• Jekyll Bash Function

    Trying to streamline my Jekyll development workflow, I came up with this function that I have added to my ~/.bash_profile to make things just a bit easer.

    jserve() {
    	cd ~/dev/ryanguill-blog
    	/usr/bin/open -a '/Applications/Google Chrome.app' 'http://localhost:4000'
    	bundle exec jekyll serve
    }

    Obviously you will need to change the cd at the beginning of jserve, but this will start the Jekyll process and open up a new tab in chrome to the test address. I tried to use the detached mode for jekyll, but apparently there has been a bug for a long time that detached mode doesn’t also watch the directory so that was a non-starter. The only problem with this is that the tab will open before the serving starts, but if you wait just a second and then refresh the page it should be ready to go.

    I’m no bash expert though so if anyone has any improvements or other ideas I would like to hear about them.

    comments

  • Find leaked JS globals

    It can sometimes be easy to inadvertently leak variables / functions into the global scope in your client side javascript - this one-liner will report all non-browser global keys and their values on the page - just paste into your chrome console.

    keys(window).filter(function(key){ return ["location","document","window","external","chrome","top","lastpass_iter","lastpass_f"].indexOf(key) == -1;}).forEach(function(key){console.log(key, window[key]);});

    comments

  • CDN Failover

    For most sites you want to get the benefits of a CDN, but it is still a single point of failure. I came across this pattern recently though that allows you to fail over to a local file if the CDN library doesn’t load. Would probably have to take a different approach with CSS libraries though.

    <!-- try to download from CDN -->
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
    <!-- if failed, switch to local copy -->
    <script>window.jQuery || document.write('<script src="local_server_path/jquery.min.js"></script>')</script>

    Something I hope to explore more very soon is webpack, which might make this trick obsolete.

    Update: It took me a while to find where I had originally found this idea, but I came across it again. Credit: http://minime.stephan-brumme.com/. They also have examples for several other popular client-side js libraries.

    comments

  • Backup all MSSQL user databases

    At my previous job we had several projects where we worked with MSSQL express, maybe with multiple databases. Here is a quick script to just backup all user (non-system) databases on the system, quickly and easily. It could probably be improved a bit, maybe better naming for the backups, but as a quick backup-all-the-things it works great.

    Read more

    comments