Skip to content

Commit

Permalink
Merge pull request #24 from munihac/do-not-load-youtube-iframes-on-pa…
Browse files Browse the repository at this point in the history
…ge-load

Do not load iFrames automatically on page load
  • Loading branch information
albertodiazdorado authored Aug 27, 2023
2 parents edbb77f + f36024e commit 893c780
Show file tree
Hide file tree
Showing 16 changed files with 691 additions and 548 deletions.
30 changes: 18 additions & 12 deletions content/2016/keynotes.html
Original file line number Diff line number Diff line change
@@ -1,15 +1,21 @@
<h2>Keynotes</h2>
<ul>
<li>
<p><b>Gabriel Gonzalez</b>: <i>Beautiful folds are practical, too</i></p>
<iframe width="320" height="180" src="https://www.youtube-nocookie.com/embed/6a5Ti0r8Q2s" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</li>
<li>
<p><b>Jasper van der Jeugt</b>: <i>Hakyll</i></p>
<iframe width="320" height="180" src="https://www.youtube-nocookie.com/embed/t8gim17hryw" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</li>
<li>
<p><b>Bas van Dijk</b>: <i>Functional Programming at LumiGuide</i></p>
<iframe width="320" height="180" src="https://www.youtube-nocookie.com/embed/1r6sYrfCFCc" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</li>
<li>
<p><b>Gabriel Gonzalez</b>: <i>Beautiful folds are practical, too</i></p>
<div class="youtube-button-container youtube-2016">
<button onclick="loadYoutubeIframe('6a5Ti0r8Q2s', this)" class="youtube-button">Load video</button>
</div>
</li>
<li>
<p><b>Jasper van der Jeugt</b>: <i>Hakyll</i></p>
<div class="youtube-button-container youtube-2016">
<button onclick="loadYoutubeIframe('t8gim17hryw', this)" class="youtube-button">Load video</button>
</div>
</li>
<li>
<p><b>Bas van Dijk</b>: <i>Functional Programming at LumiGuide</i></p>
<div class="youtube-button-container youtube-2016">
<button onclick="loadYoutubeIframe('1r6sYrfCFCc', this)" class="youtube-button">Load video</button>
</div>
</li>
</ul>
33 changes: 20 additions & 13 deletions content/2016/menu.html
Original file line number Diff line number Diff line change
@@ -1,16 +1,23 @@
<nav class="navbar navbar-expand-lg navbar-light bg-light fixed-top" id="mainNav">
<div class="container px-4">
<a class="navbar-brand" href="/2020.html#page-top">MuniHac 2016</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarResponsive"
aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation"><span
class="navbar-toggler-icon"></span></button>
<div class="collapse navbar-collapse" id="navbarResponsive">
<ul class="navbar-nav ms-auto">
<li class="nav-item"><a class="nav-link" href="/2016.html#about">About</a></li>
<li class="nav-item"><a class="nav-link" href="/2016.html#keynotes">Keynotes</a></li>
<li class="nav-item"><a class="nav-link" href="/2016.html#contact">Contact</a></li>
$partial("content/menu-archive.html")$
</ul>
</div>
<div class="container px-4">
<a class="navbar-brand" href="/2016.html#page-top">MuniHac 2016</a>
<button
class="navbar-toggler"
type="button"
data-bs-toggle="collapse"
data-bs-target="#navbarResponsive"
aria-controls="navbarResponsive"
aria-expanded="false"
aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarResponsive">
<ul class="navbar-nav ms-auto">
<li class="nav-item"><a class="nav-link" href="/2016.html#about">About</a></li>
<li class="nav-item"><a class="nav-link" href="/2016.html#keynotes">Keynotes</a></li>
<li class="nav-item"><a class="nav-link" href="/2016.html#contact">Contact</a></li>
$partial("content/menu-archive.html")$
</ul>
</div>
</div>
</nav>
205 changes: 94 additions & 111 deletions content/2018/keynotes.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,131 +2,114 @@ <h2>Keynotes</h2>

<a name="RyanScott" />
<div class="keynote">
<h3>The Curious Case of Pattern-Match Coverage Checking</h3>
<h4>Ryan Scott</h4>
<div class="row">
<div class="col-md-8">
<p>
Patterns in Haskell are useful, but they're prone to issues such as
incomplete and redundant patterns if used carelessly. Thankfully, GHC
offers a very handy static analysis, called pattern-match coverage
checking, which emits warnings if you use patterns recklessly. This talk
explores the design considerations of coverage checking, considers some of
the more challenging aspects of determining whether patterns are
exhaustive, and even demonstrates some patterns that aren't checked
correctly (as of GHC 8.6!) but will be soon.
</p>
<h3>The Curious Case of Pattern-Match Coverage Checking</h3>
<h4>Ryan Scott</h4>
<div class="row">
<div class="col-md-8">
<p>
Patterns in Haskell are useful, but they're prone to issues such as incomplete and redundant patterns if used
carelessly. Thankfully, GHC offers a very handy static analysis, called pattern-match coverage checking, which
emits warnings if you use patterns recklessly. This talk explores the design considerations of coverage
checking, considers some of the more challenging aspects of determining whether patterns are exhaustive, and
even demonstrates some patterns that aren't checked correctly (as of GHC 8.6!) but will be soon.
</p>

