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.
As a programmer I spend a lot of my time either looking at a screen, using a keyboard or both. As such over the years I've gotten quite particular about both, I like a nice crisp screen (or more than one to be honest) and I like my keyboard to be mechanical and be one I enjoy working with, rubber domed plastic crap from hell... For eight to ten hours a day, no thank you.
The screens, today it's easier to get nice screens, so I focus more on what's on them, which will generally be my IDE or text editor of choice on the Operating System I happen to be on at the time.
And I've come to loath the themes available in some IDE's but only in very specific circumstances...
Lets take the majority one of my time, Microsofts Visual Studio, it comes with a dark and light theme, I like both... I LIKE BOTH... But I like them in different circumstances. The Dark theme I like when I'm in my own dark room, when it's late at night, when I'm not interacting with others. Because (and maybe you get this as well) if I look at brighter text on a dark background the text sears a blot into my retina, not a problem if you're in a dark room, but then in a bright room or an office where you then need to go interact with others you're left with the problem of this blur in your vision... So I keep dark to my own space at my own time, I know when to Dark.
Light themes, I use in the office, I find it doesn't alienate anyone (programmer and non-programmer alike can get into dark text on a light background), and it keeps my ever changing focus in an open plan office from distracting too badly a vibrant and colourful display, I know when to Light.
The problem? Well, seems many people don't, I've met a programmer recently whom steadfastly would not look at my work on my machine as it was "too bright"... Like he was allergic to LED light or something. Literally telling me he couldn't read the code... Not because of formatting, not because of a lack of understanding or bad coding standards, but because I was in a light theme.
Folks, stop now and learn when to Dark and when to Light. Please.
I have a terrible relationship with food, my childhood was pained with my mothers dreadful attempts at cooking (nearly everything was either burnt or tasteless, and the menu variety was dismal) which resulted in my binging on sugary treats, cheeses or bowls of cereal to make up the deficit in calories, fine when one was training Karate four times a week and burning the rest off in walking places as I had no car. But a problem as I reached my thirties, with two broken ankles Karate left the options list and furnished with terrible eating habits the weight came on board.
Even the good-food I ate as a child, notably my Grandad's cooking, was heaped on me "big eats" was one of his favourite sayings, fine when I was a growing child, but later in life this feeling of needing to eat stayed with me.
Combine all this with a clear genetic predisposition to be a big lad - my Fathers side of the family are all rotund - and a sedentary job in software I'm now approaching the big four zero in age and too big to be comfortable.
Things have to change, habits, time taken to cook, and my tastes.
Habits are going to be fairly easy, if there's nothing there to tempt me, no biscuits, no cake, no crisps then I can't indulge my habit, if I swear off buying anything I can't consume it. This will have to include Subways and McDonalds when taking a break from the office, and have to include take-aways at home.
Takeaways stray between the line of a habit and the time taken to cook, sometimes a quick meal is needed, however, I think I have to now admit there's a problem and the wife and I must pre-cook and freeze something better for us, rather than getting a pizza or curry or kfc. This is going to be something I think we need do at the start of each month, I'll cook up a pot of pasta sauce or a baked meal, divide it and freeze portions, so instead of a take-away a week, we reach maybe one or two takeaways a month - halving that input.
Now, at one point in my life, before I met Jo, when I was deep into playing Eve-Online and World of Warcraft, as a single man, living alone, earning a good wage, I reached for the take-away menu every night, literally I'd have a dominos delivered every night of the week, five days a week, rather than shop... I can't believe how much I must have spent on that, but at the time, it never struck me as odd. The fact now that spending £25 to £35 a night, could have been the same as a £3 pizza from Asda makes me a little sick. I have to hold onto this feeling, we'll cut the waist line and enhance the wallet.
Finally the tastes, this is hardest, I have a very sweet tooth, this comes from the legacy of my mothers dismal cooking and from the hard fact that she never experimented, Italian cooking was not really ever seen, nor Indian, heck I was over sixteen before I had a Pizza... (seriously). When Indian cuisine was first introduced to me, I was about twenty, had to go out on a Works Night out, and had to pick this meal... We went to a curry house, and I literally had no idea what to have, not a clue... I'd always been taught curry burns, it's horrid, doesn't taste nice...
Indian Curry, proper curries, are lovely - my favourite dish today! - yet my mother, because one of her ex-boyfriends clearly thought an Indian meal should involve petrol bombing your taste-buds and that's all her limited mind would let her remember, we never had curry at home, ever.
When I met my wife however, I also met my mother-in-law and she can cook, oh boy can she. There's also the danger of over eating, but through this good cooking I've learned I like sprouts, like green beans and cabbage... If they're cooked right, the rub goes back to time.
But the time has come for this tum to run.
Exercise is the last spoke of this wheel of strategy, with my ankles not being what they were, and never being able to I can't take up running nor do I want to, but we did take up swimming earlier in the year, I think the swimming has to now take up time, we need to go from one 30-45 minute session a week to at least two, or three. I'm even thinking about bugging the wife to arrange a morning swim time, so we go before work for me one day a week - this will mean going to bed early to get up early.
The other exercise is to be found in walking the dogs and exercising the pony. With the dogs, I need to embrace the walking, do more of it, we already walk between 3/4 and a mile each night, but I think we need do this at a higher pace, to get up a sweat without killing my ankles.
And as for the pony, we need to take her out more and lunge her more.
Lunging, is quite good exercise for you, when you do it right, as you are constantly moving, and even running with the horse to let them take up the line.
Then there's the carting, the recent videos I posted of this, don't show that for a long part of this journey I was actually running along behind the cart, as we dismount to let the pony pull up hills - and it's quite hilly where we live. So that can happen, jogging along behind the cart.
Scarily though my target weight is going to have to be split into two halves, the first is my prime target, what I must loose... Two Stones.... This has to come off of me within six months, this means losing about 4.5 pounds a calendar month, and the calorie intake for this based on my current life-style is 1200 calories a day. I'm going to feel pretty rough on that, so the exercise levels have to rise in order to let me eat and feel comfortable but still loose this weight.
So there, that's my plan, a bit personal maybe, but the gut has gotta go.
I've just been party to a conversation about a project elsewhere in my work place, my team is not involved, I was observing passively (alright, alright, I was ear-wigging).
The conversation was quite heated, one member of staff was adamant things were fine, whilst another was adamant they were inadequate. The two of them were at complete logger heads. The driver of the conversation ran like this:
"We're not really designing software, we're asking everyone's opinion, writing it all down and only picking the things we really need to do" As an agile developer this is essentially how I run my team, we write every possible item down, everything and I weight them, schedule them and during out sprint hand-overs we reorg whom is going to tackle diffing parts of the system to share the experience and share different things. This chap however, was incredulous... He expressed "WRITING EVERYTHING DOWN" as a bad thing... He only wanted to do the things he felt fit, he wanted to sit down and look at the specification, produce an analysis and ONLY do what he suggested. This would have made perfect sense to be towards the end of my academic study of software development; before the reality struck home in the work place, and I was flabbergasted to hear this chap simply working twenty something years in the past. I mean, he's old... This company is old... But, not that old surely?
I literally caught myself tipping my head to one side as if trying to pour those words, and the way they were said, back out of my brain.
He didn't stop there though, he sat and without knowing it essentially dismissed as absurd the complete concept of Agile development; at least Agile as I use it...
"You'd be constantly juggling which task to do next, swapping people on and off tasks.... What would you do? Meet daily, what would be the point?"
I'm not sure whether this was genuine inflexibility or purposefully derailing the effort to adopt agile beyond the scope of my own team, whichever it was, it sounded and felt extremely awkward. It makes me wonder quite if anyone outside my team actually uses Agile processes around here...
As someone controlling projects it's sometimes hard to get into the action with others around me, the best way is to talk to those people, to be involved to offer anything you can; perhaps not opinion, but fact to start off with. Over time working with people this way I've always found you are invited into the more intimate meetings, the nuptials of the project, if you will.
This is a natural, human, process. Great, or grand, projects such as Nasa's probes to the outer planets in the 1970's had much press attention, indeed some projects such as Nasa'a Magellen probe of the 1990's had press not only present, but directly interacting with the engineers and scientists (and then writing excellent books - "The Morning Star" by the late Henry S F Cooper anyone).
However, the mundane and private enterprise contains projects of a lot less public interest, indeed they are private interactions. And if as a member of a company you've not yet had time to foster those friendly interrelations to gain constructive access to the meetings about a project you do find yourself as the Outsider.
You can hop and jump and try to peer through the murky world of hints and conjecture, but without getting up and digging into the project this can be hard work. You may just want to help, but those inside the project might perceive you as stepping on toes, or going beyond your bounds of responsibility.
This is where the management have to see something, if you're already in a position to approach the project as a higher grade or manager role and offer yourself into the loop, that's easy and relates back to building bridges. But if you're not, management have to recognise and apply you to the project.
Beyond team membership, stepped aside from the scrum master, and not overarching the product owner; to use the right buzz words, that is you have to literally be a fly on the wall and then slide yourself into position to help, rather than hinder.
How you do this is dependent on the people, you can offer code review, document review, hints or tips on hardware or architecture. You can assist the team members or scrum master, even getting a round of coffee in can be that little bit which helps keep the folks on track.
But without yourself oiling the cogs of development with presence, approachable and an obvious willingness then you will likely remain the Outsider, you won't be on the ground floor for development meetings, you won't be in the loop with e-mail about project, you won't even know what is going on around you. If you end up in this situation, you need to address is up the chain, to push for somewhere to help yourself fit.
You always need a good manager above you to help with this, and in return you need to help them in order to help yourself.
I had a programmer sat with me the other day, he seems a good one too, though I've not seen his actual code. And he surprised me by peering at my development environment and saying...
"How can you program without line numbers on?"
He was serious, we were exchanging information to ensure I wrote code to meet his coding standards... So why not program with line numbers... Well, I could be annoying and say, I don't write BASIC, so I don't need line numbers... I also don't count K-Locs as a form of reward as to how busy I've been, nor use it as a measure of how productive I am... So really I have to ask myself the opposite, "Why don't you program with line numbers on Xel?"
And the simple answer for me is experience. Maybe you're different, and you like line numbers, if so "This is not the article you are looking for, move along... Move along"... But to answer for myself, it is simply because I'm human, and the human mind likes to see patterns, it likes to see things and tries it's hardest to impose some semblance of meaning into them. And for me, if I turn line numbers on then I expect 5 to follow 4, and 4 to have followed 3, and 2 to have come before 3 but after 1... It's an order, and in modern code it is an incorrect order because we should be writing, if not object orientated, then at least functional code.
Functions can be called in any order, objects can be instantiated and used differently by different users, your code itself might do one sequence one way today but a different sequence tomorrow. The functions themselves still do the same single job with the same input, as per their definition, but code as a whole is no longer linear.
So over time my personal experience has told me to group my code into a simple, but not formal - until this blog post - order, which is "Constructors at the top", then the functions defined "in order of frequency of use", so if you have an update function called all the time in a class, put it at the top, so its easy to spot after your constructors. Especially in a language like C++ where your constructors can be very brief - or should be very brief, if they're not go rear Scott Meters & Bjarne Stroustrop on the topic!
And then functions are laid out in order of use, least used or single call functions are at the bottom. I've just come to this pattern, its quite hard to even define it here in words, I suppose I should give code examples, but I'll leave this for another day and come full circle to answer the question "How can you program without line numbers on?"
"Code/Function use is not linear, don't give any indicates to your mind that it is, and if you're going to argue about the contents of one function, your function is too long, break it down into sub-functions which will fit onto the screen as a whole and so you don't need line numbers you can see the whole function in a single pass of the eye".
I've been taking a fair amount of time to look at how people play World of Warcraft, the multiboxer works for me perfectly, it suits me, but then I wrote it, what I'm looking at is a wider player demographic to see how others use the interface, how they interact in both PVE and PVP, whilst multiboxing with other software and playing solo.
The aim being to tune my interface and responses.
One thing I've noted a lot from hardcore PVE content players is this tendency to have their camera pulled all the way back... Here's an example from Preach
The camera is way back and angled way up high, I think more than the default controls let you, so this is customization of the UI in action. But don't you think it looks more like another Blizzard game... Yeah it looks a lot like Diablo don't it....
Yet this is World of Warcraft... I might need to sub my main account and go try a few things out - bite the bullet as it were - because the multiboxer at present does feel like its working better down at character level where the main character you're leading around can help you keep tabs on the following boxes.