Compare commits
13 Commits
Author | SHA1 | Date |
---|---|---|
Petko Bordjukov | c9ceb8407a | |
Petko Bordjukov | a67e2795b1 | |
Petko Bordjukov | faa536a7d3 | |
Petko Bordjukov | 575d359fe3 | |
Petko Bordjukov | 1c4bfa72f3 | |
Petko Bordjukov | efdab41b1a | |
Petko Bordjukov | 038b8099fc | |
Petko Bordjukov | 0d1322fac4 | |
Petko Bordjukov | c7ea4fb8a7 | |
Petko Bordjukov | 221258f723 | |
Petko Bordjukov | fc09fef53c | |
Petko Bordjukov | e5ac8c178a | |
Petko Bordjukov | 06e2a9d2bd |
BIN
background.mp4
BIN
background.mp4
Binary file not shown.
Binary file not shown.
39
index.html
39
index.html
|
@ -1,6 +1,6 @@
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>The IT Tour</title>
|
<title>YAPC::EU Interlude</title>
|
||||||
|
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
|
|
||||||
|
@ -13,7 +13,6 @@
|
||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/reveal.js/2.6.2/lib/js/head.min.js"></script>
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/reveal.js/2.6.2/lib/js/head.min.js"></script>
|
||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/reveal.js/2.6.2/js/reveal.min.js"></script>
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/reveal.js/2.6.2/js/reveal.min.js"></script>
|
||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.6.0/moment.min.js"></script>
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.6.0/moment.min.js"></script>
|
||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.6.0/lang/bg.js"></script>
|
|
||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/ractive.js/0.3.7/ractive.min.js"></script>
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/ractive.js/0.3.7/ractive.min.js"></script>
|
||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.6.0/underscore-min.js"></script>
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.6.0/underscore-min.js"></script>
|
||||||
<script src="schedule.js"></script>
|
<script src="schedule.js"></script>
|
||||||
|
@ -24,8 +23,6 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<video id="background_video" src="background.mp4" loop autoplay />
|
|
||||||
|
|
||||||
<script id="agenda_template" type="text/ractive">
|
<script id="agenda_template" type="text/ractive">
|
||||||
<section id="agenda">
|
<section id="agenda">
|
||||||
<table class="reveal">
|
<table class="reveal">
|
||||||
|
@ -72,15 +69,23 @@
|
||||||
|
|
||||||
<script id="current_talk_template" type="text/ractive">
|
<script id="current_talk_template" type="text/ractive">
|
||||||
<section id="current_talk">
|
<section id="current_talk">
|
||||||
<h3>В момента</h3>
|
<h3>At the Moment</h3>
|
||||||
<h1>{{currentEvent.title}}</h1>
|
<h1>{{currentEvent.title}}</h1>
|
||||||
<p>{{currentEvent.description}}</p>
|
<p>{{currentEvent.description}}</p>
|
||||||
</section>
|
</section>
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script id="speaker_template" type="text/ractive">
|
<script id="current_speaker_template" type="text/ractive">
|
||||||
<section>
|
<section>
|
||||||
<h3>Лектор</h3>
|
<h3>Speaker</h3>
|
||||||
|
<h1>{{name}}</h1>
|
||||||
|
<p>{{description}}</p>
|
||||||
|
</section>
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<script id="next_speaker_template" type="text/ractive">
|
||||||
|
<section>
|
||||||
|
<h3>Next Speaker</h3>
|
||||||
<h1>{{name}}</h1>
|
<h1>{{name}}</h1>
|
||||||
<p>{{description}}</p>
|
<p>{{description}}</p>
|
||||||
</section>
|
</section>
|
||||||
|
@ -88,7 +93,7 @@
|
||||||
|
|
||||||
<script id="next_talk_template" type="text/ractive">
|
<script id="next_talk_template" type="text/ractive">
|
||||||
<section id="next_talk">
|
<section id="next_talk">
|
||||||
<h3>Следва</h3>
|
<h3>Next</h3>
|
||||||
<h1>{{nextEvent.title}}</h1>
|
<h1>{{nextEvent.title}}</h1>
|
||||||
<p>{{nextEvent.description}}</p>
|
<p>{{nextEvent.description}}</p>
|
||||||
<h4>({{nextEvent.startTime.fromNow()}})</h4>
|
<h4>({{nextEvent.startTime.fromNow()}})</h4>
|
||||||
|
@ -97,7 +102,8 @@
|
||||||
|
|
||||||
<script id="slides_template" type="text/ractive">
|
<script id="slides_template" type="text/ractive">
|
||||||
<section data-state="update-safe">
|
<section data-state="update-safe">
|
||||||
<img src="logo.png">
|
<h1>YAPC::EU</h1>
|
||||||
|
<h2>Sofia 2014</h2>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
{{#eventCount}}
|
{{#eventCount}}
|
||||||
|
@ -109,7 +115,7 @@
|
||||||
{{/currentEvent}}
|
{{/currentEvent}}
|
||||||
|
|
||||||
{{#currentEvent.speakers}}
|
{{#currentEvent.speakers}}
|
||||||
{{> speaker_template}}
|
{{> current_speaker_template}}
|
||||||
{{/currentEvent.speakers}}
|
{{/currentEvent.speakers}}
|
||||||
|
|
||||||
{{#nextEvent}}
|
{{#nextEvent}}
|
||||||
|
@ -117,21 +123,14 @@
|
||||||
{{/nextEvent}}
|
{{/nextEvent}}
|
||||||
|
|
||||||
{{#nextEvent.speakers}}
|
{{#nextEvent.speakers}}
|
||||||
{{> speaker_template}}
|
{{> next_speaker_template}}
|
||||||
{{/nextEvent.speakers}}
|
{{/nextEvent.speakers}}
|
||||||
</section>
|
</section>
|
||||||
{{/eventCount}}
|
{{/eventCount}}
|
||||||
|
|
||||||
<!-- <section> -->
|
|
||||||
<!-- <h1>Обратна връзка</h1> -->
|
|
||||||
<!-- <h2>http://bit.ly/burgasconf-2014-feedback</h2> -->
|
|
||||||
<!-- </section> -->
|
|
||||||
|
|
||||||
<section>
|
<section>
|
||||||
<h1>#VarnaConf</h1>
|
<h2>Tweet</h2>
|
||||||
<h2>В Twitter и IRC на irc.it-tour.bg</h2>
|
<h1>#yapceu</h1>
|
||||||
<!-- <a class="twitter-timeline" href="https://twitter.com/search?q=%23BurgasConf" data-widget-id="466029214940925952">Tweets about "#BurgasConf"</a> -->
|
|
||||||
<!-- <script src="https://platform.twitter.com/widgets.js" id="twitter-wjs"></script> -->
|
|
||||||
</section>
|
</section>
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,140 @@
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>YAPC::EU Interlude</title>
|
||||||
|
|
||||||
|
<meta charset="utf-8">
|
||||||
|
|
||||||
|
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/reveal.js/2.6.2/css/reveal.css">
|
||||||
|
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/reveal.js/2.6.2/css/theme/night.css">
|
||||||
|
<link type="text/css" rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto+Condensed:300italic,300,400italic,400,700italic,700&subset=latin,cyrillic">
|
||||||
|
<link rel="stylesheet" type="text/css" href="styles.css">
|
||||||
|
|
||||||
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
|
||||||
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/reveal.js/2.6.2/lib/js/head.min.js"></script>
|
||||||
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/reveal.js/2.6.2/js/reveal.min.js"></script>
|
||||||
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.6.0/moment.min.js"></script>
|
||||||
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/ractive.js/0.3.7/ractive.min.js"></script>
|
||||||
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.6.0/underscore-min.js"></script>
|
||||||
|
<script src="schedule-musala.js"></script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="reveal">
|
||||||
|
<div class="slides">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script id="agenda_template" type="text/ractive">
|
||||||
|
<section id="agenda">
|
||||||
|
<table class="reveal">
|
||||||
|
<tbody>
|
||||||
|
{{#pastEvents}}
|
||||||
|
<tr class="past_event">
|
||||||
|
<td>{{startTime.format('HH:mm')}}</td>
|
||||||
|
<td>{{title}}</td>
|
||||||
|
<td>
|
||||||
|
{{#speakers}}
|
||||||
|
{{name}}
|
||||||
|
{{/speakers}}
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
{{/pastEvents}}
|
||||||
|
|
||||||
|
{{#nextEvent}}
|
||||||
|
<tr class="next_event">
|
||||||
|
<td>{{startTime.format('HH:mm')}}</td>
|
||||||
|
<td>{{title}}</td>
|
||||||
|
<td>
|
||||||
|
{{#speakers}}
|
||||||
|
{{name}}
|
||||||
|
{{/speakers}}
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
{{/nextEvent}}
|
||||||
|
|
||||||
|
{{#futureEvents}}
|
||||||
|
<tr class="future_event">
|
||||||
|
<td>{{startTime.format('HH:mm')}}</td>
|
||||||
|
<td>{{title}}</td>
|
||||||
|
<td>
|
||||||
|
{{#speakers}}
|
||||||
|
{{name}}
|
||||||
|
{{/speakers}}
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
{{/futureEvents}}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</section>
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<script id="current_talk_template" type="text/ractive">
|
||||||
|
<section id="current_talk">
|
||||||
|
<h3>At the Moment</h3>
|
||||||
|
<h1>{{currentEvent.title}}</h1>
|
||||||
|
<p>{{currentEvent.description}}</p>
|
||||||
|
</section>
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<script id="current_speaker_template" type="text/ractive">
|
||||||
|
<section>
|
||||||
|
<h3>Speaker</h3>
|
||||||
|
<h1>{{name}}</h1>
|
||||||
|
<p>{{description}}</p>
|
||||||
|
</section>
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<script id="next_speaker_template" type="text/ractive">
|
||||||
|
<section>
|
||||||
|
<h3>Next Speaker</h3>
|
||||||
|
<h1>{{name}}</h1>
|
||||||
|
<p>{{description}}</p>
|
||||||
|
</section>
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<script id="next_talk_template" type="text/ractive">
|
||||||
|
<section id="next_talk">
|
||||||
|
<h3>Next</h3>
|
||||||
|
<h1>{{nextEvent.title}}</h1>
|
||||||
|
<p>{{nextEvent.description}}</p>
|
||||||
|
<h4>({{nextEvent.startTime.fromNow()}})</h4>
|
||||||
|
</section>
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<script id="slides_template" type="text/ractive">
|
||||||
|
<section data-state="update-safe">
|
||||||
|
<h1>YAPC::EU</h1>
|
||||||
|
<h2>Sofia 2014</h2>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
{{#eventCount}}
|
||||||
|
<section>
|
||||||
|
{{> agenda_template}}
|
||||||
|
|
||||||
|
{{#currentEvent}}
|
||||||
|
{{> current_talk_template}}
|
||||||
|
{{/currentEvent}}
|
||||||
|
|
||||||
|
{{#currentEvent.speakers}}
|
||||||
|
{{> current_speaker_template}}
|
||||||
|
{{/currentEvent.speakers}}
|
||||||
|
|
||||||
|
{{#nextEvent}}
|
||||||
|
{{> next_talk_template}}
|
||||||
|
{{/nextEvent}}
|
||||||
|
|
||||||
|
{{#nextEvent.speakers}}
|
||||||
|
{{> next_speaker_template}}
|
||||||
|
{{/nextEvent.speakers}}
|
||||||
|
</section>
|
||||||
|
{{/eventCount}}
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<h2>Tweet</h2>
|
||||||
|
<h1>#yapceu</h1>
|
||||||
|
</section>
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<script type="text/javascript" src="ractive-init.js"></script>
|
||||||
|
<script type="text/javascript" src="reveal-init.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -72,7 +72,10 @@ Reveal.initialize({
|
||||||
|
|
||||||
// Bounds for smallest/largest possible scale to apply to content
|
// Bounds for smallest/largest possible scale to apply to content
|
||||||
minScale: 0.2,
|
minScale: 0.2,
|
||||||
maxScale: 8.0
|
maxScale: 8.0,
|
||||||
|
|
||||||
|
parallaxBackgroundImage: 'yapc.png',
|
||||||
|
parallaxBackgroundSize: '1920px 1080px'
|
||||||
});
|
});
|
||||||
|
|
||||||
Reveal.addEventListener('update-safe', function() {
|
Reveal.addEventListener('update-safe', function() {
|
||||||
|
|
|
@ -0,0 +1,140 @@
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>YAPC::EU Interlude</title>
|
||||||
|
|
||||||
|
<meta charset="utf-8">
|
||||||
|
|
||||||
|
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/reveal.js/2.6.2/css/reveal.css">
|
||||||
|
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/reveal.js/2.6.2/css/theme/night.css">
|
||||||
|
<link type="text/css" rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto+Condensed:300italic,300,400italic,400,700italic,700&subset=latin,cyrillic">
|
||||||
|
<link rel="stylesheet" type="text/css" href="styles.css">
|
||||||
|
|
||||||
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
|
||||||
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/reveal.js/2.6.2/lib/js/head.min.js"></script>
|
||||||
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/reveal.js/2.6.2/js/reveal.min.js"></script>
|
||||||
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.6.0/moment.min.js"></script>
|
||||||
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/ractive.js/0.3.7/ractive.min.js"></script>
|
||||||
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.6.0/underscore-min.js"></script>
|
||||||
|
<script src="schedule-rodopi.js"></script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="reveal">
|
||||||
|
<div class="slides">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script id="agenda_template" type="text/ractive">
|
||||||
|
<section id="agenda">
|
||||||
|
<table class="reveal">
|
||||||
|
<tbody>
|
||||||
|
{{#pastEvents}}
|
||||||
|
<tr class="past_event">
|
||||||
|
<td>{{startTime.format('HH:mm')}}</td>
|
||||||
|
<td>{{title}}</td>
|
||||||
|
<td>
|
||||||
|
{{#speakers}}
|
||||||
|
{{name}}
|
||||||
|
{{/speakers}}
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
{{/pastEvents}}
|
||||||
|
|
||||||
|
{{#nextEvent}}
|
||||||
|
<tr class="next_event">
|
||||||
|
<td>{{startTime.format('HH:mm')}}</td>
|
||||||
|
<td>{{title}}</td>
|
||||||
|
<td>
|
||||||
|
{{#speakers}}
|
||||||
|
{{name}}
|
||||||
|
{{/speakers}}
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
{{/nextEvent}}
|
||||||
|
|
||||||
|
{{#futureEvents}}
|
||||||
|
<tr class="future_event">
|
||||||
|
<td>{{startTime.format('HH:mm')}}</td>
|
||||||
|
<td>{{title}}</td>
|
||||||
|
<td>
|
||||||
|
{{#speakers}}
|
||||||
|
{{name}}
|
||||||
|
{{/speakers}}
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
{{/futureEvents}}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</section>
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<script id="current_talk_template" type="text/ractive">
|
||||||
|
<section id="current_talk">
|
||||||
|
<h3>At the Moment</h3>
|
||||||
|
<h1>{{currentEvent.title}}</h1>
|
||||||
|
<p>{{currentEvent.description}}</p>
|
||||||
|
</section>
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<script id="current_speaker_template" type="text/ractive">
|
||||||
|
<section>
|
||||||
|
<h3>Speaker</h3>
|
||||||
|
<h1>{{name}}</h1>
|
||||||
|
<p>{{description}}</p>
|
||||||
|
</section>
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<script id="next_speaker_template" type="text/ractive">
|
||||||
|
<section>
|
||||||
|
<h3>Next Speaker</h3>
|
||||||
|
<h1>{{name}}</h1>
|
||||||
|
<p>{{description}}</p>
|
||||||
|
</section>
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<script id="next_talk_template" type="text/ractive">
|
||||||
|
<section id="next_talk">
|
||||||
|
<h3>Next</h3>
|
||||||
|
<h1>{{nextEvent.title}}</h1>
|
||||||
|
<p>{{nextEvent.description}}</p>
|
||||||
|
<h4>({{nextEvent.startTime.fromNow()}})</h4>
|
||||||
|
</section>
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<script id="slides_template" type="text/ractive">
|
||||||
|
<section data-state="update-safe">
|
||||||
|
<h1>YAPC::EU</h1>
|
||||||
|
<h2>Sofia 2014</h2>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
{{#eventCount}}
|
||||||
|
<section>
|
||||||
|
{{> agenda_template}}
|
||||||
|
|
||||||
|
{{#currentEvent}}
|
||||||
|
{{> current_talk_template}}
|
||||||
|
{{/currentEvent}}
|
||||||
|
|
||||||
|
{{#currentEvent.speakers}}
|
||||||
|
{{> current_speaker_template}}
|
||||||
|
{{/currentEvent.speakers}}
|
||||||
|
|
||||||
|
{{#nextEvent}}
|
||||||
|
{{> next_talk_template}}
|
||||||
|
{{/nextEvent}}
|
||||||
|
|
||||||
|
{{#nextEvent.speakers}}
|
||||||
|
{{> next_speaker_template}}
|
||||||
|
{{/nextEvent.speakers}}
|
||||||
|
</section>
|
||||||
|
{{/eventCount}}
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<h2>Tweet</h2>
|
||||||
|
<h1>#yapceu</h1>
|
||||||
|
</section>
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<script type="text/javascript" src="ractive-init.js"></script>
|
||||||
|
<script type="text/javascript" src="reveal-init.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,129 @@
|
||||||
|
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: 'SyContent - Content in the Cloud with V8',
|
||||||
|
startTime: moment({hour: 10, minute: 00}),
|
||||||
|
speakers: [
|
||||||
|
{
|
||||||
|
name: 'Torsten Raudssus (Getty)',
|
||||||
|
description: ''
|
||||||
|
}
|
||||||
|
]
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
schedule.addEvent({
|
||||||
|
title: 'Docker with Perl - an Introduction ',
|
||||||
|
startTime: moment({hour: 11, minute: 00}),
|
||||||
|
speakers: [
|
||||||
|
{
|
||||||
|
name: 'Denis Banovic (@bano99)',
|
||||||
|
description: ''
|
||||||
|
}
|
||||||
|
]
|
||||||
|
});
|
||||||
|
|
||||||
|
schedule.addEvent({
|
||||||
|
title: 'Create your containers with perl',
|
||||||
|
startTime: moment({hour: 11, minute: 30}),
|
||||||
|
speakers: [
|
||||||
|
{
|
||||||
|
name: 'Marian Marinov (HackMan)',
|
||||||
|
description: ''
|
||||||
|
}
|
||||||
|
]
|
||||||
|
});
|
||||||
|
|
||||||
|
schedule.addEvent({
|
||||||
|
title: 'Lunch 🍔',
|
||||||
|
startTime: moment({hour: 12, minute: 20})
|
||||||
|
});
|
||||||
|
|
||||||
|
schedule.addEvent({
|
||||||
|
title: 'Automatization Network infrastructure',
|
||||||
|
startTime: moment({hour: 13, minute: 20}),
|
||||||
|
speakers: [
|
||||||
|
{
|
||||||
|
name: 'Naim Shafiyev (shafiev)',
|
||||||
|
description: 'The student of MIREA. Interests: GCC, Linux kernel, OpenBSD, PERL, Parrot, Catalyst, Search engines'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
});
|
||||||
|
|
||||||
|
schedule.addEvent({
|
||||||
|
title: 'Building an AWS SDK for Perl',
|
||||||
|
startTime: moment({hour: 13, minute: 50}),
|
||||||
|
speakers: [
|
||||||
|
{
|
||||||
|
name: 'Jose Luis Martinez Torres',
|
||||||
|
description: ''
|
||||||
|
}
|
||||||
|
]
|
||||||
|
});
|
||||||
|
|
||||||
|
schedule.addEvent({
|
||||||
|
title: 'Perl in the Cloud - Update',
|
||||||
|
startTime: moment({hour: 14, minute: 50}),
|
||||||
|
speakers: [
|
||||||
|
{
|
||||||
|
name: 'Denis Banovic (@bano99)',
|
||||||
|
description: 'Denis Banovic has over 13 years of experience as a senior software developer, system administrator and team leader. Currently he is busy creating and implementing Cloud Applications for the tourism industry in Austria. In his spare time, Denis\' interests include rockets, photography, traveling and psychology.'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
});
|
||||||
|
|
||||||
|
schedule.addEvent({
|
||||||
|
title: 'Coffee Break ☕',
|
||||||
|
startTime: moment({hour: 15, minute: 40})
|
||||||
|
});
|
|
@ -0,0 +1,139 @@
|
||||||
|
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: 'Using Perl for autogeneration physical formulas',
|
||||||
|
startTime: moment({hour: 10, minute: 00}),
|
||||||
|
speakers: [
|
||||||
|
{
|
||||||
|
name: 'Ignat Ignatov',
|
||||||
|
description: ''
|
||||||
|
}
|
||||||
|
]
|
||||||
|
});
|
||||||
|
|
||||||
|
schedule.addEvent({
|
||||||
|
title: 'SQL::Abstract::FromQuery',
|
||||||
|
startTime: moment({hour: 10, minute: 30}),
|
||||||
|
speakers: [
|
||||||
|
{
|
||||||
|
name: 'Laurent Dami (dami)',
|
||||||
|
description: ''
|
||||||
|
}
|
||||||
|
]
|
||||||
|
});
|
||||||
|
|
||||||
|
schedule.addEvent({
|
||||||
|
title: 'Extreme (Elastic)Search',
|
||||||
|
startTime: moment({hour: 11, minute: 00}),
|
||||||
|
speakers: [
|
||||||
|
{
|
||||||
|
name: 'Borislav Nikolov (jackdoe)',
|
||||||
|
description: ''
|
||||||
|
}
|
||||||
|
]
|
||||||
|
});
|
||||||
|
|
||||||
|
schedule.addEvent({
|
||||||
|
title: 'SQL for accountants: understanding the beast via SpreadSheets',
|
||||||
|
startTime: moment({hour: 11, minute: 30}),
|
||||||
|
speakers: [
|
||||||
|
{
|
||||||
|
name: 'Peter Rabbitson (ribasushi)',
|
||||||
|
description: ''
|
||||||
|
}
|
||||||
|
]
|
||||||
|
});
|
||||||
|
|
||||||
|
schedule.addEvent({
|
||||||
|
title: 'Lunch 🍔',
|
||||||
|
startTime: moment({hour: 12, minute: 20})
|
||||||
|
});
|
||||||
|
|
||||||
|
schedule.addEvent({
|
||||||
|
title: 'Recruitment in Perl - The State of the Perl Recruitment Market',
|
||||||
|
startTime: moment({hour: 13, minute: 20}),
|
||||||
|
speakers: [
|
||||||
|
{
|
||||||
|
name: 'Rick Deller',
|
||||||
|
description: ''
|
||||||
|
}
|
||||||
|
]
|
||||||
|
});
|
||||||
|
|
||||||
|
schedule.addEvent({
|
||||||
|
title: 'Creative Perlmongership',
|
||||||
|
startTime: moment({hour: 13, minute: 50}),
|
||||||
|
speakers: [
|
||||||
|
{
|
||||||
|
name: 'Salve J. Nilsen (sjn)',
|
||||||
|
description: 'One of the original Oslo.pm\'ers who seems to end up organizing stuff more often than hacking.'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
});
|
||||||
|
|
||||||
|
schedule.addEvent({
|
||||||
|
title: 'CSV made easier for end-users',
|
||||||
|
startTime: moment({hour: 14, minute: 50}),
|
||||||
|
speakers: [
|
||||||
|
{
|
||||||
|
name: 'H.Merijn Brand (Tux)',
|
||||||
|
description: 'Using mainly open source utilities and C to exchange data between sources, porting open source to commercial OSes and support the Open Source community as widely as possible. perl5 Configure pumpking and CSV wizard.'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
});
|
||||||
|
|
||||||
|
schedule.addEvent({
|
||||||
|
title: 'Coffee Break ☕',
|
||||||
|
startTime: moment({hour: 15, minute: 40})
|
||||||
|
});
|
100
schedule.js
100
schedule.js
|
@ -21,7 +21,7 @@ function Schedule() {
|
||||||
this.currentEvent = function() {
|
this.currentEvent = function() {
|
||||||
var latestEvent = _.last(this.pastEvents());
|
var latestEvent = _.last(this.pastEvents());
|
||||||
var nextEvent = this.nextEvent();
|
var nextEvent = this.nextEvent();
|
||||||
if (typeof nextEvent != 'undefined' && (latestEvent.displayNext || moment(nextEvent.startTime).subtract('minutes', 10).isAfter(moment()))) {
|
if (typeof nextEvent != 'undefined' && moment(nextEvent.startTime).subtract('minutes', 10).isAfter(moment())) {
|
||||||
return latestEvent;
|
return latestEvent;
|
||||||
} else {
|
} else {
|
||||||
return undefined;
|
return undefined;
|
||||||
|
@ -52,112 +52,94 @@ function Schedule() {
|
||||||
var schedule = new Schedule();
|
var schedule = new Schedule();
|
||||||
|
|
||||||
schedule.addEvent({
|
schedule.addEvent({
|
||||||
title: 'Кафе',
|
title: 'Behind the scenes of a grown-up web application',
|
||||||
startTime: moment({hour: 9, minute: 30})
|
startTime: moment({hour: 10, minute: 00}),
|
||||||
});
|
|
||||||
|
|
||||||
schedule.addEvent({
|
|
||||||
title: 'Откриване',
|
|
||||||
startTime: moment({hour: 9, minute: 50})
|
|
||||||
});
|
|
||||||
|
|
||||||
schedule.addEvent({
|
|
||||||
title: 'Node.js and Open Source Software Development on Microsoft Azure',
|
|
||||||
startTime: moment({hour: 10}),
|
|
||||||
speakers: [
|
speakers: [
|
||||||
{
|
{
|
||||||
name: 'Михаил Матеев',
|
name: 'Kerstin Puschke (titanoboa)',
|
||||||
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 България. Няколко години Михаил е бил лектор в ФМИ на Софийския университет "Св. за Климент Охридски ". Също така е и преподавател по компютърни системи в Университет по Архитектура, Строителство и Геодезия в София.'
|
description: 'Kerstin Puschke is a software engineer living in Hamburg. As part of an awesome team, she contributes to the backend of XING, a social network for business professionals with about 14 million users.'
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
|
|
||||||
schedule.addEvent({
|
schedule.addEvent({
|
||||||
title: 'Редизайн на „държавата“ и препрограмиране на „системата“',
|
title: 'GOTO statement considered awesome',
|
||||||
startTime: moment({hour: 11, minute: 10}),
|
startTime: moment({hour: 10, minute: 30}),
|
||||||
speakers: [
|
speakers: [
|
||||||
{
|
{
|
||||||
name: 'Антон Стойчев',
|
name: 'Carl Mäsak (masak)',
|
||||||
description: 'Антон е прекарал последните 2 години във Великобритания, работейки като разработчик, предимно на саморегулиращи се системи за извличане и анализ на данни, достигащи на размер стотици сървъри на AWS. Сега е тук и иска да добави смисъл и желание за неизбежния, целодневен престой пред монитор; Чрез “Civic Hacking” – нещо започващо с работещите в дигиталната сфера, но обхващащо всички други. Живее живота си майсторейки и обичайки, в опити за рисуване, писане, четене и прекарвайки часове в сглобяване на извинения за честите си пътувания.'
|
description: 'Has been programming Perl since 2001. Found Perl 6 somewhere around 2004, and fell in love. Now doing a number of projects in Perl 5 and 6. A regular at #perl6, he often helps newcomers and does smallish tasks on the Perl 6 specs, test suite and on Rakudo and Niecza.'
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
|
|
||||||
schedule.addEvent({
|
schedule.addEvent({
|
||||||
title: 'iOS Development - Tips & Tricks',
|
title: 'C-Day Is Coming',
|
||||||
startTime: moment({hour: 12, minute: 10}),
|
startTime: moment({hour: 11}),
|
||||||
speakers: [
|
speakers: [
|
||||||
{
|
{
|
||||||
name: 'Галин Кърджилов',
|
name: 'liz',
|
||||||
description: 'Галин е проактивен и творчески настроен софтуерен инженер с повече от 10 години опит. В момента е посветен на мобилните разработки и работи като Senior iOS Developer в MentorMate София. Неговият стремеж е да генерира максимално въздействие към потребителите.'
|
description: 'Made some interesting modules, to be found at CPAN. Co-organiser YAPC::Europe::2001 in Amsterdam. Chairman of YAPC::Europe::Foundation (YEF)'
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'Стефан Цвятков',
|
|
||||||
description: 'Стефан е започнал кариерата си като разработчик за Mac. През 2008 г. Apple пуска iOS SDK и това е началото на една ера. Оттогава, той работи по създаването iOS приложения. В MentorMate той успява да изгради най-големия екип от iOS програмисти в България. Стефан е известен с желанието си да подобри мобилните приложения, за да бъдат по-интерактивни, ефективни и оптимизирани за нуждите на бизнеса.'
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
|
|
||||||
schedule.addEvent({
|
schedule.addEvent({
|
||||||
title: 'Обяд',
|
title: 'Lunch',
|
||||||
startTime: moment({hour: 12, minute: 40})
|
startTime: moment({hour: 12, minute: 20})
|
||||||
});
|
});
|
||||||
|
|
||||||
schedule.addEvent({
|
schedule.addEvent({
|
||||||
title: 'The Cloud Beyond the Buzzword',
|
title: 'Digest:SHA is broken',
|
||||||
startTime: moment({hour: 13, minute: 30}),
|
startTime: moment({hour: 13, minute: 20}),
|
||||||
speakers: [
|
speakers: [
|
||||||
{
|
{
|
||||||
name: 'Божидар Божанов',
|
name: 'Mark Overmeer (markov)',
|
||||||
description: 'Божидар Божанов е програмист, а понякога и архитект. От скука е направил http://computoser.com - компютърен композитор, а друго негово хоби е лингвистиката. Притежател на "дебел" stackoverflow профил.'
|
description: 'Perl, Perl and UNIX'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
schedule.addEvent({
|
||||||
|
title: 'Asynchronous Programming with Futures',
|
||||||
|
startTime: moment({hour: 13, minute: 50}),
|
||||||
|
speakers: [
|
||||||
|
{
|
||||||
|
name: 'Paul Evans (LeoNerd)',
|
||||||
|
description: ''
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
|
|
||||||
schedule.addEvent({
|
schedule.addEvent({
|
||||||
title: 'Мета-програмиране с Nimrod',
|
title: 'Adventures in Perl 6 Asynchrony',
|
||||||
startTime: moment({hour: 14, minute: 20}),
|
startTime: moment({hour: 14, minute: 50}),
|
||||||
speakers: [
|
speakers: [
|
||||||
{
|
{
|
||||||
name: 'Захари Караджов',
|
name: 'Jonathan Worthington (jnthn)',
|
||||||
description: 'Захари е C++ ветеран от гейм-индустрията, а понастоящем технически директор в Даркиум Студио, където с помощта на кофейн и CoffeeScript се разработва нов социално ориентиран уеб браузър. Твърдо убеден е, че използваните в момента езици за програмиране ще бъдат изместени от нови по-бързи, по-мощни и по-красиви такива и от нетърпение сам се е захванал да допринесе за това, участвайки в разработката на Nimrod.'
|
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.'
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
|
|
||||||
schedule.addEvent({
|
schedule.addEvent({
|
||||||
title: 'File editing on the client side (Javascript)',
|
title: 'Coffee Break',
|
||||||
startTime: moment({hour: 15, minute: 10}),
|
startTime: moment({hour: 15, minute: 40})
|
||||||
speakers: [
|
|
||||||
{
|
|
||||||
name: 'Росен Колев',
|
|
||||||
description: 'Росен работи като софтуерен разработчик повече от 5 години. В моментът е Senior .NET Developer в MentorMate Варна. Пише главно на .NET, C#, JavaScript и от време на време Objective-C. Обича добре подредед код и мрази лошата архитектура.'
|
|
||||||
}
|
|
||||||
]
|
|
||||||
});
|
});
|
||||||
|
|
||||||
schedule.addEvent({
|
schedule.addEvent({
|
||||||
title: 'Кафе пауза ☕',
|
title: 'Day 3 Keynote - The Joy In What We Do',
|
||||||
startTime: moment({hour: 15, minute: 50})
|
|
||||||
});
|
|
||||||
|
|
||||||
schedule.addEvent({
|
|
||||||
title: 'Екстремно програмиране',
|
|
||||||
startTime: moment({hour: 16, minute: 10}),
|
startTime: moment({hour: 16, minute: 10}),
|
||||||
speakers: [
|
speakers: [
|
||||||
{
|
{
|
||||||
name: 'Стефан Кънев',
|
name: 'Sawyer X',
|
||||||
description: 'Стефан се занимава с програмиране откакто се помни. Сред любимите му неща са Ruby, Vim, автоматизирани тестове, папийонки, Apple продуктите и всевъзможни екзотични езици за програмиране. В заетото си време програмира на Rails, а в свободното - води един-два курса във ФМИ към СУ, пише много код, който после трие и се опитва да не се нарани с планинското си колело. Никак не обича PHP и е амбивалентен към Java.'
|
description: ''
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
|
|
||||||
schedule.addEvent({
|
schedule.addEvent({
|
||||||
title: 'Lightning Talks',
|
title: 'Lightning Talks',
|
||||||
startTime: moment({hour: 17, minute: 00})
|
startTime: moment({hour: 17, minute: 00}),
|
||||||
});
|
|
||||||
|
|
||||||
schedule.addEvent({
|
|
||||||
title: 'Закриване',
|
|
||||||
startTime: moment({hour: 18, minute: 00})
|
|
||||||
});
|
});
|
||||||
|
|
11
styles.css
11
styles.css
|
@ -13,14 +13,7 @@ body,
|
||||||
.reveal h5,
|
.reveal h5,
|
||||||
.reveal h6 {
|
.reveal h6 {
|
||||||
font-family: "Roboto Condensed", tahoma, verdana, arial, sans-serif;
|
font-family: "Roboto Condensed", tahoma, verdana, arial, sans-serif;
|
||||||
}
|
text-rendering: optimizeLegibility;
|
||||||
|
|
||||||
#background_video {
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
z-index: -10000;
|
|
||||||
opacity: 0.4;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.reveal section img {
|
.reveal section img {
|
||||||
|
@ -34,7 +27,7 @@ tr.past_event {
|
||||||
}
|
}
|
||||||
|
|
||||||
tr.next_event {
|
tr.next_event {
|
||||||
color: #FFFF00;
|
color: #EEEEEE;
|
||||||
}
|
}
|
||||||
|
|
||||||
tr.future_event {
|
tr.future_event {
|
||||||
|
|
Loading…
Reference in New Issue