Skip to main content

Resources and Tools

These are some of the resources and tools that I use regularly.

  • Mozilla Developer Network which is a documentation site which aims to centralize web development documentation for standard technologies.
  • For a basic code editor with advanced plugins available, I recommend Visual Studio Code. If you want a full Integrated Development Environment, then it's WebStorm that I personally use.
  • Open Courseware. This is an awesome initiative by higher-education to release their course materials and even recordings of the lectures online for free viewing. I recommend going through MIT's Introduction to Computer Science and Programming course to get started.
  • Here are some blogs and people that I follow
    • HTML5Rocks is an amazing resource for detailed blog posts on the technical aspects of HTML5 features. The why and how of the specs are discussed and what the best way to go about doing things is. An oldie but goodie here is How browsers work which is a must-read. 
    • Smashing Magazine is a great blog for design-related things. 
    • CSS Tricks is a great place to go for neat things that CSS can do for you. Also plenty of articles in the archives on not just what, but how and why on some of the CSS internals as well.
  • I recommend learning about IPv6, so here are some things for that.
    • IPv6 certification from Hurrican Electric is an awesome starting point. I still haven't finished this course myself, but many others have and it does give you a good basic understanding of v6 and how to implement it.
    • NewCircle Training recorded an excellent small talk followed by a Q&A on IPv6. It is titled Introduction to IPv6 on YouTube.
  • JavaScript (ECMAScript by the standard name) is the programming language of the web, so this is a must-learn for any programmers.
    • The Crockford on JavaScript series on YouTube is an awesome starting point, at least the first video is to get going.
    • Once that video is watched, read JS the Good Parts written by Douglas Crockford.
    • Now that the book is done, go finish the YouTube series Crockford on JavaScript from the first bullet point of this list.
    • Ok, so it has been a long few days for you, but those are done. Now pick up JavaScript the Definitive Guide and peruse it (Extra credit challenge, read it from cover to cover. No prizes given for completion except holy knowledge bestowed upon completer.)
  • Online code sharing tools are useful. Even more useful are the ones that let you run code.
    • If you want to share your creative side, look no further than Codepen. Chris Coyier (the myth behind CSS Tricks) is one of the authors of Codepen. It has a very nice community of designers and developers sharing their creativity (even some great mind-bender samples.)
  • Misc stuff:
    • Content Security Policy. This is an awesome technology that can help prevent XSS attack against your site, among other things. Probably the best reason to use this besides the defense from attacks, is it enforcing better coding styles. Since you need to remove all scripting and styling from your HTML. Knock out two birds with one stone today and look into enabling this on your site.
      • Mike West has a good talk on this topic. Slides are also on his site below the video.
      • HTML5 Rocks has a good introductory tutorial on the topic. Written by the aforementioned Mike West.

Popular posts from this blog

My PHP Wishlist

PHP Wishlist These are things that I think would help developers build better programs with far fewer lines of code. Simple enough? Let's get to it. Scalar Type Hints and a Strict Mode Currently one of the hottest RFCs in PHP history perhaps, Scalar Type Hints. This is a feature that allows developers to specify any type a given parameter should be. Currently PHP only supports object types and arrays for type hinting. This allows for string, integer, boolean, and the like.  However, nothing is simple in PHP. With this, some developers want conversion to happen if the wrong type is given (string to integer for example if '3' is passed in) while others want strict enforcing of types. The RFC has a middle-ground of loose typing by default like everything else in PHP, but the option to turn on a strict mode. My issue with the RFC is... The syntax is horrible for declaring strict mode. I was actually entirely for it up until a few days ago. I read a comment on

Laravel, Codio, and Nginx

I have recently come across a *sweet* online IDE, this would be Codio . Codio lets you develop in the cloud and run the code on an actual server. This way you can write your code and run it in the cloud, keeping your development environment universal and in my case safe-guarding against my own nonsense. While Codio does offer their own  documentation  on getting Laravel going, it uses Apache and MySQL. So here is getting going with Nginx, MariaDB, and PHP-FPM on Codio for Laravel development. Create your project Create a project just how you normally would, except select "Git" as the method for getting the base code into the workspace. This will give you an input where you can either put in an HTTP or SSH based git repository URL. If you are using SSH and you haven't setup the SSH key on your repository, it will prompt you to do so automatically with a key Codio generates. For now, I'm going to just use the standard HTTP URL for Laravel which is

Running supervisord on Codio

Codio currently does not provide a parts install for supervisord . This can make developing apps that uses Laravel queues an issue since you'd then have to keep a terminal open at all times. So let's keep things simple, and install supervisord manually. Installing the tools The only thing from parts that we will need, is pip. This is a python package management tool, which is what supervisord is written in. Just grab this to your box like so: parts install pip Now that we have pip, we can pull in supervisord through it. pip install supervisord Configuring environment Now that supervisord is installed, we need to setup the boxes configuration to make it easier to use. We need to: Add the python bin to the path. Make the configuration directory for supervisor Make a log directory To add the python bin folder to your path, open up /home/codio/.bash_profile and add the following: $home/.parts/packages/python2/2.7.6-2/bin to the first path entry. Remembe