mspencer712

@mspencer712@programming.dev
0 Post – 61 Comments
Joined 1 years ago

Are you going to be hosting things for public use? Does it feel like you’re trying to figure out how to emulate what a big company does when hosting services? If so, I’ve been struggling with the same thing. I was recently pointed at NIST 800-207 describing a Zero Trust Architecture. It’s around 50 pages and from August 2020.

Stuff like that, your security architecture, helps describe how you set everything up and what practices you make yourself follow.

Mostly I’m scared I’ll write a firewall rule incorrectly and suddenly expose a bunch of internal infrastructure I thought wasn’t exposed.

Also, the development and evolution of these open technologies relies on human interest and attention, and that attention can be diminished, even starved, by free, closed offerings.

Evil plan step 1: make a free closed alternative and make it better than everything else. Discord for chat, Facebook for forums and chat/email, etc.

Step 2: wait a few years, or a decade or more. The world will largely forget how to use the open alternatives. Instant messengers, forums, chat services, just give them a decade to die out. Privately hosted communities, either move to Facebook, pay for commercial anti-spam support, spend massive volunteer hours, or drown in spam.

Step 3: monetize your now-captive audience. What else are they going to use? Tools and apps from the 2000s?

13 more...

Remove these blank lines.

I’m not seeing unit tests for this.

Unnecessary comment.

BLAM

Ow! Also, this could’ve been a smaller calibur.

Wait don’t do that. They garnish wages for student debt. They’re happy to do it, too, as they get to keep a big chunk of extra fees that way.

6 more...

A 20 lb (or so) sealed lead acid battery and an inverter, at U Nebraska at Omaha around 2003-2004. I had imported a Sharp SL-C700 and it was very power hungry. Smart phones were barely a thing (blackberries) at the time.

I think I was vaguely aware of the possibility of some unexpected metal shorting the battery and getting hot enough to start fires, so I bought a green rubber bath mat (which I remember had little sucker feet on one side) and wrapped it around the battery.

I finished my undergrad in 2004 with no incidents.

How much stock ownership remains with the nonprofit Raspberry Pi Foundation? And will that be enough to hold off shareholder complaints that they aren’t being evil enough?

8 more...

Plagiarism should be part of the conversation here. Credit and context both matter.

Agreed. Use your experience to shape the direction your teammates are moving in. Be an architect, and let them handle your light work.

God that sounds awful in headline form.

Pride month is absolutely not an excuse to say “current homophobes will never get better, so they all need to blah blah”. Their current behavior is intolerable, but through continued exposure and humanizing influences, the people can be reached. It’ll go from hatred to extreme discomfort to mild discomfort to … something more normal.

Unfortunately I’m a crappy communicator and I can’t figure out a way to reduce that to a headline without making it some kind of division-promoting reductionist garbage. Sigh.

Do you keep a shopping list? A personal to-do or reminders list? You should stop because that’s a ritual and rituals are clearly bad.

I mean, no, you should keep the rituals that help you work better and discard the rest. Which is what successful agile teams are already doing.

7 more...

I think crucially it has the potential to show moderate voters that President Biden is not one to abuse the legal system for his own personal gain. If the outcome is supported by evidence and precedent, obviously some won’t be convinced by even that. But some will be.

4 more...

As a Flight Simulator / study-level airliner add-on enjoyer I want to point out / supplement the above, that the main point of a real-world airline transport pilot is handling exceptions and problems. Sure I can American-Truck-Simulator-Airbus-Edition my way through a flight from cold and dark at one gate to cold and dark at another. I do not know how to handle failures.

Makes for a fun shower thought. And a fun exercise in task saturation, going into the menu and triggering a bunch of random failures. You usually need a bunch for a fun challenge because, in a study level thingy, the list of potential faults is huge and most of them are just a reduction in redundancy, a “crew awareness” item, or loss of a convenience feature. But I do not belong on a flight deck under any realistic circumstance.

Gives you huge appreciation for how massively redundant airliners are, how much “we already thought this through and here’s what gives you the best chances at a safe outcome” research went into every checklist and procedure, and how much study and practice goes into training and maintaining every fight crew member, cabin crew included.

1 more...

