Showing posts with label myself. Show all posts
Showing posts with label myself. Show all posts

Wednesday, 6 August 2025

Why Remote Work Just Works (for Me)

When I started working as a programmer, my days began with a ritual that felt entirely normal at the time: over an hour of inbound commuting into the city, and then another long outbound journey home. Time, energy, money — all drained in the process. It was the cost of doing business, or so I thought.

Then the pandemic hit, and everything changed. Practically overnight, that daily routine vanished. The entire company transitioned to remote work in just a few days. Luckily, we had already laid some of the groundwork — tools, systems, and workflows that supported remote access. All we had to do was scale up.

And it worked. Customers experienced very little disruption, and internally, we barely missed a beat.

Now, years later, we’re still working remotely. And — here’s the thing — it still works.

Not just for the company, but for me. Personally. Deeply. In ways I didn’t expect.

  

More Time, More Focus, Less Waste

The first and most obvious benefit? I got my time back. No more two-hour round trips, no more standing on packed trains or sitting in traffic. That reclaimed time went straight back into my life — and into my work.

I’m more productive now. I’m more focused. I’m in control of my time, my energy, my attention. Sure, life shows up — a doorbell, a neighbour, or an unexpected distraction — but the tradeoff is still massively in my favour. I’ve spent time building out a dedicated workspace at home, optimized for deep concentration and comfort. It’s not a makeshift setup at the kitchen table. It’s mine, and it’s built for what I do.

With that setup, and without the daily grind of commuting, I find I spend more time at my desk, more time on task, and the quality of that time is better. It's not just about more hours; it's about more effective hours. My brain arrives to work fresh instead of depleted.

 

The Return-to-Office Push: A Puzzle

Despite all of this, there’s a message echoing out there in the corporate world: return to the office. The tone ranges from gentle encouragement to stern mandates. But I keep asking myself — why?

Why bring people back into expensive office buildings? Why shoulder the cost of maintaining spaces built for humans — with their endless needs for coffee, heating, lighting, safety drills, and ergonomic chairs — when the alternative is already working?

If a company needs physical infrastructure, great. Build a tech hub. Keep your servers somewhere secure, your dev environments humming. Machines don’t need water coolers or office parties. But humans — we’ve figured out how to work remotely, and for many of us, it’s been a genuine upgrade.


The Uncomfortable Truths?

Maybe not everyone shares this experience. Maybe not every job translates well to remote work. Maybe some people don’t have a dedicated space at home, or they’re working at the kitchen counter while the family or flatmates buzz around. Maybe their productivity really has dropped.

And maybe, just maybe, some of the voices calling us back to the office are those for whom remote work didn’t feel good — or didn’t look productive from their side of the camera. Managers who are used to seeing bums on seats might feel unease when they can’t “see” work happening.

I get it. It’s hard to manage outcomes instead of hours. It’s hard to trust that people are working when you can’t walk by their desk. But is that really a reason to ignore all the gains?

  

What Does the Data Say?

I’d love to dive into studies on this — real data about productivity in remote vs. office environments. But I want more than just headline numbers. I want to know:

  • What kind of work were people doing?

  • Did they have a dedicated workspace at home?

  • Were they experienced at remote work, or thrust into it overnight?

Because I believe my personal productivity boost comes not just from being home, but from investing in a space that lets me focus, and in habits that support remote productivity. Without that, maybe the experience would be different.

 

It’s Not One-Size-Fits-All

This isn’t a blanket statement that everyone should work remotely, or that every company should shut its offices. But it is a reminder that — for many of us — the shift to remote wasn’t a compromise. It was an evolution.

We cut out inefficiencies, reduced stress, and created more sustainable workdays. And that’s not nothing.

So, when I hear the call to return to the office, I pause. Not out of resistance, but out of honest curiosity: What are we returning for? Is it about culture? Control? Collaboration?

Because if it’s about productivity — well, for some of us, remote work already won that argument.

 

My Conclusion

Remote work isn’t perfect. But it’s real, and it’s working. At least for me — and I suspect for many others too.

Maybe it’s time to stop viewing remote work as a temporary measure or a compromise, and start treating it as what it has proven to be: a legitimate, powerful, and in many cases superior way to work.

Let’s be thoughtful. Let’s look at the data. Let’s listen to the wide variety of experiences out there.

But let’s not forget: commuting two hours a day wasn’t normal. It was just what we got used to.


 

Friday, 4 July 2025

Project Blackbird Cancellation

This is a very hard post for me to write, not only am I personally and quite emotionally involved, but I am also still under a strict NDA and as such I can only point you to search the internet for many of the other leaks on the topic.

But finally I can perhaps explain why the number of blog posts I have been making has dried up; I often said it was because I was busy.

On January 2nd 2019 I walked into my first day of development on Project Blackbird as part of the core engine tech team with my employer The Multiplayer Group and as a founding member of the project with Zenimax Online.

The project as it stood the day it was cancelled was, is, stunning to look at.  Alex Tardiff lead the standing up of a brand new renderer from the ground up, a brand new engine was also stood up along side this and the two interoperated superbly.

Early in the development we did a lot of research, selecting technology, containers and performance considerations; we stood up a project with a handful of people and scaled it sucessfully to hundreds.  Standing up a new engine, a new renderer and the complete tooling stack for it is no mean feat.   Think an almost skunkworks kind of deal, with just a dozen members standing up something like Unreal 4; then scaling it out to something which in my opinion visually looked better than Unreal 5, with all the tooling, all the content creation to roll out experience after experience coming together nicely... Within just over six and a half years!

The experience of playing was incredible, the mechanics in the game unique, the world in which the player experienced the game mezmerising.

The team was amazing, sure we had ups and downs, but we were one under the Blackbird banner and until 4:03pm Wednesday 2nd July 2025 we believed there would be a cornerstone gameplay experience delivered on PC, XBox and Playstation 5.... Alas, no more.

As you may understand I am extremely upset by these events, finding constant moments of almost grief, automated message reminders still appearing from headless accounts, sprint goals all planned out but no actions to make, I am bereft of purpose, I am emotional, I was a BLACKBIRD.


https://www.trueachievements.com/news/canceled-xbox-mmo-project-blackbird


https://insider-gaming.com/phil-spencer-loved-zenimaxs-new-mmorpg-but-it-was-canceled-anyway/


https://www.eurogamer.net/zenimax-online-studios-head-matt-firor-announces-departure-following-widespread-layoffs-and-the-cancellation-of-in-development-mmo

 

https://www.pcgamer.com/gaming-industry/a-new-mmo-in-development-at-elder-scrolls-online-studio-zenimax-has-been-cancelled-as-microsoft-puts-thousands-more-people-out-of-work/

 


Monday, 23 October 2023

Job Interview : switch(char) again! Twenty years on!

I've spoken about some of the strange interviews I've enjoyed over the years; notable engineering highlights were having test driven development spooned to me, when I simply didn't know the particular syntax they were demanding, or having StringBuilder suggested for a C# task where they actually needed to cross-core thread their problem, or pointing out that the CI solution being described would lead to an alien environment of folks being paralysed by fear of red flags; only to witness their development floor being paralysed by exactly those issues as I walked out the door.

Today however, I'm going to go way back and talk about one of the very early development interviews I had; this maybe like the third interview I ever had after graduating, it was with a rail rolling stock company, in a very bright and sunny room with three guys who seemed to know their entire universe was correct and they'd take no new information into their sphere of understanding.

I share this one as a friend of mine was in touch over the weekend, he had an interview, and strangely he had the exact same conversation I had... THE EXACT CONVERSATION, twenty something years later.

Let us start by sharing some perfectly valid C++ code:

bool validate(const char& value)
{
switch (value)
{
case 0: return true;
case 'x': return true;
default: return false;
}
return false;
}
int main()
{
const bool isValidOne{ validate('a') };
const bool isValidTwo{ validate('x') };
const bool isValidMe{ validate(12) };
}

Read this code, we should see an output (if we output the bools) of "false", "true" and "false"... I think we can all agree.  This is perfectly valid C++.

It isn't very clean nor pretty, we're relying on the compiler standard decaying char to int and vice versa; which is not very nice and I wish compilers would complain here, that we're comparing int to char in the first case and we're converting the integer 12 to char, I think it should really strong type this.

But that is not the point, the point is that both in my friends case and mine all those years ago the interviewers got really uppity about that "switch" statement.  They insisted that you can not "switch" on a character type...

Just flat insisted.

I remember in my experience they had me write up what they wanted on a blackboard, with chalk, and they wanted me to go through the code line by line; I wrote more or less the above, they insisted they had a character not a byte (uint8_t: though there was no standard for this at the time) and then they went off on this tangent amongst themselves about the value of the if-elseif-else stanza's they insisted would work over my solution above.

Now I was talking to these guys in the early 00's, my friend however was talking to them in 2023.  He jumped on this with the point of "well if the character is known at compile time, yes then constexpr maybe of use" and he showed them:

if constexpr(foo) and if consteval(bar) examples.

He described their faces screwing up and two of the chaps he was talking to staring at each other before making subtle notes on their paper.

It was very clear at this point that the CTO performing the interview was not keeping his knowledge up to date, the group seemed to cluster onto the idea of just maintaining what they have, stagnation like this in our joint experience can be problematic.  Both team morale and high turn over of engineers always happens when things stagnate.

I have to say in my interview I actually sat it out from beginning to end and just knew I was not interested in the role; and I did not hear from them again.

My friend however, he was genuinely concerned he'd done a good interview and they'd be offering him a role, they kept him talking for over an hour and a half!

He's a late 40's engineer of 25+ years experience, just like me; the three chaps interviewing him, including the CTO, were ten or more years his junior, it seemed they were looking to back up their team with an older head to lend legitimacy to things; and they had lost two original engineers of their project to literal retirement without replacing them.

He saw the issues and he thanked them for his time and left, with a negative to whether he would be interested in going further.  This stunned them.

It has to be said, so many interviewers forget that though they are interviewing you, you are also interviewing them like most all human interaction it is a two way street and it's crucially important to remember that in a job interview.  We spent a significant amount of our time at work, if you are not comfortable there or feel you are going to be acting out a role instead of filling one and making it your own.

Monday, 7 August 2023

Amber Valley Planning aren't very good

I think I've come to the conclusion Amber Valley Planning Department are either incompetents' or simply idiots.  Having had to interact with them myself and now in relation to a nearby development, they've demonstrated incompetance which can't easily be explained... Let me explain.

You see a development was proposed, ironically the owners only sought planning permission after the fact, fine whatever get on with it...

So the ground-works and building are complete?... Yes.

The official visited the site?... Yes, there was a woman with a clipboard.

Does the block plan represent the reality on the ground?... No, not even close.

Any school child with a ruler and pencil would be able to very quickly look at two reference points on the ground, extrapolate two lines then compare them to the building work which took place.  They don't match, not even close.

Further more the building work significantly changed the levels of the area in question.  This is not mentioned on the planning permission request at all.

And the newly raised area is several hundred tonnes being held back by concrete posts... No no structural engineering posts, we're talking 4 inch garden posts, with postcrete and concrete weather board.

In the July & August ran we've had they're already bowing ominously.

And I find these two points extremely curious, for you see we were the ire of this department having skimmed 2 inches of soil and spread road stone we had to account for a "Change of level"... yet someone else can dump several hundred weight and build up a new embankment to around 6 feel of altitude?

We presented drawing plans from overhead shots, real shots from Google Earth, showing the true scale and location; it being a photograph after all.  We had to go back and be exacting, that was the order "be exacting" in the block out diagram shown.... Yet someone else can be approximately six feet off level of reality in two axis?

When this goes over, and it is likely to, could it be a danger to life?  Yep.  Will the planning department comment?  Will they heck as like, they just tick their box and waltz off, it is almost criminal in this case.

Either the planning are incompetents', and I strongly suggest they explain their decision; oh but wait, one can not challenge them, only the applicant can appeal?!?
I must therefore air on the side of caution and suggest they're merely idiots, bureaucratic machination maniacs of the paid civil servant ilk just there to tick the boxes and dot the lowercase J's, since the service... Clearly the service is broken.

Want to know the major comment about the works carried out?  That they must ensure the hedge remain for at least 5 years.  This is a hedge in which (at least further up) I found bottles tangled in the roots with a date of 1914 on them, so this is already very much an older hedge... so a) 5 years makes no sense, b) you ignored they changed the level, c) the works do not match the plans provided - and I told you of this! and finally d) they're already subsiding, dangerously so!

Incompetence demonstrated, well done Amber Valley Planning Department, well done.


I am extremely glad my hard earned council tax money no-longer goes to them, indeed I've spoken to my local duty planner, they were highly available very interested in my requirements and helped me out immensely; Amber Valley, not so much.

Friday, 14 July 2023

Publishing Tribulations

Okay so I will start here...


Now I have that out of my system, what am I talking about?  I am talking about English.

As you may notice I am English, I speak English, I write in English I am fluent in English.

I recently sent a piece literature for publishing, I've self published before, this time it was going to a publisher.... Their reply:

Sorry to hear you are unable to response in person for your trities will not meet our publishing guideline.  Please check and correct spelling, punctuation and parographing, formatting and font.

Very seriously this was the reply I was sent.

I have withdrawn my manuscript for consideration with them, sending it to penguin... No no the publisher, just a penguin, it'll be able to give me a more coherent reply.

Saturday, 18 February 2023

Programming the Thought Triangle

As a programmer I spend a lot of time with my mind on the problem space I'm tackling, my hands are on the keyboard, my eyes are on the screen and this trinity is my creative process.


If you start to talk to me from a room away, if you come to my door and start to wave at me to get my attention, if you keep calling my name, if you keep calling my phone or sending me texts... Do you know what you are doing?

That's right, you are totally derailing my thought process and creative flow.

You, the interrupter are pretty much responsible for costing me a complete mental problem space unload and a complete mental space reload.

That is very stressful for a programmer, it's a huge amount of mental gymnastics, which is tiring, difficult and above all unnecessary.

If you have a child at home who shows any interest in programming, and they're busy doing it, or "playing" on the computer, but there's no actual game showing, just let them, leave them be.

You don't need to train them to program a computer, you need to train yourself to not interrupt them, that screen to fingers to thought triangle needs to be left where it is they need to be left alone.

Social Media!!!  Now, I have to add a prickle problem into this, you maybe training yourself to leave a creative alone and leave them in their screen to fingers to brain triangle of creativity.  Now, is the same true of someone deep into social media?

Well, sort of, the key different I find is creativity, are they being creative in their little bubble?  Are they learning?  There are clear flagging indicators of a problem, where you do have to step in.

Communication?!?!  Even more confusing is where we come to the screen to fingers to brain communication items, I can certainly relate to being deep into typing an e-mail and someone is saying my name over and over; that person does not respect that I'm actually doing something, they do not lend any value to the fact I am trying to write an email.  Immediately I point out that I am in the midst of a creative effort, that person therefore needs to train themselves to not interrupt.  They're being rude and disrespectful.

However, is the same creative tag so easily applied to having a chat?  To having a visual chat with someone over WhatsApp for instance, no.   I don't think it can be, when two people are talking face to face you can interject; you can say excuse me I just need to tell you.... and speak, this is completely normal interruption.

The distinction interrupting someone on WhatsApp talking to a friend is simple, it's a leisure, it's not live and death.

Until it is life and death!  I had this argued with me, that you can't interrupt someone if it's life and death, and I agree.  But you know what, if you're telling someone something on the "live and death" scale of humanity over WhatsApp... Get a life!

In short, I think I keep meeting with rude, self centered, selfish people, who lack empathy and don't value that when I'm sat at my computer; I am actually doing something.  And I work at my computer, and I work at writing computer games, so you can not assume because there's a game on the screen I'm not busy.

However, if you see that 2 foot fixed gaze, my fingers flying and I am clearly engaged with the work a head of me... well it's pretty safe to say you should GO AWAY!

Tuesday, 7 February 2023

The Old Lady and the Server

No, this isn't some strange nursery rhym (though I wonder if it could be) no this is a story of a literal old lady whom I believe was trying to collect as many notches on her bed post as possible...

Let's start at the beginning, I lived in a house I rented, I had a spare bedroom and my younger brother broke up with his long term girlfriend.  He came to live with me, quite unsuccessfully, as his life was very chaotic, and indeed in the end I threw him out in the end.

But in the nine months he inflicted himself upon me he had a few lovers through his door.  One of them was said "old lady".

I say old she was maybe early to mid-forties, with children, but that was old, my brother was nineteen... heck I was only twenty two.

He was going through a series of different jobs at the time, and somehow he met this woman, who promised him a bunch of things; like a car, and MR2 if I call correctly.  Which he went on about constantly.

These rewards never appeared, but one day she did, one morning to be precise, I came down into my own kitchen and there was this woman in my non-smoking house smoking.  If looks could have killed she would have murdered me when I asked her to go outside to smoke.  Until she realised this was my house; so the stories clearly went both ways between them and my brother.

"Where does server come into this xel?"

Well, when my brother broke things off with her she continued to communicate with me, I'm not even sure how she knew my contact details to be honest, I think she had a nominal business address or something, in fact thinking back now, I think one of the mysterious things she promised my brother as she bedded him was to get me a job; despite my not asking.

But it seems she was looking for a NOC engineer.

Indeed, I spoke to her briefly where she was talking to me about setting up BSD servers, "My servers run BSD".  She never explained what her servers were doing (I suspected porn).

She did however offer me a job, at £4,000 a month.  That's £48,000 a year.  At the time I was in a £21,500 job doing network maintenance (which I hated, and have commented about in earlier posts).

So her offer was interesting, I took a weekend to expose myself to BSD.  I'd not really used it before, just early versions of Linux, ScoUnix and Windows.  BSD was interesting, different, but nothing I had experience with.  She kept talking about her current NOC guy.

Either way, it came to nothing, and I think that's because I never came...

Sunday, 5 February 2023

Physics Debugger in my Home Game Engine

It may not look much, but this is a huge step forward in my home game engine development.  This is a physics visualization tool I've written, to show me the shapes I register with my physics simulation, it communicates with the game client one frame behind the client, and lets me zoom a camera around the world to see whether shapes line up and to take a snapshot of the physics/collisions being resolved this frame.

The whole physics system is pretty much a bag of spatial checks at the moment, for instance I ray cast from a given point to the four corners of a cube to test whether the point is within, that's pretty compute-intensive.

But at least now I can see there is only one such cube (the purple/pink) one in the scene.

I can also clearly see the ground mesh (the yellow/red triangles).

Infinity is just the blue.


Also, this rendering of the physics world is using yet another renderer I've put together, again integrating ImGui as my defacto GUI in such circumstances.

I need to do a lot of work on this, but it's just a fun project.

And recently having a bit of run, something you can tinker with, something which just makes you think and relax is perhaps key to improving ones skills.

Before I started this whole home game engine (despite working on games at work) I had no idea how to put a renderer together; even as badly as I have; and certainly no idea about a physics engine, now I have the rough knowledge of both.

My home project backing up my experience at work, and also the home project lets me try things I might not otherwise do at work, like totally break things... Oh no wait, I break things all the time....

Wednesday, 2 November 2022

What did Don do?

First things first, we're going back to the latter half of the 90's here; and I've mentioned Don before in one of my older posts, skidding into hero mode.

Don was a programmer, he was kept in a little plexiglass bubble of his own and spent all day in what looked like vi (certainly a terminal based text environment) writing what I think was C for the NCR minicomputer running Sco Unix I mentioned before.

Whether this is actually true, I don't really know, for he spent a lot of time sitting with his hands crossed over his head waiting; at the time I didn't know what he was waiting for, at home I had a Pentium 100Mhz rocking 16mb of RAM and running Borland Turbo C++ for DOS I had a lovely little progress window showing me it was compiling; I had not met the glory of GNU yet.

So Don would stare at a massive (like 19 inch) monitor, he had a Wyse VT100 next to him too, and he would not stare at that very often.  He would also make copious notes on paper and seemed to program very deliberately, looking and reading through the information at hand.

He did this, almost without interacting with anyone else for the whole year I worked with him; looking back on it I wished I had been more proactive and just asked him more about it, as he was clearly programming C around a Unix system, which is a) uber cool and b) uber cool.

It always struck me quite how long he thought about and maybe designed anything before acting.  You could say this was because he was mulling and considering the problem, he was being a good engineer, with forethought and wanted to get things right?

No, see I think he was really just in fear of how long the compile would take...

Just like me with the project I'm working on twenty five years later.

Friday, 5 August 2022

I hate FizzBuzz and Will Analyse anyone who uses it

One FizzBuzz Interview so far.... News flash... The moment I am asked to write FizzBuzz during a technical test I intentionally stop and ask the questions from there on out.  I've done this a couple of times.  And you know what I learned... I learned a whole lot more about the interviewer and their processed than they found out about me.

Let me take you back to a technical interview I had about five years ago.

I drive up to the building, it is way out in the sticks; just about still in my home county, but so obscure it's in a part I have never ever been in.

I pull up and the building is like a box of black glass, no character, no soul, just a box.  The non-native tree species planted around it to discourage birds actually using the tree's and the austere grass puts me off.

Things don't get any better, for I walk through the door and there's no secretary, no desk, nothing... The lights aren't even on; this doesn't bode well.  I look around for a buzzer, a phone even a limp notice of what to do.  When a door opens and a man approaches offering me a hand to shake.  He leads me to a similarly deserted corridor with a chair in it and I'm left to my devices once again.

I read some inane notice about some award some member of the staff had received (this is important later in the interview) and I read the fire evacuation notice.  It's quiet, quiet and silent.  There's one door nearby with a few people within and another which is a closed office piled with stacks of desks..... Empty corridors - which would be dev spaces, massive rooms with a few people in them, no secretary and piles of desks?  What have I walked into?

About ten minutes later I'm ushered into this room, I've brought my CV a few piece of detail about me and some references to my technical projects at home; as well as references to some of the discussions I have on these very pages and my github.  You know actual technical things, which you can see me achieving.

I can't talk about my current work with them... Heck I can't talk to you guys about my work now.  But I do it, and I pay a mortgage; that's all the proof I can proffer.

Anyway, I seat myself and a lady explains their technical lead will come and perform the technical test, he enters a moment later with a massively overpowered gaming laptop.  I hate gaming laptops.

I much prefer a simple sleak laptop, a decent screen, nice keyboard and plenty of battery life; and I do my work on a remote machine via SSH or whatever machinations you wish.  I do not generally work on my laptop, it's a portal onto other more powerful machines which are tethered, and this way I can go take my laptop with me anywhere and get amazing performance from it, as I'm only interested in a bit of internet, RAM and then remoting into other services.

Anyway, he plonks this behemoth down and proceeds to tell me about test driven development... TDD.

I HATE TDD.

Now, I know test have a place, heck I really like doctest, including tests into code you've written, to ensure it is within specification is perfect, and validates your progress.

My hatred comes from writing tests up front, I find this backwards logic, and I don't think you could ever persuade me otherwise.  Define the scope of your input, validate it in your code (I often assert up front when data is unexpected or malformed, or at the very least bail early) and then you run your code, and then TEST the result.  I do not believe you should write a test and then further write the code to fulfill that test.

You will miss something, you will be thinking about the test as the solution, rather than the solution itself.

If anything writing the test and then producing the code to meet that test may very well be called TDD today, but when I was a lad it was called Prototyping.  And though I'm sure we can all agree prototyping is best done in a language different to your final product, it is not really prototyping when you are not producing the product, you're producing a test.

I find it wasteful of time, and often ignores enough scope, for instance I've seen a fair few hundred thousand up front tests written and then the code to meet them in my time, never have I seen a validation of the input data, the input has generally been hard set into the test.  That's not as wise a test-scope of ensuring the result after the fact.

(This does not mean test suits after the fact are the best, I just think they're the best for my style; not least as they are opt-in, for those times you are in a swing, and easy to add later).

So, TDD... Why is he telling me about TDD?

He does, he explains they have a method and that method is structured, he does not offer me any test framework specifically, instead he opens notepad and asked me to write FizzBuzz.

And the interview stops there; I don't think the guy realised it, but I stopped being interviewed at that point, I was not going to accept their job even if offered, but I wanted to see where this lad (and he was young) was going with his thinking.

This half empty hulking building and they're trying to hire engineers, and he is going on about TDD but FizzBuzz?

So I play total dumb, I simply start to write "int main"... And he surprises me.

"No No, start with the test".

Ohkakkkakay....

I have NO idea what test suites he has installed, I don't use G-Test or Boost-Test, I use doctest.  So I write a SCENARIO; he blinks and just takes the laptop off of me and starts to open some other window... I didn't know he would allow me to open some other window, this isn't my machine, I don't know what he has installed.

This sort of sums up TDD to me, the tools aren't easily defined.

Anyway, twenty minutes later and I just about have it Buzzing on 5's and I'm not very interested, I've come to a conclusion.

He isn't impressed; rightly so, but he has no idea he's just been investigated by an older and more cynical mind than his.

He leaves and no less than three people come into continue the conversation, and boy do they, they talk to me for a solid 120 minutes; I timed it... I was so bored.  But I engaged a little when they talked about their award winning technology.

I recall the poster for the lady who had won this award and mention her, by name.

"What, how do you, who has been talking to you?"

This is very strange, "no" I assure them "no-one, I saw the poster on the notice board".  One of the two girls flanking the chap in the middle here makes a note.

They talk to me about the company a bit more, they talk about their re-shuffling engineering and wanting to press their position forward to a virtual machine the customer hosts on hardware; previously they had been providing a dedicated box.

I'm terminally not interested in this boring black blocky building which now perfectly reflects the boring blocky people inside.

And I give up, I lean forward, elbows on the table, and I gather the copies of my CV from the hands of the three people and I say:

"Look, I've spoken with your technical lead, and I'm scared to my core of your processes, I don't like what I've heard, it seems you're struggling to recruit and there are reasons for this you will have to identify yourselves; I don't think I can help you"

They are scowling a little here, I'm sure they're far more used to candidates who want the job.

"Indeed, I think somewhere you have a beige room with ranks of screens and engineers in stuff suits not talking with a great board or wiki with all the failing builds traffic lit from your little test driven development board...."

At this point the lady on the left looks at the guy in the middle, who has a little switch to his eye.

"And such a stifling, control freak, desperate development environment is not one I wish to be part of"

They thank me, and I thank them sincerely.  And I leave.

As I come out of the building the sun has come around, the black glass face of the building is now not so black, instead I can see inside, there are three long benches of PC's all facing a pair of chaps at the front sporting bluetooth ear phones in one ear.  Above their heads is a large TV screen with a list of running continuous integration tasks and each has a traffic light.  As I watch one goes red, one of the two larger men touches the headset at his ear and an engineer on one of the benches glances up and starts to scrabble about on their machine.

It is a sweat shop.  I was not only right, but so happy I'm driving off.

I felt like going and knocking on the glass and cooing at them "Come, follow me, be free, be free".

But instead I just drove home.




Prior me: Just coming into edit this before it goes live on Friday, guess what I'm watching... 


And I disagree with the approach of analysing FizzBuzz; analyse the interviewer.

Wednesday, 2 February 2022

Project Preliminary Fail

I bought some 12V LED filament bulbs for a preliminary delve into a project I'm thinking about building... Only...

That ain't no filament.

Sunday, 2 January 2022

My first PC from Watford Electronics (1994)

The year was 1994, I had just learned to program in Pascal, I was doing quite well in my A-Level computing course and my parents bought my brother and I a PC... With "Support".

Yes, they forked out quite a whack of cash just months before the Pentium processor came out to buy us a machine powered by an Intel 80486SX2, which ran at 50 megahertz.  It had 4 megabytes of RAM and a 200 megabyte hard drive, as well as a HDD floppy drive!  I was in love with this thing, and I'm a little bit sad when I think about it's fate later on.

We bought this beast from Watford Electronics, it included at home support for a flat fee, I'm pretty sure Watford Electronics never expected this to be an issue, but it was.

We came to use this machine, daily, without really knowing much about it at the time, but a 50Mhz machine was blisteringly fast to us, it had an S3 Trio VGA graphics card in it too and came with WE's own ISA expansion card to add a custom CD-ROM drive, which they touted as being "Dual Speed"... aka slow or very slow.

This was all fine until 1995... Yes a whole year passed.

The few friends with PC's at home had Escom Pentium based machines, having waited to ask their most affluent parents for them that Christmas gone by, and so it was my brother and I played catch up.

Sure, I had all the beans in the bag with Turbo Pascal 7.0 for DOS and my learning more and more about computing, but games were where it was at.

The first title to show some issues was CivII, which I got for my birthday from a couple of friends.  I loaded it up and it stuttered terribly on this machine; I know now that the bespoke card to link to the bus was the blame, it had no buffering and relied on the drive's throughput and this was too slow for the game.  So despite our machine appearing on paper to be more than enough to play, it struggled terribly.

So much so that my mother decided to pack the whole thing up, including my game, and send it to Watford Electronics... I'm not sure what they did with the machine, but it arrived back behaving exactly the same way as it had before, it was sub par by design, they couldn't admit that, but by damn it they had described this machine as being Dual speed and fast enough, so it was by damn it going to be.

And it was such that on a festering hot day in 1995 an engineer arrived, a suited, briefcase carrying engineer... from Watford Electronics... Under the auspices of their repair warranty service arrived to see... What?

Well he saw two kids playing games.  I think he expected an office or a school.

But no two kids and their sweaty sickly close bedroom, and he set about looking at the issues, and sure enough he agreed with us, grudgingly, but he agreed.  And set about trying to sort things out.

He reinstalled the machine, no dice, it was just as slow doing the same tasks with the software reinstalled.

He fettled about with the settings; which I had already done; resulting in things getting even slower.

And in desperation of the perspiration he reached into his bag and pulled out a selection of options, the first was a sparkling Intel Pentium Overdrive chip, which would have overlain the socket 7 and boosted us immensely.  I knew this was pretty damn expensive.  But alas his hand waved over this and selected a 486 DX2-66Mhz, he set up the motherboard and rebooted.

Telling me something I'd not understood until this point... "The SX Chip you have doesn't do floating point maths, it's all integer based".  A slight exaggeration, but about right, the SX was a DX which had failed certain tests, Intel had cut certain traces and so they sold the lower spec chip rather than writing off the failed DX in their ledger.

The DX2 however, only really made a difference in Doom... Which we played already, and it didn't make that much of a difference with the 66mhz to 50mhz jump being so small.

And so it was he reached once more to a different flap in his bag and he pulled out a tray - yes a whole tray - of 486DX4-100 chips... 100Mhz!...

Things ran like a dream then, even with his busting of my mobo jumper settings.

I pushed that chip to 114mhz on very rudimentary air cooling, and it worked well into the 2000's.  I loved that chip, and we got it by bemoaning the system.

The system itself, with the proprietary Watford stuff in it eventually broke down, I had gotten into tower cases too, so the large desktop case of mostly air was left, the hard drive failed, and the machine was itself lost in body but never in spirit.

That 486DX4-100 chip stayed with me a long while, I had it until at least 2003, and in use.

Wednesday, 1 December 2021

Ghosts.... From the BBC (A Fan Theory)

 Talking about Ghosts.... Sorry, I mean... 


I've gotten quite into this, watching them all over a couple of times, and I've come to a bit of a fan theory; which I'd love to think is true... Alison can seem to only see Ghosts whom have been murdered...

That's my whole theory, here's the thinking.

Mary - Burned at the Stake
Thomas - Shot in a duel
Fanny - Thrown from a window
Pat - Shot with an arrow
Humphrey - Beheaded by accident, but whilst hiding from being wrongly accused of plotting against Queen Elizabeth I.

Then secondary ghosts, she see's:

Luftwaffe pilots - you could say were murdered, killed in action, they're still "mid-flight".
Civil War (Round Head) - appears to have been skewered by a pike.
Hitch-Hiker - Literally says she was murdered.
60's Architect - looked like he had been stabbed in the head as he waved from the window.

And the whole basement plague pit are all found to have been killed by Mick bringing the plague back with him.

So, murder or killed, each has a known perpetrator of their death.

This leaves a few holes in my theory, which I would like to plug...

Kitty - It does seem in Series 3, Episode 5, we have the lead up to her adoptive sister murdering her... We're yet to hear the full truth, but it seems to be the way that is played out.

The Captain - Well, he's a soldier, stationed at the hall we can't rule out a bomb or accident taking his life, he certainly was willing to sacrifice himself by throwing himself over an explosive device; and his love interest subordinate had been posted to the middle east, so there's something there to be explored.

Assuming the above this only leaves us Robin and Julian... Robin lived in pre-history, the stone age, a brutal time, his death may very well have been at the hands of another, be it animal or human; it does not seem likely with his describing wolves removing faces and eyes, and keeping his fathers skin, that he met his maker from his fur bed.

Julian is perhaps the biggest stretch for my theory, as we know a lot about his death, "the perfect death, booze, bit of rumpy pumpy and out".

But it wasn't alone, clearly the woman with whom me was in congress had a literally deadly effect on him, and he found the whole episode to be the most traumatic event in his life...

So there's my theory, the persons who remain are those who meet their end at the hands, or by cause, of another; and they can't resolve it.

The only two I can't answer this for are Annie the maid and the Ghost Doctor.... We shall see.

Sunday, 1 August 2021

My Home Game Engine - Motion Decay (Physics) Bug

A few of you may have noted I've been writing my own graphics engine at home, this has fast become my own home game engine; which is more or less just a play ground for me play about with.

And over the weekend I've started to flesh out the physics engine, beginning with a physically reactive camera.  I want to make this thing tilt and shake and move like it's organic, not on the end of your keyboard or mouse.

The motif is going well.

I designed a head for many edge cases I expected, one of them being floating point in accuracy and so I built two things into the movement, first a dead-zone, so zero isn't the ONLY value which doesn't move the camera, instead an area of 0.0004 around the camera forms a null - don't move - zone for all my motion calculations.

And the second was the force of friction or wind resistance, this is just called "Decay" in my engine, you decay from moving to  no longer moving.  Because wind, water or surface friction are going to come into play at different times and from different directions on each object.

Anyway, do work out the motion which needs applying to any object I build a vector of motion actions, these themselves are stored in a set of efficient constexpr static arrays per object type; for not I have so few object types this is fine, it leads to faster code (one day, if I have more than ten moving object types I may need to revisit this.

Alas, this smartness immediately bit me in the arse... And I just spent nearly half an hour pawing over the wrong piece of code to figure out why when switching to an object known to be at rest (0, 0, 0) with no actions on it... it'd slowly jiggle backwards at a very slow rate.

I checked my maths, my direction vectors, my initialization of the actual speed of the object, everything checked out.  I made sure I was giving no inputs, so I wasn't landing in the accelerate or decelerate motion actions.

So I was properly confused, I took a moment and I re-read the code I'd done yesterday (oh the difference a day makes) and suddenly I realized I had two kinds of decay... if you're moving forward you slow down... and if you're moving backwards you also slow down... both heading to zero, or at least the 0.0004 null zone.

Other objects were not moving, just this one particular type... and having a quick squizz, sure enough the acceleration and deceleration decay were BOTH being applied, even at rest this object would jump to a speed and start to decay, this would then swing it below -0.0004 in the null zone and the deceleration decay would kick in... and the deceleration was MORE than the acceleration so then the object was trying to decelerate a little but more each third frame... zero to backwards to null zone to backwards to nullzone... on and on, tiny increments.

This was a flat out bug, the decay should have only been applied to make the object come to, but not beyond the nullzone.

However, I was still perplexed how the forward decay was being applied, sure enough it is, in the above call to "GetMotionActions" we can see it's both ForwardSpeedDecay and BackwardSpeedDecay are "valid" motion actions for objects receiving no input.

And they'd been doing this all the time, every frame... the specialty of this one particular object?  Just the numbers, the profile for motion, specifically the braking, was a larger number taking it beyond nullzone.  And this is multipled by delta time for the frame... all following frames are small, short, but the first frame?... or a frame after a break point... HUGE....

In short I made a bunch of mistakes, but I learned, and I enjoyed myself.  This is perhaps the key thing when trying something new.

I also have a healthy appreciation for just taking a physics engine off of the shelf having done some of this ground work - and I'm literally just playing.

Wednesday, 28 July 2021

Comprehensive Computing (1990's and my meeting the Acorn A3000)

When I went to comprehensive they had BBC Micro's... I had an Atari ST at home... the school then upgraded to Acorn A3000's.  Now the ST, Acorn and IBM PC used very nearly the exact same floppy format (there was one byte difference between the ST and the PC basically, and nothing with the Acorn Archimedes series)....

The teachers, totally no idea how to use these machines.  Sure they could run applications in pre-packaged orders, but they never delved into them.  The Acorn had a whole host of built-in software, the OS itself came with a RAM disk, one teacher once saw me cache all my work on a 1MB RAM disk and work hundreds of times faster than anyone else in the lab, but they had NO idea how I did it; and didn't want me to explain it to them.

So they often found me in the lab... despite it being locked...

You could get in via two routes, one was to go in through the neighbouring classrooms air vent between the two back-to-back store cupboards... One day I found the grill had been screwed back in place and sealed, which put a stop to that... And no matter how often I asked teachers would NOT let us into the lab without themselves being present, and quite simply they didn't have the will to help encourage learning, it was a dangerous prescient for them in the 90's to admit that there were those with a natural talent in a field the staff had no interest nor experience in.

So what next?  Well we had to climb out the window, shimmy along the ledge and climb back in... Usually only one person did this and then unlocked the door for the others, but it was a bit hairy on windy winter days.

 But literally, the school didn't want the kids to use the computers, either scared we'd break them, or more likely we'd steal them, ever seen the size of an A3000 and the bespoke monitor?  yeah, I can really not imagine how they thought we'd sneak them out the building unnoticed.


Anyway, one day, I'm there with some code in the RAM Disk, playing about with the Basic interpreter and I had a new thing called a "Compiler"... I think it was for Pascal, but it's lost to memory.... The door unlocked and a teacher pounces in Alan Partridge style... "A haaa, I caught you"....

Yes sir, you caught me.... trying to better myself, please put me in irons and take me away.  Basically, I can only assume; after the fact; that in this school we're all meant to be preparing ourselves as manual labour, I know!   (Top Valley Comprehensive, represent; it's now "Top Valley Academy" or even just part of Red Hill Academy, because you know... We're not allowed our little tribal enclaves anymore).

But this teacher takes a look at I'm doing; I would hazard a guess he expected a game instead he see's code and the dozens and dozens of disks I have, "Come with me, I know what punishment you must receive".... Bit worrying, but we trusted everyone back then, and I followed him to the store cupboard.

And he slaps a brand new unopened packet of 10 disks into my hands then rummaged in a plastic disk box for another grubby one with tippex all over the paper label, which is so tatty it must have been reused until the plastic platter inside was an atom thick.

"Right, I need 10 copies of this disk by tomorrow, else you're in front of the head master"

In hindsight I should have said "Can I go talk to the headmaster about your not encouraging me to learn and explore the machines which are taking over our daily lives".... But alas I said "yes Sir"

I didn't even think about the format issue, I just went home and made an exact sector by sector duplicate on my ST, assuming it was either an Acorn or PC compatible bunch of data, I couldn't tell until the morning, but I made a copy for myself too.

Arriving back I handed him the box.... His stunned face was quite a thing to behold, I think he expected it to take a long time... But I got two drives, yeah baby, rocking the power set up!

But during break, and after scaling the building again, I popped one of the disks into a drive and let it boot....


Lemmings... For the Acorn A3000 series, it was ported by some other company, it wasn't the DMA/Psygnosis original, I kind of remember it being some butterfly logo in purple... But it was lemmings... And I'd made eleven pirate copies of it as "Punishment".

Pretty sure the wrong was all on the other side.

I did get permission from one of the deputy heads to use the computers from time to time, but by the time I finished at comprehensive I was learning Pascal for my ST, and even writing and released my first program as a kill counter/leader board for Elite II Frontier; that was the first piece of software to earn me some money (£25 one weekend, with five sales) so I was hooked; no thanks to any part of my education experience at comprehensive level.


Friday, 25 June 2021

1980's-1990's UK Education Review : Pt1

In this series I am simply going on a tour of my memory, mainly over my time at school.  My schooling started really at Junior School (7-10 year), we learned to roughly read in Infant school (5-7 years) but that was literally it, I just remember playing with toys at Infants and then being made to read at home.

So we'll start there infants school, we painted things, made collages, I do not remember a single day of structured learning.  Everything seemed to revolve around playing.

Highlights include anything with some structure, this included one day going from a classroom at the front of the school to a classroom at the back of the school, I'm guessing our teacher was suddenly ill so the class was divided between the five others.  And going into that other classroom the kids had "grown up" toys, this was lego - and lego technik - they had a TV with a video recorder and a programme of watching structured learning tapes.  There were actual projects on the various boards around the room, things the children had gone.  They'd done tadpoles, with the kids drawing diagrams of each stage f the tadpole development and they were currently doing cress.

I drank all this in, it was like night and day.

When my little brother came into the school three years later, he was in one of those more complex classroom, not the very plane almost dumb class I was in.

That very much reflects my opinion of my time at infant school, I was put in the dumb class, we weren't encouraged to read, we didn't do math, there weren't any really interesting projects, yet I saw this going on elsewhere.

My mother made me read with her at home, when it became very clear I was not learning at school.

And my grandfather I remember him watching me write and coming over to correct me, I remember very distinctly his showing me how to make the "8" shape rather than just drawing two circles atop one another.

So yeah, not very good, this takes us to 1989.

Wednesday, 31 March 2021

Final Thoughts for March - Apple M1

I've been looking at the new like of Apple equipment, now I'm not an Apple guy... I only recently acquiesced to buying a second hand Mac Mini (Core i5, very old) not really to play with the old version of Mac OS it could run, but to use it as a Linux box.... Of course I took a look at the Mac OS and the hardware.

It is very neat tidy design, but awfully bespoke, terribly difficult to repair, but not impossible, I actually was able to fit new SSD's, upgrade the memory and fix a failed fan.

That's the bare minimum I'd ask of a piece of kit, to be able to change the storage, upgrade the RAM... fix a fan... Hard drives, be they mechanical or solid state fail over time, they literally wear out.

Hearing that some Apple models have their only storage literally soldered onto the main board was a real turn off, how can such a thing be upgraded or repaired?  Well it can't.

And this ability to repair something is pretty key to me, and I presume a lot of other people.

Soldered on, fixed in position, storage is just a no-go... And as I understand it this is how the new M1 Mac's all work, they have a fixed amount of storage, no additional storage interfaces (SATA etc) sure you could use an external USB drive, but that's... that's not going to stop the main boot drive taking a battering.

Worse still I've anecdotally heard about the massive swap usage on the M1 Mac's, which prematurely ages the storage.

It is the perfect storm to leave a lot of electronics in ruins and the waste of resources and environmental impact of all this just has be aghast.

Wednesday, 10 February 2021

My Desktop PC History

My PC history and I literally mean PC's, so we're talking after my Atari ST, this is a list of the machines I've owned and used in order and a little bit about what I did with them.

486-SX-25 (1994)

The first PC I used was built by a company based in Baseford in Nottingham, it was at college and was equipped with an Intel 80486SX, it ran at 25Mhz, ran DOS 6.2 and a netware network layer.  It had 4MB of ram and basically was very much locked down, that was until we figured out how to quit out of the netware login screen (repeatedly CTRL+C whilst hitting enter fast).  The college had loads of these machines of this specification, the three main IT labs of course but then there were two more directly outside one of the lab doors, another in the head of Chemistry's office and a bunch in the library.

I primarily programmed in Turbo Pascal on these machines, I remember playing about with writing my first games on this in EGA graphics mode.

486-SX2-50 (1994)

My first home PC, it was from Watford Electronics and had their own ISA riser connecting to a dual speed CD-ROM, I remember Encarta amazed me, as well as working out how to just play CD's whilst programming.  I of course did my college work on the machine, and I remember my brother did his too.

The machine came with 4MB of RAM and a 200MB hard drive... MEGABYTE... I remember windows 3.1 ate into the disk significantly.

But DOOM came into view, now at the time I had no idea really what SX meant, but it had effects on DOOM's speed.  One of them was the maths.

I actually programmed around the limitations of t he SX chip without realising it and this came back to save me (or curse me) later.

Later we got Dark Forces and another 4MB of RAM, giving us a total of 8MB in this machine as I went to Uni.

But basically the SX had no floating point unit, it had only integer mathematics as well as a bunch of other operations being missing.  It was basically a DX chip which had failed QA and had come part of it disabled, but this was a "2" which meant it ran twice as fast as the machines at college.  And that speed difference was reflected in my little home brew games suddenly running twice as fast.

This remained my main and only PC going to Uni, but in my second year of Uni, sharing this machine with my A-Level studying brother I needed my own and these "Pentium" machines had been released.

Pentium-100 (1996)

The power of the penium, with the EDO ram SIMM's was so massive compared to the 486, and this was the first machine I started to program in C on.  Indeed, it was also the first machine I wrote Java on and even played with Linux.  But I never loved this machine.

Running at 100Mhz, it was blisteringly fast to me, but I was still using DOS 6.22 and Windows 3.1 for the most part.

I should have, it was the first machine I bought with my own hard earned money, I did keep it until my final year at uni, but by then I had started to build my own machines.... But I'd also been to work in IT.

HP Pentium-166 (1998)

This was a machine at work, it was mainly a windows 95 platform for me to work with, I soon had Windows 95 at home too, so things balanced up.  All I used this for was some very basic database work, which the prior incumbent in my job had left (and which was awful).

Compaq Pentium-II 233 (1998)

Another work machine and at 200Mhz, it seemed like the things of legend, but this was a compaq deskpro to which all the analysts and myself upgraded, with  massive 17" CRT monitors, they were really nice machines.

I did a bunch of Pascal programming on it, a bunch of Cobol and some database work (I think it was in FoxPro).

Pentium-III 300 (1999)

Returning to Uni for my final year I built this machine myself, I remember this was a slot-1 processor, and I put a whopping 32MB of RAM into it.  I wrote my dissertation on it and networked it to my older Pentium 100.

Voodoo3-2000 AGP.... Which I only sold in 2013 on ebay, at a profit.

Cyrix-150 (1999)

This was actually my pentium 100, but I found the Cyrix chip for sale for only £10 at maplins so bought it and stuck it in the old PC, to find it was a massive performance improvement when compiling and running both C and Java.

Celeron-III 450 (1999)

This was a machine I actually built for a customer, I spent a bit of time making PC's and making money doing so in the late 90's.  And this was one which stuck out to me because it was such a nice performing machine, it included a graphics card (I think it was a Voodoo3-3000).

The build was with a gigabyte motherboard using slot-1, but the processor was socket 370, buying it and using a daughter board was cheaper than buying a socket 370 motherboard, and performed no differently.  It actually made adding the cooler so much easier.

Pentium III 500 (2000)

I bought this after uni, just a new chip, with 128MB of RAM as I set off away from uni.  I just played a lot of games on this machine, dabbled with Java, but I didn't have the compiler suite we used at work to my programming was mostly all in the office.

Pentium III 500 (2001)

This was the office machine I had at the time, I'd had one before, but don't recall it, this one however was by the local computer firm in Redditch and I remember it was a 500mhz Pentium III.

GeForce... At some point at home in 2001/2 I got the first GeForce card at home and started to babble with OpenGL on Linux.

Pentium III 1ghz (2003)

Another office machine, this was a bod standard HP I think, the job here was C++ programming, but coming from a pure Borland using history (all the way from college to now) I was suddenly not in a Borland using shop and... well... I didn't stay at this job very long.

Pentium IV - 1.5ghz (2004)

A prescott Pentium 4... at the high speed of 1.5ghz, this was my first hyper threaded machine, it was built from the ground up for gaming... so it had 1.5GB of RAM (the most I could afford)... the dual thread pentium 4, overclocked to 2ghz on air.

A pair of GeForce 8800GTX in SLi.

I bought it to run Battlefield 1942 really well, and was really very good.  I also played national league Day of Defeat and started my dual obsessions with World of Warcraft and Eve-Online on this machine.

Core 2 Duo 3ghz - Wolfdale - 2.3ghz

I built this machine for my father, he didn't appreciate it at the time.

Core 2 Quad Q6600 - 3ghz (2007)

This was my main driver for years, and the machine I first put into the Cosmos 1000 case.  It had various RAM, disk, graphics configurations until the last iteration being a GeForce 260 GTX (squared) so this was two GeForce 260's on the same card in SLi together.... It was really good.

I spent time coding for Lordz Game Studio on this machine, as well as playing lots and lots of games.

Core i7-920 (2012)

Yeah, we're at Core i7.... the best I could accord for the i7 release set and it went into the same case as the Q6600 was in.  This machine was a main-stay until I actually swapped out the Core I7 (4 cores 8 threads) for a Xeon which was 6 cores and 12 threads... I did that in like 2016... so I've had 12 threads at home for a long old time.

Ryzen 5 3600X (2018) -> Ryzen 9 3900X

Team Red.... Aside from the cyrix I've always, always been Intel... Ryzen turned my head, and the 6c12t 2600 was the first I could get my hands on.  But the motherboard was purchased with upgrades in mind and the same machine now has a Ryzen 9 3900X 12c24t.

It was a mchine built around the 64GB of RAM, dual m2 NVMe and a stack of 4TB disks, all in a corsair obsidian case.