No Comment

There seems to be a push towards not commenting code, with the general argument being that if your code needs commenting, it is too complex. I kind of agree with the sentiment here, code that is tough to comprehend is bad, but I think this is an oversimplification.

In my experience, at the point at which we are writing the code, we are terrible judges about what is too complex. Things we think we will be obvious to anyone [including the new person, straight out of uni] reading through the code turn out not to be obvious, not even to us – six months later when we are trying to track down the cause of a bug in said code.

There is a secondary argument, that comments are not always accurate, because…

The author of the comments has described the intended functionality of the code, but this differs from what it actually does.
The comments may not accurately describe what the code *is* doing, but they might neatly explain what the developer *intended* for it to do and that could be very useful information when you are searching for that oh so elusive bug.

The comments have not been maintained in line with the code and are now stale.
People don’t always do the right thing because reasons. Expect the bullshit but never accept it. Do code reviews; include the comments in the review.

If you find yourself writing comments like “Increment counter”, you should stop. If you have contrived to produce some horribly obfuscated, overly templated, pointlessly typedef’d hell that requires a comment the length of War and Peace to justify, you should be stopped. But if all you want to do is try and give a helping hand to the next person, get to it. :)

I am still learning. I hope to carry on learning forever. I might well be wrong about all or some of these things. I might change my mind on them in the light of more experience, or different arguments. I am totally okay with this.

The Uncertainty Principle

A new code review system is being introduced at work which will see new/changed code formally peer reviewed before being accepted to the code base.

Sounds great!

It is, from the point of view of streamlining our development process without compromising on quality.

I sense a but?

But… the whole thing has me burning through spoons fast.

How so?

I’m worried because the process will force the two kinds of interaction that I find most troublesome when working with NTs:

1. Following a set of rules.
2. Providing fact based feedback.

Rules and facts; no offense, but isn’t that what you guys live for?

Ha, no offense taken and without speaking for all autistic people, it does seem to be generally true that we like rules and facts.

So what’s the problem then?

Well, following rules around NTs is hard because they don’t follow them. Or at least they often treat them as optional. I can’t do that. I’ve asked the Rule Makers and been given clear guidance that I should always follow the rules. If I break the rules, I am disobeying an instruction – clearly wrong. If I follow the rules, people get frustrated with me – clearly undesirable. So I just have to wait for the conflict.

And providing feedback, what’s the problem with that?

Essentially, it is the uncertainty of the interaction – I have no scripts that I can use to guide me.

Practice makes perfect, I’m sure you will pick it up.

I doubt it. I develop scripts using a trial and error approach, but this requires predictable results and in terms of providing critical feedback, I can find no pattern in the responses and reactions I have observed. I have spent the past few weeks trying to prepare in readiness for the change, informally reviewing the checkins and working on providing feedback without upsetting or antagonising people. This can’t hurt, but I know it’s not going to help.

What are you going to do?

I’m going to make sure that I use the review process tool to the best of my ability to try and ensure the quality of our code is as high as possible. I’m never going to compromise there. I’m going to try my best to spot patterns in behaviour and change course before DEFCON-1 is reached. And if an NT locks on to me and malfunctions ED-209 style, well, I just hope someone is able to pull it’s plug before my skin turns green.

Post tune: Ludacris, Beast Mode.


To quote myself from yesterday, “140 characters is not always enough to convey a point properly, especially not across languages and cultures.”. Hence, I am finally publishing this post, which has been sitting in my drafts folder for quite some time, even though I realise the subject matter has the potential to ignite exactly the behaviour that is describes (I really, really do not want that).

People have a right to express an opinion, people have a right to disagree and it’s okay to debate them, even passionately. What is not okay to me and what I want no part of, is a pile in on someone with a different opinion. Agree to disagree and move on, don’t perform a mental DDoS on an individual in an attempt to overwhelm them into submission. To me this is just another form of bullying. I hate bullies.

This point is especially relevant with respect to the way in which people use social media. I am a pretty prolific tweeter (twitterer?). I now unapologetically distance myself from the hashtags and accounts that I see as condoning, promoting or engaging in what Asam Ahmad refers to as “Call-Out Culture“. It makes me uncomfortable to see good people who have been misunderstood, or may have taken a misstep, being besieged by an army of people who seem more preoccupied with being part of the mob rather than educating the person, or letting them apologise. I hate bullies.