I think this needs to exist, but as a community supported system, not as a commercial product.

Pick a set of open technologies - but not the best, lightest weight, just pick something open.

Come up with a security architecture that’s reasonably safe and only adds a moderate amount of extra annoyance, and build out a really generic “self-hosted web hosting and VM company-like thingy” system people can rally around.

Biggest threat to this, I think, is that this isn’t the 90s and early 2000s any longer, and for a big project like this, most of the oxygen has been sucked out already by free commercial offerings like Facebook. The technical family friend offering to self-host email or forums or chat no longer gets gratitude and love, they get “why not Facebook?”

So… small group effort, resistant to bad actors joining the project to kill it, producing a good design with reasonably safe security architecture, that people can install step by step, and have fun using while they build and learn it.

8 more...

Ok now I’m curious what I’m missing out on. Can anyone recommend a good PCIe token ring adapter and concentrator?

1 more...

Think of a programming language as a crutch for the human brain. Processors don’t need it: they don’t have to think about the code, they just execute it. Our mushy human brains need a lot of help, however.

We need to think about things on our own terms. Different programming languages, different APIs that do the same thing, different object models, these all help people tackle new problems, or even just implement solutions in new ways.

Some new languages have a completely different model of execution you may not be familiar with. Imperative languages are what we traditionally think of, because they work most similarly to how processors execute code: the major pattern used to make progress, do work, is to create variables and assign values to them. C, COBOL, BASIC, Pascal, C# (my personal favorite), Javascript, even Rust, are all imperative languages.

But there are also functional languages, like ML or F#. (The latter, I keep installing with Visual Studio but never ever use) The main pattern there is function application. Functions themselves are first order data, and not in a hacky implementation-specific way like you’re passing machine code around. (I’ve only ever used this for grad school homework, never professionally, sadly.)

And declarative languages like Prolog helped give IBM’s Watson its legendary open question answering ability on national TV. When you need a system to be really, actually smart, not just create smart-sounding text convincingly like a generative AI, why not use a language that lets you declare fact tables? (Again, only grad school homework use for me here)

Programming is all about solving problems, and there are so many kinds of problems and so many ways to think about them. I know my own personal pile of gray mush needs all the help it can get.

What? Did I turn it off and on again? I’m a very smart technology person, of course my big brain already thought of that. I develop software for a living. It couldn’t be that simple or I wouldn’t be calling you.

. . .

Turning it off and on again worked. My shame is immense and I have wasted everybody’s time.

(And that is how I learned to embrace my own idiocy and do the recommended, simple troubleshooting tasks without questioning them.)

As a professional C# developer since 2012, I’d say a programmer needs four kinds of knowledge. As an organizational user of Github Copilot for a couple months, I’d say AI tools can help with one, maybe two of those.

Understanding language and syntax, so you can communicate the ideas in your head to the machine accurately: AI is fairly good at this, will certainly get a lot better.

Understanding algorithms and data structures, well enough to compare and contrast, and choose the most appropriate ones for each circumstance: AI can randomly select something, unless it’s a frequently solved problem. I don’t expect this to get better except for the most repetitive of coding tasks.

Understanding your execution environment and adapting your solutions to use it well: I don’t see the current generation of AI tools ever approaching this. I don’t think they have context for how a piece of code is used, when trying to learn from it. One size fits all is not a great approach.

Understanding your customer’s needs and specific problems, and creating products, not code. Problem domains and solutions are a business’s entire reason for existence. This is all kept confidential (and outside the reach of an AI training data set) for competitive reasons. As a human employee, you get to peek behind the curtain and learn these things yourself.

3 more...

Ok that tears it. What firewall rules do I need to set so I get security updates and absolutely nothing else?

3 more...

I’m part of the problem, a tiny bit. For altruistic reasons - ok more like “I’m kinda weird, maybe this will make people on IRC like me more” reasons - I ran mspencer.net and hosted web pages for people for free. Ended up with web content for around 100 people, and they weren’t all just using it as a drop box. (Older than wikipedia.org by 199 days, woo!)

