I’ve programmed for over fifteen years and while I don’t always follow my own guidelines, the concept of programming like I’ll die tomorrow has saved me from countless missed deadlines and late nights.
The goal of this mindset is to keep a clean code base that anyone in your field can pick up and understand within a few hours. It relies heavily on choosing a path of project longevity over immediate gains.
Here are some key points for a project team:
- Keep everyone informed of each other’s tasks even if it doesn’t directly effect them. Make use of tickets and read each other’s bug reports.
- Choose a programming standard and stick with it - even the parts you disagree with. Indention and naming conventions are a blessing to anyone who has to read your work later.
- Nothing should be hard-coded and everything should be configurable. Take the time to create configuration management tools and avoid the dreaded “magic numbers”.
- Heavily use popular frameworks and libraries. Don’t confuse the new hire with your experimental rewrite of AJAX.
- Document everything. Make it obvious how methods and files connect (or use an IDE with insight).
- Make sure at least one other person in the office intimately understands your code, even if it is different people for different parts. Again, if you die, you don’t want your team freaking out.
- For bigger projects with multiple products, try to keep every project on the same code base even as customers demand different features. “If” statements exist for a reason.
- Automate everything. Never perform a task more than once that a simple robot could do.
These rules are general “no brainers” that are most often defeated by rushed deadlines and office egos. These are your enemies. If you have to take shortcuts, make it a priority to fix it in your next Scrum rush. Your project manager is your friend. Pray that they hate working overtime as much as you might.
And as a mentor colleague once said, “You are not your code.”
A Tumblr’r in a previous post asked for a run through of the differences and wanted to know whether I’d be getting one.
Engadget has a comprehensive breakdown of 4S vs 5. The main differences are a taller screen, a lighter and thinner model, and 2x to 3x performance improvements on some software. The improvements in camera quality are still questionable.
Like with most Apple products, you could skip an iteration with little notice. I’m still weighing the options with my 3GS but I’m a rather Luddite web developer and have no loyalties.
I recently upgraded from Ubuntu 11 to 12 and found myself dealing with a lot of visual performance issues with no apparent performance tuning settings. Every article on the Internet touted the Ubuntu 12 performance improvements, but all I saw were huge delays due to animations, effects, and opacity filters.
I’m admittedly rather ignorant to the on goings of the Ubuntu community, which left me struggling to find any way to adjust these settings, so bear with me.
After trying out add-on tools like Ubuntu Tweek and Unsettings, the only tool that actually seemed to improve performance was Compiz Config. From there, you may disable all effects and animations, though why it isn’t included as a default Ubuntu setting is beyond me.
Learn how to install Compiz Config. After installing, scroll down to the effects tab and disable all effects except for ‘Window Decoration’. You should notice a big improvement on your virtual box or dated machine.
It seems inherently difficult to spread an app that attempts to remain small and close knit among your friends and family. It requires that every group has its own maven to discover the app and a salesman pushing the app among the friends. Speaking of, does anyone use Push anymore?
Reblogged from thatfrenchman.
Internet, I reach out to you for advice. I’m looking for a good, free, tech savvy alternative to Quickbooks. If it worked in the cloud or was open source, that’d be an additional plus. Tips from any startups?