Reader of books, programmer of computers, raiser of children, drawer of art.
My website: ratfactor.com/
Also on Mastodon: mastodon.art/@ratfactor (where I mostly post art!)
The avatar is a watercolor painting (from my sketchbook) of Tux, the Linux penguin with a pipe and disheveled feathers on the head (Slackware Linux style) in a Roman-style robe and computing on a laptop atop a Roman column. He is leaning on a marble block that has a martini glass. You can't tell, but the martini glass just contains fish-flavored water.
Open Circuits is a photographic exploration of the beautiful design inside everyday electronics. Its stunning …
Review of 'Open Circuits' on 'Goodreads'
5 stars
I LOVE this book. The photography is stunning, the subjects are fascinating. The write-ups are clear and informative. Every part of this book shows a loving attention to detail. Reading this cover-to-cover reminds me of going to the library as a kid and loading up on books about all sorts of different subjects so I could flip through the pages to see pictures of machines and buildings and what-not and learn about them. I'll be keeping this remarkable book out on display in the living room to flip through (and maybe try to tempt the kids with) for a while. Get a copy of this - you won't regret it!
A fantastic language introduction for beginners and fascinating artifact in its own right. The writing is friendly and conversational. The illustrations help make it memorable. The book takes you from the simplest concepts to the hardcore metaprogramming internals of Forth itself. I don't think you could ask for more than this from an introductory programming book.
I'm currently reading the "sequel", Thinking Forth, and I'm enjoying it. Review to come.
"Geralt of Rivia is a Witcher, one of the few capable of hunting the monsters …
Review of 'Season of storms' on 'Goodreads'
4 stars
I think this is a pretty good balance between the earlier clever action-packed short story collections and the later epic world-spanning novels. It pays homage to both while telling a story about Geralt all the way through, yay! This serves as a stand-alone story and could be read at absolutely any time in the series. I like reading books in publication order, so this one is Witcher #8 for me.
Review of 'Threaded interpretive languages' on 'Goodreads'
5 stars
This took me forever to get through. At least three months. As the author admits, TILs are a real bear to wrap your head around because they involve so many independent moving parts. Loeliger does a great job of giving a high-level and low-level explanation of the entire sequence of events, but I'd still be in awe of anyone who could simply read this book straight through and actually GROK how it all works together. Maybe if you work out some of it on paper as well?
But that's fine. This book will guide you through creating your own TIL (or Forth-like language). And if you do that, you'll get it. My own journey involved porting a Forth (JONESFORTH) from one flavor of x86 assembly language to another (AT&T style GAS to Intel style NASM).
If you have a Z80 processor lying around, this book contains a complete implementation (well, …
This took me forever to get through. At least three months. As the author admits, TILs are a real bear to wrap your head around because they involve so many independent moving parts. Loeliger does a great job of giving a high-level and low-level explanation of the entire sequence of events, but I'd still be in awe of anyone who could simply read this book straight through and actually GROK how it all works together. Maybe if you work out some of it on paper as well?
But that's fine. This book will guide you through creating your own TIL (or Forth-like language). And if you do that, you'll get it. My own journey involved porting a Forth (JONESFORTH) from one flavor of x86 assembly language to another (AT&T style GAS to Intel style NASM).
If you have a Z80 processor lying around, this book contains a complete implementation (well, I assume it's complete), so you're good to go! Otherwise, you can use it as a guide and essentially "port" the Z80 code to whatever architecture you're using.
As an object, there is something strangely beautiful about a lot of old computer books. I think it's the typography. This one is a pleasing size, as well - it's a hardback, but of the smaller variety. And the airbrushed cover illustration is a really nice touch.
Ever wanted to make your own game for an old console, or learn about low …
Review of 'Learn Multiplatform Assembly Programming with ChibiAkumas!' on 'Goodreads'
4 stars
Exactly what it says on the cover! An introduction to FIVE different CPU instruction sets (and assembly language programming in general). You won't go DEEP into any of them, of course (270 pages of book versus Intel's famously huge manuals for the *86 series, for example). What I really like about this is that the author gives you a "Hello World" and a raster graphics drawing example and a handy instruction mini-reference for every single processor. Very cool. Definitely right up your alley if you plan to make retro games for old systems (or simulated systems). Borderline useless if you want to write "serious" applications for anything modern. :-)
Review of 'Do Nothing: How to Break Away from Overworking, Overdoing, and Underliving' on 'Goodreads'
4 stars
It's a quick read, but I got quite a bit out of this book. Despite covering a quirky range of subjects, Headlee writes engagingly and did a great job of wrapping it all up at the end. I have to admit, this did make me question my ideas about "being productive all the time" in my personal life.
I still believe in having personal projects, but I'm making more of an effort to include intentional down time (laying on the couch with a book).
Also, if you weren't already questioning the way we structure our work days (really?), this ought to do the trick.
Review of 'Everyday Scripting with Ruby' on 'Goodreads'
5 stars
As I write my review, this book is 15 years old. Which is a very long time in computer language years. But I think this is still a completely useful way to get up to speed on Ruby. I love how it jumps right into useful stuff with file and directory manipulation. I'm also really impressed with the way that Marick managed to organize the book into chapters that not only built on each other, but introduced the features you're less likely to need on a frequent basis (like writing your own modules) at the end.
Highly recommend for any beginner to programming or anyone just wanting to get up to speed on Ruby quickly (or a refresher). Don't worry about idiomatic Ruby usage or the content being up-to-date. You can pick that stuff up as you get more experience with the language.
Edit: Actually, you know what? I'm gonna …
As I write my review, this book is 15 years old. Which is a very long time in computer language years. But I think this is still a completely useful way to get up to speed on Ruby. I love how it jumps right into useful stuff with file and directory manipulation. I'm also really impressed with the way that Marick managed to organize the book into chapters that not only built on each other, but introduced the features you're less likely to need on a frequent basis (like writing your own modules) at the end.
Highly recommend for any beginner to programming or anyone just wanting to get up to speed on Ruby quickly (or a refresher). Don't worry about idiomatic Ruby usage or the content being up-to-date. You can pick that stuff up as you get more experience with the language.
Edit: Actually, you know what? I'm gonna bump this up to 5 stars because I do recommend this book to people and what else might you expect from a beginner's tutorial?
Sara Crewe, a pupil at Miss Minchin's London school, is left in poverty when her …
Review of 'A Little Princess' on 'Goodreads'
3 stars
This was interesting to read coming right off of Little Lord Fauntleroy (also by Burnett). While you can tell it's the same author, the tone is quite different. Fauntleroy is loaded with brilliant dry humor to go with the feel-good emotional strings being pulled. This bears a much stronger resemblance to her most famous book, The Secret Garden. It's sort of like a mix of the two, but with plenty of its own unique elements.
Of the three, Fauntleroy is easily my favorite because of the brisk pace and humor. But I think this would deserve another read some day.
In this candid and often hilarious memoir, the celebrated director, comedian, writer, and actor offers …
Review of 'Apropos of Nothing' on 'Goodreads'
4 stars
Weighing in a hundreds of famous names and short quips about people, places, and showbiz trivia for which I have little context (my VHS rental habits ran more "Alien Laser Fight Vampires"), there was no reason for this to be even remotely enjoyable to me.
But Allen can write. He's also incredible at amazing one-liners. (WAIT, is that just a computer programming thing, or do we also describe single-sentence jokes that way too? I can't even remember and now I don't want to look it up because I like the idea that short, self-contained programs and short, self-contained jokes have the same name and I didn't realize it until now.) There aren't a lot of jokes in this book, but a couple caught me off guard and one in particular made me chortle out loud.
I have no idea what possessed me to read this. The last I'd heard about …
Weighing in a hundreds of famous names and short quips about people, places, and showbiz trivia for which I have little context (my VHS rental habits ran more "Alien Laser Fight Vampires"), there was no reason for this to be even remotely enjoyable to me.
But Allen can write. He's also incredible at amazing one-liners. (WAIT, is that just a computer programming thing, or do we also describe single-sentence jokes that way too? I can't even remember and now I don't want to look it up because I like the idea that short, self-contained programs and short, self-contained jokes have the same name and I didn't realize it until now.) There aren't a lot of jokes in this book, but a couple caught me off guard and one in particular made me chortle out loud.
I have no idea what possessed me to read this. The last I'd heard about Woody Allen was decades ago when it was said that he had, "married his own adopted daughter." Turns out that's not a fair (or accurate, in any legal sense) description of what happened and he even says, "there are still people out there who think I married my own adopted daughter." And I'm like, "well, there you go."
Allen has a pretty alien way of looking at the world and at himself. He comes off as sweetly naive and I don't get the impression he's written about himself in a calculating way. It feels very raw and honest. But it also needs an editor something fierce. There are several occasions where he repeats himself almost word-for-word and some of it comes across as pretty tone deaf. But I heard the text in his voice where the rawness and imperfection works.
Rucker rules! As a math noob, this has been very insightful and helpful, not because I'm going to be able to rush out and use any of the information here (like I've been able to with my recent incursions into linear algebra), but because it completely opened my eyes to the connections between various branches of "higher mathematics." Beyond that, it's been a taste of what it's like to actually THINK about mathematical concepts beyond what I have thought about before (which is basic computation and a tiny bit of number theory).
Bonus points for helping me finally start to grasp logarithms and what they might be for, which is a subject that has frustrated me to no end since the "Big O" notation (classifying the rate at which an algorithm will expend resources as you increase the number of things you shove into it) in computer science. And …
Rucker rules! As a math noob, this has been very insightful and helpful, not because I'm going to be able to rush out and use any of the information here (like I've been able to with my recent incursions into linear algebra), but because it completely opened my eyes to the connections between various branches of "higher mathematics." Beyond that, it's been a taste of what it's like to actually THINK about mathematical concepts beyond what I have thought about before (which is basic computation and a tiny bit of number theory).
Bonus points for helping me finally start to grasp logarithms and what they might be for, which is a subject that has frustrated me to no end since the "Big O" notation (classifying the rate at which an algorithm will expend resources as you increase the number of things you shove into it) in computer science. And for Rucker's fearless use of ordinary conversational English and his humble and honest opinions.
Oh, and additional bonus points for being able to tie the five subjects together in a way that really did have lightbulbs going off in my head. I highly recommend this book to anyone who wants a taste of the interesting mathematical fields and how they relate!
Also, a little shocking fact: this book helped me realize that I actually do not enjoy mathematical logic. Which is bizarre since I'm a computer guy and computers are, at the circuit level, nothing but logic. Hmm.
Review of 'Programming A Problem Oriented Language' on 'Goodreads'
3 stars
This is not an amazing book by any means - but if you're into the Forth language/ecosystem like I am right now, it's pretty high on the list of things to read. It's Moore's own explanation of: 1) What he built, 2) How he reasons about a self-bootstrapping programming language (namely, Forth), and 3) His general philosophy of software development.
I gotta say, while you can argue about how Forth helps or hurts the cause, his First Principle of keeping it simple is spot on! And he's practical about it too.
I like that we get an opinionated take on a variety of topics such as the pros and cons of word (function) name lookup strategies, etc. I love how practical he is about complexity vs. storage concerns vs. compute time concerns.
It's a bit rambling and meandering and is not a highly professional and polished book. According to the …
This is not an amazing book by any means - but if you're into the Forth language/ecosystem like I am right now, it's pretty high on the list of things to read. It's Moore's own explanation of: 1) What he built, 2) How he reasons about a self-bootstrapping programming language (namely, Forth), and 3) His general philosophy of software development.
I gotta say, while you can argue about how Forth helps or hurts the cause, his First Principle of keeping it simple is spot on! And he's practical about it too.
I like that we get an opinionated take on a variety of topics such as the pros and cons of word (function) name lookup strategies, etc. I love how practical he is about complexity vs. storage concerns vs. compute time concerns.
It's a bit rambling and meandering and is not a highly professional and polished book. According to the introduction, it's a manuscript that essentially sat in a drawer for decades. A later chapter even has a note that goes something like: "I'm not sure why I thought this part was needed, but here it is anyway..." Which I enjoy. Moore is human too!
Though I'll be the first to admit that there were some painfully slow parts, when things started happening in this book, they happened hard and fast and the pace kept up for hundreds of pages. I do miss the lighthearted fun of the first story collections, but this is some really amazing storytelling.
Sapkowski managed to come up with a whole new set of clever circumstances and new ways to tell the story. When it's good, it's brilliant. I'm really torn between a 4 and 5 star rating, mostly because I felt like there were some loose ends that may never be addressed. Eh, screw it. Five stars. This is Book 7 by my reading order (which follows publication order).
My understanding is that Book 8: Season of Storms is a prequel of sorts. That sounds fun.
Review of 'A Philosophy of Software Design' on 'Goodreads'
5 stars
I agree with this book so much, it was almost painful to read. It has given me the words to describe what I love and hate about software development. I see from other reviews that this book is contentious. Then this is it: This is "the hill I choose to die on," as the saying goes. I agree with Ousterhout. I may have minor quibbles here and there. But if I had to follow any software religion, it would be the one taught in this book. There, I've said it.
While visiting and caring for Great-Aunt Maria, Mig and Chris discover that their "helpless" relative …
Review of 'Aunt Maria' on 'Goodreads'
4 stars
Very good! The whole first half was superb children's mystery fiction. DWJ has such a unique way of revealing information in ways that are sort of twists and sort of in front of you the whole time. The setting and humor were completely enchanting (while always containing an element of danger and unease).
I think another huge strength in her fiction is the way her characters are all motivated by totally different things. It's realistic in a way that can be jarring and sometimes even upsetting. It makes the stories compelling because often you have NO IDEA what a character will do. But when they do, it makes sense.
It turns out that the premise of the book is pretty wild and the ending...would take some re-readings to properly decide if I like it or not. (Honestly, I shouldn't be putting ratings on anything I haven't read at least twice. …
Very good! The whole first half was superb children's mystery fiction. DWJ has such a unique way of revealing information in ways that are sort of twists and sort of in front of you the whole time. The setting and humor were completely enchanting (while always containing an element of danger and unease).
I think another huge strength in her fiction is the way her characters are all motivated by totally different things. It's realistic in a way that can be jarring and sometimes even upsetting. It makes the stories compelling because often you have NO IDEA what a character will do. But when they do, it makes sense.
It turns out that the premise of the book is pretty wild and the ending...would take some re-readings to properly decide if I like it or not. (Honestly, I shouldn't be putting ratings on anything I haven't read at least twice. But there's so many books to read, so I just plow on to the next one.) Anyway, I'm not ready to stamp this with five stars, but only because I think I liked the first half better than the second half, even when less was happening.
Data is at the center of many challenges in system design today. Difficult issues need …
Review of 'Designing Data-Intensive Applications' on 'Goodreads'
5 stars
Incredible! This took me half a year to read because it's dense and huge. The scope is enormous and the footnotes and citations are all worthy of pursuit. I simply couldn't absorb more than a couple pages at a sitting. It was exactly the thing I needed to get a survey of the techniques and tools used in distributed, fault-tolerant systems that need to run at scale.
I was extremely impressed that Kleppmann didn't merely explain why you would need to solve a particular problem and what each tool did, but also how (at a high level, of course, or it would have been 100 times longer). I've heard of most of the systems mentioned (e.g. Apache Kafka), but never had a clear understanding of why/what/how they would be used. Now I do. Again, the scope is astounding.
It also really helped me put into words the challenges of trying …
Incredible! This took me half a year to read because it's dense and huge. The scope is enormous and the footnotes and citations are all worthy of pursuit. I simply couldn't absorb more than a couple pages at a sitting. It was exactly the thing I needed to get a survey of the techniques and tools used in distributed, fault-tolerant systems that need to run at scale.
I was extremely impressed that Kleppmann didn't merely explain why you would need to solve a particular problem and what each tool did, but also how (at a high level, of course, or it would have been 100 times longer). I've heard of most of the systems mentioned (e.g. Apache Kafka), but never had a clear understanding of why/what/how they would be used. Now I do. Again, the scope is astounding.
It also really helped me put into words the challenges of trying to make "online" transaction systems do the work of "batch" analytic systems. Those are two very antiquated computing terms, but that only highlights that the problems of the 1960s are the exact same problems of today - only the expectations have shifted. We expect to be able to do more now...even when it flies in the face of hard physical realities.
The exact tools mentioned herein will come and go, but I don't see the basic principles changing that much in the coming decades. These are problems we've been struggling with for the entire lifetime of computing. This book is a treasure. Highly recommended for any developer who would like to learn about large-scale systems.