TOGoS
Joined 14 years ago
Joined 14 years ago
Most interesting pages are probably `music/` and `plog/`.
Optionally HTTPS, though some of the features don't work right due to links to files on personal servers that I haven't yet got around to the HTTPS rigamarole (they are running like 15-year-old Ubuntu and can't run Certbot; it's such a pain).
That said, I suspect that Ruby on Rails itself occupies kind of a special space where the magic is acceptable because people who write Ruby are used to having very very sharp tools and have learned to wield them carefully. Give that magic to a PHP or Java programmer and there is immediately gallons of blood on the floor.
(says former Rubyist who was put off by the RoR stuff because I'm apparently more of a Haskeller at heart.)
I think this is the main problem.
I don't mind layers of abstraction when they work well and their components compose nicely. Like a well-designed programming language. These can actually be quite fun to work with.
Layers of abstraction where the boundaries between that layer and those around it are fuzzy to non-existent and where certain cases magically work and everything else is a janky mess because it was never designed to work are what give me headaches and want to throw my work laptop out the window on a regular basis.
Then there's the screen that falls backwards.
Should've bought an old Thinkpad, instead.
Those ternary blobs tend to be cross-platform, I hear.
I wrote about the approach a little bit in this Reddit post: https://www.reddit.com/r/openscad/comments/186b54r/interpret...
The interpreter itself is just a single module: https://github.com/TOGoS/OpenSCADDesigns/blob/master/2023/li...
Not at all. You can build any polyhedron you want using the polyhedron command.
Which would be an enormous pain to write out by hand every time, but I wrote a function once upon a time to generate a polyhedron from a stack of layers, each of which is a list of points, and haven't had to mess with old cubes and spheres since.
One annoying thing is that the default way of writing programs in OpenSCAD uses 'modules', which are a bit limited compared to functions (you can't store them as values to to functions or other modules). I worked around that by writing a module that interprets arrays (think S-expressions) that representing the shape, and then just build up that S-expression-like thing with functions and whatever.
Once you've built your own programming language inside OpenSCAD it's perfectly usable. :-)
This might sound like sarcasm but I actually do prefer this to dealing with Python's mutable state jungle / package management nightmare.
The `5.days` example that was posted somewhere else in this thread might be a better example. It is not, as far as I can tell, part of Ruby's core library, thank goodness, but it is the kind of thing the methods-as-hacks-for-syntax culture seems to encourage. My question being "why the heck should the number 5 know anything about days? What does 5.days even mean, given that there are various ways to interpret 'a day'?"
This kind of bad design has made its way all over the place. The Java mocking libraries that my coworkers like to use are full of it. Long chains of method calls that appear like they're trying to 'look like English' but make no damn sense, so you have to dig into each method call and what kind of thing it returns to understand what this chain actually means.
Agreed. The Borg used to be scary because they seemed unbeatable. They were like grey goo that could adapt to whatever you threw at them.[1]
Having a queen gives them a single point of failure. Suddenly they are a lot less scary.
[1] I kind of felt the same way about the Boogieman from Ghost Busters when I was a kid. Teleports between closets and the regular ghost trap doodad doesn't work on him! Shit!