The World In Links [1/30-2/5/2012] -- Developers, Facebook, SQL

The World In Links by Nicholas Kreidberg Art: A wonderful showcase of 3D digital renders.

Customer Service: GetHuman promises to get you to a service representative faster.

Developers: The trajectory of a software engineer and where it all goes wrong.

Facebook: A ton of S-1 related information thanks to my friends at TNW.

PHP: Methods for increasing file upload limit.

Real Estate: Zillow is one of the best sites I have seen for finding houses.

SQL: SQL Fiddle (much like JS Fiddle) lets you "fiddle" around with SQL via the web.

How I Code

I wanted to write this post for a couple of reasons. The first is to (hopefully) provide some helpful insight into a different way of coding that others might find useful. The second is to give me something to look back at a year from now to see where I have changed things, what is working better and what still needs improvement. This isn't intended to be a long-winded novel about the tools/approaches I use but rather a quick rundown of how I get things done when it comes to writing code. Coding Cat

A year ago I kept all development files on my local machine, did my edits there and used various software/plugins to push changes up via FTP/SFTP to the development server. Today I keep no code what-so-ever on my local machine and do everything via SSH mounts. So if I have code on a development sever that I need to work with I use Transmit to mount the remote file system via SSH then open that in my editor. This is great because it keeps files off my local machine, it eliminates the need to push changes up to the dev server after saving and at the end of the day I am all about avoiding duplication of data. With files mounted in this fashion any time I save in my editor (which is running on my local machine) it actually is saving those files on the development server, wherever that happens to be in the universe. Neat right? Let's take that a step further and look at deployment. So all changes are made to the remote file system on the development server but then what? Those files are then committed to version control (Git) and then a pull is done from the production machine to grab the latest changes from the repository.

This workflow keeps things really nice and compact while still providing a lot of power and flexibility. Granted you could accomplish a simliar flow by simply hosting your development server on your local machine but I would much rather have my development server be a direct mirror of production and most production servers aren't MacBook's / iMac's.

So what tools do I use to accomplish all of this?

  • Chrome - Browser I do most of my developing with as it has the best built-in tools on the market.
  • iTerm2 - My preferred SSH client.
  • Navicat Premium Essentials - The best GUI for working with MySQL, PostgreSQL, Oracle and more.
  • Sublime Text 2 - I recently switched to this editor from TextMate and I haven't looked back.
  • Transmit - FTP/SFTP/Etc client but also terrific for mounting remote file systems.

If you have questions or want to share your workflow please do so in the comments!

The World In Links [6/27-7/3] -- HTML5, JavaScript, Photography

The World In Links by Nicholas Kreidberg HTML5: Build your first game using HTML5, JavaScript and CSS.

JavaScript: 10 very useful online tools for JavaScript developers.

Learning: The Khan Academy.

Motivation: Why some people only dream while others do, the "go-getter" theory.

Photography: An amazing showcase of macro photography.

Programming: 10 ways to improve your skills.

Security: SQL injection walkthrough.

WordPress: Version 3.2 was released on 7/4, get it while it's hot!