Dodgy Coder: Coding tricks of game developers
february 2012 by Seumas
If you've got any real world programming experience then no doubt at some point you've had to resort to some quick and dirty fix to get a problem solved or a feature implemented while a deadline loomed large. Game developers often experience a horrific "crunch" (also known as a "death march"), which happens in the last few months of a project leading up to the game's release date. Failing to meet the deadline can often mean the project gets cancelled or even worse, you lose your job. So what sort of tricks do they use while they're under the pump, doing 12+ hour per day for weeks on end?
Below are some classic anecdotes and tips - many thanks to Brandon Sheffield who originally put together this article on Gamasutra. I have reposted a few of his stories and also added some more from newer sources. I have also linked on each story to the author's home page or blog wherever possible.
coding
coder
development
developer
programming
stories
anecdotes
software
2012
february
2012_02_11
article
Below are some classic anecdotes and tips - many thanks to Brandon Sheffield who originally put together this article on Gamasutra. I have reposted a few of his stories and also added some more from newer sources. I have also linked on each story to the author's home page or blog wherever possible.
february 2012 by Seumas
Unfortunate Python - excess.org
december 2011 by Seumas
Python is a wonderful language, but some parts should really have bright WARNING signs all over them. There are features that just can't be used safely and others are that are useful but people tend to use in the wrong ways.
This is a rough transcript of the talk I gave at my local Python group on November 15, with some of the audience feed back mixed in. Most of this came from hanging around the Python IRC channel, something I highly recommend.
programming
coding
python
This is a rough transcript of the talk I gave at my local Python group on November 15, with some of the audience feed back mixed in. Most of this came from hanging around the Python IRC channel, something I highly recommend.
december 2011 by Seumas
How To Safely Store A Password | codahale.com
june 2011 by Seumas
Use bcrypt
Use bcrypt. Use bcrypt. Use bcrypt. Use bcrypt. Use bcrypt. Use bcrypt. Use bcrypt. Use bcrypt. Use bcrypt.
Why Not {MD5, SHA1, SHA256, SHA512, SHA-3, etc}?
These are all general purpose hash functions, designed to calculate a digest of huge amounts of data in as short a time as possible. This means that they are fantastic for ensuring the integrity of data and utterly rubbish for storing passwords.
encryption
password
passwords
security
bcrypt
codahale
programming
coding
cryptography
cryptology
salt
salts
hash
hashes
md5
sha1
sha256
sha512
sha3
2010
january
2010_01_31
february
2011
2011_02_24
technology
tech
computer
computers
cracking
Use bcrypt. Use bcrypt. Use bcrypt. Use bcrypt. Use bcrypt. Use bcrypt. Use bcrypt. Use bcrypt. Use bcrypt.
Why Not {MD5, SHA1, SHA256, SHA512, SHA-3, etc}?
These are all general purpose hash functions, designed to calculate a digest of huge amounts of data in as short a time as possible. This means that they are fantastic for ensuring the integrity of data and utterly rubbish for storing passwords.
june 2011 by Seumas
LKML: Linus Torvalds: Re: [stable] Linux 2.6.25.10
may 2011 by Seumas
Btw, and you may not like this, since you are so focused on security, one
reason I refuse to bother with the whole security circus is that I think
it glorifies - and thus encourages - the wrong behavior.
It makes "heroes" out of security people, as if the people who don't just
fix normal bugs aren't as important.
linus_torvalds
linux
operating_system
os
open_source
opensource
oss
floss
lkml
mailing_list
list
email
mail
usenet
security
bug
bugs
2008
july
2008_07_15
technology
development
developer
programming
coding
reason I refuse to bother with the whole security circus is that I think
it glorifies - and thus encourages - the wrong behavior.
It makes "heroes" out of security people, as if the people who don't just
fix normal bugs aren't as important.
may 2011 by Seumas
Why we use Haskell — lablog
april 2011 by Seumas
As a newly started company, we have a lot of technical decisions to make. One of the important ones is the choice of a programming language. Since we’re building a web application, this goes for both the client (i.e. the web browser) and the server.
On the client, there wasn’t much discussion. Javascript is the only viable choice, unless you want to use Flash or similar plugin-based models. But on the server, we had more freedom. Popular choices for web applications are dynamically typed languages like Ruby, Python and PHP, and statically typed languages like Java and C#.
However, there was another option. Two of us (me and Sebas) are enrolled in the Software Technology master program at Utrecht University, where we often use the programming language Haskell. Haskell is a functional programming language, which means that a program is composed of expressions instead of statements, as is the case in an imperative programming language.
As you might have guessed from the title of this post, we decided to use Haskell for our server side programming. What are the features that made us choose Haskell?
typlab
haskell
language
programming
coding
development
silk
2009
september
2009_09_22
On the client, there wasn’t much discussion. Javascript is the only viable choice, unless you want to use Flash or similar plugin-based models. But on the server, we had more freedom. Popular choices for web applications are dynamically typed languages like Ruby, Python and PHP, and statically typed languages like Java and C#.
However, there was another option. Two of us (me and Sebas) are enrolled in the Software Technology master program at Utrecht University, where we often use the programming language Haskell. Haskell is a functional programming language, which means that a program is composed of expressions instead of statements, as is the case in an imperative programming language.
As you might have guessed from the title of this post, we decided to use Haskell for our server side programming. What are the features that made us choose Haskell?
april 2011 by Seumas
Readme Driven Development
april 2011 by Seumas
I hear a lot of talk these days about TDD and BDD and Extreme Programming and SCRUM and stand up meetings and all kinds of methodologies and techniques for developing better software, but it's all irrelevant unless the software we're building meets the needs of those that are using it. Let me put that another way. A perfect implementation of the wrong specification is worthless. By the same principle a beautifully crafted library with no documentation is also damn near worthless. If your software solves the wrong problem or nobody can figure out how to use it, there's something very bad going on.
development
developer
programming
coding
documentation
readme
tom_preston-werner
2010
august
2010_08_23
april 2011 by Seumas
Doom Engine source code review.
april 2011 by Seumas
Before studying the iPhone version, it was important for me to understand how Doom engine WAS performing rendition back in 1993. After all the OpenGL port must reuse the same data from the WAD archive. Here are my notes about Doom 1993 renderer, maybe it will help someone to dive in.
3d
doom
id
games
gaming
programming
coding
development
iphone
retro
history
rendering
article
1993
january
2010
2010_01_13
april 2011 by Seumas
simple algorithms
april 2011 by Seumas
This is a place to find information about some of the more fundamental algorithms used in computer science. This information is widely available on the net, but hopefully the way it's presented and discussed here will resonate with you.
Most of these are things you wouldn't need to write yourself. Modern libraries and languages tend to have quality implementations for all of this. Nonetheless, I truly believe that understanding how things work is key to improving how we work.
algorithm
algorithms
cs
data
structures
programming
coding
code
reference
Most of these are things you wouldn't need to write yourself. Modern libraries and languages tend to have quality implementations for all of this. Nonetheless, I truly believe that understanding how things work is key to improving how we work.
april 2011 by Seumas
Rails – Integrate Autotest and RSpec in Linux | Eureka!
april 2011 by Seumas
I am learning Rails 3 @ Ruby on Rails Tutorial by Michael Hartl. A very nice and detail tutorial with many examples for beginners. Highly recommended.
But i got some problems when i tried to setup the Autotest for the RSpec framework. Autotest is a continuous testing tool which run the test suite automatically based on the files you have changed. RSpec is a Behavior Driven Development (BDD) framework for Ruby. After a few hours of struggling, i finally made it work.
rails
rspec
linux
ruby_on_rails
ruby
autotest
testing
development
programming
coding
tdd
2010
november
2010_11_15
But i got some problems when i tried to setup the Autotest for the RSpec framework. Autotest is a continuous testing tool which run the test suite automatically based on the files you have changed. RSpec is a Behavior Driven Development (BDD) framework for Ruby. After a few hours of struggling, i finally made it work.
april 2011 by Seumas
Getting started with Autotest - Continuous Testing
april 2011 by Seumas
Why manually run your tests, when the computer can do it for you! Autotest is a great tool to speed up test-driven development with Ruby or Ruby on Rails.
Autotest makes your coding session even more productive as it automatically runs a subset of your test suite each time you change a file. Autotest is smart – it figures out which subset to run based on the files you’ve changed. Think of it as Continuous Testing.
Autotest source code is well-documented (rdoc) but finding a high level overview online is a little more challenging. This article will get you up and running in no time, so that you may concentrate on writing code. Let’s get Started!
autotest
testing
test
tdd
rspec
ruby
rails
ruby_on_rails
programming
coding
development
tool
utility
documentation
software
Autotest makes your coding session even more productive as it automatically runs a subset of your test suite each time you change a file. Autotest is smart – it figures out which subset to run based on the files you’ve changed. Think of it as Continuous Testing.
Autotest source code is well-documented (rdoc) but finding a high level overview online is a little more challenging. This article will get you up and running in no time, so that you may concentrate on writing code. Let’s get Started!
april 2011 by Seumas
Learn Python The Hard Way: Learn Python The Hard Way
april 2011 by Seumas
This is the site for the book "Learn Python The Hard Way". The book is a very beginner book for people who want to learn to code. If you can already code then the book will probably drive you insane. It's intended for people who have no coding chops to build up their skills before starting a more detailed book.
book
ebook
programming
coding
zedshaw
python
guide
tutorial
language
languages
april 2011 by Seumas
Linux: C++ In The Kernel? | KernelTrap
april 2011 by Seumas
A recent posting to the lkml requested help in porting the C++ Click Modular Router kernel module from the 2.4 stable kernel to the 2.6 stable kernel. The request was for ideas on fixing C++ related compilation errors, but the thread quickly turned into a lengthy debate on whether or not C++ had a place in the Linux kernel. The issue has been debated many times before, long ago earning its own entry in the lkml FAQ which offers numerous reasons why the kernel is not written in C++.
During the recent discussion, when it was suggested that perhaps the kernel is written in C simply because "we've always done it that way...", Linux creator Linus Torvalds joined in to explain:
"In fact, in Linux we did try C++ once already, back in 1992. It sucks. Trust me - writing kernel code in C++ is a BLOODY STUPID IDEA.
"The fact is, C++ compilers are not trustworthy. They were even worse in 1992, but some fundamental facts haven't changed: 1) the whole C++ exception handling thing is fundamentally broken. It's _especially_ broken for kernels. 2) any compiler or language that likes to hide things like memory allocations behind your back just isn't a good choice for a kernel. 3) you can write object-oriented code (useful for filesystems etc) in C, _without_ the crap that is C++."
kerneltrap
kernel
linux
programming
coding
c++
linus
torvalds
linus_torvalds
cpp
history
developer
developers
development
2004
january
2004_01_20
discussion
During the recent discussion, when it was suggested that perhaps the kernel is written in C simply because "we've always done it that way...", Linux creator Linus Torvalds joined in to explain:
"In fact, in Linux we did try C++ once already, back in 1992. It sucks. Trust me - writing kernel code in C++ is a BLOODY STUPID IDEA.
"The fact is, C++ compilers are not trustworthy. They were even worse in 1992, but some fundamental facts haven't changed: 1) the whole C++ exception handling thing is fundamentally broken. It's _especially_ broken for kernels. 2) any compiler or language that likes to hide things like memory allocations behind your back just isn't a good choice for a kernel. 3) you can write object-oriented code (useful for filesystems etc) in C, _without_ the crap that is C++."
april 2011 by Seumas
RSpec.info: Home
march 2011 by Seumas
RSpec is a Behaviour-Driven Development tool for Ruby programmers. BDD is an approach to software development that combines Test-Driven Development, Domain Driven Design, and Acceptance Test-Driven Planning. RSpec helps you do the TDD part of that equation, focusing on the documentation and design aspects of TDD.
rspec
ruby
bdd
tdd
test_driven_development
ruby_on_rails
rails
programming
coding
testing
framework
rspec-rails
march 2011 by Seumas
RVM: Ruby Version Manager - RVM Ruby Version Manager - Documentation
march 2011 by Seumas
RVM allows users to deploy each project with its own completely self-contained and dedicated environment--from the specific version of ruby all the way down to the precise set of required gems to run the application. Having a precise set of gems also avoids the issue of version conflicts between projects, causing difficult-to-trace errors and hours of hair loss. With RVM, NO OTHER GEMS than those required are installed. This makes working with multiple complex applications where each has a long list of gem dependencies efficient. RVM allows us to easily test gem upgrades by switching to a new clean set of gems to test with while leaving our original set intact. It is flexible enough to even have a set of gems per environment or development branch--or even individual developer's taste!
rvm
ruby
rubyonrails
ruby_on_rails
rails
programming
coding
devleopment
gems
tool
utility
install
installer
installation
ruby_version_manager
instructions
documentation
docs
doc
guide
howto
march 2011 by Seumas
YouTube - How to Install Ruby 1.9.2 and Rails 3.0 on Ubuntu 10.10 [HD]
march 2011 by Seumas
Peter Cooper shows you how to easily and reliably install Ruby 1.9.2 and Rails 3.0 on Ubuntu 10.10. Based roughly around Ryan Bigg's written tutorial at http://ryanbigg.com/2010/12/ubuntu-ruby-rvm-rails-and-you
youtube
video
ruby
programming
development
coding
language
ruby_on_rails
rails
installation
installing
screencast
guide
tutorial
howto
aptitude
ubuntu
2010
december
2010_12_28
march 2011 by Seumas
Oppugn.us: Where The Rants Go
march 2011 by Seumas
I think I'm going to create the ultimate software development methodology. It'll be revolutionary compared to others because it will focus on the one thing that gets software done. Its entire focus will be this one, glorious, completely useful activity for writing software. It's name even embodies the perfection of this programming methodology. The name is: Programming, Motherfucker
zed_a_shaw
management
programming
coding
development
article
blog
march 2011 by Seumas
Bootstrap.less by Mark Otto
march 2011 by Seumas
Bootstrap is a super awesome pack of mixins and variables to be used in conjunction with LESS, a CSS preprocessor for faster and easier web development.
css
design
coding
bootstrap
less
webdesign
march 2011 by Seumas
Django | The Web framework for perfectionists with deadlines
march 2011 by Seumas
Developed four years ago by a fast-moving online-news operation, Django was designed to handle two challenges: the intensive deadlines of a newsroom and the stringent requirements of the experienced Web developers who wrote it. It lets you build high-performing, elegant Web applications quickly.
django
framework
programming
python
web
language
coding
march 2011 by Seumas
20 Fresh JavaScript Data Visualization Libraries
march 2011 by Seumas
There are plenty of JavaScript libraries out there for rendering your otherwise plain and boring numerical data into beautiful, interactive, and informative visualizations. The beauty of using JavaScript for data visualization is that, if created correctly, your data will be highly accessible (usually via HTML tables). A long time ago (2008), I wrote about JavaScript solutions for graphing and charting data and this article revisits the topic with twenty more JavaScript libraries that you can use to bring your data to life.
jacob_gube
six_revisions
javascript
charts
chart
data
graphs
images
presentation
visualization
jquery
coding
programming
development
developer
designer
web
webdesign
libraries
lib
libs
list
2010
january
2010_01_17
march 2011 by Seumas
PEP 8 -- Style Guide for Python Code
march 2011 by Seumas
This document gives coding conventions for the Python code comprising the standard library in the main Python distribution. Please see the companion informational PEP describing style guidelines for the C code in the C implementation of Python[1].
This document was adapted from Guido's original Python Style Guide essay[2], with some additions from Barry's style guide[5]. Where there's conflict, Guido's style rules for the purposes of this PEP. This PEP may still be incomplete (in fact, it may never be finished <wink>).
coding
code
programming
development
style
reference
post
guide
python
doc
docs
documentation
python_enhancement_proposal
2001_07_05
july
2001
This document was adapted from Guido's original Python Style Guide essay[2], with some additions from Barry's style guide[5]. Where there's conflict, Guido's style rules for the purposes of this PEP. This PEP may still be incomplete (in fact, it may never be finished <wink>).
march 2011 by Seumas
Dive Into Python
march 2011 by Seumas
Dive Into Python is a Python book for experienced programmers. You can buy a printed copy, read it online, or download it in a variety of formats. It is also available in multiple languages.
programming
coding
python
reference
book
books
free
march 2011 by Seumas
resources - What is the single most influential book every programmer should read? - Stack Overflow
march 2011 by Seumas
If you could go back in time and tell yourself to read a specific book at the beginning of your career as a developer, which book would it be?
I expect this list to be varied and to cover a wide range of things.
books
book
list
programming
coding
code
development
developers
question
stackoverflow
thread
discussion
forum
2009
I expect this list to be varied and to cover a wide range of things.
march 2011 by Seumas
Stroustrup: newsgroup posting
october 2010 by Seumas
Sometime -- in the spring of 1993, I think -- I posted a message to comp.lang.c++ as part of a debate of how one should approach learning C++. This message has been widely circulated and even re-printed in a couple of books. It is part of the "Interest and Use" chapter of The Design and Evolution of C++.
programming
coding
stroustrup
language
design
reference
c
c++
1993
bjarne_stroustrup
october 2010 by Seumas
Ootips - Object Orientation Tips
december 2007 by Seumas
Ootips allows developers to keep up with object oriented technologies, without reading through high volume, low signal-to-noise sources. I try to extract the most useful posts from other lists, newsgroups and forums, and post every week or two.
programming
oop
oo
patterns
design
reference
development
dev
index
ootip
coding
december 2007 by Seumas
css-redundancy-checker - Google Code
july 2007 by Seumas
A simple script that, given a CSS stylesheet and either a .txt file listing URLs of HTML files, or a directory of HTML files, will iterate over them all and list the CSS statements in the stylesheet which are never called in the HTML.
css
tools
ruby
html
webdev
development
redundancy
code
dev
design
coding
cleanup
clean
checker
july 2007 by Seumas
related tags
3d ⊕ 2001_07_05 ⊕ 2004_01_20 ⊕ 2008_07_15 ⊕ 2009_09_22 ⊕ 2010_01_13 ⊕ 2010_01_17 ⊕ 2010_01_31 ⊕ 2010_02_12 ⊕ 2010_08_08 ⊕ 2010_08_23 ⊕ 2010_10_15 ⊕ 2010_11_15 ⊕ 2010_12_28 ⊕ 2011_02_24 ⊕ 2011_03_03 ⊕ 2011_10_13 ⊕ 2011_12_29 ⊕ 2012_02_09 ⊕ 2012_02_11 ⊕ actionscript ⊕ advice ⊕ aggregator ⊕ ajax ⊕ algorithm ⊕ algorithms ⊕ analysis ⊕ anecdotes ⊕ ansi ⊕ api ⊕ apps ⊕ aptitude ⊕ arstechnica ⊕ article ⊕ asciicasts ⊕ audio ⊕ august ⊕ autotest ⊕ bash ⊕ bbc ⊕ bcrypt ⊕ bdd ⊕ beanstalk ⊕ bitnami ⊕ bjarne_stroustrup ⊕ blog ⊕ book ⊕ books ⊕ bootstrap ⊕ browser ⊕ browsers ⊕ bug ⊕ bugs ⊕ business ⊕ c ⊕ c++ ⊕ capistrano ⊕ catalyst ⊕ chart ⊕ charts ⊕ cheatsheet ⊕ checker ⊕ class ⊕ classified ⊕ clean ⊕ cleanup ⊕ cli ⊕ client ⊕ clojure ⊕ clojurescript ⊕ codahale ⊕ code ⊕ codeblocks ⊕ coder ⊕ coding ⊖ collaboration ⊕ command ⊕ commandline ⊕ commands ⊕ commentary ⊕ community ⊕ comparison ⊕ compiler ⊕ compilers ⊕ computer ⊕ computers ⊕ computer_science ⊕ computing ⊕ console ⊕ control ⊕ cpan ⊕ cpp ⊕ cracking ⊕ cryptography ⊕ cryptology ⊕ cs ⊕ css ⊕ css3 ⊕ cvs ⊕ c_programming ⊕ data ⊕ database ⊕ dataset ⊕ data_mining ⊕ db ⊕ dbic ⊕ dbicdeploy ⊕ dbix ⊕ dbix-class ⊕ dead ⊕ death ⊕ december ⊕ dennis_ritchie ⊕ deploy ⊕ design ⊕ designer ⊕ detoxifier ⊕ dev ⊕ developer ⊕ developers ⊕ development ⊕ devleopment ⊕ diagram ⊕ directory ⊕ discussion ⊕ django ⊕ doc ⊕ docs ⊕ documentaiton ⊕ documentation ⊕ doom ⊕ download ⊕ ebook ⊕ eclipse ⊕ editor ⊕ email ⊕ encryption ⊕ engine ⊕ eric_bidelman ⊕ eric_raymond ⊕ eric_steven_raymond ⊕ esr ⊕ examples ⊕ extract ⊕ faq ⊕ faqs ⊕ february ⊕ filer ⊕ files ⊕ filesystem ⊕ find ⊕ flash ⊕ flashgoddess ⊕ floss ⊕ flowchart ⊕ forum ⊕ framework ⊕ frameworks ⊕ free ⊕ freeware ⊕ g++ ⊕ gamedev ⊕ games ⊕ gaming ⊕ gcc ⊕ gdb ⊕ gem ⊕ gems ⊕ git ⊕ gitorious ⊕ gnu ⊕ goddess ⊕ google ⊕ graphics ⊕ graphs ⊕ grid ⊕ grokbase ⊕ gui ⊕ guide ⊕ hacker ⊕ hacker_news ⊕ hacks ⊕ harmful ⊕ hash ⊕ hashes ⊕ haskell ⊕ hiring ⊕ history ⊕ hosting ⊕ howto ⊕ html ⊕ html5 ⊕ ibm ⊕ id ⊕ ide ⊕ images ⊕ index ⊕ install ⊕ installation ⊕ installer ⊕ installing ⊕ instructions ⊕ internet ⊕ introduction ⊕ iphone ⊕ jacob_gube ⊕ january ⊕ java ⊕ javascript ⊕ jquery ⊕ jrockway ⊕ json ⊕ july ⊕ kernel ⊕ kerneltrap ⊕ language ⊕ languages ⊕ layout ⊕ less ⊕ lib ⊕ libraries ⊕ library ⊕ libs ⊕ line ⊕ linus ⊕ linus_torvalds ⊕ linux ⊕ list ⊕ lkml ⊕ luigi_montanez ⊕ luke_vanderhart ⊕ mac ⊕ mail ⊕ mailgun ⊕ mailing_list ⊕ management ⊕ march ⊕ md5 ⊕ microsystems ⊕ mining ⊕ mmo ⊕ mmorpg ⊕ module ⊕ mongers ⊕ moose ⊕ mvc ⊕ namespace ⊕ news ⊕ november ⊕ now ⊕ nowjs ⊕ obituary ⊕ october ⊕ ogre ⊕ oneliners ⊕ online ⊕ oo ⊕ oop ⊕ ootip ⊕ opensource ⊕ open_source ⊕ operating_system ⊕ opinion ⊕ os ⊕ oss ⊕ password ⊕ passwords ⊕ patterns ⊕ perl ⊕ photoshop ⊕ poignant ⊕ post ⊕ practices ⊕ presentation ⊕ process ⊕ programing ⊕ programmer ⊕ programming ⊕ push ⊕ pythex ⊕ python ⊕ python_enhancement_proposal ⊕ question ⊕ radrails ⊕ rails ⊕ rar ⊕ readme ⊕ real_time ⊕ recipes ⊕ recursive ⊕ recursively ⊕ redundancy ⊕ refactoring ⊕ reference ⊕ regex ⊕ regexp ⊕ regular_expression ⊕ regular_expressions ⊕ rendering ⊕ repository ⊕ resource ⊕ retro ⊕ revision ⊕ ror ⊕ rspec ⊕ rspec-rails ⊕ rubular ⊕ ruby ⊕ rubyonrails ⊕ ruby_on_rails ⊕ ruby_version_manager ⊕ rvm ⊕ salt ⊕ salts ⊕ scraper ⊕ screencast ⊕ screencasts ⊕ script ⊕ scripting ⊕ scripts ⊕ sean_coleman ⊕ sean_eron_anderson ⊕ search ⊕ seaside ⊕ security ⊕ september ⊕ server ⊕ server_push ⊕ service ⊕ setup ⊕ sha1 ⊕ sha3 ⊕ sha256 ⊕ sha512 ⊕ shell ⊕ silk ⊕ six_revisions ⊕ smalltalk ⊕ smtp ⊕ snakes ⊕ software ⊕ sql ⊕ sraperwiki ⊕ stackoverflow ⊕ stanford ⊕ statistics ⊕ stats ⊕ stories ⊕ strip ⊕ stroustrup ⊕ structures ⊕ style ⊕ subdirectories ⊕ subdirectory ⊕ subversion ⊕ sun ⊕ sun_microsystems ⊕ svn ⊕ tdd ⊕ tech ⊕ technology ⊕ test ⊕ testing ⊕ test_driven_development ⊕ theory ⊕ thinkvitamin ⊕ thread ⊕ time ⊕ tiobe ⊕ tips ⊕ tom_preston-werner ⊕ tool ⊕ tools ⊕ torvalds ⊕ tutorial ⊕ tutorials ⊕ tutorials__tutorial__photoshop ⊕ typlab ⊕ ubuntu ⊕ unix ⊕ unrar ⊕ usenet ⊕ user-groups ⊕ utility ⊕ version ⊕ version_control ⊕ video ⊕ videos ⊕ visual ⊕ visualization ⊕ web ⊕ webdesign ⊕ webdev ⊕ webservice ⊕ web_design ⊕ wiki ⊕ windows ⊕ wired ⊕ writing ⊕ yahoo ⊕ ycombinator ⊕ youtube ⊕ zedshaw ⊕ zed_a_shaw ⊕ zed_shaw ⊕ _to_be_read ⊕Copy this bookmark: