Sunday, 28 December 2014

Not a computing book this week

This week I have read the Roadcraft the police drivers handbook, I had read the previous edition and the update has a few good common sense approaches. I did like the idea of constant improvement through reflection and asking questions about performance to gain insight. 

book cover, road with police car, green background and bold white text

A couple of the take aways apart from reminding me of bad habits I need to correct. 

  • It is pull push, I always push pulled. It is smoother to steer their way.
  • Do not wrap your thumbs around the steering wheel, due to possibility of hitting potholes high kerbs and breaking a thumb. I did this as I was always told if you wrapped your thumbs around the steering wheel you could lose them if the airbag deployed.
I liked Knuth's presentation,2014 Kailath Lecture: Stanford Professor Donald Knuth

Old half broken blog from hacker news, found the article interesting. The Bipolar Lisp Programmer.

Visual studio short cut, you can repeatedly press ctrl +  v and cycle through visual studio clipboard. Handy working on other machines where a clipboard manager such as ditto is not installed.

Saturday, 20 December 2014

Design of everyday things and challenges

Keeping up with reading, this time I read The Design of Everyday Things. There are a lot products in the book that I have encountered, a sink I couldn't empty or a tap that looked weird and took a few seconds to work out rather than just being obvious. Apparently it is all poor design, most I agree with especially hob control layout. 

A5 sized book with green cover, yellow title, with image of teapot having handle and spout on same side

Take aways for me are,
  • Affordances, a chair affords sitting.
  • Anti-affordances, put a slope on a control panel so people don't put coffee on it.
  • Signifiers, a clue of what should happen or what to do.
  • The 5 whys.
  • Poke yoke, idiot proofing.
People make errors, slips and mistakes, in fact this is not always our fault, humans can live with the situation being a bit fuzzy, machines often need precision. Asking humans to be very precise is not a good idea. 

For all of this I bought some new shoe polish, cherry blossom, it is actually made in England and cheap. The point is the tin, instead of the wedge which has to be twisted all you do on these is press and the tin pops open. Simple effective design. 

Small tin of shoe polish with press here to open displayed at the bottom

Still been going at the coding challenges, the grey-scale image one, simple yet nice to see something other than console output for a challenge 

using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;

namespace Challenge179
{
    class Program
    {
        static void Main(string[] args)
        {
            var path = @"C:\Users\R\Desktop\bikers.bmp";
            var pictureStream = new FileStream(path, FileMode.Open);
            var rawImage = new Bitmap(pictureStream);
           
            for (int i = 0; i < rawImage.Width /2; i++)
            {
                for (int j = 0; j < rawImage.Height; j++)
                {
                    Color pixelColor = rawImage.GetPixel(i, j);
                    var newColor = (int)Math.Round((pixelColor.R * 0.21) + (pixelColor.G * 0.72) + (pixelColor.B * 0.07));
                    rawImage.SetPixel(i, j, Color.FromArgb(newColor, newColor, newColor));
                }
            }
            rawImage.Save(pictureStream, ImageFormat.Bmp);
            pictureStream.Close();
        }
    }
}




Also properly tackling an intermediate challenge without asking for help or browsing the already prepared solutions, I am pleased. Challenge 181. 181 iterates over speed average speed camera logs to check for the limit and car registrations. 

Little bits, blog has now been up for six months, behind with my own website and should get on with the MVC book. Looked at a lot of algorithm and Maths books, how much this will help I don't know. Going to re-read the pragmatic programmer. Hopefully this will give some insight into how far or how little I have come. 

Sunday, 14 December 2014

Challenges, car stuff and found podcast

This week, I have managed a couple of challenges, Re-formatting dates from one file into another was a fun challenge, at least I learnt a bit about the DateTime library, even though I did this one manually. Challenge 188.

Second challenge, of words within words, it seems there are a couple of ways of doing this, by building a binary tree apparently this works very quickly for very large sets with the penalty of building the tree. For the ~179,000 words, iterating over each string would take a long time, using hash set time went from 10 minutes to finish the first half of words beginning with 'ato completion in under one second. Challenge 190. My solution after refactoring came out very close to the reddit C# solution.

Noticing some of the guys at work using the dark colour scheme for visual studio, I tried it and you get used to the darker colours with a little less eye strain. 

vs ide with black background and text highlighted in orange for strings, blue for types and keywords, otherwise white

