To celebrate the NovaRUG's 50th meeting, they opened the floor to lightning talks. As an added incentive, the highest voted lightning talk was to be given a speaking slot at RubyNation 2011. I guess bringing my friends and family paid off that day. In
the spirit of that event, I gave back-to-back lightning talks on a wide range of
topics, including:
* Do Your Commit Messages Suck?
* "Vendor Everything" Still Applies
* CoffeeScript: Exposing the Good Parts of JavaScript with Better Syntax
* How We Use MongoDB at BusyConf
* HTML5 Application Caching
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
One Man Lightning Talks
1. One Man
Lightning Talks
An opportunity to witness disaster
Ryan McGeary
http://ryan.mcgeary.org
@rmm5t
Bill Brookman
Showman Extraordinaire
Monday, April 4, 2011
2. Do Your Commit
Messages Suck?
Ryan McGeary
http://ryan.mcgeary.org
@rmm5t
Monday, April 4, 2011
9. Good
0835022 Updated basic
auth prompt to
reflect app name
Monday, April 4, 2011
10. Good
950b8de
0835022 Updated basic
Fixed password reset for
users who use the same
authonprompt accounts
email multiple to
[Fixes #11102389] name
reflect app
Monday, April 4, 2011
11. More Good
3224fff Added an extra 10s while sleeping
after a Twitter rate-limit error
* Twitter isn't always ready
immediately after sleeping the
advertised amount of time.
Monday, April 4, 2011
12. More Good
334a2c4 Fixed bug related to contact syncing
[#9190663]
Contacts that should have been tagged both friend and
3224fff Added an extra 10s while sleeping
follower were having those tags toggled on each
after a Twitter rate-limit error
#profile_sync run.
If the contact had "follower", and ready
* Twitter isn't always profile_sync was
immediately after sleeping the
run, then the code would set the system_tags to
advertised amount of time.
["following"], blowing away the "follower" tag.
It would do the same thing vice versa for the
"following" system tag.
Monday, April 4, 2011
13. Template
Ya generic
AR#6375]
Moved all static pages into
M M
PagesController [Finishes
SU
I S
* Cleaned up the routes
Lpage creation
* Simplified TA
static
DE
Monday, April 4, 2011
14. Template
Moved all static pages N
B T a generic
E into
VE R M #
FR A [Finishes #6375]ET
PagesController G
CK
* Cleaned up the routes TI
HY
* Simplified static page creation
W
Monday, April 4, 2011
19. Check in your
.rvmrc
rvm ruby-1.9.2
Monday, April 4, 2011
20. RVM Gemsets
Are Overrated
Monday, April 4, 2011
21. Let Bundler Follow the
--path
$ bundle install --path vendor
$ echo 'vendor/ruby' >> .gitignore
Monday, April 4, 2011
22. Package Your Gems in
vendor/cache
$ bundle package
Monday, April 4, 2011
23. Help!
alias b="bundle"
alias bi="b install --path vendor"
alias bu="b update"
alias be="b exec"
alias binit="bi && b package && echo 'vendor/ruby'
>> .gitignore"
Monday, April 4, 2011
25. CoffeeScript
A little language that compiles into JavaScript
Ryan McGeary
http://ryan.mcgeary.org
@rmm5t
Monday, April 4, 2011
26. Jeremy Ashkenas
JavaScript's less
ostentatious kid brother CoffeeScript is
an attempt to
one-to-one expose the good
with JavaScript parts of
JavaScript in a
better simple way.
functional syntax
compiles to
the good parts
http://jashkenas.github.com/coffee-script/
Monday, April 4, 2011
27. if (typeof elvis !== "undefined" && elvis !== null) {
alert("I knew it!");
}
Monday, April 4, 2011
47. String and RegExp Interpolation
quote = "A picture is a fact."
author = "Wittgenstein"
phrase = "#{quote} -- #{author}"
sentence = "#{ 22 / 7 } approximates π"
sep = "[./- ]"
dates = /d+#{sep}d+#{sep}d+/g
Monday, April 4, 2011
48. String and RegExp Interpolation
var author, dates, phrase, quote, sentence, sep;
quote = "A picture is a fact.";
author = "Wittgenstein";
phrase = ("" + (quote) + " -- " + (author));
sentence = ("" + (22 / 7) + " is a decent approximation of π");
sep = "[./- ]";
dates = (new RegExp("d+" + (sep) + "d+" + (sep) + "d+", "g"));
Monday, April 4, 2011
49. Array and Object Comprehensions
foods = ['toast', 'cheese', 'wine']
lunch = (eat(food) for food in foods)
yearsOld = max: 10, ida: 9, tim: 11
ages = for child, age of yearsOld
"#{child} is #{age}"
Monday, April 4, 2011
53. The Rest...
Slicing and Splicing
Splat Arguments
Existential Operator
Everything is an expression; always a return value
Pattern matching with object literals
Switch/When/Else
While/Until/Loop
Try/Catch/Finally
Chained comparison
Multiline Strings, Heredocs, and Block Comments
http://jashkenas.github.com/coffee-script/
Monday, April 4, 2011
59. Event
Day 1 Day 2 Day 3
Track 1 Track 2 Track 3 TimeSlot 1
TimeSlot 1 TS 2 TS 3 Activity
Activity Activity Activity Speaker
Speaker 1 S2 S3
Monday, April 4, 2011
60. Events Days
1..N
o n?
i ti Tracks 1..N
pos
1..N
1..N
TimeSlots
1..1
Activities
T A?
DA
1..N
A
ET Links
1..N
Speakers M
Monday, April 4, 2011
61. Event
Day 1 Day 1
Track 1 Track 1
TimeSlot 1 TimeSlot n TimeSlot 1 TimeSlo
Activity Activity Activity tActivit
n
S1 Sn Speaker S1 Sn y Speak
er
Track n Track n
TimeSlot 1 TimeSlot 1
Activity Activity
Speaker Speaker
TimeSlot n TimeSlot n
Monday, April 4, 2011
62. Event
Day 1 Day 2 Day n...
Track 1 Track 2 Track n...
TimeSlot 1 TimeSlot 2 TimeSlot n...
Activity Speaker
Monday, April 4, 2011
63. HTML5
Application
Caching
There are only two hard
things in Computer Science:
cache invalidation
and naming things.
-- Phil Karlton
Ryan McGeary
http://ryan.mcgeary.org
@rmm5t
Monday, April 4, 2011