Bugs Exist In All Code Bases

June 19, 2026

 

Logo

Bugs Exist In All Code Bases

One of the most common misconceptions among new programmers is that experienced developers write bug-free code. Spend enough time programming, however, and you'll discover an important truth:

Bugs exist in all code bases.

It doesn't matter if the project is a weekend hobby, an indie game, a commercial application, or software used by millions of people. Given enough complexity, enough features, and enough time, bugs will find their way into the code.

Perfection Is an Impossible Target

Programming isn't simply writing instructions for a computer. It's about solving problems, and those problems often change over time. New features are added, old systems are updated, and user expectations evolve.

Every change introduces the possibility of unintended side effects.

A fix for one problem might expose another. An optimisation could create an edge case that nobody anticipated. A new feature might interact with older code in unexpected ways.

This isn't necessarily bad programming. It's simply the nature of software development.

Complexity Is the Real Enemy

A program might start out as a few hundred lines of code. Years later, it could have hundreds of thousands of lines spread across countless functions and modules.

The more moving parts a project has, the more interactions exist between those parts.

Even if each individual function works perfectly, combining them can produce behaviours that weren't expected.

The challenge isn't eliminating every possible bug. It's managing complexity so that bugs are easier to find and fix.

Every Programmer Writes Bugs

Beginners often think they're making mistakes because they aren't good enough.

Professionals know that mistakes are part of the job.

Experienced programmers don't magically avoid bugs. They simply develop better habits:

* Breaking problems into smaller pieces.
* Testing code frequently.
* Writing clear, readable functions.
* Using debugging tools effectively.
* Accepting that the first version probably won't be the final version.

The difference between a beginner and an experienced developer isn't the number of bugs they create.

It's how quickly they can track them down and fix them.

Finding Bugs Is Progress

It's easy to become frustrated when a bug appears after hours of coding.

In reality, discovering a bug is often a success.

You found something that wasn't working correctly before your users did. You learned something about your program. You made the code a little more robust than it was yesterday.

Every bug fixed improves the quality of the project.

Even Famous Software Has Bugs

* Operating systems have bugs.

* Games have bugs.

* Web browsers have bugs.

* Programming languages have bugs.

The tools we use every day receive updates and patches because developers continually discover issues and improve their software.

If some of the largest software projects in the world can't eliminate every bug, it's unrealistic to expect our own projects to be perfect.

The Goal Is Better Software

Good software development isn't about creating bug-free code.

It's about creating code that can be understood, maintained, tested, and improved over time.

A healthy code base isn't one without bugs.

It's one where bugs can be identified, fixed, and prevented from causing bigger problems in the future.

Final Thoughts

Bugs exist in all code bases.

That's not a sign that a project has failed or that a programmer lacks skill. It's a natural consequence of building increasingly complex systems to solve increasingly complex problems.

The next time you encounter a bug, remember that you're participating in a process shared by every programmer, from hobbyists writing their first game to engineers maintaining software used around the world.

The goal isn't perfection.

The goal is to make today's code a little better than yesterday's.


The Death Of The Hunter Gatherer Internet

May 23, 2026

 

Logo

The Death Of The Hunter Gatherer Internet

There was a time when searching the internet felt less like querying a database and more like wandering through a digital wilderness.

You’d type a vague phrase into a search engine and spend hours crawling through strange personal websites, forgotten forums, hobby pages, tutorials, experiments and dead ends.

The web rewarded curiosity back then.

Discovery wasn’t optimized.

It was messy, inefficient and wonderfully human.

Back then, finding information often meant finding people. You’d stumble across somebody’s obscure website about graphics programming, retro gaming, astronomy, synthesizers or some strange niche obsession they’d dedicated years to documenting. Many of these sites looked terrible. Some hadn’t been updated in years. Others were hidden three pages deep in search results behind broken layouts and blinking GIFs.

But they were alive.

The internet felt less like a product and more like a frontier.

Over time that slowly changed.

Commercialization arrived first. Then platforms consolidated communities into centralized spaces. SEO transformed writing into ranking strategy. Algorithms replaced wandering with guided pathways. The web became increasingly optimized around engagement, retention and monetization.

