351
352
 
 

Crossposted from https://lemmy.ml/post/46897859

It is not my project.

I was looking for a lite version of Zed IDE without AI integrations, collab feature, telemetry etc and suddenly found it ^_^

I didn't test it excessively yet, but definitely give a try.

If you already tried it, please share your opinions.

353
354
OpenCL 3.1 is here (www.khronos.org)
submitted 3 months ago by to c/programming@programming.dev
 
 

cross-posted from: https://lemmy.ml/post/46884793

The Khronos OpenCL Working Group has released OpenCL 3.1, bringing widely deployed, field-proven capabilities into the core specification to expand functionality, including SPIR-V ingestion, that developers will be able to rely on across conformant implementations.

Features now mandated by OpenCL 3.1 have been deployed as extensions or optional capabilities. This is by design. The OpenCL working group evolves the specification by proving features in the field as extensions first, watching how they get used across multiple implementations, refining them based on developer feedback, and only then graduating them into the core specification.

Every conformant OpenCL 3.1 implementation will be required to consume SPIR-V kernels — a feature that has been one of the most requested by developers. OpenCL 3.1 additionally requires support for the SPIR-V query extension, which enables applications to enumerate the SPIR-V capabilities, extensions, and versions that a device supports, simplifying the adoption of new SPIR-V features as they become available.

Several features essential to HPC and AI kernels are also now mandatory in the core OpenCL 3.1 specification:

  • Subgroups, including shuffles, rotations, and an expanded set of supported data types. A fundamental building block for tuned reductions, scans, and matrix kernels.
  • Integer dot products, including saturating and accumulating variants, together with extended bit operations: Both map directly to dedicated hardware instructions on a wide range of modern silicon, and both are common building blocks for matrix multiplications and the low-precision arithmetic central to inference workloads.
  • A new query for the suggested local work-group size. This gives applications and profilers a runtime hint for the optimal work-group size for a given kernel and device, eliminating the need for manual tuning or repeated size calculations across multiple enqueues and improving performance predictability on diverse hardware.
  • A standard device UUID query, matching Vulkan’s VkPhysicalDeviceIDProperties::deviceUUID. This allows applications to correlate the same physical device across APIs, which is essential for multi-device systems and for external memory-sharing scenarios that span OpenCL and Vulkan.
355
 
 

The Cooley-Tukey fast Fourier transform can compute discrete Fourier transforms efficiently for signals of highly-composite length, such as powers of 2. However, to compute signal lengths with large prime factors, an algorithm such as Bluestein's is needed to prevent the algorithm from degenerating to quadratic complexity.

Thanks to Bluestein's algorithm, FFTs of prime-length input sequences are "only" ~4-6x slower than nearby powers of 2. The clunkiness of Bluestein's makes fast Fourier transforms interesting: the steps to complete the algorithm is not a monotonic function of the problem size, shooting up and down depending on the factors of the input length.

Interestingly, I found that almost no signal processing knowledge is required to understand and derive Bluestein's algorithm; anyone with general computing knowledge can follow along and should be able to implement Bluestein's algorithm after reading this post.

356
357
358
359
360
361
 
 

If this isn't the right community for this post, let me know and I'll move it somewhere else.

I'm working my way through nandgame, and I'm stuck on the "call" macro in the function calls section of the stack machine unit. These are the instructions:

I was stuck on it for a while, so I looked up the solution and am going off the one given here (it's the only one I could find).

So far, I haven't gotten it to work. At first, it was giving me syntax errors because the labels weren't defined, so I replaced A = [LABEL] with label [LABEL] followed by A = [CONST], according to the specified calling convention. It also gave me a similar syntax error for TEMP_ADDR, which is never specified in the instructions, so I assigned it 0x7f00. So here is what I end up with (all in Assembly):

(note: the stack pointer, SP, is defined by a shared constant SP = 0)

Test code:

init.stack
call functionName 0
stop

function FunctionName 0
push.value x42
return

Macro: call

# Assembler code
## Push the current ARGS and LOCALS on the stack
push.static ARGS
push.static LOCALS

## Push the return address.
push.value after

## Set ARGS to point to the start of the arguments
A = SP
D = *A
A = argumentCount
D = D - A
A = 3
D = D - A
label ARGS
A = 1
*A = D

## Jump to functionName.
goto functionName

## Set return address:
label after

## Restore ARGS and LOCALS from the stack
A = ARGS
D = *A
label TEMP_ADDR
A = 0x7f00
*A = D
pop.D
label LOCALS
A = 2
*A = D
pop.D
A = ARGS
*A = D

## Push RETVAL.
label RETVAL
A = 6
D = *A
push.D

Macro: function

# Assembler code
## Define a label functionName
label functionName

## Set LOCALS to the current SP
A = SP
D = *A
label LOCALS
A = 2
*A = D

## Advance SP by localsCount
A = localsCount
D = A
A = SP
D = D + *A
*A = D

Macro: return

# Assembler Code
## Pop the top value into RETVAL
pop.D
label RETVAL
A = 6
*A = D

## Set SP to LOCALS
label LOCALS
A = 2
D = *A
A = SP
*A = D

# Pop the return address and jump to it
pop.D
A = D
JMP

Note: functionName, argumentsCount, and localsCount are all listed as placeholders above the relevant macro, but it doesn't describe how to define these. I'm guessing that comes in a later unit. The code block for the call macro gives me a red bar for each line with a placeholder, but this doesn't happen for the function macro which also includes placeholders. In any case, this doesn't seem to get in the way of the program as it still runs smoothly.

So as it is, when I run it, everything seems to work as intended. This is the result when it reaches the stop macro (infinite loop):

Which looks like it's doing everything it's supposed to do. But when I click "Check solution", this is what it says:

("Expected SP (RAM address 0) to be hex 101. (Was 104)")

Which is strange, because in the computer section you can clearly see that the SP content is hex 0101. So I don't know what's going wrong.

I stepped through the program tick by tick, and the only place SP ever reaches 104 is after the function macro, when it runs push.value x42, after which it runs the return macro which begins with pop.D, reducing SP back to 103.

Could it be the evaluator is assessing the value of SP at the end of the code block, instead of where it runs the stop macro? So perhaps I could try replacing stop with a jump to the end, followed by stop... Now that I think of that, I think it might work. I'm still going to post this though, because I already went through all the trouble. And in case it doesn't work, if anyone else has any ideas please share them!

I can expand the rest of the macros if need be, but they already passed the evaluation so they're all working according to specs.

Thanks in advance!

Edit:

I thought for sure that would work. I changed the test code block to this:

init.stack
call functionName 0
A = end
JMP

function FunctionName 0
push.value x42
return
label end
stop

The program runs exactly as it's supposed to, except now the stop loop is at the end of the code. The computer output still looks the same, except now the program counter loops between 60 and 61 at the end (as expected). But the evaluator is still giving me the same error! I'm stumped...

Edit 2: added annotations to code blocks to make it easier to read

362
 
 

Hey there,

A few months ago we open sourced Voiden, an offline API client we originally built to replace Postman internally.

Voiden now has around 11k installs and growing every day. ❤️

Core principles we built it on:

  • free and local-first
  • file-based, all plain executable markdown
  • composable through blocks
  • collaboration in Git, where devs are working already

The main thing is that in Voiden, API requests are not (static) forms. They are built from blocks (endpoint, auth, params, body) that can be used, reused, replaced and version in Git, just like code. And all that in plain executable text.

Our inspiration:

Our inspiration was curl, and how simple it is, and obsidian, because of how powerful it can be.

Who this is for:

Developers, QA, Technical Writers working and collaborating on APIs.

Progress:

Since open sourcing, almost everything that we shipped came from actual users, feedback and contributions that pushed the tool in a few interesting directions. You can check our change-log here: https://voiden.md/changelog

A few highlights:

  • Composable API workflows: Voiden lets you build reusable .void files that can be combined into flows, run multiple requests in sequence, and use real scripting (JS/Python/Shell) before and after requests.
  • Added a “skills” layer so tools like Claude/Codex can operate directly on .void files and request blocks.
  • We added an SDK for community plugins.
  • & more...

Feedback:

This project is now mostly shaped and driven by community ideas and contributions. Welcome to join and help us make this even more awesome.

There is no account setup, its free and totally offline.

GitHub: https://github.com/VoidenHQ/voiden

Download: https://voiden.md/download

363
364
submitted 3 months ago* (last edited 3 months ago) by to c/programming@programming.dev
 
 

The maker of Ghostty and Hashicorp is finally leaving Github.

365
 
 

Been banned for AI-Slop on a few subs here on Lemmy as well as on Reddit.

I always provide a good amount of technical detail in my posts and i try to be as transparant and communicative about the details. My projects are very complicated and I try to document them well.

my project is pretty cryptography-heavy... the act of me sharing my efforts in an attempt to show transparency... but it is used against my project by calling it AI-slop (undermining Kerkhoff's principles).

It's 2026 and most developers are using AI. I have used it to create things like formal proof and verification.

my project is aimed to be a secure messaging app. i have all the bells-and-whistles there along with documentation.... but if the conversation cant move past "its AI-generated"... then it seems the cryptography/cybersecurity/privacy community isnt aligned with the fact that using AI is now common practice for developers of all levels.

AI is a tool. you cant (and shouldnt) "trust" AI to do anything without oversight. AI does not replace the due-diligence that has always been needed. i dont "trust" my hammer to bash in a nail... i "use" the hammer. AI is not different in how you need to be responsible for how its used.

i've busted my ass on my project for it to be called AI slop. i think its completely fine when it comes from folks in the community. cryptography is a serious subject and my ideas and implementation SHOULD/MUST be scrutinised... but its simply ignorant if mods are banning me for the quality of my work considering the the level of transparency and my engagement on discussions about it.

It's a bit reductive to call it slop. I think i try harder than most in providing links, code and documentation. Of course I used AI... and it's clearer for it. (you can find more detail on my profile)

i am of course sour from being banned, but am i wrong to think my code isnt AI slop? Some parts of my project are clearly lazy-ui... but im not sharing on some UI/UX/design sub. the cryptography module has unit tests and formal verification. if that is AI-slop and can result in me being banned, i simply dont have faith in that community to be objective on the reality of where AI can contribute.

while its understandable people dont want to review AI-slop... i think the cryptography/cybersecurity community needs to get on board with the idea of using AI to help in reviewing such code. am i wrong? is the future of cryptography is still people performing manual review of the breathtaking volumes of AI code?

366
cssDOOM (cssdoom.wtf)
367
Before GitHub (lucumr.pocoo.org)
368
369
 
 

I have been applying via linkedin, company portal which show up on google search but somehow nothing is working out, cold dm, emails almost all eventually ending in radio silence. Not asking for some shortcut just that it all isn't making sense.

370
371
372
373
374
submitted 3 months ago* (last edited 3 months ago) by to c/programming@programming.dev
 
 

Let's talk CLI/TUI and Developer Workflows!

I’m looking to refresh my local toolkit and I’m curious: what are the absolute "must-have" CLI or TUI programs in your current rotation?

Whether it's a specialized utility for a specific language, a terminal-based interface for a common service, or a workflow-changing alias, I want to hear about it. I’m especially interested in tools that prioritize keyboard-driven navigation and accessibility.

My Current Favorites:

To get the ball rolling, here are a few tools I’ve been leaning on lately:

  • uv — Fast, reliable Python package and project management.
  • fzf & ripgrep — The classic duo for fuzzy finding and searching.
  • tmux — For session management and persistent terminal workspaces.
  • jq / yq — Essential for wrangling JSON and YAML without leaving the prompt.

What about you?

  1. What is one tool you've discovered recently that you can't live without?
  2. Are there any TUI-based clients for web services (like Mastodon, GitHub, or RSS) that you recommend?
  3. Do you have a favorite "hidden gem" script or small utility?

Mentions & Groups

@programming
@linux @terminal_u_i@lemmy.ml @selfhosted

Hashtags

#CLI #TUI #Terminal #OpenSource #FOSS #Programming #DevTools #Linux #SysAdmin #Workflow #Python #Backend #ArchLinux #KeyboardDriven #Accessibility #SoftwareDevelopment #TechTalk

375
 
 

hi, I'm trying to learn to program on C and C++. My goal is to get to do applications for a phone with symbian that I have to make it more useful. I already have an idea what I want to do. Mainly make a browser for smolnet protocols (nex, gopher, Spartan, finger, etc.) and more in the future make some social network customers open code. The easiest I think it would be to make a mastodon client, especially because mastodon already works on my nokia with symbian, thanks to brutaldon (although I feel that it lacks functionalities that I would like to have, like to see what is inside the instance and see at the level of fedverse). and perhaps others like "lemmy," "social gnu," "friendica," and already finally and my "Magnus opus" would definitely be, a client of "invidious".

of course all this is far beyond my current possibilities. But that's why I want to step up. For the moment I base it on the syntax on c and c++ and I already understand the operators, and also the comparisons and the Boolean operations. I also partially understand the pointers... but I really don't know what kind of use they have. so that the applications you create, you can test them in my system with linux, I need to program everything in c, and use c++ but only in a basic way the latter, as symbian only supports old versions of c++ posix, (it's true that if I install qt supports more modern versions and it would be much easier to do anything. But I have been recommended not to use it) I have also been a little interested in zig and nim, as they compile C and theoretically should be languages that could work perfectly, but on the other hand, also increase the number of languages to learn may not be the best idea at the moment.

for the subject of graphics, I think the best option is to use sdl, there is a port of sdl 1.2, the problem is that in my language there are practically no sdl 1.2 tutorials, and in English I have found little. This is the best thing I could find "https://lazyfoo.net/SDL_tutorials/" is not that this evil (in fact I have not yet tried it) but well, I would also like to know, that so much changes the syntax against sdl 2, I just want to do simple things, buttons, menus, text boxes and already, I ask this to see if I can make the work easier and just see tutorials in my language and not eat so much my head asking anyone to translate me all by one.

i initially thought about using sdl interface library to make life easier. But I quickly realized the problem that most of these library are designed for the use of mice, something that in my nokia n95 because of course there is no... microui was the library that had convinced me most, plus that it not only depends on sdl, it can also use opengl, and a friend explained to me that maybe and even could serve with the native interface library of symbian. I'm sure he'll save it for future projects. But for things like his little documentation and it's not even spoken in my language, and I thought of everything, less intuitive. Because it makes me leave it at least for the moment, I also saw others like raygui, but that would be my turn to make a bridge, and while I can do this with vibeconding and so... well, the truth is I'd like to be able to understand my own code... I don't rule it out completely... But having to adapt so many things, the truth is I think it's more cost-effective just to use pure sdl and stop making life difficult.

There is also the option to use an old version of opengl en. But I think that's a little bit of killing fly-to-gun, total, I just need a 2d, minimalist interface and little more... I don't know if there are any other library that allow me to do graphic interfaces, and that being written in pure C can be carried automatically, without modifications, I understand that there may be a remote possibility that lvgl will work, but... I don't think it's worth it.

So, well... this is all to ask for recommendations and programming exercises on c, c++ and sdl.

view more: ‹ prev next ›