Discussion
Loading...

#Tag

Log in
  • About
  • Code of conduct
  • Privacy
  • Users
  • Instances
  • About Bonfire
Hacker News
Hacker News
@h4ckernews@mastodon.social  ·  activity timestamp 6 hours ago

The rise of industrial software

https://chrisloy.dev/post/2025/12/30/the-rise-of-industrial-software

#HackerNews #industrialsoftware #technology #innovation #softwaredevelopment #automation

The rise of industrial software | Chris Loy

> _**Industrial**_ > > _adj. (sense 3a)_ > > Of or relating to productive work, trade, or manufacture, esp.
  • Copy link
  • Flag this post
  • Block
Hacker News
Hacker News
@h4ckernews@mastodon.social  ·  activity timestamp 16 hours ago

Project ideas to appreciate the art of programming

https://codecrafters.io/blog/programming-project-ideas

#HackerNews #ProjectIdeas #ArtOfProgramming #ProgrammingCreativity #CodeProjects #SoftwareDevelopment

CodeCrafters

73 Programming Project Ideas to Inspire and Challenge You

Curated list of project ideas for programmers who aren't sure what to build. We chose 73 projects that teach a lot and are fun to build.
  • Copy link
  • Flag this post
  • Block
Hacker News
Hacker News
@h4ckernews@mastodon.social  ·  activity timestamp 19 hours ago

Prof. Software Developers Don't Vibe, They Control: AI Agent Coding Use in 2025

https://arxiv.org/abs/2512.14012

#HackerNews #ProfSoftwareDevelopers #AIAgentCoding #2025 #TechTrends #SoftwareDevelopment #FutureOfWork

arXiv.org

Professional Software Developers Don't Vibe, They Control: AI Agent Use for Coding in 2025

The rise of AI agents is transforming how software can be built. The promise of agents is that developers might write code quicker, delegate multiple tasks to different agents, and even write a full piece of software purely out of natural language. In reality, what roles agents play in professional software development remains in question. This paper investigates how experienced developers use agents in building software, including their motivations, strategies, task suitability, and sentiments. Through field observations (N=13) and qualitative surveys (N=99), we find that while experienced developers value agents as a productivity boost, they retain their agency in software design and implementation out of insistence on fundamental software quality attributes, employing strategies for controlling agent behavior leveraging their expertise. In addition, experienced developers feel overall positive about incorporating agents into software development given their confidence in complementing the agents' limitations. Our results shed light on the value of software development best practices in effective use of agents, suggest the kinds of tasks for which agents may be suitable, and point towards future opportunities for better agentic interfaces and agentic use guidelines.
  • Copy link
  • Flag this post
  • Block
Hacker News
Hacker News
@h4ckernews@mastodon.social  ·  activity timestamp 19 hours ago

Everything as Code: How We Manage Our Company in One Monorepo

https://www.kasava.dev/blog/everything-as-code-monorepo

#HackerNews #EverythingAsCode #Monorepo #CompanyManagement #DevOps #SoftwareDevelopment

Kasava

Kasava - The Agentic Platform for Product Engineers

Kasava is the AI-native platform purpose-built for product development. Plan, build, and monitor with AI-powered workflows.
  • Copy link
  • Flag this post
  • Block
Hacker News
Hacker News
@h4ckernews@mastodon.social  ·  activity timestamp yesterday

You Need to Ditch VS Code

https://jrswab.com/blog/ditch-vs-code

#HackerNews #DitchVSCode #SoftwareDevelopment #CodingTools #DeveloperCommunity #ProgrammingTips

jrswab

Why VS Code Is Holding You Back as a Programmer

Learn how breaking free from GUIbased IDEs can level up your programming skills and make you a more capable developer.
  • Copy link
  • Flag this post
  • Block
Hacker News
Hacker News
@h4ckernews@mastodon.social  ·  activity timestamp 2 days ago

The production bug that made me care about undefined behavior

