Saturday, 29 June 2013

Comments or Spam

I have a huge apology to make to some of you folks out there - I've just been looking at the settings for this site and I've noticed there are two areas for comments... "Published" and "Spam", you may have spotted that I remove ones which appears to be adverts from time to time, but I'd never been in the Spam one.

I've just been in there... There were like 200 comments from all over the world, mainly people saying thanks for some random piece of information I've spewed out over the years, a couple of college kids asking for permission to use code snippets I've thrown up, and citing references to my site back to their work.

And even just people who  have read though my rants and had a laugh and so have said so.

But Google has been sweeping these folks off as Spam, you are not spam folks, I've restored ALL the comments in there - rather than reading them all - so anything dodgy, defamatory, nice or horrid has been restored to this site.

If I spot adverts I'll re-remove them, but with the threat of missing comments from folks, I've restored the lot to working order - some dated back to 2011 - some 2012 and some very recent.

So Sorry folks, it was automatic rejection of your posts, not me myself doing it.

Armed Forces Day

Today is Armed Forces Day in the UK, and we're honoured to have hosted it in Nottingham - its still going on - and I've been listening to the festivities on BBC Radio Nottingham because I'm at work today.

But I was really thrilled this morning when at the junction of Derby Road turning to come into work the Red Arrows and an Electronic Command and Control aircraft went right over me at about 200 feet... was beautiful and put a huge smile on my face.

Funny enough I phoned the wife to tell her, and about 10 minutes later, she had the exact same planes still streaming red white and blue smoke go over our house!... So we both had that thrill.

Friday, 28 June 2013

Bjarne Linked to Here...

I'm stunned, and a little honoured, that my tiny - and not very good - review of the latest C++ from Bjarne Stroustrup actually caught his attention and he linked my review on his site... I'm truly shattered I got noticed.... I wish I'd done a proper review now.

I have continued to read the book, its such a delight to behold too.  My preferred approach is to go down the references at the end, pick one of two items - sometimes at random - and then look them up.

A good one last night, which had me all excited was "to<int>", I spotted this nugget and was excited to potentially see a way to tidy my recurring use of boost::lexical_cast<int> (et al), reducing the function to something like "std::to<int>(std::string)" I was rushing page after page to get forward into the book and find the reference... Doh.

Its not a new entry in std::algorithms or anything, it was a function Dr Stroustrup had written further into the book.

So, I'm going to keep using "boost::lexical_cast" for the foreseeable future.

Yo Dr Stroustup, if you come past my blog again - I'm honoured you visited, thank you.

Thursday, 27 June 2013

Naming your Software

Sometimes you just have to give it a swanky name... I've been fighting to get a piece of software accepted into the main system for about four years, one manager veto'd it totally, another simply ignored it as a need, today a third manager voiced his opinion the system needed a certain functionality, so I set about dragging my same idea back out and regurgitating it to him.

The reply I got was a sensational "I've been asking for this for about four years!"... Really, cus I've been blocked by incompetants from delivering it for about four years too!....

The difference however, appart from this new manager wanting the functionality, is the name.  You see it had a really boring name, "System Data Retriever"... Boring...

So I opened up google translate, flicked it into English-to-Latin and set about putting some words in... Razor... Flash... Alsorts of those marketing terms to get a response... I settled on "Assassin" you can go translate it yourselves, but the result was instantly obscure enough and yet pronouncible to be accepted.

Lesson learned there folks, don't innovate, don't speculate, don't frustrate, just regurgitate the same old ideas - rejected or not - but you best damn make sure they have a funky name!

Friday, 21 June 2013

Follow the Spec

To adhere to the spec, or not to adhere to the spec, that is the question:
Whether 'tis Nobler in the mind to suffer
The Shits and Giggles of deranged device performance,
Or to take Assembler against a Shit load of troubles,
And by debugging them: to develop, to release.

Thursday, 20 June 2013

Spend Thrifts

As I've covered in a prior post, I'm having problems with a network card of mine, it keeps dropping the connection, this would not be a problem, but sometimes you really need a network.

I had thought that this was a problem specific to how I use computers, but its not, you see I take care of computers, and things in general, for instance I have the same scientific calculator as I had in 1989, it even has the same batteries!  I'm frugal with things, mainly because I never really get new things.

Where as I see a storm of people around me putting al-sorts on credit, cars, clothes, the Apple Fan bois, the lot.  I don't, no-one around me really does we sort of keep things on the level and do as we like.

Its the extended people, friends of friends, people at work, or even at my age the kids of people I know, spend spend spend.

What was bugging me was this personal spend crusade seems to be diminished directly around me, so I'm a spend thrift, I pick the best things for the best price, I compromise and I make the informed decision, not expensive stuff on tick, no chap stuff hindering the progress.

