Back in 2004 I jotted some notes on requirements for IRON types.
Since then I've been drifting somewhat towards looser typing, in the Lisp model; having that as the underlying system provides for more expressive programming power, while optional type declarations as assertions, where required, can bring back the statically checkable safety and runtime efficiency of a strict type system.
But that's not what I'm posting about in the current insomniac haze - I've been thinking about written syntax.
IRON is a data model for values. Although I'm still deciding how the mutable data structures like queues fit into things (specifications of them are definitely needed for TUNGSTEN, but whether they count as part of IRON or not is something I'm still debating), I think I may have settled on a basic syntax for written values.
Now, the key requirement here is that IRON is, in the manner of S-expressions, usable to express just about anything - from source code to boring data. Creating a written data syntax that's pleasant enough to use day in and day out is quite a challenge. s-expressions come pretty close, but are deficient in a few areas. YAML is pretty good, but I wouldn't want to write source code in it.
The main thing I'm adding over s-expressions is Smalltalk-like syntax, which I will explain in detail below.
So, without further ado, here's a basic IRON syntax.
Read more »
They have basically zero support for reusable components.
Right now, I'm writing an app that lets you claim phone numbers from a pool. It has an interface where you can see what numbers you already have, and a page you can go to to claim more numbers by doing a search, then clicking on a number you like to claim it.
This page is implemented by a server-side script (actually, it's a Rails controller, but that's an irrelevant detail at this level) that spits out a search form and a list of matching numbers. The form posts back to the same script; if you hit Search it re-runs the search and displays the new results; if you hit Grab it claims the selected number in your name, and replies with a redirect to the details page for that number.
But now I need to add to it so that new users, when they sign up, get to choose three numbers, which are stored slightly specially in the database, differently from numbers they subsequently claim.
Read more »
As I mentioned before, I have a cloth badge sewn onto my coat of many pockets. Now, Sarah is an avid collector of most things, including such badges; she has bags and boxes of them, generally not sewn onto anything. I don't have the urge to collect like that, but I wouldn't mind a few more to sew onto my coat.
I wouldn't want just any badges sewn on, though; I'm not even keen on picking up badges from places I visit and sewing them on to mark the event.
I think I'd probably like some nerdy ones, to be honest. A NetBSD logo or a hacker emblem would be pretty cool. But I'd really like something Lispy, so I designed the following:

Now, I've found places that will make badges for you, but the minimum orders tend to be in the realm of 100, at a cost of 85 pounds or so... and I don't know if I can sell the spares on to anybody 😉 Perhaps I need to set up a "nerdy cloth badges" business...
The SVN source is available for download, BTW. It was made on a Mac and uses an Apple font for the nice curly lambda, but I'm sure other platforms will have a good font that can be used instead.
Once upon a time, I had an idea that middleware should be really easily accessible from different protocols.
Happily, it looks like somebody has had the same idea, but actually implemented it!
I've not played with it, but it looks pretty neat.
While sitting on a train yesterday, I typed up some thoughts...
Read more »