https://gaultier.github.io/blog/the_production_bug_that_made_me_care_about_undefined_behavior.html

#HackerNews #productionbug #undefinedbehavior #programmingcare #techstories #softwaredevelopment

The production bug that made me care about undefined behavior

  • Copy link
  • Flag this post
  • Block
Hacker News
Hacker News
@h4ckernews@mastodon.social  ·  activity timestamp 2 days ago

Static Allocation with Zig

https://nickmonad.blog/2025/static-allocation-with-zig-kv/

#HackerNews #StaticAllocation #Zig #Programming #Language #MemoryManagement #SoftwareDevelopment

Static Allocation with Zig

Introducing kv, a statically allocated key/value server.
  • Copy link
  • Flag this post
  • Block
Hacker News
Hacker News
@h4ckernews@mastodon.social  ·  activity timestamp 2 days ago

Binaries

https://fzakaria.com/2025/12/28/huge-binaries

#HackerNews #Binaries #TechNews #SoftwareDevelopment #Programming #HackerNews

Farid Zakaria’s Blog

Huge binaries

A problem I experienced when pursuing my PhD and submitting academic articles was that I had built solutions to problems that required dramatic scale to be effective and worthwhile. Responses to my publication submissions often claimed such problems did not exist; however, I had observed them during my time within industry, such as at Google, but I couldn’t cite it!
  • Copy link
  • Flag this post
  • Block
Hacker News
Hacker News
@h4ckernews@mastodon.social  ·  activity timestamp 3 days ago

Time in C++: Inter-Clock Conversions, Epochs, and Durations

https://www.sandordargo.com/blog/2025/12/24/clocks-part-5-conversions

#HackerNews #C++ #Programming #Time #Management #InterClockConversions #SoftwareDevelopment

Sandor Dargo’s Blog

Time in C++: Inter-clock Conversions, Epochs, and Durations

