Hello, and welcome to my brand spanking new website! Being an introductory post, I haven't yet written anything else, so rather than giving you a tour of existing content, I'll just tell you a bit about me, why this site came to be, and what you can expect from it in the very near future! So, lets do it.
First things first..
I'm James, as you probably gathered from my homepage (although at the time of writing, I haven't solidified the details there yet, so it's worth making sure). I did my degree in Cognitive Science, which is basically a half-and-half mixture of psychology and artificial intelligence stuff. I then did my PhD in Developmental Robotics, which takes some of that psychology and applies it to the field of making clever algorithms tasked with getting robots to acquire some set of skills the same way we do.
So, I like making things. Specifically, algorithms for doing clever things. While one of my biggest ambitions is probably in endowing robots with the ability to pull off things that humans are naturally adept at, there are also many things that computers excel at that we haven't got much of a shot at, and so I'd like to see what we can learn from computers too. So, algorithms that deal with learning and evolution are of particular interest to me. My thesis focused on the former, but lately I've been thinking more about the latter for an upcoming project of mine.
More generally, I'm a big fan of programming in general. An intrepid engineer can invent and create new machines from the multitude of physical elements surrounding him, using the tools at his disposal. Programming is the virtual analogue of this; a set of tools that enable someone with the ability to use them to create machines - programs - capable of doing almost anything in their virtual realm (and, with the engineers help, ultimately anything in the physical realm too).
I'm also into photography! So, still making things, but more for aesthetic appeal. Given that I'm quite technically minded, enjoy wandering around, and don't excel at many artistic endeavours such as drawing and the like, it fits in quite comfortably I reckon. I'll probably add a photography gallery to this site at some point. Anyway, enough about me..
The website.
After my PhD, I learnt the various things one needs to learn to create websites. Initially, this was mainly focused on smaller projects (namely, a fractal drawer, competitive learner, and a Javascript based file compression app), with some basic PHP stuff thrown in where I saw fit. Next up, I figured I might as well go the whole hog, and built myself this site from the ground up using Node.js (I was keen on playing with some serverside Javascript) and the Express.js framework, MongoDB for databasing, and a bunch of other things. Some of which I'm sure will be worthy of their own posts.
Building the site was an interesting design challenge more than anything, as I settled on a more responsive site (read: AJAX) which loads in and updates the relevant content as it's called for, rather than reloading the whole page. I also wanted a flexible navigation system for the blog, so I settled on a dynamically loaded tag-cloud style list of categories to filter posts by rather than a rigid menu system. It took several iterations to settle on how many things were going to be dealt with, partly as I wanted to improve things as I gained experience in the respective areas.
Anyway, I'm pretty security conscious, so the whole site is done over https (encrypted between my server and your computer), and all of the usual security precautions are taken with user registration and the like (well, I'd hope that they were usual). For instance, Your password is never saved anywhere (only, a bcrypted version is), and your email address is never accessible to anyone (although the md5sum of it is used for gravatar images).
I'm also a big fan of markdown, so you can use markdown formatting in all comments, just as I am using to type this post. Markdown is basically a simple means to format text; for instance, prefacing a line with a hash (#) symbol makes it a heading, prefacing multiple consecutive lines with dashes (-) turns them into a list, and so on. Google can show you what the various possibilities are.
So, that's that for a quick rundown. I'm sure I'll go into more depth about the particulars I found particularly interesting, or just use the contact form or comments pages to let me know if there is anything you'd like to know about. So..
Here's what you can expect from me.
In no particular order.
- Programming related posts. Probably geared towards Javascript and C++ as they are my go-to languages at the moment, but generally anything of interest (to me), that I want to get out there.
- Project related posts. Related to ongoing things I am playing with, or have played with, and the like. Got anything interesting you want explaining? get in touch; I'd be happy to give it a shot!
- General stuff. Like website updates and refurbishment, and anything I wish to get out there but doesn't fall into the above umbrellas.
Anyway, I hope I'll get to hear from you.
Happy browsing!