feat: bunch of stuff, too lazy to make individual commits

This commit is contained in:
Laureηt 2022-08-12 15:27:13 +02:00
parent adec3d5a32
commit 54b1c5c969
No known key found for this signature in database
GPG key ID: D88C6B294FD40994
15 changed files with 232 additions and 145 deletions

9
.editorconfig Normal file
View file

@ -0,0 +1,9 @@
root = true
[*]
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

1
.gitignore vendored
View file

@ -2,3 +2,4 @@ __site/
.DS_Store
node_modules/
package-lock.json
eportfolio/

1
src/.htaccess Normal file
View file

@ -0,0 +1 @@
Options -Indexes

View file

@ -1 +1,7 @@
<?xml version="1.0" ?><!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'><svg height="32px" id="Layer_1" style="enable-background:new 0 0 32 32;" version="1.1" viewBox="0 0 32 32" width="32px" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M4,10h24c1.104,0,2-0.896,2-2s-0.896-2-2-2H4C2.896,6,2,6.896,2,8S2.896,10,4,10z M28,14H4c-1.104,0-2,0.896-2,2 s0.896,2,2,2h24c1.104,0,2-0.896,2-2S29.104,14,28,14z M28,22H4c-1.104,0-2,0.896-2,2s0.896,2,2,2h24c1.104,0,2-0.896,2-2 S29.104,22,28,22z"/></svg>
<?xml version="1.0" ?>
<!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'><svg height="32px"
id="Layer_1" style="enable-background:new 0 0 32 32;" version="1.1" viewBox="0 0 32 32" width="32px"
xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<path
d="M4,10h24c1.104,0,2-0.896,2-2s-0.896-2-2-2H4C2.896,6,2,6.896,2,8S2.896,10,4,10z M28,14H4c-1.104,0-2,0.896-2,2 s0.896,2,2,2h24c1.104,0,2-0.896,2-2S29.104,14,28,14z M28,22H4c-1.104,0-2,0.896-2,2s0.896,2,2,2h24c1.104,0,2-0.896,2-2 S29.104,22,28,22z" />
</svg>

Before

Width:  |  Height:  |  Size: 605 B

After

Width:  |  Height:  |  Size: 618 B

52
src/_assets/public.pgp Normal file
View file