By now in this series, we’ve spent time looking at the major standard clocks and their behavior. We’ve talked about wall-clock time, monotonic clocks, and the myths around “high resolution”. Today, we are going to talk about a subtle area: how clocks relate to each other, how epochs differ, and what happens when you - need to - convert durations. It sounds simple, right? A timestamp is a timestamp, and a duration is just a number of seconds - or other time units. But is designed to be type-safe, and it enforces some rules that prevent accidental misuse. Once you understand why those rules exist, time handling in C++ starts to feel much safer — and your tests get more reliable too. And It sounds simple, right? A timestamp is a timestamp, and a duration is just a number of seconds - or other time units. But when it comes to converting between clocks, the reality is much messier. Different clocks have different epochs, different guarantees, and sometimes completely different purposes. doesn’t stop you from doing conversions just to be pedantic — it discourages them because many of those conversions simply don’t make sense or can silently introduce subtle bugs. Once you understand why these conversions are tricky, and why the library forces you to be explicit about them, the design choices in click into place. And more importantly, you start avoiding whole classes of timing bugs — both in production and in tests. Let’s jump right into the details. Clock Epochs: Why “Zero” Isn’t Universal A time_point in is always measured relative to some epoch. But here’s the catch: each clock defines its own epoch. std::chrono::system_clock uses the Unix epoch (1 January 1970 UTC). std::chrono::steady_clock uses an unspecified monotonic epoch. Its zero might be system boot time, or something entirely different. std::chrono::high_resolution_clock is usually just an alias to either system_clock or steady_clock. This means: You cannot meaningfully compare time_points from different clocks. If you try to subtract a steady_clock::time_point from a system_clock::time_point, you’re effectively asking: “What is the difference between 1970-01-01 and some arbitrary boot-time counter?” The answer, of course, is: it depends on the machine, the OS, and maybe even the phase of the moon… :) Even tests can fall into this trap. If a test assumes that steady_clock starts at zero or that its epoch is stable across runs or platforms, that test becomes brittle. When you need deterministic behavior, it’s best to use controllable test clocks — or simply avoid exposing epochs at all. Converting Between Clocks: What You Can (and Can’t) Do Converting between clocks is tricky because their epochs differ—sometimes radically. For years, the standard library offered no built-in mechanism to transform a time_point from one clock into another. That changed with C++20: we now have clock_cast and custom clock_time_conversion specializations, which allow well-defined conversions when clocks have a meaningful relationship. At the same time, many clocks (such as system_clock and steady_clock) still cannot be safely converted because they measure fundamentally different notions of time. For those cases, you must fall back to a manual correlation technique, understanding that the result is only an approximation. Let’s look at both. Standard-Supported Conversions (clock_cast and clock_time_conversion) C++20 introduced std::chrono::clock_cast, which allows converting a time_point from one clock to another when the conversion is defined. A conversion is defined if: The clocks have a known, stable mathematical relationship A clock_time_conversion specialization exists The standard library already provides such conversions between the following pairs: system_clock utc_clock tai_clock gps_clock file_clock Custom clocks if clock_time_conversion is soecified These clocks share known epochs and offsets (e.g., TAI is always 37 seconds ahead of UTC at the moment of writing), so the library can safely compute conversions. More on some C++20 clocks next week. Example: converting utc_clock to tai_clock: 1 2 3 4 using namespace std::chrono; auto utc_now = utc_clock::now(); auto tai_now = clock_cast(utc_now); Here the result is well-defined and stable, because the relationship between TAI and UTC is part of the standard, not dependent on your system’s wall clock or boot time. You can also define your own conversions by providing a clock_time_conversion specialization for your custom clocks. This is particularly useful for: virtual/test clocks simulated clocks domain-specific clocks (e.g., frame counters, monotonic-but-shifted clocks) As soon as the specialization exists, clock_cast becomes available. Manual Correlation (When No Meaningful Conversion Exists) For clocks that don’t have a fixed mathematical relationship — like system_clock and steady_clock — the standard cannot give you a correct conversion. Their epochs differ and their behavior differs; one jumps, one doesn’t. In these cases, you can only estimate a conversion using a manual correlation pattern: 1 2 3 4 5 auto system_now = std::chrono::system_clock::now(); auto steady_now = std::chrono::steady_clock::now(); // The offset lets you map steady to system later on. auto offset = system_now - steady_now; From here, you can convert from steady time to approximate system time: 1 auto estimated_system_time = some_steady_tp + offset; This is useful, for example, when you measure an event duration with steady_clock (which is good for accuracy), but still want to log a human-readable timestamps. However, there’s a big caveat! If system_clock jumps (e.g. due to NTP sync or to manual clock change), your offset becomes invalid. If you rely on this relationship for long-running processes, you’re essentially betting that the wall clock won’t move. That’s a dangerous bet. Testing-wise, this is exactly the kind of logic that benefits from dependency injection: give the code two controllable clocks and make the conversion behavior explicit. Tests shouldn’t rely on the real-world relationship between clocks; they should verify your conversion math. Duration Casting and Precision Durations seem simple — just a number plus a unit. But converting between units introduces subtle precision issues. On the one hand, casting to a coarser unit truncates: 1 2 3 4 using namespace std::chrono_literals; auto ns = 1500ns; // 1500 nanoseconds auto us = std::chrono::duration_cast(ns); // us == 1 microsecond (the remaining 500ns are lost) On the other hand, casting to a finer unit introduces “imaginary precision”: 1 2 3 std::chrono::milliseconds ms{1}; auto ns2 = std::chrono::duration_cast(ms); // ns2 == 1'000'000ns, but we didn't *measure* at nanosecond precision C++20 gives us chrono::floor, ceil, and round, which make intent clear and help you see where you’re losing information. We are explicit in this lossy cast: we choose to lose 499ns, and that’s fine as long as it’s intentional. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 // https://godbolt.org/z/K7GPdKMn9 using namespace std::chrono_literals; auto original = 1499ns; // Round to the *nearest* microsecond auto rounded_us = std::chrono::round(original); // rounded_us == 1us // We've effectively decided that 1499ns ≈ 1µs // The remaining 499ns are gone by design. std::cout << original.count() << "ns\n"; std::cout << rounded_us.count() << "us\n"; /* 1499ns 1us */ Overflow, Underflow, and Representation Limits Another subtle danger lies in subtraction or conversion involving very large durations. Imagine you accidentally subtract two system_clock time_points taken decades apart, or you add a huge duration that exceeds 64-bit limits. Normally, modern platforms give you plenty of room, but it’s not infinite. As there is almost always an integer type behind std::chrono::duration’s Rep, there is a risk of signed integer overflow and therefore undefined behaviour. Yet, it’s useful to use signed integer types as Rep, because negative durations can happen legitimetly or they can show a logic error that would be otherwise hard to spot. Conclusion Inter-clock conversions turn out to be one of the trickiest parts of working with . Clocks have different epochs, some jump while others don’t, and durations behave differently depending on how you convert them. But with the right mental model — and a few best practices — you can write robust, portable, and testable time-handling code. Always measure intervals using one clock, preferably use steady_clock Convert to human-readable preresentations only at the boundary Never assume epochs are related. Even if two timestamps “look close”, you can’t rely on any stable relationship between clocks. Keep rounding and precision choices explicit. Use floor, ceil or round to do so. Don’t validate clocks, validate your logic. Get those right, and suddenly time in C++ becomes a lot less mysterious. Next week, we’ll talk about some additional clocks introduced by C++20. Stay tuned! Connect deeper If you liked this article, please hit on the like button, subscribe to my newsletter and let’s connect on Twitter!
  • Copy link
  • Flag this post
  • Block
Hacker News
Hacker News
@h4ckernews@mastodon.social  ·  activity timestamp 4 days ago

Cursed Bundler: Using go get to install Ruby Gems

https://nesbitt.io/2025/12/25/cursed-bundler-using-go-get-to-install-ruby-gems.html

#HackerNews #CursedBundler #Go #Get #RubyGems #SoftwareDevelopment #Programming #Hacks

Andrew Nesbitt

Cursed Bundler: Using go get to install Ruby Gems

Go’s module system accidentally created a universal, content-addressed, transparency-logged package CDN. You could abuse this for any language.
  • Copy link
  • Flag this post
  • Block
Hacker News
Hacker News
@h4ckernews@mastodon.social  ·  activity timestamp 5 days ago

Exe.dev/

https://exe.dev/

#HackerNews #ExeDev #ExeDevWebsite #TechInnovation #SoftwareDevelopment #HackerNews

  • Copy link
  • Flag this post
  • Block
Hacker News
Hacker News
@h4ckernews@mastodon.social  ·  activity timestamp 5 days ago

Package managers keep using Git as a database, it never works out

https://nesbitt.io/2025/12/24/package-managers-keep-using-git-as-a-database.html

#HackerNews #PackageManagers #GitDatabase #SoftwareDevelopment #DevOps #TechTrends

Andrew Nesbitt

Package managers keep using git as a database, it never works out

Git repositories seem like an elegant solution for package registry data. Pull requests for governance, version history for free, distributed by design. But as registries grow, the cracks appear.
  • Copy link
  • Flag this post
  • Block
Hacker News
Hacker News
@h4ckernews@mastodon.social  ·  activity timestamp 6 days ago

Memory Safety

https://www.memorysafety.org/

#HackerNews #MemorySafety #MemorySafetyOrg #Cybersecurity #SoftwareDevelopment #TechNews

  • Copy link
  • Flag this post
  • Block
Hacker News
Hacker News
@h4ckernews@mastodon.social  ·  activity timestamp 6 days ago

The Inner-Platform Effect (2006)

https://thedailywtf.com/articles/The_Inner-Platform_Effect

#HackerNews #InnerPlatformEffect #InnerPlatform #2006 #TechInsights #SoftwareDevelopment

The Daily WTF

The Inner-Platform Effect