Writing posts like this is hard, because there is so much more I could say. I realise this is a somewhat meandering post that lacks a definitive conclusion, but I would just be opening myself up to the sort of response that I am referencing if I was to offer one. So let that be the conclusion: I think it is wrong that people are afraid in this way.

After thought – I think this problem is exacerbated by at least a couple of factors online:

  1. The assumption that everyone is a fanboy, that we all exist on the extremes of opinion. You have an iPhone? You must hate Samsung and Google and Android and kittens and you must now personally accept responsibility for every decision that Apple have ever made.
  2. Prescribing people opinions and traits based on their gender, race, etc and then writing off their experiences and opinions as worthless as a result. You’re white, male and identify as a gamer? You must hate everyone and everything!

Skills to Pay the Bills

It took some nine or ten months, but this week I finally completed the Life Skills training course that I started in the summer. It was hard work, but satisfying and I shall miss it.

The hardest session was on eye contact, which I can only assume is analogous to being probed by aliens. In the final session we recapped some of the things we had learned and when the subject of eye contact came up everyone got really interested in the carpet. I think for the most part my technique of looking up for four or five seconds and then looking away again is passable enough in the NT world.

The biggest realisation was how much I struggle in an environment with rules that are not enforced and people who exploit this. I am unable to function in such situations and end up feeling incredibly isolated. It is inevitable that at some point a line will be drawn between the two sides, but I will never be the one to cross it and so conflict is a certainty. I suggest that the people who choose not to follow the rules are normally choosing the path that requires least effort, as if they were motivated by the idea that there was a better way of doing things then they would surely work to change the rules.

The most valuable thing I learned was about identifying friendships and true friends. Unfortunately I have not managed to learn these things through trial and error in life, which has led to repeated error. I am working hard on applying this one. Temporary people are not my friends.

I will miss being submerged into an autistic environment.

Call of Duty: AW – Part 2

Call of Duty AW has been out for a little while now, long enough that the first couple of patches have dropped and I have prestiged. Time for my initial impressions.

I feel I have to touch on the single player mode, even if somewhat briefly. I know a lot of people skip the campaign altogether and I have always thought this was a shame as it is 50% of what you are paying for and always delivers an enjoyable experience (even when the MP offering has been horrible). This year is no exception. I am not that far in, but the story is compelling and the gameplay is solid.

My multiplayer experience is best summarised as follows: I’m having fun. For that I salute you, Sledgehammer. If this game had been like Ghosts then I would have probably not bought a COD game for a good long while.

The slightly longer summary is: I’m having fun and the bullshit level is currently tolerable.

The games plays fast and I like this. It may be a little too fast, but I think it is just going to take some getting used to.

The weapon class balance feels about right; the initial imbalances have been addressed to a degree. The weapon balance within classes is okay now, there are viable options in each class and lobbies are no longer packed exclusively with people using BALs.

So far, sniping seems to be Black Ops 1 style. Until MP is built on an entirely different engine, the quirks which allow quick scoping to happen will remain and all the developers can do is try and make it harder. I think they have the balance about right. Sniping is useful, but not all conquering.

Talking of engine quirks, the bullets that go round corners and busted camera angles are still real. It’s bullshit, but it’s not getting fixed anytime soon and with experience, you can use it to your advantage.

Exo abilities are pointless, as are ‘nades. I don’t use them, I don’t need them, I would rather spend the loadout points on perks and attachments.

I was initially running two primaries, MW2 style, now I have my classes stacked with perks and attachments and only use a secondary with my sniper.

Campers: they will always play the game and I will never understand why. How can it be fun to sit in a corner, go negative and lose the game?

Glitchers: as long as the glitches get patched in good time and the report function exists, then the cheaters are not much of a problem to me. Sledgehammer have done a good job here.

Spawns: revenge spawns have and will always suck, in objective game modes the enemies spawn to close to the objective – it’s almost impossible to hold an objective down and there is no time to reload even.

Maps: the maps seem pretty good. Only one stands out as being a bit derpy, I forget it’s name, but it’s the one with the ruined temples.

