Compare commits
18 Commits
Author | SHA1 | Date |
---|---|---|
Petko Bordjukov | 839c1afe9d | |
Petko Bordjukov | 60f068c20e | |
Petko Bordjukov | 64bcc6800b | |
Petko Bordjukov | a8bae839e7 | |
Petko Bordjukov | 88ef6a0ece | |
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.
34
index.html
34
index.html
|
@ -1,6 +1,6 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>The IT Tour</title>
|
||||
<title>OpenFest 2014 Interlude</title>
|
||||
|
||||
<meta charset="utf-8">
|
||||
|
||||
|
@ -13,9 +13,9 @@
|
|||
<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/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/underscore.js/1.6.0/underscore-min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.6.0/lang/bg.min.js"></script>
|
||||
<script src="schedule.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
@ -24,8 +24,6 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<video id="background_video" src="background.mp4" loop autoplay />
|
||||
|
||||
<script id="agenda_template" type="text/ractive">
|
||||
<section id="agenda">
|
||||
<table class="reveal">
|
||||
|
@ -78,7 +76,7 @@
|
|||
</section>
|
||||
</script>
|
||||
|
||||
<script id="speaker_template" type="text/ractive">
|
||||
<script id="current_speaker_template" type="text/ractive">
|
||||
<section>
|
||||
<h3>Лектор</h3>
|
||||
<h1>{{name}}</h1>
|
||||
|
@ -86,6 +84,14 @@
|
|||
</section>
|
||||
</script>
|
||||
|
||||
<script id="next_speaker_template" type="text/ractive">
|
||||
<section>
|
||||
<h3>Следващ лектор</h3>
|
||||
<h1>{{name}}</h1>
|
||||
<p>{{description}}</p>
|
||||
</section>
|
||||
</script>
|
||||
|
||||
<script id="next_talk_template" type="text/ractive">
|
||||
<section id="next_talk">
|
||||
<h3>Следва</h3>
|
||||
|
@ -97,7 +103,8 @@
|
|||
|
||||
<script id="slides_template" type="text/ractive">
|
||||
<section data-state="update-safe">
|
||||
<img src="logo.png">
|
||||
<h1>OpenFest</h1>
|
||||
<h2>2014</h2>
|
||||
</section>
|
||||
|
||||
{{#eventCount}}
|
||||
|
@ -109,7 +116,7 @@
|
|||
{{/currentEvent}}
|
||||
|
||||
{{#currentEvent.speakers}}
|
||||
{{> speaker_template}}
|
||||
{{> current_speaker_template}}
|
||||
{{/currentEvent.speakers}}
|
||||
|
||||
{{#nextEvent}}
|
||||
|
@ -117,21 +124,14 @@
|
|||
{{/nextEvent}}
|
||||
|
||||
{{#nextEvent.speakers}}
|
||||
{{> speaker_template}}
|
||||
{{> next_speaker_template}}
|
||||
{{/nextEvent.speakers}}
|
||||
</section>
|
||||
{{/eventCount}}
|
||||
|
||||
<!-- <section> -->
|
||||
<!-- <h1>Обратна връзка</h1> -->
|
||||
<!-- <h2>http://bit.ly/burgasconf-2014-feedback</h2> -->
|
||||
<!-- </section> -->
|
||||
|
||||
<section>
|
||||
<h1>#VarnaConf</h1>
|
||||
<h2>В Twitter и IRC на irc.it-tour.bg</h2>
|
||||
<!-- <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> -->
|
||||
<h2>Tweet</h2>
|
||||
<h1>#OpenFest</h1>
|
||||
</section>
|
||||
</script>
|
||||
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 137 KiB |
|
@ -15,6 +15,7 @@ var reactive = new Ractive({
|
|||
});
|
||||
|
||||
function refreshEvent() {
|
||||
schedule.update();
|
||||
reactive.set({pastEvents: schedule.pastEvents(),
|
||||
currentEvent: schedule.currentEvent(),
|
||||
nextEvent: schedule.nextEvent(),
|
||||
|
|
|
@ -42,7 +42,7 @@ Reveal.initialize({
|
|||
autoSlide: 10000,
|
||||
|
||||
// Stop auto-sliding after user input
|
||||
autoSlideStoppable: true,
|
||||
autoSlideStoppable: false,
|
||||
|
||||
// Enable slide navigation via mouse wheel
|
||||
mouseWheel: false,
|
||||
|
@ -72,7 +72,10 @@ Reveal.initialize({
|
|||
|
||||
// Bounds for smallest/largest possible scale to apply to content
|
||||
minScale: 0.2,
|
||||
maxScale: 8.0
|
||||
maxScale: 8.0,
|
||||
|
||||
parallaxBackgroundImage: 'openfest.png',
|
||||
parallaxBackgroundSize: '1920px 1080px'
|
||||
});
|
||||
|
||||
Reveal.addEventListener('update-safe', function() {
|
||||
|
|
142
schedule.js
142
schedule.js
|
@ -1,10 +1,14 @@
|
|||
function Schedule() {
|
||||
function Schedule(hallId) {
|
||||
var events = [];
|
||||
|
||||
this.addEvent = function(event) {
|
||||
events.push(event);
|
||||
events = _.sortBy(events, function(event) {
|
||||
return event.startTime.unix()
|
||||
this.update = function() {
|
||||
$.getJSON("https://cfp.openfest.org/schedule.json", function(data) {
|
||||
var scheduleEvents = $.map(data[hallId], function(event) {
|
||||
event['startTime'] = moment(event['startTime']).subtract(2, 'hours');
|
||||
event['endTime'] = moment(event['endTime']).subtract(2, 'hours');
|
||||
return event;
|
||||
});
|
||||
events = scheduleEvents;
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -20,8 +24,7 @@ function Schedule() {
|
|||
|
||||
this.currentEvent = function() {
|
||||
var latestEvent = _.last(this.pastEvents());
|
||||
var nextEvent = this.nextEvent();
|
||||
if (typeof nextEvent != 'undefined' && (latestEvent.displayNext || moment(nextEvent.startTime).subtract('minutes', 10).isAfter(moment()))) {
|
||||
if (typeof(latestEvent) != 'undefined' && latestEvent.endTime.isAfter(moment())) {
|
||||
return latestEvent;
|
||||
} else {
|
||||
return undefined;
|
||||
|
@ -41,123 +44,16 @@ function Schedule() {
|
|||
this.allEvents = function() {
|
||||
return events;
|
||||
}
|
||||
}
|
||||
|
||||
this.addDelay = function(time) {
|
||||
_.each(this.upcomingEvents(), function(event, index, agenda) {
|
||||
event.startTime.add(time);
|
||||
});
|
||||
$.urlParam = function(name){
|
||||
var results = new RegExp('[\?&]' + name + '=([^&#]*)').exec(window.location.href);
|
||||
if (results==null){
|
||||
return null;
|
||||
}
|
||||
else{
|
||||
return results[1] || 0;
|
||||
}
|
||||
}
|
||||
|
||||
var schedule = new Schedule();
|
||||
|
||||
schedule.addEvent({
|
||||
title: 'Кафе',
|
||||
startTime: moment({hour: 9, minute: 30})
|
||||
});
|
||||
|
||||
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: [
|
||||
{
|
||||
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 България. Няколко години Михаил е бил лектор в ФМИ на Софийския университет "Св. за Климент Охридски ". Също така е и преподавател по компютърни системи в Университет по Архитектура, Строителство и Геодезия в София.'
|
||||
}
|
||||
]
|
||||
});
|
||||
|
||||
schedule.addEvent({
|
||||
title: 'Редизайн на „държавата“ и препрограмиране на „системата“',
|
||||
startTime: moment({hour: 11, minute: 10}),
|
||||
speakers: [
|
||||
{
|
||||
name: 'Антон Стойчев',
|
||||
description: 'Антон е прекарал последните 2 години във Великобритания, работейки като разработчик, предимно на саморегулиращи се системи за извличане и анализ на данни, достигащи на размер стотици сървъри на AWS. Сега е тук и иска да добави смисъл и желание за неизбежния, целодневен престой пред монитор; Чрез “Civic Hacking” – нещо започващо с работещите в дигиталната сфера, но обхващащо всички други. Живее живота си майсторейки и обичайки, в опити за рисуване, писане, четене и прекарвайки часове в сглобяване на извинения за честите си пътувания.'
|
||||
}
|
||||
]
|
||||
});
|
||||
|
||||
schedule.addEvent({
|
||||
title: 'iOS Development - Tips & Tricks',
|
||||
startTime: moment({hour: 12, minute: 10}),
|
||||
speakers: [
|
||||
{
|
||||
name: 'Галин Кърджилов',
|
||||
description: 'Галин е проактивен и творчески настроен софтуерен инженер с повече от 10 години опит. В момента е посветен на мобилните разработки и работи като Senior iOS Developer в MentorMate София. Неговият стремеж е да генерира максимално въздействие към потребителите.'
|
||||
},
|
||||
{
|
||||
name: 'Стефан Цвятков',
|
||||
description: 'Стефан е започнал кариерата си като разработчик за Mac. През 2008 г. Apple пуска iOS SDK и това е началото на една ера. Оттогава, той работи по създаването iOS приложения. В MentorMate той успява да изгради най-големия екип от iOS програмисти в България. Стефан е известен с желанието си да подобри мобилните приложения, за да бъдат по-интерактивни, ефективни и оптимизирани за нуждите на бизнеса.'
|
||||
}
|
||||
]
|
||||
});
|
||||
|
||||
schedule.addEvent({
|
||||
title: 'Обяд',
|
||||
startTime: moment({hour: 12, minute: 40})
|
||||
});
|
||||
|
||||
schedule.addEvent({
|
||||
title: 'The Cloud Beyond the Buzzword',
|
||||
startTime: moment({hour: 13, minute: 30}),
|
||||
speakers: [
|
||||
{
|
||||
name: 'Божидар Божанов',
|
||||
description: 'Божидар Божанов е програмист, а понякога и архитект. От скука е направил http://computoser.com - компютърен композитор, а друго негово хоби е лингвистиката. Притежател на "дебел" stackoverflow профил.'
|
||||
}
|
||||
]
|
||||
});
|
||||
|
||||
schedule.addEvent({
|
||||
title: 'Мета-програмиране с Nimrod',
|
||||
startTime: moment({hour: 14, minute: 20}),
|
||||
speakers: [
|
||||
{
|
||||
name: 'Захари Караджов',
|
||||
description: 'Захари е C++ ветеран от гейм-индустрията, а понастоящем технически директор в Даркиум Студио, където с помощта на кофейн и CoffeeScript се разработва нов социално ориентиран уеб браузър. Твърдо убеден е, че използваните в момента езици за програмиране ще бъдат изместени от нови по-бързи, по-мощни и по-красиви такива и от нетърпение сам се е захванал да допринесе за това, участвайки в разработката на Nimrod.'
|
||||
}
|
||||
]
|
||||
});
|
||||
|
||||
schedule.addEvent({
|
||||
title: 'File editing on the client side (Javascript)',
|
||||
startTime: moment({hour: 15, minute: 10}),
|
||||
speakers: [
|
||||
{
|
||||
name: 'Росен Колев',
|
||||
description: 'Росен работи като софтуерен разработчик повече от 5 години. В моментът е Senior .NET Developer в MentorMate Варна. Пише главно на .NET, C#, JavaScript и от време на време Objective-C. Обича добре подредед код и мрази лошата архитектура.'
|
||||
}
|
||||
]
|
||||
});
|
||||
|
||||
schedule.addEvent({
|
||||
title: 'Кафе пауза ☕',
|
||||
startTime: moment({hour: 15, minute: 50})
|
||||
});
|
||||
|
||||
schedule.addEvent({
|
||||
title: 'Екстремно програмиране',
|
||||
startTime: moment({hour: 16, minute: 10}),
|
||||
speakers: [
|
||||
{
|
||||
name: 'Стефан Кънев',
|
||||
description: 'Стефан се занимава с програмиране откакто се помни. Сред любимите му неща са Ruby, Vim, автоматизирани тестове, папийонки, Apple продуктите и всевъзможни екзотични езици за програмиране. В заетото си време програмира на Rails, а в свободното - води един-два курса във ФМИ към СУ, пише много код, който после трие и се опитва да не се нарани с планинското си колело. Никак не обича PHP и е амбивалентен към Java.'
|
||||
}
|
||||
]
|
||||
});
|
||||
|
||||
schedule.addEvent({
|
||||
title: 'Lightning Talks',
|
||||
startTime: moment({hour: 17, minute: 00})
|
||||
});
|
||||
|
||||
schedule.addEvent({
|
||||
title: 'Закриване',
|
||||
startTime: moment({hour: 18, minute: 00})
|
||||
});
|
||||
var schedule = new Schedule(parseInt($.urlParam('roomId')));
|
||||
|
|
11
styles.css
11
styles.css
|
@ -13,14 +13,7 @@ body,
|
|||
.reveal h5,
|
||||
.reveal h6 {
|
||||
font-family: "Roboto Condensed", tahoma, verdana, arial, sans-serif;
|
||||
}
|
||||
|
||||
#background_video {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
z-index: -10000;
|
||||
opacity: 0.4;
|
||||
text-rendering: optimizeLegibility;
|
||||
}
|
||||
|
||||
.reveal section img {
|
||||
|
@ -34,7 +27,7 @@ tr.past_event {
|
|||
}
|
||||
|
||||
tr.next_event {
|
||||
color: #FFFF00;
|
||||
color: #EEEEEE;
|
||||
}
|
||||
|
||||
tr.future_event {
|
||||
|
|
Loading…
Reference in New Issue