Skip to content

Commit

Permalink
Trying out routing
Browse files Browse the repository at this point in the history
  • Loading branch information
olekscode committed Jun 19, 2024
1 parent ff7f605 commit 9a06642
Show file tree
Hide file tree
Showing 7 changed files with 225 additions and 138 deletions.
152 changes: 16 additions & 136 deletions website/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -80,10 +80,10 @@
<header>
<nav>
<div class="nav-buttons" id="nav-buttons">
<a href="" rel="noopener noreferrer" class="active">Home</a>
<a href="" rel="noopener noreferrer">Venue</a>
<a href="" rel="noopener noreferrer">Program</a>
<a href="" rel="noopener noreferrer">Learning Resources</a>
<a href="/" rel="noopener noreferrer" class="active">Home</a>
<a href="/venue" rel="noopener noreferrer">Venue</a>
<a href="/program" rel="noopener noreferrer">Program</a>
<a href="/resources" rel="noopener noreferrer">Learning Resources</a>
<a href="javascript:void(0);" class="icon" onclick="toggleTopMenu()">
<i class="fa fa-bars"></i>
</a>
Expand All @@ -92,145 +92,25 @@
</header>

<main>
<h1><span style="color: var(--color-dark-gray)">isLoop 2024:</span> International School on Live
Object-Oriented Programming</h1>

<p>Dear students,</p>
<p>We are happy to announce that once again, Pharo Consortium is
organizing an international cost-free summer school.</p>
<p>Pay attention the places are limited because this is a cool summer
school in a cool place.</p>
<p>
If you have any additional questions, feel free to contact us at

<!-- Obfuscated email address -->
<a id="mlink1" href="#">
<span class="ltrText">
rf&#46;dar<!-- bots -->ic&#64;<!--
-->vest<!-- go -->iaz&#46;rdnask<!-- away -->elo
</span>
</a>

&nbsp;or

<!-- Obfuscated email address -->
<a id="mlink2" href="#">
<span class="ltrText">
rf&#46;air<!-- bots -->ni&#64;<!--
-->essa<!-- go -->cud&#46;enahp<!-- away -->ets
</span>
</a>
</p>

<h2>Registration</h2>

To register, please fill the following
<a
target="_blank"
rel="noopener noreferrer"
href=""
>Form</a>.
The deadline for applications is July 20, 2024.

<h2>Timeline</h2>

<ul>
<li><b>09h00 - 10h30:</b> Morning courses</li>
<li><b>10h30 - 10h45:</b> Coffee break</li>
<li><b>10h45 - 12h15:</b> Morning courses</li>
<li><b>12h15 - 13h15:</b> Lunch time</li>
<li><b>13h15 - 14h45:</b> Afternoon courses</li>
<li><b>14h45 - 15h00:</b> Coffee break</li>
<li><b>15h00 - 16h30:</b> Afternoon courses</li>
</ul>

<h2>Summer School Teachers</h2>

<div class="teacher-container">
<img class="teacher-photo" src="./img/portraits/stephane.jpeg" />

<div class="teacher-text">
<h3>Stéphane Ducasse</h3>

<p>I'm an expert in object design, object language design, reflective
programming, and the maintenance and evolution of large applications
(visualization, metrics, meta-modeling). My work on traits has been
introduced in AmbientTalk, Slate, Pharo, Perl-6, PHP 5.4 and Squeak.
They have been ported to JavaScript. It has influenced the Scala an
Fortress languages.</p>

<p>I'm one of the founders of <a href="http://pharo.org">Pharo</a>.
I head its industry consortium http://consortium.pharo.org. I'm one
of the designers of <a href="https://modularmoose.org">Moose</a>, an
analysis platform. I regularly work with companies such as Arolla,
Berger-Levrault, Thales, Framatome, Siemens, CIM, Worldline to solve
their challenges.</p>
</div>
</div>

<div class="teacher-container">
<img class="teacher-photo" src="./img/portraits/guillermo.jpeg" />

<div class="teacher-text">
<h3>Guillermo Polito</h3>

<p>Coding enthusiast. Mad hatter. Software engineer and researcher.
I am currently an Inria Researcher at the CRIStAL laboratory, where
I am expert in software engineering and language implementations,
with a particular focus on test generation. I work in the Evref
team from Inria Lille-Nord Europe.</p>

<p>I actively participate in the development of the open source Pharo
programming language and environment since 2010, and I am a member
of its technical board since 2018.</p>
</div>
</div>

<div class="teacher-container">
<img class="teacher-photo" src="./img/portraits/sebastian.jpeg" />

<div class="teacher-text">
<h3>Sebastian Jordan-Montaño</h3>

