Second attempt: stbl - getting it right!
Back to Static content
It occurred to me years ago that the way to go with simple corporate and personal web-sites, like blogs, is not dynamic content, but static pages. Why? Because it's simpler. Things should not be more complex then they need to be. The current trend of publishing content in One Page web applications is insane! Unless you make an application, like an interactive chat, or a game, the only thing a "One Page" web application shows is that you are a fool, not knowing or caring about your visitors safety and comfort. It certainly does not make you look cool.
So, there I said it.
Content Management Systems, be it Wordpress, Drupal, something squeezed out of Tomcat, or even my own trusted work-horse, WarCms, are all too complex to keep patched up and safe for simple use. They also burn energy, doing work that are mostly not needed. (It hurts me to admit this, after spending thousands of hours in the past, building and maintaining WarCms).
How does a developer make a blog?
This month I looked at my notes, and really, really wanted that application. Fortunately, I had some spare time, so I spent about 5 days implementing stbl - an acronym for "Static Blog".
Then I spent my spare time over the next two weeks reading up on css - which I find about as interesting as German Grammer. Finally I spent two days hammering out a responsive web design for this site.
(After two days with "web design" work, using css3 and html5 - I really understand why most Front End developers I know never speak about their work. They can go on for hours describing their work-place, or job politics, or stupid managers - but the part where they describe what they do, is usually over in two seconds the first time we speak - like it hurts to even think about that. C++ developers on the other hand can spend hours discussing new standards, tools, cool code they read, or wrote, funny code comments and C++ books - not to mention C++ people like Scott Meyers (the guy with the funny hair on Youtube) or Bjarne).
So, how do Real Developers(tm) make a blog? Obviously, we make a program to do that. No, I'm kidding. 1 week's development time (40 hours) is not something you spend just to feel cool. In my case I simply did not find anything out there that I liked. And in that case, development time is justified. Writing text; be it blog-posts, articles, essays or howtos, is quite time consuming - having a tool that takes away any friction and just Do It Right (tm) is invaluable. I will probably spend 5% of the time dedicated to blogging over the next 12 months, extending and perfecting my tool - and that is just great! Blogging will be more fun, and I get to spend some quality time with code that matters to me.
There are still some missing features in stbl, but it's already sufficiently mature to publish what I have in mind for the next month or so, and in a effortless manner I may add. That alone makes me happy.
This is all it takes to generate and publish my blog:
$ stbl --open-in-firefox --console-log debug --source-dir ~/ownCloud/blogs/lastviking.eu/ --publish-to "lastviking.eu:/var/www/html/" [2017-10-18 12:31:33.900424] [0x00007f45ef4a6740] [info] Ready to process '/home/jgaa/ownCloud/blogs/lastviking.eu/' --> '/home/jgaa/.stbl-site' [2017-10-18 12:31:33.900945] [0x00007f45ef4a6740] [debug] Adding article: git_cheatsheet.md [2017-10-18 12:31:33.901048] [0x00007f45ef4a6740] [debug] Building series: modern_blogging [2017-10-18 12:31:33.901121] [0x00007f45ef4a6740] [debug] Adding article: jekyll.md [2017-10-18 12:31:33.901162] [0x00007f45ef4a6740] [debug] Adding article: stbl.md [2017-10-18 12:31:33.902115] [0x00007f45ef4a6740] [debug] Done with series: modern_blogging [2017-10-18 12:31:33.902170] [0x00007f45ef4a6740] [debug] Adding article: about.md [2017-10-18 12:31:33.902213] [0x00007f45ef4a6740] [debug] Building series: Jenkins [2017-10-18 12:31:33.902319] [0x00007f45ef4a6740] [debug] Done with series: Jenkins [2017-10-18 12:31:33.902916] [0x00007f45ef4a6740] [debug] Listing nodes after scan: [2017-10-18 12:31:33.902986] [0x00007f45ef4a6740] [debug] "Modern blogging" (SERIES) [2017-10-18 12:31:33.903017] [0x00007f45ef4a6740] [debug] ---> "First attempt: Jekyll" (ARTICLE) [2017-10-18 12:31:33.903035] [0x00007f45ef4a6740] [debug] ---> "Second attempt: stbl - getting it right!" (ARTICLE) [2017-10-18 12:31:33.903060] [0x00007f45ef4a6740] [debug] "Jenkins" (SERIES) [2017-10-18 12:31:33.903079] [0x00007f45ef4a6740] [debug] "Git Cheat-Sheet" (ARTICLE) [2017-10-18 12:31:33.903098] [0x00007f45ef4a6740] [debug] "About" (ARTICLE) [2017-10-18 12:31:33.903667] [0x00007f45ef4a6740] [info] "Second attempt: stbl - getting it right!" (ARTICLE) is held back because it is due to be published at 2017-10-18 17:00 [2017-10-18 12:31:33.903840] [0x00007f45ef4a6740] [info] "Jenkins" (SERIES) is held back because it has no published articles [2017-10-18 12:31:33.930034] [0x00007f45ef4a6740] [debug] Generating "First attempt: Jekyll" (ARTICLE) --> "/tmp/30c3-ab67-b846-feda/modern_blogging/jekyll.html" [2017-10-18 12:31:33.958566] [0x00007f45ef4a6740] [debug] Generating "Git Cheat-Sheet" (ARTICLE) --> "/tmp/30c3-ab67-b846-feda/git_cheatsheet.html" [2017-10-18 12:31:33.968364] [0x00007f45ef4a6740] [debug] Generating "About" (ARTICLE) --> "/tmp/30c3-ab67-b846-feda/about.html" [2017-10-18 12:31:34.008415] [0x00007f45ef4a6740] [debug] Creating directory: "/tmp/30c3-ab67-b846-feda/_tags" [2017-10-18 12:31:34.043925] [0x00007f45ef4a6740] [info] Executing shell command: "rsync -a --delete /home/jgaa/.stbl-site/ lastviking.eu:/var/www/html/" [2017-10-18 12:31:38.167902] [0x00007f45ef4a6740] [debug] Removing temporary directory "/tmp/30c3-ab67-b846-feda"```