Photo of Jamie & Lion

The personal site of Jamie Knight, an autistic web developer, speaker and mountain biker who is never seen far from his plush sidekick Lion. View the Archive

Topics: Autism Development

The Clifford Engine.

I havn’t mentioned it here yet, but i have just got a new job at the BBC. I’m moving to the frameworks team to stretch my enginnering skills and explore how other parts of the business operate. This post is not about that move though, it’s about the technical test they asked me to complete. The Clifford Engine.

As part of the interview process i was asked to solve a problem in a language of my choice. The problem is known as a clifford engine. In short, the task is too build an interpreter for a very basic stack language called “Clifford Code”.

I really enjoyed the test. I don’t often get to write algorithm based stuff so it was nice to have a problem outside of my normal domain. It was complex enough to be fun, but easy enough to build in one sitting.

I felt that the code might be useful to others, perhaps people who are exploring how to use prototypes, or jasmine tests and have put the code up on github.

I have also reused the problem to test my knowledge of rust and put an implementation of the clifford engine in rust on github too.

The clifford engine test was alot of fun and seems to be quite effective as a hiring tool. I feel the following characterstics make it good:

I enjoyed the clifford engine test. I think its a great example of a small but non trivial interview task.

Published: 14 April 2013 | Categories: Permalink

Concepts and DOM bashing.

Recently I have come to realise there are two fundemental ways to build Javascript applications. DOM Bashing and concepting.

DOM bashing is the simplest method to build a JS application. Effectively, you just keep bashing at the DOM to get the page to look how you want. You show stuff, hide stuff, copy stuff, get data over AJAX and you store all the state in the DOM.

Immagine a simple app which is a list of items. If your DOM bashing you push stuff around the page to get the look you want. You don’t model the data, you just worry about the pixels on the screen. You click add, a box appears, you close it goes away again. Simple.

Concepting is another approach, rather than starting with the DOM, you start by modeling your concepts into objects. So you may have the concept of an item, and an item may include the concept of a tag etc. You write code which manipulates concepts and at some point updates the DOM to reflect the state of your current object graph. The state is in the JS, the DOM is just a view. You may have a render method which draws the current data structure to the users screen.

I’m sure both of these approachs have thier proper names. As i have learnt more about Javascript i have found myself dealing with concepts more often. Especially as applications get bigger and more complex.

Published: 10 April 2013 Permalink

On Autism (Lion)

Autism* is a whole bunch of things to a whole bunch of people. It’s Autism Awareness month so I figured I better write something. So I sat down, wrote a title, and started to think. What do I, Jamie, think about “Autism”.

I figure I can write about tons of things. Independence, sensory issues, communication issue, meltdowns, obssessions.. But, this is not new. This is just me repeating what you can read elsewhere. What do I, jamie, think about Autism.

I think of Lion.

Lion is plush toy about 4 feet long, very worn, with a “distinctive” smell and a tangled mane. He never** leaves the side of a 23 year old web developer at the BBC, called, erm, Me.

I have had Lion for years, but i have not always carried him. It would be social suicide for a teenager to carry a giant lion around. By the time i was 12 / 13 Lion stayed in my bed. After some seriously complicated stuff left me somewhat homeless when i was 16/17 i sat down and decided, dammit. I wanted Lion by my side because it simply made me feel “better”.

So, i’m 23 and i have a trait common with a 5 year old. Should i not be ashamed? Embarrassed? Should i not hide the Lion? I dont think so.

I dont feel the social pressure too, i dont feel social pressure most of the time, yes, but regarding the Lion i feel no social pressure at all. Many people have explained to me how i am misreading the world in this regard. I’m sure they are right. However, i like the way the Lion smells.

I should probably feel ashamed perhaps? Feel like i am not “manly” enough, or that i should show i am strong. I don’t feel a need. I can run and jump and do tae kwon do (badly). I’m not brittle, I would say I am robust. However, I like the way the Lion is consistant.

Surely I should hide Lion, keep him a secret? Feel exposed, afraid and a freak. Nope. I don’t really keep track of such things. Yes, i feel afraid of being targeted as vunerable somtimes. Yes, i sometimes do worry about if Lion will be misunderstood by people around me. However, most people respond well to Lion. Lion is really simple.

Lion is part of me, my “autism”, my connection with the world. Lion represents the deepest parts of how i work. Autism Awareness month can talk about how Lion taps into all sorts of autism related things. But ultimately, he is just my Lion.

(*) I ‘have aspergers’ which is on the autism spectrum.
(**) I know of 4 occurences since I was ~17 where Lion was away from me.

Published: 2 April 2013 | Categories: , Permalink

Older Articles

Newer Articles