Skip to content

Commit a5fd1d6

Browse files
committed
january slides
1 parent fd28c97 commit a5fd1d6

File tree

3 files changed

+100
-48
lines changed

3 files changed

+100
-48
lines changed

.vscode/database.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{}

index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<head>
44
<meta charset="UTF-8">
55
<meta name="viewport" content="width=device-width initial-scale=1 user-scalable=no" />
6-
<title>LNUG #64 - June 2017</title>
6+
<title>LNUG MC slidedeck</title>
77
<link href="https://fonts.googleapis.com/css?family=Montserrat:400,700" rel="stylesheet">
88
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/prism/1.3.0/themes/prism-tomorrow.css">
99
</head>

presentation/index.js

Lines changed: 98 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@ import {
1313
Image,
1414
Link,
1515
Code,
16+
BlockQuote,
17+
Quote,
18+
Cite,
1619
S
1720
} from "spectacle";
1821

@@ -42,7 +45,8 @@ preloader(images);
4245

4346
const theme = createTheme({
4447
primary: "rgb(70, 72, 61)",
45-
secondary: "rgba(255, 255, 255, 0.8)"
48+
secondary: "rgba(255, 255, 255, 0.8)",
49+
highlight: "rgba(190, 211, 64, 1)"
4650
}, {
4751
primary: "Montserrat",
4852
secondary: "Helvetica"
@@ -53,40 +57,61 @@ const emcee = {
5357
twitter: "admataz"
5458
};
5559

60+
61+
// get this from the latest from https://github.com/lnug/website/blob/master/data/this-month.json and add twitter details if desired
5662
const speakers = [
5763
{
58-
name: "Bartlomiej Specjalny",
59-
title: "Scalable Scraping in Node and a bit of GO ",
60-
twitter: "",
61-
github: "sp3c1 "
64+
"apiSpeakerUrl": "https://api.github.com/users/lazlojuly",
65+
"speakerUrl": "https://github.com/lazlojuly",
66+
"title": "Unit testing has never been so much fun!",
67+
"description": "<ul>\n<li>This is a lightweight and entertaining 15 minutes long talk.</li>\n<li>It is aimed at developers on <strong>ALL</strong> levels.</li>\n<li>Covers basic and advanced concepts.</li>\n</ul>\n<p>Bio: I am a JavaScript Engineer with growth mindset. &#10;Connect with me on <a href=\"https://twitter.com/lazlojuly\">Twitter</a>, <a href=\"https://www.linkedin.com/in/lazlojuly\">LinkedIn</a> or <a href=\"https://github.com/lazlojuly\">GitHub</a></p>\n",
68+
"milestone": "January 24th 2018",
69+
"img": "https://avatars0.githubusercontent.com/u/7015868?v=4",
70+
"handle": "lazlojuly",
71+
"name": "lazlojuly"
72+
},
73+
{
74+
"apiSpeakerUrl": "https://api.github.com/users/xscheiner",
75+
"speakerUrl": "https://github.com/xscheiner",
76+
"title": "Moving on from Mongoose: How a great thing finally cornered us",
77+
"description": "<p>Mongoose has helped us greatly to maintain the integrity of our data against a mongodb database. However, we are not able to share the models we use on our apis anywhere outside those apis. And Mongoose schemas are not shareable, which means we cannot consume them on any other level of our applications. This means either using conversion plugins, or else writing and maintaining some other solution. In addition, the mongoose models themselves are not shareable, which means even if we solve the schema issue, we still have at least two sets of models to maintain.</p>\n<p>Finally, we use Typescript, which means ideally we can share schema definitions with that which would allow us to define our entities once and have those definitions propagate to all levels of our applications.</p>\n<p>The final part of this presentation will focus on the solution we now intend to adopt as we begin to overhaul our entire architecture in the coming months.</p>\n",
78+
"milestone": "January 24th 2018",
79+
"img": "https://avatars3.githubusercontent.com/u/1236507?v=4",
80+
"handle": "xscheiner",
81+
"name": "David Scheiner"
6282
},
83+
6384
{
64-
name: "James Porter, David Scheiner, who else? ",
65-
title: "Node.js Lightning talks",
66-
twitter: "",
67-
github: ""
85+
"apiSpeakerUrl": "https://api.github.com/users/paulbjensen",
86+
"speakerUrl": "https://github.com/paulbjensen",
87+
"title": "Creating PowerPoint files with Officegen and Node.js",
88+
"description": "<p>It turns out that you don&#39;t need Microsoft Office to create PowerPoint files - you can create them in Node.js. In this talk I will show you how libraries like Officegen allow you to generate PowerPoint files containing text, shapes, charts and images, and demonstrate a real-world use of this tool that we&#39;ve been crafting to save us some time.</p>\n<p>My name is Paul Jensen, I&#39;m the author of Manning&#39;s Cross Platform Desktop Applications, and I&#39;m the Lead Innovation Engineer at Starcount. My twitter handle is paulbjensen.</p>\n",
89+
"milestone": "January 24th 2018",
90+
"img": "https://avatars3.githubusercontent.com/u/3840?v=4",
91+
"handle": "paulbjensen",
92+
"name": "Paul Jensen"
6893
}
6994
];
7095

7196
const thisMonth = {
72-
title: "#67 - October 2017"
97+
title: "#69 - January 2018"
7398
};
7499

75100
const nextMonth = {
76-
date: "22nd November 2017",
101+
date: "28th February 2018",
77102
speakers: [
78103
{
79-
name: "Bernard Baker",
80-
title: "Building an Electron application with NodeJS"
104+
name: "Oliver Rumbelow",
105+
title: "Cultivating a Microservice Culture with Node.js"
81106
},
82107
{
83-
name: "Simon McManus",
84-
title: "Taking LNUG offline"
108+
name: "Thanasis Polychronakis",
109+
title: "Classical Inheritance in Javascript"
85110
}
86111

87112
]
88113

89-
}
114+
};
90115

91116

92117
class SpeakerSlide extends React.Component {
@@ -102,53 +127,74 @@ class SpeakerSlide extends React.Component {
102127

103128
return (
104129
<Slide>
105-
<Heading size={5} textColor="secondary" margin={50}>Next Up</Heading>
130+
<Heading size={5} textColor="highlight" margin={50}>Next Up</Heading>
106131
<Heading size={4} textColor="secondary">{speaker.name}</Heading>
107132
<Heading size={6} textColor="secondary"><S type="italics">{speaker.title}</S></Heading>
108-
<Text textSize={30} margin={50} textColor="secondary">Grab a drink & pizza then grab a seat!</Text>
109133
</Slide>
110134
);
111135
}
112136
}
113137

138+
139+
class SummarySlide extends React.Component {
140+
render() {
141+
return (<Slide align={"center center"}>
142+
<Image src={images.logo} margin="0px auto 0px" height="200px"/>
143+
<Heading size={6} textColor="highlight">{thisMonth.title}</Heading>
144+
{speakers.map((speaker) =>
145+
<Text key={speaker.title} textColor="secondary" textSize={38} margin="20px 0">
146+
{speaker.name} <S type="italics" textSize={24}> <br />{speaker.title} </S>
147+
<Text textColor="secondary" textSize={20}>
148+
{speaker.twitter &&
149+
<span>Twitter: @{speaker.twitter} </span>
150+
}
151+
152+
{speaker.github &&
153+
<span>Github: @{speaker.github}</span>
154+
}
155+
</Text>
156+
</Text>
157+
)}
158+
</Slide>
159+
);
160+
}
161+
}
162+
114163
export default class Presentation extends React.Component {
115164
render() {
116165
return (
117166
<Deck transition={["zoom", "slide"]} transitionDuration={500} theme={theme} progress={"none"}>
118-
<Slide align={"center center"}>
119-
<Image src={images.logo} margin="0px auto 0px" height="200px"/>
120-
<Heading size={6} textColor="secondary">{thisMonth.title}</Heading>
121-
{speakers.map((speaker) =>
122-
<Text key={speaker.title} textColor="secondary" textSize={30} margin="10px 0">
123-
{speaker.name} <S type="italics"> - {speaker.title} </S>
124-
<Text textColor="secondary" textSize={20}>
125-
{speaker.twitter &&
126-
<span>Twitter: @{speaker.twitter} </span>
127-
}
128-
129-
{speaker.github &&
130-
<span>Github: @{speaker.github}</span>
131-
}
132-
</Text>
133-
</Text>
134-
)}
135-
</Slide>
167+
168+
<SummarySlide />
136169

137170

138171
<Slide id={"safety"}>
139-
<Heading size={3} lineHeight={3} textColor="secondary">safety and comfort</Heading>
172+
<Heading size={3} lineHeight={3} textColor="secondary">Important</Heading>
140173
<Appear><Heading size={5} textColor="secondary">🚒 Fire Exits: stairs behind you </Heading></Appear>
141174
<Appear><Heading size={5} textColor="secondary">🚻 Toilets: towards the lifts </Heading></Appear>
142175
<Appear><Heading size={5} textColor="secondary">📡 Wifi <Code textColor="secondary">makersWelcome</Code> </Heading></Appear>
143-
<Appear><Heading size={5} textColor="secondary">⭐️ Code of Conduct </Heading></Appear>
144176
</Slide>
145177

178+
<Slide>
179+
<Heading size={5} textColor="secondary">⭐️ Code of Conduct </Heading>
180+
<Appear>
181+
<BlockQuote>
182+
<Quote textColor="highlight" textSize="24px" lineHeight={5}>
183+
<p>LNUG is dedicated to providing a harassment-free meetup experience for everyone. We do not tolerate harassment of meetup participants in any form...</p>
184+
<p>This code of conduct applies to attendees, speakers, and organisers at the monthly meetups and in related social events. This includes slide decks and listings on the job board.</p>
185+
</Quote>
186+
</BlockQuote>
187+
</Appear>
188+
<Appear>
189+
<Text textColor="secondary">lnug.org/code-of-conduct.html</Text>
190+
</Appear>
191+
</Slide>
146192

147193
<Slide id={"hashtags"}>
148-
<Heading size={3} textColor="secondary">tweet @lnugorg</Heading>
194+
<Heading size={3} textColor="secondary">Tweet <Text textColor="highlight">@lnugorg</Text></Heading>
149195
<Heading size={4} textColor="secondary"><Code textColor="secondary">#LNUG #node #javascript #london</Code></Heading>
150196
<Appear>
151-
<Heading size={6} textColor="secondary">tweet at me too (@{emcee.twitter})</Heading>
197+
<Heading size={6} textColor="secondary" margin="20px 0" size="20px" textColor="highlight">tweet me too @{emcee.twitter}</Heading>
152198
</Appear>
153199
</Slide>
154200

@@ -172,12 +218,14 @@ export default class Presentation extends React.Component {
172218
<Heading size={3} textColor="secondary">Video</Heading>
173219
<Image src={images.pusherLogo.replace("/", "")} margin="0px auto 40px" height="293px"/>
174220
</Slide>
221+
<SummarySlide />
222+
175223

176224
<SpeakerSlide speaker={speakers[0]} />
177225

178226
<Slide>
179227
<Image src={images.logo} margin="0px auto 0px" height="200px"/>
180-
<Heading size={3} textColor="secondary" margin={50}>Community Announcements</Heading>
228+
<Heading size={3} textColor="highlight" margin={50}>Community Announcements</Heading>
181229
<Heading size={5} textColor="secondary">Who? What? Contact details?</Heading>
182230
<Heading size={5} textColor="secondary">Hiring?</Heading>
183231
<Heading size={5} textColor="secondary">Available for hire?</Heading>
@@ -197,13 +245,19 @@ export default class Presentation extends React.Component {
197245

198246
<Slide>
199247
<Image src={images.logo} margin="0px auto 0px" height="200px"/>
200-
<Heading size={3} textColor="secondary">submit a talk proposal!</Heading>
248+
<Heading size={3} textColor="highlight">submit a talk proposal!</Heading>
201249
<Code type="bold" textColor="secondary">github.com/lnug/speakers</Code>
202250
</Slide>
203251

252+
253+
{speakers.length > 2 &&
254+
<SpeakerSlide speaker={speakers[2]} />
255+
}
256+
257+
204258
<Slide>
205259
<Image src={images.logo} margin="0px auto 0px" height="200px"/>
206-
<Heading size={3} textColor="secondary" margin={40}>Next Time</Heading>
260+
<Heading size={3} textColor="highlight" margin={40}>Next Time</Heading>
207261
<Heading size={4} textColor="secondary">{nextMonth.date}</Heading>
208262
<List margin="20px 10%">
209263
{nextMonth.speakers.map((speaker) =>
@@ -231,10 +285,7 @@ export default class Presentation extends React.Component {
231285
</Text>
232286
<Image src={images.cheers.replace("/", "")} margin="40px auto 0px" height="200px"/>
233287
</Slide>
234-
235-
{speakers.length > 2 &&
236-
<SpeakerSlide speaker={speakers[2]} />
237-
}
288+
238289

239290
<Slide>
240291
<Heading size={3} textColor="secondary">Thank You</Heading>

0 commit comments

Comments
 (0)