And this latter problem has been heaped on me in spades today, cheap shit hindering progress.  The network card being one of them, a physical IO device another, even the simplest of things - like a USB keyboard - A £4 plastic thing which'll break within a few months and then I'll need another £4 plastic piece of shit, rather than spending £15-£20 on a decent one right now and things progressing nicely.

The network card is the perfect example, its the cheapest DELL machine they wanted to buy, its the on board NIC and its cheap as chips, you can't replace the mobo as its DELL proprietorship to the case, and you can't put in a separate network card to replace it as a. that would cost and b. the case is so cheap as to not have any external slots remaining after the graphics card was added.

Its all too little, too small, not forethought, and that's what annoys me, you have to think a heads, in software, in hardware, in spending in life.  I know when you're young and innocent you want things right here and right now, I read a lot about the "start up" mentality rushing a head with thoughts and ideas, sometimes it pays off, but more often than not the invested capitol is sunk into rapidly depreciating junk.

So mature companies, like the one I work for, try to avoid this sink, they try to say a PC bought for £400 is still worth that two years later, or they try to say you've had that machine "only five years".  And that's one whole argument to keep the bottom from falling out the books.

But, in this case I'm incensed, I've taken my time thinking about this all the way home, I've tried to see how my sitting waiting, my sitting watching is a good thing for them, or for me, and its simply not.  Not least because all this could have been solved by investing in a decent £50 network card a year ago, rather than the cheapest DELL desktop they could list.

At this point in my rant I'm going to take a mo, because I've just bee drafting this, and like all rants I draft what's just been going on this minute, and minutes ago the wife marched out into the rain - trying to get the dogs to have a pee - and she broke my umbrella.  A minor irritation, its broke, it was raining, what can you do... Well, I didn't stand in the rain and get wet, I threw the thing down and came in and started to blog.

The calculator is right next to me on the desk, and I'd been pondering it all night, how I still have it, and my old Atari ST under the desk.

The umbrella breaking - its a 1989 vintage black nylon umbrella - and its finally given up the ghost, it had a bent end, and a dented shaft, the struts were loose, but it was my umbrella.  It broke and it pissed me off.

But it does not deject from my underlying thoughts about this whole frugal mess we're in.

Terry Pratchett touches on it better than me, when he describes Sam Vimes married to wealth Lady Sybil, but he still wants to buy $10 boots.  He can "feel the street" and feels himself in the $10 boots, but also Pratchett so carefully illustrates, while old Sam might have bought ten pairs of $10 boots when he could ill afford them, the rich guy buying the $70 pair which last saves in the long run!

I have never been able to save in the long run, and now because I was mulling my thoughts the wife is pissed at me because I drafted on here about a fucking umbrella...

I'm pissed with the impass of spending at work, pissed it wastes my time, and now I'm pissed the wife is unable to leap from my simple plain talking on here to realising its not about here, or the umbrella its about a larger topic which I've now written about.

Gah, fuck it, signing off.

Oh, and I just got 7 air kills in War Thunder, but still only 8K lions, how do they work that out!...

Porn or Cinema

I'm pretty sure if a man was directing this, it'd just be called "Porn", but because a woman is directing, it'll be considered legit cinema.

Wednesday, 19 June 2013

Developer/Programmer Communication

I've just had an encounter with an over defensive programmer, how do I know they're over protective?  Well, I was just telling them of the potential for a bug, I wasn't saying there was a bug - there actually isn't - but before they go off and do a piece of work I pointed out something fairly obvious with the physical machine.

Now, us software guys sometimes focus on the software and miss the physical and this happened to another team on this very same piece of kit, so before this chap went too far I just showed him the machine and asked "Have you noticed this?"... "No" he said, and looked, and was just fine...

Until I said "In code you have to beware of it"... the moment I said that, and remember he admitted he'd not spotted this problem before, the moment I mentioned his code or work... defensive defensive defensive.

You could accuse me of teaching him to suck eggs, but a very experienced team of folks missed this same issue not two weeks before, this lone chat working away in a room alone might very well miss the same issue but unlike a team with proper approach routes to advise and solve the problem this lone ranger is basically able to do his work and fade into history, leaving a gaping bug!

But his defensiveness just pissed me off, it was like "How very dare you point that which I have not spotted out", the annoying thing is I needn't have bothered myself, I needn't have had his attitude splash over me, I could have just sat back waited and then tested the results and pointed it out then weeks down the line!

I've learned - hard lessons - over time about being too defensive, I find it much more oiling of the cogs of interoperating with people to admit your can at least have a look at a problem, if not even just admit a fault - even if its someone else's and in someone else's code - and you fix it, and get the work done.  And if possible document what went wrong, how, when and why when the thing is actually working.

