-
Notifications
You must be signed in to change notification settings - Fork 9
/
index.html
222 lines (206 loc) · 11.7 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Apple Keynote Bingo!</title>
<meta name="description" content="Play Apple Keynote Bingo!" />
<meta property="og:title" content="Apple Keynote Bingo!" />
<meta property="og:type" content="website" />
<meta property="og:site_name" content="Apple Keynote Bingo!" />
<meta property="og:url" content="https://keynotebingo.github.io/" />
<meta property="og:description" content="It’s time to play Apple Keynote Bingo!" />
<meta property="og:image" content="static/images/share.jpg" />
<meta name="twitter:card" content="summary">
<meta name="twitter:url" content="https://keynotebingo.github.io/">
<meta name="twitter:title" content="Apple Keynote Bingo!">
<meta name="twitter:description" content="It’s time to play Apple Keynote Bingo!">
<meta name="twitter:image" content="static/images/share.jpg">
<link rel="stylesheet" href="static/styles/styles.css">
<link rel="shortcut icon" type="image/png" href="static/images/favicon.png">
<link rel="apple-touch-icon-precomposed" href="static/images/apple-touch-icon.png">
<script>
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-29707119-1']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
</head>
<body>
<div class="container-fluid">
<header>
<h1 class="my-4 display-4">Apple Keynote Bingo!</h1>
<h2 class="mb-4 h5">California Streaming – September 2021</h2>
</header>
<div id="bingo">
<h1 class="my-4 display-1">BINGO!</h1>
<a class="btn btn-dark" href="?">Play again?</a>
</div>
<table id="bingoCard" class="table-responsive my-4 mx-auto">
<tbody id="playCard">
</tbody>
</table>
<footer>
<a class="btn btn-outline-dark mr-2" href="?">New Bingo Card</a>
<a class="btn btn-outline-dark ml-2" target="_blank" href="http://twitter.com/intent/tweet?text=I+am+playing+Apple+Keynote+Bingo!&url=https%3A%2F%2Fkeynotebingo.github.io%2F&hashtags=AppleKeynoteBingo,AppleEvent">Tweet This</a>
<p class="mt-4 small">
Made with love in Edinburgh, Scotland by <a target="_blank" href="http://twitter.com/patrickhmason">@patrickhmason</a> and <a target="_blank" href="http://twitter.com/davidmoss">@davidmoss</a>
</p>
</footer>
</div>
<script>
strings = [
"Tim Cook’s pronunciations of “cau-vid” burns my British ears",
"Skit about WFH",
"“Sili-cun”",
"Group messaging stops sucking",
"Augmented reality 😐",
"“bezel”",
"“Developers love the App Store, providing that there is no follow up discussion on the matter”",
"Tim Cook",
"Craig Federighi",
"Tim Cook’s thin, watery smile",
"Advert",
"Here comes the finance bit!",
"A new app that looks OK, but nothing special",
"“We hope you like it”",
"“We think it’s great”",
"“Here it is”",
"“Let me show it to you”",
"“Boom!/Bam!” or other onomatopoeic word",
"“Billion’",
"A tweet that just says “oooh” followed by a bunch of hashtags",
"Disappointment as all the rumours turn out to be EXACTLY true",
"Nice independent software maker totally undermined by a new feature",
"Smiling children in an emerging market play with an iPad",
"Stealthy upgrade to a product not mentioned in the Keynote",
"Stealthy downgrade to MacBook to retain price point",
"Price point slightly too high, but not high enough to stop you buying",
"EXCRUCIATING third party demo",
"New, fairly dreary, feature gets ridiculous name (e.g. “Power Station”)",
"“I’ll never get used to that!” *gets used to it almost immediately*",
"Poorly implemented cloud features",
"Home automate ALL THE THINGS",
"“Partnership”",
"“It’s available in beta, right now”",
"Everyone loses their shit about something technical",
"Apple Pay stats",
"Dreadful skit",
"Enterprise! Woo yeah! *rolls eyes*",
"New Apple TV screensavers",
"Super-earnest medical research VT",
"Beyond-acceptable pricing, magically justifying itself by Friday",
"HOW MUCH?!?!?",
"[a Drag Race GIF that perfectly illustrates something]",
"Losing track of the number of things Steve Jobs would never have allowed",
"Vague promises of innovation to come",
"Game demo presenters frantically trying to IPO before everyone wises up",
"Even the presenters look bored of the Game Demo this year",
"Previously called-out sales figure suspiciously moved into Misc",
"“Only we can do this, and then forget to add it to the Mac”",
"Split view is now over 45% less discoverable",
"New feature to help remote school teaching is completely unfit for purpose",
"My bingo co-writer unnervingly nails another unannounced nuance",
"New headphones being used for a conference call",
"New headphones being used by someone on a skateboard",
"Something is described as “pretty Epic”",
"Lawyers doing the cut motion just out of shot when the App Store is discussed",
"Who could this evil, data-hungry, unnamed advertising company be?!?",
"“Hey Siri, I’ve got company” finally gives you sensual lighting and music",
"Useful apps rewritten with fewer features",
"Enhanced Siri privacy for things you already assumed were private",
"Still impossible to use iOS as your main computer if your job is anything other than writing a blog",
"Still in file system denial on the iPad Pro",
"App Store related comments obviously passed through 5 lawyers",
"Pro features, but still impossible to do any sort of hotel booking or car purchase via the web",
"Over 50 new clunky workarounds for poorly implemented iOS/watchOS features",
"Multitasking still requires at least four hands",
"Notifications UI still infuriating",
"Siri gets new sports integration, but still struggles to parse “Timer 3 minutes”",
"“We love developers… (who don’t question us)”",
"App Store matters “Tim can’t go into due to ongoing legal action”",
"“New Apple Watch shape, just a square meh”",
"Annoyance that new MacBook Pros STILL aren’t released",
"Cut scenes just getting silly now",
"“Ok. Fine. We’re building a car”",
"Endless “this iPhone will be unlucky” jokes",
"Finally accepting iPhone USB-C will never be",
"Completely random final product tacked on",
"Resigned “we’re sorry you can’t be here”",
"“Everyone is so keen to return to Apple Park” [face to camera]",
"Pro-motion scrolling described as “silky smooth” or some such",
"New low end iPad gets talked up like a kid who “tries their best” at school sports.",
"Will the old watch straps fit or not",
"“People love the notch - it’s part of iPhone”",
"“Beautiful new color”",
"Strength of magnets shown on a Bezos Chart",
"“And IOS 14.8 has some great security features in advance of 15 coming out”",
"Any mentions of platform security hastily scrubbed out",
"Always on screen power demands offset by no-one actually going anywhere",
"Note to self: turn off always-on notifications for hook up apps",
"Vague changes to glass/metal composition completely changes how the iPhone feels",
"Vague changes to glass/metal composition completely changes how the product breaks"
]
function shuffle(array) {
var currentIndex = array.length;
var temporaryValue;
var randomIndex;
while (0 !== currentIndex) {
randomIndex = Math.floor(Math.random() * currentIndex);
currentIndex -= 1;
temporaryValue = array[currentIndex];
array[currentIndex] = array[randomIndex];
array[randomIndex] = temporaryValue;
}
return array;
}
var shuffled_strings = shuffle(strings);
el_playcard = document.getElementById('playCard');
for(var row = 0; row < 5; row += 1) {
el_row = el_playcard.insertRow(-1);
for(var col = 0; col < 5; col += 1) {
el_cell = el_row.insertCell(0);
if(row == 2 && col == 2) {
el_cell.innerHTML = 'Free<br /><br /><br />Space';
el_cell.classList.add('marked');
el_cell.classList.add('marked-free');
}
else {
el_cell.innerHTML = shuffled_strings.pop();
el_cell.addEventListener('click', mark_cell, false);
}
}
}
var bingo_counter = 0;
var marked_sound = new Audio('static/sounds/eep.wav');
marked_sound.load();
var bingo_sound = new Audio('static/sounds/indigo.wav');
bingo_sound.load();
function mark_cell(cell) {
cell.srcElement.removeEventListener('click', mark_cell);
cell.srcElement.classList.add('marked');
bingo_counter++;
if(bingo_counter === 24) {
document.querySelectorAll('td').forEach(function (e) {
e.classList.add('rotate-out');
});
bingo_sound.play();
window.setTimeout(function() {
play_again = document.getElementById('bingo');
play_again.classList.add('bounce-in');
play_again.style.display = 'block';
bingoCard = document.getElementById('bingoCard');
bingoCard.style.visibility = 'hidden';
}, 400);
}
else {
marked_sound.play();
}
}
</script>
</body>
</html>