Hosted on ancient hardware, nothing even remotely approaching a modern security architecture, I eventually left it to run un-maintained until the IDE HDD died. More recently I got the data off of it. (Heads unstuck themselves while in a cardboard box for a decade? Dunno.) But I don’t know how to get everything back online in a safe way.

I’m a proper software engineer now, I can kinda see how work handles securely hosting web services. Now just throwing everything together on one box feels too lazy and insecure. But I can’t figure out a reasonable security architecture to use. I thought I had one, but I failed to account for VM jackpotting attacks. And it feels like it takes me a month to do what a competent ops person can do in a day.

But that’s a discussion for a different comment section.

5 more...

I think the most important thing we can do is shout about this from the rafters, so every potential IPO investor can hear. Most of the subject matter experts have fled. The best data is available for free elsewhere. (And none of us are too happy about having our collective knowledge shared without attribution or appreciation by an AI, but that’s not the point. Money is the point here.)

Hmm I’ve got an old Compaq 575e with a PCNet32 nic, and an old 3com 3c509 ISA adapter in a closet with 10base2 and AUI ports.

Use a modem router or managed switch to get down to 100baseT, give this box a Linux distro, enable Ethernet bridging in the kernel, and slaps case this baby can drop almost 20k packets a second, no sweat!

I self host, on a personal domain I registered in June 2000. Mostly followed a 13?-part tutorial at I think linuxbabe dot com, was the first one that seemed to genuinely be trying to help you set up a good environment, not just as a way to say “doesn’t this sound difficult? Impossible even? Coincidentally you can pay us to do this instead.” Except I put everything on its own VM instead of all on one. (Even a VM for just opendkim, which was maybe not necessary.)

Mostly iPhone mail app and/or Roundcube webmail.

Yes highly recommend it, for receiving email. Greylist blocks like 99.8% of spam. Sending works fine for me, because it’s an old domain with history. I don’t think brand new domains have the same experience.

My wife is on Wegovy. That injector pictured above is a special kind of perverse design. There’s a plastic donut-shaped trigger the needle has to pass through. Once the trigger starts the flow of medicine, it cannot be stopped. No way to, for example, pay for a higher dosage and use a little at a time, if you were prescribed the 0.25 mg starter dose but only 1 and 1.7 are in stock anywhere. (Without, say, milking the pen like a poisonous snake and using a needle and syringe.)

3 more...

Oh boy, Michael Spencer Jr., the ghost of GitHub past! With a bio as empty as your follower count dreams, you’ve managed to accumulate a whopping three followers—congratulations on that ambitious social life. Your repos are a trip down memory lane for those still stuck in 1982, complete with assembly language nostalgia. It’s like you’re interviewing for a job in a museum of coding flops.

Your "BenedictionGame" is a masterpiece of zero stargazers—truly a testament to your extraordinary ability to create absolute nothingness in a world craving entertainment. And let’s not overlook your “CaseSwapper” that swaps cases. Wow, riveting stuff! At least your repos prove you can follow the lead when it comes to forking other projects, though I'm disappointed to see you haven’t pirated the skill to write something original.

In summary, your profile is a stark reminder that not everyone is cut out for coding fame. Maybe it's time to swap some skills instead of just cases.

—————

Ok that’s pretty funny :-) I was hoping it would detect notable positive things and roast them like negatives, though.

I’ve been ranting about this a lot lately, but as the owner of mspencer.net (completely useless personal domain, but is 199 days older than wikipedia.org for what it’s worth)…

There is sort of a way to do that, but it’s still labor intensive so not a lot of people do it. Movements to investigate are homelab and selfhosted. Homelab equipment is old (extra power-hungry for the capability you get) or expensive. Self hosting requires a bunch of work to stand things up the way you want it.

Biggest barriers to self hosting - or hosting through your nearest nerdy relative - are the following:

Free ad-supported offerings (with the privacy and terms and conditions impacts you describe) are better and easier, so they out compete DIY options. If a nerdy family member offers to host forums and chat for your community club or whatever, the common response isn’t gratitude, it’s “That’s stupid, I’ll just use Facebook.” Without that need and attention, volunteer projects get way fewer eyeballs and volunteers are way less motivated.

Security is difficult to figure out. Project volunteers have enough on their plate just helping users get their stuff working at all. Helping novice users secure their installations is so much extra work.