<p>
Ryan is a Ph.D student at Indiana University, where he
attempts to combine techniques from software verification and
determinism (sometimes successfully!). He is also a key
contributor to GHC, where he specializes in the areas of
<code>deriving</code>, Template Haskell, pattern-match coverage
checking, and various odds and ends in the typechecker. Through a
series of strange coincidences, he is also a member of the Haskell
Core Libraries Committee and maintains libraries ranging from
<code>criterion</code> to <code>singletons</code>.
</p>
</div>
<div class="col-md-4">
<iframe width="320" height="180" src="https://www.youtube-nocookie.com/embed/nDmNTRG1V_0" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<p>
Ryan is a Ph.D student at Indiana University, where he attempts to combine techniques from software verification
and determinism (sometimes successfully!). He is also a key contributor to GHC, where he specializes in the
areas of
<code>deriving</code>, Template Haskell, pattern-match coverage checking, and various odds and ends in the
typechecker. Through a series of strange coincidences, he is also a member of the Haskell Core Libraries
Committee and maintains libraries ranging from <code>criterion</code> to <code>singletons</code>.
</p>
</div>
<div class="col-md-4">
<div class="youtube-button-container youtube-2018">
<button onclick="loadYoutubeIframe('nDmNTRG1V_0', this)" class="youtube-button">Load video</button>
</div>
</div>
</div>
</div>

<a name="MatthewPickering" />
<div class="keynote">
<h3>Beautiful Template Haskell</h3>
<h4>Matthew Pickering</h4>
<div class="row">
<div class="col-md-8">
<p>
Forget everything you know about Template Haskell. We will enter the
beautiful world of Typed Template Haskell where its only possible to
construct well-scoped and well-typed terms. Why? By writing our
program in multiple stages, we can guarantee to eliminate the
interpretative overhead caused by abstraction.
</p>
<p>
Matthew will give an introduction to Typed Template Haskell and then
describe some examples of how to construct abstract and efficient
programs using techniques from multi-stage programming. We will
construct an "efficient" power function and also give a sketch of how
to implement a SQL query compiler as inspired by the functional pearl
"A SQL to C Compiler in 500 Lines of Code".
</p>
<p>
Matthew is a PhD student at the University of Bristol focusing on
program generation with applications to optimisation. In the quest
to write the perfect program he has become a regular contributor
to GHC where he has recently been working on making the compiler
easier to extend by using source plugins.
</p>
</div>
<div class="col-md-4">
<iframe width="320" height="180" src="https://www.youtube-nocookie.com/embed/AzJVFkm42zM" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<h3>Beautiful Template Haskell</h3>
<h4>Matthew Pickering</h4>
<div class="row">
<div class="col-md-8">
<p>
Forget everything you know about Template Haskell. We will enter the beautiful world of Typed Template Haskell
where its only possible to construct well-scoped and well-typed terms. Why? By writing our program in multiple
stages, we can guarantee to eliminate the interpretative overhead caused by abstraction.
</p>
<p>
Matthew will give an introduction to Typed Template Haskell and then describe some examples of how to construct
abstract and efficient programs using techniques from multi-stage programming. We will construct an "efficient"
power function and also give a sketch of how to implement a SQL query compiler as inspired by the functional
pearl "A SQL to C Compiler in 500 Lines of Code".
</p>
<p>
Matthew is a PhD student at the University of Bristol focusing on program generation with applications to
optimisation. In the quest to write the perfect program he has become a regular contributor to GHC where he has
recently been working on making the compiler easier to extend by using source plugins.
</p>
</div>
<div class="col-md-4">
<div class="youtube-button-container youtube-2018">
<button onclick="loadYoutubeIframe('AzJVFkm42zM', this)" class="youtube-button">Load video</button>
</div>
</div>
</div>
</div>

<a name="BenGamari" />
<div class="keynote">
<h3>A low-latency garbage collector for GHC</h3>
<h4>Ben Gamari</h4>
<div class="row">
<div class="col-md-8">
<p>
As real-time and distributed systems become common-place, latencies
associated with memory management begin to limit the usability of
garbage collected languages. In particular, the Glasgow Haskell Compiler
has long relied on a throughput-oriented copying garbage collector;
while this collector provides good memory locality for user programs,
minimal fragmentation, and efficient collection, it imposes large
latencies when collecting large heaps.
</p>
<h3>A low-latency garbage collector for GHC</h3>
<h4>Ben Gamari</h4>
<div class="row">
<div class="col-md-8">
<p>
As real-time and distributed systems become common-place, latencies associated with memory management begin to
limit the usability of garbage collected languages. In particular, the Glasgow Haskell Compiler has long relied
on a throughput-oriented copying garbage collector; while this collector provides good memory locality for user
programs, minimal fragmentation, and efficient collection, it imposes large latencies when collecting large
heaps.
</p>

