Search this blog

14 January, 2010

Links

http://research.scee.net/files/presentations/gcapaustralia09/Pitfalls_of_Object_Oriented_Programming_GCAP_09.pdf: Explains also some of the choices I made here.

Java 7 performance optimizations: escape analysis (some is already in Java 6, as is the new G1 collector)

Disney PTex texture mapping library released under BSD license. Texturing without explicit UV mapping.

Eric Lippert's Fabulous Adventures in Coding. A lot of nice and entertaining information about the details of the C# language and compiler.

My current two favourite flash indie/art games: Windosill and Canabalt

Demo Tube 2 from Atom's Blog.

Kernghan/Ritchie/Lovecraft

11 January, 2010

How do you do your work?

How do you do your work? I would like to know.

Personally I don't think I really have a process. Or I never noticed one, I change my ways a lot. Sometimes I prototype straight away, sometimes I plan a lot ahead, I have very strong opinions on how things should be done, but in practice I follow more my experience than any set of formal rules. The only common trend is that I end up doing a lot of research on anything, and I tend to iterate a lot, interleaving my work with the artist's, trying to communicate a lot. But the details of how this is done vary a lot.

I'm messy, and I have a really bad memory. So, even if I like being messy, finding inspiration from many sources, I have to keep track in some way of what I'm doing and thinking, otherwise I'll forget everything after a while.

There are various aspects of this, it's almost a fight between trying to be creative, and trying to find an order among all the ideas and stuff I use. I don't have many rules, but in the end my workplace always ends up in a given shape.

The workspace. Every time I have to setup a new workspace, first of all I do plan for my computer.

Ergonomy is important, I plan the placement of the monitors first, as it's the most constrained due to the lighting conditions, that often are fixed in an office. Then I lay out all the things I like to have near me, because I access those often, and all the things I want to have far from me, because they are disturbing or noisy. Then I lay the cables.

I use a lot the space on the walls. I always have them full of prints, from reference images and stuff from my current project.
Also I have lots of unrelated stuff, comics, neat images, everything that I find interesting. There is some sort of order tho, I have a wall for game related stuff and one for research papers and stuff more directly linked to my current work. All the other spaces are more random.

Note taking is fundamental to me. I have two big whiteboards, and a lot of post-it blocks, notes, and a lot of different writing instruments. Same thing at home really. But I've found that that's not too good to keep track of things, just to play with ideas, doodle and tinker.
As an idea tracking device I currently use some needles to stack small post-its. While we have agile software and so, I still like to have something physical for my own ideas, everything that's not a task, yet.

Tinkering is important. I have lego bricks, scissors and knifes, and even small objects just to play with them, to have a tactile feedback. A colleague of mine once showed me this movie, that I find extremely good: Pollinate 2005, the common desk. Lifehacker also offers plenty of inspiration.

The computer. I like to keep my computer tidy, in some way, organized. First of all I care about the monitors. After I've found the best possible placement, in terms of light reflection on them, I adjust them to a comfortable height and angle, considering that I sit very low on my chair, having my arms all resting on the desk, and my keyboard and mouse, as far as possible, just under them, so I can work with my arms well stretched.

I currently have three monitors, one for the consoles, and two for the PC. I keep one horizontal and another in vertical (note: rotating the monitor does screw cleartype. It's still good enough on my setup, but you should know that. Also the VGA input is usually more blurry than DVI, a good idea is to calibrate your monitor if you're using it, using a fine bw checkerboard).
Then I adjust the monitors to the same brightness and white balance, trying to find something comfortable considering the ambient lighting, usually with an hardware calibrator but you can do the same by eye, using some reference charts.

On the software side, there are a few things I always do with a new PC. For readability I enable and tune cleartype, and I customize my colour schemes. There is much debate over those, I won't argue between light versus dark, there is a nice stackoverflow thread about that if you're interested (update: this is cool and this one is nice too)
There are a few utilities that I also always use. I try to be orthogonal in my choices and not to bloat my pc. Currently my must-haves are Launchy, Rockscroll (Metalscroll), Unlocker, 7Zip, Irfanview, Notepad++, Firefox with a few plugins, VLC and CCleaner. Some other nifty utils are Local History, Everything, GridMove, DropCloth, Ultramon and Beyond Compare.

Music is another fundamental part of my day. I use youtube a lot, for that some other coworkers of mine treasure groove salad.

Don't work. Actually, most of my work related ideas come when I'm not working. Go for a walk! Also explaining your idea to other people works a lot. Even if they won't provide any feedback and that's rare, nine times out of ten you'll gain more insight in the process. Write a presentation, talk. Even to yourself. Write a blog, even if it's messy like mine (even if I can't really talk about anything related to what I'm doing at work... so this is really a repository for future or personal or in other ways lame, ideas)