I'm sure that a lot of you have may heard about "antipatterns." They're more or less the converse of "software design patterns" in that they describe a frequently repeated problem in designing a commonly-occurring solution. I've observed quite of a few of these antipatterns in the real world, but noticed that one particularly egregious (though, thankfully, rare) antipattern wasn't documented: I call it the Inner-Platform Effect. The Inner-Platform Effect is a result of designing a system to be so customizable that it ends becoming a poor replica of the platform it was designed with. This "customization" of this dynamic inner-platform becomes so complicated that only a programmer (and not the end user) is able to modify it.
  • Copy link
  • Flag this post
  • Block
Hacker News
Hacker News
@h4ckernews@mastodon.social  ·  activity timestamp 6 days ago

Ruby 4.0.0 Released

https://www.ruby-lang.org/en/news/2025/12/25/ruby-4-0-0-released/

#HackerNews #Ruby #Ruby4 #Ruby4Release #Programming #News #SoftwareDevelopment

Ruby Programming Language

Ruby 4.0.0 Released | Ruby

We are pleased to announce the release of Ruby 4.0.0.Ruby 4.0 introduces “Ruby Box” and “ZJIT”, and adds many improvements.
  • Copy link
  • Flag this post
  • Block
Hacker News
Hacker News
@h4ckernews@mastodon.social  ·  activity timestamp last week

Could lockfiles just be SBOMs?

https://nesbitt.io/2025/12/23/could-lockfiles-just-be-sboms.html

#HackerNews #lockfiles #SBOMs #softwaredevelopment #cybersecurity #open_source

Andrew Nesbitt

Could lockfiles just be SBOMs?

Lockfiles and SBOMs record the same information in different formats. What if package managers used SBOMs directly, instead of converting later?
  • Copy link
  • Flag this post
  • Block
Hacker News
Hacker News
@h4ckernews@mastodon.social  ·  activity timestamp last week

AI Can Write Your Code. It Can't Do Your Job

https://terriblesoftware.org/2025/12/11/ai-can-write-your-code-it-cant-do-your-job/

#HackerNews #AI #Coding #JobAutomation #TechTrends #HackerNews #SoftwareDevelopment

Terrible Software

AI Can Write Your Code. It Can’t Do Your Job.

The companies building AI are spending billions to acquire engineers, not replace them. Here’s why your job is safer than you think.
  • Copy link
  • Flag this post
  • Block
Hacker News
Hacker News
@h4ckernews@mastodon.social  ·  activity timestamp last week

Lua 5.5.0

https://lua.org/versions.html#5.5

#HackerNews #Lua5.5 #LuaProgramming #ProgrammingLanguages #SoftwareDevelopment #TechNews

Lua: version history

  • Copy link
  • Flag this post
  • Block
Hacker News
Hacker News
@h4ckernews@mastodon.social  ·  activity timestamp last week

Stop Slopware

https://stopslopware.net/

#HackerNews #StopSlopware #Slopware #TechNews #Cybersecurity #SoftwareDevelopment

  • Copy link
  • Flag this post
  • Block
Hacker News
Hacker News
@h4ckernews@mastodon.social  ·  activity timestamp last week

Is the golden age of Indie software over?

https://successfulsoftware.net/2025/12/22/is-the-golden-age-of-indie-software-over/

#HackerNews #IndieSoftware #GoldenAge #SoftwareDevelopment #TechTrends #Entrepreneurship

Successful Software

Is the golden age of Indie software over?

The concept of shareware appeared in the 1980s. Developers would use relatively primitive tools to create their software, then promote it via fanzines, user groups and bulletin boards to a niche au…
  • Copy link
  • Flag this post
  • Block

bonfire.cafe

A space for Bonfire maintainers and contributors to communicate

bonfire.cafe: About · Code of conduct · Privacy · Users · Instances
Bonfire social · 1.0.1-alpha.41 no JS en
Automatic federation enabled
Log in
  • Explore
  • About
  • Members
  • Code of Conduct