30
Human-powered Javascript Compression for Fun and Gummy Bears #codebits2010 :: @ruidlopes :: ruidlopes.com

Human-powered Javascript Compression for Fun and Gummy Bears

Embed Size (px)

Citation preview

Page 1: Human-powered Javascript Compression for Fun and Gummy Bears

Human-powered Javascript Compression

for Fun and Gummy Bears

#codebits2010 :: @ruidlopes :: ruidlopes.com

Page 2: Human-powered Javascript Compression for Fun and Gummy Bears

First of all...

Let there begummy bears!

Page 3: Human-powered Javascript Compression for Fun and Gummy Bears

Javascript

Page 4: Human-powered Javascript Compression for Fun and Gummy Bears

Javascript

Page 5: Human-powered Javascript Compression for Fun and Gummy Bears

BAD!!

Page 6: Human-powered Javascript Compression for Fun and Gummy Bears

Being evil is fun!!

Page 7: Human-powered Javascript Compression for Fun and Gummy Bears

Let the fun begin

Page 8: Human-powered Javascript Compression for Fun and Gummy Bears

var context = document.getElementById('c').getContext('2d'); var dataArray = context.getImageData(0,0,200,200); var tick = function() { for (var i = 0; i < 160000; i += 4) { var color = Math.floor(Math.random() * 255); dataArray.data[i] = color; dataArray.data[i+1] = color; dataArray.data[i+2] = color; dataArray.data[i+3] = 255; } context.putImageData(dataArray, 0, 0); }; window.setInterval(tick, 1);

Page 9: Human-powered Javascript Compression for Fun and Gummy Bears

Original Google Closure Google Closure (agressive)

405

331

255

Page 10: Human-powered Javascript Compression for Fun and Gummy Bears

37% decrease(not bad – for a robot)

Page 11: Human-powered Javascript Compression for Fun and Gummy Bears

Javascript

Page 12: Human-powered Javascript Compression for Fun and Gummy Bears

shorter variable names

333

Page 13: Human-powered Javascript Compression for Fun and Gummy Bears

‘window’ is...redundant

326

Page 14: Human-powered Javascript Compression for Fun and Gummy Bears

only one function

314

Page 15: Human-powered Javascript Compression for Fun and Gummy Bears

DOM is versatile

311

Page 16: Human-powered Javascript Compression for Fun and Gummy Bears

assignments return values

301

Page 17: Human-powered Javascript Compression for Fun and Gummy Bears

DOM is freaking versatile!

277

Page 18: Human-powered Javascript Compression for Fun and Gummy Bears

Know your APIs inside out

217

Page 19: Human-powered Javascript Compression for Fun and Gummy Bears

pure evil variable creation

215

Page 20: Human-powered Javascript Compression for Fun and Gummy Bears

know your loops

199

Page 21: Human-powered Javascript Compression for Fun and Gummy Bears

master your automatic type-casting

187

Page 22: Human-powered Javascript Compression for Fun and Gummy Bears

numbers have different

representations

181

Page 23: Human-powered Javascript Compression for Fun and Gummy Bears

ok, let’s remove some whitespace now

153

Page 24: Human-powered Javascript Compression for Fun and Gummy Bears

know your math

152

Page 25: Human-powered Javascript Compression for Fun and Gummy Bears

“function” is expensive, just eval it.

139already fits a twit!

Page 26: Human-powered Javascript Compression for Fun and Gummy Bears

; is optional, sometimes

135

Page 27: Human-powered Javascript Compression for Fun and Gummy Bears

0

125

250

375

500

Humans Robots

Page 28: Human-powered Javascript Compression for Fun and Gummy Bears

67% decrease(pretty awesome – for a human)

Page 29: Human-powered Javascript Compression for Fun and Gummy Bears

get inspired by

raphaël.js js1k

the incredible demoscene

Page 30: Human-powered Javascript Compression for Fun and Gummy Bears

Thank you!