Over the years I’ve collected tons of links that have helped better myself as a developer. The links below represent what I feel to be a collection every web developer should have as either a starting point or for reference.
Obviously this list will be updated as I get more links that I find valuable. If you are instead interested in seeing all of my links, they are publicly available on my delicious link feed, which can be found here.
- Amazon AWS HMAC Signed Request Using PHP – “The Amazon® Product Advertising API can be used to access Amazon’s data for advertising purpose. By August 15, 2009, all calls to the API must be signed to authenticate the request. I have written a simple function in PHP that lets you make authenticated requests with only a few lines of code.”
- 50 Extremely Useful PHP Tools - Smashing Magazine’s list of PHP Tools. Great list.
- Internationalization in PHP 5.3 – “PHP 5.3 has been recently released and one of the new features in core is the internationalization extension. It allows you to support a multitude of languages and local formats much easier than before, without having to learn all the tiny the details of local formats and rules.”
- PHP Manual: Security
- A New Direction for Web Applications - Great read for getting you caught up with what the rest of the world is starting to do with the web ;)
- Execution in the Kingdom of Nouns - Not really a PHP-centric post, but a good example of how you can make naming conventions a pitfall in your design.
- 63+ best Practices to Optimize PHP code performance – Good article on how to optimize PHP
- PHP Oauth Provider: Authenticate User - “This article uses the pecl_oauth extension and builds on Rasmus’ OAuth Provider post. This post is the third in the series, following on from the ones about the initial requirements and how to how to handle request tokens.”
- An URL Dispatcher - “This is part two of the Improving my MVC controllers post. I have now implemented an URL dispatcher that dispatches the request to a configurable Controller.”
- Password Hashing – “In this article I’m going to cover password hashing, a subject which is often poorly understood by newer developers. Recently I’ve been asked to look at several web applications which all had the same security issue – user profiles stored in a database with plain text passwords. Password hashing is a way of encrypting a password before it’s stored so that if your database gets into the wrong hands, the damage is limited. Hashing is nothing new – it’s been in use in Unix system password files since long before my time, and quite probably in other systems long before that. In this article I’ll explain what a hash is, why you want to use them instead of storing real passwords in your applications, and give you some examples of how to implement password hashing in PHP and MySQL.”
- What’s the best method for sanitizing user input with PHP? – Good suggestions from a StackOverflow question asking how to sanitize user input with PHP.
- Google Search: php i18n tutorial - Simple yet effective Google search with a list of articles relating to i18n in PHP.
- Multithreading in PHP – PHP does not support threading. However, this article explains at least an option of how to delegate and “kind of” achieve a threaded script/app…
- phpRedis – A PHP extension for Redis. From the site: “The phpredis extension provides an API for communicating with the Redis key-value store. It is released under the PHP License, version 3.01. This code has been developed and maintained by Owlient from November 2009 to March 2011.”
- Make a GET request from PHP and not wait for a response - Taken from StackOverflow, this is actually a really simple idea that I hadn’t even considered: using fsock to open and send a request and then immediately closing without waiting for a response. The solution was solved using a similar approach with curl from PeteSearch.
- 32 Tips to Speed Up Your MySQL Queries - “If you are interested in how to create fast MySQL queries, this article is for you.”
- MySQL Manual: “SHOW” Syntax – All the different “SHOW” commands in MySQL.
- Google Search: MySQL Race Conditions - Google Search I made for showing different links to how “race conditions” can occur in MySQL
- Storing Unique URLs - One concept I’ve been learning about is storing a URL md5 Hash in MySQL. This URL has many benefits – showing the field-type/size you could potentially use, along with a beautiful example of using MySQL triggers.
- Method Overloading - John Resig shows us a simple, yet effective way of doing method overloading in JS.
- How to Manage Large Applications with jQuery or Whatever - The BEST presentation on proper JS Object creation I’ve ever had the pleasure of reading
- Create Advanced Web Applications with Object-Oriented Techniques – Great article for understanding OOP in JS.
- The Node Beginner Book - Hands down, the BEST Introductory article to what nodeJS is and how to get started with it. Read this article FIRST when you want to learn nodeJS.
- Understanding nodeJS - The Second Article you should read when learning nodeJS
- nodeJS - Official Home Portal of nodeJS
- NodeJS Community Wiki – Uh… the community wiki for nodeJS :)
- gist - Compilation of some of the best ways to install nodeJS and npm without having to sudo
- nginX, php-fpm and node.js install on CentOS - A great guide to setting up what you need to get nodeJS, PHP, and nginX to work together. Can be easily applied to any *nix environment.
- alfred - “Fast in-process key-value store for nodeJS“
- vogue - A nodeJS implementation for dynamically reloading CSS files to the client without having to refresh the page to see the results. Very elegant and clever way of getting fast visibility of approved CSS designs!
- RESTeasy - A nodeJS app that allows you to easily test any REST API.
- Understanding the nodeJS Event Loop - Great article in understanding nodeJS‘s event loops…
- jQuery Design Patterns - Part 1 of a create tutorial for creating jQuery plugins.
- Differences Between .bind() vs .live() vs .delegate() vs .on() - “If you have been confused about the various different types of event binding methods then don’t worry, there has been a lot of history and evolvement in the API over time. There are many people that view these methods as magic, but once you uncover some of how they work it will help you understand how to better ode inside of your projects.”
- 15 Powerful jQuery Tips and Tricks for Developers - WIthout question, one of the best compilations of simple introductory tips for new/seasoned jQuery Developers
- Prototypal Inheritance with jQuery – “This pattern takes a standard Object and returns an instane of a function. This function has the input object set as prototype. So you get a brand new object for each element and you get to have all your business logic in object literal way and not in a function.”
- jQuery Music Player Using Gestures & Hotkeys - Very cool way of creating a jQuery plugin with considerations of “gestures” for smart phone devices.
- jQuery UI DateRange Picker - A better DateRange picker plugin for jQuery
- jCrop - Image Cropper plugin for jQuery
- file-uploader - A jQuery File Uploader plugin
- Using .pushStack() - “The .pushStack() method has been in jQuery since before version 1.0, but it hasn’t received a whole lot of attention outside of core developers and plugin authors. While its usefulness may not be immediately apparent, it can come in really handy in some situations, so I’d like to take a quick look at what it does, how it works, and how we can use it.”
- jQuery.proxy() – “Takes a function and returns a new one that will always have a particular context.”
- Invoking a jQuery function after .each() has completed - StackOverflow answers for understanding the $.each method in jQuery
- How do I write a jQuery function that accepts a callback as a parameter – StackOverflow answers for creating jQuery methods with a callback as the param.
- My Google Search for “jQuery Callback Apply Call Method”
- Cloning Objects in jQuery - An answer on StackOverflow talking about how/why jQuery‘s extend is one of the best ways to extend an object.
- Building stateful jQuery Plugins – Introduction (basically) to the widget factory in jQuery
- How to find elements *without* a class set – StackOverflow question with answers explaining how to find elements that don’t have a class attribute value set.
- Scalable and Modular Architecture for CSS – “SMACSS is a way to examine your design process and as a way to fit those rigid frameworks into a flexible thought process. It is an attempt to document a consistent approach to site development when using CSS…”
- UI Parade – Uiser Interface Inspiration Site
- Organizing Mobile – Great article on design concepts for mobile.
- Responsive Web Design Techniques, Tools and Design Strategies - In my own personal opinion, this is the best written article on Responsive CSS Design
- SitePoint CSS Reference – SitePoint’s CSS Reference Guide
Caches & Key/Value Stores
- MySQL, Redis, and a Billion Rows – A Love Story - This is the article that introduced me to Redis and caused me to want to use it.
- KEYS Pattern – “O(N) with N being the number of keys in the database, under the assumption that the key names in the database and the given pattern have limited length.”
- Regular Expressions in Redis – “Is it possible to use regular expressions as pattern for Redis psubscribe?”
- nginX Configuration Gotchas - Talks about handling 404 empty results for REST Requests due to configuration issues
- monit - I use monit with nodeJS to ensure my services are running. Its a really strong monitoring application that basically daemonizes all of your processes. From Their Website: ”Monit is a free open source utility for managing and monitoring, processes, programs, files, directories and filesystems on a UNIX system. Monit conducts automatic maintenance and repair and can execute meaningful causal actions in error situations.”
- Improving PuTTY Settings - I use this guide anytime I’m about to install PuTTY on windows – AWESOME resource for getting your environment *just right*
- Our Simple GIT Workflow – GREAT guide to understanding GIT.
- Selenium – “Selenium automates browsers. That’s it. What you do with that power is entirely up to you. Primarily it is for automating web applications for testing purposes, but is certainly not limited to just that. Boring web-based administration tasks can (and should!) also be automated as well.”
- Tarsnap - Online backups for the truly paranoid
- How-To: Setup a home file server using FreeNAS - “In today’s digital world we’ve all got data, and lots of it. Our libraries are also growing rapidly: where you used to get by setting aside a few bookshelves for your books, CDs, DVDs and VHS tapes, we now require untold server space to preserve our beloved media in digitized form….”
- How to Make the Internet not Suck (as much) – Good hosts entry for blocking crappy 3rd party popup URL’s that add those gross tracking cookies. Not an end-all solution…
- Linux tip: Bash parameters and parameter expansions
- Introduction to Bash Programming
- The demise of the low level Programmer.