Cheap shit: the only thing in this category is the System Hack, which is probably the most shitty streak ever, especially stacked with double time and run by an entire enemy team. Please Sledgehammer, nerf it good. On the plus side though, no proximity mines, no dogs, no overly powerful killstreaks, people are not dropping nukes (DNA bombs in this iteration), nobody is using n00btubes. Most battles are gun on gun.

The scoring system rewards people PTFO and the streaks are score streaks, rather than kill streaks.

I think Sledgehammer have done a really good job with this game and they should be proud of what they have accomplished. Looking back at my previous post (I deliberately didn’t read it before writing this), Sledgehammer have ticked most of my boxes.

Aside: I am amused and somewhat fed up with YouTubers complaining about the skill based matchmaking system. Complaining about being a casual gamer, stuck in lobbies full of try hards, makes no sense. Your approach dictates if you are a casual gamer, not your competitors. What you actually mean is that you dislike not being able to lobby surf until you find a lobby full of n00bs to stomp and look good in. Cry me a river.

Call of Duty: AW – Part 1

August will see the MP reveal for Call of Duty Advanced Warfare. I thought I would try and capture my thoughts on the franchise in general, as well as the next iteration specifically, before the hype train hits full speed. My intention is to follow up with another post in November when the game has just come out, to provide my initial feedback and then a further post sometime later to see how valid my initial feedback was.

I dislike Ghosts. A lot. I sometimes still jump on for a few games, but that is about as much as I can take before I get bored and frustrated. I have put in far fewer hours on this game than I have any other CoD title. Everything about the game encourages slow, campy game play and this is simply not conducive to having a good time. The maps are terrible, the killstreaks suck (the dog does not suck, but is way OP). This game can be summarised in two words: IED and Stonehaven. On the flip side of that, Infinity Ward have, in Ghosts, made the most technically sound CoD game I have ever played. Lag comp is minimal, hit detection is excellent and I glitching is minimal to the point of being insignificant.

Function over features
I do not want to see a stack of new features unless the problems with the existing features have all been addressed.

Emphasis on PTFO and not K:D
If the game mode is not FFA or TDM then do not publish the kills and deaths in the scoreboard. Publish caps, defends and score. Players should gain score based on PTFO; kills performed whilst attacking of defending the objective should be scored more highly than regular kills. In FFA and TDM the objective is to kill, so in these modes kills can be rewarded with more score. This should help to avoid streakless games of TDM from BO2.

Simple game mode choices
FFA and TDM available in regular and hardcore. Some fun modes in a separate playlist: gun game, OITC, infected, stick and stones, etc. Team tactical: TDM, Dom, Demolition, CTF and hardpoint, all with teams no larger than five or six.

A variety of sensibly sized and not too intricate maps
Ghosts is boring in part because the maps are too large and too intricate. MW2 and BO1 probably had the best mix of maps that suited all game modes. These games also offered a good mixture of backdrop; snow, jungle, urban, grassland. Stonehaven and nuketown are simply horrible to play. Check the objectives in a line or a triangle, put three paths between them.

Working spawn system
The spawn systems seem to have got progressively worse in terms of spawning you in front of an enemy. In Ghosts I have genuinely been spawned facing away from, and in the cross-hairs of, an opponent.

Avoid features that highlight flaws in the engine
CoD suffers from issues with camera angles that mean sometimes you can be killed by someone you cannot see (despite looking right at them), but who can see your whole body. MW3 suffered from horrendous lag compensation issues that exacerbated this flaw. Ghosts brought the lean feature to console for the first time and actively encouraged people to abuse this flaw. I am particularly worried with how the exo suit in AW will work with knife lunges and strafing.

A properly balanced game
All perks should be counterable. Weapons should have different characteristics that make them more/less suitable for different styles of play and situations.

No nuke/M.O.A.B/KEM or similar
These killstreaks encourage camping and boosting and not PTFO. If something like this is included, it should at least not instantly end the game.

No quick scoping
A. Sniping was perfect in BO1; competitive and useful in the right situations. Sniping was terrible in BO2; a sniper rifle should not be the weapon of choice for CQC.

No OP equipment, especially if it is unmanned
The IED from Ghosts is cheap. It is low (no) skill. It encourages camping. The grenade launcher remains OP from MW2; speculative use, multikill achieving grenade launchers are again low skill. C4 has been OP in a few games, but probably reached the height of its powers in BO2; I have no problem with C4 as long as it cannot be replaced with scavenger and cannot be thrown like a Frisbee. Tactical insertions are not missed, they should not come back.