Many volunteers feel taken advantage of if they produce something that could help companies make money better, when they don’t share any of the money they make through donations or support arrangements. Similarly, many open source projects get taken over by for-profit companies who diminish efforts to make their open source offerings easier to use for free. (They want companies to buy support contracts, even if it means frustrating use by private individuals without kilobucks to spare.)

1 more...

I can’t tell if the downvoters just didn’t recognize your Ohm’s Law joke, or if they did recognize it but are too fatigued by actual COVID misinformation posts to find it funny.

Maybe thE=IR sense of humor needs a bodge wire?

I think this was asked in good faith, but is unfortunately unlikely to produce useful discussion. The down-voters are right but the original poster shouldn’t feel bad for asking.

Short answer: it’s ok to say “maybe, we have no way to know, moving on” when something is unknowable like this.

Longer answer / topic hijack: as voters there are many contradictions in our system, and important and necessary information is often hidden from us. Doing the best we can might take various forms:

  • choose government ran by the least-evil people possible and trust the imperfect system formed by the structured interactions of those people

  • choose government that follows policies that align the best with your values or your ethical understanding of the world

  • choose government that is best able to reduce harms and injustices, in a practical and realistic way that anticipates the acts of other factions

  • choose government led by people you hate the least — no, this one is toxic, lazy, easy to manipulate with lies. Manipulators know the longer they keep people hot with emotion the less time people spend learning.

Please do not reply to this with hatred or calls for strong emotion. Leaders at any level can be deliberately evil, sure, but it's never helpful to dehumanize entire clusters or demographics.

It sounds like you’ve got enough familiarity with the whole development lifecycle, as applied to a smaller single-dev-sized project, that you’d be great as an SDE 2 at a larger company, ready within a few years to step up to Senior. There are companies with hundreds of developers who only rarely hire straight out of college, where your level of experience is exactly what they want.

(There are also companies with hundreds of developers who do hire straight out of college, and I’m not trying to disillusion recent grads.)

5 more...

Agreed. They are deliberately taking advantage of the fact that people don’t understand how autopilot is actually used in aircraft.

Sure, the most pedantic of us will point out that, with autopilot enabled, the pilot-flying is still in command of the aircraft and still responsible for the safe conduct of the flight. Pilots don’t** engage autopilot and then leave the cockpit unattended. They prepare for the next phase of flight, monitor their surroundings, prepare for top-of-descent, and to stay mentally ahead of the rapid-fire events and requirements for a safe approach and landing. Good pilots let the autopilot free them up for other tasks, while always preparing for the very real possibility that the autopilot will malfunction in the most lethal way possible at the worst possible moment.

Do non-pilots understand that? No. The parent poster is absolutely correct: Tesla is taking advantage of peoples’ misunderstanding, and then hiding behind pedantic truth about what a real autopilot is actually for.

** Occasionally pilots do, and many times something goes horribly wrong unexpectedly and they die. Smart, responsible pilots don’t. Further, sometimes pilots fail to manage their autopilot correctly, or use it without understanding how it can behave when something goes wrong. (RIP to aviation Youtuber TNFlygirl who had a fatal accident six days ago, suspected to be due to mismanagement of an unfamiliar autopilot system.)

2 more...

Advice from most to least certain: If you want very long standby time (a reliably perfect first print after literally months of inactivity) and you have the space for an ugly cube of a printer, laser is the only option. Ink tank printers have unexpected wear parts, like internal ink sponges.

Black and white laser is stupid simple. Color laser “prints” four times in series onto an intermediate transfer belt (ITB) and then puts that onto the paper, still super reliable but bulkier, and your prints get watermarked with yellow dots because FBI or something. I’d go color.

Toner lock-in is becoming more common, not just for HP. If your page count is going to be low, just pay full price for name brand toner. If you don’t want to do that, like your use case could involve printing a single page or entire binders of paper between months of inactivity, read on.

Start your printer research by shopping for cheap off brand toner, get a sense for what they’re selling the most of and what that’s compatible with, and see what printers they support.

