commit 13419f63d15345c8f82eeaf6ddfff4e563c9f526 (patch)
parent 59f815c6fb4742c22c2bf08e0671722e25f663f4
Author: Alex Karle <alex@alexkarle.com>
Date: Sun, 18 Jul 2021 23:58:40 -0400
blog: Add new entry on creative limitation in coding
Honestly, I'm putting this one out there because its been a while
since I've written, and I'd like to write at a more frequent
cadence. It seemed fairly non-polarizing (see fear-of-judgement in
on-writing(7)), and it was kinda a "ah-ha" moment when it clicked
that this was one of my favorite ways to learn tech!
Diffstat:
2 files changed, 72 insertions(+), 0 deletions(-)
diff --git a/blog.7 b/blog.7
@@ -18,6 +18,9 @@ Otherwise, posts below are from newest to oldest:
.Pp
.Bl -bullet -compact
.It
+.Xr creative-coding 7
+- learning through creative limitation (07/18/2021)
+.It
.Xr use-feeds 7
- RSS/Atom feeds; what, why, and how (02/09/2021)
.It
diff --git a/creative-coding.7 b/creative-coding.7
@@ -0,0 +1,69 @@
+.Dd July 18, 2021
+.Dt CREATIVE-CODING 7
+.Os
+.Sh NAME
+.Nm creative-coding
+.Nd learning through creative limitation
+.Sh DESCRIPTION
+I was talking to a friend recently about hobby coding
+and ways to code creatively.
+In the course of that conversation,
+I was able to put a name to one of my favorite tactics:
+creative limitation.
+.Pp
+A quick internet search seems to associate the term with Phil Hansen
+and more traditional art,
+but I think it applies nicely to coding too.
+For example,
+with this site,
+I've chosen to restrict the tech stack to the OpenBSD base system.
+It wasn't the initial goal (which was to learn
+.Xr mdoc 7 ) ,
+but I quickly realized that restricting to base would give me
+a better chance to learn base.
+.Pp
+Overall, I'd call it a success.
+.Xr jam-tuesday 7
+gave me a chance to learn some
+.Xr sh 1
+and
+.Xr sed 1 ,
+.Xr blog 7
+was a chance to learn
+.Xr mdoc 7 ,
+and the site's build system helped me brush up on BSD
+.Xr make 1 .
+.Pp
+I'd encourage you to try it \(em
+set an arbitrary restriction and see where it takes you!
+Here's a few ideas to get you started:
+.Bl -bullet -compact
+.It
+Write your own X window manager in as few lines of code as you can
+.It
+Write a version control system with
+.Xr sh 1 ,
+.Xr diff 1 ,
+and
+.Xr patch 1
+.It
+Write a blogging engine updated via email
+.It
+Write your own templating language (and parser)
+.El
+The goal, for me, is to choose a challenging project that helps
+me understand a technology I use daily but may take for granted
+(windowing systems, VCS, email, parsers, etc).
+.Pp
+Restricting size helps understand what the core definition of
+a technology is.
+Building clones can help teach edge cases and design decisions one
+might otherwise overlook.
+And in all cases, it's a good chance to learn a new language!
+.Sh SEE ALSO
+.Bl -bullet -compact
+.It
+.Xr blog 7
+.It
+.Xr my-old-man 7
+.El