buffer and masking – Dumb layer painting system: • Request: “I wanna put 1, 2 & 3” • Response: “draw X, Y, Z, masks are A, B” – Feature detection: No canvas, no store – Serverside logic: Safer & updateable – Live DB stores minimal needed data
& store it – Batch generate different resolutions in background – Lots of extra clientside logic – Prone to errors & connection problems – Really unsafe
inside a NodeJS inside a server” – nodeJS + node-canvas + Cairo – Inmature & unstable – Limited – Now maybe PhantomJS… but still unoptimal for our scenario
all formats of all avatars – ~1.5MB/avatar/user. Reduced to ~500KB – Way too space consuming – Solution: • Store metadata (could regenerate on demand) • Store only full smallest background (for Activity) – Trick: Default avatar is special case, doesn’t eat space.
100% manual process & validation – PoC helpful but as reference only – Had funny bugs • This shield cuts my avatar hand! • If I put this shoes, the pants dissapear! • Dude, where’s my soccer ball? • What happens if I delete this item assets while in use?
“Physical structure” (SVG with options) – Needed “Logical structure” • Each item & each color, + common info • Switched from “One Component” to “N Items”
"Never setup all AWS communication the release day“ – Had to hack in a night all Gearman communication & config changes – Dev. avatars going to live too (>_<) – Broke all avatar tests, half of dev. environment – Overscoped Amazon requirements (estimated 12 instances, currently 2 + tracker)
for small periods of time – Code expects “always present” folders – Timeouts, temporal communication failures… – Gearman is nice but lacks detailed info • (or we need to read more docs!)
• And human-induced bugs – Duplicated layer ids – False visual layer orders • Illustrators had to copy+paste on “clean” SVG • …or I had to edit the SVG as text and fix it (x_X)