KISS

Don’t learn a programming language, solve a problem instead by Nathan Slaughter

The thing is that the details of how to build something are worthless compared to reasons why you need to build something. I spent my time learning how to build things. Whereas my friend spent his time solving an actual problem.

...

If you want to create something useful then it’s crucial that you learn to identify the reason why first. You begin by asking good questions about who will use something and how it will improve their lives.

That's something to remember to tell the next person who says to me:

Also, you’d be crazy not to use a host like Netlify and github/bitbucket integration (another thing to learn, of course, but worth it if you’re building any software anyway.)

Author:Khürt Williams

A human who works in information security and enjoys photography, Formula 1 and craft ale.

4 thoughts on “KISS”

  1. That’s great advice and something I’ve been trying to teach my brother and others around me since some time. Well worded, so I’ll share that with him.

    But here’s the thing - I read that comment and agreed with him that one can use Netlify in that situation. Now, I’m not saying you should learn Netlify’s usage top to bottom and convert all your stuff to it.

    I came across Netlify when I wanted to host a linkblog. I took someone else’s code that creates Jekyll sites, and then did the bare minimum to connect it with Netlify so that I don’t have to do the build process myself. I believe that once you reach a certain level of technical competency, this is not ‘learning something new’, but problem solving itself. You don’t have to learn the ins and outs of a tool to use it. You need to jump over a goal post, and the more technical a tool (Netlify instead of writing your own build scripts, jekyll instead of WordPress, self-hosted WordPress instead of Medium or WordPress.com), the less you should worry about ‘learning it’ if you’ve got half a solution from somewhere else that you just need to massage into working for you.

    The wording of that comment was poor, but the advice was well founded and specific - it was not to everyone, just to you.

    If you do use Jekyll or other static site generators, why not go one step further and remove your computer from the equation so you can automate and not worry about it? I did and I’m happy. I’ve not logged into Netlify since forever and I couldn’t care less.

    Again, not a solution for everyone, because the advice of ‘solving a problem instead of learning a language’ is for everyone instead. For a slightly more technical person, the ‘problem’ shifts to ‘how do I make this easier than ever?’ in my mind.

    1. Nitin, you made some fair points. I can't help feeling that static site generators (SSG) are being shoehorned into solving problems they were not meant to address. I think SSG was designed to make creation and management of static site content fast and easy. No need for a CMS. Create a few dozen pages in Markdown, add a template, build, copy files to the production web server. Update once or twice a quarter. Simple. Elegant.

      But when the website is no longer static, when the website is updated frequently -- hourly, daily, weekly -- it seems to me that it is no longer a static web site. And when one uses an SSG to rebuild a web site hourly/daily/weekly, one runs into issues. Then one starts to need continuous integration and continuous deployment (CI/CD) tools. Those are developer tools/techniques, right? One then starts outsourcing control of the technology stack to GitHub and Netlify etc. to get around the inherent limitations of the tool. And that, that is what I am pushing back on.

      It's like trying to find ways to put a nail in the wall without using a hammer because the only tool you want to use is a screwdriver. Blogging for me is about publishing my content without friction, not about SSG and CMS etc.

      As an experiment, I set up Hugo on my Mac and tried to develop a workflow for publishing my photo blog post. The initial setup was easy. Install Hugo, install a WORKING theme (there is a lot of shitty ones), mess around for hours with YAML to get an index. Now that was all done I could create a post. I wrote the text in a Markdown text editor just like I do with WordPress. Normally I would expport my processed and edited images directly from Adobe Lightroom to WordPress. That makes publishing a new photo post easy. Launch browser, click browser bookmark for a new post, copy/paste text from Byword, click add feature image, select image, click "add image" for each image I want to add, click publish.

      With Hugo, I have to export the image to a folder, then I find the path and name for each image and copy/paste that into the text editor, that means having two windows open -- one at the file system and the other with the text editor. Save text file, build (and with Jekyll wait and wait and wait), copy HTML and image files to web server. Find an error? Edit a text file and rebuild and recopy. I understand why the CI/CD tools are used, but it feels too much like the whole process is DEVELOPER CENTRIC. AND IT SHOWS!

      I'm a former web developer/system administrator/systems integrator ( we called ourselves webmasters back in the day) who currently does cybersecurity. Trust me; I understand the technology. I know how to keep a 15-year-old WordPress/Linux/MySQL stack website running smoothly and safely (I may want to blog more about that). To suggest that my skills and talent are not up to the task of an SSG would be folly.

      But KISS works! SSG is not KISS. I doubt that few personal websites get enough traffic to warrant optimising for speed and the security risks of WordPress are overhyped. My blog has over 4900 posts and has been on WordPress for almost 15 years.

      It all feels too much like "let's erect barriers to entry and all nod our heads at how smart and cool we are". Like those "fauxtographers" who only shoot in manual mode.

      And finally, I fall back on this:

      If you want to create something useful then it’s crucial that you learn to identify the reason why first. You begin by asking good questions about who will use something and how it will improve their lives.

      1. You make perfect sense Khürt. SSGs certainly were meant to be a one-shot, once-a-year updated kind of solution, maybe for non-technical people to have a few pages out there without fussing with heavy MySQL and PHP sites (that seemed to be the mentality then, right, that php-mysql was a heavy thing to deal with; now, 1-click installers have all but eliminated the difficulties of launching a self-hosted WP site, even though non-technicals are still lost).

        But of course, technicals took over and over-engineered SSGs for their own needs (I don't want to use MySQL anymore, just cause!)

        I wonder though - would an SSG become so popular that a 1-click would be launched for it? The technical difficulties, as you saw, of using SSGs still keeps non-technicals at bay.

        Also, even though I didn't know your exact background, Mr Webmaster, no one can or is suggesting that your skills aren't up to the task - the exact opposite actually - that your skills are advanced enough that you should just not bother with the implementation of a CI/CD for your SSG and should hand it over to Netlify, because it would mean you could move on and wouldn't need to overthink and overengineer a solution of your own.

        SSG is not KISS. It should have become, since it's been out there long enough. But the opposite has happened. WP has become KISS to get your feet wet with. Proof? -> https://www.digitalocean.com/products/one-click-apps/

        As for your comment on the fauxtographers and their corollary in tech, yeah, you're right, we do love to proclaim how smart and cool we techies are, don't we? 😀

        1. I wonder though – would an SSG become so popular that a 1-click would be launched for it? The technical difficulties, as you say, of using SSGs still keeps non-technicals at bay.

          That would indeed be a welcome solution to the current GiHub+Netlify+SomeOtherThing situation. I'm a big proponent of the IndieWeb which means I think people show own and control their publishing platform. What's the point of dumping Facebook/Twitter et. al only to have one's speech controlled and limted by micro.blog or GitHub or Netlify's TOS?

          So ... I'm secretly working out for myself how I would build out a working Hugo SSG setup that is 100% user controlled. It needs to be easy to set up and deploy and must have a CMS style front end. I'm not there yet. I am struggling with the 100 trillion configuration options in Hugo.

          More blog posts about why I think we (the collective IndieWeb) need to prioritize easy over faster if we ever hope to get more people blogging.

          FYI, if you have the time, I suggest attending the upcoming virtual IndieWebCamp. I'm more interested in the concepts than the specific technical parts.

Comments are closed.