interlude/schedule.js

164 lines
8.9 KiB
JavaScript
Raw Permalink Normal View History

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-07-12 13:26:12 +03:00
if (typeof nextEvent != 'undefined' && (latestEvent.displayNext || 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({
title: 'Кафе',
startTime: moment({hour: 9, minute: 30})
});
2014-05-13 07:27:47 +03:00
schedule.addEvent({
title: 'Откриване',
2014-07-10 13:25:55 +03:00
startTime: moment({hour: 9, minute: 50})
2014-05-13 07:27:47 +03:00
});
schedule.addEvent({
2014-07-10 13:25:55 +03:00
title: 'Node.js and Open Source Software Development on Microsoft Azure',
startTime: moment({hour: 10}),
speakers: [
{
name: 'Михаил Матеев',
description: 'Михаил е разработчик в Infragistics. Работил е в различни области, свързани с технологии на Microsoft, като Silverlight, WPF, Windows Phone, Visual Studio LightSwitch, Windows Store приложения, WCF RIA Services, MS SQL Server и Microsoft Azure. През последните десет години, Михаил е писал статии за Computer World и различни блогове за .NET технологии. Той е сътрудник и технически редактор на PACKT Publishing and Wiley. Повече от пет години е работил в ESRI България. Няколко години Михаил е бил лектор в ФМИ на Софийския университет "Св. за Климент Охридски ". Също така е и преподавател по компютърни системи в Университет по Архитектура, Строителство и Геодезия в София.'
}
]
2014-05-13 07:27:47 +03:00
});
schedule.addEvent({
2014-07-12 09:06:43 +03:00
title: 'Редизайн на „държавата“ и препрограмиране на „системата“',
2014-07-10 13:25:55 +03:00
startTime: moment({hour: 11, minute: 10}),
speakers: [
{
2014-07-12 09:06:43 +03:00
name: 'Антон Стойчев',
description: 'Антон е прекарал последните 2 години във Великобритания, работейки като разработчик, предимно на саморегулиращи се системи за извличане и анализ на данни, достигащи на размер стотици сървъри на AWS. Сега е тук и иска да добави смисъл и желание за неизбежния, целодневен престой пред монитор; Чрез “Civic Hacking” нещо започващо с работещите в дигиталната сфера, но обхващащо всички други. Живее живота си майсторейки и обичайки, в опити за рисуване, писане, четене и прекарвайки часове в сглобяване на извинения за честите си пътувания.'
2014-07-10 13:25:55 +03:00
}
]
2014-05-13 07:27:47 +03:00
});
2014-06-21 12:13:55 +03:00
schedule.addEvent({
2014-07-10 13:25:55 +03:00
title: 'iOS Development - Tips & Tricks',
2014-07-12 11:58:34 +03:00
startTime: moment({hour: 12, minute: 10}),
2014-07-10 13:25:55 +03:00
speakers: [
{
name: 'Галин Кърджилов',
description: 'Галин е проактивен и творчески настроен софтуерен инженер с повече от 10 години опит. В момента е посветен на мобилните разработки и работи като Senior iOS Developer в MentorMate София. Неговият стремеж е да генерира максимално въздействие към потребителите.'
},
{
name: 'Стефан Цвятков',
description: 'Стефан е започнал кариерата си като разработчик за Mac. През 2008 г. Apple пуска iOS SDK и това е началото на една ера. Оттогава, той работи по създаването iOS приложения. В MentorMate той успява да изгради най-големия екип от iOS програмисти в България. Стефан е известен с желанието си да подобри мобилните приложения, за да бъдат по-интерактивни, ефективни и оптимизирани за нуждите на бизнеса.'
}
]
2014-06-21 12:13:55 +03:00
});
2014-05-13 07:27:47 +03:00
schedule.addEvent({
2014-07-10 13:25:55 +03:00
title: 'Обяд',
startTime: moment({hour: 12, minute: 40})
2014-05-13 07:27:47 +03:00
});
schedule.addEvent({
2014-07-10 13:25:55 +03:00
title: 'The Cloud Beyond the Buzzword',
2014-06-21 04:28:41 +03:00
startTime: moment({hour: 13, minute: 30}),
2014-07-10 13:25:55 +03:00
speakers: [
{
name: 'Божидар Божанов',
description: 'Божидар Божанов е програмист, а понякога и архитект. От скука е направил http://computoser.com - компютърен композитор, а друго негово хоби е лингвистиката. Притежател на "дебел" stackoverflow профил.'
}
]
2014-05-13 07:27:47 +03:00
});
schedule.addEvent({
2014-07-10 13:25:55 +03:00
title: 'Мета-програмиране с Nimrod',
2014-06-21 04:28:41 +03:00
startTime: moment({hour: 14, minute: 20}),
2014-07-10 13:25:55 +03:00
speakers: [
{
name: 'Захари Караджов',
description: 'Захари е C++ ветеран от гейм-индустрията, а понастоящем технически директор в Даркиум Студио, където с помощта на кофейн и CoffeeScript се разработва нов социално ориентиран уеб браузър. Твърдо убеден е, че използваните в момента езици за програмиране ще бъдат изместени от нови по-бързи, по-мощни и по-красиви такива и от нетърпение сам се е захванал да допринесе за това, участвайки в разработката на Nimrod.'
}
]
2014-05-13 07:27:47 +03:00
});
schedule.addEvent({
2014-07-10 13:25:55 +03:00
title: 'File editing on the client side (Javascript)',
2014-06-21 04:28:41 +03:00
startTime: moment({hour: 15, minute: 10}),
2014-07-10 13:25:55 +03:00
speakers: [
{
name: 'Росен Колев',
description: 'Росен работи като софтуерен разработчик повече от 5 години. В моментът е Senior .NET Developer в MentorMate Варна. Пише главно на .NET, C#, JavaScript и от време на време Objective-C. Обича добре подредед код и мрази лошата архитектура.'
}
]
2014-05-13 07:27:47 +03:00
});
schedule.addEvent({
2014-06-21 04:28:41 +03:00
title: 'Кафе пауза ☕',
startTime: moment({hour: 15, minute: 50})
2014-05-13 07:27:47 +03:00
});
schedule.addEvent({
2014-07-12 09:06:43 +03:00
title: 'Екстремно програмиране',
2014-06-21 04:28:41 +03:00
startTime: moment({hour: 16, minute: 10}),
2014-07-10 13:25:55 +03:00
speakers: [
{
2014-07-12 09:06:43 +03:00
name: 'Стефан Кънев',
description: 'Стефан се занимава с програмиране откакто се помни. Сред любимите му неща са Ruby, Vim, автоматизирани тестове, папийонки, Apple продуктите и всевъзможни екзотични езици за програмиране. В заетото си време програмира на Rails, а в свободното - води един-два курса във ФМИ към СУ, пише много код, който после трие и се опитва да не се нарани с планинското си колело. Никак не обича PHP и е амбивалентен към Java.'
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({
title: 'Lightning Talks',
2014-07-10 13:25:55 +03:00
startTime: moment({hour: 17, minute: 00})
2014-06-21 04:28:41 +03:00
});
2014-05-13 07:27:47 +03:00
schedule.addEvent({
title: 'Закриване',
2014-07-10 13:25:55 +03:00
startTime: moment({hour: 18, minute: 00})
2014-05-13 07:27:47 +03:00
});