Search engines stopped helping users explore the web and started trying to predict exactly what users wanted as quickly as possible.

Convenience won.

The strange little corners of the internet slowly disappeared beneath waves of optimization and commercial abstraction.

Now AI search threatens to push this transformation even further.

The new direction isn’t simply about finding websites anymore. Increasingly, the goal appears to be eliminating the need to visit them altogether. Rather than returning a list of places to explore, AI systems scan, summarize and synthesize information directly into the search interface itself.

The website becomes invisible infrastructure.

To users this may feel convenient. Faster answers. Less friction. Fewer tabs. But underneath that convenience sits an uncomfortable contradiction.

What happens when the systems consuming information no longer meaningfully support the ecosystems producing it?

For decades the relationship between websites and search engines was at least somewhat reciprocal. Publishers created content. Search engines indexed it and returned visitors in exchange. Traffic became the economic fuel that justified blogs, tutorials, forums, documentation sites and independent publishing.

But AI synthesis changes that equation dramatically.

If users no longer visit the source:

  • ad revenue declines
  • discovery disappears
  • independent sites lose visibility
  • creators lose incentive to publish publicly
  • At some point people begin asking an uncomfortable question:

    Why spend weeks creating original content only for it to become fuel for systems that benefit someone else?

    This is particularly dangerous for niche and enthusiast communities. The web was built upon countless individuals sharing knowledge simply because they cared enough to document it. Technical blogs. Hobby forums. Fan sites. Tutorials. Small communities. Personal archives.

    These spaces survive because people feel connected to an audience. They feel discovered. Linked to. Referenced. Visited.

    If AI interfaces become the destination instead of the pathway, much of that incentive structure begins to collapse.

    Ironically, the more the open web becomes mined and abstracted, the more valuable closed communities may become. Newsletters, private groups, Discord servers, memberships and invite-only spaces start making more sense in a world where publicly accessible information is endlessly harvested but increasingly detached from its creator.

    The irony here is thick.

    What is a search engine without access to fresh human knowledge?

    Eventually it risks becoming little more than a history book built upon the remnants of a once living web.

    And perhaps that’s the strangest part of all.

    The internet once felt like a place people visited. Websites had identity. Domain names mattered. Communities gathered around destinations. People remembered where they found things.

    Now domain names are becoming like phone numbers.
    

    Technically important, but increasingly invisible to the people using them.

    The old hunter gatherer internet may already be gone. AI search simply makes the loss impossible to ignore anymore.

    PS3D - Polygon Subdivision PS3D - PlayBASIC Devlog

    May 20, 2026

     

    PS3D - Polygon Subdivision PS3D - PlayBASIC Devlog

    In this PlayBASIC development update, we take a deep dive into the latest polygon subdivision experiments inside the PS3D software rendering engine. This tech demo showcases adaptive quad subdivision, near-plane clipping improvements, affine texture mapping, filtered triangles, and transparent rendering running entirely in software.

    The new subdivision system dynamically increases polygon detail based on camera distance and face orientation, dramatically improving image quality for close-up geometry without requiring full perspective-correct texture mapping. Instead of relying purely on traditional affine textured triangles, PS3D subdivides quads into smaller faces to better approximate perspective, reducing the heavy distortion commonly seen near the camera.

    This video also explores:

  • Adaptive polygon subdivision in a software renderer
  • Quad vs triangle clipping behavior
  • Near Z-plane clipping and projection artifacts
  • Backface culling and object-level visibility rejection
  • Transparent alpha blended rendering
  • Triangle fan generation after clipping
  • Performance tradeoffs between image quality and rendering speed
  • Screen-space clipping limitations
  • Software 3D rendering techniques in PlayBASIC
  • Retro-style rendering pipelines and engine experimentation
  • The demo scene renders thousands of transparent objects while visualizing subdivision levels and clipping behavior in real time. The green wireframe overlays reveal how faces are broken down and processed internally by the renderer.

    PS3D remains a fully software-driven 3D engine written in PlayBASIC, focused on experimentation with classic rendering techniques, optimization strategies, and retro-inspired graphics programming.