summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorThomas Voss <mail@thomasvoss.com> 2023-12-10 03:08:01 +0100
committerThomas Voss <mail@thomasvoss.com> 2023-12-10 03:08:01 +0100
commitd0c2b2cf706cc46268f690e07ab78d341a56861a (patch)
treea0c647931d80af54c517da72017065c7f5a95c3e
parent9e337a2309c9dcadd91fb3878c2194c477b92bf7 (diff)
Abbreviate POSIX
-rw-r--r--src/blog/andy-val/index.gsp4
-rw-r--r--src/blog/new-sh/index.gsp73
-rw-r--r--src/style.css47
3 files changed, 64 insertions, 60 deletions
diff --git a/src/blog/andy-val/index.gsp b/src/blog/andy-val/index.gsp
index 63f0699..2eea5ef 100644
--- a/src/blog/andy-val/index.gsp
+++ b/src/blog/andy-val/index.gsp
@@ -96,8 +96,8 @@ html lang="en" {
p {-
For example, Andy like all shells implements support for signal
- handling. In the POSIX shell this is done via the ‘trap’ builtin
- function:
+ handling. In the m4_abbr(POSIX) shell this is done via the ‘trap’
+ builtin function:
}
figure {
diff --git a/src/blog/new-sh/index.gsp b/src/blog/new-sh/index.gsp
index 4646042..9da8e39 100644
--- a/src/blog/new-sh/index.gsp
+++ b/src/blog/new-sh/index.gsp
@@ -3,7 +3,7 @@ html lang="en" {
body {
header {
div {
- h1 {-POSIX Pitfalls}
+ h1 {-m4_abbr(POSIX) Pitfalls}
m4_include(nav.gsp)
}
@@ -26,15 +26,16 @@ html lang="en" {
h2 #prologue {-Prologue}
p {-
Since the moment I decided to take software development more seriously,
- I have been absolutely enamored by the Shell @x-ref{-1} — the POSIX
- shell to be more specific. The syntax is questionable at times, and the
- available resources outside of the POSIX specification itself are
- absolutely piss-poor as a result of the average *NIX user failing to
- understand the difference between @code{-/bin/sh} and Bash @x-ref{-2}.
- What @em{-really} drew me into the Shell was the powerful idea of
- composability, and being able to combine simple tools to form a much
- more powerful one in only a handful of lines. I talked more about this
- @a href="/blog/extend" {-in my previous post}.
+ I have been absolutely enamored by the Shell @x-ref{-1} — the
+ m4_abbr(POSIX) shell to be more specific. The syntax is questionable
+ at times, and the available resources outside of the m4_abbr(POSIX)
+ specification itself are absolutely piss-poor as a result of the
+ average *NIX user failing to understand the difference between
+ @code{-/bin/sh} and Bash @x-ref{-2}. What @em{-really} drew me into the
+ Shell was the powerful idea of composability, and being able to combine
+ simple tools to form a much more powerful one in only a handful of
+ lines. I talked more about this @a href="/blog/extend" {-in my
+ previous post}.
}
p {-
@@ -44,18 +45,18 @@ html lang="en" {
century in age. It some things right — like the idea that you can use
loops and conditional statements in a pipeline — but it also got a lot
of things wrong, and these are things that we can improve on. The most
- obvious deficiency in POSIX shells is the absolutely abhorrent handling
- of whitespace.
+ obvious deficiency in m4_abbr(POSIX) shells is the absolutely abhorrent
+ handling of whitespace.
}
p {-
- There have been quite a few alternatives to the POSIX shell made over
- the years, although I find this to be an area that is shockingly
- underdeveloped. If you’re reading this, I implore you to attempt to
- design your own shell, no matter how simple. If you know how to make
- one, you can experiment with new ideas! If you don’t, it’s a really
- great learning experience, even if all your shell can do is spawn a
- process.
+ There have been quite a few alternatives to the m4_abbr(POSIX) shell
+ made over the years, although I find this to be an area that is
+ shockingly underdeveloped. If you’re reading this, I implore you to
+ attempt to design your own shell, no matter how simple. If you know
+ how to make one, you can experiment with new ideas! If you don’t, it’s
+ a really great learning experience, even if all your shell can do is
+ spawn a process.
}
aside {
@@ -69,16 +70,17 @@ html lang="en" {
}
}
- h2 #alternatives {-Alternatives to POSIX}
+ h2 #alternatives {-Alternatives to m4_abbr(POSIX)}
p {-
There are a few alternatives shells that have managed to garner a
- respectable userbase. Fish, Powershell, Nushell, and Elvish just
- to name the ones I can think of off the top of my head have all managed
- to get a userbase while giving the finger to POSIX. I do believe that
- ditching POSIX is a necessity to create a half-decent modern shell. I
- have used Fish for close to a year before and it is probably my favorite
- of the bunch; it tries to do its own thing with its own ideas, but it
- still remains highly familiar for those coming from POSIX.
+ respectable userbase. Fish, Powershell, Nushell, and Elvish just to
+ name the ones I can think of off the top of my head have all managed to
+ get a userbase while giving the finger to m4_abbr(POSIX). I do believe
+ that ditching m4_abbr(POSIX) is a necessity to create a half-decent
+ modern shell. I have used Fish for close to a year before and it is
+ probably my favorite of the bunch; it tries to do its own thing with
+ its own ideas, but it still remains highly familiar for those coming
+ from m4_abbr(POSIX).
}
p {-
@@ -130,7 +132,8 @@ html lang="en" {
p {-
Take process redirection for example. To properly compare the outputs
- of two processes in POSIX shell, we need to do this whole rigmarole:
+ of two processes in m4_abbr(POSIX) shell, we need to do this whole
+ rigmarole:
}
figure {
@@ -158,13 +161,13 @@ html lang="en" {
}
p {-
- There are a few fundamental ‘problems’ I want to fix in Andy. The first
- is whitespace handling; safe POSIX shell scripts will contain almost as
- many quotation marks to avoid word-splitting as Lisp programs contain
- parenthesis. This is an absolute must, under no circumstance should
- strings be expanding into even more strings without the explicit consent
- of the user; it’s a recipe for disaster and it’s the shell-equivelant of
- the null-pointer-exception.
+ There are a few fundamental ‘problems’ I want to fix in Andy. The
+ first is whitespace handling; safe m4_abbr(POSIX) shell scripts will
+ contain almost as many quotation marks to avoid word-splitting as Lisp
+ programs contain parenthesis. This is an absolute must, under no
+ circumstance should strings be expanding into even more strings without
+ the explicit consent of the user; it’s a recipe for disaster and it’s
+ the shell-equivelant of the null-pointer-exception.
}
p {-
diff --git a/src/style.css b/src/style.css
index 42b55e1..3c7527f 100644
--- a/src/style.css
+++ b/src/style.css
@@ -246,29 +246,30 @@ dl {
pointer-events: none;
}
- abbr.api::before { content: 'Application Programming Interface'; }
- abbr.ast::before { content: 'Abstract Syntax Tree'; }
- abbr.cli::before { content: 'Command-Line Interface'; }
- abbr.cpu::before { content: 'Central Processing Unit'; }
- abbr.css::before { content: 'Cascading Stylesheets'; }
- abbr.cv::before { content: 'Curriculum Vitæ'; }
- abbr.ec::before { content: 'Embedded Controller'; }
- abbr.gnu::before { content: 'GNU’s Not UNIX'; }
- abbr.gsp::before { content: 'German Shorthaired Pointer'; }
- abbr.html::before { content: 'Hypertext Markup Language'; }
- abbr.it::before { content: 'Information Technology'; }
- abbr.js::before { content: 'JavaScript'; }
- abbr.led::before { content: 'Light-Emitting Diode'; }
- abbr.nas::before { content: 'Network Attached Storage'; }
- abbr.pdf::before { content: 'Portable Document Format'; }
- abbr.qr::before { content: 'Quick Response'; }
- abbr.rgb::before { content: 'Red Green Blue'; }
- abbr.sha::before { content: 'Secure Hash Algorithm'; }
- abbr.tfa::before { content: 'Two-Factor Authentication'; }
- abbr.totp::before { content: 'Time-Based One-Time Password'; }
- abbr.uri::before { content: 'Uniform Resource Identifier'; }
- abbr.xml::before { content: 'Extensible Markup Language'; }
- abbr.yaml::before { content: 'YAML Ain’t Markup Language™'; }
+ abbr.api::before { content: 'Application Programming Interface'; }
+ abbr.ast::before { content: 'Abstract Syntax Tree'; }
+ abbr.cli::before { content: 'Command-Line Interface'; }
+ abbr.cpu::before { content: 'Central Processing Unit'; }
+ abbr.css::before { content: 'Cascading Stylesheets'; }
+ abbr.cv::before { content: 'Curriculum Vitæ'; }
+ abbr.ec::before { content: 'Embedded Controller'; }
+ abbr.gnu::before { content: 'GNU’s Not UNIX'; }
+ abbr.gsp::before { content: 'German Shorthaired Pointer'; }
+ abbr.html::before { content: 'Hypertext Markup Language'; }
+ abbr.it::before { content: 'Information Technology'; }
+ abbr.js::before { content: 'JavaScript'; }
+ abbr.led::before { content: 'Light-Emitting Diode'; }
+ abbr.nas::before { content: 'Network Attached Storage'; }
+ abbr.pdf::before { content: 'Portable Document Format'; }
+ abbr.posix::before { content: 'Portable Operating System Interface'; }
+ abbr.qr::before { content: 'Quick Response'; }
+ abbr.rgb::before { content: 'Red Green Blue'; }
+ abbr.sha::before { content: 'Secure Hash Algorithm'; }
+ abbr.tfa::before { content: 'Two-Factor Authentication'; }
+ abbr.totp::before { content: 'Time-Based One-Time Password'; }
+ abbr.uri::before { content: 'Uniform Resource Identifier'; }
+ abbr.xml::before { content: 'Extensible Markup Language'; }
+ abbr.yaml::before { content: 'YAML Ain’t Markup Language™'; }
}
@media (max-width: 600px) {