<p>
Recent language implementations (e.g. Go, Mono, various Java implementations)
have moved away from have avoided the problem of garbage collection
latency through use of concurrent collection on a non-moving heap. In
this talk Ben will provide a high-level overview of a concurrent,
non-moving garbage collector implemented for the Glasgow
Haskell Compiler. This collector offers significantly improved pause
times without the need for code recompilation and with minimal impact on
program runtime. He will discuss the trade-offs implicit in the design, the
challenges posed by collecting Haskell in particular, and present some
preliminary performance measurements from a prototype implementation.
</p>
<p>
Recent language implementations (e.g. Go, Mono, various Java implementations) have moved away from have avoided
the problem of garbage collection latency through use of concurrent collection on a non-moving heap. In this
talk Ben will provide a high-level overview of a concurrent, non-moving garbage collector implemented for the
Glasgow Haskell Compiler. This collector offers significantly improved pause times without the need for code
recompilation and with minimal impact on program runtime. He will discuss the trade-offs implicit in the design,
the challenges posed by collecting Haskell in particular, and present some preliminary performance measurements
from a prototype implementation.
</p>

<p>
Ben uses Haskell in fields as diverse as applied machine
learning, scientific data analysis, robotics control, and compiler
engineering. He is an active contributor to the Glasgow Haskell
Compiler with focus on code generation, Core optimization, and the
runtime system, and has worked extensively towards bringing GHC to
the ARM architecture.
</p>
<p>
Ben uses Haskell in fields as diverse as applied machine learning, scientific data analysis, robotics control,
and compiler engineering. He is an active contributor to the Glasgow Haskell Compiler with focus on code
generation, Core optimization, and the runtime system, and has worked extensively towards bringing GHC to the
ARM architecture.
</p>

<p>
He has experience implementing numerical methods for machine learning, with an
eye towards leveraging Haskell’s strong type system to enforce
correctness at compile-time. Ben has expertise developing
high-performance distributed systems in a wide range of
languages. Past projects include GPU-based modelling of
high-energy particle interactions and an implementation of
parallel machine learning algorithms for large-scale social
network analysis.
</p>
<p>
He has experience implementing numerical methods for machine learning, with an eye towards leveraging Haskell’s
strong type system to enforce correctness at compile-time. Ben has expertise developing high-performance
distributed systems in a wide range of languages. Past projects include GPU-based modelling of high-energy
particle interactions and an implementation of parallel machine learning algorithms for large-scale social
network analysis.
</p>

<p>
He is completing a PhD in Physics at the University of
Massachusetts and has publications spanning social network
analysis, computational physics, and biophysics.
</p>
</div>
<div class="col-md-4">
<iframe width="320" height="180" src="https://www.youtube-nocookie.com/embed/7_ig6r2C-d4" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<p>
He is completing a PhD in Physics at the University of Massachusetts and has publications spanning social
network analysis, computational physics, and biophysics.
</p>
</div>
<div class="col-md-4">
<div class="youtube-button-container youtube-2018">
<button onclick="loadYoutubeIframe('7_ig6r2C-d4', this)" class="youtube-button">Load video</button>
</div>
</div>
</div>
</div>
18 changes: 9 additions & 9 deletions content/2019/keynotes.html
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ <h4>Oliver Charles</h4>
</p>
</div>
<div class="col-md-4">
<iframe width="320" height="180" src="https://www.youtube-nocookie.com/embed/riugQmHx0K0" frameborder="0"
allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture"
allowfullscreen></iframe>
<div class="youtube-button-container youtube-2019">
<button onclick="loadYoutubeIframe('riugQmHx0K0', this)" class="youtube-button">Load video</button>
</div>
</div>
</div>
</div>
Expand Down Expand Up @@ -48,9 +48,9 @@ <h4>Joachim Breitner</h4>
</p>
</div>
<div class="col-md-4">
<iframe width="320" height="180" src="https://www.youtube-nocookie.com/embed/xcm_H36v_18" frameborder="0"
allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture"
allowfullscreen></iframe>
<div class="youtube-button-container youtube-2019">
<button onclick="loadYoutubeIframe('xcm_H36v_18', this)" class="youtube-button">Load video</button>
</div>
</div>
</div>
</div>
Expand Down Expand Up @@ -80,9 +80,9 @@ <h4>Neil Mitchell</h4>
</p>
</div>
<div class="col-md-4">
<iframe width="320" height="180" src="https://www.youtube-nocookie.com/embed/cijsaeWNf2E" frameborder="0"
allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture"
allowfullscreen></iframe>
<div class="youtube-button-container youtube-2019">
<button onclick="loadYoutubeIframe('cijsaeWNf2E', this)" class="youtube-button">Load video</button>
</div>
</div>
</div>
</div>
Loading

0 comments on commit 893c780

Please sign in to comment.