Mar. 23rd, 2011

jducoeur: (Default)
In my continuing explorations of functional and higher-order programming, I just came across the Up Library, and the series of blog posts that motivate it. This is *wild* stuff, and helps explain some of the strangenesses in Scalaz. Basically, it starts with a demonstration that Scala's type system is, itself, a full programming language, and then goes to town with it. It starts out seeming like wankery, but it's worth pushing through the series, which eventually gets around to building up concepts like HLists -- arbitrarily heterogeneous, yet completely type-safe, lists. (And thence KLists -- lists of items that share a higher-order Kind: for instance, a List of Lists, where the subsidiary lists have different object types, but you still want to be able to treat them as Lists.)

Brain-breaking stuff, and it's going to take me a while to fully internalize it, but the potential in these examples is clear: if you're willing to get into it, you can push the Scala type system *way* beyond what you would normally expect. This allows you to do things that you'd kind of intuitively *like* to be able to do with complex data structures, but are normally prevented by the type system. He does call out limitations of the Scala type system (and freely admit that he is abusing the system mercilessly), but it's an excellent series for pushing the boundaries of your assumptions about what's possible...
jducoeur: (Default)
In my continuing explorations of functional and higher-order programming, I just came across the Up Library, and the series of blog posts that motivate it. This is *wild* stuff, and helps explain some of the strangenesses in Scalaz. Basically, it starts with a demonstration that Scala's type system is, itself, a full programming language, and then goes to town with it. It starts out seeming like wankery, but it's worth pushing through the series, which eventually gets around to building up concepts like HLists -- arbitrarily heterogeneous, yet completely type-safe, lists. (And thence KLists -- lists of items that share a higher-order Kind: for instance, a List of Lists, where the subsidiary lists have different object types, but you still want to be able to treat them as Lists.)

Brain-breaking stuff, and it's going to take me a while to fully internalize it, but the potential in these examples is clear: if you're willing to get into it, you can push the Scala type system *way* beyond what you would normally expect. This allows you to do things that you'd kind of intuitively *like* to be able to do with complex data structures, but are normally prevented by the type system. He does call out limitations of the Scala type system (and freely admit that he is abusing the system mercilessly), but it's an excellent series for pushing the boundaries of your assumptions about what's possible...
jducoeur: (Default)
It occurs to me that I haven't posted a followup to my previous post about Shapeways yet.

So I did wind up ordering a couple of things there, experimentally -- that proved educational. I ordered two items, both from the catalog of a creator named "Bathsheba", who specializes in using Shapeways to print fancy 3D mathematical objects.

The first was The 120-Cell, which I got in the "Winter Red Strong and Flexible" plastic. That was really too expensive a toy ($85), but is quite a cool demonstration of the power of this technology. The thing is essentially a 3D projection of a 4D hyper-dodecahedron. It's simply a frame of a shape, but so ridiculously complicated that making it using more conventional technologies would be a real pain in the ass. The thing came in with no problems, though -- a bright red, preposterously overcomplex bit of plastic about four inches across. The "Strong and Flexible" plastic seems to live up to its billing, putting up with moderate abuse despite the relatively fine struts throughout. It's become my new fidget toy at work, because it is great for simply flipping hand-to-hand while I think or listen in meetings.

On the downside, the second toy was the "Triple Torus Pendant" -- which doesn't have a link any more, because it demonstrated a flaw in their system. This thing was a beautiful gold-plated stainless steel pendant, with two identical interlocking elements. As it turns out, freely-moving pieces are forbidden for stainless steel, but they apparently didn't figure that out until I ordered it. Far as I can tell, Bathsheba didn't even know that the item was illegal until I tried to order it and they went to print one. So now I have a store credit that I need to think about. (They offered a refund, but it's fairly inconvenient, so I probably will buy something else instead.)

Overall, the process went pretty smoothly other than that. It's a bit slow, but they kept me updated along the way. Someone expressed concerns about shipping, but that seems to now be factored into the price of the items.

It's definitely still a tad too expensive for regular use, and they need to file off the edges of their process. But I'm generally encouraged, and starting to think about, eg, how I might use Shapeways to create the occasional truly esoteric LARP prop. It's cool enough that they print in plastic, but the idea of being able to print in glass, stainless steel, and even sterling silver -- it does raise all kinds of intriguing possibilities, and I find myself pondering the notion of *printing* one of the key items in Girl Genius that was simply an item card the first time around...
jducoeur: (Default)
It occurs to me that I haven't posted a followup to my previous post about Shapeways yet.

So I did wind up ordering a couple of things there, experimentally -- that proved educational. I ordered two items, both from the catalog of a creator named "Bathsheba", who specializes in using Shapeways to print fancy 3D mathematical objects.

The first was The 120-Cell, which I got in the "Winter Red Strong and Flexible" plastic. That was really too expensive a toy ($85), but is quite a cool demonstration of the power of this technology. The thing is essentially a 3D projection of a 4D hyper-dodecahedron. It's simply a frame of a shape, but so ridiculously complicated that making it using more conventional technologies would be a real pain in the ass. The thing came in with no problems, though -- a bright red, preposterously overcomplex bit of plastic about four inches across. The "Strong and Flexible" plastic seems to live up to its billing, putting up with moderate abuse despite the relatively fine struts throughout. It's become my new fidget toy at work, because it is great for simply flipping hand-to-hand while I think or listen in meetings.

On the downside, the second toy was the "Triple Torus Pendant" -- which doesn't have a link any more, because it demonstrated a flaw in their system. This thing was a beautiful gold-plated stainless steel pendant, with two identical interlocking elements. As it turns out, freely-moving pieces are forbidden for stainless steel, but they apparently didn't figure that out until I ordered it. Far as I can tell, Bathsheba didn't even know that the item was illegal until I tried to order it and they went to print one. So now I have a store credit that I need to think about. (They offered a refund, but it's fairly inconvenient, so I probably will buy something else instead.)

Overall, the process went pretty smoothly other than that. It's a bit slow, but they kept me updated along the way. Someone expressed concerns about shipping, but that seems to now be factored into the price of the items.

It's definitely still a tad too expensive for regular use, and they need to file off the edges of their process. But I'm generally encouraged, and starting to think about, eg, how I might use Shapeways to create the occasional truly esoteric LARP prop. It's cool enough that they print in plastic, but the idea of being able to print in glass, stainless steel, and even sterling silver -- it does raise all kinds of intriguing possibilities, and I find myself pondering the notion of *printing* one of the key items in Girl Genius that was simply an item card the first time around...

Profile

jducoeur: (Default)
jducoeur

June 2025

S M T W T F S
12 34567
891011121314
15161718192021
22232425262728
2930     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags