After many years actively avoiding the issue, I've now accepted the
inevitable: I have to learn JavaScript
(and node.js
too, for that
matter). While I've spent many years doing enterprise software development
at the boundary of kernel and userspace using C and Python, the software stack
above has just been what I consumed rather than created. It's time for that
to change.
As it so happens, I'm on gardening leave until COB on the 1st of May. I thought my homepage could do with an update and decided to write a function to display how much time remains:
let secPerDay = 86400; let enddate = new Date("2019-05-01T07:00:00.000Z"); function timeRemaining() { // refers to enddate, which is Date("2019-05-01T07:00:00.000Z") let now = new Date(); if (now >= enddate) { return ("Gardening leave has finished, I'm a free agent"); }; let diff = (enddate.getTime() - now.getTime())/1000/secPerDay; let days = Math.floor(diff); let frachours = 24 * (diff - days); let hours = Math.floor(frachours); let minutes = Math.floor(60 * (frachours - hours)); return ("Gardening leave ends in " + days + " days, " + hours + " hours, " + minutes + " minutes."); } function outputTR() { let el = document.getElementById("TextDiv"); el.innerHTML = "<b>" + timeRemaining() + "</b>"; el.color = "#000000"; }; window.setInterval("outputTR()", 1000);
Pretty simple, a little bit silly, but does the job. I'm actually excited by it because it's an opportunity for me to rejig my thinking about what my "kernel" is - it's the browser.
As it happens I also picked up a book called Data Visualization: A Practical Introduction so I can see a fair bit of inquiry into government datasets in my future.