Sadly someone ( I think ) stole the roof rail plugs from my car as they have to be levered out and one was on the ground next to the car. Ordering plugs for a MG-ZT the part number is DYB100121, nearly £4 from Rimmer bros they are not good value. They did come with a website printed on the new part, skiffy. This way it would have cost me £40 for a 1000 of the plugs, at least it is good value for money and ebay'd the surplus. 

black plastic disc with built in clips in plastic bag on wood desk


I found this competency matrix ages ago but couldn't find it again until now, matrix. Which was an eye opener looking at how far I have come but so little I actually know. There are a couple of books to add to the reading list, thinking forth is even free.

Podcasts, a new one for the me, hello world by Shawn Wildermuth, the podcast is about how many got started in their industry.

Sunday, 7 December 2014

Keeping up

Learnt quite a bit this week, ab / abn testing and that keeping testing well defined can be challenging.

For testing qualifications it seems ISTQB are the standard, exams are not too bad at ~£200, courses vary for a few days at ~£1000 does not seem good value. Syllabus and glossary are free to download from their site.

Coding, I have one solution for counting the amount of distinct words in a book, linq and regex just simplify the problem down so much. Words in book sln.

Sunday, 30 November 2014

New job so busy

I have started work at a corporate, everything seems quite slow in comparison, which is both good and bad, the pay though was a significant improvement. I think it is what you make of it, having time to test thoroughly and use some different tooling. 

In the making the most of an opportunity, I am making tools so that the test team (which I am in) no longer have to fire up database software and check the databases are up to date, quick winforms app just does it. I hope to build on the automation with selenium just to check sites exist as just a quick test after deploys. 

As a way to get my professional development up, I listen to podcasts on the commute which at the moment is over ten hours per week. The podcasts working for me at the moment are:
  • .Net rocks
  • Hanselminutes
  • Software Engineering radio
  • This agile life
New podcasts I am trying out
  • {coding blocks}
  • Jessie Liberty - Yet another podcast.
Ignored my programming challenges and a couple of weeks away from it simple things take a little getting used to again. Anyway an implementation of the hang man challenge from reddit daily programmer. Hangman sln.

Getting back to reading, way of the peaceful warrior by Dan Millman was quite an eye opener.

Came across a new word percussive maintenance, when you tap a device to make it work

Sunday, 16 November 2014

Heatings broken

So the heating has broken and oil filled radiator on, got me thinking, I used to fold at home a lot, after two years of inactivity I am still in the top 100k. Anyway it makes a good job of heating up the study without the radiator. 


Running in firefox browser showing percentage done and timers for cpu and gpu folds


Install is so easy, no messing about for the GPU to fold, the GPU work units are not significantly larger than before.


Found another good place for coding practice, new challenges quite often with differing levels of difficulty and a community to discuss them with! Reddit daily programmer.

Monday, 10 November 2014

Been a funny couple of weeks

Had a few interviews and learnt a few things,
  • Saying I don't know is better than trying to BS your way through things it still means you will not get the job so I understand now why many do.
  • Most seem more concerned about specific skills than general knowledge, problem solving, and clean code, which seems at odds to what I am told elsewhere that specific skills can be taught.
  • To me ASP.Net does not just mean MVC, only a few places have done this, where I have applied got there and then oops most of your experience is with webforms so are not interested. 
  • The blog genuinely seems to help with getting an interview. 
  • FizzBuzz did come up.
  • Junior to me meant someone who doesn't know everything, knows the basics and willing to learn which is why they are applying. I think to employers this means someone who can do almost everything and can be left to sort themselves out.
One interview was quite good, "we need a junior who can hit the ground running" and paraphrasing here with no training and no supervision. Why are they advertising for a junior, in my humble opinion they wanted a lower paid middle weight developer.

Making it sound worse than it is, I met some interesting and very smart people so rant over.
 
To do list which I think would help
  • Build own website to show off skills and store examples
  • Build an application that installs
  • Learn more about MVC
  • Entity framework
  • Linq to SQL 
  • Timed code tests to get used to coding under pressure, perhaps with some default system with a tiny screen. A lot of the tests were on laptops.
  • Keep up with problem solving on the blog I was ready to give up last week.
I got a job testing! Which I think could be fun, get to learn about Clojure, functional programming has been on my to do for a while.

Good article from information weekly about the IT talent shortage.

Interview prep for ASP.Net 300 interview questions.