<p>I am a PhD student working on memory profilers. I work at Inria,
France in the Evref team.</p>

<p>I was one of the main developers of the pharo-ai project contributing
and building different libraries for machine learning algorithms,
statistical metrics, data preprocessing, and AI in general. At Inria,
I also worked for 5 months as a Moose engineer mostly developing tools
for Moose IDE project.</p>
</div>
</div>

<div class="teacher-container">
<img class="teacher-photo" src="./img/portraits/oleksandr.jpeg" />

<div class="teacher-text">
<h3>Oleksandr Zaitsev</h3>

<p>I am a computer science researcher at CIRAD - a French agricultural
research and international cooperation organization working for the
sustainable development of tropical and Mediterranean regions.
I work on software engineering and AI techniques for participatory
agent-based modelling and serious games. In 2022, I defended my PhD at
Inria Lille; my thesis was about data mining-based tools to support
software evolution.</p>

<p>I contribute to many open-source projecs (Pharo, DataFrame,
PolyMath, pharo-ai). I am currently the lead developer of the Cormas
modelling platform.</p>
</div>
</div>

<div id="content"></div>
</main>

<footer>
<p>
&copy; 2024. All rights reserved by
<a href="" target="_blank" rel="noopener">Pharo Consortium</a>
</p>
<p>The source code of this website is licensed under <a href="https://github.com/olekscode/pharo-summer-school//blob/main/LICENSE" target="_blank" rel="license noopener noreferrer">The MIT License</a> and available on <a href="https://github.com/olekscode/pharo-summer-school" target="_blank" rel="noopener noreferrer">GitHub</a>.</p>
<p>The source code of this website is licensed under
<a
href="https://github.com/olekscode/pharo-summer-school//blob/main/LICENSE"
target="_blank"
rel="license noopener noreferrer">The MIT License</a>
and available on
<a
href="https://github.com/olekscode/pharo-summer-school"
target="_blank"
rel="noopener noreferrer">GitHub</a>.
</p>
</footer>

<script src="./script.js"></script>
Expand Down
1 change: 1 addition & 0 deletions website/pages/404.html
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Page not found
130 changes: 130 additions & 0 deletions website/pages/home.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@
<h1><span style="color: var(--color-dark-gray)">isLoop 2024:</span> International School on Live
Object-Oriented Programming</h1>

<p>Dear students,</p>
<p>We are happy to announce that once again, Pharo Consortium is
organizing an international cost-free summer school.</p>
<p>Pay attention the places are limited because this is a cool summer
school in a cool place.</p>
<p>
If you have any additional questions, feel free to contact us at

<!-- Obfuscated email address -->
<a id="mlink1" href="#">
<span class="ltrText">
rf&#46;dar<!-- bots -->ic&#64;<!--
-->vest<!-- go -->iaz&#46;rdnask<!-- away -->elo
</span>
</a>

&nbsp;or

<!-- Obfuscated email address -->
<a id="mlink2" href="#">
<span class="ltrText">
rf&#46;air<!-- bots -->ni&#64;<!--
-->essa<!-- go -->cud&#46;enahp<!-- away -->ets
</span>
</a>
</p>

<h2>Registration</h2>

To register, please fill the following
<a
target="_blank"
rel="noopener noreferrer"
href=""
>Form</a>.
The deadline for applications is July 20, 2024.

<h2>Timeline</h2>

<ul>
<li><b>09h00 - 10h30:</b> Morning courses</li>
<li><b>10h30 - 10h45:</b> Coffee break</li>
<li><b>10h45 - 12h15:</b> Morning courses</li>
<li><b>12h15 - 13h15:</b> Lunch time</li>
<li><b>13h15 - 14h45:</b> Afternoon courses</li>
<li><b>14h45 - 15h00:</b> Coffee break</li>
<li><b>15h00 - 16h30:</b> Afternoon courses</li>
</ul>

<h2>Summer School Teachers</h2>

<div class="teacher-container">
<img class="teacher-photo" src="./img/portraits/stephane.jpeg" />

<div class="teacher-text">
<h3>Stéphane Ducasse</h3>

<p>I'm an expert in object design, object language design, reflective
programming, and the maintenance and evolution of large applications
(visualization, metrics, meta-modeling). My work on traits has been
introduced in AmbientTalk, Slate, Pharo, Perl-6, PHP 5.4 and Squeak.
They have been ported to JavaScript. It has influenced the Scala an
Fortress languages.</p>

