Skip to content

Commit 0f31f90

Browse files
committed
Improve the front page.
Implement a carousel and split the text into subpages. Addresses #2.
1 parent af57ae9 commit 0f31f90

File tree

10 files changed

+311
-67
lines changed

10 files changed

+311
-67
lines changed

_data/meetinglist.yml

+36-24
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
speaker: "Keno Fischer, JuliaComputing"
99
- title: "Calling ROOT from Julia in practice"
1010
speaker: "Oliver Schulz, Max-Planck-Institut für Physik"
11-
abstract: |
11+
description: |
1212
Julia can directly call C++ via the Cxx.jl package. This enables is to
1313
use basically all of ROOT's capabilities directly from Julia, including
1414
reading/writing TFiles and user ROOT's GUI features. I'll present some
@@ -28,7 +28,7 @@
2828
agenda:
2929
- title: "ORC 2021 -- Recent developments and future work in LLVM's JIT APIs"
3030
speaker: "Lang Hames, Apple"
31-
abstract: |
31+
description: |
3232
LLVM’s On Request Compilation (ORC) APIs provide a foundation for
3333
building in-memory and just-in-time compilers by re-using existing
3434
static compilers. This re-use is enabled by appending a new linking
@@ -40,10 +40,10 @@
4040
interpreter; and they remain under active development with new features
4141
added frequently. This talk will provide an overview of the ORC APIs and
4242
recent developments, as well as demos and pointers to example code.
43-
link: "[Slides](/assets/presentations/L_Hames-CaaS_ORC_JitLink.pdf)"
43+
slides: "/assets/presentations/L_Hames-CaaS_ORC_JitLink.pdf"
4444
- title: Update
4545
speaker: Vassil
46-
link: "[Slides](/assets/presentations/CaaS_01_07_2021.pdf)"
46+
slides: "/assets/presentations/CaaS_01_07_2021.pdf"
4747
- title: Round Table
4848
- title: Next meeting
4949
speaker: Vassil
@@ -59,7 +59,7 @@
5959
speaker: "William Moses, MIT"
6060
- title: Update
6161
speaker: Vassil
62-
link: "[Slides](/assets/presentations/CaaS_03_06_2021.pdf)"
62+
slides: "/assets/presentations/CaaS_03_06_2021.pdf"
6363
- title: Round Table
6464
- title: Next meeting
6565
speaker: Vassil
@@ -73,11 +73,10 @@
7373
agenda:
7474
- title: "GPU Acceleration of Automatic Differentiation in C++ with Clad"
7575
speaker: "Ioana Ifrim, Princeton"
76-
link: |
77-
[Slides](/assets/presentations/I_Ifrim-GPU_AD.pdf)
76+
slides: "/assets/presentations/I_Ifrim-GPU_AD.pdf"
7877
- title: Update
7978
speaker: Vassil
80-
link: "[Slides](/assets/presentations/CaaS_06_05_2021.pdf)"
79+
slides: "/assets/presentations/CaaS_06_05_2021.pdf"
8180
- title: Round Table
8281
- title: Next meeting
8382
speaker: Vassil
@@ -91,12 +90,16 @@
9190
agenda:
9291
- title: "Deep dive into the Xeus-based Cling kernel for Jupyter"
9392
speaker: "Sylvain Corlay, QuantStack"
94-
link: |
95-
[Slides](/assets/presentations/S_Corlay-CaaS_Xeus-Cling.pdf)
96-
[Video](https://youtu.be/kx3wvKk4Qss)
93+
slides: "/assets/presentations/S_Corlay-CaaS_Xeus-Cling.pdf"
94+
video: https://youtu.be/kx3wvKk4Qss
95+
description: |
96+
Sylvain Corlay from QuantStack talks about C++ in Jupyter Notebooks
97+
using the Xeus-Cling. Xeus-Cling is a Cling-based notebook kernel which
98+
delivers interactive C++. Sylvain makes a deep dive in topic outlining
99+
some of the specific challenges and requirements.
97100
- title: Update
98101
speaker: Vassil
99-
link: "[Slides](/assets/presentations/CaaS_25_03_2021.pdf)"
102+
slides: "/assets/presentations/CaaS_25_03_2021.pdf"
100103
- title: Round Table
101104
- title: Next meeting
102105
speaker: Vassil
@@ -111,12 +114,18 @@
111114
agenda:
112115
- title: "Cling’s CUDA Backend: Interactive GPU development with CUDA C++"
113116
speaker: "Simeon Ehrig, HZDR"
114-
link: |
115-
[Slides](/assets/presentations/S_Ehrig-CaaS_Cling-CUDA.pdf)
116-
[Video](https://youtu.be/HEGDII5lAfo)
117+
slides: "/assets/presentations/S_Ehrig-CaaS_Cling-CUDA.pdf"
118+
video: https://youtu.be/HEGDII5lAfo
119+
description: |
120+
Simeon Ehrig from Helmholtz-Zentrum Dresden-Rossendorf (HZDR) shared his
121+
work with us recently. In his talk he gives insights about interactive
122+
CUDA using the C++ interpreter Cling. He shows several exciting examples
123+
in the area of dynamic execution without loss of state where we can
124+
"checkpoint" the execution state, add specific data analysis and reuse
125+
the previous computations.
117126
- title: Update
118127
speaker: Vassil
119-
link: "[Slides](/assets/presentations/CaaS_04_03_2021.pdf)"
128+
slides: "/assets/presentations/CaaS_04_03_2021.pdf"
120129
- title: Round Table
121130
- title: Next meeting
122131
speaker: Vassil
@@ -131,14 +140,17 @@
131140
agenda:
132141
- title: "Calling C++ libraries from a D-written DSL: A cling/cppyy-based approach"
133142
speaker: Alexandru Militaru
134-
link: |
135-
[Slides](/assets/presentations/A_Militaru-Calling_Cpp_libraries_from_a_D-written_DSL.pdf)
136-
[Video](https://youtu.be/7teqrCNzrD8)
143+
slides: "/assets/presentations/A_Militaru-Calling_Cpp_libraries_from_a_D-written_DSL.pdf"
144+
video: https://youtu.be/7teqrCNzrD8
145+
description: |
146+
Alexandru Militaru shared his work with us recently. In his talk he
147+
gives insights about C++/D interoperability on the fly using the
148+
interactive C++ interpreter Cling and cppyy.
137149
- title: "Calling C++ libraries from a D-written DSL: A cling/cppyy-based approach. Demo"
138150
speaker: Alexandru Militaru
139151
- title: Update
140152
speaker: Vassil
141-
link: "[Slides](/assets/presentations/CaaS_04_02_2021.pdf)"
153+
slides: "/assets/presentations/CaaS_04_02_2021.pdf"
142154
- title: Round Table
143155
- title: Next meeting
144156
speaker: Vassil
@@ -152,7 +164,7 @@
152164
agenda:
153165
- title: Update
154166
speaker: Vassil
155-
link: "[Slides](/assets/presentations/CaaS_14_01_2021.pdf)"
167+
slides: "/assets/presentations/CaaS_14_01_2021.pdf"
156168
- title: Round Table
157169
- title: Next meeting
158170
speaker: Vassil
@@ -166,7 +178,7 @@
166178
agenda:
167179
- title: Update
168180
speaker: Vassil
169-
link: "[Slides](/assets/presentations/CaaS_03_12_2020.pdf)"
181+
slides: "/assets/presentations/CaaS_03_12_2020.pdf"
170182
- title: Round Table
171183
- title: Next meeting
172184
speaker: Vassil
@@ -180,7 +192,7 @@
180192
agenda:
181193
- title: Update
182194
speaker: Vassil
183-
link: "[Slides](/assets/presentations/CaaS_22_10_2020.pdf)"
195+
slides: "/assets/presentations/CaaS_22_10_2020.pdf"
184196
- title: Round Table
185197
- title: Next meeting
186198
speaker: Vassil
@@ -194,5 +206,5 @@
194206
agenda:
195207
- title: Project introduction
196208
speaker: Vassil
197-
link: "[Slides](https://drive.google.com/file/d/1YF6B2VkeOGsWKz7GRZQTf-C0myq2Dh3I/view?usp=sharing)"
209+
slides: "https://drive.google.com/file/d/1YF6B2VkeOGsWKz7GRZQTf-C0myq2Dh3I"
198210
- title: Round Table

_data/preslist.yml

+1-2
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,15 @@
66
artifacts: "[Link to slides](https://indico.cern.ch/event/1040761/contributions/4400258/attachments/2268253/3851595/Ioana%20Ifrim%20-%20GPU%20Acceleration%20of%20Automatic%20Differentiation%20in%20C%2B%2B%20with%20Clad.pdf)"
77

88
- title: "Floating point error estimation using Clad -- Project Roadmap"
9-
description: My abstract
109
location: "Onboarding meetup"
1110
speaker: G Singh
1211
date: 2020-12-15
12+
description:
1313
artifacts:
1414
- "[pdf](/assets/presentations/ErrorEstimationWithClad_15_12_2020.pdf), "
1515
- "[pptx](/assets/presentations/ErrorEstimationWithClad_15_12_2020.pptx)"
1616

1717
- title: "Error estimates of floating-point numbers and Jacobian matrix computation in Clad"
18-
description: My abstract
1918
location: "[2020 LLVM workshop](https://llvm.org/devmtg/2020-09/)"
2019
speaker: V Vassilev
2120
date: 2020-10-07

_includes/carousel.html

+44
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
{% comment %}
2+
FIXME: We should upload videos and adjust our preslists.
3+
{% assign sorted_pres = site.data.preslist | where_exp: "item", "item.video" %}
4+
{% endcomment %}
5+
{% assign sorted_pres = site.data.meetinglist | map: "agenda" %}
6+
7+
{% comment %}
8+
The `map:` returns array of arrays which we need to flatten to achieve a
9+
similar workflow.
10+
{% endcomment %}
11+
12+
{% assign flatten = "" | split: "," %}
13+
{% for pres in sorted_pres %}
14+
{% assign flatten = flatten | push: pres[0] %}
15+
{% endfor %}
16+
17+
{% assign sorted_pres = flatten | where_exp: "item", "item.video" %}
18+
19+
<div markdown="0" id="carousel" class="carousel slide" data-interval="false" data-pause="hover" >
20+
<!-- Items -->
21+
<div class="carousel-inner" markdown="0">
22+
{% for pres in sorted_pres %}
23+
<div class="item {% if forloop.first %}active{% endif %}">
24+
{% if pres.image %}
25+
<img class="d-block mx-auto" src="{{ '/assets/showcase/' | relative_url }}{{ project.image }}" alt="{{ project.ref }}" height="500px">
26+
{% elsif pres.video %}
27+
<p style="margin:0">{{ pres.video }}</p>
28+
{% endif %}
29+
<div class="carousel-caption d-none d-md-block">
30+
<h4>{{ pres.title }}</h4>
31+
<p>{{ pres.description }}</p>
32+
</div>
33+
</div>
34+
{% endfor %}
35+
</div>
36+
37+
<a class="left carousel-control" href="#carousel" data-slide="prev"><span class="glyphicon glyphicon-chevron-left"></span></a>
38+
<div class="carousel-indicators">
39+
{% for pres in sorted_pres %}
40+
<li data-target="#carousel" data-slide-to="{{ forloop.index0 }}" {% if forloop.first %}class="active"{% endif %}></li>
41+
{% endfor %}
42+
</div>
43+
<a class="right carousel-control" href="#carousel" data-slide="next"><span class="glyphicon glyphicon-chevron-right"></span></a>
44+
</div>

_includes/head.html

+2-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
77
<link rel="stylesheet" href="{{ "/css/main.css" | prepend: site.baseurl | prepend: site.url}}">
88
<link rel="stylesheet" href="{{ "/css/syntax.css" | prepend: site.baseurl | prepend: site.url}}">
99
<link rel="canonical" href="{{ page.url | replace:'index.html','' | prepend: site.baseurl | prepend: site.url }}">
10-
<link rel="shortcut icon" type ="image/x-icon" href="{{ site.url }}{{ site.baseurl }}/images/favicon.ico">
10+
<link rel="shortcut icon" type ="image/x-icon" href="{{ site.url }}{{ site.baseurl }}/images/favicon.ico">
11+
<link href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap-glyphicons.css" rel="stylesheet">
1112

1213
{% if jekyll.environment == 'production' %}
1314
{% include analytics.html %}

_includes/open-embed.html

+95
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
<style>
2+
.videoWrapper {
3+
position: relative;
4+
padding-bottom: 56.333%;
5+
height: 0;
6+
background: black;
7+
}
8+
.videoWrapper iframe {
9+
position: absolute;
10+
top: 0;
11+
left: 0;
12+
width: 100%;
13+
height: 100%;
14+
border: 0;
15+
}
16+
</style>
17+
18+
<script>
19+
function get_youtube_id(url) {
20+
var p = /^(?:https?:\/\/)?(?:www\.)?(?:youtu\.be\/|youtube\.com\/(?:embed\/|v\/|watch\?v=|watch\?.+&v=))((\w|-){11})(?:\S+)?$/;
21+
return (url.match(p)) ? RegExp.$1 : false;
22+
}
23+
function vimeo_embed(url,el) {
24+
var id = false;
25+
$.ajax({
26+
url: 'https://vimeo.com/api/oembed.json?url='+url,
27+
async: true,
28+
success: function(response) {
29+
if(response.video_id) {
30+
id = response.video_id;
31+
if (url.indexOf('autoplay=1') !== -1) var autoplay=1; else var autoplay=0;
32+
if (url.indexOf('loop=1') !== -1) var loop=1; else var loop=0;
33+
var theInnerHTML = '<div class="videoWrapper"><iframe src="https://player.vimeo.com/video/'+id+'/?byline=0&title=0&portrait=0';
34+
if (autoplay==1) theInnerHTML += '&autoplay=1';
35+
if (loop==1) theInnerHTML += '&loop=1';
36+
theInnerHTML += '" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe></div>';
37+
el.innerHTML = theInnerHTML;
38+
}
39+
}
40+
});
41+
}
42+
function video_embed() {
43+
var p = document.getElementsByTagName('p');
44+
for(var i = 0; i < p.length; i++) {
45+
//check if this is an external url (that starts with https:// or http://
46+
if (p[i].innerHTML.indexOf("http://") == 0 ||
47+
p[i].innerHTML.indexOf("https://") == 0) {
48+
var youtube_id = get_youtube_id(p[i].innerHTML);
49+
if(youtube_id) {
50+
if(p[i].innerHTML.indexOf('autoplay=1') !== -1) var autoplay=1; else var autoplay=0;
51+
if(p[i].innerHTML.indexOf('loop=1') !== -1) var loop=1; else var loop=0;
52+
var theInnerHTML = '<div class="videoWrapper"><iframe width="720" height="420" src="https://www.youtube.com/embed/' + youtube_id + '?rel=0&showinfo=0';
53+
if(autoplay==1) theInnerHTML += '&autoplay=1';
54+
if(loop==1) theInnerHTML += '&loop=1&playlist='+youtube_id+'&version=3';
55+
if(p[i].innerHTML.indexOf('start=') !== -1) theInnerHTML += '&start='+p[i].innerHTML.substring(p[i].innerHTML.indexOf('start=')+6);
56+
theInnerHTML += '" frameborder="0" allowfullscreen></iframe></div>';
57+
p[i].innerHTML = theInnerHTML;
58+
}
59+
if(p[i].innerHTML.indexOf('vimeo.com') !== -1) {
60+
//ask vimeo for the id and place the embed
61+
vimeo_embed(p[i].innerHTML,p[i]);
62+
}
63+
}
64+
}
65+
}
66+
video_embed();
67+
68+
function mp3_embed() {
69+
var p = document.getElementsByTagName('p');
70+
for (var i = 0; i < p.length; i++) {
71+
if (p[i].innerHTML.indexOf('.mp3') !== -1) {
72+
var str = p[i].innerHTML.split('?');
73+
if (str.length == 1) str[1] = '';
74+
var str1 = str[1];
75+
str1 = str1.replace('&','').replace('&','');
76+
str1 = str1.replace('autoplay=1','').replace('autoplay=0','');
77+
str1 = str1.replace('loop=1','').replace('loop=0','');
78+
str1 = str1.replace('controls=0','').replace('controls=1','');
79+
80+
if (str[0].lastIndexOf('.mp3', str[0].length - 4) === str[0].length - 4 && str1.length == 0) {
81+
if(str[1].indexOf('autoplay=1') !== -1) var autoplay=1; else var autoplay=0;
82+
if(str[1].indexOf('loop=1') !== -1) var loop=1; else var loop=0;
83+
if(str[1].indexOf('controls=0') !== -1) var controls=0; else var controls=1;
84+
var newInnerHTML = '<audio';
85+
if (autoplay==1) newInnerHTML += ' autoplay';
86+
if (loop==1) newInnerHTML += ' loop';
87+
if (controls==1) newInnerHTML += ' controls';
88+
newInnerHTML += '><source src="'+str[0]+'" type="audio/mpeg">Your browser does not support the audio element.</audio>';
89+
p[i].innerHTML = newInnerHTML;
90+
}
91+
}
92+
}
93+
}
94+
mp3_embed();
95+
</script>

_layouts/homelay.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
---
44

55
<div id="homeid" class="col-sm-8">
6-
<h2>Enabling scientists to program for speed, Interoperability, Interactivity, Flexibility, and Reproducibility</h2>
6+
<h2>Welcome to our Compiler Research Group</h2>
77

88
{{ content }}
99
</div>

0 commit comments

Comments
 (0)