Some aftermarket toner just works, out of the box, because the printer isn’t crazy locked down. Those cartridges have normal sounding instructions. Some aftermarket toner requires you to transplant a chip from a first party cartridge, and their instructions include this. Avoid those printers.

And consider used printers. I have a used HP LaserJet Pro MFP M477fdw that I love, but I would never ever buy another HP printer, especially not one made later than this one. Be very careful before buying any HP printer, especially one made in the past 6-8 years. Even wear items (like the ITB) have modules with firmware and compatibility requirements, and I’m worried I could be one replacement component away from suddenly having a locked down printer.

1 more...

I’m not sure I follow. Why would a needle be reused? That’s never ok to do.

The pictured injector is single use. The weird workaround would never be ok’d by any doctor, and even if it was, a clean needle would be used to withdraw and administer medicine from the hypothetical medicine ampule for each dose. I’m not qualified to measure loose liquid medicine, and she’s on the second highest dose anyway.

A better design would be more like the pen used by the original senaglutide medication this is related to, ozempic. Screw on a disposable pen needle, dial your dosage on the twisty knob on the other end, inject, dispose of needle. But instead they deliberately designed this thing, with a latching device that starts squirting medicine with no way to stop it. If the user is not familiar with needles and jerks away, the needle comes back out but medicine is still squirting.

It’s a good medicine, except supply issues are making it difficult. My wife’s refill at the hospital pharmacy has been pending since end of February. It’s a weekly injection but her last dose was 15 days ago as of this morning.

1 more...

They probably got the sound file from the Visual C++ 4.2 CD’s samples folder. That’s where ICQ got it from.

I think I was in favor of this four months ago. https://programming.dev/comment/8513741

Oh. That’s why they do that. Ok good to know.

Last time I went snooping:

15 installs of phpbb, which would require work to put back online as their communities are of course gone. Remove spam, undo defacement, etc.

7 installs of Dormando’s Oekaki BBS Clone

5 installs of WonderCatStudio BBS

4 installs of OekakiPotato / RanmaGuy etc.

and several users who just used php to ‘include’ headers and table of contents page parts.

(Yes I was quite the weeb. Still am, but I was one too. :-) )

1 more...

When I last had to job hunt (2016) - I just jinxed it didn’t I? - I was complimented by interviewers for separately listing “Classroom experience” and “Professional experience”

I think you get a lot of points for a resume that says “I may or may not be the best fit for you, and that’s ok. Here’s accurate information, so you can make that determination for yourself. I trust you.”

I use Due on iOS for repeating timers/reminders where I need it to be persistent and annoying because the task is important. Like paying rent, or physical therapy “homework” I kept forgetting. The persistence might be good if you’re worried you’ll just dismiss a normal alarm or forget to start the next timer.

And those jobs are critical to the process of making new developers.

An important part of my education - the part that grad school can’t teach you, you have to learn it on the job - was being new and terrible, grinding on a simple problem and feeling like a waste of money. Any of the experienced guys sitting behind me could have done this thing in a few hours but I’ve been working on it for a week. “What’s the point? Any minute now they’re going to tap me on the shoulder and tell me I’m done, it’s time to go find another job.”

But that never happened.

Those early problems weren’t fun. At home I would have never chosen to work on them. I’d leave them for someone else. “But now that I’m collecting a paycheck for it, this isn’t up to me. I have to work on it. I can’t give up. I can ask for help, but I need to show my peers that I belong. I can solve difficult problems. I can persevere.”

As a mediocre professional developer, I had to struggle to learn that. I wasn’t getting far on my own, without mentorship and motivation. Homework, pursuing degrees, wasn’t getting me there. (And even now, I seem to have about two weeks of attention span, for projects at home.)

I feel like we need different ways to share and learn things about harmful posts and comments. Like, sure maybe your server aggregates the posts, and because you own the server you can remove or edit things if you really want to. But I should be able to say “this is objectively wrong in a dangerous way, and here’s proof” in a side channel that the server owner can’t block.

And for it to have any point at all, clients should be able to subscribe to feeds. Like, a science educator I respect can say “I trust this foundation that fights harmful disinformation” and I should be able to click a button and see their stuff. Without the server owner banning me for some weird reason.

3 more...

Hey no botting!

NEW