[-] Kissaki@programming.dev 23 points 1 month ago

If it were critical I would set up an "email me on script run failure" wrap around the individual cron jobs. Simple exit code check, potentially with console output as email body is simple and useful.

[-] Kissaki@programming.dev 22 points 9 months ago* (last edited 9 months ago)

Godot is certainly the easiest and simplest to install in terms of full engine and game dev IDE.

Whether they wanted to showcase or deliberately chose it for how it looks or not, I think the simple install onto a presentation desk/PC/Steam Machine may have been a reason as well.

[-] Kissaki@programming.dev 22 points 10 months ago

Patches for two high-severity ZIP parsing flaws have quietly been available since July.

If you updated at some point since July 5th you already have the update.

21

cross-posted from: https://programming.dev/post/37407248

Scrolling through this webpage is an adventure.

32

Scrolling through this webpage is an adventure.

18

Yesterday programming.dev was down for hours.

I checked https://status.programming.dev/ and it is indeed a working status page, but with no monitors added.
Which is already surprising.

But even more confusing is the consequential claim of "All Systems Operational", even when the instance is down/unreachable.

What's the state and plan for the status page?

62

cross-posted from: https://programming.dev/post/36983916

Freund wasn’t looking for a backdoor when he noticed SSH connections to his Debian testing system taking 500 milliseconds longer than usual. As a database engineer benchmarking PostgreSQL performance, he initially dismissed the anomaly. But the engineer’s curiosity persisted.

The backdoor’s technical sophistication was breathtaking. Hidden across multiple stages, from modified build scripts that only activated under specific conditions to obfuscated binary payloads concealed in test files, the attack hijacked SSH authentication through an intricate chain of library dependencies. When triggered, it would grant the attacker complete remote access to any targeted system, bypassing all authentication and leaving no trace in logs.

The backdoored versions 5.6.0 and 5.6.1 had been released in February and March 2024, infiltrating development versions of Fedora, Debian, openSUSE, and Arch Linux. Ubuntu’s upcoming 24.04 LTS release, which would have deployed to millions of production systems, was mere weeks away.

The technical backdoor was merely the final act of a three-year psychological operation that began not with code, but with studying a vulnerable human being.

1

Freund wasn’t looking for a backdoor when he noticed SSH connections to his Debian testing system taking 500 milliseconds longer than usual. As a database engineer benchmarking PostgreSQL performance, he initially dismissed the anomaly. But the engineer’s curiosity persisted.

The backdoor’s technical sophistication was breathtaking. Hidden across multiple stages, from modified build scripts that only activated under specific conditions to obfuscated binary payloads concealed in test files, the attack hijacked SSH authentication through an intricate chain of library dependencies. When triggered, it would grant the attacker complete remote access to any targeted system, bypassing all authentication and leaving no trace in logs.

The backdoored versions 5.6.0 and 5.6.1 had been released in February and March 2024, infiltrating development versions of Fedora, Debian, openSUSE, and Arch Linux. Ubuntu’s upcoming 24.04 LTS release, which would have deployed to millions of production systems, was mere weeks away.

The technical backdoor was merely the final act of a three-year psychological operation that began not with code, but with studying a vulnerable human being.

10
submitted 1 year ago* (last edited 1 year ago) by Kissaki@programming.dev to c/gamedev@programming.dev

Over the years, our server has been racking up costs, and the now-unsupported software it was running on finally gave out.

All online services have now been migrated into permanent offline features. We made sure nothing was lost.

  • The Level Editor now saves levels directly to your disk […]
  • All community-created levels […]
  • All-time high scores have been immortalized […]
  • New high scores are saved locally […]

The game Dual Snake on Steam is free and was released in 2018.

37

Explores how the Lean programming language handles 2 + 2 = 4, which other programming languages collapse into a bool, but Lean considers a Proposition, and requires Proof.

How does provably correct programming look? This article seems to give a good introduction and example.

9

Explores how the Lean programming language handles 2 + 2 = 4, which other programming languages collapse into a bool, but Lean considers a Proposition, and requires Proof.

How does provably correct programming look? This article seems to give a good introduction and example.

4
Pike Programming Language (pike.lysator.liu.se)

Pike is a dynamic programming language with a syntax similar to Java and C. It is simple to learn, does not require long compilation passes and has powerful built-in data types allowing simple and really fast data manipulation.

int getDex()
{
  int oldDex = Dex;
  Dex = 0;
  return oldDex;
}

private void
show_user(int|string id, void|string full_name)
{
  write("Id: " + id + "\n");
  if (full_name)
    write("Full name: " + full_name + "\n");
}
14

The Go 1.18 release introduced generics and with that a number of new features, including type parameters, type constraints, and new concepts such as type sets. It also introduced the notion of a core type. While the former provide concrete new functionality, a core type is an abstract construct that was introduced for expediency and to simplify dealing with generic operands (operands whose types are type parameters). In the Go compiler, code that in the past relied on the underlying type of an operand, now instead had to call a function computing the operand’s core type. In the language spec, in many places we just needed to replace “underlying type” with “core type”. What’s not to like?

Quite a few things, as it turns out! To understand how we got here, it’s useful to briefly revisit how type parameters and type constraints work.

For the Go 1.25 release (August 2025) we decided to remove the notion of core types from the language spec in favor of explicit (and equivalent!) prose where needed. This has multiple benefits: …

43

However, there are some important features that WinSock just doesn’t expose. […]

Rust’s current async ecosystem is built atop a particularly cursed concept. It’s an unstable, undocumented Windows feature. It’s the lynchpin of not only the Rust ecosystem, but the JavaScript one as well. It’s controversial. It’s efficient. […] Without it, it’s unlikely that the async ecosystem would exist in its current form. It’s called \Device\Afd, and I’m tired of no one talking about it.

30

However, there are some important features that WinSock just doesn’t expose. […]

Rust’s current async ecosystem is built atop a particularly cursed concept. It’s an unstable, undocumented Windows feature. It’s the lynchpin of not only the Rust ecosystem, but the JavaScript one as well. It’s controversial. It’s efficient. […] Without it, it’s unlikely that the async ecosystem would exist in its current form. It’s called \Device\Afd, and I’m tired of no one talking about it.

[-] Kissaki@programming.dev 23 points 1 year ago* (last edited 1 year ago)

OpenGL is an API standard. It defines data structures, operation interfaces, and behavior.

Mesa 3D is an implementation of OpenGL. It can be used so users of OpenGL can call it to draw stuff.

Vulkan is a newer API standard. It is newer and was designed with a lot of new hardware and hardware capabilities in mind, and significantly reduced what the job of the API is supposed to do compared to OpenGL. Essentially giving API users many more opportunities to control graphics pipeline behavior for better efficiency and performance. Libraries and frameworks exist that provide more convenience and prepared setup or opinionated usage patterns on top of Vulkan.

DirectX had a similar shift with DirectX version 12, which also implemented closer-to-hardware APIs similar to Vulkan vs OpenGL.

/edit: Noteworthy are also OpenGL and Vulkan extensions. They extend the core API with additional APIs. An app can check if they are supported, and if the driver supports it, can use them.

[-] Kissaki@programming.dev 23 points 1 year ago

Good to see an alternative to Anubis - with a reduced or configurable legitimate user impact

https://git.gammaspectra.live/git/go-away/

This tool started as a way to replace Anubis as it was not found as featureful as desired, and the impact was too high.

go-away may not be as straight to configure as Anubis but this was chosen to reduce impact on legitimate users, and offers many more options to dynamically target new waves.

[-] Kissaki@programming.dev 23 points 1 year ago

Lenard Flören, a Germany-based art director at an advertising agency, said he quickly realized that trying to create his dream fitness app with one lengthy prompt would lead to a plethora of bugs that “neither ChatGPT nor my clueless self had any chance of solving.”

If everyone can create programs, and everyone fails, maybe it'll bring increased appreciation to development and good development and products? One could hope. I guess the worst offenders won't even try themselves either way. The services are not that accessible.

[-] Kissaki@programming.dev 22 points 1 year ago* (last edited 1 year ago)

I'd love to read a list of those instances/claims/tech

I imagine one of them was low-code/no-code?

/edit: I see such a list is what the posted link is about.

I'm surprised there's not low-code/no-code in that list.

[-] Kissaki@programming.dev 21 points 1 year ago

I still hate the "vibe" terminology.

What I would have liked it to mean: While coding, put on some music, and zone out to coding.

What it means now: Prompt an AI to generate working code and solutions.

I don't get where the "vibing" comes in. I guess you don't have to think about the technical details? And that's vibing? Maybe it's just unfamiliarity and lack of practice, but poking the AI via prompting and thinking about how you can influence it better doesn't feel like you could zone in to or "vibe".

Maybe it's about letting go of reasoning and just going for it? Vibing in the sense of going with the flow?

It's not the first terminology I find unfitting. I'm trying to accept that it is what it is, and that it just is what "we collectively" have decided to call it (or ran with).

[-] Kissaki@programming.dev 21 points 2 years ago

Don't use the share with shortened url. Copy the page url instead.

Otherwise (you'll have to) accept that you don't know what's included in the shortened link.

[-] Kissaki@programming.dev 22 points 2 years ago* (last edited 2 years ago)

It's a systematic multi-layered problem.

The simplest, least effort thing that could have prevented the scale of issues is not automatically installing updates, but waiting four days and triggering it afterwards if no issues.

Automatically forwarding updates is also forwarding risk. The higher the impact area, the more worth it safe-guards are.

Testing/Staging or partial successive rollouts could have also mitigated a large number of issues, but requires more investment.

[-] Kissaki@programming.dev 23 points 2 years ago

Driving a train is engineering?

[-] Kissaki@programming.dev 22 points 2 years ago

January 2023, Futurism brought widespread attention to the issue and discovered that the articles were full of plagiarism and mistakes. […] After the revelation, CNET management paused the experiment, but the reputational damage had already been done.

So the "AI experiment" is not active anymore. But the damage is already done.

It was also new to me that Wikipedia puts time-based reliability qualifiers on sources. It makes sense of course. And this example shows how a source can be good and reliable in the past, but not anymore - and differentiating that is important and necessary.

view more: ‹ prev next ›

Kissaki

0 post score
0 comment score
joined 3 years ago
MODERATOR OF