Always learnin

With working in web development, I'm constantly having to learn new techniques. I've been teaching myself programming languages like php and javascript. I've recently started working at a new position, as a web developer at a local design and marketing agency.

It's a really great place to work, I enjoy the job, the challenges and opportunities that it brings, and the team is great (and really talented). I've been working in web for 4 years full-time, but I do always feel like I still have a lot to learn.

I enjoy the learning side of things. I've been making my way through Treehouse, an online code tutorial site, and have made huge progress on PHP and Javascript in particular.

A little PHP app of my own

I've been working on my own small php application. It's pretty simple; it's a list of dvd and blu-ray media. It get's data from the Open Movie Database, an open source api to IMDB, and allows you to save the title into a list, as either a blu-ray, or a dvd.

I've been iterating on it for a while, and I'm pretty happy with it. It connects to a mySQL database using php's PDO object, performs CRUD operations (Create, Read, Update, Delete, and it's using SASS and Compass along with Grunt as a front end build step.

I looked at using Autoprefixer in place of Compass, and I did get Autoprefixer working, but then I had some difficulty getting SASS to compile in conjunction with Autoprefixer.

Autoprefixer & Grunt

Autoprefixer is a CSS 'postprocessor'. It differs from a preprocessor like SASS, in that it takes a plain css file, and processes it (as opposed to a preprocessor like SASS, which compiles before outputting a CSS file).

Autoprefixer takes care of vendor prefixes in your CSS for you. It allows you to write the current W3C standard syntax, and it will provide the necessary prefixes like -webkit-, -moz-, etc. as necessary.

It uses the database to query browser support for CSS properties. You can then set the browsers you wish to support, and it will do the heavy lifting for you.

The options for setting browser support are pretty neat, you can declare 'the last 2 versions' which gives support to the latest 2 versions of each browser; you can set support based on worldwide % of usage eg. browsers with > 2% usage, or you can list your exact browsers that need support. Pretty sweet.

I couldn't quite get get Autoprefixer and SASS compiling nicely with Grunt. I think using PostCSS is the preferred method. I'd also like to move from using the SASS Ruby gem to using LibSASS. More investigation is needed!

What else did I learn?

I learned a fair bit about Javascript Objects along the way. OMDB returns data in either XML or JSON format. I chose JSON, and I had some fun parsing this data.

It's still a work in progress, and when I have it in a somewhat finished state, I'll post it online.

With the hectic pace of keeping up with work, and sitting in front of a computer all day, as well as making some time to do some learning in my own time, it's more important than ever to take some time out to do nothing. Sit quietly for a while with no distractions (technology..), go for a swim or a bike ride, read a good book, and spend time with friends and family.

Summing up

I think, by writing ideas down, it can help to give your thoughts space. You can organise, and plan your day, what you would like to achieve next, perhaps setting goals (let's get that blog redesign done in a week, or let's put some time aside for creative pursuits like drawing). Writing things down has to be a good first step to getting more organised. It can't hurt.

The last word, from Jake