Monday, 12 November 2018

RIP : Stan Lee

Stan's done and gone... Sad...


Tuesday, 6 November 2018

Hackers....

God I love this film...


Sunday, 4 November 2018

Server Crash... Bad Memory

I've spent about three hours checking and sorting out the machine which went down, and come-what may I found problem after problem, but not with any of the software.  If your software checks out then there's an obvious other place to look... Your hardware.

My first step was to remove the drives, specifically my ZFS devices.  No difference, everything still broke.

I then set about systematically removing one piece of hardware at a time, first my quad ethernet card, no difference, then I removed the added dual SATA card still broke...

Finally, I removed all the memory and inserted just one stick...

For the first time the firmware of the motherboard reported something had changed (at boot) it knew the memory has reduced from 8GB to 2GB.  But then the grub boot was really fast, it came up and into the system very quickly.

Now, I had been getting MySQL Error 2013 for nearly ever query or SQL dump, with 2GB of RAM this didn't happen, sudo and all the programs now work again... I can therefore only assume one of the other sticks of RAM is corrupt in some manner.


So with a clean boot...


I was able to start pulling the data out...


I ran the server on soak in memtest for an hour and still no problem, there was ONLY a problem after MySQLd had started and 8GB of RAM was installed... Time to bin some of these sticks.

Server Crash... And Corrupt

Yeah, something very bad has happened with one of my boxes... It was not responsive over the network this morning, I thought little of it, power cycled it and came back to it this afternoon.

Anyway, it was still not playing ball, I rolled the vmlinuz image back to 4.4 from 4.15 (the last unattended update I did last week) but everything.  I mean everything, every command, every program (except cat and ls) resulted in a "segmentation fault".

Booting into recovery I got a little further, but the syslog looks very worrisome...


And I could only see this image when I had hauled the machine back into the office and plugged a VGA cable into it, over the network and even over the serial TTY it just sat there spinning it's wheels.

I would like some of the data back off this box, it contains the current (more recent) live image of my WOW server and it contains the old archived version of my Ark server.

Other than that there is a ZFS area which I've dumped home photo's onto, but getting that back is easy, I just pull one of the drives out and remount the ZFS elsewhere... I think though I may buy a new main disk for this machine, I like it.

Thursday, 25 October 2018

One Line Posts...

They're almost tweets but not... Anyway, why do Americans refer to the collective genius of Rowen Atkinson only through Mr Bean?  Yeah, random today ain't they?

Wednesday, 24 October 2018

Red Dead Redemption II

I've got a game boner... A big big game boner

Monday, 15 October 2018

C++: To Reference or Not

Constant Something Reference or Something constant reference... I ask myself this in a similar manner as Prince Hamlet at the start of the nunnery scene... For as a C++ programmer and English speaker I've always found myself most comfortable using the phraseology thus:

const int X (0);

And to pass this to a function:

void foo (const int& p_X);

I find this most useful, we're passing a constant integer reference to the function... However, I was recently challenged that this meant something else to a reader, her input was that it meant "constant integer" reference, that is we would ONLY be able to pass "const int" instances, not "int" instances.   The thinking being:

const int X(0);
void foo(const int& p_X);

foo(X);

Would compile, whilst:

int Y(42)
void bar (const int& p_Y);

bar (Y);

Would fail to compile or at least spit out a warning because "int" was not able to be passed into the function as "constant integer" and "integer" to this reader were different types.

They're not really of course, constant is a decorator (and one which we can remove with const_cast) the aim of using "const int reference" as the type is not all of our purpose in declaring the function like so, the purpose is to communicate what we do with the value going into the function.

It is 100% not about stopping Y being passable into the function as above.

No, we want to tell any user of our code that within the functions "foo" and "bar" we do not change the value, if they pass Y to us with 42, when the function is complete Y will stil contain 42.  If the value could potentially change we would not be able to use "const" that's the purpose of passing const in this case.

Passing by reference is just to save us the time, effort and delay in allocating memory and taking a copy of the parameter before moving into the body of the function, so:

void bar (const int p_Y)