No death streaks and no second chances
If someone gets dropped, they die. The end.

No lethal support streaks
Support streaks should only be things that can help your team, not things that directly harm enemies. UAVs, ammo, vests, all fine.

The ability to turn off the music in the menus
Okay so I know this last one is just me, but I hate the music in these games and IW always prevent you from turning it off. Why?

Hopefully, November brings a fun game to play. One thing is for certain, the FPS landscape has never been so competitive. If SH slip up, then I think people will start seriously looking elsewhere.

Hey Jo, what do ya know?

So, I made it to thirty.

In some ways I have changed lots, in others not at all, and I am totally okay with that: life is a lesson that you learn when you’re through. I last used that quote on my blog just under seven years ago. It is amazing to think of all the things that have happened since then.

I still have lots to learn
I started a training course last week that will run through to the end of the winter. If possible, I will share some of the things I am learning. No promises though – I’m not sure how much of this stuff I want to share. I do sometimes wonder about taking this blog somewhere else and making it anonymous, I would be able to share more that way.

At work on Friday, someone observed of me “You know, I’ve never heard you bullshit anyone.”. I think it was an observation rather than a compliment or insult, but I was left feeling happy that this was the way I was seen. Honesty above all other traits.

Political Apathy
I’m thinking I will bring back my political apathy series soon. I have already started receiving flyers and letters from candidates hoping to gain my vote in the next general election. Each with more spin than an electron. I’d quite like to elect Russell Brand; I love the Trews.

Made a new one, seemingly lost some old ones. People always seem to be temporary fixtures; the amount of effort that gets put into a friendship and the experiences shared seems to have no correlation with how easily some people just slip away.

Minecraft looks like something that would pull me in Tron style. Currently I am content to watch YTs play, but I can see myself giving it a go in the not too distant future. Very much considering cancelling my pre-order of Destiny. Having been one of the first to place an order and having waited so long for it to be released, it really sucks to be playing the beta solo. I have knocked out a few games this year; I really enjoyed both Knack and Watch_Dogs. BF4 single player was good – I didn’t go anywhere near the bag of hurt that was MP. I am looking forward to COD:AW, although mainly for SP, as again, solo MP sucks balls.

It took some getting used to, but I think that at this point I can safely say that the beard is here to say. It survived a trip to the tropical paradise of Florida earlier this year, where in fact it flourished as my trimmer would not charge up. I switched to shaving with a double edge blade a while back and shaving has gone from being something I hated, to something I love. I bought my first bottle of conditioner at age thirty. No decision has been made on how long the beard will get, but hockey beard status has been achieved (this was the original goal).

Shiny New Car Day 2014
Sometime at the end of autumn I will hopefully be recieving my new car. What can I tell you, I have grown up. Instead of the pick up that I had my heart set on when I came back from Florida, I have instead listend to my Mum and opted for a sensible four door, with better fuel economy than what I currently have. Okay, by this point my Mum will have stopped reading, all that other stuff is true, apart from the sensible bit. As sad as I will be to see Rebo go, I am really looking forward to gettng my hands on Venni. That’s right, he has been named after a rocket ship. Yeeeeeah buddy! I still have a few months to wait for his arrival, got no concrete road trips planned, but hoping to go back to Liverpool.

WWE at the Brighton Centre
For the first time since the European Rampage tour of ’92 the WWE is coming back to the Brighton Centre. I got tickets at ringside for me and cosmicbadger. If the timing is right, he will be the first passenger in Venni.


Sometimes I have to tune out the world because it all gets to be a little too much to process.

As the story was breaking about the latest mass shooting in the US and details started coming through, I got a horrible sinking feeling.

The news media seems to only have a few ways they report stories like this. Terror attack, ghetto thug, mental health issues. A white guy with an English sounding name from a privileged background? That’s going to be neatly wrapped up in box number three. They could try following the evidence CSI style instead of developing a story and trying to fit the evidence to it, but since the advent of 24 hour news channels the emphasis is on entertainment and audience numbers rather than education.

A new data point surfaced, the shooter had been diagnosed with Asperger’s Syndrome.

Thanks by the way BBC for empahsising this point, good work. I especially liked your little paragraph explaining what Asperger’s was. I struggled to find the same level of emphasis when it turned out he had not in fact received this diagnosis.

