• 11 Posts
  • 613 Comments
Joined 3 年前
cake
Cake day: 2023年8月4日

help-circle



  • Council Bluffs, IA. I once had family there and there’s a story in our family. One of them had a radio of some sort that works on trucker frequencies and he overheard a conversation between trucker CBs that went something like:

    • “I’ve never been to Council Bluffs before. What’s it like?”
    • “Well, if the earth needed an enema, Bluffs is where they’d put the tube.”

    It used to be a railroad town, but the railroad pulled out and left economic carnage in its wake. Meanwhile, Omaha, just across the river, is comparatively very affluent with skilled jobs in tech, so Bluffs is kindof “the slums” (casualties of the worst end of capitalism.) and Omaha is all gentrified and hip, which rubs salt in the wound, and those who are still in Bluffs are the ones who lacked the wherewithal (luck, credit (social, financial, or otherwise), mental health, etc) to move to Omaha. Last time I was in Bluffs (and that was even before I knew the rail background story) it really felt like there was just a pall over the whole place. The strangers you saw at the grocery store or whatever just seemed “down and out” in an undefinable way. The local government seems some combination of corrupt and incompetent and the few folks I know of who still live in Bluffs there are racists and MAGA nuts and grifters and (I say this with love) deeply mentally ill. It’s a disturbingly strange and depressing place.


  • Some of these are more than just one sentence, sorry.

    “I just do what I’m told. That’s why I’m paid the big bucks.”

    “Yeah, I quit <previous position> because the management wouldn’t step in to help me with <problem>, so the team was just completely run by the biggest personalities.”

    “They don’t pay me enough to be on call outside business hours.”

    “Yeah, I never turn my camera on in Zoom meetings.” (Particularly good if you have a remote position. Triggers scrum people because “Face-to-face conversation is the best form of communication”.)

    “Oh yeah, all the tickets where I work are super detailed. Really helps avoid distractions like having to go talk to the person who filed the ticket.” (Have you heard agile people “working software over comprehensive documentation” or “a ticket is a placeholder for a conversation”?)

    “Why? Oh, I don’t know why they wanted me to do <such-and-such feature>. I just did it because they asked me to.”

    “How is the business supposed to plan without the dev team coming up with an estimate in days up front?”

    “Yeah, we’ve gotten better with our daily scrum meetings. They’re only like an hour now-a-days.”

    “Yeah, we do demos every sprint. They go a lot better now that product doesn’t attend any more.”

    “Yeah, <name of most senior dev> is the person who always works on the sprint goal. Everyone else works on whatever they’re a SME in.”

    “Yeah, we missed the Big Deadline™. It was <intern>'s fault.”

    “I think it would be better for the company to outsource its IT department.”

    “Our JIRA board columns and swim lanes are standardized across the department ever since the JIRA Enforcement department took that over.”

    And this next bit is just me editorializing. I personally have mixed feelings about agile in general. I’ve seen it completely disregarded to great peril, and I’ve also seen it taken extremely seriously in ways that actively cause problems. (Problems bad enough to be dealbreakers that prompted me to leave that particular employment position.) I also have great respect for the agile coach at that place, but there were definitely things he did that pissed me off too.

    So, in the debate of agile vs. not-agile, I guess I think what’s best is for everyone to just appoint me supreme dictator for life so I can teach them all the right way to do things. 🫡



  • Just today, I happen to have looked into what exactly keratin is. (The stuff that makes up your hair and finger nails.) It’s solid protein, made all the more solid (and all the less water-soluble) by the presence of the sulfer-containing amino acid cysteine. And fingernails have more of it than hair. Who knew?







  • 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
    ·
    27 天前
    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.