Would be the same operation as above, we tell the user we don't change the value of the parameter, but we do because we take a copy of the value being passed in and operate upon it.

The communication we get with this is very useful.

But of course, if we're using threaded programming and we pass a reference to a value at time point A, then sometime later elsewhere edit the referenced value, we may run into unexpected behaviour, so there is an argument sometimes to take a copy at the point of instantiating the child function, in the most part however, passing by reference is considered the norm.

Thursday, 11 October 2018

When to Dark and When to Light

As a programmer I spend a lot of my time either looking at a screen, using a keyboard or both.  As such over the years I've gotten quite particular about both, I like a nice crisp screen (or more than one to be honest) and I like my keyboard to be mechanical and be one I enjoy working with, rubber domed plastic crap from hell... For eight to ten hours a day, no thank you.

The screens, today it's easier to get nice screens, so I focus more on what's on them, which will generally be my IDE or text editor of choice on the Operating System I happen to be on at the time.

And I've come to loath the themes available in some IDE's but only in very specific circumstances...

Lets take the majority one of my time, Microsofts Visual Studio, it comes with a dark and light theme, I like both... I LIKE BOTH... But I like them in different circumstances.  The Dark theme I like when I'm in my own dark room, when it's late at night, when I'm not interacting with others.  Because (and maybe you get this as well) if I look at brighter text on a dark background the text sears a blot into my retina, not a problem if you're in a dark room, but then in a bright room or an office where you then need to go interact with others you're left with the problem of this blur in your vision... So I keep dark to my own space at my own time, I know when to Dark.

Light themes, I use in the office, I find it doesn't alienate anyone (programmer and non-programmer alike can get into dark text on a light background), and it keeps my ever changing focus in an open plan office from distracting too badly a vibrant and colourful display, I know when to Light.

The problem?  Well, seems many people don't, I've met a programmer recently whom steadfastly would not look at my work on my machine as it was "too bright"... Like he was allergic to LED light or something.  Literally telling me he couldn't read the code... Not because of formatting, not because of a lack of understanding or bad coding standards, but because I was in a light theme.

Folks, stop now and learn when to Dark and when to Light.  Please.

Welcome Canadian Viewers


First time Canada has topped my stats on daily views... Welcome Canadians!

Monday, 8 October 2018

Good Riddance Google+

When I was forced (through my YouTube account) to create an interlinked Google+ account I was not best pleased.  And I posted as such on the pages there, then never returned to them.  As a social media platform it was flawed and ran into the "Google being evil" motif far too strongly.

Anyway, I look through BBC News just now and find this....

The fact Google knew about the issue in March and didn't disclose it... Well it's pretty much just the dregs.


Wednesday, 3 October 2018

I don't really go in for political commentary, unfortunately what's caught my eye is about a bunch of folks at Uni whom are members of the Conservative club... Whatever, there you go... That's not the problem, nor is the fact that they've seemingly gone in for body art...

No the point I want to make is... There's one female in the picture... She's allowed them, or they've just, drawn messages on her bosom... She seems non-plus about this....

But look over her shoulder... There's a chap in glasses... Just staring at the back of her head, it needs captioning... "hmm, you smell nice"... "mine, my precious"... It really does... I'm more worried about that than the seeming racism in the shot.


And it's an utter disgrace the chap right right in the glasses making the "ok" sign... He's got a Windows symbol on his shirt... Where's the Penguin?  Bloody Racist!

Monday, 1 October 2018

My Social Media Stance

I am not on LinkedIn, there I said it... This seems to be something of a mystery to folks, why are you not on LinkedIn?  You should be on LinkedIn!  I'll send you a link to link up in LinkedIn...

The problem is.... I don't want to me on LinkedIn.  I don't particularly engage with social media; I understand many many people do, I myself personally do not; facebook is extremely minimal for me, Google+ has a message from me saying I won't be using it; just because my YouTube account got forced to create one (and they did that automatically); and I only use twitter to complain to companies about poor service!

Perhaps this is the problem, putting oneself on social media makes you immediately accessible, searchable, findable, but not always in the form nor forum you desire, being pulled from pillar to post.

I've been reading a book by Neem James, essentially about how distracting life is and as a developer, I find the number of distractions I can recount moment on moment amazing... Right now, in an office for programming I hear conversations, phone calls, machines whirring, doors banging, someones mobile ringing... And that's before the things I need to listen out for, like my name being called or members of the team around me needing input on the current project.  This isn't to say I want library like observance of the work space, but it's a lot of chatter, subdivision of an area, hard walls of baffles to stop very noisy equipment disturbing all... they're simple ways to subdivide real-life.

I find all this division of attention can slice into the quality of the work produced.

Social media, doesn't yet seem to contain any solution for the inane chatter you can experience, especially if you have a lot of contacts, spreading ever further as the rule of Six degrees is ever eroded by the web we weave.

Without any way to baffle the sound, stop the noise on Social Media, I've opted not to engage directly with it, save for where the form of the communication reflects me in some way.

I'm not a tweet kind of guy, I'm too verbose and the rich tapestry of life can't be reflected in so few words (plus I hate when tweets start 1/3 - gah).

Then the content of an open social media account, it's a soup of opinion, some good, some bad, both the contributors and readers can choose what they take away from it, or indeed interpret it in different ways.

I suppose the same is true of this very blog, but at least here, I know what I intend and if its misconstrued I only have myself to blame, a facebook post however, could be taken out of context, appear on another timeline or be moved not by a human (who I find quite understandable) but by an algorithm, by something ethereal, something fitting to the best metrics, rather than knowing.

It's a rabbit hole I'm not willing to be driven into, if I chose to pop down so be it, but I won't be forced and I'm yet to see a killer need for it.

As I'm a strong believer in face to face, or direct contact, be that phone, email, text, face to face.  A limited tweet, not so much (I can be very verbose).

Thursday, 27 September 2018

Return to Uni

Tonight, I return to university.  No I'm not starting any course, I'm going to the first meeting and greet as an Alumni Fellow.  To which I've signed myself up and been accepted, I don't think this lets me add any letters after my name, but it's nice to drop into conversation that you've a Fellow of your old university.

This will be the first time I've returned to the Newton Building in the Nottingham City Center since it's massive renovations over the last decade and I'm excited to see what they've done with the place whilst also feeling a little trepidations as to what they've done with the place.

For University seems to be a very different business to the one I left when I graduated.  I was the very last year where public entrants to University had their fees paid, I left university with a degree and zero debt, which is practically unheard of then and even more so now.

I therefore look back with memories of the technology, the modules and the learning pathway I was upon and I see where it led me, but also what was worthwhile and what not.

Worthwhile was my programming techniques, some of the data modules and parts of the advanced technology subjects, like Artificial Intelligence.  Things not of use, the Business models, the presentation or self-worth items and the database modules.

The latter were pretty useless as they taught nothing about scaling, nothing about what was then the emerging field of cloud computing, you were on person on one machine with one very old copy of DBase or FoxPro or evil of evils Microsoft Access.  None of it carried over into the placement I was on whilst still on my course nor into modern use of data models and techniques.

The business models were not that much use, because simply the dot com bubble had just burst, the bottom had fallen out of the high priced computing model and so as I hit the work force at the turn of the millennium I was one of many voices crying out for the same jobs, which could be filled by a salary dictated graduate position or Jimmy Bloggs who's just read about it in a "Learn Computers in 24 hours book" but cost the company 1/4 the price.

There in lay the first challenge, the cost of being a graduate, you companies were seeing computers and computing power as an ever cheaper resource, Moores Law was still in effect at the time, the cost of the machines you were driving was ever decreasing, yet you were demanding the same or higher salary.  It made no-sense to business middle or low-runners.  So the highly skilled had to find highly niche or skilled jobs rather than getting in on the ground floor of IT and computing businesses.

Fast-forward into those roles however, and the price to reward difference of a graduates skills became obvious to the employer, they had initiative, skills to tackle anything thrown at them, and the confidence in their own skills to exercise and even expand on the problems and tasks set them.  Where as I observed first hand lesser experienced hands go down with the proverbial suicide project*.

Graduating with no debt however let me leverage lesser paid roles, to drive myself out into a web of wide businesses, from underwear manufacturing, time and attendance systems, web enabled pressure monitoring systems, remote SMS data collection, entertainment system engineering and most recently international development of pay to play entertainment products (fruit machines).

I think today, nearly twenty years on from graduation, I have a larger experience base in the development field than most peers I meet around me and critically as I've always diversified my thinking and skills I've kept myself interested in technology (this blog is evidence of some of the crack-pot things I get on with).

So tonight, I return to University to meet and mix with peer Alumni, lets see where this goes.







* This is my phrase of the month by the way, in a few months time I maybe able to explain why.

Wednesday, 26 September 2018

Age Demographics by Local Radio

I listen to my local BBC radio station, not the national stations, just the local one.  I had this very channel inflicted on me when I was a child, and always thought the music choice was about 20 years out of date quite fuddy duddy.

Anyway, I find myself now in middle age and can't help but stop and pause when a song I remember from my teens or twenties; songs which I think are awesomely cool I might add; come up on this very same radio station.

I think the songs have aged well, it makes me want to continue listening to this channel which I so derided as a kid... And I can't help but think it makes me feel old.

What would some young person of today think of my taste in music?

Sunday, 16 September 2018

That Moment....

When after ten years with your significant other, know them inside and out and they turn around and declare...

"You know what, I'll have a Fillet of Fish"

Totally blind-sided me this has.

Friday, 14 September 2018

Righting Blizzards Greatest Mistake

I hated something about Cataclysm, so much so the moment I saw it I stopped even looking... It was a change, a death, a travesty... But with the magic of community reverse engineering we can roll it back...



Blanchy, we love you...

Wednesday, 12 September 2018

Form of Ready Player One Sequel?

I've just finished a re-read of "Ready Player One"; and I heard tell that Ernie had embarked on writing a sequel... Now before you all start I make the distinction between the film and the book, we are talking about the book.

In fact, those of you who haven't read the book... (Spoiler alert)... It starts out being written as the true story, to set the record straight... Straight up calling the movie out as wrong!  Oh yeah, love that preemptive strike on the Spielberg saga.

Anyway, the sequel eh?... Lets gather around the camp fire and think about this...

It can't be another hunt, we've had a hunt, Z is the man now, we may get a little friction between the members of the high-5 and Z maybe?... But it's going to be about what they find within the folds of the fabric of the Oasis.

Perhaps whether Halliday's Avatar was some form of personality transplant from his real-world body into the Oasis, some form of literal Ghost in the Machine?

I'd like to see some form of digital court, like a war-crimes tribunal, all accounts whom were Sixers being required to justify their existence?  Maybe some form of play on "The Odessa Files" in digital form, with IOI has the continuing evil?


Maybe there's some form of massive community lash back, everyone died on the release of the Cataclysm, Z resurrected the High-5 members, but everyone else was perma-death?



Tuesday, 11 September 2018

Projects and General Update (September 2018)


I have no idea why you can hear my breathing so loud on cam... I promise I don't walk around wheezing... at least, I don't think... Shit, maybe I do?... Fat man fail I guess... 

I'm pretty sure I blogged about my gut having to go, it's not... At all.

Monday, 10 September 2018

Ikea Server Rack is Finished

What kind of bloke gets to play with servers on his day off?  A damn lucky one my wife always tell me?.. Am I lucky?  Or do I have a plan?  I think I have a plan, this is a project I've been meaning to sort out for quite some time, now I have a week off of work, I'm knocking things out the park... Sooo......


Meet my new server wrack, so this is a pair of Ikea Lack Coffee tables, one with the feet fitted, and it's screwed down onto the top of another, with a pair of wheel which I also got at Ikea.

I've reinforced the leg uprights, and I'm busy fitting out the rear with a dedicated switch and power setup.

It's all on wheels so it can go anywhere in my office with relative ease.

And yes, these are my older Poweredge servers (from my fan/noise reduction videos).

Only the top unit is operational, with all the drives fitted and a full compliment of memory (64GB I think is in it).  Its socking a quad port gigabyte Ethernet at the moment but I have a whole box of fiber channel cards to go into the machines up here taking me up to 4Gbit per card (full duplex) and I plan to fit two cards in each machine so we should bond up to about 8gbits... We'll see, waiting on the cables to arrive from Hong Kong.


My other item is to get myself a dual Socket 1366 based server soon, just to play about with 6 core 12 thread CPU's (so up to 12 cores 24 threads) and perhaps in the new year I'll go up to the E5- series of Xeons to massive amounts of threads.

At the moment though, load balancing various things on my AWS instances and dropping to my own hosting is more my interests...

And a friend of mine has reminded me of a project he and I need undertake - watch this space.

Wednesday, 5 September 2018

Britains Steepest Road?

I saw this on the BBC about a road which was at a 40% angle in Harlec, Wales... https://www.bbc.co.uk/news/uk-wales-45420155

You know what?  I think Nottingham has a contender to beat it, if it counts... Newfield Road.


Specifically the curve at the western end of that road, it's immensely steep, very short and I believe carries you up around 24 meters in around 60 meters of distance which is 40% in my book.

There's also a road I don't know the actual name of in Gedling (which my driving instructer used to torture me doing uphill starts) he called it "Big Bertha".

Tuesday, 4 September 2018

Spread the word....

Hey Eddie... Spread the word... 



Sunday, 2 September 2018

Gamer Clarity

I had a bad time getting off my addition... Addiction?... What am I talking about?  Drink?  Drugs?  Women?... No I'm talking about Azeroth.

Yeah, I was addicted to World of Warcraft, in a big way, it came after a time being a member of a top flight Day of Defeat teams - Yes, I was once a hardcore FPS player folks - Enemy Down ladder anyone?  Yeah, old school....

And myself and another couple of players on the team (waves to Chaplain) were looking for something else to play, and it was the weekend before I started a new job - the job I currently still have technically - and a friend came to stay (waves to Paul) and he'd just bought a new game "World of Warcraft".

Now I knew about Warcraft, I'd played the RTS games (I even still have my copy of Warcraft II on the shelf behind me) but I'd not ventured into any MMO ever before; yes EverQuest and even Ultima had passed me by.  And I went out that night and bought the game from the local Asda.

I rolled a human, a Warrior (flexes muscles) and I roped Chaplain into playing too and that was it, I was hooked... I played every hour I could, my day was get up, boot PC, walk dog whilst machine booted and kettle boiled, back in tepid tea, toast and check the auction house and may be pick up a few nodes of metal ore before work.

I'd work until lunch when I had an hours gap at that time, and I lived 10 minutes away from work, so it was drive home, see the dog, feed him, and check the auction house, check my mails, post messages to guild members (yes I ran a guild) planning the nights activities (usually an instance for either myself as the main tank or the main guild priest to get gear - so everyone else could get theirs that little bit more easily) and it was back to work.

I'd blaze through the afternoon and be setting off home as soon as I could, arriving home I would walk the dog again and either we'd stop at the local chip shop for a kebab or I'd call for a pizza on the return trip, that would arrive when we got home and the dog would curl up around my feet whilst I played and ground and quested all night long.

I found achievement beyond my normal day, I found organizing the team purposeful (at the time I had gone from running a team of folks at work, to being the most junior developer, a hard knock so I channeled my team building and drive into the guild - not always to great success, but I ran two different guilds in my time - one a family style small team the other a vast ramshackle affair of infighting and subterfuge).

After years, I mean years, the vanilla game, The Burning Crusade and through to Wrath I played all day everyday, in Wrath I became a top flight PVP terror (not on the arena circuit, but out in the world, world PVP baby!)  I digested every tip, watched hours of "WarcraftMovies.com", I lived and breathed that game.

I was still playing ten years ago when I had a revelation, at work I had the chance to start to lead product, to do that my focus, my drive, my energy had to be focused back on work, away from play.  I'd already diluted my Warcraft time anyway - as by then I also ran two accounts (carrier pilot) in EveOnline and a multi-billion ISK empire and a small corp of players.  But work needed my focus.

I had met my future wife as well and frankly grown up... "When one becomes a man, one has to put away such childish things"... So I quit, boom, overnight, my final two characters a 68 priest and 78 druid were to be the last I took to higher level, Wrath was the last expansion I played.

All my characters now sit in the pergatory of the unsubbed account, but I yearn to see them again.  I'm sure you've all seen my efforts to set up my own server (an on going affair I might add), and it's that yearning for the old days which drives me to want to do that, time is the only stopper.


Time, the one element missing when I quit before, the yearning was there, but time is short and you have to focus.


At the moment at work I'm focussed on a delivery of a new product to a new market, I need that time back to myself, but I also need a release.  The current gaming trend for high impact, high drama, like PUBG is not doing my relaxing any good, the stress of World PVP would not in Warcraft either, and Eve - forget it, nerve wracking - so maybe my original home World of Warcraft PVE, on EU Thunderhorn server?  Maybe my old characters are still there?

Xelous the 60 warrior.

Eylomae the 60 hunter - who must look completely out of place in 2018 with a full set of Beastmaster (tier 1 I called it, but I've recently learned it's considered tier 0.1 - if it's even called the Beastmaster armour set at all!).

And all the rest, Blackthorn my bad-ass 80 Mage... 

I thought I might resubscribe the other day, it hit me like a pang in the gut, to call Chaplain and say "3pm Stormwind Gates, EU Thunderhown, Xelous will march back into town".  But I couldn't make myself do it.

So much has changed in the game, some maybe for the better, but to my play experience, to my recapturing the past so much has changed for the negative.

The moment of clarity shone through, I can never go back, I am still a gamer, though of which game is yet to be seen.

Thursday, 30 August 2018

Where have I been?

Where have I been and what have I been doing?  Well my wife has been for more surgery, those of you know the tale will be well versed, for thos eo fyou not in the know, she's on the mend; slowly.  I have therefore been busy looking after her.

In the hopes of getting more hours out of me the office delivered one of our huge machines to my home and I've been working from there, immediate results were that I did nearly 48 hours of project work whilst not in the office, unfortunately none of that project work is going to be used as the product has changed... Hey ho.  I've also learned that I could never ever work from home for real, even barring surgery recovery, she simply could not wrap her head around how you have to concentrate whilst doing my job and would say my name, wait exactly one second, and say it again, then again and again... So yeah, never going to be able to work from home.

What form did this work take?  Well I was working on porting a Linux USB driver for a device back to windows, so I've written Linux code which drives the USB device in Linux by observing and reverse engineering the activity of a pre-existing windows driver for the said device.  Then someone found a fault in the original windows driver, so the idea was to back port my Linux work back onto windows... Which worked... It worked first time, out the box, before I even had the machine at home to look at directly.  The problem?  The device driver I've then created for windows expresses the exact same issue as the original windows driver was.

A lot of debugging later and I pretty much came to the conclusion that this is a badly behaved USB device, along the way I learned that the sync.c file in libusb has some problems expressing LIBUSB_ERROR_TIMEOUT (-7), indeed I started to write custom cuts of the functions within to let me take internal metrics on them to work out what libusb itself was doing.

So, I maybe, doing the next part of my coding standard rant videos on the contents of some of the libusb source files.

Project management also raised it's curly bonnet to me, I need to sit down, clean up and finish "Super Simple Tickets".  This is because there is no quick way to work with "tickets" in the current provided platforms in the office.  There are ticketing systems, there's a Jira system and there's a Redmine system, and my personal preference has been towards (the now out of vogue) trac for Project Management and ticketing, but none of these are simple and strippled back enough.

I need to hit a lot of users, as simply as possible, from as many devices as possible, including anonymous feedback.  The overhead of managing this is more than the whole effort of collecting & collating the details about the software... That's what we're interested in, what is the software doing, what do our testers and users think... I don't care what group or gantt chart you're in on the project management tool, I don't care who's assigned to what ticket for what purpose, so I want a central place that folks can throw information, ideas or issues... The three I's.

Plus this lets me get back to learning Flask with Python, which is a personal project I never got to finish last year.

After all the above, boost beast still needs more of my attention.

As does my WoW TBC private server.

In short, for my short supply personal time, there's a lot of projects and to get any of them back on the rails I need to sit down, sacrifice a day and just get them cleaned up and in a state where I can pick them up and put them down, literally to let me bit and bob.

I hope that explains to you all where I've been for like a fortnight, but I am here, and things will start crawling out more now the projects have passed at work.

Wednesday, 15 August 2018

Laptop Battery Project

You know that moment when you've torn your laptop battery apart and find Li Ion cells so generic that you can only call them "orange"... yeah... I'm there....



This is like the third replacement battery I've gotten for this laptop, and I love the machine.  But with a battery life shorter than a Goldfish's memory I need to sort this out.

Time to shop, and likely get scammed, trying to find affordable replacements.

The wiring on this thing is also pretty rubbish, why the heck are there two batteries with opposing electrodes towards one another with just a piece of thin plastic card between them?... I mean, is it trying to burn my house down?

Friday, 3 August 2018

Junk Hunt - Strange Typewriter Thing

I'm on the hunt for information, or even the actual thing... What thing?... Well, in the early 1990's my parents took me into a stationary store in Nottingham, I think it was Staples or Office World near the Post Office main buildings, so we're talking St Anns or City Centre ish, certainly behind the Victoria Centre.

Anyway, in there I saw a machine I was sorely tempted to get, it was a semi-electronic typewriter, so it had a form factor about 11" a typewriter keyboard with an LCD screen across the center, you typed could see the text then when you hit enter it write it to the typewriter as a nearly silent printed line...

It also simultaneously write this as an ASCII text file onto a 3.5" floppy which was inserted into the right hand side.

The one I saw was red, cherry red.

The print was a very strong, black, the ribbon was a one use thing once it had put a letter down if you came over the same piece of ribbon (by winding it back) and put another character it'd be missing the bits from the mask cut by writing the prior letter.

And... I loved it.....

I went to see this thing about six times.  I really wanted it to augment my then A-Level studies.  because it was silent, the keyboard had a tactile feel, but no click, the printing was this nearly silent swish and you got the text file from it... or you could put a text file into the disk, load it and it'd print the whole thing out in this lovely type.

Remember, at home I was toting a 9 pin Citizen 120D+ printer, so this really vibrant printing really appealed to me to present things.

If you have any idea what device I'm talking about, comment below!

Monday, 23 July 2018

Microsoft's Noexcept Code Throws Exceptions

I've not dug into this one fully yet, I'm mid-stride on what's going on, however the stack has unspooled me to this location having thrown a read access violation...


But can you see the problem here?  I'm in Microsoft's xstring, as far as I'm concerned this is from my using std::string or std::ostringstream, the function is decorated "noexcept" yet its throwing an exception!


I find this mind bendingly annoying, not least as under GCC & clan on Linux it runs perfectly fine!

So, this is "Unhandled exception thrown: read access violation" in xstring _Equal which is decorated noexcept... Time to format c: and never use Windows I think.

Saturday, 21 July 2018

C++ : Coding Standards by Example #1 (with Boost Beast)

Today I've spent sometime doing a little different video, rather than just play about in code, whilst I played about I made a video of the time I had... Here is it...


We cover:


  • C++
  • Coding Standards
  • Structured Programming
  • Functional Programming
  • Encapsulation
  • Object Orientated Programming
  • Building the Boost Libraries (1.67.0)
  • Visual Studio 2017
  • Static Linking

And generally spend time seeing how I turn gobble-de-gook code into something usable and maintainable against my own Coding Standards.

Get the code yourself here: https://github.com/Xelous/boostBeast

Friday, 20 July 2018

That Moment...

That moment you get half an hour into watching Brad Pitt in War Machine and the wife suddenly asks....

"Do you know him?"

"Who?"

"The actor!"

"Which actor?"

"Him with the grey hair?"

"The General?"

"Yes"

"Brad Pitt"

"Fuck off, that's not Brad Pitt"

I gave up.

Thursday, 19 July 2018

C++ : Copy Constructor versus Ignorance

I've spent a bit of time reviewing someone else's code recently and I've come to an impasse with them, so they have a lot of code which will take some standard container, and the code doesn't just initialise the local copy from the passed in reference... No it'll iterate over the list of elements adding them to the class version.

I have picked fault with this, it's not RAII, it looks ugly and if you're threading you can create your class instance and the member is empty or in a partially filled state before the loop within the constructor is finished... I highlight this in red below...

My solution?  Just initialise the member from the reference - see the green highlight in the code below.

My results from the timing below?



These times are "microseconds" so tiny... But with just constructing from the existing reference we always get a lower time, quicker code...


Running this test 30,000 times, trying it in different orders and with maps of upto 1000 elements I had a rough average increase of 60% speed by using the copy constructor of std::map rather than reallocating new memory for each pre-existing element.

I wanted therefore to understand the reasoning behind the original code, was there some reason to perform a clone (alloc and assign new instance) operation for each pair in the map being passed in?  Looking at the code there was no apparent reason, so I spoke to the developer, asking why they had performed the construction in this manner... Their reply...

"That's how you initialise a container"

You can load up a container in this manner, but you already have the contents of the map, you're just copying it... "Why don't you use the copy constructor?"... I asked...

"I didn't write one"

Hmm, "You don't, the compiler generates it for you, std::map has its own copy constructor".  Use the copy constructor folks, trust me.


#include <map>
#include <chrono>
#include <string>
#include <iostream>


using Mapping = std::map<int, int>;

class A
{
private:
Mapping m_TheMapping;

public:

A() = delete;
A(const A&) = delete;
void operator=(const A&) = delete;

A(const Mapping& p_Mapping)
:
m_TheMapping(p_Mapping)
{
}

A(const Mapping& p_Mapping, const bool& p_Other)
:
m_TheMapping()
{
for (auto i : p_Mapping)
{
m_TheMapping.emplace(i);
}
}

inline Mapping& Mapping()
{
return m_TheMapping;
}
};


int main()
{
Mapping l_m
{
{ 0, 0 },
{ 1, 1 },
{ 2, 2 },
{ 3, 3 }
};

auto l_time(std::chrono::high_resolution_clock::now());
// Copy Construction
A l_map(l_m);
auto l_timeB(std::chrono::high_resolution_clock::now());

auto l_Dur(l_timeB - l_time);
std::cout << std::chrono::duration_cast<std::chrono::microseconds>(l_Dur).count() << std::endl;


auto l_time2(std::chrono::high_resolution_clock::now());
// Clone Construction
A l_map2(l_m, true);
auto l_time2B(std::chrono::high_resolution_clock::now());

auto l_DurB(l_time2B - l_time2);
std::cout << std::chrono::duration_cast<std::chrono::microseconds>(l_DurB).count() << std::endl;
}

Tuesday, 17 July 2018

Preach at the Bar?

Oh its been a long hard fortnight, delivery of project at work and the World Cup took up most of the last week, my cars (yes both of them) have cost me a total of £1,100 so far and one of them is still broke... Hence I'm broke.

However, I've been working on a project this very evening and whilst doing so I spotted something rather odd.

You might have thought the Preacher was busy sorting out the festivities at PreachCon, however, I think he's been moonlighting on us... No he's not been playing a game other than Warcraft... Oh no... He's literally IN another game... Take a look...


From NeebsGaming's video of Drunken Bar Fight... Uncanny Valley or what mate!

That's the Preach!  No-one knows where Ghosty is though...

Sunday, 8 July 2018

Friday, 6 July 2018

My Three Lions 2018

Being English, specifically an avid supporter of English Football this week is extremely hard to bear, the hope, the wish, the fear the turbid mix on the street, wafting on the radio airwaves and in nearly every news report.

I love English football, the agony, the pleasure, that moment the wife storms out the room declaring "I'm stopping watching this" only to see here peeping around the door-frame thirty seconds later.

We love you England, we do.

And I find a tear in my eye whenever I think back to that warm summer of '96 as here in Nottingham we saw the Turkish team play at the City Ground and the hurt that followed.


I stand up to be counted.  I am English.  We are United.  We will play.  I hope they can win.

But whatever the weekend brings, we still have our Lions, three of them, proud and loud.

Hear Us Roar.