@ -0,0 +1,52 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQINBGDSUCoBEACmIrTTIECB2lxEnKf1307R5yMpOQticAnJ4N3eeWpsX1OEO+nq
rBcCo9IW3JnAq0Z8NoQPVFhCv2kbevVKa2mubtvHoiX3Pyvmrsl8Np68Jama8/mo
QMexl9dPeUS8V+dbvwRS07Po58e0lDK5y2ZOKiVqxNOOnC2lYB+wC2dp5kO037ZS
oAaVAAuVQvj/YKbQ8WLmCAwFxo76cf3iBWA6vvGUDkcZ4f19xGJ33hJio7+g2BnP
Ssa3VjvJ3urDqtiFsvY/9RyQbowZaVo9vBfkTqiS6aXOV2hChjB5gxN7V/ZPjCMP
rNgakfOIzuNZGdrNzzHXaf29iap4PvZijHrMWU5dGji7mugJa2vqP0URhv47hIc2
RKlADl7MhdKe7E5mvlwHa+kD861cFYUp+DbLx0QUxJkK2Fv/JIfW7GIcM8BZvLtx
Ko1dTLrd0v3nZyLAcL1g9IGLza2CD8RLORxTgQ5xoMOj5qe7OoXa675g73WMAiwO
ggclbyGunXzBviJ7qFR1CnWNyxOyPWqntIByJ+qPmKiw9oA9gB3arn+VxlZx4bz/
xJp55BkWlS17fbTXyYpjtLGDfHWzOOskK0k2TffOMZ16fzWoyaHjKkjX2U5xiFF5
gYvX/3xFR7xYvkYY2qeXDUSmwuh8+TlVNf8zVl22dgYN/TyVLNyb0FQzBwARAQAB
tC9MYXVyZW50IEZhaW5zaW4gPGxhdXJlbnRmYWluc2luQHByb3Rvbm1haWwuY29t
PokCTgQTAQgAOBYhBESFhR3Ox4/Z1Gpke9iMaylP1AmUBQJg0lAqAhsDBQsJCAcC
BhUKCQgLAgQWAgMBAh4BAheAAAoJENiMaylP1AmU/H4P/3sZ5d/8yNh98X7iZmO7
68HGrALDH2kF2jMFYixFlJFXAUAjr8KmE05JgDSIHGyRr58S9/LWWOwWvHn/Hywy
wYRRbS2QCCp4dCje9Ab/NdzWd3tP3J8HrfVAqkdcSTskbwVGGlL8aN0lS+JsdwOZ
6lnClZkBAl0lXmg+WJ2QrMDqwyNWLLMlVTsQfOTui3QE77cnLMGO8y6SayLyGvIy
xPxY+mh0Li4ELRD/+rv1voQbPfBp/OrRj/NhN0y4PNcY2jUVsOeHesoRY7lo+Tbg
MLuBycbmAtu+b7zkMarzJo1PS9I6grZx+4NPSVu0DErdmTN9j9i8zmthDWgoNg/T
+ppXWhK4NZl3J1GRQ2UnkeoGxCkYv/WeMLiDRQiKVgVPY50ZUCePVFMU2om1Ehtn
4MEbxpjiMF/+8mlJMcCeBMDCKvQ2uzBolEdTFT360iU6zdF0VdtQvatcZiMCejZ3
jQ9qrLVeNSLehy2tXn/YSyf98SG1r3zaiPBJC7xgNWLtXDdcLyCrH4aUxeMK0V6s
bvmlALN7xza+K7adJ3wDGE7HOXAJeRLSU92Gc/Ho+35ZZA96wYVlmVmnXXsXNw23
A0lODbtvolgtC09Sn6zPCxbj2z6ri5XBRs9CDEMXEzM4E7buEfovnCA8PNp7sp7F
7bkRATguCENEuG385WnSUBGsuQINBGDSUCoBEACrHh45e2/gdA7K2V2j/Drt9yzm
LMviux69p4rJ6ZtS4+E32v+Sy9tIHVTpAbUaVqCYRuUifLbbb08/EId67dnET+5r
qGRhkSkBAjvJ1URNnjmpxcosU8paQ9dYf4HswHaYWCSUUSCPk3g+d+JBPr5nq2o6
kvNL4JciM73Qag+f6ukXh60rnE+GvUh4XTwSB1/uU2i4R3BWSMHrkNEt58rP2wUM
1UtVyRLFQu9DdXKEWQ+uSd0XqZ3SiFZBC3dF1GQA9q05UIRIvSik8ljm6EIG8uFR
wNGnIKlE3HvktxmIFxeURpoWdnJDu1qSqxDOd3MiMrsxD3baM6Pgqc49LdCkxFyv
TeoTQA2afh6IBJfZFE4tJVUIVaGQNKCzCGCQgV1LWzTnXAATt+HqBN5q/YZyHTfS
PQNPowchDfbmjut672abLAepnyS+wtHVDR7J4h9pzg/DGxrnLN2AY4nXSb/vkNBC
nDO+WSQGINVmZWwk5Po86ZqqVHahInU1kzJI14J+00DiOWGz87YIA5q09NWw65BR
n4heR0rtND1xsx3yIYAevHDE0dkEGMjj2CKLPF3WC9qr28lsctuv+l9MLkTK/U21
SlPnS5TMDwMOnBGnZp0CRfjaoe/9Fq4fm+JPcVUtp8EgpTul2J7xVzet9f2u1xFX
AJIcpPCJnLLW1FjncQARAQABiQI2BBgBCAAgFiEERIWFHc7Hj9nUamR72IxrKU/U
CZQFAmDSUCoCGwwACgkQ2IxrKU/UCZSyTw//TObJYXjZswvvic3eiV3N6C7qByYr
joH/2ugFA94bjiUfz8LolVKLriHZLUYGHW38wm+lEVzwtC0u0QmNQBKY8JOIAkVA
3XGxYHbADTSO5w0KaPGrb2UaAgaxpn343o4pU3SVRAJuJ0iVVAxn/OTNBMtos/mF
qKCHrgXhw6udgoaT7ywCYrU1hbVcRODdbABgqmBeji36MsouxW/L/MCN6xZSa/MG
QDr7xY5GCJ764iUDLHAmz+fBBhc054YZseye6L7Lh+7h5sZXAtgEsBV/X0UUb+Or
Od9hF/LUsE7KbjH+2L+EOO4EmKAu8RLF3bPTG+B5lsd1g3YKGAT2IyjYHNENfvKl
KopNm6IsBeCJgUI+M9VueWx+nkG9WHiHzRk+ff+Mu+wq08YNerLjJppwPo+DhI87
2wvslJOZROeTY5Rz7JFm1UQpiJHN6ggfw+B3d3/02dglaF9WQ/NczEM0qAJolevh
nglQBXymZNqtXWq8CvTBwm5/+8vZpcEg0z0sIeKplTU3wWbGT6gOmTy6/9AiUO0Z
HwCgLz8xVbmFq7jvd5Lnqze5ZBbIUw/dSPpq8fNCdZdqp8IdhXtXdwD7J1M3YphT
0b2TQvMN+94w5v4zXYw750GxUYcVPB7ku8Px3DBVljNUBEqZbsFRKYZXrWZ5Arti
hJVGcEo8gZdmub8=
=DupR
-----END PGP PUBLIC KEY BLOCK-----

