Exploring why AI tools complement rather than replace developers, and how smart companies use AI to enhance team productivity instead of downsizing talent.| Ken Muse
How does the probabilistic nature of AI change the nature of computer engineering?| Drew Breunig
That time I got fed up with Jamboard during physics lessons and made my own multiplayer drawing app| riki's house
Comments| Lobsters
In September 1985, Jon Bentley published Programming Pearls. A collection of aphorisms designed to reveal truths about the field of programming. It's 40 years later - long enough to see several revolutions in the field - so surely these are obsolete, right? They belong in the same category as "always carry a bundle of hay for the horses" or "you won't always have a pocket calculator with you" or …| Terence Eden’s Blog
LLMs have many ethical implications, and we decided to tackle them head on in this video, in the context of using AI assistants to generate code and other software development artifacts. The brief:The top issues for using LLMs for software development are: copying the whole internet to build the models, possible copyright infringement in generated […]| Mozaic Works
rqlite is a lightweight, open-source, distributed relational database written in Go, which uses SQLite as its storage engine. Development for the 9.0 release has started, and should be an important release. The main goals for 9.0 include: Change Data Capture (CDC). CDC will allow you to stream changes from rqlite as they happen. This long-requested…| Vallified
Remember when blockchain was going to change everything? Now AI is the trend dominating every conversation—but some of the most effective programming ideas have been around for decades. This post examines one of COBOL’s lesser-known yet highly practical features: the 88-level field. Far more than a simple boolean, 88-level fields provide a clear, maintainable way to describe data conditions, enforce business rules, and streamline initialization. Through real-world examples, you’ll see h...| Keyhole Software
Now in our C64 text adventure it's time to put things the player can interact with into our game The post Commodore 64 Text Adventures: Objects and Actions appeared first on Retro Game Coders.| Retro Game Coders
Picking back up my R-Type clone for the Commodore PET. Was 6502 Assembler and TRSE, now converted to C using the CC65 compiler| Retro Game Coders
vim is my editor of choice, simply due to the fact that I find it extremely efficient (and readily available everywhere).| Tao of Mac
I’ve been on a long-term quest to find a simple, fast, and user-friendly way to develop native applications for a variety of platforms, and this page holds the results of that research.| Tao of Mac
Scheme is a LISP dialect that has not just gone its own way (as is usual with LISPs) but also achieved IEEE standardization. With a focus on lexical scope and tail call optimization, it actually contributed many of its ideas back into Common LISP.| Tao of Mac
Nimony: Design principles| Nim Programming Language Personal Blog
I've been using Nim for about 1-2 years now, and I believe the language is undervalued. It's not perfect, of course, but it's pleasant to write and read. My personal website uses Nim.| miguel-martin.com
Refactoring RPGLE: Scott Klement’s Copybooks in Free Format RPG If you’ve ever stared at a wall of fixed-format RPG code and wondered how to bring it into the 21st century, you’re not alone. In this video, let’s walk through the process of upgrading Scott Klement’s RPGLE copybooks, transforming legacy column-based RPG into sleek, readable free-format […]| Nick Litten [IBM i AS400 iSeries] Software Developer
If you're curious about the nostalgic world of AS400 RPG programming, come with me and let's dive into the art of printing reports using OUTPUT Specifications| Nick Litten [IBM i AS400 iSeries] Software Developer
If you’re the Acting Ensign Crusher of Rails developers, you’ve probably heard about background jobs but are a little lost. They’re essential for building modern, responsive applications. But let’s be honest, the thought of adding another service to your stack can be daunting. Redis is great, but it’s another thing to manage, another thing to […]| dominickm.com
I started using Rust in 2017, before the stabilisation of async/await. When it was stabilised I managed to avoid it for a few more years before it was time to grapple with it. It’s fair to say that async Rust is one of the hairiest parts of the language, not because the async model is poorly designed, but because of the inherent complexity of it in combination with Rust’s goals. There have been many blog post written about async and its perceived shortcomings, as well as excellent explain...| Hugo Tunius - Blog
The other day at work I, accidentally, roped myself into upgrading some dependencies in our Rust services. These were breaking changes, so not just a case of running cargo update. I had to understand the changes and make the appropriate modifications to our code. Adopting breaking changes can be frustrating in the best of times, but it was particularly annoying this time because none of these projects kept a CHANGELOG.md files, although they all had release notes on GitHub.| Hugo Tunius - Blog
In the previous tutorial, we looked at getting started with ESP-IDF and created our first blinking LED project for the ESP32. The next step to effectively using ESP-IDF is to understand a little about CMake, which is the build system generator commonly used for low-level languages, like C/C++, for operating system and embedded system development. […]| Shawn Hymel
Explanation of my newly released tool: pactropy. Keeps a clean list of essential packages.| Felipe Contreras
I just upgraded my Ghost install to v6 on Ubuntu, and it took some problem-solving. I tried upgrading my Ghost install from v5 to v6, but my Node version was too old. I needed to install nvm under the ghost user. I did this a "bad but official" way: # First,| Joe Cecil
At the first World Humanoid Robot Games recently held in Beijing, many amusing scenes unfolded: robots punching at thin air, swaying from side to side while running, and collectively tumbling after colliding during soccer matches.| Fatbobman's Blog
Patton is 13 years old now. While he usually displays far more energy and vitality than other dogs his age, various health issues have inevitably emerged as he's gotten older. Recently, Patton was diagnosed with pulmonary hypertension, and the vet prescribed a targeted treatment plan. Just as I was feeling relieved that the treatment seemed to be working, last Monday afternoon, Patton suddenly couldn't stand, was drooling excessively, and showed clear signs of cardiac distress.| fatbobman.com
Akseli's various rambles and posts about gaming, gamedev, FOSS, programming and other things.| akselmo.dev
Summary of the current state of Vlang and my experience writing an svg generator server| kristun.dev
Database migration is one of those tasks that can either go smoothly or turn into a nightmare depending on your preparation. If you're considering migrating from MySQL to PostgreSQL, you're making a smart choice – PostgreSQL offers superior data integrity, better JSON support, advanced indexing, and robust ACID compliance. However, the migration process requires careful planning and understanding of the differences between these two database systems. In this comprehensive guide, I'll walk y...| TechPlanet
A somewhat recurring problem I encounter in things I work on is the need to compute simplified geographic polygons, or more specifically, simplified hulls of...| www.volkerkrause.eu
Ashley Peacock “Pragmatic Express” is an interesting imprint for this, but I suppose it tracks – this is a short book that mostly just introduces Mermaid as a concept, as well as going through a couple use-cases of diagramming in general. I did wind up writing some Mermaid diagrams as I was reading through the book, as it lined up well with some documentation I needed to write. I was a little tempted to figure out a way to inject Mermaid into this site when I saw that it has Sankey diag...| Grey Patterson
13 comments| lobste.rs
As Rust gains more traction in kernel development, it’s becoming clear that this shift isn’t just a novelty. It’s a necessary evolution. One that will make Linux better in the long run.| Spreadsheet Point
| riki's house
| riki's house
| riki's house
| riki's house
| riki's house
| riki's house
| riki's house
| riki's house
| riki's house
| riki's house
| riki's house
| riki's house
| riki's house
| riki's house
Making programs slower can be useful to find...| stefan-marr.de
The Prototype Design Pattern is a creational pattern that lets us create new objects by cloning existing ones instead of instantiating them from scratch.| amritpandey.io
Photo by Bermix Studio on UnsplashThis article is part of a series exploring design patterns using the Java programming language. The goal of this series is to help readers develop a solid understanding of design patterns while also sharing real-world examples from actual codebases that make use of these patterns.| amritpandey.io
This is part 6 of a series of articles investigating various floppy copy-protection schemes seen on the IBM PC platform. You may wish to read the previous entries in this series:| Adventures in PC Emulation
This is part 5 of a series of articles investigating various floppy copy-protection schemes seen on the IBM PC platform. You may wish to read the previous entries in this series:| Adventures in PC Emulation
This post goes hand-in-hand with my article on Vault Corporation's Prolok copy-protection technology. Perhaps the most important historical legacy of Vault Corporation results from the lawsuit they initiated against Quaid Software, makers of the backup software CopyWrite. | Adventures in PC Emulation
This is Part 4 of a series on PC floppy copy protection methods. You can read the previous parts here: | Adventures in PC Emulation
This is Part 3 of a series on PC floppy copy protection methods. | Adventures in PC Emulation
This is part 2 of a series on PC floppy copy protection methods. You can read Part 1, covering Formaster Copy-Lock here.| Adventures in PC Emulation
Odin is a manually memory managed language. Beginners of such languages are often afraid of memory leaks, meaning that you forget to deallocate memory. The first remedy for this is to use the tracking allocator. It will warn you about memory you forgot to deallocate. Nifty! But you can also think along these lines: Can I simplify things a bit, so I don’t have to think about the deallocation? What you can do is to try to use the temporary allocator whenever possible.| zylinski.se
Controlling access to a FastAPI app typically involves implementing authentication and authorization mechanisms. Here are some **decent approaches** to achieve this: ## 1. Authentication – **OAuth2 with Password (and Bearer)** – Use FastAPI’s built-in support for OAuth2 for handling user login and issuing JWT tokens. – Users authenticate by providing a […]| Manzoor's Thoughts
This is the 13th of the HARC Stack essays. Previous <= As if you didn’t know, HARC Stack combines HTMX with raku Air, Red and Cro to supply a fresh approach to web development. Well, Cro h…| Raku::Journey
1 comment| lobste.rs
How AI-assisted coding tools like GitHub Copilot and ChatGPT mirror the democratization of web development that Microsoft FrontPage started. Why the resistance is familiar and why embracing AI coding tools is the right path forward.| Robert-Jensen.dk
Sean McPherson shared a "four quadrants" diagram for people's beliefs about AI, with a specific focus on LLMs used for coding assistance. Here's where I sit on it, and why.| Dan Q
Based on my experience of 'vibe coding', I think Jim Nielsen's analogies are absolutely spot on.| Dan Q
16 comments| lobste.rs
By leaning into comics and manga, Tabrizia was able to develop replicable programs that any librarian can use to engage readers.| LibraryPass™
Curious about a bachelor's degree in applied computing, but want to see a course first? Preview the online programming course in the UW Applied Computing program.| UW Online Collaboratives
Unicode is good. If you’re designing a data structure or protocol that has text fields, they should contain| ongoing by Tim Bray
Today’s post comes from a recent Go pop quiz. Consider this benchmark fragment. A convenience wrapper around sort.Sort(sort.StringSlice(s)), sort.Strings sorts the input in place, so it isn’t expected to allocate (or at least that’s what 43% of the tweeps who responded thought). However it turns out that, at least in recent versions of Go, each […]| Dave Cheney
Picture yourself, an engineer working at the hottest distributed microservices de jour, assigned to fix a bug. You jump into an unfamiliar codebase and quickly locate the line where the problem occurred. The fix is simple, just return early or substitute a default value in the case that one cannot be determined from your input. […]| Dave Cheney
The Go compiler’s SSA backend contains a facility to produce HTML debugging output of the compilation phases. This post covers how to print the SSA output for function and methods. Let’s start with a sample program which contains a function, a value method, and a pointer method: Control of the SSA debugging output is via […]| Dave Cheney
Per the overlapping interfaces proposal, Go 1.14 now permits embedding of interfaces with overlapping method sets. This is a brief post explain what this change means: Let’s start with the definition of the three key interfaces from the io package; io.Reader, io.Writer, and io.Closer: Just as embedding a type inside a struct allows the embedded type’s […]| Dave Cheney
A few days ago Fatih posted this question on twitter. I’m going to attempt to give my answer, however to do that I need to apply some simplifications as my previous attempts to answer it involved a lot of phrases like a pointer to a pointer, and other unhelpful waffling. Hopefully my simplified answer can […]| Dave Cheney
Conventional wisdom dictates that the larger the number of types declared in a Go program, the larger the resulting binary. Intuitively this makes sense, after all, what’s the point in defining a bunch of types if you’re not going to write code that operates on them. However, part of the job of a linker is […]| Dave Cheney
APIs should be easy to use and hard to misuse. — Josh Bloch A good example of a simple looking, but hard to use correctly, API is one which takes two or more parameters of the same type. Let’s compare two function signatures: What’s the difference between these functions? Obviously one returns the maximum of […]| Dave Cheney
This is a post about performance. Most of the time when worrying about the performance of a piece of code the overwhelming advice should be (with apologies to Brendan Gregg) don’t worry about it, yet. However there is one area where I counsel developers to think about the performance implications of a design, and that is API design.| Dave Cheney
Marty the Robot is a complete STEM solution built around a small walking robot with a big personality. Developed by roboticist Dr Sandy Enoch, Marty inspires young minds that STEM can be fun, imaginative and that anyone can do it. Marty’s human-like form, expressive face and incredible moves makes them an instant hit with young […] The post Marty the Robot appeared first on EdTech Digest.| EdTech Digest
in which I ramble about how to write good header files.| riki's house
one of my absolutely favourite parts of Lua is how tiny, but capable it is. did you know you could implement object-oriented programming without needing any additional syntactic support? this is a remaster of an old tutorial I published as a Gist to explain how object-oriented programming works in Lua to someone on the LÖVE Discord server. thus there’s a high likelihood you’ve never read it. however, I think it’s a pretty nice tutorial, so I’m republishing it here outside the shackle...| riki's house
A string formatting library in 65 lines of C++| riki's house
Cloud cost management has evolved from simple monitoring to sophisticated FinOps practices that combine financial accountability with operational efficiency. Oracle Cloud Infrastructure provides po…| Technology Geek
Due to some recent events, I’ve found myself in the position of needing to track medicine intake. There are medicines that have to be taken daily, which have to be audited (“Did I remember to take my bufaximol?”) and others taken as needed to manage symptoms (“How much metryptine have I taken today?”).| Nathan's Musings
A co-worker discovered an amazing thing the other day. He needed to check out our codebase on a Windows machine (for real, not inside WSL) to do something model-y with Matlab. It’s worked before, and it looked like it was going fine until he got this error:| Nathan's Musings
Yesterday, in make, I talked about what Make does. Today, I’m going to talk about how Make gets abused.| Nathan's Musings
There are many resources out there for how to use make and some of them are very good. However, they mostly focus on details of syntax and how to spell the different text manipulation functions. This document is not that. This document is about why Make is the way it is, and how to help it do its job.| Nathan's Musings
I’ve been writing C code professionally since about 2006, and while I look at a lot of languages (I have varying levels of familiarity with Python, Erlang, Ada, Haskell, Go, Rust, C++, OCaml, D, Javascript, Prolog, Lua, Lisp, Bash, Perl, Forth…you get the idea) I have yet to find one that I would rather use in cases where C is appropriate. Part of this inclination is that I mainly write for embedded systems where a lot of the features of higher level languages either don’t help or cost ...| Nathan's Musings
This post is aimed at people who come from languages with automatic garbage collection and want to get a sense for how to approach memory management in a lower level language. I’ll be using Zig (and a bit of Python) to demonstrate, but the concepts apply to C and other languages where you have to care if your data is going on the stack or the heap.| Nathan's Musings
This post is going to explain how pointers, arrays, and slices work in Zig, without depending on knowledge of other languages that use pointers. If you’re trying to learn Zig and your only programming experience is in a language with managed memory, this is for you. If you’re struggling to understand pointers in C, this might help. If you’re coming from C or C++ and just want to know the differences, you might be better off reading the official documentation for arrays, slices, and poin...| Nathan's Musings
This guide was last updated in March of 2024 with an 0.12.0-dev build. Zig is a moving target, and stuff written about it may fall out of date. If you find something broken about this, feel free to let me know.| Nathan's Musings
Update: April 2024 - A lot has happened since I originally wrote this article. I may still update it in to cover the current state of things, but Killian Vounckx wrote an update in February of 2022 and Issue 130 has been closed. I’m not porting the original version of this article to the Sphinx site, so if you want to read it, you can find it here.| Nathan's Musings
Wrapping a C Library with Zig¶| www.nmichaels.org
Personal website showcasing research, publications, and blog| zayenz.se
status.href.cat now reports and notifies me if my home power/internet goes down! The other day, PG&E and my landlord emailed me about a power outage. The elevator system needed a technician to reset it. All the e-key readers in the lobby no longer work. This got me wondering, how long was the power out for?| Aggressively Paraphrasing Me
The iommi docs are more correct than most projects because we take a different approach to documentation: part of the test suite is the documentation. Let’s look at an example:| En kodare
I have been playing around with the https://ergaster.org/posts/2025/07/28-direnv-bitwarden-integration/. It is a necessary read before you read this note since it explains the problem in quite nice details and builds the proposed solution step by ste...| Milan's blog
I wrote a regular expression which works well in a certain program (grep, sed, awk, perl, python, ruby, ksh, bash, zsh, find, emacs, vi, vim, gedit, …). But when I use it in a different program (or...| Unix & Linux Stack Exchange
#tags #logs| mmapped.blog
From building a facility with accessibility in mind to creating programs designed to ease gym anxiety, Portland State University’s Campus Rec department is striving for inclusivity for all. For Portland State University (PSU), an inclusive and welcoming campus recreation environment isn’t just a bonus — it’s a core value that guides every decision, policy and […] The post Inclusivity at the Core: How Portland State University Built Campus Recreation for All Students appeared first...| Campus Rec Magazine