BEGIN:VCALENDAR
PRODID:-//github.com/rianjs/ical.net//NONSGML ical.net 4.0//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:America/Phoenix
X-LIC-LOCATION:America/Phoenix
END:VTIMEZONE
BEGIN:VEVENT
DESCRIPTION:<p>Abstraction is a blessing and a curse. Too little\, and our
  applications are difficult to extend and maintain. Too much\, and our ap
 plications become difficult to extend and maintain. Finding the right lev
 el is the key to success. During this session\, we'll explore real-world 
 programming problems. We'll start small\, adding abstraction only as we n
 eed it. Along the way\, we'll find design patterns that help us with each
  step\, including REPOSITORY\, FACTORY METHOD\, and INVERSION OF CONTROL 
 (among others). When we're done\, we'll have just the right level of abst
 raction needed to solve the problem at hand.</p>
DTEND;TZID=America/Phoenix:20131109T111500
DTSTAMP:20260710T140603Z
DTSTART;TZID=America/Phoenix:20131109T101500
GEO:33.293070;-111.796620
LOCATION:Chandler - Gilbert Community College - IRN-227
ORGANIZER:
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:<p>Abstraction is a blessing and a curse. Too little\, and our app
 lications are difficult to extend and maintain. Too much\, and our applic
 ations become difficult to extend and maintain. Finding the right level i
 s the key to success. During this session\, we'll explore real-world prog
 ramming problems. We'll start small\, adding abstraction only as we need 
 it. Along the way\, we'll find design patterns that help us with each ste
 p\, including REPOSITORY\, FACTORY METHOD\, and INVERSION OF CONTROL (amo
 ng others). When we're done\, we'll have just the right level of abstract
 ion needed to solve the problem at hand.</p>
UID:ae47f511-de66-4e8a-b4c0-dd205ed52a18
END:VEVENT
END:VCALENDAR