Its one of those things which helps you get along in software, you might know very well what you're seeing reported as a bug is not even from the code you write - I know I have - or you might be getting the sinking feeling there's some intermittent or timing related bug; which are always fun - NOT!  And if you get over defensive all you do is anger the tester/user and stop them wanting to help you, and that's what they're doing finding problems, or showing you how they actually use your software product they're helping you, they don't have to bother they don't have to use your software, they can ignore it and do any/all possible other things rather than use and support you creating their solution for them, and so you end up on the loosing side.

So, if you're a developer, don't jump on the defensive, be calm listen and don't put the person communicating with you down, remember if they stop doing their thing you miss out on so much.

Addendum: This chap just decided to come back over and have another moan at me, this time saying no-one had told him about the problem... I told you, two hours ago, and you got all defensive and pissy with me...

Tooth Rattling Pursuit

Random piece of information for the world... The track "Pursuit" by Gesaffelstein manages to hit resonance with my left rear molar which has an amalgam filling... Feels really weird.

That kind of Day

I've had that kind of day, nothing has quite gone right, software has gone wrong, even integrating well documented devices has gone wrong... And then I played a few rounds of World of Tanks... Well...

It didn't go too well...

Monday, 17 June 2013

The C++ Programming Language Fourth Edition

I don't particularly like the copy we get out of Verity Stob over at The Register, however today she brought up a subject I was already going to blog about.

The new edition of the C++ programming language from Mr C++ himself... Bjarne Stroustrup.

I got this for my birthday - yes I'm that sad; or that dedicated to my craft - to request for my birthday large tomes all about the work I do.  I believe I'm a rare thing in the UK software industry for this - least I'm the ONLY developer with my employer who bothers to read and keep my knowledge up to date*.

However, I had other things to finish up reading, so I only just got around to reading the book last night, and in about 20 minutes reading I updated two pieces of knowledge, learned I could port some code I use from a boost header into using the standard functional header and I discovered a new form of constructor chaining.  This was a tiny delve into the book, and really that sums the book up, you can learn something new nearly every other page - even as a seasoned C++ developer I was still updating my knowledge.

I made copious notes of little snippets of code to try and am thoroughly entranced by the elegance of the book.

I'll be blogging more about the snippets I pick up as I go, depending on how important I think they might be for wider use - specifically how I use some of them - like the functional stuff I just mentioned.

* That is, I'm the only person to keep my knowledge up to date without any nefarious alternate reasons - like updating knowledge in an effort to get a different job or fudge an interview for a role on a language I know nothing about - which is something I do observe a lot.

Wednesday, 12 June 2013

Outlook Web Mail

Here's my review of outlook web mail - which I've oft moaned I've been forced into using - from a working e-mail system to this piece of shit.... And that's my review...


And just so you can see just a few of my problems with it, a picture speaks a 1000 words.

And yes, I've tried it on all the major browsers, I try to use it from different locations (i.e. different internet connections) and from different Operating Systems.  It just does not function sufficiently, and I'm fast becoming forced to have to resign myself from using it - after over 15 years using that e-mail address - which is a major MAJOR ball ache.

Monday, 10 June 2013

Office Carpet Angst

Its one thing that they're interrupting us working to lay new carpets, but I take exception to the fucking radio they have on...

This is an office space for programmers, we usually have a quiet area and our headphones on playing ourselves soothing music...

The carpet layers have a fucking shit mono radio playing, and its so annoying... So very very annoying...

But I suppose I can't complain, this is the second lot of layers we've had, since the first lot were wankers.

Wednesday, 5 June 2013

Turrets and Totty

I was just listening to the latest edition of Mingles with Jingles (number 8) and he mentioned the pictures being released of the tanks for WarThunder ground combat...

I've not seen them, so of course I set off to look for them...

So, I googled...

I jumped into Images, and then had a scroll down...

Sometimes, I love where the internet takes you....

Tuesday, 4 June 2013

Assuming Values of Variables is Bad - Function Parameter Lists

I've had a situation just now, which amused me, a none programmer decided to sit down and help work out some logic for a program they were testing and they worked this logic out and sent their findings back to me as some pseudo code.

Great I thought, someone actually thinking about the task at hand, the chap involved is actually champing at the bit to become a programmer I think - the fool, he has a far more interesting job as it is, and he'd earn no more money nor gain more plaudits - anyhow...

I received this missive and was immediately struck by how obvious it was this chap was not a programmer, or not a competant programmer - for he'd fallen into the same trap a none-programmer or poor programmer would have fallen into.

They had assumed the starting position of their research, assumed up was up, or the sky was blue, and us programmers know never to assume the start point of a test, never assume something is right, go take a look, add a watch, output it, if it an input know its value before you assume it, check its not null, check its in range... We just know this, its second nature if you're worth your salt.

