This is kind of a response to “If I hear”design pattern” one more time, I’ll go mad”, but I confess I did not read the original deeply. The purpose of Design Patterns (as I understand the book and the concept) is not to provide you with a bunch of ready-made and formulaic solutions to unthinkingly apply. It is to show you examples of how to approach problem-solving in an object-oriented manner, in the hopes that you will internalize the process of discovering abstractions. In almost...| Daniel's Blog
As a Baha’i, I had to rescind my party affiliation because it is an aspect of partisan politics, which is forbidden. That doesn’t mean I can’t or| storytotell.org
In my experience, there are two extreme visions of reality embodied in two philosophies of programming language design. The first is Dijkstra’s| storytotell.org
I have been using Smalltalk, specifically Pharo Smalltalk, a derivative of Squeak, for some light experimentation with Seaside and proper| storytotell.org
All of the entries posted on Daniel's Blog tagged apl| storytotell.org
Earlier tonight I was accosted by a stranger for failing to finish the excellent book Software Foundations: I think whoever recommended it to you| storytotell.org
I recently read most of this famous article, Demystifying Dependence. This is a pretty transformative paper, in my opinion, as a Nix user who is| storytotell.org
A few other things occurred to me. A major benefit: Tragedeigh naming is basically impossible. Is it Cate or Kate? It’s 𐑒𐑱𐑑. I also kind of like that you can see visually the irritating rhyming of my daughter’s friends names: ·𐑧𐑤𐑰-·𐑨𐑤𐑰-·𐑨𐑛𐑰, ·𐑧𐑤𐑰𐑨𐑯𐑩-·𐑭𐑮𐑰𐑨𐑯𐑩-·𐑭𐑛𐑰𐑨𐑯𐑩. If you want to practice, there is a very nice addon for Firefox to convert a page to Shavian, in total or by replacing N (25, 50, ...| Daniel's Blog
I’ve been spending some time the last few days learning the Shavian alphabet. There’s a great learning application at shavian.app. What’s the point| storytotell.org
Here’s a philosophical question about the “White Elephant” game: is it more likely that everyone will leave with a gift they like or that at least a| storytotell.org
Update 2025-05-09: There is now a page on this topic on sona pona! Read that instead, the below is very incomplete and out of date! Natural Semantic| storytotell.org
The latest on Daniel's Blog| storytotell.org
To assist with job interviews at the NRAO we recently wrote a small “contest” program. Without giving away the details, the crux of the problem is| storytotell.org
This is the kind of problem where you could load the whole thing into Postgres and get the answer in about five seconds. In fact, let’s try it: postgres# createtable i18n_day2 (inputtimestampwith time zone); CREATETABLE postgres=# \copy i18n_day2 from /i18np/input.txt COPY1758 postgres=# selectinputat time zone'UTC', count(*) from i18n_day2 groupbyinputat time zone'UTC'having count(*) >= 4; timezone | count ---------------------+-------20XX-YY-ZZ HH:MM:SS | 4 (1row) I decided to censor the ...| Daniel's Blog
According to Aaron Hsu, the starting point for APL programming is the relational model. I’m mixed on this, because I don’t think J has a natural| storytotell.org
My friend Bill recommended I read CES Letter. I found it pretty hard to put down, and read the whole thing over the last couple days. I thought it was worth reflecting on the ideas in it from the point of view of a Baha’i. I haven’t mentioned it on my blog yet for various reasons, but I declared myself a Baha’i in October 2023. So I now belong to a Faith about the size of Mormonism (although much smaller in the US). I have been met with quite a bit of understanding and maybe a little pu...| Daniel's Blog
I just found out about these i18n puzzles and figured I’d take a crack at one in J. The first one is pretty easy. I’m also trying to apply my| storytotell.org
I was talking to Alex this morning and the topic of geometric proof came up. This caused me to spend some time idly thinking about proof. I’ve| storytotell.org
My son’s homework the other day involved the basic statistical functions of mean, median, mode and range. One of the most classic array| storytotell.org
We had to download a new app to watch the Superbowl back in February, Tubi. For some reason I was thinking about vampires back then, so I decided to| storytotell.org
I’m trying to migrate my IT infrastructure to places where it won’t cost much but will be my problem, at least partly so that I don’t feel as much| storytotell.org
Hey, remember this one? It turns out we can do it a little more simply: ({.;#)/.~ 'Mississippi' ┌─┬─┐ │M│1│ ├─┼─┤ │i│4│ ├─┼─┤ │s│4│ ├─┼─┤ │p│2│ └─┴─┘| Daniel's Blog
Charting chart =. {{ l {~ >. (<: #l =. u: 16b20, 16b2581 + i.8) * y % >./ y }} ] dat =. 10 ? 20 13 18 9 0 1 4 16 19 3 7 chart dat ▆█▄ ▁▂▇█▂▃ tsvector in J A tsvector in Postgres is the tokens of the input and their locations. We can compute this in J by cutting the input and associating it with the number of words of the input. Here is the Postgres example: SELECT to_tsvector('english', 'a fat cat sat on a mat - it ate a fat rats'); to_tsvector ------------------------------...| Daniel's Blog
My dad used WordPerfect 5.1 for DOS to manage our tape library. The first computer I really had regular access to was my parents’ 486DX 33 MHz with 8 MB of RAM and a 250 MB disk. It came from the shop with various software, I don’t know if that included WordPerfect 5.1 for DOS or not. I don’t know if the shop bundled it—this was common in that era, but my parents friend Jim“Computer Man” Myers (recently deceased) also came and brought shareware over to the house and might have snu...| Daniel's Blog
I finished Lockhart’s Lament, the 25-page version, and I have some feedback about it. On Proof I regard proof as being the defining activity of math. Really the trio of axiom-theorem-proof. However, proof is the real heart of the matter. I used to have a sort of mystical admiration for the idea of proof. Then Tyler taught me a little bit about Coq, the theorem prover, using Software Foundations. I learned that proof is always intended for an audience, and that the most objective audience wo...| Daniel's Blog
I recently became aware of continued fractions, because my friend Randy mentioned that they are a representation of some insane thing in topology that he mentioned offhandedly and which sort of made sense while he was talking but I really could not reconstruct. However, continued fractions are interesting in their own right, and I started working on this post before I saw the Mathologer video on this topic. A continued fraction is a nightmare scenario where the denominator of a fraction conta...| Daniel's Blog
I live in Socorro, New Mexico, which is near to the Alamo Navajo chapter. The Navajo are the largest Native American tribe by membership in the United States, and their combined lands are the largest of any tribe in the United States. Their reservation includes much of their historical homeland. Their language is the most widely spoken Native American language in the US—I often hear Navajo spoken at Walmart. Navajo culture is an important part of what makes New Mexico the special multicultu...| Daniel's Blog
I am just finishing up the book Math Without Numbers by Milo Beckman. This is a good book for a layperson like me, in that in introduces lots of interesting stuff and provides a kind of a map to mathematics. I have a hunger for more knowledge about math, and I found the book a bit like an amuse-bouche before a meal that isn’t coming. I’m not entirely sure what to do about that, since I’m not prepared to return to school for math, yet I’m not satiated by superficial treatments of math ...| Daniel's Blog
Computer music at New Mexico Tech Around this time last year, my friend Eric Sewell said he was going to teach a computer music class at New Mexico Tech. I had been thinking about taking a class, probably a math class like linear algebra, but on a lark I decided this would probably be interesting. I’ve always loved music, but never really learned an instrument, and I thought, maybe if I involve the computer I can get further than if it’s about dexterity and years of tedious practice. I st...| Daniel's Blog
There is one official Toki Pona orthography, which is the one based on the lowercase Latin alphabet. There are two others: sitelen pona, the script, and sitelen sitelen, which looks like Mayan hieroglyphs. For instance, ale li jo e tenpo (everything has a time) renders in sitelen sitelen as the rather large: And this is rendered in sitelen pona as ale li jo e tenpo. Radicals in sitelen pona are an interesting idea. The color triangle forms a radical: kasi kasi (plant) + kule - color → laso ...| Daniel's Blog
Decreasing sequences It occurred to me that I could think of two ways to generate a decreasing sequence. The built-in i. will do this: i. _7 6 5 4 3 2 1 0 But I could see a way to do it with self-reference $: or with iterate ^:: (<:^:*^:a:) 7 7 6 5 4 3 2 1 0 This essentially says“iterate gathering results” ^:a:“while non-zero” ^:*“decrement” <:. This differs slightly from i. _7 because it includes the number 7, but whatever. The self-reference $: method is a little longer: 0:`(, $...| Daniel's Blog
We can improve slightly on the Collatz examples of Chapter 10 of Learning J by noting that, while taking a function power of infinity produces the fixed-point, taking a function power of boxed infinity (or simply the empty box) also gives us back the intermediate values. Let’s start by bringing back the function itself: collatz =. -:`(1 + 3 * ])@.(2&|) To review briefly, we can treat f`g@.t as false`true @. test In other words, this is a very condensed version of what in C would look someth...| Daniel's Blog
Let’s talk about ΩeΩ = 1. Here’s a great blackpenredpen video about calculating this value: This got me thinking about J, because it has some interesting“adverbs” for doing these sorts of calculations. For starters, there is a built-in numerical derivative operator D., and the power adverb, which has a note that giving an infinite power computes the limit. I think of it as a fixed-point operator: it repeatedly feeds the output back in as an input until the input and output are equal...| Daniel's Blog
The following books have made an impression on me and my beliefs. Biblical Literacy by Rabbi Joseph Telushkin. This book gives you a synopsis of the bible, and Telushkin draws your attention to the moments and ideas that are important in Judaism. In a similar vein, How to Read the Jewish Bible by Marc Brettler, also surveys the content of the Bible and helps to put it into a modern Jewish perspective. Robert Alter’s translation of the Hebrew bible The Five Books of Moses, as well as its con...| Daniel's Blog
I’ve been investigating radio networking a bit lately for a side project I’m thinking about. This summarizes what I’ve learned. Different radio networking technologies in the hobbyist space have a fundamental tradeoff between range, bandwidth and power usage. Increasing range or bandwidth tends to increase power usage. So one has to ask questions like, how much data do you want to exchange on your network, at what rate, how far apart are they, and will your devices be powered. WiFi is a...| Daniel's Blog
How would you chop a linked list in half? A trivial approach would be to just get the length of the list and then walk the list building a first-half copy by tracking the indexes until you get to half that length. Thinking about it, I realized you could use the tortoise-and-hare approach from Floyd’s cycle detector to find the middle of the list: walk the list item-by-item and every-other-item at the same time; when the every-other-item list is exhausted, you’ve found the middle: % bisect...| Daniel's Blog
Stack Overflow is going through some kind of asshole midlife crisis and this blog post is the corresponding spiritual Mustang GT. Don’t be fatuous, Stack Overflow. Your culture is the way it is because of your rules. It’s not an accident that oh-my-stars we just peeked under the rock and discovered last week. Your rules created this monster. What is the overriding principle of Stack Overflow? It’s that questions (and answers) have differing value. Some questions are just more useful tha...| Daniel's Blog
The architect at my work recently handed a prototype he build to me and I was instructed to maintain it. In so doing, I have found a nice little parable here about how things can go wrong and how it can spiral out of control. Also, let’s spit on Hibernate. At the outset, he chose to build a REST server with Hibernate. He went with RESTEasy, which antedates Jersey (JAX-RS/JSR-339) by a few years. The first problem in our story happens because he is using an old version of RESTEasy and an old...| Daniel's Blog
This is adapted from a comment I left on Hacker News. Why don’t we replace SQL with some other, better query language, perhaps something“equally powerful” like get name, age -> (foos.id X bars.foo_id) |> get first(name) |> head? Part of the point of SQL is that the database may choose to satisfy your query in a very different manner than you might expect given the procedural reading. The example query is a nice illustration; a modern relational database may move project/select steps ear...| Daniel's Blog
All other things being equal (they’re not, but let’s pretend), APL will always have a cult of appreciation because it represents really the only| storytotell.org
I want you to close your eyes for a second and picture your biggest hero. Here’s mine. The man you see pictured here is Buckaroo Banzai. According| storytotell.org