A friend asked recently how I would go about writing a function to do fuzzy time - something that formats time in a casual way, the way you would talk about it in conversation - “just now”, “a few minutes ago”, “2 days ago”, etc. He wanted it to be customizable, where they could define the groupings used. This is what we came up with:
I have been considering starting a blog (technically again) for a while now but I couldn’t convince myself that I had something worth saying. But after being inspired by a fewdifferentpeople that even just documenting what you have learned can make useful and worthwhile content. I don’t expect a large audience — but this is more about me and my journey than anything.
The subjects for the posts here will be varied; Certainly lots of technical posts about what I am learning at my new job but I would expect some scientific, social and possibly even the occasional political thought to come by as well.
I have attempted to do this in the past without much luck — I hope to stick with it much longer this time and if you are reading this I hope you help encourage me too. Hopefully something I learn today can be something you can learn with me.
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.
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.
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.