And it was really crushing to have to reply to this chap - and I had to, I couldn't just say thanks ba-bye now, cus he's waiting for a new build from me - and I had to say "Fantastic, thanks a bunch - BUT"... and then explain he'd assumed he knows what's going on.

If he's trying to become a programmer, then good luck to him, he'll soon learn not to dance with the devil - hopefully before he make too many of these mistakes - but those poor programmers out there assuming stuff like that - I'll not forgive you like I forgave this chap...


Code horror, I just found this cardinal sin:

void foo (int param1, int
param2, string param3)

The breaking of the line in the middle of the list of parameters is fine, but breaking it between the type and the name... arg, argh... hurl heavy object.. NOOOOO!!!!!

I much prefer to either have short lists of params all together so you can read them:

void foo (int param1, int param2, string param3)

or if that goes off the right, or the list is much much longer, breaking the list down vertically, so it can be read off, or comments put with each parameter, thus:

void foo (
int param1, // First first
int param2, // Used to calculate Tax
string param3); // The name of a good psychiatrist

Monday, 3 June 2013

Linux Installed & Portal Played

A mixed bag of a weekend I must say, I've spent a some time fixing up my main working PC, its now got a fresh Ubuntu 13.04 install on a nice fast drive, I've fitted a lovely new SATA DVD/RW drive and I've cleaned up a load of problems.

I even tried out the Portal(Beta) on stream on Ubuntu - which ran fantastically well - though I could see some graphical tearing in places - notably in the vibrating lifts.  Having never played Portal before however I was pleasantly surprised at how good it was.

My wife got a little pissy with me however, it was distinctly obvious she wasn't coping with my receiving gifts when she was not, she got very obviously and restlessly jealous.  So I had to give in and we went for a two hour walk in the country side - I picked the worst shoes for this and so I'm suffering a little this morning, but she did shut up and leave me be.

Sunday, 2 June 2013

Birthday Begins

This is a bit like Batman actually, which is why I've snuck that homage into the title, you see for years I've had either some things I want/need for my Birthday, and sometimes I've had jack shit I wanted nor needed... Cloths spring to mind, with a mid-summer Birthday I always used to get winter socks... WTF MAN!

Anyway, about five years ago I put my foot down with those around me, I asked politely, and not so politely when they didn't listen four years ago, to back off with the unwanted stuff, I asked people to stick to Amazon vouchers, cold hard cash or nothing.

My best mate responded with Amazon vouchers - and today a new DVD/RW drive for my PC - Thanks mate!  The wife has responded by listening intently to what I want, which basically entails her sidling up next to me and asking me to pick something off of my Amazon wish list - thanks honey!

And that's me happy...

My Birthday has effectively begun - its not for a few days - but since I've been working and will be working on the actual day I'm taking today as my Birthday - not least as I just fitted the new drive.

I think its the Birthday of my one and only follower too... Tomorrow I think... Happy Birthday Bram!

Saturday, 1 June 2013

Office PC Broken

Okay, I've been reduced to working on a very old machine, my main development machine - a Core i7 with 8GB of RAM and dual displays has networking and USB issues and since I'm working on a USB and network orientated project I'm unable to work upon it.

Asking IT for a replacement/support/fix is about as helpful as punching myself in the gut, they have no spare machines, they have no support they can take my machine off of me and send it back to the vendor for repair - taking weeks... And when I point out I'm on a deadline for a project important to the company they just shrug, shit they do not give.

Hence yesterday I had a ferret around in the spares pile and put together an old single core Celeron with 2GB of DDR2 ram and a small Sata hard drive... I had to resurrect this with XP - as we have no licenses for windows 7 in 32bit - and then I had to get Visual Studio and all the other tools set up...

The up shot is a glacial pace to my work, I'm sitting waiting for compiles and I'm writing out what I need do next before the system is back up.  Its actually so horribly slow I may - today while alone in the office - swap my broken unit for one from another sucker who's not about and explain myself on Monday, because this project is critical and yet the response to helping me get on with it has been a near consistant shrug.

Only two people have helped keep this project moving, and they work dozens of feet away, and I can't thank them enough, but those closer to and in positions which should furnish me with the tools to get things done... ner... they can't be arsed, they're busy, they're more important than doing projects which might make the company a profit.


The problem with the machine on the networking side seems to be a similar problem which a minority of users of this particular networking chip experience, the Intel-82579LM chip on the card seems to have issues.

Ironically I'm so locked out of this machine by IT that I can't even update the drivers to a more recent version, and they've taken a look before and come up with naught, whilst I hit google the once and found others having the issue.

So, sorry for mentioning this and maybe bringing people in here from searches thinking I have a solution, because I don't... sorry.