diff --git a/index.html b/index.html
index 2f88c57..7a26002 100644
--- a/index.html
+++ b/index.html
@@ -129,6 +129,7 @@
{{/eventCount}}
diff --git a/musala.html b/musala.html
new file mode 100644
index 0000000..e127caa
--- /dev/null
+++ b/musala.html
@@ -0,0 +1,140 @@
+
+
+ YAPC::EU Interlude
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/rodopi.html b/rodopi.html
new file mode 100644
index 0000000..98303c2
--- /dev/null
+++ b/rodopi.html
@@ -0,0 +1,140 @@
+
+
+ YAPC::EU Interlude
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/schedule-musala.js b/schedule-musala.js
new file mode 100644
index 0000000..2b37e28
--- /dev/null
+++ b/schedule-musala.js
@@ -0,0 +1,133 @@
+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());
+ }
+
+ this.currentEvent = function() {
+ var latestEvent = _.last(this.pastEvents());
+ var nextEvent = this.nextEvent();
+ if (typeof nextEvent != 'undefined' && moment(nextEvent.startTime).subtract('minutes', 10).isAfter(moment())) {
+ return latestEvent;
+ } else {
+ return undefined;
+ }
+ }
+
+ this.futureEvents = function() {
+ return this.upcomingEvents().splice(1);
+ }
+
+ this.pastEvents = function() {
+ return _.select(events, function(event) {
+ return event.startTime.isBefore(moment());
+ });
+ }
+
+ this.allEvents = function() {
+ return events;
+ }
+
+ this.addDelay = function(time) {
+ _.each(this.upcomingEvents(), function(event, index, agenda) {
+ event.startTime.add(time);
+ });
+ }
+}
+
+var schedule = new Schedule();
+
+schedule.addEvent({
+ title: 'Auditing and toughening as part of the Security Development Lifecycle',
+ startTime: moment({hour: 11, minute: 30}),
+ speakers: [
+ {
+ name: 'John Lightsey',
+ description: ''
+ }
+ ]
+});
+
+schedule.addEvent({
+ title: 'Lunch 🍔',
+ startTime: moment({hour: 12, minute: 20})
+});
+
+schedule.addEvent({
+ title: 'Geocoding the World (in Perl)',
+ startTime: moment({hour: 13, minute: 20}),
+ speakers: [
+ {
+ name: 'Alex Balhatchet (Kaoru)',
+ description: 'CTO at Lokku Ltd. Their main brand is the property search engine Nestoria (http://www.nestoria.com/) which operates in nine countries. They\'ve made numerous contributions to CPAN, check them out: https://github.com/lokku. They also have a developer blog which you can read here: http://devblog.nestoria.com/'
+ }
+ ]
+});
+
+schedule.addEvent({
+ title: 'Adventures in civic hacking - FixMyStreet\'s Open311 support',
+ startTime: moment({hour: 13, minute: 50}),
+ speakers: [
+ {
+ name: 'osfameron',
+ description: 'mySociety, DoES Liverpool (coworking/hackspace), co-author of Designing the Internet of Things'
+ }
+ ]
+});
+
+schedule.addEvent({
+ title: 'A geo search engine in a few lines of perl',
+ startTime: moment({hour: 14, minute: 20}),
+ speakers: [
+ {
+ name: 'Ervin Ruci (eruci)',
+ description: ''
+ }
+ ]
+});
+
+schedule.addEvent({
+ title: 'Running Slovenian national video and audio archive on Perl Dancer.',
+ startTime: moment({hour: 14, minute: 50}),
+ speakers: [
+ {
+ name: 'Simun Kodzoman',
+ description: ''
+ }
+ ]
+});
+
+schedule.addEvent({
+ title: 'Perl in Automotive Logistics',
+ startTime: moment({hour: 15, minute: 20}),
+ speakers: [
+ {
+ name: 'Luboš Kolouch (kolcon)',
+ description: 'He\'s an IT Manager who loves to find balance between technical, people and commercial aspects of projects. He like IT Security, Linux and coding in Perl.'
+ }
+ ]
+});
+
+schedule.addEvent({
+ title: 'Coffee Break ☕',
+ startTime: moment({hour: 15, minute: 40})
+});
+
+schedule.addEvent({
+ title: 'Official conference dinner 🍸',
+ startTime: moment({hour: 19, minute: 00})
+});
diff --git a/schedule-rodopi.js b/schedule-rodopi.js
new file mode 100644
index 0000000..8991da0
--- /dev/null
+++ b/schedule-rodopi.js
@@ -0,0 +1,144 @@
+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());
+ }
+
+ this.currentEvent = function() {
+ var latestEvent = _.last(this.pastEvents());
+ var nextEvent = this.nextEvent();
+ if (typeof nextEvent != 'undefined' && moment(nextEvent.startTime).subtract('minutes', 10).isAfter(moment())) {
+ return latestEvent;
+ } else {
+ return undefined;
+ }
+ }
+
+ this.futureEvents = function() {
+ return this.upcomingEvents().splice(1);
+ }
+
+ this.pastEvents = function() {
+ return _.select(events, function(event) {
+ return event.startTime.isBefore(moment());
+ });
+ }
+
+ this.allEvents = function() {
+ return events;
+ }
+
+ this.addDelay = function(time) {
+ _.each(this.upcomingEvents(), function(event, index, agenda) {
+ event.startTime.add(time);
+ });
+ }
+}
+
+var schedule = new Schedule();
+
+schedule.addEvent({
+ title: 'Perl Secret',
+ startTime: moment({hour: 11, minute: 30}),
+ speakers: [
+ {
+ name: 'Mihai Pop',
+ description: ''
+ }
+ ]
+});
+
+schedule.addEvent({
+ title: 'Translation with context',
+ startTime: moment({hour: 12, minute: 30}),
+ speakers: [
+ {
+ name: 'Mark Overmeer (markov)',
+ description: 'Perl, Perl and UNIX'
+ }
+ ]
+});
+
+schedule.addEvent({
+ title: 'Lunch 🍔',
+ startTime: moment({hour: 12, minute: 20})
+});
+
+schedule.addEvent({
+ title: 'Some Dist::Zilla::Plugin:: best practices',
+ startTime: moment({hour: 13, minute: 20}),
+ speakers: [
+ {
+ name: 'Olivier Mengué (dolmen)',
+ description: '15 years of Perl programming (6 years as a full time Perl developer). Worked as a professional Perl developer on a portable (various Unix, Linux, Windows) daemon application built with POE. Currently working with Perl in an embedded environment for home automation with AnyEvent, Dist::Zilla...'
+ }
+ ]
+});
+
+schedule.addEvent({
+ title: 'Video and audio with Perl and DLNA (and Chromecast)',
+ startTime: moment({hour: 13, minute: 50}),
+ speakers: [
+ {
+ name: 'Max Maischein (Corion)',
+ description: ''
+ }
+ ]
+});
+
+schedule.addEvent({
+ title: 'Home Automation With Perl',
+ startTime: moment({hour: 14, minute: 20}),
+ speakers: [
+ {
+ name: 'Maroš Kollár (maros)',
+ description: ' Perl aficionado since 1998 and one of the YAPC::EU 2007 organizers.'
+ }
+ ]
+});
+
+schedule.addEvent({
+ title: 'Open source deep sky images using perl',
+ startTime: moment({hour: 14, minute: 50}),
+ speakers: [
+ {
+ name: 'StrayTaoist',
+ description: 'Rarely seen in public, and even then only from behind. Willing to tell you how and why you are wrong.'
+ }
+ ]
+});
+
+schedule.addEvent({
+ title: 'Get Me to the Pub Please',
+ startTime: moment({hour: 15, minute: 20}),
+ speakers: [
+ {
+ name: 'Sue Spence (virtualsue)',
+ description: ' Perl programmer, currently working at UK2 in London.'
+ }
+ ]
+});
+
+schedule.addEvent({
+ title: 'Coffee Break ☕',
+ startTime: moment({hour: 15, minute: 40})
+});
+
+schedule.addEvent({
+ title: 'Official conference dinner 🍸',
+ startTime: moment({hour: 19, minute: 00})
+});
diff --git a/schedule.js b/schedule.js
index 8d05571..084f6c4 100644
--- a/schedule.js
+++ b/schedule.js
@@ -62,12 +62,12 @@ schedule.addEvent({
});
schedule.addEvent({
- title: 'How The Camel Is De-Cocooning',
+ title: 'Perl 6 in context',
startTime: moment({hour: 11, minute: 30}),
speakers: [
{
- 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)'
+ name: 'Herbert Breunung (lichtkind)',
+ description: ' Perl Artist since 2003. Main project: Kephra, Perl 6 Tablets. Main Interests: Wisdom, also Gui programming with Wx and Perl 6.'
}
]
});