2017-09-24 17:34:45 -0400 EDT
After a brief hiatus from dealing with my personal website, I’ve now migrated
from my ad-hoc system to a formal static site generator.
The system I chose, after a fair evaluation and comparison period, is
It’s a wonderful system with lots of robust and convenient features.
The templating system is powered by Go’s html/template and friends which is
really nice but still has some minor annoyances (like dealing with variables
of different scope and so on). Hugo however has alleviated a lot of these
subtleties with convenience functions and other behaviours.
Overall, the migration from a jumble mess to Hugo was relatively clean and
brief. The hardest part was actually figuring out how to use the templating
system effectively for designing the theme.
2017-05-14 15:43:37 -0400 EDT
Yep, you guessed it. The last big feature used in this site is the parallax-scrolling theme layout behavior.
This is a fairly simple mechanic thanks to CSS3 and basically revolves around the background-image property being configured in such a way that it's statically-pinned to the "background" and the content can flow overtop nicely.
For this one, w3schools.com has a wonderful How To - Parallax Scrolling page that really demystifies the technique.
2017-05-14 15:30:22 -0400 EDT
What a great question! So glad you asked instead of just viewing the source Luke ;)
The menus employ a CSS technique which relies upon radio-button input tags for the selection tracking. Quite ingenious really.
For the record, I didn't invent this, I just wrote up a nice little bit and a demonstration / proof-of-concept which you can find on codepen.io
I learned about this technique while googling for HTML5 and CSS3 menu examples. Too many results to say it was just one or another that taught me the concept. Trying a bunch and then writing my own codepen was what brought it all together in my head.
2017-05-14 15:01:17 -0400 EDT
NoScript is a wonderful tool and a decent first-line-defense against the wild interwebs. When a machine, with any operating system, plugged into the internet is typically probed and prodded within minutes of having an IP allocated; it's only prudent to reduce our attack surface.
If you've never used NoScript before; here's a quick tip - it instantly breaks 2/3rds or more of the internet when you turn it on... and that's A-OKAY by me!
I use NoScript all the time and have built up a habit of temprarily allowing and denying every connection and chirp the plugin(s) make in my browser(s). Sometimes, websites unexpectedly work with NoScript enabled and that makes me proud and happy that I don't have to disable or fiddle with the settings.
Debugging is far more difficult than writing code. What's worse is that as humans with egos and so on, we tend to compete with ourselves and write things as clever and impressive as we can. That's a mistake and a sure-fire way cripple your deliverables and/or timelines.
Someone far smarter than I once said: "Everyone knows that debugging is twice as hard as writing a program in the first place. So if you're as clever as you can be when you write it, how will you ever debug it?"
2017-05-14 14:42:33 -0400 EDT
This site is entirely contained within a single file, with the exception of the binary image data.
There are a number of reasons why one would want to take this approach with a website, particularly statically-generated sites. The biggest and most important reason is efficiency.
By reducing the total number of connections made by the client browser, we reduce overhead. Webservers can be configured to utilize GZIP compression, web application firewalls can be configured for aggressive caching and so on.
There are many situations of course where the single-page-all-content model breaks down and that's when you've got dynamic or user generated content or there is just so much content that it makes downloading all of it not worthwhile when the average visitor only visits a handful of links.
Always use the right tool for the right job and this is just a simple example worth knowing.
2017-05-14 14:10:07 -0400 EDT
All of the tricks and techniques that are being employed on this site are in some way or another answered by stackoverflow, w3schools or any of the bazillion examples of cool things on sites like codepen.io which of course are littered in Google's results for anyone who cares to learn.
The next three journal entries will elaborate upon the individual techniques of interest that have been applied to this site design.
2017-05-14 10:11:27 -0400 EDT
It's pretty simple really.
The above are all just irrelevant personal biases that I get to enforce upon my own personal space. When it comes to my professional life; I don't care if it's Win/Lin/Mac or VB or LISP - I get paid to fix problems and problems I be fixin' wherever I can. If that means I've gotta be just as good with iptables as I am with Vyatta routers - so be it; I get to learn something new!