Tuesday, March 18, 2014

Mode Analytics SQL School

One of my friend sent me the following page, which is an introduction to SQL commands. I've known how to use MySQL at a basic level for about seven years, but so far none of my projects have required me to learn pivot and join commands, so I suppose it's time I added that to my portfolio of skills! Mode Analytics SQL School

Thursday, March 6, 2014

It's git time

I haven't published much on this blog lately because I've been spending my time developing another blog. Over the past few years I've worked a large range of different projects, many of them on my website. This involves taking my projects one by one, adding them to a git repository, adding documentation, adding a blog entry about and then committing them to github. The immediate reason for this is that when applying for a job that involves computing it helps to have a portfolio of projects for prospective employers to browse. The less immediate reason is that it's something I've been meaning to do for years. After about seven years of continual development, at varying levels of competence, my website is a complete mess. It seriously needs to be revamped and made more versatile. It's very refreshing to finally get around to doing this and satisfying to see it come together!


The new blog summarising my projects (in progress!)

Looking back over the past seven years I've realised that every step of the way I chosen projects which would allow me to develop my skills. This had lead to some code which today makes me cringe! I need to go back and fix up or completely delete some of the projects for the sake of sanity and security. In parallel to my skills developing the technology has changed as well. Back in 2008 SVG was all the rage and with PHP I could create any SVG document I wanted. Since then the canvas has enjoyed widespread support, so now it's all about Javascript and canvas. There are quite a few projects that need to make the transition from SVG to canvas (and maybe back again, because the formats aren't equivalent.) With the canvas things suddenly become more intuitive for the user- you can create and manipulate images using the canvas! So it's no surprise that many of the things I made involve clicking a canvas and interacting with shapes.

There are still gaps in my experience that need to be addressed. For example, I made an application that enabled users to login, but it wasn't exactly secure! In principle this is easy to do, and once I have a reason to make a project that involves logging in, I'll create one. Working on the projects blog has also helped me get to grips with Wordpress, and one of the things I want to do is write a few Wordpress themes to bring my CSS skills up to scratch. Then there's advanced API interaction. I have a handful of projects that need to interact with Twitter and have a MySQL backend, and that's not an easy task to get into! However once it's done I can use it elsewhere.

In addition to all that I've added more support for web development on my laptop. I now have a fully functioning apache server with PHP interfaced with MySQL. I finally upgraded TextWrangler to BBEdit and arranged all my projects using the dedicated BBEdit feature. Combine that with a "Labs" directory for testing out new ideas, and version control on GitHub and I've got quite an operation going on in my laptop!

Finally I gave my website a service, and as I process my projects one by one, the website too will change. The old homemade content management system has been disabled, I finally fixed the error pages to be a bit more useful, and the same setup works both locally and online (with a simple change of environment variables using .htaccess files). With that done it might also be time to give the user various CSS options to show off my l33t styling skills.

Let's also not forget the hundreds of gigabytes of photos I have stored away. I have plans for those too, eventually. If I can use them in my web design, all the better. And all this is to say nothing of my C++ and python skills. They need honing too. This year I plan to learn how to make a C++ executable from scratch, including the makefiles, the most feared and mysterious of files. It's going to be a fun year!

In case you're curious, here are the links: