The NDIS Rollercoaster: One Man’s Fight for Mobility, Dignity, and Fairness

September 16, 2025

 

Logo

The NDIS Rollercoaster: One Man’s Fight for Mobility, Dignity, and Fairness

A friend of mine is a brain cancer survivor. Twice in his twenties he fought off cancer, and the second time cost him an eye and the life skills most of us take for granted. After surgery, he had to relearn everything—walking, talking, motor skills. It took years of determination, rehab, and grit to claw his way back to independence.

He’s lived with the impact of those battles ever since. But now, with age taking its toll, the old injuries and fatigue are catching up. Everyday tasks are harder, and walking is becoming more of a struggle. Eventually, he did what anyone in his situation should be able to do: applied for NDIS support.

The first time, he was rejected. The message? You’re not sick enough.

It took persistence, multiple applications, and more years of struggle before he was finally accepted. But even then, qualifying doesn’t mean you get help straight away. The NDIS approval and the funding are two separate processes. He waited almost another year for an actual support package.

So when his coordinator raised the idea of a mobility scooter — a tool to help him stay independent as walking became more difficult—it finally felt like a practical step in the right direction.


The Scooter Trial

I tagged along to the scooter trial. His package coordinator and an occupational therapist (OT) were there, helping him test different models. The session was positive. Smiles all round. He found a medium-sized scooter that was practical, safe, and portable. About $5,000 —just 10% of his $50,000 annual package.

He’s still mobile today, but walking has always been difficult, and age is making it worse. The scooter wasn’t about giving up—it was about ensuring a smooth transition as his mobility inevitably declines. A simple, practical step to safeguard his freedom and independence for the years ahead.

A week later, he told me NDIS had knocked back the request.

Strange, right? Funded to $50K, yet a life - changing mobility aid worth a fraction of that was deemed too much.

We joked maybe it was just a game of persistence—put in the request every six months until someone says yes. “Pester power.”


The Bizarre Twist

Then it got weird.

Despite the knock-back, his OT booked a home scooter trial. He didn’t request it. He didn’t want it. He’d already said it was pointless without funding.

But they brought it anyway.

Weeks later, when I caught up with him, he was frustrated and confused. His OT had called to say he couldn’t work with him anymore—the OT’s $6,000 allocation (part of the $50K) was already used up within six months.

Something didn’t add up.


Following the Money

He called his coordinator to review the accounts. What he found was staggering.

  • An invoice of over $1,000 for that unnecessary home scooter trial which he never asked for.
  • A long list of inflated service charges.
  • And, the kicker: every chat with his coordinator was being billed at $200 per hour—more if they had to “research” something on his behalf.
  • All while the scooter that could change his daily life was deemed unaffordable.


    The Bigger Picture

    This isn’t just about one man’s scooter. It’s about systemic waste and misplaced priorities.

    NDIS participants are treated like line items on an invoice. Providers drain budgets with endless admin, trials, and “consultations”—while the actual supports that improve quality of life get delayed or denied.

    It’s a cruel irony: the system spends thousands on bureaucracy and box-ticking, but when it comes to something as tangible as mobility, independence, or dignity—the answer is "no."


    Closing Point

    The NDIS was supposed to be about empowerment, choice, and support. Instead, it often feels like a tangled bureaucracy designed to wear people down until they stop asking for help

    My friend doesn’t want charity. He doesn’t want luxuries. He wants what the scheme was built for—a fair go, a chance to live with dignity, and the freedom to get around without begging for scraps from his own package.

    The tragedy is that his story isn’t unique.

    And unless the system changes, thousands more Australians with disability will continue to be robbed—of their time, their money, and their independence—by the very program meant to help them.



    YouTube Algorithm Paradox: Why Sharing Your Video Can Hurt Its Reach

    August 21, 2025

     

    Logo

    If you’ve ever uploaded a video to YouTube and wondered why it didn’t take off, you’re not alone. Many creators — especially those making programming tutorials or other technical content — run into the same frustrating problem: the more you try to promote your video, the less YouTube seems to help.

    It sounds backwards, but it’s a real quirk of the YouTube algorithm.

    How the YouTube Algorithm Tests Your Video

    When you upload a new video and don’t share it anywhere, YouTube quietly runs a test. It pushes the video to a small sample of viewers based on what it thinks your audience might be interested in.

    For channels like mine, which focus on programming and niche topics, this test audience often isn’t the right fit. So while the video might get a trickle of views, it rarely breaks out to a larger audience.

    Still, the key point here is: YouTube itself is actively promoting the video during this test phase.

    The Paradox: Why Sharing Hurts YouTube Reach

    Now here’s where things get strange. You’d think that posting your video on your website, blog, or social media pages would boost the results. After all, external promotion means more clicks, more watch time, and more exposure.

    But in practice, it’s the opposite.

    Once YouTube detects that most of your early views are coming from outside the platform, it often stops promoting the video internally. The algorithm seems to decide: “This video is being pushed externally, so we don’t need to recommend it further.”

    That means:

  • If you don’t share the video, YouTube tests it, but to the wrong people.
  • If you do share the video, YouTube largely backs off, leaving you on your own.
  • This is what I call the YouTube promotion paradox.

    Why This Matters for Niche Channels

    For creators in mainstream categories (entertainment, lifestyle, gaming), this paradox might not sting as much. But for smaller, technical, or niche channels, it’s brutal.

    The exact audience who would benefit most from your content often won’t even see it unless they already follow you directly. You’re essentially stuck between algorithm testing and external suppression.

    How to Work Around the YouTube Algorithm

    While there’s no magic fix, here are a few strategies that can help:

  • Stagger your promotion → Let YouTube’s test audience play out for the first 24–48 hours before pushing the video externally.
  • Optimize for YouTube first → Nail your titles, thumbnails, and descriptions with searchable keywords that fit inside YouTube’s ecosystem.
  • Build a direct audience → Use email lists, Discord, or forums to connect with people who want your content, regardless of what the algorithm decides.
  • Experiment with patterns → Every channel is different, so test different approaches to see how your videos perform when shared early vs. later.
  • Final Thoughts

    The YouTube algorithm isn’t broken — it’s just not built to favor niche creators who rely on external communities. If you’ve been frustrated by videos underperforming after you share them, you’re not imagining things.

    Understanding this YouTube algorithm paradox can help you set smarter strategies, manage expectations, and grow your channel on your own terms.


    Taming Memory in PlayBasic with the AMA Library

    August 11, 2025

     

    Logo

    Taming Memory in PlayBasic with the AMA Library

    When you’re writing games or tools in PlayBasic, performance isn’t just about the flashy stuff you see on screen. Behind the scenes, the way you manage memory can make or break your frame rate — and your sanity.

    That’s where my Array Memory Allocation (AMA) library comes in. It’s a home-grown system that manages all your allocations inside a single, giant array. Think of it like having a huge storage unit that you divide into smaller lockers for your stuff, instead of renting a new storage unit every time you buy a box of cables.


    The Problem with Dynamic Memory

    PlayBasic, like most high-level languages, can allocate arrays and memory chunks on the fly. That’s fine for occasional use, but when you’re doing hundreds or thousands of small allocations in a game loop, it can become painfully slow.

    The original inspiration for AMA came from some old DarkBasic code I wrote years ago. It worked, but it had some ugly performance quirks — I’m talking seconds-long delays for just a few hundred allocations. Not great when you’re trying to keep your game running at 60 FPS.


    The AMA Approach

    The AMA library flips the normal approach on its head:

  • One Big Array - Instead of lots of little allocations, everything lives inside a single giant array.
  • Chunk Management – The big array is treated like a heap of variable-sized blocks.
  • Minimal Shuffling – When you free memory, the space is just marked as available. If things get too fragmented, a defrag routine tidies it up.
  • This lets AMA skip the expensive “create a new array” step over and over, because the big array already exists — we’re just reassigning parts of it.

    Logo


    Why AMA still matters (even in PlayBASIC)

    You’re right that PlayBASIC supports pointers. That said, AMA remains useful for several reasons:

  • Cross-dialect portability: The AMA pattern is directly applicable to BASIC dialects that don’t support pointers, array-passing, or dynamic array creation. The article’s goal is to share ideas usable across those environments.
  • Shared container - serialization: A single heap-like container makes it easy to share, snapshot, or serialize many small data blocks as one contiguous structure.
  • Deterministic behavior and profiling: A manual allocator gives predictable allocation behavior and makes fragmentation/debug visualization simpler.
  • Centralized debug & visualization: Heatmaps, allocation stats, and defrag animations are naturally easier when all data lives in one array.
  • Performance guarantees: Even with pointer support, avoiding repeated allocations and deallocations (and garbage / VM overhead if present) can be a win — especially on constrained runtimes.

  • Seeing It in Action

    I’ve built in a color-coded heatmap so you can literally see what the allocator is doing:

  • Green = Free space
  • White = Large free chunks
  • Other colors = Allocated blocks
  • When you watch it run, you can see allocations, frees, and defrags happening in real time at 20 FPS — even with 2,000 allocations and 66MB of data in pure PlayBasic code.


    The Performance Payoff

    In testing, AMA crushed the old brute-force method:

  • Old method – ~25 seconds for 1,000 allocations (ouch)
  • AMA method – Real-time allocation & defrag without breaking a sweat
  • The magic here is using a sorted list for quick free-space lookups and only moving data when absolutely necessary. That combination delivers a big net gain without overcomplicating things.


    Next Steps

    I’m looking at squeezing even more speed out of the library by improving the copy routines — unrolling loops, copying larger words/blocks, or generating specialized copy code where beneficial. Every little gain adds up when you’re chasing performance.

    Final Thought: Memory management might not be as flashy as a new shader or sprite effect, but when your game runs smoothly, you’ll be glad you gave it some love.