New AWKzine Issue (#2) is posted. It's a Hexdump clone implemented in #gawk (#awk).
https://maplefish.com/todd/hexdump.html
(issues: https://maplefish.com/todd)
New AWKzine Issue (#2) is posted. It's a Hexdump clone implemented in #gawk (#awk).
https://maplefish.com/todd/hexdump.html
(issues: https://maplefish.com/todd)
Okay, here it is...
Issue #1 of AWKzine (a bunch of crazy ideas implemented in #awk ).
https://www.maplefish.com/todd/squawk.html. or
https://www.maplefish.com/todd/squawk.pdf and the source:
https://www.maplefish.com/todd/squawk.awk
Squawk is a exercise in developing a zero foot print, no dependency and reasonably secure text messaging service that anyone (who has #gawk and openssl and a POSIX compliant shell available on their computer/laptop/tablet/phone) can stand up and run as either a client or server.
Putting the final touches on the first "issue" of AWKzine (my still gestating idea on a series of "literate programming in awk " articles).
First issue is doc & code for an AES-256 CTR mode (with SipHash authentication) secured text chat system (client and server) using just a single script file consisting of #gawk and #openssl (command line).
Nobody asked for this, but I feel compelled to deliver...
I'm working on an AwkZine ( #awk zine) Something no one asked for nor probably needs.
It is going to be a series of #literate_programming papers to show how to implement "from scratch with minimal or zero dependencies" tasks using just #awk or (for internet-y things: #gawk) and standard Linux/BSD tools that should already be in your basic install/distro (like the "openssl" binary).
The idea is to show how you can build stuff like a web server, text editor and (encrypted!) messaging app/server with no magic (e.g. other people's libs or stuff that need to be downloaded and installed). It's not meant to be practical, but meant to educational.
Spent today rewriting the reference C implementation of #SipHash, a secure message authentication code (MAC), in pure gawk (gnu #awk).
I was curious how well the bignum support (-M) works since you need full 64 bit ints (not 64 bit floats -- effectively 53 usable bits). Also needed #gawk because plain old awk doesn't have bit operators.
My inspiration came when I stumbled upon AES written in pure gawk (https://github.com/GinSanaduki/AES_in_AWK/)
Found in awk-pta's README, this great interview with Prof. Alfred Aho about the origins of AWK: https://a-z.readthedocs.io/en/latest/awk.html
"it was born from the necessity to meet a need. As a researcher at Bell Labs in the early 1970s, I found myself keeping track of budgets..."
"Some Wall Street financial houses used AWK when it first came out to balance their books because it was so easy to write data-processing programs in AWK..."
Plot twist ! Is AWK the original #plaintextaccounting tool ??