<p>I'm one of the founders of <a href="http://pharo.org">Pharo</a>.
I head its industry consortium http://consortium.pharo.org. I'm one
of the designers of <a href="https://modularmoose.org">Moose</a>, an
analysis platform. I regularly work with companies such as Arolla,
Berger-Levrault, Thales, Framatome, Siemens, CIM, Worldline to solve
their challenges.</p>
</div>
</div>

<div class="teacher-container">
<img class="teacher-photo" src="./img/portraits/guillermo.jpeg" />

<div class="teacher-text">
<h3>Guillermo Polito</h3>

<p>Coding enthusiast. Mad hatter. Software engineer and researcher.
I am currently an Inria Researcher at the CRIStAL laboratory, where
I am expert in software engineering and language implementations,
with a particular focus on test generation. I work in the Evref
team from Inria Lille-Nord Europe.</p>

<p>I actively participate in the development of the open source Pharo
programming language and environment since 2010, and I am a member
of its technical board since 2018.</p>
</div>
</div>

<div class="teacher-container">
<img class="teacher-photo" src="./img/portraits/sebastian.jpeg" />

<div class="teacher-text">
<h3>Sebastian Jordan-Montaño</h3>

<p>I am a PhD student working on memory profilers. I work at Inria,
France in the Evref team.</p>

<p>I was one of the main developers of the pharo-ai project contributing
and building different libraries for machine learning algorithms,
statistical metrics, data preprocessing, and AI in general. At Inria,
I also worked for 5 months as a Moose engineer mostly developing tools
for Moose IDE project.</p>
</div>
</div>

<div class="teacher-container">
<img class="teacher-photo" src="./img/portraits/oleksandr.jpeg" />

<div class="teacher-text">
<h3>Oleksandr Zaitsev</h3>

<p>I am a computer science researcher at CIRAD - a French agricultural
research and international cooperation organization working for the
sustainable development of tropical and Mediterranean regions.
I work on software engineering and AI techniques for participatory
agent-based modelling and serious games. In 2022, I defended my PhD at
Inria Lille; my thesis was about data mining-based tools to support
software evolution.</p>

<p>I contribute to many open-source projecs (Pharo, DataFrame,
PolyMath, pharo-ai). I am currently the lead developer of the Cormas
modelling platform.</p>
</div>
</div>
1 change: 1 addition & 0 deletions website/pages/program.html
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<h1>Summer School Program</h1>
1 change: 1 addition & 0 deletions website/pages/resources.html
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<h1>Learning Resources</h1>
1 change: 1 addition & 0 deletions website/pages/venue.html
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<h1>Summer School Venue</h1>
77 changes: 75 additions & 2 deletions website/script.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,78 @@ function insertMailto(id, place, me) {
elink.href = `mailto:${me}@${place}`;
}

insertMailto("mlink1", "cirad.fr", "oleksandr.zaitsev");
insertMailto("mlink2", "inria.fr", "stephane.ducasse");
// insertMailto("mlink1", "cirad.fr", "oleksandr.zaitsev");
// insertMailto("mlink2", "inria.fr", "stephane.ducasse");

// create document click that watches the nav links only
document.addEventListener("click", (e) => {
const { target } = e;
if (!target.matches("nav a")) {
return;
}
e.preventDefault();
route();
});

const routes = {
404: {
template: "/pages/404.html",
title: "404",
description: "Page not found",
},
"/": {
template: "/pages/home.html",
title: "Home",
description: "This is the home page",
},
"/venue": {
template: "/pages/venue.html",
title: "Venue",
description: "This is the venue page",
},
"/program": {
template: "/pages/program.html",
title: "Program",
description: "This is the program page",
},
"/resources": {
template: "/pages/resources.html",
title: "Learning Resources",
description: "This is the learning resources page",
}
};

const route = (event) => {
event = event || window.event; // get window.event if event argument not provided
event.preventDefault();
// window.history.pushState(state, unused, target link);
window.history.pushState({}, "", event.target.href);
locationHandler();
};

const locationHandler = async () => {
const location = window.location.pathname; // get the url path
// if the path length is 0, set it to primary page route
if (location.length == 0) {
location = "/";
}
// get the route object from the urlRoutes object
const route = routes[location] || routes["404"];
// get the html from the template
const html = await fetch(route.template).then((response) => response.text());
// set the content of the content div to the html
document.getElementById("content").innerHTML = html;
// set the title of the document to the title of the route
document.title = route.title;
// set the description of the document to the description of the route
document
.querySelector('meta[name="description"]')
.setAttribute("content", route.description);
};

// add an event listener to the window that watches for url changes
window.onpopstate = locationHandler;
// call the urlLocationHandler function to handle the initial url
window.route = route;
// call the urlLocationHandler function to handle the initial url
locationHandler();

0 comments on commit 9a06642

Please sign in to comment.