Shit. Here we go again. We did this with the Sandy Hook shooting already. I know how it plays out. Suddenly, “Ass Burgers” was to blame.

Come on people, at least do enough research to be able to spell/pronounce it correctly.

My twitter TL slowly began to fill with the testimony of millions of experts in autism/Asperger’s/mental health. I never realised there were so many knowledgeable people out there. I mean, I was totally fooled by your complete ignorance on the subject and failure to understand even the most basic of facts about Asperger’s.

And so we are further stigmatised. By a bunch of lazy reporting, ignorance and hatred. A whole host of negative qualities ascribed to us. A whole host of our qualities mocked and derided. And nothing has been done to actually try and work out what did cause this tragic event in the hope that it can be prevented from ever happening again.

Good work.

*puts on headphones and walks away*

It’s not black and white

One thing I have learned about being openly autistic is that people will often give me the “It’s not black and white” speech. Truth be told, being openly autistic has only made this speech come about more often; I have heard it many times in my life, even before diagnosis. I think this is a classic example of the kind of misunderstanding that many neurotypical people have when it comes to autism: I think in “black and white” means I am decisive, not that my decisions are extreme. I think in “black and white” does not means that I distill all decision making situations into a set of binary options; it means that I examine all of the options and then commit to one.

Many fragments. Some large, some small.
The logical, analytical thought processes common to many people on the spectrum mean that they can take in a huge amount of information, parse it, and arrive at a decision in pretty quick time. For me, this involves running simulations. I conciously run a best guess simulation of events that would be likely given a certain decision, to see if it has merit. I am making comparisons to other information stored in my brain. I am linking things using a picture based index system (I think in pictures not in words).

Isn’t that SPECIAL?
This process is rapid. I have often observed that I am able to run all the scenarios and make a determination much faster than the people around me, even when there are several scenarios that are considered viable right up towards the end of the process.

You see those two guys over there? They want to take your books away!
Sometimes I realise I do not have the information I need to be able to make a determination and I set about filling in the gaps. My brain snaps into Johnny 5 mode; I crave input. Once something catches my interest, I will not rest until I have satisfied my desire to know about it. Related to this, I am often able to determine that the stated reason for a decision is not plausible. I get frustrated by such situations. I wonder how people expect me to understand their position/decision if they deny me some of the information?

Malfunction. Need input.
I hate it when people do not tell me the truth. If the information I have is inaccurate, my decisions are likely to be way off: garbage in, garbage out. Please do not give me bad data, it will make me cranky. My need to make good, balanced decisions outweighs my need to be nice to you. It is often very obvious if I do not trust the information I am being given simply by the number of questions I am asking.

Don’t fuck with my program!

The A-Team

People tend to treat development processes like religions. There are lots of extremists.

Everywhere I have worked has taken a somewhat agile approach to delivering succesful software deployments, without subscribing to any single agile approach in its entirety.

I have found that one thing, in numerous forms, is key to the success of agile: communication.

It is important that the development team is close knit and pulling in the same direction. Regular stand up meetings help to keep everyone on track and provide the most notice of blockers and hence the most chance of avoiding/mitigating them.

It is important that customers (anyone who consumes the output of the process) have opportunities to provide input, feedback and guidance.

It is important that the documentation burden is minimal and that all documentation is clear and concise.

Communication requires dialogue. If only one side is investing in the process then it is unlikely that the information exchange will be succesful. Further more it is likely that the input will not be received in a timely manner. I know, I know, one of the principles of agile is being open to changing requirements at a late stage of development. The key word in that sentence is late, there will always be a time when it is too late. Attempting to change requirements within a sprint, whilst expecting the overall duration of the sprint to remain the same, requires a certain level of delusion.

One of the distinctions between agile and other methodologies is the emphasis on people rather than processes. The streamlined processes require discipline and trustworthy and motivated participants. Agile demands the ability of the participants to sustain a high pace whilst maintaining their focus on technical excellence. As such, holding people responsible for their actions (or inaction) is not a bad thing. After all, it is only a mistake the second time it happens, the first time it is an opportunity to learn.

To me there is nothing ground breaking here, so why do people insist on making it so complicated? I suspect it is because agile quickly highlights weaknesses. A wise man once said “A players like to work with A players”.