A blog about my rantings, including Games, Game Development, Gaming, Consoles, PC Gaming, Role Playing Games, People, Gaming tips & cheats, Game Programming and a plethora of other stuff.
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.
Throughout my life I've had moments where people simply nay-say what I've told them... This became a very real trope (until I took up a marshal art and became very good at it) in my life and lead to a loss of confidence on my part, today lets take a look at some of them which I still remember:
English (1991) AMBULATE
I used the work "ambulate" in a sentence, I was 12 or 13. My mother immediately said "There's no such word", and I said "there is, it means to walk, and it's where the word Ambulance comes from"... She flat refused to accept this and really made me unsure; she was wrong, she has been wrong about many things, but this was one of the earliest times I actively recall her being dead wrong. Her response also made me second guess myself, so much so that I sat and read the dictionary, other kids at school ribbed me about this for years after, but I read the dictionary. I was right, ambulate is a word, it does mean to walk.
Engineering (1985) METAL SPARKS
My Dad was in the door way of my Grandfathers garage, angle grinding part of the front of the family car, and there were metal sparks flying all over the place, to the left of the closed wooden door was a fabric cover over some garden furniture. The sparks were flying and landing on this dry fabric. And I said "that's going to catch fire".... I was 7 years old and I could see this cascade of burning sparks would set light to the fabric if it carried on. My Dad turned to me and said "don't be stupid, there's nothing in a spark". As though it was a zero weight particle an ethereal nothing, of course, we all know that a spark is a red hot but admittedly tiny fragment of metal, not only could it have set light to the fabric, but it could also have gotten into someones eye... But, I was seven, I was clearly wrong... No, no I wasn't.
Electronics (1992) CD PLAYER
I was sat in the library with a selection of the annoying, ignorant, bully children who were my class mates, when one of the boys Richard ventured something about CD's, about their spinning... of course CD's spin, we all know this, that's why they're round and the lazer is set to slide back and forth. Richard wasn't known as a braniac, but he was right. Immediately a boy called Zahid took the utter and total michael out of Richard, really horrible child this Zahid was and he was one of a bunch of morons in my class... Martin, Martin, Paul and Zahid were a group of utter moronic and bullies; each with their own insecurities; and they took it out most days on me, but this day they dragged this poor Richard lad into it, who looked quite abashed, I decided to stick up for him... Well, never had I been so quickly and thoroughly insulted by a moron who knew nothing but how to ride his mouth. Zahid, I hope your now very bald head knows just how wrong you were, and what a moron you looked flat arguing that CD's don't spin, because they do.
Computing (1984) TYPING
Sat before the first BBC Micro that the school had bought and the teacher was trying to explain LOGO to us, he was leaning over the computer typing one handed upside down, and I could tell what he was trying to type... For I had had a computer at home for the last year, and I'd been typing in simple BASIC programs, so this LOGO thing looked very rudimentary even to my six or seven year old mind. So I offered to do the typing for him, he was copying off of a sheet, he'd have been able to tell the class the command and then see me type it in and the turtle robot (or just the screen) complete the command. And better yet, I'd have been so much quicker making the class feel far more interactive. This teacher, Mr Allison, turned his eyes down on me like I was a dirty stinking urchin (which I likely was) who not only couldn't understand what he was doing, but it was far far beyond anything I could ever do with a computer; see we were a school intended to produce manual workers, no-one expected a kid from that school to end up being a programmer... I'd hazard a guess that a fair few are now, and I look back on that day thinking... Why did he say I couldn't possibly type? When I could and can....
Computing (1993) FLOPPY DISK FORMATS
I was always curious about computers and when my senior school created a "lab" with twenty Acorn A3000 computers I was eager to give these 2megabyte machines a whirl. My machine at home was an Atari ST and it's floppy format was compatible with the Acorn machine (they both being nearly perfect compatible matches with MS DOS's format on the IBM PC). But this lab was always closed, not always locked, but closed... But I started to let myself in; and one day I was caught in there, learning, programming and typing notes, by one of the teachers; I don't remember this guys name, he was never my actual teacher, but his lab was his coveted land and I think he was a little put out that I was there with two of his machines going doing different things at the same time, not just that, but I was doing things so much more quickly because I'd learned that the Acorn OS came with a RAM disk, and with 2MB of RAM I could assign 500-720K and basically copy the Floppy disk straight into RAM, work on it incredibly quickly, and then sync the data back to the disk... So I could do the work I was doing incredibly quickly. He didn't like this, he didn't want to learn, he just wanted to make me look a fool. So he asked me what the disks I was using were. So I showed him, "You have an Acorn at home?" No, I have an ST... Silence, he just stared at me, and he paced off to his desk and pulled a disk out his desk... "Go home and make me 10 copies of this".. and he handed me a box of blank disks... The disk was Lemmings... This teacher was literally giving me homework to commit copyright fraud... I didn't take that disk home, but I did return to his lab... turn on all the machines, and copy the disk once.. then with the two copies copied it on two more, then on the four machines I made the next four copies, and then I had the last two machines running the write of the disk as he walked back in... A mere ten minutes later. "That should have taken you all night!".... Why... it's binary maths... 1 becomes 2... 2 becomes 4... 4 become 8.. here's your last two... "Aren't you the IT teacher?".... he just stared as I handed him his contraband and left the room. I didn't like the man, but I was a black-belt in karate and knew who I was by then...
Its been over a month, so I've come to terms with something... Some people are just horrid.
We'll just dial back the clock, 1945.... VE Day... All four of my grandparents were serving in the war effort, Solider, Sailor, Nurse & Land Army Girl respectively. It was their war, their life, and I respect that immensely.
I made a video to that effect a head of VE Day.
However, with the lockdown, my wife and I, being in at risk groups didn't plan on anything for a street party out front, not least as our neighbours, as already mentioned in these pages, are quite abhorrent people breaking the rules and putting themselves and others at risk, but we also had no idea there were any such plans a foot... After all, why risk it when we and all of them are in at risk categories?!?!....
So, we sat it out, rightfully and with respect, I do spend a lot of time with my mind cast back to the world wars and I don't think any of my neighbours, unless there's some secret military historian in their ranks, can touch my knowledge of the struggle and suffering inflicted.
It was therefore with some surprise that I've heard on the grape vine how "disgusted" our direct neighbours were of our "ignoring VE Day" and "disrespecting the spirit of the day".
These fools haven't dared say this to our face, these brain dead boring boomer bastards won't face me and say a word, and you know what... that makes them pretty horrid in my book.
My f**king neighbours, all of them as I do not intend to be specific nor name them, but some shame they should feel as they, daily, continue to be utter and total liabilities in these times of crisis.
We have all sides both aged over 75, one side has both going to different houses around the street as well as accepting visitors and their grand child to stay over, both going out and stopping to stand - without socially distancing - with multiple people.
The other side, similarly aged (if not older) and similarly accepting visitors, sneakier they invite visitors in via their side gate directly off of the curbside. In an ineffectual attempt to hide their reception.
Another, a lone old woman again in at least her mid 70's accepting visits from different neighbours.
None of these households are actually self isolating, they believe they are but simply aren't. All are visiting shops, all are going to locations where they could and surely at some might will pick up the virus and mixing with people who could carry it.
It beggars belief.
Not least as both our direct neighbours can be overheard extolling their efforts in the virus lockdown, extolling the death toll... When they flagrantly disregard the rules in their axis of bullshit.
No gloves, no masks, they come and go, visiting houses with kids. Indeed kids on this street are out playing, mixing and swapping sweat and spit... I'm put in mind of kids being made to mix when chicken pox was about.
Except unlike chicken pox, taken early, corvid is a mortal threat to all and any age.
The fools.
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!
What he fails to mention is that when everyone has a gun they hang out of casino hotel windows gunning down festival goers, kids kill kids in the hall ways of schools and colleges, that murder suicide is through the roof and you can be shot dead for as little as looking at someone in the wrong way.
Donald Trump and especially the NRA have this attitude utterly and totally wrong, and I can't begin to express how god awful this man is.
But then, let us remember, he is "leader" of a country where we report mass shootings as "the worse in" and insert very short amounts of time. This however is glossed over in US reporting of this to it's citizens. Where as we hear that Stephen Paddock killed 58 people, "the worst mass shooting in the US since 1991".
The CNN version states "the deadliest mass shooting in modern US History".... Define Modern Mr Trump and Ms CNN... Because 1991 is not a long time ago, I mean I know you're in a country with a history we can list on the back of a couple of greasy burger wrappers, but please 1991 is not old, and 1992 on wards is not modern history, and how many mass shootings have there been in "modern history", in say the last five years?
Well we have:
Stoneman Douglas - 2018 - 17 murdered
Lass Vegas - 2017 - 58 murdered
Sutherland Sprints - 2017 - 26 murdered
Orlando - 2016 - 49 murdered
San Bernadino - 2015 - 15 murdered
Umpqua College - 205 - 9 murdered
That's six attacks, how many where terrorists? None... Not a single one is a comparison to the Paris attack, not a single one of these attacks was in effort of a social political aim, they were murder, for jealous, revenge, homophobia, all by people whom had armed themselves without the need to leap through hoops of be part of a terrorist cell.
Normal everyday people killing people with whatever happens to be at hand.
Which takes us to Trumps commends about the London Knife Crime, he's right, this is a problem, it is the exact same problem as I have just mentioned are on US streets, people killing people with whatever happens to be at hand. Except, a kitchen knife, a shiv, heck even a sharpened stick is in an utterly different; lower; category of concern that someone picking up a .38 pistol and pointing it at coworkers over a parking spot, or their YouTube video loosing advertising!
America you have a problem, a much larger problem than you realise, you are being brain washed into looking outwards, that the world around you is horrid, that you might have it tough, but "hey look at London, look at Paris".... Beyond Terrorism, which is clearly more common here in Europe where we have a land bridge to the middle east & north African unrest.... we do not have a problem here, and you are being made look idiots (more so than usual) as you're letting Donald Trump and the NRA pull wool over your eyes.
There are no mass shootings, nor mass killings, here in the UK, nor Paris, nor anywhere else, except by extremely rare nut jobs, and I mean extremely rare. The only ones which come to mind are Anders Brevivik in Norway in 2011 and Derek Bird in the UK in 2010... Remember we're going on the "modern" moniker given by CNN... Five years, both these attacks happen outside that time frame!
Look for the next killing spree in the UK, one does not look to the same year, not even the same decade we have to go back to the Dunblane killings in 1996.
This is what the world means, yes we all get this behaviour in our populations, people killing people, since time immemorial, the difference is in the US the tools to achieve such aims are so so much more readily available. They are not a "tool" to fend off a terrorist attack, guns just become a tool to carry out more attacks, more people killing people, in more places on more occasions. When will the American people wake up and smell the cordite?
I've spoken on these pages before, and even shown, that I generally code to a standard, one of the rules I have it NOT to use Hungarian notation, but to use a notation telling me the scope of a variable, and then give it a meaningful name.
Now, over the last few weeks I've been involved in a new piece of coding with a group of like-minded individuals. And what getter way to explain this oxymoron than through our coding standards.
Now, I like to use "m_" for member, lots of people can accept this, I like "p_" for parameters, a lesser few reject this than you'd think and some people even quite like this as they suddenly get to reuse their useful meaningful names, and in languages like Python they suddenly get to distinguish between locals, globals and parameters really easily... But then the controvertial one, the one which causes me most angst.
Locals being represented with "l_"... You might say the lower case "L" is asking for trouble, and I would agree, but I'm sticking with "l_" locals, and so did lots of other folks, however... I said we're a group of like-minded individuals... So not a group at all.
And so locals caused a bit of a flare up, because another chap had simultaneously, and without any prompting of mine, also come to the conclusion to use this same naming convension, however with one difference... He didn't call locals locals, he called locals instances, and so he used "i_".
Yes, that was it, the whole difference... "l_" to "i_"....
I could live with this, and when coming to look at his code I could read it perfectly well, and I was more than able to leave it alone, he however, could not, and indeed would not, leave mine alone. He went so far as to write a script which line by line, looked for "l_" and replaced it with "i_" whenever he pulled from the remote branches.
He then proceeded to commit this massive change, the result... His one liner alteration was lost in a swamp of about 35,000 changes in his check-in. Making his contributions near impossible to track. I asked him to keep this just to his branches, and to stick to the "l_" for the master or pushes he tagged for merging, but he simply would not listen, he changed every "l_" to "i_".
And the change logs got longer and longer, the tracking of bugs became harder and harder, until I decided to pull my support of the project, and this is important, not because it looked like a hissy-fit on my part.
But it demonstrated to me something fundamental about the project, I happily bent to others, I let them name and title things, I didn't fix their code, only stuck to my own, I published my coding standard and people started to adopt it within the group, but I never forced it upon them. Yet this one chap wanted to import and force his will through this tiny insignificant thing.
So, always, no matter your personal feeling, stay flexible, don't be that guy who insists on something for zero gain (or in this case much loss).
[Foot note: If your project/group/team has a manager, a leader, and is not a collective as the above, please disregard this, have a coding standard, make it clear, efficient and update it regularly, but have ONE person enforce it, don't let two tribes go to war over "i_"].
As a systems admin, or dev ops, or whatever your job title might be, never ever assume that the person you're handing a system to has a clue. This might seem harsh, but it's true, and proves itself true time and time again.
"Assumption is the mother of all f**k ups"
About a year ago I deployed a system which automatically sent requests to remote machines (via SMS) getting those machines to report their status or send back error information, but also to gather some basic information.
It has run happily for a whole year, it has been all pretty plain sailing, the hours and hours of work I put into it, to automate it and keep it self-sustained have paid off, zero faults, zero down time, self-regulation is the way forward for me; even if it took slightly longer to put the system in place, it has needed no human input for nearing a year! However, the unit needed to move, about a week ago, it needed be physically picked up and taken out of my small server room and into the official server room, a dark cupboard basically controlled not by myself or my cohort, but the IT boffins.
Fine, I notified the customers, went off to the IT area, sorted out who I was to hand it to and physically delivered it to the chap, I watched him start to plug it all back together, power, wires, boot, fine....
I assumed he'd do this seamlessly....
Until this morning, well a morning last week, as I post these with a date in the future. That morning was hell, I walked into a wall of customers not being able to get to their machines, the Easter weekend was looming, performance needed to be monitored, customer sites didn't have regular staff, explaining to temporary cover staff that system would be off was not a prospect I relished. To be frank, a lot of flapping going on, more than I expected... IT reported the system back online, but customers didn't stop flapping... Indeed, none of the estate seemed to be able to connect in... 1 hour, 2 hours, I've asked the boffins to check it time and again "It's fine", they tell me.
I look locally, I can't see the controller machine on the network, I can't see it through the remote management console... Where the hell is the machine?
I assure the customers I'll have answers within the hour, I hit social media with the same, this is going very public, and I'm rather annoyed as for a whole year things have run seamlessly; but been ignored, now its offline for a scheduled purpose and everyone is complaining, I do not want my success wiping away in a flood of negative press.
I call the IT boffins... "we'll look into it"... No, no no, you'll get onto it right now, not look, not glance, answers are needed. Action from you is needed before my Re-Action goes nuclear.
I wait, five minutes, I was willing to give them ten.... My phone rings...
Them > "Hello?"...
Me > "Answers?"...
Them > "Yeah, you know when you brought it back?"...
Me > "The Machine?"....
Them > "Yes"...
Me > "I remember, why?"...
Them > "Well, it has power"...
Me > "Good"....
Them > "Not really"...
Me > "Why not?"...
Them > "Because that's all it has, it's not been plugged into the network"
I hung up. They plugged it into the network, I had a slew of data come through... The customers were pacified. I however was not.
I've had an on the spot review, firstly the IT bod who did this was held to account, second I was held to account for not noticing.
In not noticing I admit that having had it run cleanly for a year I had turned off the performance reports and I admitted I had assumed a network machine being handed to an IT bod would be plugged into the network. People were not happy, least of all me, but that was the fall out.
However, I then had to do a tertiary clean up and after the Easter break I spoke to three of my main customers, trusted operators, the actual folk who should have been using the machines at the remote sites; not temporary staff; I asked them why they had not noticed. The replies... "Because it had worked for so long without an issue", "like you make it work, so we just guess it always is" and "we didn't notice it was offline".
They were very much putting everything into my court, assumption on the part of all parties was to blame.
The lessons learned for me are to now keep checking, keep monitoring, use my automation to report status, to fix faults and if human errors creep in, to let me know.
I'm now off to spec up a service I can run on one of my own servers, just to ping the network machine which went AWOL and receive a report from it to let me know what its up to, this might be a bit of python or just bash on a cron task, but it's going to be something rather than nothing. I will NOT assume again.
I'm going to talk about someone I know, whom I have known all my life, they consider themselves to have been brought up without the advantages of a modern childhood (my birth in the late 1970's and childhood in the 1980's being considered modern to their birth in the mid-1950's).
They once spoke to me about my having advantages they don't... That I could get work, when they couldn't (at least not at the time - the 1990's) and I admit that with the closure of the coal industry, the privitazation of Rail and Telecomms many "normal" routes of general employment of the British worker of yester-year were curtailed; though not closed off; in the 1990's.
But, I was still a kid, I didn't go to university until 1996, and I officially didn't graduate (despite working in the IT industry from 1998) until 2000.
All the time I struggled to keep myself in work, and have been now gainfully employed fulltime since 1998, no mean feat between Brexit today and the dot com bubble burst at the time of my graduation.
So, what was this persons point?... Well, their point was "We kids of the Baby Boom, were only had to replace the war dead, our parents had no interest in us".
They repeated this mantra in several slight variations for many years, and it always struck me as odd, even as a kid. Because I had read the history of the second world war, and here in Britain we can only count about 350,000 service personnel killed (328,600 according to wikipedia) and there were only 67,100 civilian dead, a total less than half a million people. Tragic, but nowhere near enough to warrant a ten year population boom from 1945 to 1955 of around 800,000 births per year.
A birth trend which went on for a peak of over 1 million live births in 1963.
That's millions more people, which this one person justified their upbringing as warranted for the loss of less than half a million lives in a war? A war which predates them by a decade?
Strange thinking... And only now, in the internet age can one really turn around and challenge such strange miss-conceptions, no you didn't have a poor childhood, we're on the cusp of living our days where the current generations are for the first time earning less per capita than the previous, that is only now, nearing seventy years since your birth, that's generations before now which have enjoyed living well.
Brexit brings uncertainty, our special relationship with the USA; ironically fostered during the Second World War; is one life-line we have, but the youth of today can't point to the Falklands conflict or the First Gulf War and complain that their birth was accelerated by a necessity to respawn the population after a devastation.
Such devastation of the population has not happened since the First World War and the following Spanish Flu epidemic.
Could it happen again? Perhaps... Will I be contributing children to repopulate? No. And will I cry that today we have iPads whilst when I was born we didn't even have an Apple 2?... No, of course I won't.
Having recently been speaking to some technical and none-technical people, both relation to staff I need, and indeed myself looking outwardly, I have come to the conclusion most people interviewing, in the technology sphere, today sadly fall into two general categories... 1. Those who talk the talk 2. Those who don't... What is the talk? Well, as a general technologist I don't talk in specifics, doing so I've always found overwhelms the listening. For example, "Network Connection"... This is perfectly sufficient to communicate to 99.9% of listeners what I mean, I can draw it on a piece of paper, make it an arrow or communicate it's meaning very simply. However, I was asked (last week) "what so you mean by connection"... The Socket... The Client-Server connection... The handle to the I/O buffer within my application to the TCP/IP Stack on the machine?!?!? None of my replies seemed to mollify them. Knowing this was clearly my not using the correct form of incantation from the necronomicon of buzzwords, I asked them what they thought I meant... Their reply stunned me, a little... "I mean the post stream packet set from after the first packet, containing the Syn flag, and the following series of packets over the TCP Pipe". I think I actually laughed, asking them, if that's what they really meant to ask as they were testing me, or that's how they seriously expected me to express myself... They didn't have an answer to this. "Network connection" was perfectly adequate to express the object of our mutual attention, but clearly this person had no wiggle room, no faith perhaps that they were not talking to a moron; despite their apparently having read my humble blog pages here.
So, where did this confusion come from? I think, putting it simply, I don't want to compartmentalise technology, I don't want to say "this is the interface", "this is the control", "this is the communication" and only one person or one team be involved into that one area. For a development team, or a single project, this can lead to almost an incestuous proclivity to sharing information with others. Rather, I see technology as a huge ecology within which we all live and work, move a team member to other libraries, or other parts of a project now and then, if they're not confident in the graphics slowly make them a junior member of graphics, if they are a strong outward thinking communications body, let them lead communications but have them chaperone those less confident with it through the same code. Share tools, and time and attention on one another.
This means perhaps means I don't talk "the" talk, I never jump to nuts and bolts, it's not how I want to communicate technologically, and was never how one communicated when teaching Karate, you had to build one another up to the same level of understanding, both at a personal and a working level. So, I will never talk about the raw metal, or the raw software libraries, instead I'll talk about "building the Exchange layer", I won't talk about "the CCTalk byte code interface" I'll talk about the hardware abstraction to simplify all these calls, and give it a name, such as the namespace within the code, so those driven and interested can go take a look at it.
If you take a look around this blog you will see the hundred of posts, they do explain an awful lot of information, sometimes they contain my opinion; I think today they're more professional looking, and perhaps are for a niche audience, but they will contain a lot of technical information... They don't contain "the talk"... But over 300 people read these pages every day, and most of the feedback I receive is about how clear the tutorials are, or how clearly I've expressed something about development, which was previously hidden in layers of this "talk".
If you speak to me about technology, I will want know what you are talking about, rather than buzz words, acronyms, or specifics. I don't know what you are working on, it could be PDF file generation from Geographic data, it could be time and attendance clocking systems, it could be automotive displays. The unifying thing isn't the minutia, it's being able to be generic.
Is this my problem?
Well, no, this is my blog and my little corner of the internet so I can pretty much say exactly what I like... I make you welcome to talk to me in the comments below, and I'm pretty sure with the hundreds of comments and hundreds of thousands of visitors we've each understood each other.
My question then is, why do some IT related folks, when they invite you into their little corner of the planet, why do they not understand me or even one another?
They seem to jump immediately to a check list of words they desperately need, to hear, they don't listen, they don't engage, they (I'm pretty damn sure) just want to follow their script rote to complete their task. Where as I want to speak to people who are as enabled and interested in technology as I am, without having to experience ten years working in a room with them before we synergy.
Likewise, I'd like to think presented with all these pages, knowing they were going to speak to me, that they would do me the courtesy of visiting this; my humble corner of the inter-webs; before asking me to engage in their merry dance around the knives of indifference.
Can you hear a banging noise?... No... Are you sure?... I can.. Oh no wait, that's my head slamming into the desk. A few weeks ago I posted about a friend for whom I uncovered a security loop hole for, the python script being run as root... Well, it seems the same person, on their main "enterprise windows server" has been similarly hacked by the same chap, but the trick was this one.... http://megalomaniacbore.blogspot.co.uk/2016/04/windoze-security-loop-hole.html Yes, a loophole I had mentioned and blogged about. The loophole was exposed by a C# program the chap had written for them, I'm not sure what it did, but it was run as a service, and could spawn other programs under the same user, he'd written it so that it ran any program in a sub-folder then before he'd left he made it run a VLC remote desktop and another small program which opened a "Save As" dialog. It opened this way way off screen, at something like location 20000 x 4500. So the only indication it was there was a small twitch to the task bar, but he used the mouse to the browse the dialogue to the command executable and opened himself a prompt as the administrator user. I didn't spot this, I didn't even look at this machine for my mate, instead over the weekend I had a machine at home I was using as a network routing test, and I asked for some space on a remote server with a fat pipe to do a slow-loris type attack on my software. I set up my end and set up their end, expecting to get something like 200mb/sec attacking me and swamping my little 64K buffer (I could then scale and tune my software to defeat this kind of attack, was the plan). What I noticed was that I only got around 8mb/sec coming to me, so with my remote session I did a little digging and saw the disk activity was around 34%, with no-one in the office?!??! The developer they'd let go was running a torrent service from the machine! He was downloading and seeding several video streams of dubious merit and origin. I didn't change anything, I just called my friend and explained... And I left it there, I'm yet to hear what was going on. However, I think my friend will be having a word with the IT Admin he's had in place for nearing a month for not spotting that out of hours and weekends this persistent idiot is still infiltrating and using their systems as his own repository. I've told them three times now to unplug everything and to put a secure router between their switch and the outside world, something brand new and only set up by them, pfSense perhaps, but they've not listened.
Today I've had to deal with a security issue for a friend, a certain department manager had a machine with a set of serial numbers for each of his developers tool stack, quite expensive stuff, these were stored in a text file on his desktop in a folder called "serials".
The problem? Before Christmas an individual was asked to leave the company, his parting gift?... He stole all the software.
They knew this because he got a little drunk with a common friend of the manager over New Years and boasted he'd be starting his own company with the same software stack... We're talking about £4000 worth of software.
The machine the chap was working on (windows 7) was pretty locked down, he could not install, nor run a cloner, nor could he add a drive or boot from CD/USB or even get into the BIOS settings to take the software directly off as it was installed.
My friend, investigating, suspected that the chap had simply taken the serial numbers, the manager frankly denied this. His machine was checked, no-one had been accessing it other than him, there was no file sharing set up and it too could not be booted into anything other than the Windows 7 installation on the machine....
There was no-way, in the managements eyes, that the software could go missing... My friend suspected different... And so co-opted me to help, getting a copy of the disk I was not able to log-on, but I could see a whole bunch of scripts run at start up, whenever ANY user logged onto the system, they ran a series of scripts, one of which was a batch file (slaps forehead).
This batch file was stored as a regular file in a folder "C:\devscripts" and could be written too... I had a hunch this was where something could go wrong, but couldn't initially see how, the file looked unchanged... But then I noticed a hidden folder... a git repo metadata folder... in the same directory.... It seems the source of both this folder and the file was a git repo, so updates to the devscripts would be stored and commited to the git repo... and pulled to each machine every-reboot.
But the git-repo was open for ANYONE to commit to!
The developer had simply, within the massive cloud of commits, committed a new batch file to the repo. This new script started the python interpreter with the command line "-m http.server 8080 C:\Users\<manager>".
The development machines used port 8080 for the remote debugger, and let this connection start without warning the user that a new firewall rule was required.
The developer then simply used "wget --spider" to pull all the files from the managers desktop, this included a bunch of documents about staff performance and of course the serials folder in it's entirety.
Once he had all these files, just before the festive break and his departure he committed the original script again which removed the starting of python. He did this in the midst of the sprints to the break no-one noticed that their commit numbering had slipped by a place!
If he had reverted the repo he'd have needed the managers approval, but as it was the script just went from green to a yellow to a green against their sign off system, so no-one paid it any attention that the revisions had slipped in date & time. And that the sign-off system didn't treat the signature of the commit as being different was a bug in the system.
So the lessons to learn...
Don't let batch files start as the root user on a machine, EVER!
Don't update said files from a public or even open internal source
Don't just ignore any subtle changes (like the commit number order changing) when you observe them!
And when you fire a developer, fire them! Don't let them sit there with anything connected to your network, you just fired them! They'll want revenge!
Why do some companies do software backwards? I'm not going to be talking about my employer, this isn't a comment about the work I do for them, it's a comment about a company which supplies us, and whom has provided subsystems for us. Building blocks which we want to stick together into a product... A little like putting together a PC at home, you build the machine, but Intel make the CPU... I hope you're getting me so far...
The problem I have is the increasing number of vendors whom seem to see Software as either, at best, an after thought, or at worst, an evil necessity.
The software in your systems today are the glue which hold everything together, they coordinate the physical to the component level, if you make a great button to turn on a great machine that's fine; if it's mechanical; but if that button is driving a piece of software, a trigger, a service or just a PIC for heavens sake test it, think about it, write the software, try it yourself!
A great chef should never ever deliver a dish to a table before they have tasted it! So you as a software engineer, as a provider of components, as a system integrator should taste test your own software!
The number of absolutely abysmal software packages backing up otherwise very good products is ever increasing, and it's not acceptable, either as a third party receiving such devices to re-package, integrate & push upstream, or as a consumer spending their hard earned cash on items which then go on to not work.
I review very many things, and many of them are let down by Software, and it's not acceptable; get quality Software Engineers into do your code, don't just pay the tea boy to bash up a script over a weekend!
And if you're not sure about your software offering, you think it might need work, post it clearly and neatly on github (or wherever) for the customer to take a look, don't obfuscate things, don't hide behind great massive Red Wood Tree style tall stacks of build tools. Because as much as I like Docker & Yocto & CMake & Make & Gradle and all the others I've used right down to DOS Batch files or Bash Shell scripts, if they don't work for the customer, if they need their machine setting up a certain way, with a certain set of libraries DO NOT blame the customer when they turn around and reject your product because your documentation is utterly lacking in depth or accuracy!
But today it seems the moronic thing has listed a whole plethora of my pages as "Sex"!
This blog is anything but!
And they're owned by Raytheon now, you know the US defence contractor, the ones who make missiles!... How can you trust any of their code when it does this amount of false positives, and is doing six whole years after I first pointed this out?!?!?!
I have been working hard to update the styles and appearance of both here on the blog and my YouTube channel. I figured with some videos having 10K views it was time I made the effort.
The problem however is I'm not artistically able, at least not on the computer.
So I figured I'd pay someone to do it, I figured a couple of hours of someones time, an hour to jazz through with me what they can give and taking my ideas on, then an hour to do the job.
The problem... No-one out there seems to read anything, which bodes pretty badly for my blog here.
I posted the job to "freelancer", and waited, within seconds I had people professing to be able to deliver. They'd not read the job spec, they'd just bid. And assumed based on the title, what was required.
People, let me share with you a nugget of wisdom: "Assumption is the mother of all muck ups"... Feel free to exchange that 'm' with an 'f'.
To assume what I want based on three words was utterly wrong... the three words were "Design a Logo". But the meat of the task was "YouTube Channel Banner". No-one got this.
When I took a screen shot, stuck arrows on it, and posted the spec from google, and even recorded this video:
Look at that carefully, can you spot what I spotted?... yes, despite making the video, and giving the link to 3 potential designers of my stuff, NONE of them watched it... NONE of them read the job spec.
It go so bad an experience so quickly that I pulled the plug on the task.
No-one read the job spec, no-one read what I wanted, and even the later applicants for the task hadn't read anything I had posted.
I may try again, but certainly not on Freelancer, I might find someone via deviantart.
You already know I stream a lot to Twitch.tv, despite making zero income or anything and have pretty much no viewers, it lets me at least think I'm involved in something - seriously guys, I get like 100 views a day on here, go check out my twitch, and my YouTube! They're linked on the right by the tips jar - which you could also use.. *cough* cheap bastards.
Anyway, what's my problem today?... Well, I've had ANOTHER copyright strike on Twitch, this is the second, the first time was a false positive, it detected god knows what from a truly free royalty free music source. As a consequence I stopped steaming with music, despite nearly everyone else being able to do so, I didn't want to take the chance.
Today's strike though beggars belief. It reckons I'm playing Shaggy's rendition of "Mr Bombastic"... I am not doing any such thing, this is a video of me talking... and Tinkering with a server...
Do I look like Mr Bombastic? Am I totally Fantastic?
I am getting so annoyed with this, because when you submit your appeal, it does not go to twitch, or a forum, it goes off to some mindless entity and you get this horrible worrisome message about their submitting your details to some court in California.
News flash twitch, you'll have to drag me kicking and screaming to get me to go to California, and also the sound doesn't contain any music, and I certainly don't sing!
I've had a bit of a battle with Virgin Media over the last month, I noted I was suddenly, and for no reason, on a very slow connection (at least slow to my liking) it was showing up in tests as between 46 and 52 mbit... STRANGE! Since I thought I was on 100Mbit and was trying at the time to get onto the new Vivid200 mbit.
Anyway, after doing some calling around, and basically being given the run around by sales, I got through to a chap in the right department, who was able to sell me things AND look at my account; they seem very able to sell stuff to you, and take your money, but you ask for something and you get stone walled.
So, this chap checked my account, 50M sir, you're on our 50M service?... I thought I was on the Big Bundle thing, on the tele?.. 100Mbit etc... Oh You were sir, but your contract ended in 2016...
So, did they continue charging me?.. Oh yes.. Full whack, but they slowly eroded both the channels on the TV package and the speed of the internet, I guess hoping they could provide less and charge the same, or even more!
I set about trying to rectify this, and got exactly nowhere, online chat, telephone calls, even twitter didn't budge them into action, they didn't give a hoot!
Therefore, I set about getting what I wanted the underhanded way...
What I wanted was to jump from 50mbit to 200mbit, leaving the TV and landline telephone as was, the problem?... No human operator on any channel, in any department, nowhere could give me this, I was even told you could not order this combination! That my kit didn't support it! That the wires were wrong!!?!?!
When I pointed out that the wires and kit are theirs, sort it, they basically hung up on me.
Online in my account however, I could see an upgrade offer... For a free I could upgrade to some new cables.. DOCSIS or some such thing... So, I ordered that...
A week later, I checked again, the new offer was for a free upgrade from 50mbit to 70mbit. Are you still with me here?... So I chose that.
A week yet further on and I had 70mbit, and the option to pay £1.50 more per month to upgrade to 100mbit! So I ordered that.
And yet another week on, I finally have the option to order 200mbit for an additional £5.50 a month, with 6 months at £2.50...
I have this arriving, through the ether as we read this...
So why the delay? Why did the humans say they could not leave my TV and landline alone to just uprade the speed?... Well, seems they could, they could all along, they were lying, or their training didn't expose them to the workings of their own systems. Whichever it was, I was very very frustrated by the whole affair, and I've made it known.