diff --git a/Makefile b/Makefile index 0573225..50d42f2 100644 --- a/Makefile +++ b/Makefile @@ -15,7 +15,7 @@ serve: python -m http.server --directory out/ pubdate: - sed -i "s/pubdate: now/pubdate: $$(date -Isec)/" src/blog/*.md + sed -i "s/pubdate: now/pubdate: $$(date -Isec)/" src/blog/**/*.md upload: ./build.py srv/ diff --git a/src/blog/2023/blog-start.md b/src/blog/2023/blog-start.md new file mode 100644 index 0000000..a7a290f --- /dev/null +++ b/src/blog/2023/blog-start.md @@ -0,0 +1,23 @@ +--- +title: The traditional first software engineer blog post +pubdate: 2023-09-28T15:39:59-07:00 +feed: blog +--- + +It seems appropriate for a first post on a blog to explain why the blog exists and how it is built. For people other than software engineers, the latter question is typically not very interesting because the blog is on a blogging site like WordPress or built with a CMS like WordPress. Software engineers, however, have a habit of doing everything from scratch, so they also explain their hosting choice, Emacs plugins, operating system version, and WordPress deployment. + +I do not have a profound answer to either question, so this will be short. I set up this website and this blog to be able to put things on the public Internet and share them with people. Some of those things might not have a particular audience. Someone, somewhere, said something to the effect that teaching something is the best way to learn it. Having to explain something to other people helps solidify your understanding as you are forced to articulate things you had only nebulously grasped before. If I write about how I solved some problem or used some tool, that might also help someone else in the same situation. People learn things differently and sometimes all you need is to see the information presented in the way that clicks for you. + +The explanation of how the blog is built is similarly simple. A directory tree of markup text is parsed by a Python build script into lean HTML and written out to a destination directory tree, which is then uploaded to the server where the files are served. It'd be nice if I could say I used this project to learn a new technology or language, but none of the tools here are new to me. I would defend this decision by saying that I [chose boring technology](https://mcfunley.com/choose-boring-technology), but the reason to choose boring technology is to save your "innovation tokens" for the innovative technology your company is building. A static site and a blog are not innovative, so they do not benefit from token austerity. + +Perhaps this explains the tendency of personal software blogs to sit atop overengineered tech stacks: setting up a blog does not interest the tinkerer unless there is something technologically interesting involved. I don't know if "technologically interesting" is always a virtue; "may you live in interesting times" is considered a curse. I don't want to go down a path where "debugging my blog" could describe my weekend. + +With that said, here are some things I *did* use for the first time while building this: + +* [Python-Markdown](https://python-markdown.github.io/), which has some built-in extensions and supports inline HTML. That lets me do things like insert short page-specific `