View file

@ -0,0 +1,37 @@
Hackathon net7:
role: Author
year: 2022-2023
description: Cool little game, soon™
Personnal website:
role: Author
year: 2022-2023
description: TODO
repository: https://git.inpt.fr/fainsil/personnal-website/
website: https://laurent.fainsin.bzh/
B00 plays GBA:
role: Author
description: Using technologies such as [websocket](https://websockets.readthedocs.io/en/stable/), [redis](https://redis.io/), [docker](https://www.docker.com/), [rtmp](https://en.wikipedia.org/wiki/Real-Time_Messaging_Protocol), [mgba](https://github.com/mgba-emu/mgba) and gluing it all together with [Python](https://en.wikipedia.org/wiki/Python_(programming_language)), we get a collaborative emulator inspired from [TwitchPlaysPokemon](https://en.wikipedia.org/wiki/Twitch_Plays_Pok%C3%A9mon).
repository: https://git.inpt.fr/fainsil/booplaysgba/
INP-net:
role: President
year: 2021-2022
description: Active member of my school's computer association which provides many services to over 10,000 students.
website: https://www.bde.enseeiht.fr/clubs/net7/
repository: https://git.inpt.fr/inp-net/
net7:
role: Treasurer
year: 2021-2022
description: Active member of my school's computer association which provides many services to over 10,000 students.
website: https://www.bde.inp-toulouse.fr/clubs/inp-net/
repository: https://git.inpt.fr/net7/
Personnal website (old):
role: Author
year: 2020-2022
description: Simple website built with the static site generetor [11ty.js](https://www.11ty.dev/). Made with [Nunjucks](https://mozilla.github.io/nunjucks/), [SCSS](https://sass-lang.com/), [Javascript](https://developer.mozilla.org/fr/docs/Web/JavaScript), [Yarn](https://yarnpkg.com/) and autodeployed with a [GitLab pipeline](https://git.inpt.fr/fainsil/personnal-website/-/pipelines).
repository: https://git.inpt.fr/fainsil/personnal-website-old/
website: https://fainsil.users.inpt.fr/

View file

@ -0,0 +1,16 @@
Sagittarius:
repo: https://git.inpt.fr/fainsil/sagittarius
pdf: https://git.inpt.fr/fainsil/sagittarius/-/blob/master/docs/iteration3/rapport3.pdf
role: Author
description: From an object oriented programming project in [Java](https://en.wikipedia.org/wiki/Java_(programming_language)), a little 2D turn-based game inspired by [a game under the same name by George Prosser](https://gprosser.itch.io/sagittarius).
Minishell:
repo: https://git.inpt.fr/fainsil/minishell
role: Author
description: Implementation of a basic [shell program](https://en.wikipedia.org/wiki/Shell_(computing)) in [C](https://en.wikipedia.org/wiki/C_(programming_language)), capable of launching programs, piping their streams and sending them signals.
Pagerank:
repo: https://git.inpt.fr/fainsil/pagerank
pdf: https://git.inpt.fr/fainsil/pagerank/-/blob/master/doc/rapport.pdf
role: Author
description: Implementation of an iterative algorithm in [Ada](https://en.wikipedia.org/wiki/Ada_(programming_language)) to compute the [pagerank](https://en.wikipedia.org/wiki/PageRank) of a given network as quickly and efficiently as possible.

View file

@ -1,12 +1,10 @@
<header>
<div class="blog-name"><a href="/">Basic Template</a></div>
<nav>
<div class="blog-name"><a href="/">Laurent Fainsin</a></div>
<nav>
<ul>
<li><a href="/">Home</a></li>
<li><a href="/menu1/">Code blocks</a></li>
<li><a href="/menu2/">More goodies</a></li>
<li><a href="/menu3/">Tags</a></li>
<li><a href="/">Whoami</a></li>
<li><a href="/projects">Projects</a></li>
</ul>
<img src="/assets/hamburger.svg" id="menu-icon">
</nav>
<img src="/assets/hamburger.svg" id="menu-icon" />
</nav>
</header>

View file

@ -1,4 +1,4 @@
<div class="page-foot">
<a href="http://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0</a> {{ fill author }}. {{isnotpage /tag/*}}Last modified: {{ fill fd_mtime }}.{{end}}
Website built with <a href="https://github.com/tlienart/Franklin.jl">Franklin.jl</a> and the <a href="https://julialang.org">Julia programming language</a>.
Last modified: {{ fill fd_mtime }}. Website built with
<a href="https://github.com/tlienart/Franklin.jl">Franklin.jl</a>.
</div>

View file

@ -1,18 +0,0 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="/css/franklin.css">
<link rel="stylesheet" href="/css/basic.css">
<title>Tag: {{fill fd_tag}}</title>
</head>
<body>
{{insert header.html}}
<div class="{{div_content}}">
<h1>Tag: {{fill fd_tag}}</h1>
{{taglist}}
{{insert page_foot.html}}
</div>
</body>
</html>

View file

@ -1,37 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
This is based on Yandex's https://yandex.com/support/zen/website/rss-modify.html
The scope of this segment is the GLOBAL scope (variables defined in config.md).
For instance 'website_url' or 'website_description'.
Notes:
* namespaces (xmlns): https://validator.w3.org/feed/docs/howto/declare_namespaces.html
* best practices: https://www.rssboard.org/rss-profile
* fd2rss convers markdown to html and fixes or removes relative links
* fd_rss_feed_url is built out of {website_url}/{rss_file}.xml, you can change the
rss_file variable in your config file if you want to use something different than 'feed'
-->
<rss version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:media="http://search.yahoo.com/mrss/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:georss="http://www.georss.org/georss">
<channel>
<title>
<![CDATA[ {{fd2rss website_title}} ]]>
</title>
<link> {{website_url}} </link>
<description>
<![CDATA[ {{fd2rss website_description}} ]]>
</description>
<atom:link
href="{{fd_rss_feed_url}}"
rel="self"
type="application/rss+xml" />
<!--
* items will be added here in chronological order
* the channel will then be closed
-->

View file

@ -1,60 +0,0 @@
<!--
This is based on Yandex's https://yandex.com/support/zen/website/rss-modify.html
The scope of this segment is the LOCAL scope (page variables). For instance 'rss_title'.
Notes:
* the local var rss_description (or rss) *must* be given otherwise the item
is not generated.
* rss_title if not given is inferred from page title
* rss_pubdate if not given is inferred from the date of last modification
* the full content is not added by default but can be if the variable rss_full_content
is set to true (either globally or locally).
* RFC822 or RFC1123 is a date format required by RSS.
* there is debate about supporting one or several enclosures
(see https://www.rssboard.org/rss-profile#element-channel-item-enclosure).
We use the conservative 'only one' approach by default but you could tweak this by
defining your own `rss_enclosures` variable with a list of string and use that.
-->
<item>
<title>
<![CDATA[ {{fd2rss rss_title}} ]]>
</title>
<link> {{fd_full_url}} </link>
<guid> {{fd_full_url}} </guid>
<description>
<![CDATA[ {{fd2rss rss_description}} ]]>
</description>
<!-- note that fd_page_html is already HTML, so we don't use fd2rss here -->
{{if rss_full_content}}
<content:encoded>
<![CDATA[ {{fix_relative_links fd_page_html}} ]]>
</content:encoded>
{{end}}
<!-- RFC1123 enforces a RSS-compliant date formatting -->
<pubDate>{{RFC822 rss_pubdate}}</pubDate>
<!-- if given this must be an email, see specs -->
{{isnotempty rss_author}}
<author> {{rss_author}} </author>
{{end}}
{{isnotempty author}}
<atom:author>
<atom:name>{{author}}</atom:name>
</atom:author>
{{end}}
{{isnotempty rss_category}}
<category> {{rss_category}} </category>
{{end}}
{{isnotempty rss_comments}}
<comments> {{rss_comments}} </comments>
{{end}}
{{isnotempty rss_enclosure}}
<enclosure> {{rss_enclosure}} </enclosure>
{{end}}
</item>

View file

@ -1,17 +1,17 @@
@def title = "Laurent Fainsin"
@def tags = ["syntax", "code"]
Hi, I'm Laurent.
I'm currently an M2 [engineering](https://www.francecompetences.fr/recherche/rncp/35713/) student at [ENSEEIHT](https://www.enseeiht.fr/) in France.
I study [Computer Science](https://www.enseeiht.fr/fr/formation/formation-ingenieur/departement-sn/programme-sn.html) and this is my personnal website to showcase my work.
I'm interested in machine learning and computer graphics.
I'm very active in the associative life of my school.
Here is my [resume](/resume/en) if you are professionally interested.
Here is my [resume](/assets/resume.pdf) if you are professionally interested.
You can email me at :
- [laurent@~~~<WBR>~~~fainsin.bzh](mailto:laurent@fainsin.bzh)
- [laurentfainsin@~~~<WBR>~~~protonmail.com](mailto:laurentfainsin@protonmail.com) ([PGP](/public.pgp))
- [laurentfainsin@~~~<WBR>~~~protonmail.com](mailto:laurentfainsin@protonmail.com) ([PGP](/assets/public.pgp))
- [laurent.fainsin@~~~<WBR>~~~etu.inp-n7.fr](mailto:laurent.fainsin@etu.inp-n7.fr)
You can reach me via :

9
src/projects.md Normal file
View file

@ -0,0 +1,9 @@
@def title = "Projects"
# Personnal projects
test
# School projects
test

View file

@ -1,16 +1,89 @@
function hfun_bar(vname)
val = Meta.parse(vname[1])
return round(sqrt(val), digits=2)
end
using YAML
function hfun_m1fill(vname)
var = vname[1]
return pagevar("index", var)
end
personnal_projects = YAML.load_file("_data/personnal_projects.yml")
school_projects = YAML.load_file("_data/school_projects.yml")
function lx_baz(com, _)
# keep this first line
brace_content = Franklin.content(com.braces[1]) # input string
# do whatever you want here
return uppercase(brace_content)
end
# icon_dict = Dict(
# "arXiv" => ("ai ai-arxiv ai-lg", "arXiv"),
# "openaccess" => ("ai ai-open-access ai-lg", "Journal paper"),
# "closedaccess" => ("ai ai-closed-access ai-lg", "Journal paper"),
# "conference" => ("ai ai-open-access ai-lg", "Conference paper"),
# "julia_package" => ("icon-julia-dots", "Julia package"),
# "reproduction_code" => ("las la-code la-lg", "Reproduction code"),
# "bioRxiv" => ("ai ai-biorxiv ai-lg", "bioRxiv"),
# "r_package" => ("lab la-r-project la-lg", "R package"),
# "poster" => ("las la-chalkboard la-lg", "Poster")
# )
# function tooltip_code(url, class)
# dict_entry = icon_dict[class]
# class_text = dict_entry[1]
# tooltip_text = dict_entry[2]
# """
# <span class="tooltip">
# <a href=$(url)><i class="$(class_text)"></i></a>
# <span class="tooltiptext">$(tooltip_text)</span>
# </span>
# """
# end
# function bibprint(yamlkey)
# entry = bibliography[yamlkey]
# names = join(["""<span class="person">$name</span>""" for name ∈ entry["author"]], ", ")
# year = """<span class="year">$(entry["year"])</span>"""
# title = """<span class="title">$(entry["title"]).</span>"""
# journal = """<span class="journal">$(entry["journal"]).</span>"""
# html_string = """
# <li>
# $(names)
# $(year)<br>
# $(title)<br>
# $(journal)<br>
# """
# if haskey(entry, "note")
# html_string = """
# $(html_string)
# <i> $(entry["note"]) </i> <br>
# """
# end
# bibkey_order = ["openaccess"
# "closedaccess"
# "conference"
# "arXiv"
# "bioRxiv"
# "poster"
# "reproduction_code"
# "julia_package"
# "r_package"]
# for key in bibkey_order
# if haskey(entry, key)
# html_string = """
# $(html_string)
# $(tooltip_code(entry[key], key))
# """
# end
# end
# html_string = """
# $(html_string)
# </li>
# """
# html_string
# end
# function hfun_bibliographyprint(yamlkeys)
# keys = locvar(yamlkeys[1])
# html_string = """<ol>"""
# for key in keys
# html_string = """
# $(html_string)
# $(bibprint(key))
# """
# end
# """
# $(html_string)
# </ol>
# """
# end