2014-05-13 07:27:47 +03:00
function Schedule ( ) {
var events = [ ] ;
this . addEvent = function ( event ) {
events . push ( event ) ;
events = _ . sortBy ( events , function ( event ) {
return event . startTime . unix ( )
} ) ;
}
this . upcomingEvents = function ( ) {
return _ . select ( events , function ( event ) {
return event . startTime . isAfter ( moment ( ) ) ;
} ) ;
}
this . nextEvent = function ( ) {
return _ . first ( this . upcomingEvents ( ) ) ;
}
2014-06-21 05:08:15 +03:00
this . currentEvent = function ( ) {
2014-06-21 10:55:38 +03:00
var latestEvent = _ . last ( this . pastEvents ( ) ) ;
2014-06-21 05:08:15 +03:00
var nextEvent = this . nextEvent ( ) ;
2014-08-20 14:36:12 +03:00
if ( typeof nextEvent != 'undefined' && moment ( nextEvent . startTime ) . subtract ( 'minutes' , 10 ) . isAfter ( moment ( ) ) ) {
2014-06-21 10:55:38 +03:00
return latestEvent ;
} else {
return undefined ;
}
2014-06-21 05:08:15 +03:00
}
2014-05-13 15:43:58 +03:00
this . futureEvents = function ( ) {
return this . upcomingEvents ( ) . splice ( 1 ) ;
}
this . pastEvents = function ( ) {
return _ . select ( events , function ( event ) {
return event . startTime . isBefore ( moment ( ) ) ;
} ) ;
}
this . allEvents = function ( ) {
2014-05-13 07:27:47 +03:00
return events ;
}
this . addDelay = function ( time ) {
_ . each ( this . upcomingEvents ( ) , function ( event , index , agenda ) {
event . startTime . add ( time ) ;
} ) ;
}
}
var schedule = new Schedule ( ) ;
2014-06-21 04:28:41 +03:00
schedule . addEvent ( {
2014-08-20 14:16:53 +03:00
title : 'Registration and Attendees Meet and Greet' ,
2014-06-21 04:28:41 +03:00
startTime : moment ( { hour : 9 , minute : 30 } )
} ) ;
2014-05-13 07:27:47 +03:00
schedule . addEvent ( {
2014-08-20 14:16:53 +03:00
title : 'Welcome to YAPC' ,
startTime : moment ( { hour : 11 } )
2014-05-13 07:27:47 +03:00
} ) ;
schedule . addEvent ( {
2014-08-20 14:16:53 +03:00
title : 'How The Camel Is De-Cocooning ' ,
startTime : moment ( { hour : 11 , minute : 30 } ) ,
2014-07-10 13:25:55 +03:00
speakers : [
{
2014-08-20 14:16:53 +03:00
name : 'liz' ,
description : 'Made some interesting modules, to be found at CPAN. Co-organiser YAPC::Europe::2001 in Amsterdam. Chairman of YAPC::Europe::Foundation (YEF)'
2014-07-10 13:25:55 +03:00
}
]
2014-05-13 07:27:47 +03:00
} ) ;
schedule . addEvent ( {
2014-08-20 14:16:53 +03:00
title : 'Lunch' ,
startTime : moment ( { hour : 12 , minute : 20 } )
2014-05-13 07:27:47 +03:00
} ) ;
2014-06-21 12:13:55 +03:00
schedule . addEvent ( {
2014-08-20 14:16:53 +03:00
title : ' Code I\'m proud of ' ,
startTime : moment ( { hour : 13 , minute : 20 } ) ,
2014-07-10 13:25:55 +03:00
speakers : [
{
2014-08-20 14:16:53 +03:00
name : 'Thomas Klausner ( domm )' ,
description : 'Currently full-time father of 2 kids, half-time Perl hacker, sort-of DJ, bicyclist, no longer dreadlocked and more than 34 years old but too lazy to update his profile once a year.'
2014-07-10 13:25:55 +03:00
}
]
2014-06-21 12:13:55 +03:00
} ) ;
2014-05-13 07:27:47 +03:00
schedule . addEvent ( {
2014-08-20 14:16:53 +03:00
title : 'How to Fake a Database Design ' ,
startTime : moment ( { hour : 13 , minute : 50 } ) ,
2014-07-10 13:25:55 +03:00
speakers : [
{
2014-08-20 14:16:53 +03:00
name : 'Curtis Poe ( Ovid )' ,
description : 'Freelance Perl guru for hire. Perl Foundation Board Committee member. Former Perl Foundation Grant Committee chair. Testing zealot. Professional expat. Beer lover.'
2014-07-10 13:25:55 +03:00
}
]
2014-05-13 07:27:47 +03:00
} ) ;
schedule . addEvent ( {
2014-08-20 14:16:53 +03:00
title : 'Rakudo Perl 6 and MoarVM Performance Advances ' ,
startTime : moment ( { hour : 14 , minute : 50 } ) ,
2014-07-10 13:25:55 +03:00
speakers : [
{
2014-08-20 14:16:53 +03:00
name : 'Jonathan Worthington ( jnthn )' ,
description : 'In the Perl world, Jonathan is best known as one of the key developers of the Rakudo Perl 6 compiler. His work has focused on the object model, type system, multiple dispatch and signatures. He\'s a regular speaker in the European Perl Conference and Workshop scene, and finds any invite to come and speak and enjoy a few beers with the local Perl hackers hard to resist.'
2014-07-10 13:25:55 +03:00
}
]
2014-05-13 07:27:47 +03:00
} ) ;
schedule . addEvent ( {
2014-08-20 14:16:53 +03:00
title : 'Coffee Break ☕' ,
startTime : moment ( { hour : 15 , minute : 40 } )
2014-05-13 07:27:47 +03:00
} ) ;
schedule . addEvent ( {
2014-08-20 14:16:53 +03:00
title : 'Lightning Talks' ,
startTime : moment ( { hour : 16 , minute : 10 } ) ,
2014-05-13 07:27:47 +03:00
} ) ;
schedule . addEvent ( {
2014-08-20 14:16:53 +03:00
title : ' Day 1 Keynote - You\'re Killing Managers (Keep It Up) ' ,
startTime : moment ( { hour : 17 , minute : 10 } ) ,
2014-07-10 13:25:55 +03:00
speakers : [
{
2014-08-20 14:16:53 +03:00
name : 'Curtis Poe ( Ovid )' ,
description : 'Freelance Perl guru for hire. Perl Foundation Board Committee member. Former Perl Foundation Grant Committee chair. Testing zealot. Professional expat. Beer lover.'
2014-07-10 13:25:55 +03:00
}
]
2014-05-13 07:27:47 +03:00
} ) ;
2014-06-21 04:28:41 +03:00
schedule . addEvent ( {
2014-08-20 14:16:53 +03:00
title : 'Official conference dinner ' ,
startTime : moment ( { hour : 19 , minute : 00 } )
2014-05-13 07:27:47 +03:00
} ) ;