#Development #Pitfalls
The hard truth about soft deletion · Fake deletions of database records cause real problems https://ilo.im/165eye
_____
#Programming #Coding #Maintenance #SoftDeletion #Database #SQL #Ruby #WebDev #Backend

#Development #Pitfalls
The hard truth about soft deletion · Fake deletions of database records cause real problems https://ilo.im/165eye
_____
#Programming #Coding #Maintenance #SoftDeletion #Database #SQL #Ruby #WebDev #Backend
I've found that I don't have much of a liking for backend infrastructure and that 90% of my irritation with it is the need to keep changing problem languages and contexts.
In UI, everything is written in one, maybe two, languages and you can see the changes immediately.
In backend full-stack? Every day, every ticket is a new family of languages to use to solve related but non-overlapping problems. I'm using Python to write and maintain the RPC service (and configure the database), YAML to script workloads (except the bodies of workloads, those are Python), SQL to build query state (unless I'm in the Python layer, then I use sqlalchemy because let's be honest, SQL is an ass language and it's safer to use an object-oriented tool that can build a sanitized SQL query with parameters than to roll your own), YAML again to bind queries to interface (but a different YAML, this yaml is configuring something else), some light C++ to fix a bug in this compute engine, a bit of protobuffer to bind the compute engine to its workload, oh but wait, we need to drive the compute engine, so that's Python that writes the protobuffer and stuffs it in S3 than fires an RPC (another protobuffer, but here it's JSON representation of that proto) to a server to spin up the workload...
... and now I want to display it all, so let's pop into TypeScript for a bit to extend the browser-based UI and I want to deep-link from this to a Superset dashboard with a dynamically-configured filter, that's no problem the filter is modified by query params that are of the form.... What the hell is Rison?
It's like this every day and it's getting to the point where opening my ticket queue feels like less of a fun challenge and more like "What fresh hell...?"
I'm reminded of a blog post Steve Yegge did ages ago, about a conversation between him and a staff engineer at Google about adding one new language. The staff engineer noted that the real cost wasn't in adding one more language and a few thousand lines of code... it was paid in the need for every engineer into the future forever to have deep knowledge of that language to maintain the code written in it. And, yeah, there's wisdom in that. Of course, in practice Google was little better... They'd put hard clamps on adding new languages and then internally multiply DSLs and frameworks about as fast as promotion cycles came around (this is not coincidence ).
Anyway...
To echo GLaDOS... I used to do just a game engine. You know what my days used to be like? I just coded. Nobody made me set up monitoring with Grafana. Or ran me in the Cloud. Or fed my data to a workflow engine. I had a pretty good life.
#Development #Pitfalls
That boolean is probably not right · Where code deserves more than true or false https://ilo.im/165hv7
_____
#Programming #Coding #DataTypes #Boolean #Rust #WebDev #Frontend #Backend
#Development #Fun
My tech stack in LEGO · Who says your stack can’t live beyond the screen? https://ilo.im/165ey5
_____
#Lego #TechStack #TailwindCSS #AlpineJS #PHP #Laravel #Pest #WebDev #Frontend #Backend
Thinking about turning on OPcache Preloading in your PHP app?
It sounds like an easy win—but unless your app is already lightning fast, you might not see much benefit.
In our latest post, we dig into:
- What preloading actually does
- When it’s useful (and when it’s not)
- Real-world gains with hard numbers
I’ve been learning Spring Boot and jOOQ for a potential gig and for the most part I like both quite a bit so far! Both seem to have reasonably intuitive DSLs that fit well with Kotlin.
Are you new to #Django testing, or #performance profiling APIs? Don't worry, the Performancing Testing Tool I am building has an `educational_guidance` setting.
This will not only help you find performance bottlenecks in your existing test-suite; but it will also TEACH you how to use this tool, and also TEACH you why Django might have bottlenecks at certain areas (Creating with Signals, Deleting with CASCADES, etc.)
If you are already an expert, simply just turn `educational_guidance` off!
#Development #Reports
Git security vulnerabilities · The latest Git release eliminates major security flaws https://ilo.im/1658nd
_____
#Programming #Coding #Git #VersionControl #Vulnerability #Security #Upgrade #WebDev #Frontend #Backend
I am working on extending the #Django test framework to include comprehensive performance testing for the open-source project https://github.com/ibrahim-sisar/EduLite, but hopefully I will #opensource the test extension itself with the name 'Django-Mercury'
This test framework introduced a new class, `DjangoPerformanceTestCase` that automatically tracks the stats of three important things:
1. View response times and memory usage
2. Serializer payload sizes & performance (specific to DRF)
3. Model queries and creations.
New asserts like `assertPerformance`, `assertResponseTimeLess`, `assertMemoryLess`, `assertPerformanceFast`, `assertPerformanceNotSlow` can join your existing test suite, just configure what 'Fast' and 'NotSlow' means in your settings.py!
I am excited to share how it actually works behind the scenes (spolier; I put my newfound C knowledge to use- it's lightning fast!)
#Development #Guides
The AI-native software engineer · A playbook for using AI in everyday engineering https://ilo.im/16531d
_____
#Programming #Coding #Debugging #Deployment #AI #Mindset #Workflow #WebDev #Frontend #Backend
Filament - Ordenar elementos en tabla de relaciones
Vemos como aplicar orden y gestionarlo contemplando crear nuevos registros, eliminar individual y eliminar por lotes para garantiza la secuencia.
#Development #Guides
Named vs. arrow functions in JavaScript · How to know which one to use and when? https://ilo.im/16507o
_____
#Programming #Coding #JavaScript #Functions #WebDev #Frontend #Backend #Comparisons
#Development
What’s new in ECMAScript 2025 · This year’s additions explained with examples https://ilo.im/1652j5
_____
#Programming #Coding #JavaScript #EcmaScript #EcmaScript2025 #WebDev #Frontend #Backend
#Development #Announcements
Our first IP address certificate · Let’s Encrypt starts rolling out the new option https://ilo.im/16530s
_____
#LetsEncrypt #CA #IpAddress #Certificate #SSL #TLS #HTTPS #WebDev #Frontend #Backend
#Development #Techniques
Top-level ‘await’ in ES modules · Write cleaner, more direct async code in modules https://ilo.im/164owq
_____
#Programming #Coding #JavaScript #EcmaScript #EsModules #AsyncCode #WebDev #Frontend #Backend #Guidelines
Yes! Finally! "ORM 3.4.0 released with Native Lazy Objects and Property hooks support" > https://www.doctrine-project.org/2025/06/28/orm-3.4.0-released.html #php #symfony #doctrine #backend #development #webdev #orm #doctrine
Thrid lesson of handling dates on computers.
Your day is not "11/8/2025". It's 1.762.560.000.