• 31 Posts
  • 1.48K Comments
Joined 3 years ago
cake
Cake day: August 4th, 2023

help-circle


  • Poop where?

    If it just makes spaghetti randomly somewhere not on the build plate, a) it’ll leave quite a mess that would need cleaned up and b) it can end up where it shouldn’t be. In a belt gear or incorporated into the print in a way that sticks out and looks bad or stuck to the hot end in a big gob that causes it to not extrude right and blob up in the print or some such.

    I suppose, depending on the other print settings, it might make sense use purged plastic to make up infill. That said, I don’t have any direct experience with multiple extrusion, so maybe that is a thing. Maybe slicers already do that to some extent but infill doesn’t typically take enough filament to fully purge and the tower is still necessary.

    All that said, I don’t think just making spaghetti would work out very well.





  • I’ve been thinking about this a lot lately.

    Over time, I’ve come to hate doing things in the “productivity-via-point-and-click-adventure” model. I very much think the use cases where the mouse is actually necessary are way slimmer than people really think.

    If FreeCAD and similar tools take the approach of the “potter” paradigm where you connect your brain to the medium via your fingers as directly as possible even if the medium is digital/virtual (like most of the CAD programs out there), OpenSCAD is more of a “dark factory” paradigm where you externalize a piece of your mind/expertise into a program that encodes all of your expertise and the program acts on the medium on your behalf. (And in the case of OpenSCAD, the program is kindof “made of the same thing as the medium itself.”)

    In the “potter” paradigm:

    • You end up with a finished product, but devoid of any accounting of the decisions which went into making the finished product.
    • Your metaphysical “finger prints” make it into the end product. The tiniest twitch of a finger is reflected in the final product, even if it’s an unconscious motion.
    • Altering earlier steps that came earlier in the process isn’t as easy. Think of a painter layering paints to capture the subtle tones of human skin and then deciding that four layers down they wish they’d done something different. To fix it, they’d have to cover part of the image and redo all the steps manually. (And yes, undo chains attempt mitigate this somewhat, but imperfectly since reapplying later steps isn’t necessarily perfect.)
    • Excessive precision isn’t typically possible.
    • Making another, similar asset is a manual process that can’t reuse the steps/expertise that went into building previous ones cleanly.
    • There’s no time spent after finishing your work where the computer has to work/chug to produce the finished product.
    • Parameterized builds are less natural.
    • For digital assets, almost always involves using a pointing device.

    In the “dark factory” paradigm:

    • You end up not just with a finished product, but also a program that gives much more insight into how the product was built and what decisions were made in the process of constructing it.
    • Only conscious decisions go into the final product.
    • Altering earlier steps can be done much more cleanly and later steps can be written in such a way that they “automatically” inherit properties introduced by changes in earlier steps.
    • Perfection(ism?) by default. The perfect may be at risk of becoming the enemy of the good.
    • Later, similar assets can reuse the logic from earlier assets where there are similarities.
    • You might spend some time waiting for your program to finish running before your asset is ready.
    • Parameterization is like breathing. It’s arguably easier than not parameterizing.
    • Requires no mouse or pointing device. Just a text editor.

    And mind you, a lot of programs try to kindof live somewhere in the middle. Being extremely mouse-driven while still supporting parameterization. Or doing sophisticated things with

    I’m not trying to advocate against the “potter” paradigm. There are benefits and drawbacks to both. And I can’t bash just doing what works for you. But a) the “potter” paradigm doesn’t work for me very well at all and the “dark factory” paradigm does and b) I very much believe that the “dark factory” paradigm is so underserved as to be nearly non-existent. I know of OpenSCAD (and ImplicitCAD and a few others in the CAD space) and Graphviz and a few others that were suggested to me in this comment tree. And CodeComic which I personally wrote. And I’m working on another such DSL for making 3D models/assets for games and 3D animations. (Think “art” rather than “engineering”. FreeCAD is to OpenSCAD as Blender is to what I’m building. Yes I’m planning to Open Source it in the near-ish future.) But there’s so little in that realm.

    So, as you can imagine I really love OpenSCAD. I’d be very surprised to find myself using anything else for CAD in the future that wasn’t a DSL.

    P.S. Maybe I should start a blog. Heh.





  • TootSweet@lemmy.worldtoProgrammer Humor@programming.dev: (
    link
    fedilink
    English
    arrow-up
    62
    arrow-down
    2
    ·
    12 days ago
    create table boolean (
      id integer primary key,
      name text not null unique
    )
    insert into boolean (name) values ('true');
    insert into boolean (name) values ('false');
    create table document (
      id integer primary key,
      name text not null unique,
      body text not null,
      is_archived not null integer,
      foreign key (is_archived) references boolean (id)
        on delete cascade
        on update no action
    );
    

    Solved.

    Bonus: DBAs hate this one weird trick that can free up incredible amounts of disk space by deleting just two rows.