"""
When I use an editor, I don't want eight extra KILOBYTES of worthless help screens and cursor positioning code! I just want an EDitor!! Not a “viitor”. Not a “emacsitor”. Those aren't even WORDS!!!! ED! ED! ED IS THE STANDARD!!!
"""
strogonoff · 11h ago
> Of course, on the system I administrate, vi is symlinked to ed. Emacs has been replaced by a shell script which 1) Generates a syslog message at level LOG_EMERG; 2) reduces the user's disk quota by 100K; and 3) RUNS ED!!!!!!
wtetzner · 21h ago
> Note the consistent user interface and error reportage. Ed is generous enough to flag errors, yet prudent enough not to overwhelm the novice with verbosity.
EuAndreh · 4h ago
Besides being the stardand, it also has a standard:
More? Less? Why are we talking about pagers? Who's on first?
fredoralive · 23h ago
who on first? I don’t think you can use who as init.
Henchman21 · 21h ago
Not with that attitude!
tincholio · 3h ago
?
adamors · 20h ago
Was hoping to see this here, still makes me laugh after discovering it 20 years ago.
tonymet · 48m ago
I love how much utility 60+ year old Unix commands have. Very powerful, requiring only a few kB of ram, and even 20+ years later, I’m still discovering new utilities.
I did something similar for https://isgithubipv6.web.app/ . Most static site generators are huge ( I was aiming for < 5mb docker container) . I went with `envsubst` , env vars and a simple HTML template.
xelxebar · 14h ago
Nice! Another tantalizing rabbit hole.
I go full in on ed sporadically. It requires a bit of a brain rewire, but tye UX is closer to pencil and paper, which is hard to beat for encouraging deeper thought, IMHO.
Also, check out edbrowse for a line-oriented browser:
It's developed by a blind coder and has a nice core following.
WD-42 · 1d ago
Fantastic. The Unix hackers are alive and well. Keep it real.
Rendello · 1d ago
I did my resume in groff once, formatted like a man page. It didn't look half-bad either.
fiddlerwoaroof · 23h ago
This is a great idea
DaSHacka · 23h ago
100%, I'd love to see the template if GP ever makes a blog post about it
Rendello · 21h ago
I'll see if I can find it. I checked archive.org but it didn't save a copy (it saved the PDF version though, apparently that was good enough to save).
It wasn't the craziest resume I did. I applied for a company that made this UI tool for enterprises. It was a half-WHSIWYG, half-Lua tool. I downloaded the demo and spent a week building my resume as a UI, then sent it to the team. I got an interview with the top level guys and a team of programmers, and they excitedly asked me questions about how I made it and how I figured out certain features (like this image passthrough functionality that "none of their clients could figure out"). It was all very exciting but I wasn't ultimately hired (they were being acquired at the time, perhaps that had something to do with it). I have the video on the UI and the making of it, perhaps I'll post it one day once I anonymize the company's name in the video.
I’m not experienced with groff so the code isn’t great but I was quite happy with the typesetting (and the compile times!)
sgt · 22h ago
I once used m4 to generate my blog. Worked like a charm!
somat · 19h ago
Oh man massive nostalgia hit.
When I was younger I was trying to learn the traditional unix tools, so I sat down with a copy of openbsd and made a wiki using only what was found in the base system, and perl was cheating. The templating engine was m4, web server in shell, page history in rcs, a really neat back reference system in awk(when you square linked to another page, it would put a link back in the backreference section of that other page, inspired by everything2) ...
Now I am trying to see if I have any of the code saved... It was probably one huge pile of injection vectors... but they were my injection vectors.
Hah, found it, Apologies for inflicting it on everyone, But I was having too much fun trying to figure out what past me was on.
I once used m4 to generate my blog. Hated it. Escaping was a nightmare and I was always afraid I'd quote something wrong.
PhilipRoman · 21h ago
I use m4 with -P option and m4_changequote({{,}})
Personally I find it quite reasonable for code that you don't plan on changing any time soon.
kragen · 18h ago
Those seem like they would make it bearable. Also GNU m4 has an extension to standard m4 which doesn't replace builtin macro names that take arguments if you omit the (). Without that, every unquoted occurrence of words like format, index, join, quote, builtin, define, copy, or capitalize silently vanishes. It's a nightmare. You can also avoid this problem with changeword or -P.
kevin_thibedeau · 14h ago
> It has no file inclusion, for one. So C Preprocessor's #include is no longer accessible. I manage without it
m4 is always there with better macros than CPP.
susam · 20h ago
Impressive! Only three leaps away from using butterflies as static site generator!
BoingBoomTschak · 1d ago
The quite cool journey of a hacker trying to find his favourite SSG itch scratching position.
What inspired me to post it is that I cobbled a fun HTML preprocessor using cpp to someone today: https://git.sr.ht/~q3cpma/html-cpp (I use a Common Lisp contraption for myself).
regus · 22h ago
I really like the idea of ed. I tried using it recently but having to constantly reprint the block of code you are editing was really tedious.
skydhash · 21h ago
I think the idea of ed is to embrace the edit-compile-cycle. So the error tell you the specific line to go to. Then after the obvious errors are out, you do a full printout to handle logic errors.
Avshalom · 20h ago
The idea of Ed is that you have a large spool of paper and you make little editing marks on the printout until you decide you've reached some threshold and then print out a fresh up-to-date copy
cardiffspaceman · 21h ago
It’s always fun to figure out the path through the error messages that changes the error line numbers the least, so you don’t have to search or recompile.
djoldman · 22h ago
> Should You Use ed As Site Generator?
> No, not at all.
Well, it (totxt.ed) looks pretty inscrutable to me:
H
!# Include proxy title
!# Insert fallback values
?<head>?a
<SUBTITLE></SUBTITLE>
<DESCRIPTION></DESCRIPTION>
<IMAGE></IMAGE>
<IMAGE_ALT></IMAGE_ALT>
.
w
!# Include the template files via script
g/\(<!--\)*[<#]include \(file=\)*"*\([^">]*\)"* *-*\/*>*/s//&\
\/[<#]include\/d\
-1r \3\
wq\
/
g/[<#]include "*\([^">]*\)"*\/*>*/d\
.,+3w !ed %
E
!# Repeat the second time for recursive includes
g/\(<!--\)*[<#]include \(file=\)*"*\([^">]*\)"* *-*\/*>*/s//&\
\/[<#]include\/d\
-1r \3\
wq\
/
kragen · 18h ago
Huh, I didn't know you could do that in ed. It doesn't look inscrutable to me, just confusing.
rahen · 19h ago
It still looks a lot more legible than a TECO script. ed was a big improvement in ergonomics.
More or less? ED IS THE STANDARD TEXT EDITOR! [1]
[1] https://www.gnu.org/fun/jokes/ed-msg.html
https://pubs.opengroup.org/onlinepubs/9799919799/utilities/e...
I did something similar for https://isgithubipv6.web.app/ . Most static site generators are huge ( I was aiming for < 5mb docker container) . I went with `envsubst` , env vars and a simple HTML template.
I go full in on ed sporadically. It requires a bit of a brain rewire, but tye UX is closer to pencil and paper, which is hard to beat for encouraging deeper thought, IMHO.
Also, check out edbrowse for a line-oriented browser:
https://en.wikipedia.org/wiki/Edbrowse
It's developed by a blind coder and has a nice core following.
It wasn't the craziest resume I did. I applied for a company that made this UI tool for enterprises. It was a half-WHSIWYG, half-Lua tool. I downloaded the demo and spent a week building my resume as a UI, then sent it to the team. I got an interview with the top level guys and a team of programmers, and they excitedly asked me questions about how I made it and how I figured out certain features (like this image passthrough functionality that "none of their clients could figure out"). It was all very exciting but I wasn't ultimately hired (they were being acquired at the time, perhaps that had something to do with it). I have the video on the UI and the making of it, perhaps I'll post it one day once I anonymize the company's name in the video.
I’m not experienced with groff so the code isn’t great but I was quite happy with the typesetting (and the compile times!)
When I was younger I was trying to learn the traditional unix tools, so I sat down with a copy of openbsd and made a wiki using only what was found in the base system, and perl was cheating. The templating engine was m4, web server in shell, page history in rcs, a really neat back reference system in awk(when you square linked to another page, it would put a link back in the backreference section of that other page, inspired by everything2) ...
Now I am trying to see if I have any of the code saved... It was probably one huge pile of injection vectors... but they were my injection vectors.
Hah, found it, Apologies for inflicting it on everyone, But I was having too much fun trying to figure out what past me was on.
https://nl1.outband.net/fossil/gami/dir?ci=tip&type=tree
Personally I find it quite reasonable for code that you don't plan on changing any time soon.
m4 is always there with better macros than CPP.
What inspired me to post it is that I cobbled a fun HTML preprocessor using cpp to someone today: https://git.sr.ht/~q3cpma/html-cpp (I use a Common Lisp contraption for myself).
> No, not at all.
Well, it (totxt.ed) looks pretty inscrutable to me: