Posts

Showing posts from June, 2017

Computing Education 2017

Here in the UK there have been several waves of trying to educate new generations as to the art of compute science, this started when I was a boy with the BBC Computer Literacy project and concluded soon after with a drought of interest from non-technical educators and politicians a like through until fairly recently. The BBC reports that there has been a low amount of uptake of new Computer Science GCSE studies. And I can believe this, however the neither the BBC nor government seems to even point as to why this is, they talk about pupil disengagement or lack of interest. I however contend that the government and educators and indeed the BBC completely fail to spot the elephant in the room, kids study not for jobs or skills, however they do study what is emphasised, IT has always been an "also ran" topic, it's not Maths, nor English nor seemingly as important in appearance as any other topic out there. In my day this was the case because few understood computing, today

Development : My Top Three Testing Tips

I've said before, and I'll say again, I'm not a fan of Test Driven Development, tests and test frameworks have their place, but they should not; in my opinion; be the driving force behind a projects development stream - even if it does give managers above the dev team a warm fuzzy sense of security, or if it allows blame to be appropriated later, you're a team, work as a team and use tests on a per-developer basis as a tool not as a business rule. *cough* I do go off topic at the start of posts don't I... *heerrhum*, right... Top Three Automated Testing Tips... From my years of experience... 1. Do not test items which are tested by masses of other developers... I'm talking about when you're using a frame work of library, ensure you are using it correctly certainly, do this at training or with your coding standard, but then do not labour the point by re-testing... Lets take a good example of this, the C++ Standard Library. The Standard Library contains many

Development : Coding Style Clash

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 troub

Bash : Power of Pipes

Subtitle: "Get IP Address Easily" When I say easily, I mean not so easily, but with the proper tools... Let me explain, it's been one of those days... I've a remote server running some flavour of Linux, and no-one knows it's remote IP Address, they all SSH into the box run " ifconfig " and note down the value, they then plug this into a config (or worse still were baking it directly into some code) and running their services.... The trouble of course being, years later, they're no-longer the programmers nor maintainers of this machine, I am... And to be frank whenever the IP address changes I don't want to recompile their java code, nor use vi to edit the various configuration files, I want a script to at least update the settings automatically. I therefore changed their code to load the IP address, not hard code it, and used some other scripts to put the IP address into the config file at boot... The first line of that script is what I'm goi

Development : Peer Review Pillock

I don't generally stand by the idea of peer-reviewing all code, not at least until a product is passed from it's original creation pass, that boot strapping has to be all done and over and a certain amount of confidence in the product has to stand before I believe every change needs to be peer-reviewed (certainly group code review internally as you produce that first sprint to a working product - and remember always try to push sprints to working builds, never break things - but don't ask everyone to peer-review every change when there are literally hundreds happening an hour as a system comes online).  Anyway, back to my point... I assigned my work for review, we're using git, so the pushes upstream get logged and anyone in the team can pick to peer review, the ticket system I'm putting together myself shows whether a change was peer-reviewed or not, but does not make them mandatory. New developers joining my team however have to spend an amount of time loading the

My Moroccan Work Week

Image
Many moons ago, when my then boss knew I was the dogs danglies, I used to get sent to work at offices all over the world, and today I want to tell you the story of one of those journeys to and from the "office". I live and work out of Nottingham, and this one time I had to go work out of Casablanca for a week.  Now, for those of you not aware of this, I do not mean I went to work in a black and white film... Casablanca is a real place, a city in fact, in the North African country of Morocco, exotic... Maybe, if you like that thing. Anyway, I was in my early twenties and sent on this trip, I spoke broken GCSE French, and was handed a few thousand French Francs (yes it's that long ago, France still had a proper currency, with a history and everything). The journey began at an indecently early hour, a driver to take myself and a pair of cow-orkers to Heathrow, no big deal, though the driver had a tin of sweets which he was really really over proud of; he was also sceptical I

Development : No Great Shakes at SQL

I was just handed a technical test, this was for a job interview, and I was a little... well I'll say surprised, but then shocked, by the reply, lets take a look... I was handed these SQL statements, in several questions, and then told to summarise what I should see on any output of the various instructions.... create table customers (id INTEGER PRIMARY KEY, name Text, age INTEGER, weight REAL); insert into customers values(73, "Brian", 42, 33); insert into customers values(1, "Helen", 12, 12.5); select * from customers; SELECT name, CASE WHEN age > 18 THEN "adult" ELSE "minor" END "type" FROM customers; create table orders (id INTEGER PRIMARY KEY, customer_id INTEGER, desc TEXT); insert into orders values (0, 73, "Apples"); insert into orders values (1, 73, "Oranges"); insert into orders values (2, 1, "Bananas"); select * from orders; SELECT customers.name, orders.desc FROM customers JOIN orders ON

Black border.... KitKat

Image
What have Nestle done?... I see on the packet it says "Now with more Milk & Cocoa", but the chocolate is bitter, catches the back of your throat, and it's not as nice or mellow as it used to be.... What have they done? It's the end of an era... The end of KitKat, I doubt I'll ever eat one again...

Tech Job Interviews... Derp

I'm not saying who for, and I'm not saying what for, but over the last three months I've been on a little spree within the jobs market for my kind of career, I've been through phone interviews, technical tests and face to face meetings. And I've noted a pattern in how things to, they go one of three basic ways... The first is that the interviewer likes how I hold myself, how I present myself, but they've read nothing about me.  Now this is a large blog, I've written a book, and I publish quite a lot of information about how I work and what I do... To not read this is tantamount to negligence, either on the part of the interviewer or the recruitment folks putting you through for a role. When I find myself in this situation however it lends itself to my favour, as I can answer questions posed to me, and beware that as thorough as the opposite party aimed to present themselves they've already demonstrated to me that I have to tick the boxes in their filter

You know...

You know that moment, when it's been over a week since you blogged, and yet you feel like it's been five minutes as you're so busy... Yeah, I've got that feeling right now... So I thought I'd take a moment to list a few planned projects I have for these pages, if I ever get time for them.... The first is to look at the Intel TBB library, this is intended to assist in taking full advantage of the multicore capabilities of Intel chips, not something that has ever fully come into my sphere of interested (beyond running threaded code with posix threads or boost::thread or std::thread of course). The second is some more Javascript, Python and MySQL interconnection code, in order to write a ticket/development control system, this is because I need a new one, I'm a little tired of the ones I use professionally, and the good ones out there on the interwebs are generally paid for, or limited for free, services.  So I want something super simple to handle my tickets... &q