@braintree_dev @cbetta
Hackathons on Rails
Cristiano Betta Developer Advocate
@braintree_dev @cbetta
a Ruby <3 StoryCristiano Betta
Developer Advocate
@braintree_dev @cbetta
Hackathons on Rails
Cristiano Betta Developer Advocate
@braintree_dev @cbetta
Hackathons on Rails
Cristiano Betta Developer Advocate
@braintree_dev @cbetta
@braintree_dev @cbettaBraintree
@braintree_dev @cbettaBraintree
@braintree_dev @cbettaBraintree
That’s me
@braintree_dev @cbettaBraintree
@braintree_dev @cbettaBraintree
I also do bad jokes
@braintree_dev @cbettaBraintree
An American Express Walks into a Bar in Moscow...
@braintree_dev @cbettaBraintree
the bartender says,
“Sorry mate, You aren’t allowed in here
without a...”
@braintree_dev @cbettaBraintree
“VISA!”
@braintree_dev @cbettaBraintree
I <3 U Cluj!
@braintree_dev @cbettaBraintree
@braintree_dev @cbettaBraintree
Buna ziua Transilvania!
@braintree_dev @cbetta
Hackathons on Rails
Cristiano Betta Developer Advocate
@braintree_dev @cbetta
2004
@braintree_dev @cbettaBraintree
@braintree_dev @cbettaBraintree
@braintree_dev @cbettaBraintree
@braintree_dev @cbettaBraintree
-> -> -> ->
@braintree_dev @cbetta
2007
@braintree_dev @cbettaBraintree
@braintree_dev @cbettaBraintree
@braintree_dev @cbettaBraintree
@braintree_dev @cbettaBraintree
@braintree_dev @cbettaBraintree
@braintree_dev @cbettaBraintree
Simon Willison
@braintree_dev @cbettaBraintree
Simon WillisonCo-Founder of Lanyrd
@braintree_dev @cbettaBraintree
Simon WillisonCo-Founder of LanyrdCo-Creator of Django
@braintree_dev @cbettaBraintree
@braintree_dev @cbettaBraintree
map(function, sequence)
@braintree_dev @cbettaBraintree
sequence.map(function)
@braintree_dev @cbettaBraintree
sequence.map function
@braintree_dev @cbettaBraintree
sequence.map do #awesomeness end
@braintree_dev @cbettaBraintree
@braintree_dev @cbettaBraintree
<3
@braintree_dev @cbettaBraintree
Ruby 1.8
@braintree_dev @cbettaBraintree
Bundler
@braintree_dev @cbettaBraintree
@braintree_dev @cbetta
2008
@braintree_dev @cbettaBraintree
@braintree_dev @cbettaBraintree
[[NSString alloc] initWithFormat:@“This looks %s", complicatedValue];
@braintree_dev @cbettaBraintree
@braintree_dev @cbettaBraintree
Bundler
@braintree_dev @cbettaBraintree
Testing
@braintree_dev @cbetta
Hackathons on Rails
Cristiano Betta Developer Advocate
@braintree_dev @cbetta
A Ruby <3 storyCristiano Betta
Developer Advocate
@braintree_dev @cbetta
How I failed to let go of the 2nd love
of my lifeCristiano Betta
Developer Advocate
@braintree_dev @cbetta
2009
@braintree_dev @cbettaBraintree
(Pizza Powered)
@braintree_dev @cbettaBraintree
(EmberAds)
@braintree_dev @cbettaBraintree
@braintree_dev @cbettaBraintree
fs.readdir(source, function(err, files) { if (err) { console.log('Error finding files: ' + err) } else {
} })
@braintree_dev @cbettaBraintree
fs.readdir(source, function(err, files) { if (err) { console.log('Error finding files: ' + err) } else { files.forEach(function(filename, fileIndex) { console.log(filename) gm(source + filename).size(function(err, values) {
} }) }) } })
@braintree_dev @cbettaBraintree
fs.readdir(source, function(err, files) { if (err) { console.log('Error finding files: ' + err) } else { files.forEach(function(filename, fileIndex) { console.log(filename) gm(source + filename).size(function(err, values) { if (err) { console.log('Error identifying file size: ' + err) } else { console.log(filename + ' : ' + values) aspect = (values.width / values.height) widths.forEach(function(width, widthIndex) { height = Math.round(width / aspect) console.log('resizing ' + filename + 'to ' + height + 'x' + height) this.resize(width, height).write(destination + 'w' + width + '_' + filename, function(err) { if (err) console.log('Error writing file: ' + err) }) }.bind(this)) } }) }) } })
@braintree_dev @cbettaBraintree
@braintree_dev @cbetta
Since then
@braintree_dev @cbettaBraintree
@braintree_dev @cbettaBraintree
@braintree_dev @cbettaBraintree
@braintree_dev @cbettaBraintree
@braintree_dev @cbettaBraintree
@braintree_dev @cbettaBraintree
@braintree_dev @cbettaBraintree
@braintree_dev @cbettaBraintree
@braintree_dev @cbettaBraintree
@braintree_dev @cbettaBraintree
@braintree_dev @cbettaBraintree
@braintree_dev @cbettaBraintree
WHICH HACKERS ARE THE BEST?
@braintree_dev @cbetta
2013 sucked
@braintree_dev @cbettaBraintree
EventBrite
@braintree_dev @cbettaBraintree
MailChimp
@braintree_dev @cbettaBraintree
Github Pages
@braintree_dev @cbettaBattleHack.org
@braintree_dev @cbettaBraintree
@braintree_dev @cbettaBraintree
statistics
@braintree_dev @cbettaBraintree
microservices
@braintree_dev @cbettaBraintree
microservices
@braintree_dev @cbettaBraintree
@braintree_dev @cbettaBraintree
@braintree_dev @cbettaBraintree
private channels
@braintree_dev @cbettaBraintree
auth-*
@braintree_dev @cbettaBraintree
auth-battlehack
hackcodeofconduct.org
@braintree_dev @cbettaBraintree
@braintree_dev @cbettastarttank.paypal.com/london
@braintree_dev @cbettablueprint.paypal.com
@braintree_dev @cbettaBraintree
github.com/cbetta/dokkufy
@braintree_dev @cbetta
Hackathons on Rails
Cristiano Betta Developer Advocate
@braintree_dev @cbetta
Hackathons on Rails
Cristiano Betta Tooling and Engineering Lead
@braintree_dev @cbetta
Hackathons on Rails
Cristiano Betta F*** It Ship It Wizard
@braintree_dev @cbettaBraintree
I <3 Job Security ;)
WHICH HACKERS ARE THE BEST?
@braintree_dev @cbetta
2015
@braintree_dev @cbetta
6 BattleHacks done!
@braintree_dev @cbettaBraintree
Popularity
@braintree_dev @cbettaBraintree
@braintree_dev @cbettaBraintree
5. Python
@braintree_dev @cbettaBraintree
5. Python4. AngularJS
@braintree_dev @cbettaBraintree
5. Python4. AngularJS3. Android
@braintree_dev @cbettaBraintree
5. Python4. AngularJS3. Android2. Javascript
@braintree_dev @cbettaBraintree
5. Python4. AngularJS3. Android2. Javascript1. NodeJS
@braintree_dev @cbettaBraintree
Rating
@braintree_dev @cbettaBraintree
@braintree_dev @cbettaBraintree
- NodeJS
@braintree_dev @cbettaBraintree
- NodeJS- C
@braintree_dev @cbettaBraintree
- NodeJS- C- Java
@braintree_dev @cbettaBraintree
- NodeJS- C- Java- MogoDB
@braintree_dev @cbettaBraintree
- NodeJS- C- Java- MogoDB+ Azure
@braintree_dev @cbettaBraintree
Winner?
@braintree_dev @cbettaBraintree
LA
@braintree_dev @cbettaBraintree
CakePHP
@braintree_dev @cbettaBraintree
Singapore
@braintree_dev @cbettaBraintree
Android, Arduino, NodeJS, MongoDB
@braintree_dev @cbettaBraintree
Raleigh
@braintree_dev @cbettaBraintree
Objective-C, Python, NodeJS, HTML5, CSS, JavaScript
@braintree_dev @cbettaBraintree
London
@braintree_dev @cbettaBraintree
SparkCore, wemo, ifttt, Sendgrid, Python, Pusher, Twilio, AWS, NodeJS,
Bootstrap, Backbone.js, SIP, handlebars, Braintree, webrtc, Swift,
Geofencing
@braintree_dev @cbettaBraintree
Athens
@braintree_dev @cbettaBraintree
NodeJS, Ruby on Rails, Python, Raspberry Pi, Heroku, Ruby
@braintree_dev @cbettaBraintree
@braintree_dev @cbettaBraintree
@braintree_dev @cbettaBraintree
<3
THANK YOUCristiano Betta
Developer Advocate
@cbetta | @[email protected]