Nano-Blog
A collection of short items related to the culture and practice of software develop- ment.
§ April 20, 2025
-
Henry Laxen's Comments about FORTH
In the 1980s, one of the more popular FORTH implementations was Laxen & Perry L&P-83 by Henry Laxen and Mike Perry. If you were doing FORTH on 8 or 16 bit microcomputers, you (at least) looked at L&P FORTH, even if you weren't using it. In 2002, Henry Laxen made a few comments about the joys of FORTH on Slashdot. We couldn't find an archived version on the Internet Archive or via Bing, Google or DuckDuckGo search. But someone put up just his comments on the AtariWiki at Henry Laxen on Slashdot 2002. It's short and Worth a read.
-
Why MIT 6.001 is No Longer Taught with Scheme
Several software hackers of a particular age cut their teeth on SICP : Structure and Interpretation of Computer Programs. It was the name of the book and the introductory courseware where students were presented with a high-level explanation of programming from Hal Abelson and Jerry Sussman. Then, all of the sudden, MIT stopped teaching SICP using Scheme and started teaching it's intro classes with Python. This video, from an NYC Lisp Meetup in 2016, Sussman explains why that happened...
§ April 19, 2025
-
Two Books About Managing Software Projects
We are lucky to live in a world where there are many very good books about writing programs. But what about managing software projects? Two books that spring to mind include Fred Brooks' The Mythical Man-Month and DeMarco & Lister's Peopleware: Productive Projects and Teams.
The first, Mythical Man-Month, introduces several observations Brooks made while managing the development of OS/360 at IBM. It is one of the earlier texts where counter-intuitive aspects of software development are documented. Worth a read.
The second, Peopleware, includes the quote "The major problmes of our work are no so much technological as sociological in nature," which will give you a sense for how the authors approach technical team management.
A bonus book, Ed Yourdon's Death March covers what happens when software projects go bad. If you ignore the advice from Mythical Man-Month and Peopleware, you may have to seek advice in Death March.
§ April 8, 2025
-
Measuring Progress in Software Projects
There's an apocryphal quote attributed to manufacturing and business genius W. Edwards Deming: "If you can't measure it, you can't manage it." As the Deming Institute tells us, while it sounds like something Dr. Deming might say, he did not say that. Deming's thoughts are subtler, involving reasoning about what is knowable and unknowable as mentioned in this blog post by John Hunter.
Deming's ideas on how to run a production system, often called "Lean Manufacturing", were translated into the software domain as Lean Software Development. Mary and Tom Poppendieck wrote a very nice book about applying Lean Manufacturing principles to software in 2003: Lean Software Development. It's a relatively short and easy read and well worth the time. One of the nice features of Lean Software Development is, like eXtreme Programming, it's practices can be adopted one-at-a-time by individual teams, depending on their need.
On the other end of the organizational scale is Robert Grady and Deborah Caswell's Software Metrics: Establishing a Company-Wide Program. This text is from the 1980s and describes how the authors convinced Hewlett-Packard to start measuring the results of the software development process. It is unlikely modern readers will encounter exactly the same type of issues as described in this book, but I loved the description of how the metrics were chosen. There's still wisdom in these pages.
§ April 4, 2025
-
Concerning David Gries' "The Science of Programming"
The difference between reason and intuition is a topic of recent interest. Consider the popularity of Daniel Kahneman's Thinking, Fast and Slow. Over thet last fifty years, the software development has followed both threads. When we talk about "code smells," we are appealing to our intuition. When we talk about formal methods and algorithm analysis, we are considering the rational, rigorous aspect of programming.
The latter is where David Gries' 1981 classic The Science of Programming focuses. Gries takes us through the rigorous process of constructing software based on practical mathematics. You may not need to have a deep foundation in math to become a software engineer, but to be good at it, you should develop your math chops. This text is an accessible introduction to the type of rigor which will eventually prove vital to your life as a developer. [ Thanks to friend-of-the-blog Eric for pointing this one out. ]
#books #programming #software_engineering
-
Installing the Newsboat RSS Feed Reader
Having entered the 21st century, the Bit-Roastery is now making videos. Our first video short is a demonstration of the ease with which one may install newsboat, a text oriented RSS feed reader for Unix-like systems.
§ April 1, 2025
-
Speaking of FORTH, we are reminded of the Jupiter Ace, a ZX80 clone from the early 1980s that ran FORTH as it's default programming language instead of BASIC. The Jupiter Ace came with the book FORTH Programming by Steven Vickers. Vickers' book is at least as good an introduction to FORTH as the standard intro, Starting Forth by Leo Brodie.
#books #forth #Jupiter_Ace #programming #retrocomputing
-
What do you get when you mix FORTH with a Web Browser?
Q: What do you get when you mix the FORTH Programming Language with a web browser? A: WAForth, a FORTH environment that targets WebAssembly.
Hackaday covered WAForth with the article Web Pages Via FORTH back in 2018. And Remko Tronçon mentioned it in the blog article A Dynamic Forth Compiler for WebAssembly. Though slightly dated, both are good starting points for understanding what WAForth is. The CollapseOS article Why Forth? lays out a decent argument for why you might want to use FORTH. But most of all... FORTH is kind of fun.
§ March 30, 2025
-
If You're Looking for a Book on Category Theory
If you're looking for a book on Category Theory, we can recommend this one: Category Theory by Steve Awodey.
#books #functional_programming #programming #category_theory
-
A Simple Explanation of Monads
If you ask a seasoned functional programmer "What is a monad?" you may get a horrible answer back: "A monad is just a monoid in the category of endofunctors." The answer isn't incorrect, but it's horrible if you're a beginner. There's got to be an easier way to explain monads so people just starting out with functional programming.
This video from the Studying with Alex YouTube channel explains Monads without reverting to jargon. A good grounding in Functional Programming and parts of Category Theory will help you reason about functional programming, but you don't have to be an expert to understand the concepts.
#category_theory #functional_programming #programming #video