diff --git a/.vscode/launch.json b/.vscode/launch.json
new file mode 100644
index 0000000..d8e63f2
--- /dev/null
+++ b/.vscode/launch.json
@@ -0,0 +1,18 @@
+{
+ // Use IntelliSense to learn about possible attributes.
+ // Hover to view descriptions of existing attributes.
+ // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
+ "version": "0.2.0",
+ "configurations": [
+ {
+ "type": "node",
+ "request": "launch",
+ "name": "Launch 11ty",
+ "program": "${workspaceFolder}\\node_modules\\@11ty\\eleventy\\cmd.js",
+ "args": [
+ // Just an example argument
+ // "--output=C:\\Temp"
+ ],
+ }
+ ]
+}
\ No newline at end of file
diff --git a/fetchData.js b/fetchData.js
deleted file mode 100644
index fef3c46..0000000
--- a/fetchData.js
+++ /dev/null
@@ -1,105 +0,0 @@
-
-const path = require('path');
-const fs = require('fs');
-const fetch = require('node-fetch');
-const slugify = require('slugify');
-
-module.exports = fetchData();
-
-var speakers = {};
-var sessions = {};
-var rooms = {};
-var levels = {};
-var formats = {};
-
-
-
-async function fetchData()
-{
- fetch('https://sessionize.com/api/v2/bm8zoh0m/view/all')
- .then(function (response) {
- return response.json();
- })
- .then(function (data) {
- parseCategories(data.categories);
- buildSpeakers(data.speakers);
- buildSessions(data.sessions);
- writeDataFile('rooms.json', data.rooms);
- });
-}
-
-
-function parseCategories(categories)
-{
- for (let category of categories) {
- if (category.title == 'Level') {
- for (level of category.items) {
- levels[level.id] = level;
- }
- } else if (category.title == 'Session format') {
- for (format of category.items) {
- formats[format.id] = format;
- }
- }
- }
-}
-
-function buildSpeakers(speakersData)
-{
- for (let speaker of speakersData) {
- for (let link of speaker.links) {
- link.name = link.title;
- switch (link.linkType) {
- case 'Twitter':
- link.name = '@' + link.url.replace(/https*:\/\/(www\.)*twitter.com\//gi, '').replace(/\/?(\?.*)?$/, '');
- break;
- case 'Blog':
- case 'Company_Website':
- link.name = link.url.replace(/https*:\/\/(www\.)*/gi, '')
- .replace(/\/?(\?.*)?$/, '')
- .replace(/\/.*/, '');
- break;
- }
- }
- }
- speakers = speakersData;
- writeDataFile('speakers.json', speakers);
-}
-
-
-function buildSessions(sessionsData)
-{
- for (let session of sessionsData) {
- for (let categoryId of session.categoryItems) {
- if (categoryId in levels) {
- session.level = levels[categoryId].name;
- } else if (categoryId in formats) {
- session.format = formats[categoryId].name;
- }
- }
- }
- sessions = sessionsData;
- writeDataFile('sessions.json', sessions);
-}
-
-
-function writeDataFile(filename, array)
-{
- let object = {};
-
- for (let item of array) {
- object[item.id] = item;
- }
-
- let projectRoot = path.normalize(__dirname);
-
- let file = `${projectRoot}/src/_data/${filename}`;
- let content = JSON.stringify(object, null, 4);
-
- fs.writeFile(file, content, function(err) {
- if(err) {
- return console.log(err);
- }
- console.log(`Sessionize data written to ${filename}`);
- });
-}
diff --git a/readme.md b/readme.md
index 3d3507a..a7099d9 100644
--- a/readme.md
+++ b/readme.md
@@ -38,3 +38,5 @@ It also runs a local webserver and makes the site available at
* [11ty - JS Templates](https://www.11ty.io/docs/languages/javascript/)
* [a11y - add lang attribute](https://dequeuniversity.com/rules/axe/3.1/html-has-lang?application=lighthouse)
* [a11y - Accessible SVGs](https://css-tricks.com/accessible-svgs/)
+* [11ty - Debug 11ty with VS Code](https://github.com/11ty/eleventy/issues/331)
+* [11ty - JavaScript Data Files](https://www.11ty.io/docs/data-js/)
\ No newline at end of file
diff --git a/src/_data/rooms.json b/src/_data/rooms.json
deleted file mode 100644
index 4eb6f53..0000000
--- a/src/_data/rooms.json
+++ /dev/null
@@ -1,32 +0,0 @@
-{
- "2324": {
- "id": 2324,
- "name": "Main Hall",
- "sort": 0
- },
- "2325": {
- "id": 2325,
- "name": "Room 221 - Data: From Big to Small",
- "sort": 1
- },
- "2326": {
- "id": 2326,
- "name": "Room 232 - Code, APIs, and Things",
- "sort": 2
- },
- "2327": {
- "id": 2327,
- "name": "Room 233 - Modern Practices",
- "sort": 3
- },
- "2328": {
- "id": 2328,
- "name": "Room 424 - Testing and Devops",
- "sort": 4
- },
- "2329": {
- "id": 2329,
- "name": "Room 442 - For Fun and Profit",
- "sort": 5
- }
-}
\ No newline at end of file
diff --git a/src/_data/schedule.js b/src/_data/schedule.js
deleted file mode 100644
index bc35ede..0000000
--- a/src/_data/schedule.js
+++ /dev/null
@@ -1,133 +0,0 @@
-
-module.exports = buildSchedule()
-
-function buildSchedule()
-{
- let timeSlots = getTimeSlots();
- // return timeSlots; // (for debugging)
-
-
- let speakers = require('./speakers.json');
- let rooms = require('./rooms.json');
-
- let scheduleTable = {
- head: [],
- body: [],
- };
- scheduleTable.head.push({ title: 'Time', type: 'timespan' });
- for (let room of Object.values(rooms)) {
- if (room.id == 2324) {
- continue;
- }
- scheduleTable.head.push({
- title: room.name,
- subtitle: '',
- type: 'track',
- })
- }
- for (let [timeCode, timeSlot] of Object.entries(timeSlots)) {
-
- let startTime = getTimeString(timeSlot.info.startsAt);
- let endTime = getTimeString(timeSlot.info.endsAt);
- let tableRow = [];
- tableRow.push({
- type: 'timespan',
- title: startTime + "- " + endTime,
- timeSlug: timeCode,
- })
- let rowSessions = timeSlot.sessionsByRoom;
- for (let session of Object.values(rowSessions)) {
- if (session.isPlenumSession) {
- type = 'plenumSession';
- title_link = false;
- } else if (session.id == false) {
- type = 'unscheduled';
- title_link = false;
- } else {
- type = 'session';
- title_link = `/sessions/#${session.id}`;
- }
- tableCell = {
- type: type,
- title: session.title,
- title_link: title_link,
- speakers: [],
- };
- for (let speakerId of session.speakers) {
- let speaker = speakers[speakerId];
- tableCell.speakers.push({
- name: speaker.fullName,
- link: `/speakers/#${speaker.id}`,
- });
- }
- tableRow.push(tableCell);
- }
- scheduleTable.body.push(tableRow);
- }
- return scheduleTable;
-}
-
-function getTimeSlots()
-{
- let sessions = require('./sessions.json');
- let rooms = require('./rooms.json');
-
- let timeSlots = {};
- for (let session of Object.values(sessions)) {
- let timeCode = getTimeCode(session.startsAt);
- let roomId = session.roomId;
- if (!timeSlots[timeCode]) {
- timeSlots[timeCode] = {
- info: {
- startsAt: session.startsAt,
- endsAt: session.endsAt,
- },
- sessionsByRoom: {},
- };
- }
- timeSlots[timeCode].sessionsByRoom[roomId] = session;
- }
-
- /**
- * Add a blank entry for any missing rooms (unscheduled for given time period).
- * Skip time periods with sessions in the Main Hall (id 2324)
- * since all other rooms are unscheduled at those times.
- */
- for (let [timeCode, timeSlot] of Object.entries(timeSlots)) {
- let sessionsByRoom = timeSlot.sessionsByRoom
- if (sessionsByRoom['2324']) {
- continue;
- }
- for (let key of Object.keys(rooms)) {
- if (!sessionsByRoom[key] && key != 2324) {
- sessionsByRoom[key] = { id: false, title: false, roomId: key, startsAt: timeCode, speakers: [] }
- }
- }
- }
-
- return timeSlots;
-}
-
-function getTimeString(timeString)
-{
- let date = new Date(timeString);
- let time = date.toLocaleTimeString('en-US', {
- hour12: true,
- hour: 'numeric',
- minute: 'numeric',
- })
- time = time.replace(' AM', 'am').replace(' PM', 'pm');
- return time;
-}
-
-function getTimeCode(timeString)
-{
- let date = new Date(timeString);
- let time = date.toLocaleTimeString('en-US', {
- hour12: false,
- hour: '2-digit',
- minute: '2-digit',
- });
- let id = time.replace(':','');
- return parseInt(id);
-}
diff --git a/src/_data/sessionize.js b/src/_data/sessionize.js
new file mode 100644
index 0000000..990b2a7
--- /dev/null
+++ b/src/_data/sessionize.js
@@ -0,0 +1,247 @@
+const fetch = require('node-fetch');
+
+module.exports = async function() {
+
+ const response = await fetch('https://sessionize.com/api/v2/bm8zoh0m/view/all');
+ const sessionize = await response.json();
+
+
+ const {levels, formats} = buildCategories(sessionize.categories);
+ const rooms = buildRooms(sessionize.rooms)
+ const speakers = buildSpeakers(sessionize.speakers);
+ const sessions = buildSessions(sessionize.sessions, levels, formats);
+
+
+ const schedule = buildSchedule(sessions, rooms, speakers)
+ const sessionsByRoom = getSessionsByRoom(sessions)
+
+ return {sessionize, levels, formats, speakers, sessions, schedule, sessionsByRoom};
+};
+
+
+function buildSchedule(sessions, rooms, speakers) {
+
+ let timeSlots = getTimeSlots(sessions, rooms);
+
+ let scheduleTable = {
+ head: [],
+ body: [],
+ };
+ scheduleTable.head.push({ title: 'Time', type: 'timespan' });
+
+ for (let room of Object.values(rooms)) {
+ if (room.id == 2324) {
+ continue;
+ }
+ scheduleTable.head.push({
+ title: room.name,
+ subtitle: '',
+ type: 'track',
+ })
+ }
+
+ for (let [timeCode, timeSlot] of Object.entries(timeSlots)) {
+
+ let startTime = getTimeString(timeSlot.info.startsAt);
+ let endTime = getTimeString(timeSlot.info.endsAt);
+ let tableRow = [];
+ tableRow.push({
+ type: 'timespan',
+ title: startTime + "- " + endTime,
+ timeSlug: timeCode,
+ })
+ let rowSessions = timeSlot.sessionsByRoom;
+ for (let session of Object.values(rowSessions)) {
+ if (session.isPlenumSession) {
+ type = 'plenumSession';
+ title_link = false;
+ } else if (session.id == false) {
+ type = 'unscheduled';
+ title_link = false;
+ } else {
+ type = 'session';
+ title_link = `/sessions/#${session.id}`;
+ }
+ tableCell = {
+ type: type,
+ title: session.title,
+ title_link: title_link,
+ speakers: [],
+ };
+ for (let speakerId of session.speakers) {
+ let speaker = speakers[speakerId];
+ tableCell.speakers.push({
+ name: speaker.fullName,
+ link: `/speakers/#${speaker.id}`,
+ });
+ }
+ tableRow.push(tableCell);
+ }
+ scheduleTable.body.push(tableRow);
+ }
+
+ return scheduleTable;
+}
+
+function getTimeSlots(sessions, rooms) {
+ let timeSlots = {};
+ for (let session of Object.values(sessions)) {
+ let timeCode = getTimeCode(session.startsAt);
+ let roomId = session.roomId;
+ if (!timeSlots[timeCode]) {
+ timeSlots[timeCode] = {
+ info: {
+ startsAt: session.startsAt,
+ endsAt: session.endsAt,
+ },
+ sessionsByRoom: {},
+ };
+ }
+ timeSlots[timeCode].sessionsByRoom[roomId] = session;
+ }
+
+ /**
+ * Add a blank entry for any missing rooms (unscheduled for given time period).
+ * Skip time periods with sessions in the Main Hall (id 2324)
+ * since all other rooms are unscheduled at those times.
+ */
+ for (let [timeCode, timeSlot] of Object.entries(timeSlots)) {
+ let sessionsByRoom = timeSlot.sessionsByRoom
+ if (sessionsByRoom['2324']) {
+ continue;
+ }
+ for (let key of Object.keys(rooms)) {
+ if (!sessionsByRoom[key] && key != 2324) {
+ sessionsByRoom[key] = { id: false, title: false, roomId: key, startsAt: timeCode, speakers: [] }
+ }
+ }
+ }
+
+ return timeSlots;
+}
+
+function getTimeString(timeString) {
+ let date = new Date(timeString);
+ let time = date.toLocaleTimeString('en-US', {
+ hour12: true,
+ hour: 'numeric',
+ minute: 'numeric',
+ })
+ time = time.replace(' AM', 'am').replace(' PM', 'pm');
+ return time;
+}
+
+function getTimeCode(timeString) {
+ let date = new Date(timeString);
+ let time = date.toLocaleTimeString('en-US', {
+ hour12: false,
+ hour: '2-digit',
+ minute: '2-digit',
+ });
+ let id = time.replace(':','');
+ return parseInt(id);
+}
+
+
+function buildRooms(roomsArray) {
+ let rooms = flattenArrayToObj(roomsArray)
+ return rooms
+}
+
+function buildCategories(categories) {
+ var levels = {};
+ var formats = {};
+
+ for (let category of categories) {
+ if (category.title == 'Level') {
+ for (level of category.items) {
+ levels[level.id] = level;
+ }
+ } else if (category.title == 'Session format') {
+ for (format of category.items) {
+ formats[format.id] = format;
+ }
+ }
+ }
+
+ return {levels, formats}
+}
+
+function buildSpeakers(speakersData) {
+ for (let speaker of speakersData) {
+ for (let link of speaker.links) {
+ link.name = link.title;
+ switch (link.linkType) {
+ case 'Twitter':
+ link.name = '@' + link.url.replace(/https*:\/\/(www\.)*twitter.com\//gi, '')
+ .replace(/\/?(\?.*)?$/, '');
+ break;
+ case 'Blog':
+ case 'Company_Website':
+ link.name = link.url.replace(/https*:\/\/(www\.)*/gi, '')
+ .replace(/\/?(\?.*)?$/, '')
+ .replace(/\/.*/, '');
+ break;
+ }
+ }
+ }
+
+ return flattenArrayToObj(speakersData)
+}
+
+
+function buildSessions(sessionsData, levels, formats) {
+ for (let session of sessionsData) {
+ for (let categoryId of session.categoryItems) {
+ if (categoryId in levels) {
+ session.level = levels[categoryId].name;
+ } else if (categoryId in formats) {
+ session.format = formats[categoryId].name;
+ }
+ }
+ }
+ return flattenArrayToObj(sessionsData);
+}
+
+
+function getSessionsByRoom(sessions) {
+ let sessionsByRoom = {};
+
+ for (let session of Object.values(sessions)) {
+ if (session.isPlenumSession) {
+ continue;
+ }
+ let roomId = session.roomId;
+ if (!sessionsByRoom[roomId]) {
+ sessionsByRoom[roomId] = {};
+ }
+ let timeCode = getTimeSlotId(session.startsAt);
+ sessionsByRoom[roomId][timeCode] = session;
+ }
+ let sessionsByRoomSorted = {};
+ Object.keys(sessionsByRoom).sort().forEach(function(key) {
+ sessionsByRoomSorted[key] = sessionsByRoom[key];
+ });
+ return sessionsByRoomSorted;
+}
+
+function getTimeSlotId(timeString) {
+ let date = new Date(timeString);
+ let time = date.toLocaleTimeString('en-US', {
+ hour12: false,
+ hour: '2-digit',
+ minute: '2-digit',
+ });
+ let id = time.replace(':','');
+ return parseInt(id);
+}
+
+function flattenArrayToObj(array) {
+ let object = {};
+
+ for (let item of array) {
+ object[item.id] = item;
+ }
+
+ return object;
+}
diff --git a/src/_data/sessions.json b/src/_data/sessions.json
deleted file mode 100644
index bb737a5..0000000
--- a/src/_data/sessions.json
+++ /dev/null
@@ -1,768 +0,0 @@
-{
- "43457": {
- "id": "43457",
- "title": "Unit Testing with JUnit and Eclipse - Basics",
- "description": "Basics of white box testing, live coding demonstration of JUnit framework with Eclipse IDE. If time allows Mocking with Mockito framework also could be on the menu. ",
- "startsAt": "2018-09-15T16:15:00",
- "endsAt": "2018-09-15T17:15:00",
- "isServiceSession": false,
- "isPlenumSession": false,
- "speakers": [
- "00bc8cd6-45d1-4802-bf48-e3ba8af5a875"
- ],
- "categoryItems": [
- 7545,
- 7540
- ],
- "questionAnswers": [],
- "roomId": 2328,
- "format": "60 minutes",
- "level": "100 (absolute beginner)"
- },
- "43510": {
- "id": "43510",
- "title": "Using MySQL Workbench to Design and Build Databases",
- "description": "Use MySQL Workbench to design your MySQL database. With the design completed, you can forward engineer the design into SQL code that when run, will generate all of the tables, attributes, indexes and all of the related parts of a well-functioning database. See how to tweak the code so it can run on a Microsoft’s SQL Server.",
- "startsAt": "2018-09-15T16:15:00",
- "endsAt": "2018-09-15T17:15:00",
- "isServiceSession": false,
- "isPlenumSession": false,
- "speakers": [
- "b2dae93f-c9a3-4a9c-9faa-922920203190"
- ],
- "categoryItems": [
- 7545,
- 7542
- ],
- "questionAnswers": [],
- "roomId": 2325,
- "format": "60 minutes",
- "level": "300 (pretty darned-experienced)"
- },
- "43776": {
- "id": "43776",
- "title": "Everything SEO: Strategy, Process, Technical Implementation, Tools, & the Real World",
- "description": "We dive into 'everything SEO' using a current real-world geographic success. Want to go from zero to 1000 unique user visits per day? How do you rank among your competitors? Want a big salary SEO Strategist job position? We'll touch on best practices, small modifications to gain big, tools of the trade, analytics, and much more. ",
- "startsAt": "2018-09-15T11:00:00",
- "endsAt": "2018-09-15T12:00:00",
- "isServiceSession": false,
- "isPlenumSession": false,
- "speakers": [
- "36327dbc-96aa-40ec-9d4b-f4a7cb008203"
- ],
- "categoryItems": [
- 7545,
- 7540
- ],
- "questionAnswers": [],
- "roomId": 2329,
- "format": "60 minutes",
- "level": "100 (absolute beginner)"
- },
- "43807": {
- "id": "43807",
- "title": "Automated Quality Assurance: From Apprentice to Master",
- "description": "A look into the world of Automated Quality Assurance - what it is, how to achieve it, and pitfalls to avoid. This presentation has something to offer anyone from those curious about AQA to those already in the field. We’ll start by distinguishing between Manual QA (Quality Advocates) and Automated QA (Quality Assurance), followed by how to get started in AQA and how to structure AQA in your organization (Don't Automate the Mess!). Next we dig a little deeper and talk test case management (Scrum is not a Silver Bullet), structuring your codebase for maintainability, and AQA paradigms (Gherkin/Cucumber). Third, we touch on a few common pitfalls of AQA a mature AQA pipeline (Watchman problem) and how to avoid them. Finally, we’ll walk through the various types of AQA testing (Integration, Front-end, Performance) and how to tackle them with AQA. ",
- "startsAt": "2018-09-15T13:45:00",
- "endsAt": "2018-09-15T14:45:00",
- "isServiceSession": false,
- "isPlenumSession": false,
- "speakers": [
- "514911be-4e48-4b0a-b973-5bac6d732e58"
- ],
- "categoryItems": [
- 7545,
- 7541
- ],
- "questionAnswers": [],
- "roomId": 2328,
- "format": "60 minutes",
- "level": "200 (never stop learning)"
- },
- "43809": {
- "id": "43809",
- "title": "Accessibility Awareness: Empowering Everyone",
- "description": "Web accessibility is more than programming for screen readers. Learn how placing accessibility first improves your user experience for everyone, enabling people of all backgrounds to accomplish their goals on your site regardless of their abilities. We’ll review some easy ways to evaluate your site’s accessibility, along with a few steps you can take to remove barriers and delight your users.\r\n\r\n“It’s the stairs leading into a building that disable the wheelchair user rather than the wheelchair.”",
- "startsAt": "2018-09-15T15:30:00",
- "endsAt": "2018-09-15T16:00:00",
- "isServiceSession": false,
- "isPlenumSession": false,
- "speakers": [
- "c18dd4c0-e07d-4f0d-9a20-f9f632111891"
- ],
- "categoryItems": [
- 7544,
- 7541
- ],
- "questionAnswers": [],
- "roomId": 2327,
- "format": "30 minutes",
- "level": "200 (never stop learning)"
- },
- "43893": {
- "id": "43893",
- "title": "For the DotNoobs! Leveling Up Your C#",
- "description": "So you have some C# experience but you're still a little green. Chances are you are making common mistakes without realizing it. This session will accelerate your experience level in just one hour by pointing out things you will never do wrong again, and do so in an easy to understand way.\r\nWe'll cover as many mini-topics as we can in 60 minutes, including:\r\n* What a reference type really is and what it means to pass by reference.\r\n* Using HttpClient correctly.\r\n* Async/Await mistakes.\r\n* Exception Handling.\r\n* Handling SqlParameter and the problem with AddWithValue\r\n* Visual Studio features you should use.\r\nAnd more, time permitting !\r\n\r\npsst, even experienced programmers might pick up a thing or two...",
- "startsAt": "2018-09-15T09:00:00",
- "endsAt": "2018-09-15T10:00:00",
- "isServiceSession": false,
- "isPlenumSession": false,
- "speakers": [
- "cb70d1bd-13ab-4a16-abfd-cf48b37ec30d"
- ],
- "categoryItems": [
- 7545,
- 7540
- ],
- "questionAnswers": [],
- "roomId": 2326,
- "format": "60 minutes",
- "level": "100 (absolute beginner)"
- },
- "44470": {
- "id": "44470",
- "title": "Powershell Primer",
- "description": "Powershell is Microsoft's evolution of the good old DOS command line, now with commands to automate Azure, Office 365, Windows and applications. It slices, it dices, it does DevOps, text processing, REST-APIs calls, SQL database management and much, much more. This session introduces Powershell to newbies, who want to take to next step in automating their world. ",
- "startsAt": "2018-09-15T13:45:00",
- "endsAt": "2018-09-15T14:45:00",
- "isServiceSession": false,
- "isPlenumSession": false,
- "speakers": [
- "f1dc06b1-c3d6-4928-897e-7a2bb66d6476"
- ],
- "categoryItems": [
- 7545,
- 7541
- ],
- "questionAnswers": [],
- "roomId": 2327,
- "format": "60 minutes",
- "level": "200 (never stop learning)"
- },
- "44472": {
- "id": "44472",
- "title": "How to get a great job and build a network in a rural market",
- "description": "Working in Vermont can be challenging and hard for people from outside of the area to find a way in. Or for students graduating from our local colleges who are so smitten with Vermont (who wouldn’t be?) that they want to stay here after they graduate. Learn tactics and methods to get into great companies as well as understanding the tech community here in the 802.",
- "startsAt": "2018-09-15T13:45:00",
- "endsAt": "2018-09-15T14:45:00",
- "isServiceSession": false,
- "isPlenumSession": false,
- "speakers": [
- "f880bdd0-7272-4c54-be93-4e32ef9fd308"
- ],
- "categoryItems": [
- 7545,
- 7540
- ],
- "questionAnswers": [],
- "roomId": 2329,
- "format": "60 minutes",
- "level": "100 (absolute beginner)"
- },
- "44859": {
- "id": "44859",
- "title": "Bit Banging and Other Fun Programming at the Edge.",
- "description": "An introduction to sensors, microcontrollers and how they fit into the larger context of the Internet of Things (IoT). This session will begin with a survey of the various sensors that are available. I’ll then spend the bulk of the time talking about what microcontrollers are, how programming them differs from desktop/web programming and how they are used to connect to sensors and the network. We’ll finish off by looking at a demo or two and how this all fits into the grand scheme of the IoT.",
- "startsAt": "2018-09-15T09:00:00",
- "endsAt": "2018-09-15T10:00:00",
- "isServiceSession": false,
- "isPlenumSession": false,
- "speakers": [
- "2fbddcf9-1d92-4959-ae11-d2ed9907d5c9"
- ],
- "categoryItems": [
- 7545,
- 7540
- ],
- "questionAnswers": [],
- "roomId": 2329,
- "format": "60 minutes",
- "level": "100 (absolute beginner)"
- },
- "46608": {
- "id": "46608",
- "title": "WebAssembly and Blazor",
- "description": "Will we be able to write front end single page apps (SPAs) without using JavaScript? Come and learn what WebAssembly is and how it can be used with the Blazor framework to write SPAs using .NET.",
- "startsAt": "2018-09-15T15:30:00",
- "endsAt": "2018-09-15T16:00:00",
- "isServiceSession": false,
- "isPlenumSession": false,
- "speakers": [
- "43224090-85a3-4048-904f-3ac8c8954085"
- ],
- "categoryItems": [
- 7544,
- 7541
- ],
- "questionAnswers": [],
- "roomId": 2326,
- "format": "30 minutes",
- "level": "200 (never stop learning)"
- },
- "56627": {
- "id": "56627",
- "title": "Developing ASP.NET Core 2.0 Web APIs for your Web and Mobile Apps",
- "description": "ASP.NET Core 2.0 is a cross-platform web framework that can be deployed to Windows, macOS, Linux or even to Containers! It is the perfect framework to develop the the Web APIs that drive the hottest web and mobile apps. The key is to have the right architecture to go along with the benefits that ASP.NET Core gives developers. In this , we will look at ASP.NET Core 2.0 Web API and the Hexagonal Architecture to allow your APIs to be efficient and testable.\r\n\r\nBy using the Hex Architecture not only does the development story become easier but your end users get a much more stable API set to consume. The talk will explain and get you started on using these concepts with your ASP.NET Core 2.0 Web API projects.",
- "startsAt": "2018-09-15T13:45:00",
- "endsAt": "2018-09-15T14:45:00",
- "isServiceSession": false,
- "isPlenumSession": false,
- "speakers": [
- "215bbd42-ce3a-4744-af1f-7e5f0f30d620"
- ],
- "categoryItems": [
- 7545,
- 7542
- ],
- "questionAnswers": [],
- "roomId": 2326,
- "format": "60 minutes",
- "level": "300 (pretty darned-experienced)"
- },
- "56954": {
- "id": "56954",
- "title": "Survey of Big Data Infrastructures",
- "description": "Big data infrastructures have evolved rapidly as computing power has grown and hardware has become less expensive. This session will be a high level overview of popular big data infrastructures and paradigms over the last decade in both academics and industry. Technologies covered will include Spark, Hadoop, distributed relational databases, grid computing, and high performance computing. We will compare and contrast embarrassingly parallel vs distributed memory algorithms and streaming vs batch processing. Finally, the session will cover some of the modern technology options available for various applications.",
- "startsAt": "2018-09-15T09:00:00",
- "endsAt": "2018-09-15T10:00:00",
- "isServiceSession": false,
- "isPlenumSession": false,
- "speakers": [
- "4870cd32-f9a5-492f-a1d5-6aa41a07b0d7"
- ],
- "categoryItems": [
- 7545,
- 7540
- ],
- "questionAnswers": [],
- "roomId": 2325,
- "format": "60 minutes",
- "level": "100 (absolute beginner)"
- },
- "58430": {
- "id": "58430",
- "title": "Real World Introduction To Enterprise Blockchain",
- "description": "If you’re interested in learning a little bit about Enterprise Blockchain and a real-world use case, you should check this session and see how we are building an enterprise blockchain which can be used to transparently record different types of donations for SharePoint Saturday Puerto Rico. \r\n\r\nOne of the primary design principles of our real-world use case is to demonstrate patterns for Business App integration with other services in the Microsoft Cloud. i.e. SharePoint, Dynamics 365, Teams, etc.\r\n\r\nSee how creative you can get with smart contracts and learn how to use the transparent ledger properties of blockchain to share donation and sponsor information. All the demo code is OOS and will be shared with attendees via GitHub.\r\n",
- "startsAt": "2018-09-15T09:00:00",
- "endsAt": "2018-09-15T10:00:00",
- "isServiceSession": false,
- "isPlenumSession": false,
- "speakers": [
- "ea58cf0c-6271-42bb-9e3a-e39dda302f11"
- ],
- "categoryItems": [
- 7545,
- 7542
- ],
- "questionAnswers": [],
- "roomId": 2327,
- "format": "60 minutes",
- "level": "300 (pretty darned-experienced)"
- },
- "59050": {
- "id": "59050",
- "title": "Semantic release",
- "description": "Manually releasing new software versions is dangerous. You might forget to test it before releasing, or you might release a platform-specific version, instead of a general one. Moving the release to the CI and automating it is the key to repeatable and robust release process. In this talk I will show how to setup completely automated yet robust release system with semantic versioning for JavaScript using NodeJS.",
- "startsAt": "2018-09-15T10:15:00",
- "endsAt": "2018-09-15T10:45:00",
- "isServiceSession": false,
- "isPlenumSession": false,
- "speakers": [
- "9e6e85d8-9546-4a42-90f2-b206ac7f55b8"
- ],
- "categoryItems": [
- 7544,
- 7541
- ],
- "questionAnswers": [],
- "roomId": 2328,
- "format": "30 minutes",
- "level": "200 (never stop learning)"
- },
- "59408": {
- "id": "59408",
- "title": "Continuous Integration/Delivery of SQL Databases",
- "description": "In an attempt to simplify development and deployment we undertook to align the CI/CD pipelines of our applications and our database schemas. This talk will explore how SQL databases were developed and deployed using an existing CI/CD pipeline originally built for web applications. I will show how traditionally challenging areas such parallel development were greatly simplified. I will also discuss the new, arguably greater, challenges we created for ourselves with this experiment.\r\nTechnologies in this talk include: SQL Server, Visual Studio SQL Server Data Tool (SSDT), Data-tier Application Component Packages (DACPACs), NuGet",
- "startsAt": "2018-09-15T13:00:00",
- "endsAt": "2018-09-15T13:30:00",
- "isServiceSession": false,
- "isPlenumSession": false,
- "speakers": [
- "3e34cfb3-2012-432a-b944-14a98afd33b8"
- ],
- "categoryItems": [
- 7544,
- 7541
- ],
- "questionAnswers": [],
- "roomId": 2328,
- "format": "30 minutes",
- "level": "200 (never stop learning)"
- },
- "59537": {
- "id": "59537",
- "title": "Getting started with Azure Marketplace",
- "description": "In this session, I will walk thru the process of getting started with Azure Marketplace and publishing Virtual Machine and Web Applications.",
- "startsAt": "2018-09-15T10:15:00",
- "endsAt": "2018-09-15T10:45:00",
- "isServiceSession": false,
- "isPlenumSession": false,
- "speakers": [
- "f2abc8d7-6140-4479-8f1a-a322bd36d4a5"
- ],
- "categoryItems": [
- 7544,
- 7541
- ],
- "questionAnswers": [],
- "roomId": 2325,
- "format": "30 minutes",
- "level": "200 (never stop learning)"
- },
- "59572": {
- "id": "59572",
- "title": "A Gentle Introduction to ReactJS",
- "description": "Got framework overload? Join us for a gentle introductory session on using ReactJS. We'll go over the theory behind the framework, and then finish the session by building a small demo site together.",
- "startsAt": "2018-09-15T11:00:00",
- "endsAt": "2018-09-15T12:00:00",
- "isServiceSession": false,
- "isPlenumSession": false,
- "speakers": [
- "393c3111-87ea-4314-b007-6edfa8fa0a63"
- ],
- "categoryItems": [
- 7545,
- 7541
- ],
- "questionAnswers": [],
- "roomId": 2326,
- "format": "60 minutes",
- "level": "200 (never stop learning)"
- },
- "60257": {
- "id": "60257",
- "title": "Excel Tools for the Global Ingredients Archiving System",
- "description": "A major undertaking is going on around the world: standardizing the way companies and governmental agencies communicate about pharmaceutical products. One component of this system is ginas (Global Ingredients Archiving System), a software system that allows users to define the substances used in medicines, foods, veterinary products, etc. with sufficient precision so that people around the world can communicate confidently about these substances, eliminating the errors that come with ambiguity.\r\n\r\nOne component of ginas is a set of tools for Microsoft Excel that allow retrieval of information from a ginas repository into a spreadsheet as well as entry of new information into a repository from a spreadsheet.\r\n\r\nThe tools consist of a C# user interface that communicates with a Java RESTful web service via a JavaScript shim. Users can create reports by retrieving data to match a query name or identifier; create new worksheets for data entry; and post new data to a server. The new data may be brand new records; new names or identifiers for existing records; amendments to existing outward links and other updates.\r\n\r\nWe will start with an overview of the standardization process, then talk about the ginas system as an implementation of the new standards. This will set the context the Excel tools, which we'll dissect in detail. Finally, the lessons learned about Excel add-ins that may be relevant to developers of similar add-ins.",
- "startsAt": "2018-09-15T16:15:00",
- "endsAt": "2018-09-15T17:15:00",
- "isServiceSession": false,
- "isPlenumSession": false,
- "speakers": [
- "db3aca8b-9813-480a-b9da-05614ef6759a"
- ],
- "categoryItems": [
- 7545,
- 7541
- ],
- "questionAnswers": [],
- "roomId": 2327,
- "format": "60 minutes",
- "level": "200 (never stop learning)"
- },
- "60842": {
- "id": "60842",
- "title": "Enterprise Apps for the Web Platform",
- "description": "Progressive Web Apps are opening up a whole new world of innovation on the open web platform by providing the reliable, fast, and engaging user experience of a native mobile app, but delivered with the openness and discoverability of a web app. A number of high-profile organizations including Google, Twitter, and The Weather Channel have adopted Progressive Web App technologies. Learn how and why your organization should build a Progressive Web App and how your development team can take advantage of related open web technologies and browser APIs such as service workers, IndexedDB, persistent storage, payments, geolocation, and push notifications. We'll also cover some open source and proprietary technologies that can help you build your first Progressive Web App.",
- "startsAt": "2018-09-15T10:15:00",
- "endsAt": "2018-09-15T10:45:00",
- "isServiceSession": false,
- "isPlenumSession": false,
- "speakers": [
- "8c4f5309-d724-4b11-8934-45d6e16290e3"
- ],
- "categoryItems": [
- 7544,
- 7541
- ],
- "questionAnswers": [],
- "roomId": 2326,
- "format": "30 minutes",
- "level": "200 (never stop learning)"
- },
- "60848": {
- "id": "60848",
- "title": "Exploring User Mental Models of Data Sharing",
- "description": "Successful integration of software applications depends critically on appropriate sharing of data. But how do we know what constitutes “appropriate” data sharing? By talking to your users, and asking targeted questions to assess their expectations around the addition, modification, and viewing of data, as well as what rules your users believe should govern access to specific data points, you will be able to anticipate and plan for key software architecture decisions. \r\n\r\nYou will learn how to:\r\n\r\n*Characterize the way your users currently think about data in relation to multiple products \r\n*Establish the way that your users’ tasks could be better supported by alternative underlying data models\r\n*Reveal which users need to see what data and in what circumstances (e.g. permissions)\r\n*Anticipate areas where data sharing is deemed risky by users, and explore potential data verification strategies to mitigate risk\r\n*Investigate user conceptions of data at an enterprise level and resulting implications for data manipulation at the child level",
- "startsAt": "2018-09-15T10:15:00",
- "endsAt": "2018-09-15T10:45:00",
- "isServiceSession": false,
- "isPlenumSession": false,
- "speakers": [
- "f6ace45d-2396-4df6-8310-0c8143241e44"
- ],
- "categoryItems": [
- 7544,
- 7540
- ],
- "questionAnswers": [],
- "roomId": 2327,
- "format": "30 minutes",
- "level": "100 (absolute beginner)"
- },
- "60860": {
- "id": "60860",
- "title": "5 Key Skills & Tools to Instantly Improve Project Success",
- "description": "A targeted overview of 5 key methods and toolsets to help you manage your projects more effectively, improving quality and project results and making your clients and end-users happier. Attendees will receive project templates, including a project dashboard Excel template, and sample checklists.",
- "startsAt": "2018-09-15T15:30:00",
- "endsAt": "2018-09-15T16:00:00",
- "isServiceSession": false,
- "isPlenumSession": false,
- "speakers": [
- "7fa32c2a-fd8f-4c3e-b553-73dd8d1db91d"
- ],
- "categoryItems": [
- 7544,
- 7541
- ],
- "questionAnswers": [],
- "roomId": 2329,
- "format": "30 minutes",
- "level": "200 (never stop learning)"
- },
- "61161": {
- "id": "61161",
- "title": "Go API Middleware",
- "description": "Maximize code re-use with middleware when writing a Go api. In this session I will show how to use the standard Go libraries to construct middleware in a simple api.",
- "startsAt": "2018-09-15T15:30:00",
- "endsAt": "2018-09-15T16:00:00",
- "isServiceSession": false,
- "isPlenumSession": false,
- "speakers": [
- "f90bb35b-2985-4f90-a8ef-3fe118c73afa"
- ],
- "categoryItems": [
- 7544,
- 7541
- ],
- "questionAnswers": [],
- "roomId": 2325,
- "format": "30 minutes",
- "level": "200 (never stop learning)"
- },
- "61288": {
- "id": "61288",
- "title": "Artificial Intelligence for everyone",
- "description": "I’m sure you have heard about artificial intelligence because it’s next big thing and all major tech companies are involved in its development. Now you can implement it too directly in all your websites, mobile and desktop apps using Microsoft Cognitive Services. In this session you will get basic knowledge about artificial intelligence, machine learning and their applications, go over all 6 groups of Cognitive Services and see individual APIs available in Azure. We’ll see how to use pre-built and custom services. Also we will concentrate on some details and specifics of Cognitive Services implementation in Xamarin and Xamarin.Forms solutions. In the end, you will see a demo on how using exported model from Custom Vision service create image recognition app.",
- "startsAt": "2018-09-15T11:00:00",
- "endsAt": "2018-09-15T12:00:00",
- "isServiceSession": false,
- "isPlenumSession": false,
- "speakers": [
- "fc2f0537-e9dc-4188-8221-3e7388ac78ed"
- ],
- "categoryItems": [
- 7545,
- 7541
- ],
- "questionAnswers": [],
- "roomId": 2327,
- "format": "60 minutes",
- "level": "200 (never stop learning)"
- },
- "61572": {
- "id": "61572",
- "title": "Leadership Ethics and Diversity",
- "description": "Leadership is a fascinating social phenomenon that occurs in all groups of people regardless of geography, culture or nationality. Most young people today aspire to become leaders in school, entertainment, politics or any other area of endeavor. \r\nFor a leader to be continuously effective over time and in different situations, the leader's behavior must vary with the situation. But how do we know if the leader is effective and is making ethical decisions for the organization? In the session I will talk about the ethical issues that leaders face today and provide information to enable a leader to effectively carry out the leadership process.\r\n",
- "startsAt": "2018-09-15T10:15:00",
- "endsAt": "2018-09-15T10:45:00",
- "isServiceSession": false,
- "isPlenumSession": false,
- "speakers": [
- "19feab8f-0a9c-4ba4-ae38-28be647067ff"
- ],
- "categoryItems": [
- 7544,
- 7541
- ],
- "questionAnswers": [],
- "roomId": 2329,
- "format": "30 minutes",
- "level": "200 (never stop learning)"
- },
- "61618": {
- "id": "61618",
- "title": "Maintaining Investment Grade Technical Debt",
- "description": "Successful systems continue to evolve through changing features, technologies and developers. Let's discuss how to evaluate changes and impacts on the technical debt of systems. Should we follow Conway's law? Reverse Conway's law? What are some metrics to monitor, so that we don't have to declare technical bankruptcy.",
- "startsAt": "2018-09-15T11:00:00",
- "endsAt": "2018-09-15T12:00:00",
- "isServiceSession": false,
- "isPlenumSession": false,
- "speakers": [
- "76f0c7d3-56ab-4fd4-8abe-4c8178ed8bc7"
- ],
- "categoryItems": [
- 7545,
- 7541
- ],
- "questionAnswers": [],
- "roomId": 2328,
- "format": "60 minutes",
- "level": "200 (never stop learning)"
- },
- "61619": {
- "id": "61619",
- "title": "Pushing Data to the Cloud and Serving It Up Fast!",
- "description": "Dealer Dot Com is moving their infrastructure to AWS and needed to make a version of their account (i.e. dealer) dataset available in the cloud. Requirements: keep it in sync with the on-prem database, deploy in multiple regions and keep the read-latencies down to single digit milliseconds. Beanstalk and Hollow and triggers, oh my!",
- "startsAt": "2018-09-15T13:00:00",
- "endsAt": "2018-09-15T13:30:00",
- "isServiceSession": false,
- "isPlenumSession": false,
- "speakers": [
- "1d0c819e-1319-422d-aa11-10fd00acbdb0"
- ],
- "categoryItems": [
- 7544,
- 7541
- ],
- "questionAnswers": [],
- "roomId": 2325,
- "format": "30 minutes",
- "level": "200 (never stop learning)"
- },
- "61632": {
- "id": "61632",
- "title": "The Ultimate Stage in Machine Learning",
- "description": "Machine learning and data science are in popular demand. Predictive model deployment is the part of the machine learning process where the practical results are achieved. Model deployment is the process of making a machine learning model available for generating predictions on new data, known as scoring (or sometimes called inferencing). The deployment used to present big difficulties, as models were typically built in one environment and needed to be deployed in a different one. Often they would need to be re-implemented in a new programming language, that would be very slow and error-prone.\r\nThis talk will cover two open standards that have made the process of model deployment easier: Predictive Model Markup Language (PMML) and Portable Format for Analytics (PFA), both developed by the Data Mining Group (DMG). We'll also talk briefly about deployment options for deep learning models.\r\n",
- "startsAt": "2018-09-15T13:45:00",
- "endsAt": "2018-09-15T14:45:00",
- "isServiceSession": false,
- "isPlenumSession": false,
- "speakers": [
- "01f67d55-1faa-461b-836f-c931a49a9164"
- ],
- "categoryItems": [
- 7545,
- 7541
- ],
- "questionAnswers": [],
- "roomId": 2325,
- "format": "60 minutes",
- "level": "200 (never stop learning)"
- },
- "61671": {
- "id": "61671",
- "title": "Value Stream Mapping",
- "description": "Every company delivers value at some level as their primary mission, yet many don't have a clear picture of how the do it and how they can do it better and more efficiently. This is especially tricky in the rapidly changing world of software development. We'll walk through why value stream mapping is important and some actual value streams covering some lessons learned and examples of reducing waste and making value delivery more efficient and the primary focus.",
- "startsAt": "2018-09-15T15:30:00",
- "endsAt": "2018-09-15T16:00:00",
- "isServiceSession": false,
- "isPlenumSession": false,
- "speakers": [
- "547929e7-99b4-4ccb-8990-25c2c66ad3cc"
- ],
- "categoryItems": [
- 7544,
- 7541
- ],
- "questionAnswers": [],
- "roomId": 2328,
- "format": "30 minutes",
- "level": "200 (never stop learning)"
- },
- "61706": {
- "id": "61706",
- "title": "Practical UX & UI for Developers",
- "description": "As an end user, there's nothing more satisfying than a well crafted design. As a developer, this often takes knowledge, forethought, and work to achieve. We'll go over some fundamental design principles and frameworks, and then build some guidelines and strategies for designing exceptional interfaces and experiences. UI skills are easily transferred across organizations and tech stacks and allow you and your company's products to stand out and deliver value.",
- "startsAt": "2018-09-15T13:00:00",
- "endsAt": "2018-09-15T13:30:00",
- "isServiceSession": false,
- "isPlenumSession": false,
- "speakers": [
- "165e172f-0221-4697-937a-4ba2b667d39b"
- ],
- "categoryItems": [
- 7544,
- 7540
- ],
- "questionAnswers": [],
- "roomId": 2327,
- "format": "30 minutes",
- "level": "100 (absolute beginner)"
- },
- "61725": {
- "id": "61725",
- "title": "Developer’s Guide to WordPress",
- "description": "A Developers Guide to WordPress\r\nIn this talk we’ll take a peek under the hood at some of the underlying architecture behind the most popular content management system on the planet. We’ll review the database schema and internal APIs, and discuss the pros, cons and caveats to historical decisions that are now “baked in” to WordPress, for better or worse.\r\n\r\nFinally, we’ll look at Gutenberg and upcoming changes to the WordPress ecosystem.",
- "startsAt": "2018-09-15T16:15:00",
- "endsAt": "2018-09-15T17:15:00",
- "isServiceSession": false,
- "isPlenumSession": false,
- "speakers": [
- "7d58def3-8136-4555-80e2-5834ef8d24c7"
- ],
- "categoryItems": [
- 7545,
- 7541
- ],
- "questionAnswers": [],
- "roomId": 2329,
- "format": "60 minutes",
- "level": "200 (never stop learning)"
- },
- "61763": {
- "id": "61763",
- "title": "Coding In Real Life: Python, 3D Modelling and Printing",
- "description": "As someone that first started exploring Python for data analytics it was a pleasant surprise to find that the same language can be used for 3D modeling software like Blender, Maya, Poser and Rhino. Translating programing abilities into creating printed objects or virtual models can extend how the coding can be used to make an impact, solve a problem or tell a story in a completely novel way.\r\n\r\nThe talk will cover explorations of geospatial and abstract data represented as 3D models to create new ways of visualizing information including printing incredibly accurate geospatial Lidar DEM and DSM models at multiple scales and creating abstracted models of complex data in VR environments. And it looks nothing like Zero Cool hacking The Gibson yet….",
- "startsAt": "2018-09-15T13:00:00",
- "endsAt": "2018-09-15T13:30:00",
- "isServiceSession": false,
- "isPlenumSession": false,
- "speakers": [
- "2a1eb302-46ba-4952-873e-8adcabf5399c"
- ],
- "categoryItems": [
- 7544,
- 7541
- ],
- "questionAnswers": [],
- "roomId": 2326,
- "format": "30 minutes",
- "level": "200 (never stop learning)"
- },
- "62122": {
- "id": "62122",
- "title": "\"Recalculating!\" - Navigating Container Technologies and Azure",
- "description": "Like Boston streets at the height of the Big Dig, the world of containers can seem a tangle of construction and one-way streets. Many turns can be taken, but reaching the destination of container adoption can improve your application architecture, deployment, scalability, cost, and more. In this session, we'll update our navigation systems with the latest maps of container options in and around Azure (Docker, Kubernetes, ACI, AKS, ACR, App Service, etc.) to learn why these roads exist and help you swiftly arrive at success!",
- "startsAt": "2018-09-15T11:00:00",
- "endsAt": "2018-09-15T12:00:00",
- "isServiceSession": false,
- "isPlenumSession": false,
- "speakers": [
- "d806bd8a-0c53-4a4f-8ea2-657ac1dd5d69"
- ],
- "categoryItems": [
- 7545,
- 7540
- ],
- "questionAnswers": [],
- "roomId": 2325,
- "format": "60 minutes",
- "level": "100 (absolute beginner)"
- },
- "62125": {
- "id": "62125",
- "title": "Civic Tech: Meaningful Ways to Use Your Skills",
- "description": "Opportunities to use your digital skills for social good are everywhere, but it isn't always clear how to get started, or what your involvement would be. We're going to look at concrete examples of people like you working on things like hurricane relief and social justice reform. This is exciting and meaningful work – and you can get involved right now.",
- "startsAt": "2018-09-15T13:00:00",
- "endsAt": "2018-09-15T13:30:00",
- "isServiceSession": false,
- "isPlenumSession": false,
- "speakers": [
- "020c690b-685a-4a5d-803e-f45e328988bf",
- "117957eb-b225-4f97-9850-aa04c429ae43"
- ],
- "categoryItems": [
- 7544,
- 7540
- ],
- "questionAnswers": [],
- "roomId": 2329,
- "format": "30 minutes",
- "level": "100 (absolute beginner)"
- },
- "63954": {
- "id": "63954",
- "title": "Building Serverless Data APIs",
- "description": "Azure Functions, Microsoft’s serverless offering, allow developers to focus on their code and not be concerned infrastructure or DevOps. And thanks to a slew of built-in integrations, it's also easy to have your functions get and send data to various services or even be triggered by events in those services. One such integration is with Azure Cosmos DB, the multi-model, globally distributed NoSQL data service. Cosmos DB exposes data as documents that you can access via SQL, JavaScript MongoDB or Cassandra as well as graph and key-value store. In this session, you'll see how easily you can build an API from a set of Azure Functions that interact with Cosmos DB documents and some other services. We’ll go all cross-platform with Visual Studio Code and NodeJS.",
- "startsAt": "2018-09-15T16:15:00",
- "endsAt": "2018-09-15T17:15:00",
- "isServiceSession": false,
- "isPlenumSession": false,
- "speakers": [
- "282a4701-f128-4b1d-bd67-da5d1f8b3eb0"
- ],
- "categoryItems": [
- 7545,
- 7542
- ],
- "questionAnswers": [],
- "roomId": 2326,
- "format": "60 minutes",
- "level": "300 (pretty darned-experienced)"
- },
- "64037": {
- "id": "64037",
- "title": "The Whole Team Approach to Testing in Continuous Delivery",
- "description": "We've never had time to Test All The Things before releasing updates to production. So how can we feel confident to release updates weekly or even daily with continuous delivery (CD)? Automating regression tests is already a challenge. What about all the other critical testing activities we need to do to make sure our product doesn't turn into a roadblock for customers?\r\nIn this session, Lisa will introduce some new tools and frameworks that will help your team work together to overcome testing challenges and succeed with CD. These include: \r\n* Ways to visualize your CD pipeline so the team can find ways to shorten feedback loops and mitigate risks\r\n* How to use a test suite canvas to discuss what questions each step in your CD pipeline needs to answer, to understand the value each step provides\r\n* How to make sure all essential types of testing are done continually, and how to fit testing into the continuous world. \r\nThere IS a “test” in DevOps! Let’s explore it together.",
- "startsAt": "2018-09-15T09:00:00",
- "endsAt": "2018-09-15T10:00:00",
- "isServiceSession": false,
- "isPlenumSession": false,
- "speakers": [
- "29d505af-541b-404d-9eb5-f1528a6a5645"
- ],
- "categoryItems": [
- 7545,
- 7542
- ],
- "questionAnswers": [],
- "roomId": 2328,
- "format": "60 minutes",
- "level": "300 (pretty darned-experienced)"
- },
- "bc4f38de-a541-46f1-a89d-defdb4b9e8cd": {
- "id": "bc4f38de-a541-46f1-a89d-defdb4b9e8cd",
- "title": "Registration (& Coffee, Tea, Juice, Pastries)",
- "description": null,
- "startsAt": "2018-09-15T08:00:00",
- "endsAt": "2018-09-15T08:45:00",
- "isServiceSession": true,
- "isPlenumSession": true,
- "speakers": [],
- "categoryItems": [],
- "questionAnswers": [],
- "roomId": 2324
- },
- "577d77f3-b763-4822-b8a5-4493bc227ef2": {
- "id": "577d77f3-b763-4822-b8a5-4493bc227ef2",
- "title": "Welcome",
- "description": null,
- "startsAt": "2018-09-15T08:45:00",
- "endsAt": "2018-09-15T09:00:00",
- "isServiceSession": true,
- "isPlenumSession": true,
- "speakers": [],
- "categoryItems": [],
- "questionAnswers": [],
- "roomId": 2324
- },
- "44b8f2c3-9b72-43f4-883f-66edd8dda422": {
- "id": "44b8f2c3-9b72-43f4-883f-66edd8dda422",
- "title": "Lunch",
- "description": null,
- "startsAt": "2018-09-15T12:00:00",
- "endsAt": "2018-09-15T13:00:00",
- "isServiceSession": true,
- "isPlenumSession": true,
- "speakers": [],
- "categoryItems": [],
- "questionAnswers": [],
- "roomId": 2324
- },
- "b0002c7c-df8c-45a0-bd13-3e7489c22a95": {
- "id": "b0002c7c-df8c-45a0-bd13-3e7489c22a95",
- "title": "Break and Afternoon Snacks",
- "description": null,
- "startsAt": "2018-09-15T14:45:00",
- "endsAt": "2018-09-15T15:15:00",
- "isServiceSession": true,
- "isPlenumSession": true,
- "speakers": [],
- "categoryItems": [],
- "questionAnswers": [],
- "roomId": 2324
- },
- "0968e88c-69dd-4658-ab3c-9b301ca4175f": {
- "id": "0968e88c-69dd-4658-ab3c-9b301ca4175f",
- "title": "Closing Remarks",
- "description": null,
- "startsAt": "2018-09-15T17:15:00",
- "endsAt": "2018-09-15T17:30:00",
- "isServiceSession": true,
- "isPlenumSession": true,
- "speakers": [],
- "categoryItems": [],
- "questionAnswers": [],
- "roomId": 2324
- }
-}
\ No newline at end of file
diff --git a/src/_data/sessionsByRoom.js b/src/_data/sessionsByRoom.js
deleted file mode 100644
index 59b6229..0000000
--- a/src/_data/sessionsByRoom.js
+++ /dev/null
@@ -1,36 +0,0 @@
-
-module.exports = getSessionsByRoom();
-
-function getSessionsByRoom()
-{
- let sessionsByRoom = {};
- let sessions = require('./sessions.json');
- for (let session of Object.values(sessions)) {
- if (session.isPlenumSession) {
- continue;
- }
- let roomId = session.roomId;
- if (!sessionsByRoom[roomId]) {
- sessionsByRoom[roomId] = {};
- }
- let timeCode = getTimeSlotId(session.startsAt);
- sessionsByRoom[roomId][timeCode] = session;
- }
- let sessionsByRoomSorted = {};
- Object.keys(sessionsByRoom).sort().forEach(function(key) {
- sessionsByRoomSorted[key] = sessionsByRoom[key];
- });
- return sessionsByRoomSorted;
-}
-
-function getTimeSlotId(timeString)
-{
- let date = new Date(timeString);
- let time = date.toLocaleTimeString('en-US', {
- hour12: false,
- hour: '2-digit',
- minute: '2-digit',
- });
- let id = time.replace(':','');
- return parseInt(id);
-}
\ No newline at end of file
diff --git a/src/_data/speakers.json b/src/_data/speakers.json
deleted file mode 100644
index b24dcc8..0000000
--- a/src/_data/speakers.json
+++ /dev/null
@@ -1,1014 +0,0 @@
-{
- "f6ace45d-2396-4df6-8310-0c8143241e44": {
- "id": "f6ace45d-2396-4df6-8310-0c8143241e44",
- "firstName": "Amy",
- "lastName": "Chess",
- "bio": "Amy is a Senior UX Researcher at Cox Automotive who focuses her research exclusively on enterprise software. During her career as a UX Researcher, she has become increasingly interested in \"Platform UX\"---an abstract area that isn't concerned with designs, screens, or even workflows in many cases---and is instead concerned with measuring user expectations around the access, manipulation, and propagation of data across large enterprise systems. ",
- "tagLine": "Senior UX Researcher, Cox Automotive",
- "profilePicture": "https://sessionize.com/image?f=e9afdd02f918f318ddd7c3c5c7a2d7b9,400,400,True,False,c11721b4-9844-4ab7-b65e-5faa3844db21.jpg",
- "isTopSpeaker": false,
- "links": [
- {
- "title": "Twitter",
- "url": "https://twitter.com/AmyChess?lang=en",
- "linkType": "Twitter",
- "name": "@AmyChess"
- }
- ],
- "sessions": [
- 60848
- ],
- "fullName": "Amy Chess",
- "categoryItems": [],
- "questionAnswers": []
- },
- "7fa32c2a-fd8f-4c3e-b553-73dd8d1db91d": {
- "id": "7fa32c2a-fd8f-4c3e-b553-73dd8d1db91d",
- "firstName": "Annmarie",
- "lastName": "Curley",
- "bio": "Annmarie Curley is a senior project management consultant with over 20 years Information Technology experience. She has extensive experience managing global teams and complex projects across financial, healthcare, and IT consulting services sectors. For the past 8+ years, Annmarie has assisted clients with strategic IT planning, project management, project risk analysis, business process improvement, business analysis, team leadership, organizational change management, project management best practices, and software development process improvement.\r\n\r\nAnnmarie has a B.S. in Applied Computing, from University of Ulster, Ireland and has a Project Management Professional (PMP)\r\naccreditation from the Project Management Institute (PMI).\r\n\r\n",
- "tagLine": "Newgrange IT Consulting, LLC",
- "profilePicture": "https://sessionize.com/image?f=006cdd624620951796f29f559d4900fe,400,400,True,False,2a-fd8f-4c3e-b553-73dd8d1db91d.421e7ef7-744f-4cd7-875c-54c752fb2f4c.png",
- "isTopSpeaker": false,
- "links": [
- {
- "title": "Company Website",
- "url": "http://www.newgrangeitconsulting.com/",
- "linkType": "Company_Website",
- "name": "newgrangeitconsulting.com"
- }
- ],
- "sessions": [
- 60860
- ],
- "fullName": "Annmarie Curley",
- "categoryItems": [],
- "questionAnswers": []
- },
- "cb70d1bd-13ab-4a16-abfd-cf48b37ec30d": {
- "id": "cb70d1bd-13ab-4a16-abfd-cf48b37ec30d",
- "firstName": "Bob",
- "lastName": "Crowley",
- "bio": "Bob Crowley is a Senior Software Developer for Stone Coast Fund Services where he builds solutions in the .Net and Azure ecosystems. Having gained so much from the community himself, he is trying to give a little back as an occasional presenter at his local Casco Bay .Net User Group, Boston Code Camp and Vermont Code Camp.\r\n\r\nFind Bob on twitter @contrivedex and see his occasional ramblings on contrivedexample.com.",
- "tagLine": "Sr. Software Developer, .Net",
- "profilePicture": "https://sessionize.com/image?f=89fd8297b301740264d69c011d45de39,400,400,True,False,bd-13ab-4a16-abfd-cf48b37ec30d.24b187ae-c9c9-4580-ad0e-ca856b8912ee.png",
- "isTopSpeaker": false,
- "links": [
- {
- "title": "Twitter",
- "url": "https://twitter.com/contrivedex",
- "linkType": "Twitter",
- "name": "@contrivedex"
- },
- {
- "title": "Blog",
- "url": "https://contrivedexample.com",
- "linkType": "Blog",
- "name": "contrivedexample.com"
- },
- {
- "title": "Company Website",
- "url": "https://contrivedexample.com",
- "linkType": "Company_Website",
- "name": "contrivedexample.com"
- },
- {
- "title": "LinkedIn",
- "url": "https://www.linkedin.com/in/contrivedexample",
- "linkType": "LinkedIn",
- "name": "LinkedIn"
- }
- ],
- "sessions": [
- 43893
- ],
- "fullName": "Bob Crowley",
- "categoryItems": [],
- "questionAnswers": []
- },
- "8c4f5309-d724-4b11-8934-45d6e16290e3": {
- "id": "8c4f5309-d724-4b11-8934-45d6e16290e3",
- "firstName": "Bradley",
- "lastName": "Holt",
- "bio": "Bradley Holt is the program manager for developer advocacy at the Center for Open-Source Data and AI Technologies (CODAIT) within IBM. He is the author of several publications including Scaling CouchDB and Writing and Querying MapReduce Views in CouchDB, both published by O’Reilly Media. He has spoken at numerous conferences, including Abstractions, ApacheCon, the O’Reilly Software Architecture Conference, O’Reilly Fluent, ConFoo, Node.js Interactive, php[tek], ZendCon, and OSCON. Bradley writes and speaks about topics such as Apache CouchDB, PouchDB, Offline First, Node.js, and Domain-Driven Design.",
- "tagLine": "Program Manager, Developer Advocacy, Center for Open-Source Data and AI Technologies (CODAIT), IBM",
- "profilePicture": "https://sessionize.com/image?f=3361d6c8e5c199ca448da92b0b7e9c16,400,400,True,False,42f25f45-c282-45b1-847b-390af89383f8.jpg",
- "isTopSpeaker": false,
- "links": [
- {
- "title": "Twitter",
- "url": "https://twitter.com/BradleyHolt",
- "linkType": "Twitter",
- "name": "@BradleyHolt"
- },
- {
- "title": "Blog",
- "url": "https://medium.com/@BradleyHolt",
- "linkType": "Blog",
- "name": "medium.com"
- },
- {
- "title": "Company Website",
- "url": "http://codait.org/",
- "linkType": "Company_Website",
- "name": "codait.org"
- }
- ],
- "sessions": [
- 60842
- ],
- "fullName": "Bradley Holt",
- "categoryItems": [],
- "questionAnswers": []
- },
- "117957eb-b225-4f97-9850-aa04c429ae43": {
- "id": "117957eb-b225-4f97-9850-aa04c429ae43",
- "firstName": "Brie",
- "lastName": "Hoblin",
- "bio": "Brie Hoblin is the founder of Sage Logik, a small QA consulting company with a wide variety of clients. Brie has a Bachelor's degree in Web Development & Design from Champlain College, and has experience both as a web developer and a QA Engineer. She started Sage Logik in 2016, and currently volunteers for both Code for BTV and Burlington Code. She enjoys giving presentations and teaching classes about all things QA. ",
- "tagLine": "QA Consultant",
- "profilePicture": "https://sessionize.com/image?f=950cb5ce1a78fe1df3d6f6022a5c5988,400,400,True,False,eb-b225-4f97-9850-aa04c429ae43.50953f31-b017-4516-97cd-41274bc3c72e.jpg",
- "isTopSpeaker": false,
- "links": [],
- "sessions": [
- 62125
- ],
- "fullName": "Brie Hoblin",
- "categoryItems": [],
- "questionAnswers": []
- },
- "d806bd8a-0c53-4a4f-8ea2-657ac1dd5d69": {
- "id": "d806bd8a-0c53-4a4f-8ea2-657ac1dd5d69",
- "firstName": "Chris",
- "lastName": "Bowen",
- "bio": "I'm an old friend of VT Code Camp, and look forward to a return after too long an absence! Currently a Cloud Architect at Microsoft, focused on Azure AppDev with our enterprise customers, in my prior Microsoft role I was part of the Evangelism team, touring the northeast in support of the developer community. In my years before Microsoft, I've been an architect and developer with companies including Monster.com, Staples, and others.",
- "tagLine": "Cloud Architect, Microsoft",
- "profilePicture": "https://sessionize.com/image?f=a51f92f70a7f109c301998db134c220e,400,400,True,False,8a-0c53-4a4f-8ea2-657ac1dd5d69.bb9a3cfc-3721-447f-8d00-949201e75011.jpg",
- "isTopSpeaker": false,
- "links": [
- {
- "title": "Twitter",
- "url": "https://twitter.com/chrisbowen",
- "linkType": "Twitter",
- "name": "@chrisbowen"
- },
- {
- "title": "LinkedIn",
- "url": "https://www.linkedin.com/in/cbowen/",
- "linkType": "LinkedIn",
- "name": "LinkedIn"
- },
- {
- "title": "Company Website",
- "url": "https://www.microsoft.com",
- "linkType": "Company_Website",
- "name": "microsoft.com"
- }
- ],
- "sessions": [
- 62122
- ],
- "fullName": "Chris Bowen",
- "categoryItems": [],
- "questionAnswers": []
- },
- "215bbd42-ce3a-4744-af1f-7e5f0f30d620": {
- "id": "215bbd42-ce3a-4744-af1f-7e5f0f30d620",
- "firstName": "Chris",
- "lastName": "Woodruff",
- "bio": "Chris Woodruff (or Woody as he is commonly known as) has a degree in Computer Science from Michigan State University’s College of Engineering. Woody has been developing and architecting software solutions for over 20 years and has worked in many different platforms and tools. He is a community leader, helping such events as GRDevNight, GRDevDay, West Michigan Day of .NET and CodeMash. He was also instrumental in bringing the popular Give Camp event to Western Michigan where technology professionals lend their time and development expertise to assist local non-profits. As a speaker and podcaster, Woody has spoken and discussed a variety of topics, including database design and open source. He has been a Microsoft MVP in Visual C#, Data Platform and SQL and was recognized in 2010 as one of the top 20 MVPs world-wide. Woody is a Developer Advocate for JetBrains and evangelizes .NET, .NET Core and JetBrains' products in North America.",
- "tagLine": "JetBrains",
- "profilePicture": "https://sessionize.com/image?f=522478189601cc4d8028a3c6d647ca63,400,400,True,False,42-ce3a-4744-af1f-7e5f0f30d620.05ae629a-c0cc-4fd2-8ed4-f0ee04cca5d8.png",
- "isTopSpeaker": false,
- "links": [
- {
- "title": "Twitter",
- "url": "https://twitter.com/cwoodruff",
- "linkType": "Twitter",
- "name": "@cwoodruff"
- },
- {
- "title": "LinkedIn",
- "url": "https://www.linkedin.com/in/chriswoodruff/",
- "linkType": "LinkedIn",
- "name": "LinkedIn"
- },
- {
- "title": "Blog",
- "url": "http://www.chriswoodruff.com/blog/",
- "linkType": "Blog",
- "name": "chriswoodruff.com"
- },
- {
- "title": "Company Website",
- "url": "https://www.jetbrains.com/",
- "linkType": "Company_Website",
- "name": "jetbrains.com"
- }
- ],
- "sessions": [
- 56627
- ],
- "fullName": "Chris Woodruff",
- "categoryItems": [],
- "questionAnswers": []
- },
- "43224090-85a3-4048-904f-3ac8c8954085": {
- "id": "43224090-85a3-4048-904f-3ac8c8954085",
- "firstName": "Floyd",
- "lastName": "Hilton",
- "bio": "Floyd Hilton, often described as having a “calming effect” on the hectic world of software, has worked in many domains including semiconductor manufacturing, financial aid delivery, energy conservation and healthcare.\r\n\r\nFloyd enjoys renovating and extending existing custom software products. He uses testing and automation to get the most out of the clients’ software instead of discarding and re-writing. \r\n\r\nFloyd loves helping others discover the awesome career of being a software developer. He co-founded a local user group, mentors high school and adult programmers, and is a speaker at conferences. \r\n\r\nWhen he’s not building software, Floyd can be found building houses or riding anything with two wheels.\r\n",
- "tagLine": "Chief Code Renovator at Tacoma Software",
- "profilePicture": "https://sessionize.com/image?f=4d37e1a7ec710fb377de5dadd74d59a9,400,400,True,False,90-85a3-4048-904f-3ac8c8954085.6820f5e8-fec3-4bda-bae4-de4afdff15cf.jpg",
- "isTopSpeaker": false,
- "links": [
- {
- "title": "Twitter",
- "url": "https://twitter.com/fhilton",
- "linkType": "Twitter",
- "name": "@fhilton"
- },
- {
- "title": "Blog",
- "url": "http://www.floydhilton.com/",
- "linkType": "Blog",
- "name": "floydhilton.com"
- },
- {
- "title": "Company Website",
- "url": "http://www.tacomasoftware.com/",
- "linkType": "Company_Website",
- "name": "tacomasoftware.com"
- }
- ],
- "sessions": [
- 46608
- ],
- "fullName": "Floyd Hilton",
- "categoryItems": [],
- "questionAnswers": []
- },
- "b2dae93f-c9a3-4a9c-9faa-922920203190": {
- "id": "b2dae93f-c9a3-4a9c-9faa-922920203190",
- "firstName": "Frank",
- "lastName": "Canovatchel",
- "bio": "I am Associate Professor at Champlain College teaching introductory and advanced Web, MIS, Economics and Finance courses.\r\nAfter I attained my Master’s Degree from Fordham University in the early 1980's, I began my career as a financial analyst on Wall Street. There I developed financial models using the first IBM AT and XT computers. After leaving Wall Street, I began my career teaching Economics, Computer Applications and Web Programming. My interests in Web technology includes Systems Analysis, XML, PHP, JavaScript, database development and the business of technological innovation. In economics my interests include economic development, commodities market pricing and financial derivatives as well as international finance and trade.\r\nIn 2006, I co-authored my first book with noted author Patrick Carey, “New Perspectives on JavaScript Programming”. I am currently working on a series of economics books for the economics-non-major as well books on database design, statistical analysis of big data and the financial analysis of technological innovation.\r\nRealizing that economics and not technology was my passion, I went back for a PhD in Economics at Fordham University. I began in the Program in 2006 and graduated in May of 2015. It is while in this program I feel I really grew as a student, instructor and as a person. I was placed on academic probation twice and twice I came out stronger and better. What allowed me to be successful was realizing I needed to tab into a huge resource: my professors. When I did that I not was never on probation again. Had I done this sooner I really believe I would never have been on probation in the first place. Their insights and mentoring were a huge reason why I completed the Program.\r\nOn the lighter side of things, I live in Williston, Vermont. I also enjoy hunting, golf and playing chess. I love sports and I am an avid Mets fan. I also love the Yankees, Jets, Giants, the Islanders, the Rangers, the Nets and the Knicks. You must be wondering how can I route for these combinations of teams? I just love sports and enjoy routing for my NY teams. Since moving to Vermont in the 1990’s I have become an avid UVM basketball fan.\r\n",
- "tagLine": "Champlain College",
- "profilePicture": "https://sessionize.com/image?f=e2882d996332fb5077ee122a7706fe75,400,400,True,False,3f-c9a3-4a9c-9faa-922920203190.ddd18b01-9b66-47ba-83ee-db599ce07988.jpg",
- "isTopSpeaker": false,
- "links": [
- {
- "title": "Company Website",
- "url": "http://www.champlain.edu",
- "linkType": "Company_Website",
- "name": "champlain.edu"
- }
- ],
- "sessions": [
- 43510
- ],
- "fullName": "Frank Canovatchel",
- "categoryItems": [],
- "questionAnswers": []
- },
- "9e6e85d8-9546-4a42-90f2-b206ac7f55b8": {
- "id": "9e6e85d8-9546-4a42-90f2-b206ac7f55b8",
- "firstName": "gleb",
- "lastName": "bahmutov",
- "bio": "Gleb Bahmutov is JavaScript ninja, image processing expert and software quality fanatic. During the day Gleb is making the web a better place as VP of Engineering at Cypress.io. At night he is fighting software bugs and blogs about it at https://glebbahmutov.com/blog/. Microsoft MVP for Open Source contributions.",
- "tagLine": "JavaScript ninja, image processing expert, software quality fanatic",
- "profilePicture": "https://sessionize.com/image?f=d71404ae32f4995ebc657eec724b0dba,400,400,True,False,d8-9546-4a42-90f2-b206ac7f55b8.5c9b09f2-b86d-44db-892a-f4c744d62fa6.jpg",
- "isTopSpeaker": false,
- "links": [
- {
- "title": "Twitter",
- "url": "https://twitter.com/bahmutov",
- "linkType": "Twitter",
- "name": "@bahmutov"
- },
- {
- "title": "LinkedIn",
- "url": "https://www.linkedin.com/in/bahmutov/",
- "linkType": "LinkedIn",
- "name": "LinkedIn"
- },
- {
- "title": "Blog",
- "url": "https://glebbahmutov.com/blog/",
- "linkType": "Blog",
- "name": "glebbahmutov.com"
- },
- {
- "title": "Company Website",
- "url": "https://www.cypress.io/",
- "linkType": "Company_Website",
- "name": "cypress.io"
- }
- ],
- "sessions": [
- 59050
- ],
- "fullName": "gleb bahmutov",
- "categoryItems": [],
- "questionAnswers": []
- },
- "f90bb35b-2985-4f90-a8ef-3fe118c73afa": {
- "id": "f90bb35b-2985-4f90-a8ef-3fe118c73afa",
- "firstName": "John",
- "lastName": "Cicilio",
- "bio": "John Cicilio works as an architect at MyWebGrocer. He has been working in systems and software for 30 years. John has a passion for science, mathematics and technology. \"When I met my first Pascal compiler, it was love. I truly enjoy the wonder of the history of science and mathematics and feel fortunate to be a part of this great human adventure in computation and abstract knowledge systems.\"",
- "tagLine": "contemplate non-being",
- "profilePicture": "https://sessionize.com/image?f=21fe82cbed86c6e0729ac64fd5e0dadc,400,400,True,False,9983dedf-af05-4cb1-bc48-fa90cd53b800.jpg",
- "isTopSpeaker": false,
- "links": [],
- "sessions": [
- 61161
- ],
- "fullName": "John Cicilio",
- "categoryItems": [],
- "questionAnswers": []
- },
- "36327dbc-96aa-40ec-9d4b-f4a7cb008203": {
- "id": "36327dbc-96aa-40ec-9d4b-f4a7cb008203",
- "firstName": "John",
- "lastName": "Waterman, PMP, GISP",
- "bio": "Technologist living in Burke, John, on occasion, wanders out of the Northeast Kingdom.\r\n\r\nhttps://www.linkedin.com/in/johnrobertwaterman/\r\n",
- "tagLine": "Self-proclaimed SEO guru",
- "profilePicture": "https://sessionize.com/image?f=9606e8c2a6f6a5a58007f588656f45f1,400,400,True,False,ca37ea80-1372-42be-b191-440b34196905.jpg",
- "isTopSpeaker": false,
- "links": [],
- "sessions": [
- 43776
- ],
- "fullName": "John Waterman, PMP, GISP",
- "categoryItems": [],
- "questionAnswers": []
- },
- "7d58def3-8136-4555-80e2-5834ef8d24c7": {
- "id": "7d58def3-8136-4555-80e2-5834ef8d24c7",
- "firstName": "Josh",
- "lastName": "Lee",
- "bio": "With over 15 years of web industry experience, Josh Lee is an expert in Content Management, ecommerce, and SaaS platforms. He is passionate about making the web and web development skills more universally accessible. Josh is a consultant and also the organizer for the Burlington WordPress meetup.",
- "tagLine": "Accessible, open source solutions",
- "profilePicture": "https://sessionize.com/image?f=8de0199398b7cf281b7e27bccb2da75c,400,400,True,False,342ad8e2-e943-4c79-99c8-c7ce88511257.jpg",
- "isTopSpeaker": false,
- "links": [
- {
- "title": "Twitter",
- "url": "https://twitter.com/joshleecreates",
- "linkType": "Twitter",
- "name": "@joshleecreates"
- },
- {
- "title": "Blog",
- "url": "https://blog.joshuamlee.com",
- "linkType": "Blog",
- "name": "blog.joshuamlee.com"
- }
- ],
- "sessions": [
- 61725
- ],
- "fullName": "Josh Lee",
- "categoryItems": [],
- "questionAnswers": []
- },
- "282a4701-f128-4b1d-bd67-da5d1f8b3eb0": {
- "id": "282a4701-f128-4b1d-bd67-da5d1f8b3eb0",
- "firstName": "Julie",
- "lastName": "Lerman",
- "bio": "Julie Lerman is a Microsoft Regional Director, Docker Captain and long-time Microsoft MVP who now counts her years as a coder in decades. She makes her living as a mentor and consultant to software teams around the world. You can find Julie presenting on Entity Framework, Domain Driven Design and other topics at user groups and conferences around the world. Julie blogs at thedatafarm.com/blog, is the author of the highly acclaimed “Programming Entity Framework” books, the MSDN Magazine Data Points column and popular videos on Pluralsight.com. Follow Julie on twitter at julielerman.",
- "tagLine": "Software Coach, Pluralsight Author, .NET & DDD",
- "profilePicture": "https://sessionize.com/image?f=2b2083b12c35d98319ab6b0cbfec38cb,400,400,True,False,01-f128-4b1d-bd67-da5d1f8b3eb0.8641eaab-6eb1-4ccc-9b93-7eaf968ef034.jpg",
- "isTopSpeaker": false,
- "links": [
- {
- "title": "Twitter",
- "url": "http://twitter.com/julielerman",
- "linkType": "Twitter",
- "name": "@julielerman"
- },
- {
- "title": "Blog",
- "url": "http://thedatafarm.com/blog",
- "linkType": "Blog",
- "name": "thedatafarm.com"
- },
- {
- "title": "Company Website",
- "url": "http://thedatafarm.com",
- "linkType": "Company_Website",
- "name": "thedatafarm.com"
- }
- ],
- "sessions": [
- 63954
- ],
- "fullName": "Julie Lerman",
- "categoryItems": [],
- "questionAnswers": []
- },
- "19feab8f-0a9c-4ba4-ae38-28be647067ff": {
- "id": "19feab8f-0a9c-4ba4-ae38-28be647067ff",
- "firstName": "Kash",
- "lastName": "Kundargi",
- "bio": "Kash has worked in the IT industry for more than nine years. Her experience with various IT projects and multicultural teams has given her a diverse perspective towards people management. She has gained an excellent skill-set in Leadership, Project Management, and Business Analysis. She has few tips and tricks on Leadership that would help any aspiring leader to achieve trust and confidence in their team.",
- "tagLine": "Senior Analyst ",
- "profilePicture": null,
- "isTopSpeaker": false,
- "links": [],
- "sessions": [
- 61572
- ],
- "fullName": "Kash Kundargi",
- "categoryItems": [],
- "questionAnswers": []
- },
- "2a1eb302-46ba-4952-873e-8adcabf5399c": {
- "id": "2a1eb302-46ba-4952-873e-8adcabf5399c",
- "firstName": "Kendall",
- "lastName": "Fortney",
- "bio": "Design, data and problem-solving has always been something that has interested me. Located in Burlington, Vermont, for the last 8 years I have worked in software in a variety of industries. Currently I am the first Data Innovation Fellow for the Vermont Center of Geographic Information and the organizer of this joint geospatial and data science conference, GeoDatSci. Each of these experiences taught me the importance of data-driven decision making and creating compelling stories.\r\n\r\nSelf-taught in R and Python for data science, machine learning and visualization, I have published articles in Medium and led local Data Scientist Meetups to help others. For me the merging of my fine art and design skills into data analysis, visualization and 3D modelling is a natural progression and reflects the field’s direction in general. ",
- "tagLine": "Data Artist",
- "profilePicture": "https://sessionize.com/image?f=76fce24775e1e0f82c6b99a7ec6a4713,400,400,True,False,3fd294d4-43db-4689-899d-9aa2a1340b41.jpg",
- "isTopSpeaker": false,
- "links": [
- {
- "title": "Company Website",
- "url": "http://kendallfortney.com/",
- "linkType": "Company_Website",
- "name": "kendallfortney.com"
- }
- ],
- "sessions": [
- 61763
- ],
- "fullName": "Kendall Fortney",
- "categoryItems": [],
- "questionAnswers": []
- },
- "f880bdd0-7272-4c54-be93-4e32ef9fd308": {
- "id": "f880bdd0-7272-4c54-be93-4e32ef9fd308",
- "firstName": "Kip",
- "lastName": "Steele",
- "bio": "kip moved to Vermont from NYC 6 years ago and learned a lot about the Vermont developer network",
- "tagLine": "Making software releases boring since 1996",
- "profilePicture": "https://sessionize.com/image?f=49360fad10ae5d7f4684dc9c20db2fae,400,400,True,False,01e4fd41-1ff4-4069-abb2-03ece1df8c77.jpg",
- "isTopSpeaker": false,
- "links": [
- {
- "title": "Twitter",
- "url": "https://twitter.com/QualityNinja",
- "linkType": "Twitter",
- "name": "@QualityNinja"
- },
- {
- "title": "Company Website",
- "url": "https://www.uvmhealth.org/Pages/home.aspx",
- "linkType": "Company_Website",
- "name": "uvmhealth.org"
- }
- ],
- "sessions": [
- 44472
- ],
- "fullName": "Kip Steele",
- "categoryItems": [],
- "questionAnswers": []
- },
- "165e172f-0221-4697-937a-4ba2b667d39b": {
- "id": "165e172f-0221-4697-937a-4ba2b667d39b",
- "firstName": "Kyle",
- "lastName": "Mitofsky",
- "bio": "Kyle's been writing software for the last six years professionally at the Vermont Department of Health, and recreationally at code camps, Meetups, and online. He's currently serving as the Team Technical Lead for our Software Development unit.\r\n\r\nKyle's interested in web, desktop, and mobile development technologies, especially if they're on the .NET stack",
- "tagLine": "Software Development Tech Lead",
- "profilePicture": "https://sessionize.com/image?f=55cde8ee120c8c243b0b142ba4db6a02,400,400,True,False,55db796c-e2ac-4d0a-9de7-5d7af464c7fc.jpg",
- "isTopSpeaker": false,
- "links": [
- {
- "title": "Twitter",
- "url": "https://twitter.com/KyleMitBTV",
- "linkType": "Twitter",
- "name": "@KyleMitBTV"
- },
- {
- "title": "Blog",
- "url": "http://www.codingeverything.com/",
- "linkType": "Blog",
- "name": "codingeverything.com"
- },
- {
- "title": "Company Website",
- "url": "http://humanresources.vermont.gov/",
- "linkType": "Company_Website",
- "name": "humanresources.vermont.gov"
- }
- ],
- "sessions": [
- 61706
- ],
- "fullName": "Kyle Mitofsky",
- "categoryItems": [],
- "questionAnswers": []
- },
- "f1dc06b1-c3d6-4928-897e-7a2bb66d6476": {
- "id": "f1dc06b1-c3d6-4928-897e-7a2bb66d6476",
- "firstName": "Larry",
- "lastName": "Keyes",
- "bio": "Larry Keyes works with clients and companies in education, healthcare, research, and government doing database and software development, network management, workflow and customer service management. Currently he is a member of the IT team at Tetra Tech ARD; an engineering and international development company with clients and projects throughout the world. ",
- "tagLine": "Tetra Tech ARD ",
- "profilePicture": "https://sessionize.com/image?f=1b7b6b27f248e52f23937655cbd1375a,400,400,True,False,b1-c3d6-4928-897e-7a2bb66d6476.21ab3e99-bc7e-42aa-ac85-836b9f7b3915.jpg",
- "isTopSpeaker": false,
- "links": [
- {
- "title": "Twitter",
- "url": "https://twitter.com/lkeyes70",
- "linkType": "Twitter",
- "name": "@lkeyes70"
- },
- {
- "title": "Blog",
- "url": "http://www.techfornonprofits.com",
- "linkType": "Blog",
- "name": "techfornonprofits.com"
- },
- {
- "title": "Company Website",
- "url": "http://www.tetratech.com/en/international-development",
- "linkType": "Company_Website",
- "name": "tetratech.com"
- }
- ],
- "sessions": [
- 44470
- ],
- "fullName": "Larry Keyes",
- "categoryItems": [],
- "questionAnswers": []
- },
- "393c3111-87ea-4314-b007-6edfa8fa0a63": {
- "id": "393c3111-87ea-4314-b007-6edfa8fa0a63",
- "firstName": "Linus",
- "lastName": "Falck-Ytter",
- "bio": "Linus grew up splitting time between Germany and the United States before his family made an exciting life decision by settling in Cleveland, Ohio. He has a degree in Computer Science from 'The' Ohio State University and now lives in Cambridge with his cat.",
- "tagLine": "Code Janitor",
- "profilePicture": "https://sessionize.com/image?f=cc3d25b86c99af1d108ae5070f22c043,400,400,True,False,697a9250-35a6-41ea-bed5-d4947725940e.jpg",
- "isTopSpeaker": false,
- "links": [
- {
- "title": "Twitter",
- "url": "https://twitter.com/lifayt",
- "linkType": "Twitter",
- "name": "@lifayt"
- },
- {
- "title": "Blog",
- "url": "https://twitter.com/lifayt",
- "linkType": "Blog",
- "name": "twitter.com"
- }
- ],
- "sessions": [
- 59572
- ],
- "fullName": "Linus Falck-Ytter",
- "categoryItems": [],
- "questionAnswers": []
- },
- "29d505af-541b-404d-9eb5-f1528a6a5645": {
- "id": "29d505af-541b-404d-9eb5-f1528a6a5645",
- "firstName": "Lisa",
- "lastName": "Crispin",
- "bio": "Lisa Crispin is the co-author, with Janet Gregory, of More Agile Testing: Learning Journeys for the Whole Team (2014), Agile Testing: A Practical Guide for Testers and Agile Teams (2009), the LiveLessons Agile Testing Essentials video course, and “The Whole Team Approach to Agile Testing” 3-day training course offered through the Agile Testing Fellowship. Lisa was voted by her peers as the Most Influential Agile Testing Professional Person at Agile Testing Days in 2012. She is a testing advocate working at mabl to explore leading practices in testing in the software community. Please visit www.lisacrispin.com and www.agiletester.ca for more.\r\n\r\n",
- "tagLine": "Co-leader of Agile Testing Fellowship. Testing advocate at mabl.",
- "profilePicture": "https://sessionize.com/image?f=fbbee1d44ec8c7913996a1b3690c0102,400,400,True,False,dadbecd0-9fc0-4be6-9eba-3fc7f0b7e904.jpg",
- "isTopSpeaker": false,
- "links": [],
- "sessions": [
- 64037
- ],
- "fullName": "Lisa Crispin",
- "categoryItems": [],
- "questionAnswers": []
- },
- "4870cd32-f9a5-492f-a1d5-6aa41a07b0d7": {
- "id": "4870cd32-f9a5-492f-a1d5-6aa41a07b0d7",
- "firstName": "Malina",
- "lastName": "Kirn",
- "bio": "Malina Kirn is an architect at Dealer.com and founder of a local startup. She holds a doctorate in scientific computation from the University of Maryland and has eleven years of academic research experience in computational physics. She's worked in the software engineering industry for the past seven years, specializing in big data applications.",
- "tagLine": "Computer of all the things",
- "profilePicture": "https://sessionize.com/image?f=c4aab8e81c9cbca55229b7db3612ed29,400,400,True,False,32-f9a5-492f-a1d5-6aa41a07b0d7.bf98d752-4b0b-45f7-9005-4e94f92d0738.jpg",
- "isTopSpeaker": false,
- "links": [],
- "sessions": [
- 56954
- ],
- "fullName": "Malina Kirn",
- "categoryItems": [],
- "questionAnswers": []
- },
- "c18dd4c0-e07d-4f0d-9a20-f9f632111891": {
- "id": "c18dd4c0-e07d-4f0d-9a20-f9f632111891",
- "firstName": "Mandy",
- "lastName": "Swithenbank",
- "bio": "An advocate for user experience and web accessibility, Mandy has worn many hats over the course of her career-- from implementing designs in Angular and React, to conducting and analyzing usability tests, to evaluating accessibility compliance and mentoring development teams. Now living in Ottawa, Ontario, she is happy to return to Burlington for a fun day of knowledge sharing and learning.",
- "tagLine": "UX Developer",
- "profilePicture": "https://sessionize.com/image?f=277aa7c29b73d02f57b4f63d3e2dac92,400,400,True,False,b16b6faa-771f-43fc-9a11-f355940bc17c.jpg",
- "isTopSpeaker": false,
- "links": [
- {
- "title": "Twitter",
- "url": "https://twitter.com/UsabilityKitty",
- "linkType": "Twitter",
- "name": "@UsabilityKitty"
- },
- {
- "title": "Blog",
- "url": "http://www.usabilitykitty.com/",
- "linkType": "Blog",
- "name": "usabilitykitty.com"
- }
- ],
- "sessions": [
- 43809
- ],
- "fullName": "Mandy Swithenbank",
- "categoryItems": [],
- "questionAnswers": []
- },
- "020c690b-685a-4a5d-803e-f45e328988bf": {
- "id": "020c690b-685a-4a5d-803e-f45e328988bf",
- "firstName": "Micah",
- "lastName": "Mutrux",
- "bio": "Micah Mutrux is the Project Delivery Lead for Code for BTV, the Vermont-local Code for America Brigade. His role has him finding new project work for the brigade, and then overseeing that the teams working on the projects deliver to our standards, in the end. Micah has been a volunteer technologist for many years, having started with Random Hacks of Kindness. Micah is excited by the possibilities that come from many communities working together to solve big problems by sharing code and strategies.",
- "tagLine": "Working on things that matter",
- "profilePicture": "https://sessionize.com/image?f=6114629b671918949d8f648dde46a263,400,400,True,False,0b-685a-4a5d-803e-f45e328988bf.905f9ad6-3b62-44b8-b804-3eb4b6125ca9.jpg",
- "isTopSpeaker": false,
- "links": [
- {
- "title": "Twitter",
- "url": "https://twitter.com/CodeForBTV",
- "linkType": "Twitter",
- "name": "@CodeForBTV"
- },
- {
- "title": "Blog",
- "url": "http://codeforbtv.org/blog",
- "linkType": "Blog",
- "name": "codeforbtv.org"
- },
- {
- "title": "Company Website",
- "url": "http://codeforbtv.org",
- "linkType": "Company_Website",
- "name": "codeforbtv.org"
- }
- ],
- "sessions": [
- 62125
- ],
- "fullName": "Micah Mutrux",
- "categoryItems": [],
- "questionAnswers": []
- },
- "db3aca8b-9813-480a-b9da-05614ef6759a": {
- "id": "db3aca8b-9813-480a-b9da-05614ef6759a",
- "firstName": "Mitch",
- "lastName": "Miller",
- "bio": "After completing a Ph. D. in chemistry, Mitch began his professional career as a presales application scientist at a company that created software for managing chemical information. He found his talents were well suited to software implementation projects and has been active in this field for most of his professional life. He has enjoyed stints in product definition, scientific guidance, and group management with MDL, NetGenics, LION biosciences, Symyx Technologies. For the past 8 years, he has been an independent contractor, helping scientists at many companies make better use of their data.",
- "tagLine": "Scientific Data Meister",
- "profilePicture": "https://sessionize.com/image?f=06681e22dc247bc48b567abbac085d4c,400,400,True,False,8b-9813-480a-b9da-05614ef6759a.b0e97d45-3700-474d-b060-3fbd48979b04.jpg",
- "isTopSpeaker": false,
- "links": [
- {
- "title": "Company Website",
- "url": "https://thinkscience.us",
- "linkType": "Company_Website",
- "name": "thinkscience.us"
- }
- ],
- "sessions": [
- 60257
- ],
- "fullName": "Mitch Miller",
- "categoryItems": [],
- "questionAnswers": []
- },
- "00bc8cd6-45d1-4802-bf48-e3ba8af5a875": {
- "id": "00bc8cd6-45d1-4802-bf48-e3ba8af5a875",
- "firstName": "Murat K.",
- "lastName": "Gungor",
- "bio": "Murat has been teaching at Champlain College since 2016 Fall, teaching Software Engineering courses, including Software Testing, Software Refactoring, Software Requirement Engineering and Software Design Pattern Subjects. \r\n\r\nPrior to Champlain College, he worked in the software industry as a software developer, project manager, and other management positions. ",
- "tagLine": "Assistant Professor at Champlain College",
- "profilePicture": "https://sessionize.com/image?f=0fb9cea211cb8f99a2c5b49669f5b9c9,400,400,True,False,29cb5d5f-ff03-40f7-92ee-39b99ba64ce9.jpg",
- "isTopSpeaker": false,
- "links": [
- {
- "title": "Twitter",
- "url": "https://twitter.com/mkgungor",
- "linkType": "Twitter",
- "name": "@mkgungor"
- },
- {
- "title": "Blog",
- "url": "http://mkgungor.com",
- "linkType": "Blog",
- "name": "mkgungor.com"
- },
- {
- "title": "Company Website",
- "url": "https://www.champlain.edu/",
- "linkType": "Company_Website",
- "name": "champlain.edu"
- }
- ],
- "sessions": [
- 43457
- ],
- "fullName": "Murat K. Gungor",
- "categoryItems": [],
- "questionAnswers": []
- },
- "ea58cf0c-6271-42bb-9e3a-e39dda302f11": {
- "id": "ea58cf0c-6271-42bb-9e3a-e39dda302f11",
- "firstName": "Paul",
- "lastName": "Swider",
- "bio": "Paul J. Swider is a known international speaker and the CEO of RealActivity an organization focused on streamlining healthcare and research using a proprietary blockchain and smart contract framework. He has over 25 years of proven computer science and healthcare technology experience. Paul is an accomplished author of several books, speaks internationally and still finds time to teach a programming class when he can. Paul is currently based out of the Boston area and occasionally gets to chase the tides and winds as an avid boater and sailor.",
- "tagLine": "Humanitarian, Traveler, Speaker, Code, Blockchain and Healthcare",
- "profilePicture": "https://sessionize.com/image?f=87ae32caa3ee471c43c065a32012a593,400,400,True,False,0c-6271-42bb-9e3a-e39dda302f11.f55a56cc-2798-4f52-9433-bcef19616733.jpg",
- "isTopSpeaker": false,
- "links": [
- {
- "title": "Twitter",
- "url": "http://www.twitter.com/pswider",
- "linkType": "Twitter",
- "name": "@pswider"
- },
- {
- "title": "Blog",
- "url": "http://www.paulswider.com",
- "linkType": "Blog",
- "name": "paulswider.com"
- },
- {
- "title": "Company Website",
- "url": "http://www.realactivity.io",
- "linkType": "Company_Website",
- "name": "realactivity.io"
- },
- {
- "title": "LinkedIn",
- "url": "https://www.linkedin.com/in/pswider/",
- "linkType": "LinkedIn",
- "name": "LinkedIn"
- }
- ],
- "sessions": [
- 58430
- ],
- "fullName": "Paul Swider",
- "categoryItems": [],
- "questionAnswers": []
- },
- "76f0c7d3-56ab-4fd4-8abe-4c8178ed8bc7": {
- "id": "76f0c7d3-56ab-4fd4-8abe-4c8178ed8bc7",
- "firstName": "Peter",
- "lastName": "Vile",
- "bio": "Peter Vile received his master degree from Colorado State University in computer science with a focus on software engineering specializing in distributed systems and aspect oriented middleware. Since then he has been developing web based solutions and services in the Java ecosystem in several domains such as defense, telecom and now automotive. Currently he works for Dealer.com focused on internal and external integration projects. While not chasing his two boys around he tries to stay up on messaging and reactive systems and is currently dabbling in Akka and Flutter.",
- "tagLine": "Architecture can involve archeology ",
- "profilePicture": "https://sessionize.com/image?f=a301850fdf3bdd6e0eaca241b93ccea1,400,400,True,False,95b190b3-b650-4a80-b037-11f35186c8ec.jpg",
- "isTopSpeaker": false,
- "links": [
- {
- "title": "Twitter",
- "url": "https://twitter.com/twinsenf1",
- "linkType": "Twitter",
- "name": "@twinsenf1"
- }
- ],
- "sessions": [
- 61618
- ],
- "fullName": "Peter Vile",
- "categoryItems": [],
- "questionAnswers": []
- },
- "1d0c819e-1319-422d-aa11-10fd00acbdb0": {
- "id": "1d0c819e-1319-422d-aa11-10fd00acbdb0",
- "firstName": "Rama",
- "lastName": "Kocherlakota",
- "bio": "Rama has been a software developer at Dealer Dot Com for seven years. ",
- "tagLine": "Tech Lead at Dealer Dot Com / Cox Automotive",
- "profilePicture": "https://sessionize.com/image?f=10674803fda8b4f559821605dd2fdd6f,400,400,True,False,9e-1319-422d-aa11-10fd00acbdb0.c58a4acd-21f4-46dd-b950-c82b30489931.JPG",
- "isTopSpeaker": false,
- "links": [],
- "sessions": [
- 61619
- ],
- "fullName": "Rama Kocherlakota",
- "categoryItems": [],
- "questionAnswers": []
- },
- "2fbddcf9-1d92-4959-ae11-d2ed9907d5c9": {
- "id": "2fbddcf9-1d92-4959-ae11-d2ed9907d5c9",
- "firstName": "Scott",
- "lastName": "Thibault",
- "bio": "Scott has a doctorate degree in programming languages and has been working with design automation and embedded systems for more than two decades. He has been consulting with a health care startup for the past several years as a senior architect, as well as pursuing other interests including the Internet of Things and natural language processing.",
- "tagLine": "Green Mountain Computing Systems",
- "profilePicture": "https://sessionize.com/image?f=c26138c1138b9fc994595fb21411cb84,400,400,True,False,f9-1d92-4959-ae11-d2ed9907d5c9.334e0eb0-4dfa-40ee-96f3-1402d4545bc1.JPG",
- "isTopSpeaker": false,
- "links": [
- {
- "title": "Twitter",
- "url": "https://twitter.com/GreenMtnComp",
- "linkType": "Twitter",
- "name": "@GreenMtnComp"
- }
- ],
- "sessions": [
- 44859
- ],
- "fullName": "Scott Thibault",
- "categoryItems": [],
- "questionAnswers": []
- },
- "514911be-4e48-4b0a-b973-5bac6d732e58": {
- "id": "514911be-4e48-4b0a-b973-5bac6d732e58",
- "firstName": "Shawn",
- "lastName": "Vernier",
- "bio": "“Greetings from the Great White North of Ottawa, Ontario!” Even after leaving Burlington area, Shawn can't deny any excuse to come visit. With over 5 years of industry experience in Automated Quality Assurance across 3 different companies, he has many lessons to share - doubly so the pitfalls he fell into and how to avoid them. Passionate about proselytizing AQA, he cautions you to automate responsibly. \r\n\r\nAlways happy to connect but never much one for social media, find him on LinkedIn or follow his website: owlfeatherautomation.com\r\n",
- "tagLine": "Automate Responsibly",
- "profilePicture": "https://sessionize.com/image?f=6152104f0c3ed55e514ed39445ce7e2c,400,400,True,False,be-4e48-4b0a-b973-5bac6d732e58.cffaf70d-c7ba-4622-bb63-d8a0a4e062ca.jpg",
- "isTopSpeaker": false,
- "links": [
- {
- "title": "Blog",
- "url": "https://owlfeatherautomation.com/",
- "linkType": "Blog",
- "name": "owlfeatherautomation.com"
- }
- ],
- "sessions": [
- 43807
- ],
- "fullName": "Shawn Vernier",
- "categoryItems": [],
- "questionAnswers": []
- },
- "01f67d55-1faa-461b-836f-c931a49a9164": {
- "id": "01f67d55-1faa-461b-836f-c931a49a9164",
- "firstName": "Svetlana",
- "lastName": "Levitan",
- "bio": "Svetlana is a Developer Advocate with IBM Center for Open Data and Artificial Intelligence Technology. She worked on implementing SPSS statistical and machine learning components for 18 years and represented SPSS and later IBM at the Data Mining Group working on PMML and PFA standards since 2001. She holds a PhD in Applied Mathematics and MS in Computer Science from University of Maryland, College Park. Svetlana loves to share her expertise and is very excited to learn more about deep learning and other newer algorithms. ",
- "tagLine": "Developer Advocate at IBM CODAIT",
- "profilePicture": "https://sessionize.com/image?f=f5051b7ec892d0c0b80fa748361a21da,400,400,True,False,55-1faa-461b-836f-c931a49a9164.cecbe2b0-a69a-46eb-a7f3-750c08d7c301.jpg",
- "isTopSpeaker": false,
- "links": [
- {
- "title": "Company Website",
- "url": "http://ibm.com",
- "linkType": "Company_Website",
- "name": "ibm.com"
- },
- {
- "title": "Twitter",
- "url": "https://twitter.com/SvetaLevitan",
- "linkType": "Twitter",
- "name": "@SvetaLevitan"
- },
- {
- "title": "LinkedIn",
- "url": "https://www.linkedin.com/in/svetlanalevitan/",
- "linkType": "LinkedIn",
- "name": "LinkedIn"
- },
- {
- "title": "Blog",
- "url": "https://medium.com/codait/state-of-the-art-model-deployment-5c044c32455?source=friends_link&sk=976268ea5b56f655293579427e9b6c09",
- "linkType": "Blog",
- "name": "medium.com"
- }
- ],
- "sessions": [
- 61632
- ],
- "fullName": "Svetlana Levitan",
- "categoryItems": [],
- "questionAnswers": []
- },
- "547929e7-99b4-4ccb-8990-25c2c66ad3cc": {
- "id": "547929e7-99b4-4ccb-8990-25c2c66ad3cc",
- "firstName": "Tobin",
- "lastName": "Winters",
- "bio": "Coming from a background of systems administration, networking, database engineering and software development I love building things and improving systems. I have a passion for helping teams deliver value faster at higher quality.",
- "tagLine": "Director of IT, MyWebGrocer",
- "profilePicture": "https://sessionize.com/image?f=77f1bb29dd98fddb744aee9033e00b02,400,400,True,False,259ad7fb-f663-4a31-873c-17d8a338da47.jpg",
- "isTopSpeaker": false,
- "links": [
- {
- "title": "Company Website",
- "url": "https://mywebgrocer.com",
- "linkType": "Company_Website",
- "name": "mywebgrocer.com"
- }
- ],
- "sessions": [
- 61671
- ],
- "fullName": "Tobin Winters",
- "categoryItems": [],
- "questionAnswers": []
- },
- "f2abc8d7-6140-4479-8f1a-a322bd36d4a5": {
- "id": "f2abc8d7-6140-4479-8f1a-a322bd36d4a5",
- "firstName": "Udaiappa",
- "lastName": "Ramachandran",
- "bio": "Udaiappa Ramachandran (Udai) is the CTO at Akumina, is a Cloud Expert in Azure, Amazon, and Google. Organizer of New Hampshire .NET Cloud User Group (@nhcloud), and is a frequent speaker for the New England Area user group, boot camp, and code camp.",
- "tagLine": "Cloud Expert",
- "profilePicture": "https://sessionize.com/image?f=c607de6e852e6af23dd68646860fca65,400,400,True,False,d45a73b7-2254-4e8d-a878-74bd44c3e8cf.jpg",
- "isTopSpeaker": false,
- "links": [
- {
- "title": "Twitter",
- "url": "https://twitter.com/nhcloud",
- "linkType": "Twitter",
- "name": "@nhcloud"
- },
- {
- "title": "Blog",
- "url": "https://cloudycode.wordpress.com/",
- "linkType": "Blog",
- "name": "cloudycode.wordpress.com"
- },
- {
- "title": "LinkedIn",
- "url": "https://www.linkedin.com/in/udair/",
- "linkType": "LinkedIn",
- "name": "LinkedIn"
- }
- ],
- "sessions": [
- 59537
- ],
- "fullName": "Udaiappa Ramachandran",
- "categoryItems": [],
- "questionAnswers": []
- },
- "fc2f0537-e9dc-4188-8221-3e7388ac78ed": {
- "id": "fc2f0537-e9dc-4188-8221-3e7388ac78ed",
- "firstName": "Veronika",
- "lastName": "Kolesnikova",
- "bio": "Web Developer at Rightpoint \r\nPassionate about backend web development, mainly with Microsoft technologies like C#, .NET, SQL, Azure. Loves to learn new development tools and languages and share the knowledge with the community. Recently started working with Xamarin and cannot wait to provide her insights. \r\nRecently Veronika graduated with MS degree in Information Technology. In her free time, she likes dancing, traveling and practicing aerial yoga.",
- "tagLine": "Spiders are the only web developers that are happy to find bugs",
- "profilePicture": "https://sessionize.com/image?f=c17886b58de897840e662615edbeae4f,400,400,True,False,37-e9dc-4188-8221-3e7388ac78ed.e4a8b4cc-5915-40c6-b110-3a3f3caa636e.png",
- "isTopSpeaker": false,
- "links": [
- {
- "title": "Twitter",
- "url": "https://twitter.com/breakpointv16",
- "linkType": "Twitter",
- "name": "@breakpointv16"
- },
- {
- "title": "Company Website",
- "url": "https://www.rightpoint.com/",
- "linkType": "Company_Website",
- "name": "rightpoint.com"
- },
- {
- "title": "LinkedIn",
- "url": "https://www.linkedin.com/in/vkolesnikova/",
- "linkType": "LinkedIn",
- "name": "LinkedIn"
- },
- {
- "title": "Blog",
- "url": "https://veronika.dev",
- "linkType": "Blog",
- "name": "veronika.dev"
- }
- ],
- "sessions": [
- 61288
- ],
- "fullName": "Veronika Kolesnikova",
- "categoryItems": [],
- "questionAnswers": []
- },
- "3e34cfb3-2012-432a-b944-14a98afd33b8": {
- "id": "3e34cfb3-2012-432a-b944-14a98afd33b8",
- "firstName": "Zachary",
- "lastName": "Kingston",
- "bio": "Zach Kingston is a Sr. Software Developer at MyWebGrocer. He grew up in Jericho, but currently lives in St. Albans.",
- "tagLine": "Software Developer at MyWebGrocer",
- "profilePicture": "https://sessionize.com/image?f=65bf22fed435cce0406c63b49e1b2cac,400,400,True,False,b3-2012-432a-b944-14a98afd33b8.5c12d6f0-c47a-4750-bacc-4d125949b8d0.jpg",
- "isTopSpeaker": false,
- "links": [],
- "sessions": [
- 59408
- ],
- "fullName": "Zachary Kingston",
- "categoryItems": [],
- "questionAnswers": []
- }
-}
\ No newline at end of file
diff --git a/src/debug.11ty.js b/src/debug.11ty.js
index cc309af..1d3517c 100644
--- a/src/debug.11ty.js
+++ b/src/debug.11ty.js
@@ -1,12 +1,6 @@
"use strict";
module.exports = function(data) {
- var stringify = JSON.stringify({
- schedule: data.schedule,
- sessions: data.sessions,
- sessionsByRoom: data.sessionsByRoom,
- speakers: data.speakers,
- rooms: data.rooms,
- }, null, 2)
+ var stringify = JSON.stringify(data.sessionize, null, 2)
return `
${stringify}`;
};
\ No newline at end of file
diff --git a/src/schedule.njk b/src/schedule.njk
index 63643c9..9c855f2 100644
--- a/src/schedule.njk
+++ b/src/schedule.njk
@@ -15,7 +15,7 @@ description: The Vermont Code Camp schedule includes sessions on a variety of so
- {% for th in schedule.head %}
+ {% for th in sessionize.schedule.head %}
|
{{ th.title }}
{% if th.subtitle %}
@@ -27,7 +27,7 @@ description: The Vermont Code Camp schedule includes sessions on a variety of so
|
- {% for row in schedule.body %}
+ {% for row in sessionize.schedule.body %}
{% for cell in row %}
diff --git a/src/sessions.njk b/src/sessions.njk
index d4bb5e4..69bff6c 100644
--- a/src/sessions.njk
+++ b/src/sessions.njk
@@ -7,10 +7,10 @@ description: Read more about the sessions of Vermont Code Camp
{{ config.year }} {{ title }}
{{ description }}
-{% for roomId, roomSessions in sessionsByRoom %}
+{% for roomId, roomSessions in sessionize.sessionsByRoom %}
- {% set room = rooms[roomId] %}
+ {% set room = sessionize.rooms[roomId] %}
{{ room.name }}
diff --git a/src/speakers.njk b/src/speakers.njk
index b7aa950..84c8385 100644
--- a/src/speakers.njk
+++ b/src/speakers.njk
@@ -7,7 +7,7 @@ description: Read more about the Vermont Code Camp speakers.
{{ config.year }} {{ title }}
{{ description }}
-{% for speakerId, speaker in speakers %}
+{% for speakerId, speaker in sessionize.speakers %}
{{ speaker.fullName }}
{% for link in speaker.links %}