The Stack
Luumin is the ultimate task list for creative people. But just being creative and using Luumin isn’t quite enough to actually build the product. Here are the tools that I use as the front end lead to get the job done.
The Luumin architecture is a modern LAMP stack, we’ve swapped out the M(ysql) for Cassandra as the primary data store and built the backend as a platform from day one so all clients connect through our public API.
The stack doesn’t really explain the front end does it? Luumin is an HTML5 application built using YUI Framework, the reason for choosing YUI is because it is awesome.
My Workflow
ssh > screen > vim > builder/shifter > browser > svn
Simple eh?
I do all my development remotely via SSH. It’s a habit I picked up while doing Unix server administration a long time ago. It limits me to work only when I’ve got connectivity, but I can work on any connection.
GNU Screen is the first thing I fire up every time I connect to the server. From one session SSH session I usually run three shells, the first for the markup/css, the second for the JavaScript source and the third for compiling the source. Screen sessions can be disconnected and reconnected to, this means I can sit down at any computer and reconnect exactly where I left off and my development environment is persisted on the server.
Vim is the second habit I picked up doing Unix admin. I roll with a messy config I’ve built over the years. I use tabs over buffers. Pathogen for plugin management, and only a few crucial plugins: jslint, nerdtree, vim-less, vim-yui.
Builder is Yahoo’s legacy Ant build system. Shifter is the brand new node.js based build system that We’re migrating to. Lint code, build modules, strip console logs, minify source.
Chrome current is my browser of choice. It’s been my primary development browser for about two years. The development tools are just better. I spend most of my time switching between Network and Source tabs always with the console underneith.
Still on SVN, locally hosted. Simple deploy workflow only deploying the minified built source to production.
Hardware
I dev on a 2008 Macbook at home and an Ubuntu 12.10 workstation at the office. Hardware doesn’t really matter. Because my workflow is all based on the server, give me a network connection, an SSH client and a browser and I’m happy.
So that’s my setup. It varies on other projects, my PHP dev which has historically been done in Vim has moved exclusivly to NetBeans for need of the debugger. Other side project are very similar to this but won’t necessarily have the build phase and are probably in a git repo.