<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom"><title>Bo's Blog: thoughts</title><link href="https://odux.uk/" rel="alternate"/><link href="https://odux.uk/tags/thoughts.atom" rel="self"/><id>https://odux.uk/</id><updated>2026-03-30T13:47:12+00:00</updated><author><name>Bo Xu</name></author><entry><title>I Passed My Driving Test - and And I Have Something to Say</title><link href="https://odux.com/2026/Mar/30/i-passed-my-driving-test-and-and-i-have-something-to-say/#atom-tag" rel="alternate"/><published>2026-03-30T13:47:12+00:00</published><updated>2026-03-30T13:47:12+00:00</updated><id>https://odux.com/2026/Mar/30/i-passed-my-driving-test-and-and-i-have-something-to-say/#atom-tag</id><summary type="html">
    I passed my driving test today. Finally. Long sigh.

Goodbye to the UK learner system, with all its quirks and frustrations. Goodbye to the overpriced lessons, the examiner theatre, and the months of waiting for a slot. It's done.

But since I'm in a reflective mood, let me leave with one parting observation -- because I genuinely could talk about UK roundabout design for an entire day without repeating myself.

The roundabout, as a concept, was designed for light, manageable traffic. The logic is elegant in theory: no signals, drivers yield naturally, traffic flows continuously. It works beautifully in a quiet market town. It does not work in a city of tens of millions of people and millions of cars -- and the infrastructure itself quietly admits this. When a roundabout is functioning as intended, you don't need traffic lights on it. The moment you start bolting signals onto a roundabout, you're essentially acknowledging that the original design has been overwhelmed.

Take the two major roundabouts near Mill Hill test centre, where I passed my test. Apex Corner and Mill Hill Circus — both traffic light controlled. Mill Hill Circus goes further: six "keep clear" boxes painted across the roundabout itself. Six. That's not a roundabout anymore, that's a signalised junction that happens to be circular. The keep clear boxes exist precisely because without them, the roundabout gridlocks. Drivers from one arm block the path of drivers from another, and the whole thing seizes up.

The deeper problem is that roundabouts depend entirely on every driver behaving correctly. In low-traffic environments, that's a reasonable assumption. In a dense urban area, it only takes one confused driver, one hesitation, one mistake -- and the whole system backs up. There's no mechanism to absorb the error. Traffic lights, for all their inefficiency, at least impose order. A roundabout just hopes for the best.

If nothing structurally changes, driving tests in the UK -- particularly in London -- are only going to get harder. The roads are more congested, the junctions more patched-together, and the margin for error on test shrinks accordingly. I got through it. But the system isn't getting any easier to navigate, for learners or anyone else.
    
        &lt;p&gt;Tags: &lt;a href="https://odux.com/tags/life"&gt;life&lt;/a&gt;, &lt;a href="https://odux.com/tags/thoughts"&gt;thoughts&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="life"/><category term="thoughts"/></entry><entry><title>Note on 16th March 2026</title><link href="https://odux.com/2026/Mar/16/got-new-laptop-workstation/#atom-tag" rel="alternate"/><published>2026-03-16T23:13:09+00:00</published><updated>2026-03-16T23:13:09+00:00</updated><id>https://odux.com/2026/Mar/16/got-new-laptop-workstation/#atom-tag</id><summary type="html">
    &lt;p&gt;On a brighter note: I also got a new work machine today. A 64GB RAM workstation, first thing to do -- setting up a proper Linux environment for future development work. Some things, at least, are still built with the developer in mind.&lt;/p&gt;

    &lt;p&gt;Tags: &lt;a href="https://odux.com/tags/thoughts"&gt;thoughts&lt;/a&gt;&lt;/p&gt;



</summary><category term="thoughts"/></entry><entry><title>Microsoft Copilot and the MCP Integration Experience — A Mess</title><link href="https://odux.com/2026/Mar/16/microsoft-copilot-and-the-mcp-integration-experience-a-mess/#atom-tag" rel="alternate"/><published>2026-03-16T23:08:56+00:00</published><updated>2026-03-16T23:08:56+00:00</updated><id>https://odux.com/2026/Mar/16/microsoft-copilot-and-the-mcp-integration-experience-a-mess/#atom-tag</id><summary type="html">
    When people talk about the best AI models right now, the conversation usually centres on Claude, ChatGPT, and Gemini -- with Grok increasingly earning a mention. But enterprise AI is a different landscape entirely. Inside large organisations with strict security and compliance requirements, the shortlist shrinks fast. Many firms effectively have one sanctioned option: Microsoft Copilot. It's deeply embedded in the Microsoft 365 ecosystem that most enterprises already run on, which makes it the path of least resistance for IT departments -- regardless of whether it's actually the best tool for the job.

Today I was working through the process of connecting our MCP server to Copilot. It did not go well.

The documentation is ambiguous to the point of being genuinely misleading. The UI is cluttered and poorly thought through. And the settings -- where do I even start. Here's a question that should have a simple answer: how many distinct Copilot platforms does Microsoft currently operate? The answer, as best as I can tell, is at least three. Microsoft 365 Copilot, Copilot Studio, and GitHub Copilot all exist as separate products with separate configurations, separate interfaces, and separate documentation -- and the lines between them are blurry enough that figuring out which one you're actually supposed to be working in is itself a non-trivial task. For a developer trying to do something as specific as MCP integration, this fragmentation is a genuine obstacle.

This is what Microsoft looks like right now from the inside -- a company sitting on an enormous pile of products that don't quite talk to each other, held together by inertia and enterprise lock-in rather than coherent design. The AI wrapper is new; the organisational chaos underneath it is not.
    
        &lt;p&gt;Tags: &lt;a href="https://odux.com/tags/programming"&gt;programming&lt;/a&gt;, &lt;a href="https://odux.com/tags/thoughts"&gt;thoughts&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="programming"/><category term="thoughts"/></entry><entry><title>Note on 25th February 2026</title><link href="https://odux.com/2026/Feb/25/self-healing-is-not-just-about-time/#atom-tag" rel="alternate"/><published>2026-02-25T23:17:35+00:00</published><updated>2026-02-25T23:17:35+00:00</updated><id>https://odux.com/2026/Feb/25/self-healing-is-not-just-about-time/#atom-tag</id><summary type="html">
    &lt;p&gt;I don’t believe healing is a function of time. The popular metaphor--“hold a dyed cup under running water and it will clear over time”--suggests that time itself is the cure. But time doesn’t heal us; it only changes the environment in which we keep living.&lt;/p&gt;
&lt;p&gt;We can live the same week 52 times a year and call it “time passing.” Or we can use time deliberately: read, learn, move our bodies, go into nature, meet people, challenge assumptions, and reflect - how we turn raw experience into meaning.&lt;/p&gt;
&lt;p&gt;To me, healing is not dilution. It’s digestion. It’s the work of breaking down what happened, extracting meaning, discarding what harms, and rebuilding a self I can respect.&lt;/p&gt;
&lt;p&gt;Here’s the uncomfortable question I have to face: if I’m still stained, is it because the water isn’t running--or because I’m not scrubbing?&lt;/p&gt;

    &lt;p&gt;Tags: &lt;a href="https://odux.com/tags/life"&gt;life&lt;/a&gt;, &lt;a href="https://odux.com/tags/thoughts"&gt;thoughts&lt;/a&gt;&lt;/p&gt;



</summary><category term="life"/><category term="thoughts"/></entry><entry><title>Note on 25th February 2026</title><link href="https://odux.com/2026/Feb/25/weird-day-today-fuck-it/#atom-tag" rel="alternate"/><published>2026-02-25T22:27:28+00:00</published><updated>2026-02-25T22:27:28+00:00</updated><id>https://odux.com/2026/Feb/25/weird-day-today-fuck-it/#atom-tag</id><summary type="html">
    &lt;p&gt;I found out that I quite enjoy going to the gym, it feels kinda homy to me, everytime when I feel angry, distressed, or sad, going to gym helps me to recover from my bad emotions.  And even if I am in a good mood, going to gym also helps me to feel better.&lt;/p&gt;
&lt;p&gt;Anyways, tonight I went to the gym because I am at a bad mood, and the reason why I am at a bad mood is because:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I did not sleep well as some random person called the wrong number, and called me 3 times this AM to wake me up!&lt;/li&gt;
&lt;li&gt;Not a very productive day at work, spent a lot of time scrolling and browsing, not much work done.&lt;/li&gt;
&lt;li&gt;My mom shares that she has just started buying stocks (she invested 100% into one random stock she knows nothing about and asked me to teach her how to make money on stock market while I am literally losing money as well.). I think her ignorance is gonna make her lose a lot of money -- she has a history of being scammed ~140k USD.&lt;/li&gt;
&lt;li&gt;One of my 2026's resolutions is to find a girlfriend this year, but I don't know if it is I am trying to hard or what, I constantly feel the relationship I am trying to build with other people is not stably building up, it feels more like walking on a icy uphill, one mistake can take you all the way back where it started, or even worse. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Anyways, hit the gym tonight, did leg pressing, feels good, gonna do a bit of work, let's get better and do it again tomorrow.&lt;/p&gt;

    &lt;p&gt;Tags: &lt;a href="https://odux.com/tags/life"&gt;life&lt;/a&gt;, &lt;a href="https://odux.com/tags/thoughts"&gt;thoughts&lt;/a&gt;&lt;/p&gt;



</summary><category term="life"/><category term="thoughts"/></entry><entry><title>Note on 18th February 2026</title><link href="https://odux.com/2026/Feb/18/how-is-the-future-gonna-look-like-for-ai/#atom-tag" rel="alternate"/><published>2026-02-18T23:45:54+00:00</published><updated>2026-02-18T23:45:54+00:00</updated><id>https://odux.com/2026/Feb/18/how-is-the-future-gonna-look-like-for-ai/#atom-tag</id><summary type="html">
    &lt;p&gt;And also recently I have been feeling that the world is so divided ... Many people that refuse to pay for all the AI services and stick to the free tiers, a huge portion of them still has the impression that AI is stupid, makes a lot of mistakes, can not do serious stuff, etc.
&lt;br/&gt;
But for programmers like us that heavily interacts with AIs, trying different models and providers, actively researching new frameworks... I have been dazzled to an extend that I feel for the future of internet, more things will be developed for AI than for humans, because AIs are just so much better at interacting with the WWW than humans, I believe in the very near future, the new generations, not only they will not know how to use a computer, also they may not even know how to use a phone (you may find this a bit exaggerating, I would like to explain in more depth but the space is too little for me to write it all, let's talk about it in a cafe...), as AI will do things for them, order food online, shopping, organizing trips...  If you know about the pace theory:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;six significant levels of pace and size in the working structure of a robust and adaptable civilization. From fast to slow the levels are:

Fashion/art
Commerce
Infrastructure
Governance
Culture
Nature
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;For the development of AI at the moment, the 'art' and commerce is spinning fast already, next, once we have the infra and governance to be laid out, the cyberpunk future (AI direction) is very near to us.&lt;/p&gt;

    &lt;p&gt;Tags: &lt;a href="https://odux.com/tags/AI"&gt;AI&lt;/a&gt;, &lt;a href="https://odux.com/tags/life"&gt;life&lt;/a&gt;, &lt;a href="https://odux.com/tags/thoughts"&gt;thoughts&lt;/a&gt;&lt;/p&gt;



</summary><category term="AI"/><category term="life"/><category term="thoughts"/></entry></feed>