PageSourceSearch

https://saforem2.github.io/qmd/posts.html

html saforem2.github.io collected 2026-10-03 09:53:21 UTC 40,533 bytes, 861 lines download raw bytes

1<!DOCTYPE html>
2<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head>
3
4<meta charset="utf-8">
5<meta name="generator" content="quarto-1.3.450">
6
7<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
8
9<meta name="author" content="Sam Foreman ">
10<meta name="dcterms.date" content="2023-09-15">
11
12<title>Sam Foreman - Listing Example</title>
13<style>
14code{white-space: pre-wrap;}
15span.smallcaps{font-variant: small-caps;}
16div.columns{display: flex; gap: min(4vw, 1.5em);}
17div.column{flex: auto; overflow-x: auto;}
18div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
19ul.task-list{list-style: none;}
20ul.task-list li input[type="checkbox"] {
21  width: 0.8em;
22  margin: 0 0.8em 0.2em -1em; /* quarto-specific, see https://github.com/quarto-dev/quarto-cli/issues/4556 */ 
23  vertical-align: middle;
24}
25/* CSS for citations */
26div.csl-bib-body { }
27div.csl-entry {
28  clear: both;
29}
30.hanging-indent div.csl-entry {
31  margin-left:2em;
32  text-indent:-2em;
33}
34div.csl-left-margin {
35  min-width:2em;
36  float:left;
37}
38div.csl-right-inline {
39  margin-left:2em;
40  padding-left:1em;
41}
42div.csl-indent {
43  margin-left: 2em;
44}</style>
45
46
47<script src="../site_libs/quarto-nav/quarto-nav.js"></script>
vendor: 1 bytes, line 47
47
48<script src="../site_libs/quarto-nav/headroom.min.js"></script>
vendor: 1 bytes, line 48
48
49<script src="../site_libs/clipboard/clipboard.min.js"></script>
vendor: 1 bytes, line 49
49
50<script src="../site_libs/quarto-search/autocomplete.umd.js"></script>
vendor: 1 bytes, line 50
50
51<script src="../site_libs/quarto-search/fuse.min.js"></script>
vendor: 1 bytes, line 51
51
52<script src="../site_libs/quarto-search/quarto-search.js"></script>
52
53<meta name="quarto:offset" content="../">
54<link href=".././favicon.svg" rel="icon" type="image/svg+xml">
55<script src="../site_libs/quarto-listing/list.min.js"></script>
vendor: 1 bytes, line 55
55
56<script src="../site_libs/quarto-listing/quarto-listing.js"></script>
vendor: 1 bytes, line 56
56
57<script src="../site_libs/quarto-html/quarto.js"></script>
vendor: 1 bytes, line 57
57
58<script src="../site_libs/quarto-html/popper.min.js"></script>
vendor: 1 bytes, line 58
58
59<script src="../site_libs/quarto-html/tippy.umd.min.js"></script>
vendor: 1 bytes, line 59
59
60<script src="../site_libs/quarto-html/anchor.min.js"></script>
60
61<link href="../site_libs/quarto-html/tippy.css" rel="stylesheet">
62<link href="../site_libs/quarto-html/quarto-syntax-highlighting.css" rel="stylesheet" class="quarto-color-scheme" id="quarto-text-highlighting-styles">
63<link href="../site_libs/quarto-html/quarto-syntax-highlighting-dark.css" rel="stylesheet" class="quarto-color-scheme quarto-color-alternate" id="quarto-text-highlighting-styles">
64<script src="../site_libs/bootstrap/bootstrap.min.js"></script>
64
65<link href="../site_libs/bootstrap/bootstrap-icons.css" rel="stylesheet">
66<link href="../site_libs/bootstrap/bootstrap.min.css" rel="stylesheet" class="quarto-color-scheme" id="quarto-bootstrap" data-mode="light">
67<link href="../site_libs/bootstrap/bootstrap-dark.min.css" rel="stylesheet" class="quarto-color-scheme quarto-color-alternate" id="quarto-bootstrap" data-mode="dark">
68<link href="../site_libs/quarto-contrib/fontawesome6-0.1.0/all.css" rel="stylesheet">
69<link href="../site_libs/quarto-contrib/fontawesome6-0.1.0/latex-fontsize.css" rel="stylesheet">
70<link href="../site_libs/quarto-contrib/academicons-1.9.2/all.css" rel="stylesheet">
71<link href="../site_libs/quarto-contrib/academicons-1.9.2/size.css" rel="stylesheet">
72<link href="../site_libs/quarto-contrib/bootstrap-icons-1.9.1/all.css" rel="stylesheet">
73<script id="quarto-search-options" type="application/json">{
74  "location": "navbar",
75  "copy-button": false,
76  "collapse-after": 3,
77  "panel-placement": "end",
78  "type": "overlay",
79  "limit": 20,
80  "language": {
81    "search-no-results-text": "No results",
82    "search-matching-documents-text": "matching documents",
83    "search-copy-link-title": "Copy link to search",
84    "search-hide-matches-text": "Hide additional matches",
85    "search-more-match-text": "more match in this document",
86    "search-more-matches-text": "more matches in this document",
87    "search-clear-button-title": "Clear",
88    "search-detached-cancel-button-title": "Cancel",
89    "search-submit-button-title": "Submit",
90    "search-label": "Search"
91  }
92}</script>
vendor: 1 bytes, line 92
92
93<script>
94
95  window.document.addEventListener("DOMContentLoaded", function (_event) {
96    const listingTargetEl = window.document.querySelector('#listing-sample-listings .list');
97    if (!listingTargetEl) {
98      // No listing discovered, do not attach.
99      return; 
100    }
101
102    const options = {
103      valueNames: ['listing-date','listing-title','listing-author',{ data: ['index'] },{ data: ['categories'] },{ data: ['listing-date-sort'] },{ data: ['listing-title-sort'] }],
104      
105      searchColumns: ["listing-date","listing-title","listing-author"],
106    };
107
108    window['quarto-listings'] = window['quarto-listings'] || {};
109    window['quarto-listings']['listing-sample-listings'] = new List('listing-sample-listings', options);
110
111    if (window['quarto-listing-loaded']) {
112      window['quarto-listing-loaded']();
113    }
114  });
115
116  window.addEventListener('hashchange',() => {
117    if (window['quarto-listing-loaded']) {
118      window['quarto-listing-loaded']();
119    }
120  })
121  </script>
vendor: 67 bytes, lines 121-122
121
122<script async="" src="https://www.googletagmanager.com/gtag/js?id=
122G-XVM2Y822Y1
vendor: 13 bytes, lines 122-123
122"></script>
123
124<script type="text/javascript">
125
vendor: 127 bytes, lines 126-129
126window.dataLayer = window.dataLayer || [];
127function gtag(){dataLayer.push(arguments);}
128gtag('js', new Date());
129gtag('config', '
129G-XVM2Y822Y1
vendor: 29 bytes, line 129
129', { 'anonymize_ip': true});
130</script>
130
131<link href="https://pvinis.github.io/iosevka-webfont/3.4.1/iosevka.css" rel="stylesheet">
132
133  
133<script>window.backupDefine = window.define; window.define = undefined;</script>
133<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/katex.min.js"></script>
133
134  
134<script>document.addEventListener("DOMContentLoaded", function () {
135 var mathElements = document.getElementsByClassName("math");
136 var macros = [];
137 for (var i = 0; i < mathElements.length; i++) {
138  var texText = mathElements[i].firstChild;
139  if (mathElements[i].tagName == "SPAN") {
140   katex.render(texText.data, mathElements[i], {
141    displayMode: mathElements[i].classList.contains('display'),
142    throwOnError: false,
143    macros: macros,
144    fleqn: false
145   });
146}}});
147  </script>
147
148  
148<script>window.define = window.backupDefine; window.backupDefine = undefined;</script>
148<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/katex.min.css">
149
150<link rel="stylesheet" href="../css/default.css">
151<link rel="stylesheet" href="../css/callouts.css">
152<link rel="stylesheet" href="../css/profile.css">
153<meta property="og:title" content="Sam Foreman - Listing Example">
154<meta property="og:description" content="">
155<meta property="og:site-name" content="Sam Foreman">
156<meta name="twitter:title" content="Sam Foreman - Listing Example">
157<meta name="twitter:description" content="">
158<meta name="twitter:image" content="https://saforem2.github.io/qmd/assets/thumbnail.png">
159<meta name="twitter:creator" content="@saforem2">
160<meta name="twitter:site" content="@saforem2">
161<meta name="twitter:card" content="summary_large_image">
162<meta name="citation_title" content="Personal Website">
163<meta name="citation_author" content="Sam Foreman">
164<meta name="citation_publication_date" content="2023-09-15">
165<meta name="citation_cover_date" content="2023-09-15">
166<meta name="citation_year" content="2023">
167<meta name="citation_online_date" content="2023-09-15">
168<meta name="citation_fulltext_html_url" content="https://saforem2.github.io">
169<meta name="citation_language" content="en">
170<meta name="citation_reference" content="citation_title=The climate risk &amp;amp;amp; resilience portal (ClimRR) metadata and data dictionary;,citation_author=C. Burdi;,citation_author=Wall. T Branham;,citation_publication_date=2023;,citation_cover_date=2023;,citation_year=2023;,citation_fulltext_html_url=https://dub.sh/ClimRR-Metadata;">
171<meta name="citation_reference" content="citation_title=Progress on (g-2)_\mu from lattice QCD;,citation_author=Hartmut Wittig;,citation_publication_date=2023;,citation_cover_date=2023;,citation_year=2023;,citation_fulltext_html_url=https://arxiv.org/abs/2306.04165;">
172<meta name="citation_reference" content="citation_title=Hybrid Monte Carlo;,citation_author=S. Duane;,citation_author=A. D. Kennedy;,citation_author=B. J. Pendleton;,citation_author=D. Roweth;,citation_publication_date=1987;,citation_cover_date=1987;,citation_year=1987;,citation_doi=10.1016/0370-2693(87)91197-X;,citation_volume=195;,citation_journal_title=Phys. Lett. B;">
173<meta name="citation_reference" content="citation_title=Snowmass 2021 Computational Frontier CompF03 Topical Group Report: Machine Learning;,citation_author=Phiala Shanahan;,citation_author=others;,citation_publication_date=2022-09;,citation_cover_date=2022-09;,citation_year=2022;,citation_fulltext_html_url=https://arxiv.org/abs/2209.07559;">
174<meta name="citation_reference" content="citation_title=Applications of Machine Learning to Lattice Quantum Field Theory;,citation_author=Denis Boyda;,citation_author=others;,citation_publication_date=2022-02;,citation_cover_date=2022-02;,citation_year=2022;,citation_fulltext_html_url=https://arxiv.org/abs/2202.05838;,citation_conference_title=Snowmass 2021;">
175<meta name="citation_reference" content="citation_title=HMC with Normalizing Flows;,citation_author=Sam Foreman;,citation_author=Taku Izubuchi;,citation_author=Luchang Jin;,citation_author=Xiao-Yong Jin;,citation_author=James C. Osborn;,citation_author=Akio Tomiya;,citation_publication_date=2022;,citation_cover_date=2022;,citation_year=2022;,citation_fulltext_html_url=https://arxiv.org/abs/2112.01586;,citation_doi=10.22323/1.396.0073;,citation_volume=LATTICE2021;,citation_journal_title=PoS;">
176<meta name="citation_reference" content="citation_title=LeapfrogLayers: A Trainable Framework for Effective Topological Sampling;,citation_author=Sam Foreman;,citation_author=Xiao-Yong Jin;,citation_author=James C. Osborn;,citation_publication_date=2022;,citation_cover_date=2022;,citation_year=2022;,citation_fulltext_html_url=https://arxiv.org/abs/2112.01582;,citation_doi=10.22323/1.396.0508;,citation_volume=LATTICE2021;,citation_journal_title=PoS;">
177<meta name="citation_reference" content="citation_title=Deep Learning Hamiltonian Monte Carlo;,citation_author=Sam Foreman;,citation_author=Xiao-Yong Jin;,citation_author=James C. Osborn;,citation_publication_date=2021-05;,citation_cover_date=2021-05;,citation_year=2021;,citation_fulltext_html_url=https://arxiv.org/abs/2105.03418;,citation_conference_title=9th International Conference on Learning Representations;">
178<meta name="citation_reference" content="citation_title=Energy Justice Analysis of Climate Data with ClimRR;,citation_author=Sam Foreman;,citation_publication_date=2023-08-07;,citation_cover_date=2023-08-07;,citation_year=2023;,citation_fulltext_html_url=https://saforem2.github.io/climate-analysis;,citation_language=en;">
179<meta name="citation_reference" content="citation_author=Sam Foreman;,citation_publication_date=2023-08-19;,citation_cover_date=2023-08-19;,citation_year=2023;,citation_fulltext_html_url=https://saforem2.github.io/l2hmc-qcd;,citation_language=en;">
180<meta name="citation_reference" content="citation_title=Deep learning hamiltonian monte carlo;,citation_author=Sam Foreman;,citation_author=Xiao-Yong Jin;,citation_author=James C. Osborn;,citation_publication_date=2021;,citation_cover_date=2021;,citation_year=2021;,citation_fulltext_html_url=https://arxiv.org/abs/2105.03418;">
181<meta name="citation_reference" content="citation_title=MLMC: Machine learning monte carlo for lattice gauge theory;,citation_author=Sam Foreman;,citation_author=Xiao-Yong Jin;,citation_author=James Osborn;,citation_publication_date=00;,citation_cover_date=00;,citation_year=0;,citation_conference_title=40th international symposium on lattice field theory (lattice 2023) (batavia, IL, united states, 07/31/2023 - 08/04/2023);">
182</head>
183
184<body class="nav-fixed">
185
186<div id="quarto-search-results"></div>
187  <header id="quarto-header" class="headroom fixed-top">
188    <nav class="navbar navbar-expand-lg navbar-dark ">
189      <div class="navbar-container container-fluid">
190      <div class="navbar-brand-container">
191    <a href="../index.html" class="navbar-brand navbar-brand-logo">
192    <img src=".././favicon.svg" alt="" class="navbar-logo">
193    </a>
194    <a class="navbar-brand" href="../index.html">
195    <span class="navbar-title">Sam Foreman</span>
196    </a>
197  </div>
198            <div id="quarto-search" class="" title="Search"></div>
199          <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarCollapse" aria-controls="navbarC
199ollapse" aria-expanded="false" aria-label="Toggle navigation" onclick="if (window.quartoToggleHeadroom) { window.quartoToggleHeadroom(); }">
200  <span class="navbar-toggler-icon"></span>
201</button>
202          <div class="collapse navbar-collapse" id="navbarCollapse">
203            <ul class="navbar-nav navbar-nav-scroll me-auto">
204  <li class="nav-item">
205    <a class="nav-link active" href="../qmd/posts.html" rel="" target="" aria-current="page">
206 <span class="menu-text"><span class="red-text"><i class="bi-signpost-split " style="" role="img" aria-hidden="true"></i></span> Posts</span></a>
207  </li>  
208  <li class="nav-item">
209    <a class="nav-link" href="../qmd/slides.html" rel="" target="">
210 <span class="menu-text"><span class="green-text"><i class="bi-easel " style="" role="img" aria-hidden="true"></i></span> Talks</span></a>
211  </li>  
212  <li class="nav-item">
213    <a class="nav-link" href="../qmd/projects.html" rel="" target="">
214 <span class="menu-text"><span class="blue-text"><i class="bi-braces-asterisk " style="" role="img" aria-hidden="true"></i></span> Projects</span></a>
215  </li>  
216</ul>
217            <ul class="navbar-nav navbar-nav-scroll ms-auto">
218  <li class="nav-item compact">
219    <a class="nav-link" href="https://github.com/saforem2/saforem2.github.io" rel="" target=""><i class="bi bi-github" role="img" aria-label="GitHub">
220</i> 
221 <span class="menu-text"></span></a>
222  </li>  
223</ul>
224            <div class="quarto-navbar-tools">
225  <a href="" class="quarto-color-scheme-toggle quarto-navigation-tool  px-1" onclick="window.quartoToggleColorScheme(); return false;" title="Toggle dark mode"><i class="bi"></i></a>
226</div>
227          </div> <!-- /navcollapse -->
228      </div> <!-- /container-fluid -->
229    </nav>
230</header>
231<!-- content -->
232<div id="quarto-content" class="quarto-container page-columns page-rows-contents page-layout-article page-navbar">
233<!-- sidebar -->
234<!-- margin-sidebar -->
235    <div id="quarto-margin-sidebar" class="sidebar margin-sidebar">
236        <nav id="TOC" role="doc-toc" class="toc-active">
237    <h2 id="toc-title">On this page</h2>
238   
239  <ul>
240  <li><a href="#external-links" id="toc-external-links" class="nav-link active" data-scroll-target="#external-links">External Links</a></li>
241  </ul>
242<div class="toc-actions"><div><i class="bi bi-github"></i></div><div class="action-links"><p><a href="https://github.com/saforem2/saforem2.github.io/blob/main/qmd/posts.qmd" class="toc-action">View source</a></p><p><a href="https://github.com/saforem2/saforem2.github.io/edit/main/qmd/posts.qmd" class="toc-action">Edit this page</a></p><p><a href="https://github.com/saforem2/saforem2.github.io/issues/new" class="toc-action">Report an issue</a></p></div></div></nav>
243    </div>
244<!-- main -->
245<main class="content" id="quarto-document-content">
246
247<header id="title-block-header" class="quarto-title-block default">
248<div class="quarto-title">
249<div class="quarto-title-block"><div><h1 class="title">Listing Example</h1><button type="button" class="btn code-tools-button" id="quarto-code-tools-source" data-quarto-source-url="https://github.com/saforem2/saforem2.github.io/blob/main/qmd/posts.qmd"><i class="bi"></i></button></div></div>
250</div>
251
252
253
254<div class="quarto-title-meta">
255
256    <div>
257    <div class="quarto-title-meta-heading"></div>
258    <div class="quarto-title-meta-contents">
259             <p><a href="https://samforeman.me">Sam Foreman </a><a href="https://orcid.org/0000-0002-9981-0876"><span class="orcid-green"><i class="ai  ai-orcid"></i></span></a> </p>
260          </div>
261  </div>
262    
263    <div>
264    <div class="quarto-title-meta-heading"></div>
265    <div class="quarto-title-meta-contents">
266      <p class="date">September 15, 2023</p>
267    </div>
268  </div>
269  
270    
271  </div>
272  
273
274</header>
275
276<section id="external-links" class="level2">
277<h2 class="anchored" data-anchor-id="external-links">External Links</h2>
278<ul>
279<li><a href="https://saforem2.github.io/climate-analysis">Intro to HPC Bootcamp @ Nersc: Climate Analysis with ClimRR</a> <span class="citation" data-cites="foreman2023climate">(<a href="#ref-foreman2023climate" role="doc-biblioref">Foreman 2023</a>)</span></li>
280<li><a href="https://saforem2.github.io/l2hmc-qcd"><code>l2hmc-qcd</code></a> <!-- [@foreman2023-l2hmcqcd], [@foreman2021deep]--></li>
281</ul>
282<p>You can review the following documents for additional information:</p>
283<div id="listing-sample-listings" class="quarto-listing quarto-listing-container-table">
284<div class="listing-actions-group">
285   <div class="input-group input-group-sm quarto-listing-sort">
286     <span class="input-group-text"><i class="bi bi-sort-down"></i></span>
287     <select id="listing-sample-listings-sort" class="form-select" aria-label="Order By" onchange="window['quarto-listings']['listing-sample-listings'].sort(this.options[this.selectedIndex].value, { order: this.options[this.selectedIndex].getAttribute('data-direction')})">
288       <option value="" disabled="" selected="" hidden="">Order By</option>
289       <option value="index" data-direction="asc">Default</option>
290         <option value="listing-date-sort" data-direction="asc">
291          Date - Oldest
292        </option>
293         <option value="listing-date-sort" data-direction="desc">
294          Date - Newest
295        </option>
296         <option value="listing-title-sort" data-direction="asc">
297          Title
298        </option>
299         <option value="listing-author" data-direction="asc">
300          Author
301        </option>
302     </select>
303  </div>
304    <div class="input-group input-group-sm quarto-listing-filter">
305      <span class="input-group-text"><i class="bi bi-search"></i></span>
306      <input type="text" class="search form-control" placeholder="Filter">
307    </div>
308</div>
309
310<table class="quarto-listing-table table">
311<thead>
312<tr>
313<th>
314<a class="sort" data-sort="listing-date-sort" onclick="if (this.classList.contains('sort-asc')) { this.classList.add('sort-desc'); this.classList.remove('sort-asc') } else { this.classList.add('sort-asc'); this.classList.remove('sort-desc')} return false;">Date</a>
315</th>
316<th>
317<a class="sort" data-sort="listing-title-sort" onclick="if (this.classList.contains('sort-asc')) { this.classList.add('sort-desc'); this.classList.remove('sort-asc') } else { this.classList.add('sort-asc'); this.classList.remove('sort-desc')} return false;">Title</a>
318</th>
319<th>
320<a class="sort" data-sort="listing-author" onclick="if (this.classList.contains('sort-asc')) { this.classList.add('sort-desc'); this.classList.remove('sort-asc') } else { this.classList.add('sort-asc'); this.classList.remove('sort-desc')} return false;">Author</a>
321</th>
322</tr>
323</thead>
324<tbody class="list">
325<tr data-index="0" data-listing-date-sort="1695127555000" data-listing-file-modified-sort="1695127555658" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="3" data-listing-title-sort="Recent Talks" data-listing-filename-sort="slides.qmd">
326<td>
327<span class="listing-date">Sep 19, 2023</span>
328</td>
329<td>
330<a href="../qmd/slides.html" class="title listing-title">Recent Talks</a>
331</td>
332<td>
333<span class="listing-author">Sam Foreman <a href="https://orcid.org/0000-0002-9981-0876"><span class="orcid-green"><i class="ai  ai-orcid"></i></span></a></span>
334</td>
335</tr>
336<tr data-index="1" data-listing-date-sort="1695127096000" data-listing-file-modified-sort="1695127096877" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="2" data-listing-title-sort="(Less) Recent Talks" data-listing-filename-sort="slides-older.qmd">
337<td>
338<span class="listing-date">Sep 19, 2023</span>
339</td>
340<td>
341<a href="../qmd/slides-older.html" class="title listing-title">(Less) Recent Talks</a>
342</td>
343<td>
344<span class="listing-author">Sam Foreman <a href="https://orcid.org/0000-0002-9981-0876"><span class="orcid-green"><i class="ai  ai-orcid"></i></span></a></span>
345</td>
346</tr>
347<tr data-index="2" data-listing-date-sort="1695074654000" data-listing-file-modified-sort="1695074654079" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="14" data-listing-title-sort="Loooooooong Sequence Lengths" data-listing-filename-sort="dsblog.qmd">
348<td>
349<span class="listing-date">Sep 18, 2023</span>
350</td>
351<td>
352<a href="../qmd/dsblog.html" class="title listing-title">Loooooooong Sequence Lengths</a>
353</td>
354<td>
355<span class="listing-author">Sam Foreman <a href="https://orcid.org/0000-0002-9981-0876"><span class="orcid-green"><i class="ai  ai-orcid"></i></span></a></span>
356</td>
357</tr>
358<tr data-index="3" data-listing-date-sort="1694180022000" data-listing-file-modified-sort="1694180022144" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="1" data-listing-title-sort="Projects" data-listing-filename-sort="projects.qmd">
359<td>
360<span class="listing-date">Sep 8, 2023</span>
361</td>
362<td>
363<a href="../qmd/projects.html" class="title listing-title">Projects</a>
364</td>
365<td>
366<span class="listing-author">Sam Foreman <a href="https://orcid.org/0000-0002-9981-0876"><span class="orcid-green"><i class="ai  ai-orcid"></i></span></a></span>
367</td>
368</tr>
369<tr data-index="4" data-listing-date-sort="1692635941000" data-listing-file-modified-sort="1692635941507" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="1" data-listing-title-sort="How to make dope slides" data-listing-filename-sort="quarto-reveal.qmd">
370<td>
371<span class="listing-date">Aug 21, 2023</span>
372</td>
373<td>
374<a href="../qmd/blog/quarto-reveal.html" class="title listing-title">How to make dope slides</a>
375</td>
376<td>
377<span class="listing-author">Sam Foreman <a href="https://orcid.org/0000-0002-9981-0876"><span class="orcid-green"><i class="ai  ai-orcid"></i></span></a></span>
378</td>
379</tr>
380</tbody>
381
382</table>
383<div class="listing-no-matching d-none">
384No matching items
385</div>
386</div>
387<p>Learn more about Quarto <a href="https://www.quarto.com">here</a>.</p>
388
389
390
391
392</section>
393
394<a onclick="window.scrollTo(0, 0); return false;" role="button" id="quarto-back-to-top"><i class="bi bi-arrow-up"></i> Back to top</a><div id="quarto-appendix" class="default"><section class="quarto-appendix-contents" role="doc-bibliography"><h2 class="anchored quarto-appendix-heading">References</h2><div id="refs" class="references csl-bib-body hanging-indent" role="list">
395<div id="ref-foreman2023climate" class="csl-entry" role="listitem">
396Foreman, Sam. 2023. <span>“Energy <span>Justice</span> <span>Analysis</span> of <span>Climate</span> <span>Data</span> with <span>ClimRR</span>.”</span> August 7, 2023. <a href="https://saforem2.github.io/climate-analysis">https://saforem2.github.io/climate-analysis</a>.
397</div>
398</div></section><section class="quarto-appendix-contents"><h2 class="anchored quarto-appendix-heading">Citation</h2><div><div class="quarto-appendix-secondary-label">BibTeX citation:</div><pre class="sourceCode code-with-copy quarto-appendix-bibtex"><code class="sourceCode bibtex">@online{foreman2023,
399  author = {Foreman, Sam},
400  title = {Personal {Website}},
401  date = {2023-09-15},
402  url = {https://saforem2.github.io},
403  langid = {en}
404}
405</code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre><div class="quarto-appendix-secondary-label">For attribution, please cite this work as:</div><div id="ref-foreman2023" class="csl-entry quarto-appendix-citeas" role="listitem">
406Foreman, Sam. 2023. <span>“Personal Website.”</span> September 15, 2023.
407<a href="https://saforem2.github.io">https://saforem2.github.io</a>.
408</div></div></section></div></main> <!-- /main -->
409<script id="quarto-html-after-body" type="application/javascript">
410window.document.addEventListener("DOMContentLoaded", function (event) {
411  const toggleBodyColorMode = (bsSheetEl) => {
412    const mode = bsSheetEl.getAttribute("data-mode");
413    const bodyEl = window.document.querySelector("body");
414    if (mode === "dark") {
415      bodyEl.classList.add("quarto-dark");
416      bodyEl.classList.remove("quarto-light");
417    } else {
418      bodyEl.classList.add("quarto-light");
419      bodyEl.classList.remove("quarto-dark");
420    }
421  }
422  const toggleBodyColorPrimary = () => {
423    const bsSheetEl = window.document.querySelector("link#quarto-bootstrap");
424    if (bsSheetEl) {
425      toggleBodyColorMode(bsSheetEl);
426    }
427  }
428  toggleBodyColorPrimary();  
429  const disableStylesheet = (stylesheets) => {
430    for (let i=0; i < stylesheets.length; i++) {
431      const stylesheet = stylesheets[i];
432      stylesheet.rel = 'prefetch';
433    }
434  }
435  const enableStylesheet = (stylesheets) => {
436    for (let i=0; i < stylesheets.length; i++) {
437      const stylesheet = stylesheets[i];
438      stylesheet.rel = 'stylesheet';
439    }
440  }
441  const manageTransitions = (selector, allowTransitions) => {
442    const els = window.document.querySelectorAll(selector);
443    for (let i=0; i < els.length; i++) {
444      const el = els[i];
445      if (allowTransitions) {
446        el.classList.remove('notransition');
447      } else {
448        el.classList.add('notransition');
449      }
450    }
451  }
452  const toggleColorMode = (alternate) => {
453    // Switch the stylesheets
454    const alternateStylesheets = window.document.querySelectorAll('link.quarto-color-scheme.quarto-color-alternate');
455    manageTransitions('#quarto-margin-sidebar .nav-link', false);
456    if (alternate) {
457      enableStylesheet(alternateStylesheets);
458      for (const sheetNode of alternateStylesheets) {
459        if (sheetNode.id === "quarto-bootstrap") {
460          toggleBodyColorMode(sheetNode);
461        }
462      }
463    } else {
464      disableStylesheet(alternateStylesheets);
465      toggleBodyColorPrimary();
466    }
467    manageTransitions('#quarto-margin-sidebar .nav-link', true);
468    // Switch the toggles
469    const toggles = window.document.querySelectorAll('.quarto-color-scheme-toggle');
470    for (let i=0; i < toggles.length; i++) {
471      const toggle = toggles[i];
472      if (toggle) {
473        if (alternate) {
474          toggle.classList.add("alternate");     
475        } else {
476          toggle.classList.remove("alternate");
477        }
478      }
479    }
480    // Hack to workaround the fact that safari doesn't
481    // properly recolor the scrollbar when toggling (#1455)
482    if (navigator.userAgent.indexOf('Safari') > 0 && navigator.userAgent.indexOf('Chrome') == -1) {
483      manageTransitions("body", false);
484      window.scrollTo(0, 1);
485      setTimeout(() => {
486        window.scrollTo(0, 0);
487        manageTransitions("body", true);
488      }, 40);  
489    }
490  }
491  const isFileUrl = () => { 
492    return window.location.protocol === 'file:';
493  }
494  const hasAlternateSentinel = () => {  
495    let styleSentinel = getColorSchemeSentinel();
496    if (styleSentinel !== null) {
497      return styleSentinel === "alternate";
498    } else {
499      return false;
500    }
501  }
502  const setStyleSentinel = (alternate) => {
503    const value = alternate ? "alternate" : "default";
504    if (!isFileUrl()) {
505      window.localStorage.setItem("quarto-color-scheme", value);
506    } else {
507      localAlternateSentinel = value;
508    }
509  }
510  const getColorSchemeSentinel = () => {
511    if (!isFileUrl()) {
512      const storageValue = window.localStorage.getItem("quarto-color-scheme");
513      return storageValue != null ? storageValue : localAlternateSentinel;
514    } else {
515      return localAlternateSentinel;
516    }
517  }
518  let localAlternateSentinel = 'alternate';
519  // Dark / light mode switch
520  window.quartoToggleColorScheme = () => {
521    // Read the current dark / light value 
522    let toAlternate = !hasAlternateSentinel();
523    toggleColorMode(toAlternate);
524    setStyleSentinel(toAlternate);
525  };
526  // Ensure there is a toggle, if there isn't float one in the top right
527  if (window.document.querySelector('.quarto-color-scheme-toggle') === null) {
528    const a = window.document.createElement('a');
529    a.classList.add('top-right');
530    a.classList.add('quarto-color-scheme-toggle');
531    a.href = "";
532    a.onclick = function() { try { window.quartoToggleColorScheme(); } catch {} return false; };
533    const i = window.document.createElement("i");
534    i.classList.add('bi');
535    a.appendChild(i);
536    window.document.body.appendChild(a);
537  }
538  // Switch to dark mode if need be
539  if (hasAlternateSentinel()) {
540    toggleColorMode(true);
541  } else {
542    toggleColorMode(false);
543  }
544  const icon = "";
545  const anchorJS = new window.AnchorJS();
546  anchorJS.options = {
547    placement: 'right',
548    icon: icon
549  };
550  anchorJS.add('.anchored');
551  const isCodeAnnotation = (el) => {
552    for (const clz of el.classList) {
553      if (clz.startsWith('code-annotation-')) {                     
554        return true;
555      }
556    }
557    return false;
558  }
559  const clipboard = new window.ClipboardJS('.code-copy-button', {
560    text: function(trigger) {
561      const codeEl = trigger.previousElementSibling.cloneNode(true);
562      for (const childEl of codeEl.children) {
563        if (isCodeAnnotation(childEl)) {
564          childEl.remove();
565        }
566      }
567      return codeEl.innerText;
568    }
569  });
570  clipboard.on('success', function(e) {
571    // button target
572    const button = e.trigger;
573    // don't keep focus
574    button.blur();
575    // flash "checked"
576    button.classList.add('code-copy-button-checked');
577    var currentTitle = button.getAttribute("title");
578    button.setAttribute("title", "Copied!");
579    let tooltip;
580    if (window.bootstrap) {
581      button.setAttribute("data-bs-toggle", "tooltip");
582      button.setAttribute("data-bs-placement", "left");
583      button.setAttribute("data-bs-title", "Copied!");
584      tooltip = new bootstrap.Tooltip(button, 
585        { trigger: "manual", 
586          customClass: "code-copy-button-tooltip",
587          offset: [0, -8]});
588      tooltip.show();    
589    }
590    setTimeout(function() {
591      if (tooltip) {
592        tooltip.hide();
593        button.removeAttribute("data-bs-title");
594        button.removeAttribute("data-bs-toggle");
595        button.removeAttribute("data-bs-placement");
596      }
597      button.setAttribute("title", currentTitle);
598      button.classList.remove('code-copy-button-checked');
599    }, 1000);
600    // clear code selection
601    e.clearSelection();
602  });
603  const viewSource = window.document.getElementById('quarto-view-source') ||
604                     window.document.getElementById('quarto-code-tools-source');
605  if (viewSource) {
606    const sourceUrl = viewSource.getAttribute("data-quarto-source-url");
607    viewSource.addEventListener("click", function(e) {
608      if (sourceUrl) {
609        // rstudio viewer pane
610        if (/\bcapabilities=\b/.test(window.location)) {
611          window.open(sourceUrl);
612        } else {
613          window.location.href = sourceUrl;
614        }
615      } else {
616        const modal = new bootstrap.Modal(document.getElementById('quarto-embedded-source-code-modal'));
617        modal.show();
618      }
619      return false;
620    });
621  }
622  function toggleCodeHandler(show) {
623    return function(e) {
624      const detailsSrc = window.document.querySelectorAll(".cell > details > .sourceCode");
625      for (let i=0; i<detailsSrc.length; i++) {
626        const details = detailsSrc[i].parentElement;
627        if (show) {
628          details.open = true;
629        } else {
630          details.removeAttribute("open");
631        }
632      }
633      const cellCodeDivs = window.document.querySelectorAll(".cell > .sourceCode");
634      const fromCls = show ? "hidden" : "unhidden";
635      const toCls = show ? "unhidden" : "hidden";
636      for (let i=0; i<cellCodeDivs.length; i++) {
637        const codeDiv = cellCodeDivs[i];
638        if (codeDiv.classList.contains(fromCls)) {
639          codeDiv.classList.remove(fromCls);
640          codeDiv.classList.add(toCls);
641        } 
642      }
643      return false;
644    }
645  }
646  const hideAllCode = window.document.getElementById("quarto-hide-all-code");
647  if (hideAllCode) {
648    hideAllCode.addEventListener("click", toggleCodeHandler(false));
649  }
650  const showAllCode = window.document.getElementById("quarto-show-all-code");
651  if (showAllCode) {
652    showAllCode.addEventListener("click", toggleCodeHandler(true));
653  }
654  function tippyHover(el, contentFn) {
655    const config = {
656      allowHTML: true,
657      content: contentFn,
658      maxWidth: 500,
659      delay: 100,
660      arrow: false,
661      appendTo: function(el) {
662          return el.parentElement;
663      },
664      interactive: true,
665      interactiveBorder: 10,
666      theme: 'quarto',
667      placement: 'bottom-start'
668    };
669    window.tippy(el, config); 
670  }
671  const noterefs = window.document.querySelectorAll('a[role="doc-noteref"]');
672  for (var i=0; i<noterefs.length; i++) {
673    const ref = noterefs[i];
674    tippyHover(ref, function() {
675      // use id or data attribute instead here
676      let href = ref.getAttribute('data-footnote-href') || ref.getAttribute('href');
677      try { href = new URL(href).hash; } catch {}
678      const id = href.replace(/^#\/?/, "");
679      const note = window.document.getElementById(id);
680      return note.innerHTML;
681    });
682  }
683      let selectedAnnoteEl;
684      const selectorForAnnotation = ( cell, annotation) => {
685        let cellAttr = 'data-code-cell="' + cell + '"';
686        let lineAttr = 'data-code-annotation="' +  annotation + '"';
687        const selector = 'span[' + cellAttr + '][' + lineAttr + ']';
688        return selector;
689      }
690      const selectCodeLines = (annoteEl) => {
691        const doc = window.document;
692        const targetCell = annoteEl.getAttribute("data-target-cell");
693        const targetAnnotation = annoteEl.getAttribute("data-target-annotation");
694        const annoteSpan = window.document.querySelector(selectorForAnnotation(targetCell, targetAnnotation));
695        const lines = annoteSpan.getAttribute("data-code-lines").split(",");
696        const lineIds = lines.map((line) => {
697          return targetCell + "-" + line;
698        })
699        let top = null;
700        let height = null;
701        let parent = null;
702        if (lineIds.length > 0) {
703            //compute the position of the single el (top and bottom and make a div)
704            const el = window.document.getElementById(lineIds[0]);
705            top = el.offsetTop;
706            height = el.offsetHeight;
707            parent = el.parentElement.parentElement;
708          if (lineIds.length > 1) {
709            const lastEl = window.document.getElementById(lineIds[lineIds.length - 1]);
710            const bottom = lastEl.offsetTop + lastEl.offsetHeight;
711            height = bottom - top;
712          }
713          if (top !== null && height !== null && parent !== null) {
714            // cook up a div (if necessary) and position it 
715            let div = window.document.getElementById("code-annotation-line-highlight");
716            if (div === null) {
717              div = window.document.createElement("div");
718              div.setAttribute("id", "code-annotation-line-highlight");
719              div.style.position = 'absolute';
720              parent.appendChild(div);
721            }
722            div.style.top = top - 2 + "px";
723            div.style.height = height + 4 + "px";
724            let gutterDiv = window.document.getElementById("code-annotation-line-highlight-gutter");
725            if (gutterDiv === null) {
726              gutterDiv = window.document.createElement("div");
727              gutterDiv.setAttribute("id", "code-annotation-line-highlight-gutter");
728              gutterDiv.style.position = 'absolute';
729              const codeCell = window.document.getElementById(targetCell);
730              const gutter = codeCell.querySelector('.code-annotation-gutter');
731              gutter.appendChild(gutterDiv);
732            }
733            gutterDiv.style.top = top - 2 + "px";
734            gutterDiv.style.height = height + 4 + "px";
735          }
736          selectedAnnoteEl = annoteEl;
737        }
738      };
739      const unselectCodeLines = () => {
740        const elementsIds = ["code-annotation-line-highlight", "code-annotation-line-highlight-gutter"];
741        elementsIds.forEach((elId) => {
742          const div = window.document.getElementById(elId);
743          if (div) {
744            div.remove();
745          }
746        });
747        selectedAnnoteEl = undefined;
748      };
749      // Attach click handler to the DT
750      const annoteDls = window.document.querySelectorAll('dt[data-target-cell]');
751      for (const annoteDlNode of annoteDls) {
752        annoteDlNode.addEventListener('click', (event) => {
753          const clickedEl = event.target;
754          if (clickedEl !== selectedAnnoteEl) {
755            unselectCodeLines();
756            const activeEl = window.document.querySelector('dt[data-target-cell].code-annotation-active');
757            if (activeEl) {
758              activeEl.classList.remove('code-annotation-active');
759            }
760            selectCodeLines(clickedEl);
761            clickedEl.classList.add('code-annotation-active');
762          } else {
763            // Unselect the line
764            unselectCodeLines();
765            clickedEl.classList.remove('code-annotation-active');
766          }
767        });
768      }
769  const findCites = (el) => {
770    const parentEl = el.parentElement;
771    if (parentEl) {
772      const cites = parentEl.dataset.cites;
773      if (cites) {
774        return {
775          el,
776          cites: cites.split(' ')
777        };
778      } else {
779        return findCites(el.parentElement)
780      }
781    } else {
782      return undefined;
783    }
784  };
785  var bibliorefs = window.document.querySelectorAll('a[role="doc-biblioref"]');
786  for (var i=0; i<bibliorefs.length; i++) {
787    const ref = bibliorefs[i];
788    const citeInfo = findCites(ref);
789    if (citeInfo) {
790      tippyHover(citeInfo.el, function() {
791        var popup = window.document.createElement('div');
792        citeInfo.cites.forEach(function(cite) {
793          var citeDiv = window.document.createElement('div');
794          citeDiv.classList.add('hanging-indent');
795          citeDiv.classList.add('csl-entry');
796          var biblioDiv = window.document.getElementById('ref-' + cite);
797          if (biblioDiv) {
798            citeDiv.innerHTML = biblioDiv.innerHTML;
799          }
800          popup.appendChild(citeDiv);
801        });
802        return popup.innerHTML;
803      });
804    }
805  }
806});
807</script>
807
808</div> <!-- /content -->
809<footer class="footer">
810  <div class="nav-footer">
811    <div class="nav-footer-left"><a href="saforem2.github.io">saforem2.github.io</a></div>   
812    <div class="nav-footer-center">
813      <ul class="footer-items list-unstyled">
814    <li class="nav-item">
815    <a class="nav-link" href="https://samforeman.me"><i class="fa-solid fa-home" aria-label="home"></i></a>
816  </li>  
817    <li class="nav-item compact">
818    <a class="nav-link" href="https://github.com/saforem2">
819      <i class="bi bi-github" role="img">
820</i> 
821    </a>
822  </li>  
823    <li class="nav-item compact">
824    <a class="nav-link" href="https://twitter.com/saforem2">
825      <i class="bi bi-twitter" role="img">
826</i> 
827    </a>
828  </li>  
829    <li class="nav-item">
830    <a class="nav-link" href="mailto:///[email protected]"><i class="fa-regular fa-paper-plane" aria-label="paper-plane"></i></a>
831  </li>  
832    <li class="nav-item">
833    <a class="nav-link" href="https://www.twitter.com/saforem2"><i class="fa-brands fa-twitter" aria-label="twitter"></i></a>
834  </li>  
835    <li class="nav-item">
836    <a class="nav-link" href="https://scholar.google.com/citations?user=vV_1zDwAAAAJ&amp;hl=en"><i class="ai  ai-google-scholar"></i></a>
837  </li>  
838    <li class="nav-item">
839    <a class="nav-link" href="https://orcid.org/0000-0002-9981-0876"><i class="ai  ai-orcid"></i></a>
840  </li>  
841    <li class="nav-item">
842    <a class="nav-link" href="https://www.last.fm/user/saforem2"><i class="fa-brands fa-lastfm" aria-label="lastfm"></i></a>
843  </li>  
844    <li class="nav-item">
845    <a class="nav-link" href="https://open.spotify.com/user/saforem2"><i class="fa-brands fa-spotify" aria-label="spotify"></i></a>
846  </li>  
847    <li class="nav-item">
848    <a class="nav-link" href="https://www.instagram.com/saforem2"><i class="fa-brands fa-instagram" aria-label="instagram"></i></a>
849  </li>  
850    <li class="nav-item">
851    <a class="nav-link" href="https://linkedin.com/in/saforem2"><i class="fa-brands fa-linkedin" aria-label="linkedin"></i></a>
852  </li>  
853</ul>
854    </div>
855    <div class="nav-footer-right">Copyright 2023, Sam Foreman</div>
856  </div>
857</footer>
858
859
860
861</body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.