Compare commits
No commits in common. "d51809e39bb414525cad27bd2af63487bee7f072" and "58b43d630429fc0156aa9b1d0db0456019a3a1e4" have entirely different histories.
d51809e39b
...
58b43d6304
|
@ -14,7 +14,7 @@ jobs:
|
|||
SPCD_TXT_LOCALE: ${{vars.SPCD_TXT_LOCALE}}
|
||||
run: ${{vars.SPCD}}
|
||||
|
||||
- run: spcd-check-project
|
||||
#- run: spcd-check-project
|
||||
- run: spcd-build-project
|
||||
- run: spcd-browse-workspace
|
||||
- run: spcd-synchronize
|
||||
|
|
1
.gitignore
vendored
|
@ -1 +1,2 @@
|
|||
__pycache__
|
||||
/out
|
||||
|
|
944
build.py
|
@ -1,36 +1,916 @@
|
|||
#! /usr/bin/env python3
|
||||
"""Build resume."""
|
||||
|
||||
from os import sep
|
||||
from pathlib import Path
|
||||
import datetime
|
||||
import os
|
||||
import shutil
|
||||
import subprocess
|
||||
|
||||
from rwx import fs
|
||||
from rwx.ps import run
|
||||
|
||||
if __name__ == "__main__":
|
||||
root = Path(__file__).resolve().parent
|
||||
root_input = root / "in"
|
||||
root_output = root / "out"
|
||||
web = root_output / "web"
|
||||
fs.wipe(root_output)
|
||||
fs.make_directory(web)
|
||||
run(
|
||||
"rsync",
|
||||
"--archive",
|
||||
"--partial",
|
||||
"--progress",
|
||||
"--verbose",
|
||||
f"{root_input}{sep}",
|
||||
f"{web}{sep}",
|
||||
)
|
||||
run(
|
||||
"qrencode",
|
||||
("--background", "00000000"),
|
||||
("--foreground", "000000FF"),
|
||||
("--level", "L"),
|
||||
("--margin", "1"),
|
||||
("--read-from", str(root_input / "marc.beninca.vcf")),
|
||||
("--size", "4"),
|
||||
("-t", "SVG"),
|
||||
("--output", str(web / "img" / "marc.beninca.svg")),
|
||||
)
|
||||
def run(*args):
|
||||
subprocess.call(args)
|
||||
|
||||
|
||||
def main():
|
||||
time = datetime.datetime.now()
|
||||
time_id = time.strftime('%Y%m%d%H%M%S')
|
||||
style = 'css'
|
||||
script = 'js'
|
||||
root = os.path.dirname(os.path.realpath(__file__))
|
||||
input_directory = os.path.join(root, 'in')
|
||||
out = os.path.join(root, 'out')
|
||||
web = os.path.join(out, 'web')
|
||||
if os.path.exists(web):
|
||||
shutil.rmtree(web)
|
||||
os.makedirs(web)
|
||||
gen = os.path.join(web, time_id)
|
||||
css = os.path.join(gen, style)
|
||||
js = os.path.join(gen, script)
|
||||
#
|
||||
run('rsync', '--archive', f'{input_directory}/', f'{web}/')
|
||||
for directory in [css, js]:
|
||||
os.makedirs(directory)
|
||||
#
|
||||
link_gv = os.path.join(root, 'link.gv')
|
||||
link_svg = os.path.join(gen, 'link.svg')
|
||||
run('dot', link_gv, '-Tsvg', '-o', link_svg)
|
||||
with open(link_svg, 'br') as f:
|
||||
link_text = f.read().decode('u8')
|
||||
page_file = os.path.join(web, 'index.html')
|
||||
page_text = f'''\
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="flattr:id" content="z3d26l" />
|
||||
<meta name="viewport" content="initial-scale=1,width=device-width" />
|
||||
<link rel="stylesheet" href="{time_id}/{style}/index.css" />
|
||||
<script src="{time_id}/{script}/index.js"></script>
|
||||
<title>Marc Beninca</title>
|
||||
</head>
|
||||
|
||||
<body onload="main()">
|
||||
|
||||
<main>
|
||||
|
||||
<div class="tabs">
|
||||
<input type="radio" onclick="update(id)"
|
||||
name="tab" id="tab/my" />
|
||||
<label for="tab/my">My/</label>
|
||||
<div><div class="tabs">
|
||||
<!--
|
||||
<input type="radio" onclick="update(id)"
|
||||
name="tab/my" id="tab/my/about" />
|
||||
<label for="tab/my/about">About</label>
|
||||
<div>{tabs['about']}</div>
|
||||
<input type="radio" onclick="update(id)"
|
||||
name="tab/my" id="tab/my/bio" />
|
||||
<label for="tab/my/bio">Bio</label>
|
||||
<div>{tabs['bio']}</div>
|
||||
-->
|
||||
<input type="radio" onclick="update(id)"
|
||||
name="tab/my" id="tab/my/cv" />
|
||||
<label for="tab/my/cv">CV</label>
|
||||
<div>{tabs['cv']}</div>
|
||||
<input type="radio" onclick="update(id)"
|
||||
name="tab/my" id="tab/my/profiles" />
|
||||
<label for="tab/my/profiles">Profiles</label>
|
||||
<div>{tabs['profiles']}</div>
|
||||
<input type="radio" onclick="update(id)"
|
||||
name="tab/my" id="tab/my/projects" />
|
||||
<label for="tab/my/projects">Projects</label>
|
||||
<div><div class="tabs">
|
||||
<input type="radio" onclick="update(id)"
|
||||
name="tab/my/projects" id="tab/my/projects/lsgm" />
|
||||
<label for="tab/my/projects/lsgm">LSGM</label>
|
||||
<div>{tabs['lsgm']}</div>
|
||||
<input type="radio" onclick="update(id)"
|
||||
name="tab/my/projects" id="tab/my/projects/ofsp" />
|
||||
<label for="tab/my/projects/ofsp">OFSP</label>
|
||||
<div>{tabs['ofsp']}</div>
|
||||
</div></div>
|
||||
<input type="radio" onclick="update(id)"
|
||||
name="tab/my" id="tab/my/tasks" />
|
||||
<label for="tab/my/tasks">Tasks</label>
|
||||
<div>{tabs['tasks']}</div>
|
||||
<input type="radio" onclick="update(id)"
|
||||
name="tab/my" id="tab/my/trips" />
|
||||
<label for="tab/my/trips">Trips</label>
|
||||
<div>{tabs['trips']}</div>
|
||||
<input type="radio" onclick="update(id)"
|
||||
name="tab/my" id="tab/my/sub" />
|
||||
<label for="tab/my/sub">…/</label>
|
||||
<div><div class="tabs">
|
||||
<input type="radio" onclick="update(id)"
|
||||
name="tab/my/sub" id="tab/my/sub/id" />
|
||||
<label for="tab/my/sub/id">Identity</label>
|
||||
<div>{tabs['id']}</div>
|
||||
<input type="radio" onclick="update(id)"
|
||||
name="tab/my/sub" id="tab/my/sub/links" />
|
||||
<label for="tab/my/sub/links">Links</label>
|
||||
<div>{tabs['links']}</div>
|
||||
<input type="radio" onclick="update(id)"
|
||||
name="tab/my/sub" id="tab/my/sub/repos" />
|
||||
<label for="tab/my/sub/repos">Repos</label>
|
||||
<div>{tabs['repos']}</div>
|
||||
<input type="radio" onclick="update(id)"
|
||||
name="tab/my/sub" id="tab/my/sub/others" />
|
||||
<label for="tab/my/sub/others">…</label>
|
||||
<div>{tabs['others']}</div>
|
||||
</div></div>
|
||||
</div></div>
|
||||
<input type="radio" onclick="update(id)"
|
||||
name="tab" id="tab/learn" />
|
||||
<label for="tab/learn">Learn</label>
|
||||
<div>{tabs['learn']}</div>
|
||||
<input type="radio" onclick="update(id)"
|
||||
name="tab" id="tab/music" />
|
||||
<label for="tab/music">Music</label>
|
||||
<div>{tabs['music']}</div>
|
||||
<input type="radio" onclick="update(id)"
|
||||
name="tab" id="tab/sites" />
|
||||
<label for="tab/sites">Sites/</label>
|
||||
<div><div class="tabs">
|
||||
<input type="radio" onclick="update(id)"
|
||||
name="tab/sites" id="tab/sites/books" />
|
||||
<label for="tab/sites/books">Books</label>
|
||||
<div>{tabs['books']}</div>
|
||||
<input type="radio" onclick="update(id)"
|
||||
name="tab/sites" id="tab/sites/buy" />
|
||||
<label for="tab/sites/buy">Buy</label>
|
||||
<div>{tabs['buy']}</div>
|
||||
<input type="radio" onclick="update(id)"
|
||||
name="tab/sites" id="tab/sites/social" />
|
||||
<label for="tab/sites/social">Social</label>
|
||||
<div>{tabs['social']}</div>
|
||||
<input type="radio" onclick="update(id)"
|
||||
name="tab/sites" id="tab/sites/software" />
|
||||
<label for="tab/sites/software">Software</label>
|
||||
<div>{tabs['software']}</div>
|
||||
</div></div>
|
||||
<input type="radio" onclick="update(id)"
|
||||
name="tab" id="tab/videos" />
|
||||
<label for="tab/videos">Videos/</label>
|
||||
<div><div class="tabs">
|
||||
<input type="radio" onclick="update(id)"
|
||||
name="tab/videos" id="tab/videos/comments" />
|
||||
<label for="tab/videos/comments">Comments</label>
|
||||
<div>{tabs['comments']}</div>
|
||||
<input type="radio" onclick="update(id)"
|
||||
name="tab/videos" id="tab/videos/health" />
|
||||
<label for="tab/videos/health">Health</label>
|
||||
<div>{tabs['health']}</div>
|
||||
<input type="radio" onclick="update(id)"
|
||||
name="tab/videos" id="tab/videos/vegan" />
|
||||
<label for="tab/videos/vegan">Vegan</label>
|
||||
<div>{tabs['vegan']}</div>
|
||||
</div></div>
|
||||
<input type="radio" onclick="update(id)"
|
||||
name="tab" id="tab/sub" />
|
||||
<label for="tab/sub">…/</label>
|
||||
<div><div class="tabs">
|
||||
<input type="radio" onclick="update(id)"
|
||||
name="tab/sub" id="tab/sub/style" />
|
||||
<label for="tab/sub/style">Style</label>
|
||||
<div>{tabs['style']}</div>
|
||||
<input type="radio" onclick="update(id)"
|
||||
name="tab/sub" id="tab/sub/unsorted" />
|
||||
<label for="tab/sub/unsorted">…</label>
|
||||
<div>{tabs['unsorted']}</div>
|
||||
</div></div>
|
||||
</div>
|
||||
|
||||
</main>
|
||||
|
||||
<footer>
|
||||
<hr />
|
||||
Last update: {time.strftime('%Y/%m/%d %H:%M:%S')}
|
||||
</footer>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
'''
|
||||
css_file = os.path.join(css, 'index.css')
|
||||
css_text = f'''\
|
||||
@media screen and (max-aspect-ratio: 10/16) {{
|
||||
|
||||
body {{
|
||||
font-size: 2em;
|
||||
}}
|
||||
|
||||
}}
|
||||
|
||||
body {{
|
||||
background: rgb(255,255,255);
|
||||
color: rgb(0,0,0);
|
||||
font-family: sans;
|
||||
margin: .5em;
|
||||
}}
|
||||
body.dark {{
|
||||
background: rgb(0,0,0);
|
||||
color: rgb(160,160,160);
|
||||
}}
|
||||
|
||||
header {{
|
||||
background-image: url("../img/debian.jpeg");
|
||||
background-position: center;
|
||||
background-size: cover;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
}}
|
||||
|
||||
.tabs {{
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
}}
|
||||
.tabs .tabs {{
|
||||
padding: .5em 0 0 0;
|
||||
}}
|
||||
.tabs > input {{
|
||||
display: none;
|
||||
}}
|
||||
.tabs > input:checked + label + div {{
|
||||
display: block;
|
||||
}}
|
||||
.tabs > label {{
|
||||
order: 1;
|
||||
}}
|
||||
.tabs > div {{
|
||||
display: none;
|
||||
flex-basis: 100%;
|
||||
order: 2;
|
||||
}}
|
||||
|
||||
.tabs {{
|
||||
margin: 0;
|
||||
}}
|
||||
.tabs > input:checked + label {{
|
||||
background: linear-gradient(rgba(128,128,128,1), rgba(128,128,128,0));
|
||||
}}
|
||||
.tabs > label {{
|
||||
background: linear-gradient(rgba(64,64,64,1), rgba(64,64,64,0));
|
||||
border-color: rgb(128,128,128);
|
||||
border-radius: .5em;
|
||||
border-style: solid;
|
||||
border-width: 1px 1px 0 1px;
|
||||
font-weight: bold;
|
||||
margin: 0;
|
||||
padding: .5em 1.5em;
|
||||
}}
|
||||
.tabs > label:hover {{
|
||||
background: linear-gradient(rgba(64,64,64,0), rgba(64,64,64,1));
|
||||
color: rgb(192,0,0);
|
||||
}}
|
||||
.tabs > div {{
|
||||
margin: 0;
|
||||
}}
|
||||
|
||||
a {{
|
||||
color: rgb(0,192,192);
|
||||
text-decoration: none;
|
||||
}}
|
||||
a:hover {{
|
||||
color: rgb(192,0,0);
|
||||
}}
|
||||
a:visited {{
|
||||
color: rgb(0,160,160);
|
||||
}}
|
||||
|
||||
img {{
|
||||
border: 1px solid;
|
||||
border-color: rgb(192,192,192);
|
||||
border-radius: 1em;
|
||||
height: 8em;
|
||||
}}
|
||||
|
||||
table {{
|
||||
empty-cells: hide;
|
||||
}}
|
||||
th,td {{
|
||||
border-radius: .2em;
|
||||
}}
|
||||
th:hover,td:hover {{
|
||||
background: rgb(48,0,0);
|
||||
}}
|
||||
th {{
|
||||
background: rgb(64,64,64);
|
||||
color: rgb(128,128,0);
|
||||
}}
|
||||
td {{
|
||||
background: rgb(48,48,48);
|
||||
border: 1px solid;
|
||||
border-color: rgb(192,192,192);
|
||||
text-align: center;
|
||||
}}
|
||||
|
||||
.cards {{
|
||||
display: flex;
|
||||
}}
|
||||
.card {{
|
||||
list-style: none;
|
||||
margin: 0 1em;
|
||||
text-align: center;
|
||||
}}
|
||||
.card img {{
|
||||
border: none;
|
||||
height: 3em;
|
||||
}}
|
||||
|
||||
.debug {{
|
||||
border-color: rgb(255,0,255);
|
||||
border-style: solid;
|
||||
border-width: 1px;
|
||||
}}
|
||||
'''
|
||||
js_file = os.path.join(js, 'index.js')
|
||||
js_text = f'''\
|
||||
function check(tab) {{
|
||||
const tabs = tab.split('/')
|
||||
let id = 'tab'
|
||||
let element
|
||||
for (tab of tabs) {{
|
||||
id = `${{id}}/${{tab}}`
|
||||
element = document.getElementById(id)
|
||||
if (element) {{
|
||||
element.checked = true
|
||||
}}
|
||||
}}
|
||||
}}
|
||||
|
||||
function debug() {{
|
||||
for (element of document.getElementsByTagName('*')) {{
|
||||
element.classList.toggle('debug')
|
||||
}}
|
||||
}}
|
||||
|
||||
function push(tab) {{
|
||||
window.history.pushState(null, null, `?tab=${{tab}}`)
|
||||
}}
|
||||
|
||||
function update(id) {{
|
||||
const tab = id.split('/').slice(1).join('/')
|
||||
push(tab)
|
||||
}}
|
||||
|
||||
function main() {{
|
||||
let tab = (new URL(document.location)).searchParams.get('tab')
|
||||
if (tab) {{
|
||||
check(tab)
|
||||
}} else {{
|
||||
tab = 'my/profiles'
|
||||
check(tab)
|
||||
push(tab)
|
||||
}}
|
||||
const dark = document.getElementById('dark')
|
||||
if (dark) {{
|
||||
dark.click()
|
||||
}}
|
||||
}}
|
||||
|
||||
function swap() {{
|
||||
document.body.classList.toggle('dark')
|
||||
}}
|
||||
'''
|
||||
# {link_text}
|
||||
with open(page_file, 'bw') as f:
|
||||
f.write(page_text.encode('u8'))
|
||||
with open(css_file, 'bw') as f:
|
||||
f.write(css_text.encode('u8'))
|
||||
with open(js_file, 'bw') as f:
|
||||
f.write(js_text.encode('u8'))
|
||||
|
||||
|
||||
tabs = {
|
||||
#⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅
|
||||
'about': f'''\
|
||||
About…
|
||||
''',
|
||||
#⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅
|
||||
'bio': f'''\
|
||||
<h1>Marc Beninca</h1>
|
||||
Welcome to a recap attempt of my IT life!
|
||||
|
||||
<h2>The early days</h2>
|
||||
In my primary school days I started to interact with computers at home,
|
||||
mainly Amstrad CPC 464 & 6128 machines.<br />
|
||||
It was the occasion for me to:
|
||||
<ul>
|
||||
<li>discover computer architectures</li>
|
||||
<li>learn how to program in BASIC</li>
|
||||
<li>suffer the noise and speed of tape recorders</li>
|
||||
<li>experience the revolution of floppy disks transfer rates</li>
|
||||
</ul>
|
||||
|
||||
<h2>Diving in</h2>
|
||||
Right before beginning high school, I was introduced to the PC platform.<br />
|
||||
The “system programming PC bible” was my reference for a long time.<br />
|
||||
I had the occasion to develop projects in:
|
||||
<ul>
|
||||
<li>Pascal (for example my own hexadecimal file editor)</li>
|
||||
<li>Assembly (mainly for critical subroutines performance)</li>
|
||||
<li>AutoLISP (automation in LISP of AutoCAD elements processing)</li>
|
||||
</ul>
|
||||
|
||||
To be continued…
|
||||
''',
|
||||
#⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅
|
||||
'books': f'''\
|
||||
<ul>
|
||||
<li><a href="https://www.tradepub.com">TradePub</a></li>
|
||||
</ul>
|
||||
''',
|
||||
#⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅
|
||||
'buy': f'''\
|
||||
<ul>
|
||||
<li><a href="https://www.i-comparateur.com">i-comparateur</a></li>
|
||||
</ul>
|
||||
<hr />
|
||||
<ul>
|
||||
<li><a href="https://www.amazon.fr">Amazon</a><ul>
|
||||
<li><a href="https://www.amazon.fr/SanDisk-Extreme-externe-000-Mo-mousqueton/dp/B08RX3343D">SanDisk Extreme Pro</a></li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
<hr />
|
||||
<ul>
|
||||
<li><a href="https://www.gl-inet.com/products">GL-iNet</a></li>
|
||||
<li>OVH<ul>
|
||||
<li><a href="https://checkservers.ovh">check servers</a></li>
|
||||
<li><a href="https://eco.ovhcloud.com/fr/#filterValue=kimsufi,so">eco</a></li>
|
||||
</ul></li>
|
||||
<li><a href="https://www.thinkpenguin.com">ThinkPenguin</a></li>
|
||||
<li><a href="https://www.tuxedocomputers.com">Tuxedo Computers</a></li>
|
||||
<li><a href="https://vollebak.com/collections">Vollebak</a></li>
|
||||
</ul>
|
||||
<hr />
|
||||
<ul>
|
||||
<li><a href="https://www.leboncoin.fr">Le bon coin</a></li>
|
||||
</ul>
|
||||
''',
|
||||
#⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅
|
||||
'comments': f'''\
|
||||
<ul>
|
||||
<li><a href="https://www.youtube.com/@LogicallyAnswered/videos">Logically Answered</a></li>
|
||||
</ul>
|
||||
''',
|
||||
#⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅
|
||||
'cv': f'''\
|
||||
<ul class="cards">
|
||||
<li class="card"><a href="pdf/cv.en.pdf">
|
||||
<img src="img/en.svg" /><br />English</a></li>
|
||||
<li class="card"><a href="pdf/cv.fr.pdf">
|
||||
<img src="img/fr.svg" /><br />Français</a></li>
|
||||
</ul>
|
||||
''',
|
||||
#⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅
|
||||
'repos': f'''\
|
||||
<ul>
|
||||
<li><a href="https://forge.rwx.work/marc.beninca">RWX</a></li>
|
||||
</ul><ul>
|
||||
<li><a href="https://codeberg.org/marc.beninca">CodeBerg</a></li>
|
||||
<li><a href="https://git.disroot.org/marc.beninca">DisRoot</a></li>
|
||||
<li><a href="https://git.froggi.es/marc.beninca">Froggies</a></li>
|
||||
<li><a href="https://gitdab.com/marc.beninca">GitDab</a></li>
|
||||
<li><a href="https://gitnet.fr/marc.beninca">GitNet</a></li>
|
||||
<li><a href="https://git.nixnet.services/marc.beninca">NixNet</a></li>
|
||||
</ul><hr /><ul>
|
||||
<li><a href="https://framagit.org/marc.beninca">FramaGit</a></li>
|
||||
<li><a href="https://gitgud.io/marc.beninca">GitGud</a></li>
|
||||
<li><a href="https://git.insomnia247.nl/marc.beninca">Insomnia</a></li>
|
||||
<li><a href="https://forge.tedomum.net/marc.beninca">TeDomum</a></li>
|
||||
</ul><hr /><ul>
|
||||
<li><a href="https://git.42l.fr/marc.beninca">42l</a></li>
|
||||
<li><a href="https://git.afpy.org/marc.beninca">AFPy</a></li>
|
||||
<li><a href="https://forge.chapril.org/marc.beninca">Chapril</a></li>
|
||||
<li><a href="https://git.envs.net/marc.beninca">Envs</a></li>
|
||||
<li><a href="https://git.fsfe.org/marc.beninca">FSFE</a></li>
|
||||
<li><a href="https://git.projectsegfau.lt/marc.beninca">ProjectSegfault</a></li>
|
||||
<!--<li><a href="https://silica.codes/marc.beninca">SilicaCodes</a></li>-->
|
||||
<li><a href="https://tildegit.org/marc.beninca">TildeGit</a></li>
|
||||
</ul>
|
||||
|
||||
<hr />
|
||||
|
||||
<ul>
|
||||
<li><a href="https://notabug.org/marc.beninca">NotABug</a></li>
|
||||
<li><a href="https://pagure.io/user/marc-beninca">Pagure</a></li>
|
||||
<li><a href="https://rocketgit.com/marc.beninca">RocketGit</a></li>
|
||||
<li><a href="https://sr.ht/~marc_beninca/rwx.work/sources">SourceHut</a></li>
|
||||
<li><a href="https://git.tilde.institute/mspe">TildeInstitute</a></li>
|
||||
</ul>
|
||||
|
||||
<hr />
|
||||
|
||||
<ul>
|
||||
<li>Gforge</li>
|
||||
</ul>
|
||||
''',
|
||||
#⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅
|
||||
'health': f'''\
|
||||
<ul>
|
||||
<li><a href="https://www.youtube.com/@chubbyemu/videos">Chubby Emu</a></li>
|
||||
<li><a href="https://www.youtube.com/@drekberg/videos">Sten Ekberg</a></li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li><a href="https://www.youtube.com/@KianaDocherty/videos">Kiana Docherty</a></li>
|
||||
<li><a href="https://www.youtube.com/@ThomasDeLauerOfficial/videos">Thomas DeLauer</a></li>
|
||||
</ul>
|
||||
<hr />
|
||||
<ul>
|
||||
<li><a href="https://www.youtube.com/@ivredevie/videos">Ivre de vie</a></li>
|
||||
</ul>
|
||||
''',
|
||||
#⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅
|
||||
'id': f'''\
|
||||
<table>
|
||||
|
||||
<tr><th colspan="2">OpenPGP</th><td colspan="3" rowspan="4"><img src="img/marc.jpeg" /></td></tr>
|
||||
<tr><td colspan="2">marc.beninca.link<br><a href="marc.beninca.pgp">binary</a> | <a href="marc.beninca.asc">textual</a></td></tr>
|
||||
<tr><td colspan="2"><a href="https://meta.sr.ht/~marc_beninca.pgp">meta.sr.ht</a></td></tr>
|
||||
<tr><td colspan="2"><a href="https://keys.openpgp.org/search?q=marc@beninca.link">keys.openpgp.org</a></td></tr>
|
||||
|
||||
<tr>
|
||||
<th><a href="https://keyoxide.org/08EDA7006234A0EB29A3A8471DBD5EC4BADA5579">KeyOxide<br>PGP</a></th>
|
||||
<th><a href="https://keyoxide.org/aspe:keyoxide.org:WUD5YVN52J3RJ6CD4ZCWYL6S54">KeyOxide<br>ASP</a></th>
|
||||
<th><a href="https://liberapay.com/marc.beninca">Libera<br>Pay</a></th>
|
||||
<th><a href="https://patreon.com/marc_beninca">Patreon</a></th>
|
||||
<th><a href="https://tipeee.com/marc-beninca">Tip<br>eee</a></th>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="3"><a href="https://mastodon.cloud/@marc_beninca">Mastodon</a></td>
|
||||
<td colspan="2"><a href="https://discord.gg/v6p7CtZ4Zh">Discord</a></td>
|
||||
</tr><tr>
|
||||
<td colspan="3"><a href="https://devs.live/users/marc_beninca">Pleroma</a></td>
|
||||
<td><a href="https://vimeo.com/marcbeninca">Vimeo</a></td>
|
||||
</tr><tr>
|
||||
<td colspan="2"><a href="https://videos.trom.tf/@marc_beninca">PeerTube</a></td>
|
||||
<td><a href="https://openstreetmap.org/user/Marc Beninca">OpenStreetMap</a></td>
|
||||
<td><a href="https://youtube.com/@marc.beninca">YouTube</a></td>
|
||||
</tr><tr>
|
||||
<td colspan="2"><a href="https://pixelfed.social/marc.beninca">PixelFed</a></td>
|
||||
<td><a href="https://linuxfr.org/users/marc-beninca">LinuxFR</a></td>
|
||||
<td><a href="https://instagram.com/marc.beninca">Instagram</a></td>
|
||||
</tr><tr>
|
||||
<td colspan="2"><a href="https://rant.li/marc-beninca">WriteFreely</a></td>
|
||||
</tr><tr>
|
||||
<td colspan="2"><a href="https://programming.dev/u/marc_beninca">Lemmy</a></td>
|
||||
</tr><tr>
|
||||
<td colspan="2"><a href="https://lobste.rs/u/marc_beninca">Lobsters</a></td>
|
||||
</tr><tr>
|
||||
<td colspan="2"><a href="https://news.ycombinator.com/user?id=marc_beninca">HackerNews</a></td>
|
||||
</tr>
|
||||
|
||||
<tr><th colspan="2">DNS</th></tr>
|
||||
|
||||
<tr><td colspan="2"><a href="https://beninca.link">beninca.link</a></td></tr>
|
||||
<tr><td colspan="2">computing.land</td></tr>
|
||||
<tr><td colspan="2">marc-beninca.fr</td></tr>
|
||||
<tr><td colspan="2"><a href="https://rwx.work">rwx.work</a></td></tr>
|
||||
<tr><td colspan="2"><a href="https://tilde.link">tilde.link</a></td></tr>
|
||||
|
||||
<tr><th colspan="2">Git / Forgejo</th></tr>
|
||||
|
||||
<tr><td colspan="2"><a href="https://forge.rwx.work/marc.beninca">forge.rwx.work</a></td></tr>
|
||||
|
||||
</table>
|
||||
''',
|
||||
#⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅
|
||||
'learn': f'''\
|
||||
<ul>
|
||||
<li><a href="https://roadmap.sh">Roadmap</a></li>
|
||||
<li><a href="https://teachyourselfcs.com">Teach Yourself Computer Science</a></li>
|
||||
</ul>
|
||||
<hr />
|
||||
<ul>
|
||||
<li><a href="https://www.youtube.com/@ExternCode/videos">Extern Code</a></li>
|
||||
<li><a href="https://www.youtube.com/@freecodecamp/videos">FreeCodeCamp</a></li>
|
||||
<li><a href="https://debian-facile.org/projets/lescahiersdudebutant">Les cahiers du débutant sur Debian</a></li>
|
||||
<li><a href="https://www.youtube.com/@SimplicodeOfficial/videos">SimpliCode</a></li>
|
||||
</ul>
|
||||
<hr />
|
||||
<ul>
|
||||
<li><a href="https://overthewire.org">Over The Wire</a></li>
|
||||
</ul>
|
||||
''',
|
||||
#⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅
|
||||
'links': f'''\
|
||||
<ul>
|
||||
<li><a href="https://marc-beninca.8b.io">8bio</a></li>
|
||||
<li><a href="https://allmylinks.com/marc-beninca">AllMyLinks</a></li>
|
||||
<li><a href="https://beacons.ai/marc.beninca">Beacons</a></li>
|
||||
<li><a href="https://biglink.to/marc_beninca">BigLinkTo</a></li>
|
||||
<li><a href="https://bioin.link/marc.beninca">BioInLink</a></li>
|
||||
<li><a href="https://marc_beninca.bio.link">Bio.Link</a></li>
|
||||
<li><a href="https://biolinky.co/marcbeninca">BioLinky</a></li>
|
||||
<li><a href="https://marc_beninca.c8ke.com">C8ke</a></li>
|
||||
<li><a href="https://campsite.bio/marc.beninca">CampSite</a></li>
|
||||
<li><a href="https://marc-beninca.carrd.co">Carrd</a></li>
|
||||
<li><a href="https://direct.me/marc_beninca">DirectMe</a></li>
|
||||
<li><a href="https://everlink.tools/marc.beninca">EverLink</a></li>
|
||||
<li><a href="https://feedlink.io/marcbeninca">FeedLink</a></li>
|
||||
<li><a href="https://flow.page/marc.beninca">FlowPage</a></li>
|
||||
<li><a href="https://heylink.me/marc.beninca">HeyLinkMe</a></li>
|
||||
<li><a href="https://hy.page/marcbeninca">HyPage</a></li>
|
||||
<li><a href="https://ichi.gg/marc.beninca">Ichi.GG</a></li>
|
||||
<li><a href="https://linkfly.to/marc-beninca">LinkFly</a></li>
|
||||
<li><a href="https://instabio.cc/marc-beninca">LinkInBio</a></li>
|
||||
<li><a href="https://linkpluto.com/marc-beninca">LinkPluto</a></li>
|
||||
<li><a href="https://linkpop.com/marc-beninca">LinkPop</a></li>
|
||||
<li><a href="https://linkr.bio/marc.beninca">Linkr.Bio</a></li>
|
||||
<li><a href="https://linksight.me/marc_beninca">LinkSight</a></li>
|
||||
<li><a href="https://link.space/@marc_beninca">LinkSpace</a></li>
|
||||
<li><a href="https://linkstack.fr/@marc.beninca">LinkStack</a></li>
|
||||
<li><a href="https://linktr.ee/marc.beninca">LinkTree</a></li>
|
||||
<li><a href="https://lnk.bio/marc.beninca">Lnk.Bio</a></li>
|
||||
<li><a href="https://lu.ma/marc.beninca">Luma</a></li>
|
||||
<li><a href="https://nano.site/marc.beninca">NanoSite</a></li>
|
||||
<li><a href="https://marcbeninca.podia.com">Podia</a></li>
|
||||
<li><a href="https://solo.to/marc.beninca">SoloTo</a></li>
|
||||
<li><a href="https://marc-beninca.start.page">StartPage</a></li>
|
||||
<li><a href="https://tap.bio/marc.beninca">Tap.Bio</a></li>
|
||||
<li><a href="https://marc-beninca.taplink.ws">TapLink</a></li>
|
||||
<li><a href="https://url.bio/marc_beninca">URL.Bio</a></li>
|
||||
<li><a href="https://vu.fr/marc-beninca">Vu.Fr</a></li>
|
||||
<li><a href="https://zaap.bio/marc.beninca">Zaap</a></li>
|
||||
</ul>
|
||||
''',
|
||||
#⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅
|
||||
'music': f'''\
|
||||
<ul>
|
||||
<li><a href="https://www.youtube.com/watch?v=_ITiwPMUzho">3 AM Coding Session</a></li>
|
||||
</ul>
|
||||
<hr />
|
||||
<ul>
|
||||
<li><a href="https://www.youtube.com/@Daniellabjarnhof/videos">Daniella Bjarnhof</a></li>
|
||||
<li><a href="https://www.youtube.com/@DJGroove/videos">DJ Groove</a></li>
|
||||
<li><a href="https://www.youtube.com/@flavourtrip/videos">Flavour Trip</a></li>
|
||||
<li><a href="https://www.youtube.com/@garsimusic/videos">Garsi</a></li>
|
||||
<li><a href="https://www.youtube.com/@jabig/videos">Ja Big</a></li>
|
||||
<li><a href="https://www.youtube.com/@johnny_m/videos">Johnny M (GR)</a></li>
|
||||
<li><a href="https://www.youtube.com/@johnnymgrchannelc3145/videos">Johnny M (GR) (Channel C')</a></li>
|
||||
<li><a href="https://www.youtube.com/@djmissmonique/videos">Miss Monique</a></li>
|
||||
<li><a href="https://www.youtube.com/@DJRaphaelPPRV/videos">Raphael</a></li>
|
||||
</ul>
|
||||
<hr />
|
||||
<ul>
|
||||
<li><a href="https://www.youtube.com/watch?v=lP26UCnoH9s">Coffee Shop Radio</a></li>
|
||||
<li><a href="https://www.youtube.com/watch?v=8wHjuR2gagI">Sad songs for sad people</a></li>
|
||||
</ul>
|
||||
<hr />
|
||||
<ul>
|
||||
<li><a href="http://radio.garden/visit/pessac">Radio Garden</a></li>
|
||||
</ul>
|
||||
''',
|
||||
#⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅
|
||||
'profiles': f'''\
|
||||
<ul class="cards">
|
||||
<li class="card"><a href="https://forge.rwx.work/marc.beninca">
|
||||
<img src="img/ForgeJo.svg" /><br />ForgeJo</a></li>
|
||||
<li class="card"><a href="https://keyoxide.org/08EDA7006234A0EB29A3A8471DBD5EC4BADA5579">
|
||||
<img src="img/KeyOxide.png" /><br />KeyOxide / PGP</a></li>
|
||||
<li class="card"><a href="https://keyoxide.org/aspe:keyoxide.org:WUD5YVN52J3RJ6CD4ZCWYL6S54">
|
||||
<img src="img/KeyOxide.png" /><br />KeyOxide / ASP</a></li>
|
||||
</ul>
|
||||
<hr />
|
||||
<ul class="cards">
|
||||
<li class="card"><a href="https://videos.trom.tf/@marc.beninca">
|
||||
<img src="img/PeerTube.png" /><br />PeerTube</a></li>
|
||||
<li class="card"><a href="https://pixelfed.social/marc.beninca">
|
||||
<img src="img/PixelFed.svg" /><br />PixelFed</a></li>
|
||||
</ul>
|
||||
<hr />
|
||||
<ul class="cards">
|
||||
<li class="card"><a href="https://linkedin.com/in/marc-beninca">
|
||||
<img src="img/LinkedIn.png" /><br />LinkedIn</a></li>
|
||||
<li class="card"><a href="https://youtube.com/@marc.beninca">
|
||||
<img src="img/YouTube.png" /><br />YouTube</a></li>
|
||||
<li class="card"><a href="https://instagram.com/marc.beninca">
|
||||
<img src="img/InstaGram.png" /><br />InstaGram</a></li>
|
||||
</ul>
|
||||
''',
|
||||
#⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅
|
||||
'lsgm': f'''\
|
||||
<h1>Live Scan Grub Menu</h1>
|
||||
Setup a whole EFI System Partition:
|
||||
<ul>
|
||||
<li>generate customized GRUB EFI & BIOS images</li>
|
||||
<li>scan data partition(s) for SquashFS image files</li>
|
||||
<li>display generated boot menu</li>
|
||||
<li>live boot selected kernel, initial ramdisk and file system image</li>
|
||||
</ul>
|
||||
BASH experimenting:
|
||||
<ul>
|
||||
<li><a href="https://youtu.be/mx2lhm7qClc">2023/05/04: 1st boot into QCOW storage with encrypted data partition</a></li>
|
||||
</ul>
|
||||
''',
|
||||
'ofsp': f'''\
|
||||
<h1>Operating File System Profile</h1>
|
||||
Build from mirror a full operating system bootable file image:
|
||||
<ul>
|
||||
<li>bootstrap base file system</li>
|
||||
<li>configure common core basics</li>
|
||||
<li>install TUI packages</li>
|
||||
<li>install GUI packages</li>
|
||||
<li>copy kernel and initial ramdisk for bootloader</li>
|
||||
<li>archive final file system as SquashFS file</li>
|
||||
</ul>
|
||||
BASH experimenting:
|
||||
<ul>
|
||||
<li><a href="https://youtu.be/phArr81weUw">2023/07/27: 3rd party repos, repoless .deb, tarball archives</a></li>
|
||||
</ul>
|
||||
<hr />
|
||||
<ul>
|
||||
<li><a href="https://youtu.be/5Isf02MKFgM">2023/07/20: both TUI and GUI images</a></li>
|
||||
<li><a href="https://youtu.be/YhoY2gisXg4">2023/06/20: Graphical User Interface too</a></li>
|
||||
<li><a href="https://youtu.be/PSHswxc9oU8">2023/06/13: Textual User Interface only</a></li>
|
||||
</ul>
|
||||
''',
|
||||
#⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅
|
||||
'social': f'''\
|
||||
<ul>
|
||||
<li><a href="https://calckey.org">Calckey</a></li>
|
||||
<li><a href="https://joinmastodon.org">Mastodon</a></li>
|
||||
<li><a href="https://pixelfed.org">Pixelfed</a></li>
|
||||
</ul>
|
||||
<hr />
|
||||
<ul>
|
||||
<li><a href="https://bsky.app">Bluesky</a></li>
|
||||
<li><a href="https://revolt.chat">Revolt</a></li>
|
||||
</ul>
|
||||
<hr />
|
||||
<ul>
|
||||
<li><a href="https://discord.com">Discord</a></li>
|
||||
<li><a href="https://www.facebook.com">FaceBook</a></li>
|
||||
<li><a href="https://www.instagram.com">InstaGram</a></li>
|
||||
<li><a href="https://www.linkedin.com">LinkedIn</a></li>
|
||||
<li><a href="https://www.reddit.com">Reddit</a></li>
|
||||
<li><a href="https://www.tiktok.com">TikTok</a></li>
|
||||
<li><a href="https://www.twitch.tv">Twitch</a></li>
|
||||
<li><a href="https://twitter.com">Twitter</a></li>
|
||||
<li><a href="https://www.youtube.com">YouTube</a></li>
|
||||
</ul>
|
||||
<hr />
|
||||
<ul>
|
||||
<li><a href="https://nextdoor.com">NextDoor</a></li>
|
||||
</ul>
|
||||
''',
|
||||
#⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅
|
||||
'software': f'''\
|
||||
<ul>
|
||||
<li><a href="https://developer.puri.sm/Librem5">Librem 5</a></li>
|
||||
</ul>
|
||||
<hr />
|
||||
<ul>
|
||||
<li><a href="https://docs.zfsbootmenu.org">ZFS Boot Menu</a></li>
|
||||
</ul>
|
||||
<hr />
|
||||
<ul>
|
||||
<li><a href="https://carbon.sh">CarbonOS</a></li>
|
||||
<li><a href="https://fedoraproject.org/silverblue">Fedora Silverblue</a></li>
|
||||
<li><a href="https://www.flatcar.org">Flatcar Container Linux</a></li>
|
||||
<li><a href="https://nixos.org">NixOS</a></li>
|
||||
<li><a href="https://guix.gnu.org">Guix</a></li>
|
||||
<li><a href="https://microos.opensuse.org">OpenSUSE MicroOS</a></li>
|
||||
<li><a href="https://vanillaos.org">Vanilla OS</a></li>
|
||||
<li><a href="https://github.com/bottlerocket-os/bottlerocket">Bottlerocket OS</a></li>
|
||||
<li><a href="https://blendos.co">BlendOS</a></li>
|
||||
<li><a href="https://www.talos.dev">Talos Linux</a></li>
|
||||
<li><a href="https://www.endlessos.org/os">Endless OS</a></li>
|
||||
</ul>
|
||||
''',
|
||||
#⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅
|
||||
'style': f'''\
|
||||
<ul>
|
||||
<li><input type="checkbox" id="dark" onclick="swap()">Dark</input></li>
|
||||
<li><input type="checkbox" id="debug" onclick="debug()">Debug</input></li>
|
||||
</ul>
|
||||
''',
|
||||
#⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅
|
||||
'tasks': f'''\
|
||||
<ul>
|
||||
<li>categorize music</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>fix dark switch</li>
|
||||
<li>style list items</li>
|
||||
<li>switch fonts</li>
|
||||
<li>use CSS variables</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>implement search</li>
|
||||
</ul>
|
||||
''',
|
||||
#⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅
|
||||
'trips': f'''\
|
||||
<ul>
|
||||
<li>Belgium<ul>
|
||||
<li>Brussels</li>
|
||||
</ul></li>
|
||||
<li>Estonia<ul>
|
||||
<li>Lahemaa</li>
|
||||
<li>Narva</li>
|
||||
<li>Pärnu</li>
|
||||
<li>Saaremaa</li>
|
||||
<li>Tallinn</li>
|
||||
<li>Tartu</li>
|
||||
</ul></li>
|
||||
<li>Germany<ul>
|
||||
<li>Berlin</li>
|
||||
</ul></li>
|
||||
<li>Japan<ul>
|
||||
<li>Hiroshima</li>
|
||||
<li>Kyoto</li>
|
||||
<li>Okinawa</li>
|
||||
<li>Osaka</li>
|
||||
<li>Tokyo</li>
|
||||
</ul></li>
|
||||
<li>Netherlands<ul>
|
||||
<li>Amsterdam</li>
|
||||
<li>Rotterdam</li>
|
||||
</ul></li>
|
||||
<li>Switzerland</li>
|
||||
<li>United States of America<ul>
|
||||
<li>California<ul>
|
||||
<li>Los Angeles</li>
|
||||
<li>San Francisco</li>
|
||||
</ul></li>
|
||||
<li>Georgia</li>
|
||||
<li>Hawaii</li>
|
||||
<li>Indiana</li>
|
||||
<li>Kentucky</li>
|
||||
<li>New York</li>
|
||||
<li>Ohio</li>
|
||||
<li>Tennessee</li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
''',
|
||||
#⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅
|
||||
'vegan': f'''\
|
||||
<ul>
|
||||
<li><a href="https://www.youtube.com/@CheapLazyVegan/videos">Cheap Lazy Vegan</a></li>
|
||||
<li><a href="https://www.youtube.com/@gazoakleychef/videos">Gaz Oakley</a></li>
|
||||
<li><a href="https://www.youtube.com/@MerleONeal/videos">Merle O'Neal</a></li>
|
||||
<li><a href="https://www.youtube.com/@peacefulcuisine/videos">Peaceful Cuisine</a></li>
|
||||
<li><a href="https://www.youtube.com/@PickUpLimes/videos">Pick Up Limes</a></li>
|
||||
<li><a href="https://www.youtube.com/@RainbowPlantLife/videos">Rainbow Plant Life</a></li>
|
||||
<li><a href="https://www.youtube.com/@TheKoreanVegan/videos">The Korean Vegan</a></li>
|
||||
<li><a href="https://www.youtube.com/@Thevietvegan/videos">The Viet Vegan</a></li>
|
||||
<li><a href="https://www.youtube.com/@YEUNGMANCOOKING/videos">Yeung Man Cooking</a></li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li><a href="https://www.youtube.com/@SauceStache/videos">Sauce Stache</a></li>
|
||||
<li><a href="https://www.youtube.com/@TheeBurgerDude/videos">Thee Burger Dude</a></li>
|
||||
</ul>
|
||||
<hr />
|
||||
<ul>
|
||||
<li><a href="https://www.youtube.com/@doucefrugalite/videos">Douce frugalité</a></li>
|
||||
<li><a href="https://www.youtube.com/@Evalespetitsplats/videos">Eva les petits plats</a></li>
|
||||
<li><a href="https://www.youtube.com/@LapetiteOkara/videos">La petite Okara</a></li>
|
||||
<li><a href="https://www.youtube.com/@MarieSweetandSour/videos">Marie Sweet and Sour</a></li>
|
||||
<li><a href="https://www.youtube.com/@SebastienKardinal/videos">Sébastien Kardinal</a></li>
|
||||
</ul>
|
||||
''',
|
||||
#⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅
|
||||
'others': f'''\
|
||||
<ul>
|
||||
<li><a href="https://bsky.app/profile/marc-beninca.bsky.social">Blue Sky</a></li>
|
||||
<li><a href="https://buymeacoffee.com/marc.beninca">Buy Me A Coffee</a></li>
|
||||
<li><a href="https://cohost.org/marc-beninca">CoHost</a></li>
|
||||
<li><a href="https://dev.to/marc_beninca">Dev</a></li>
|
||||
<li><a href="https://diaspora-fr.org/people/00f4f8e04b11013b46b20025900e4586">Diaspora</a></li>
|
||||
<li><a href="https://flattr.com/@marc.beninca">Flattr</a></li>
|
||||
<li><a href="https://hashnode.com/@marc-beninca">HashNode</a></li>
|
||||
<li><a href="https://medium.com/@marc-beninca">Medium</a></li>
|
||||
<li><a href="https://marc-beninca.micro.blog/about">MicroBlog</a></li>
|
||||
<li><a href="https://minds.com/marc_beninca">Minds</a></li>
|
||||
<li><a href="https://odysee.com/@marc.beninca">Odysee</a></li>
|
||||
<li><a href="https://paypal.me/MarcBeninca">PayPal</a></li>
|
||||
<li><a href="https://pinterest.com/marc_beninca">Pinterest</a></li>
|
||||
<li><a href="https://marcbeninca.podia.com">Podia</a></li>
|
||||
<li><a href="https://app.revolt.chat/invite/01FREKCG3P2P0YMAHQSCPSW4GD">Revolt</a></li>
|
||||
<li><a href="https://tiktok.com/@marc.beninca">TikTok</a></li>
|
||||
<li><a href="https://twtxt.net/user/marc_beninca">YarnSocial</a></li>
|
||||
</ul>
|
||||
<hr />
|
||||
<ul>
|
||||
<li><a href="https://dlive.tv/marc.beninca">Dlive</a></li>
|
||||
<li><a href="https://kick.com/marc_beninca">Kick</a></li>
|
||||
</ul>
|
||||
<hr />
|
||||
<ul>
|
||||
<li><a href="">KissBank</a></li>
|
||||
</ul>
|
||||
''',
|
||||
#⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅
|
||||
'unsorted': f'''\
|
||||
<ul>
|
||||
<li><a href="https://foss.events">FOSS Events</a></li>
|
||||
</ul>
|
||||
''',
|
||||
}
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
|
35
cc.html
Normal file
|
@ -0,0 +1,35 @@
|
|||
<ul>
|
||||
<li><a href="cc/ont">Ontology</a></li>
|
||||
<li><a href="cc/atom">Cosmos</a></li>
|
||||
<li><a href="cc/algo">Algorand</a></li>
|
||||
<li><a href="cc/xtz">Tezos</a></li>
|
||||
<li><a href="cc/sol">Solana</a></li>
|
||||
<li><a href="cc/ada">Cardano</a></li>
|
||||
<li><a href="cc/eth">Dai</a></li>
|
||||
<li><a href="cc/vet">VeChain</a></li>
|
||||
</ul><ul>
|
||||
<li><a href="cc/btc">BitCoin</a></li>
|
||||
<li><a href="cc/eth">Ethereum</a></li>
|
||||
<li><a href="cc/bnb">Binance</a></li>
|
||||
<li><a href="cc/xrp">XRP</a></li>
|
||||
<li><a href="cc/dot">PolkaDot</a></li>
|
||||
<li><a href="cc/eth">Polygon</a></li>
|
||||
<li><a href="cc/trx">Tron</a></li>
|
||||
<li><a href="cc/ltc">LiteCoin</a></li>
|
||||
<li><a href="cc/bch">BitcoinCash</a></li>
|
||||
<li><a href="cc/xlm">StellarLumens</a></li>
|
||||
<li><a href="cc/hbar">Hedera</a></li>
|
||||
<li><a href="cc/fil">FileCoin</a></li>
|
||||
<li><a href="cc/egld">ElrondGold</a></li>
|
||||
<li><a href="cc/zec">Zcash</a></li>
|
||||
<li><a href="cc/theta">Theta</a></li>
|
||||
<!--BitTorrent-->
|
||||
<!--Neo-->
|
||||
<li><a href="cc/dash">Dash</a></li>
|
||||
<li><a href="cc/zil">Zilliqa</a></li>
|
||||
<li><a href="cc/qtum">Qtum</a></li>
|
||||
<li><a href="cc/icx">Icon</a></li>
|
||||
<li><a href="cc/dgb">DigiByte</a></li>
|
||||
<li><a href="cc/xno">Nano</a></li>
|
||||
<li><a href="cc/ark">Ark</a></li>
|
||||
</ul>
|
1
cc/ada
Normal file
|
@ -0,0 +1 @@
|
|||
addr1q8xzhlhssfx0fwd57ha4khf7wtwdmr8rc4lkwnge6xjnskxv90l0pqjv7jumfa0mtdwnuukumkxw83tlvax3n5d98pvqgu558s
|
1
cc/algo
Normal file
|
@ -0,0 +1 @@
|
|||
7GHLYCLQKIET5XT2OWMAXU6NQKIRFJOWMKUOFON4RABVAA2PUZ2DLCDRLQ
|
1
cc/ark
Normal file
|
@ -0,0 +1 @@
|
|||
AHHRwwELYb2KUjhcnZ4dknHuerdpRLfD4N
|
1
cc/atom
Normal file
|
@ -0,0 +1 @@
|
|||
cosmos132qm6ymwft9ck0xaaa9qamyaqq5ckwku98sak2
|
1
cc/bch
Normal file
|
@ -0,0 +1 @@
|
|||
qrqs9yxvnknvma6n8yy79xvlpd4l6kktmv28j35rwj
|
1
cc/bnb
Normal file
|
@ -0,0 +1 @@
|
|||
bnb1dezkkkg23fesfaz7jrt6xguuqsan20wz9jgt3d
|
1
cc/btc
Normal file
|
@ -0,0 +1 @@
|
|||
bc1qu2qa6m3lkf3cvr5220k4npa77g6endlaf45c3j
|
1
cc/dash
Normal file
|
@ -0,0 +1 @@
|
|||
Xx6DuquvMtZHZAuEjPSt175Kmmx3r36Pg3
|
1
cc/dgb
Normal file
|
@ -0,0 +1 @@
|
|||
DBHEv2ChbeQc7RJGaobMpwejK9tpgmi9FA
|
1
cc/dot
Normal file
|
@ -0,0 +1 @@
|
|||
13Mfiye1NW43JZKmr1MM2GxgJfbVvQFu9Rh3L83UMxYFUmRY
|
1
cc/egld
Normal file
|
@ -0,0 +1 @@
|
|||
erd1lz5tmvdvspyemykl05u34qqjj3tvkvze5n3hyac38dk37v2ymwasc6gyyg
|
1
cc/eth
Normal file
|
@ -0,0 +1 @@
|
|||
0xF9ef31EEea5956Cd193147E7D19b04f45cd9a38D
|
1
cc/fil
Normal file
|
@ -0,0 +1 @@
|
|||
f1unsj2vjm35jxvrctbvi2wxp2shsbvnvcaurszyq
|
1
cc/hbar
Normal file
|
@ -0,0 +1 @@
|
|||
0.0.892596
|
1
cc/icx
Normal file
|
@ -0,0 +1 @@
|
|||
hx02b19ad56ff68d3a0a725b04ef27dbf8996684a8
|
1
cc/ltc
Normal file
|
@ -0,0 +1 @@
|
|||
LVZGzfx6uPqJeTXPDUrCviBiyxveqvK2WK
|
1
cc/luna
Normal file
|
@ -0,0 +1 @@
|
|||
terra1rw6d6qkwqtlf38ncllt38axgwyu24ezlgx54wr
|
1
cc/ont
Normal file
|
@ -0,0 +1 @@
|
|||
AWEjJtRPkwL3VPwvp6G3wd96Z2oqAJ8s6s
|
1
cc/qtum
Normal file
|
@ -0,0 +1 @@
|
|||
QWDBhWadR1Xe2frRAZJ58LjzbMMff7udfH
|
1
cc/sol
Normal file
|
@ -0,0 +1 @@
|
|||
FbDhn6rkT4x1uW6p9XufYwBrHeS53y56Q8vdo2eKb2Zc
|
1
cc/theta
Normal file
|
@ -0,0 +1 @@
|
|||
0x27d77039F7E852c72b15F824842E44A1295cC53A
|
1
cc/trx
Normal file
|
@ -0,0 +1 @@
|
|||
TAFW2JVYXPfskGaoz4vu1oMwo6B72J2fEE
|
1
cc/vet
Normal file
|
@ -0,0 +1 @@
|
|||
0x877996962b331c032955fdb80B2AA7D6E78cb0d7
|
1
cc/xlm
Normal file
|
@ -0,0 +1 @@
|
|||
GAYZAZU7BZ3PLSBLHMBIARS2NXC77R5TZBHLWX7PZV474FWYOTIXCYTK
|
1
cc/xmr
Normal file
|
@ -0,0 +1 @@
|
|||
43NTvQEtdgTHfvm9vtj3tQDYJL9R3aja1QR98YkY2DgDi8gcWnfCYBJe9qgBerGiu6eE9JM65o8rhHxbNHySUcLf4yxyYpr
|
1
cc/xno
Normal file
|
@ -0,0 +1 @@
|
|||
nano_1ade4pu7t6t46xj7ufw99itgxzu873r6exhazz5mddbiz3hje8j614qipw3f
|
1
cc/xrp
Normal file
|
@ -0,0 +1 @@
|
|||
rKyjesfPonKVordBMoiFj3UztMWxCLQ6CV
|
1
cc/xtz
Normal file
|
@ -0,0 +1 @@
|
|||
tz1iLTaChtfT3ZH45DoxrWxyjhRLnFzuLRwu
|
1
cc/zec
Normal file
|
@ -0,0 +1 @@
|
|||
t1ceshuxTbpEf6XqCXPbaL1LSazyJUvgVFE
|
1
cc/zil
Normal file
|
@ -0,0 +1 @@
|
|||
zil13yagsjncsd0xxk8jte43gu9ll8s2ezwes258fl
|
1
in/.well-known/openpgpkey/hu/bs9ff8np9mc3c3uanz311ysm8ei3j1kx
Symbolic link
|
@ -0,0 +1 @@
|
|||
social
|
1
in/.well-known/openpgpkey/hu/e5a4bxki1ktx1jncwco5nkcofedmkxod
Symbolic link
|
@ -0,0 +1 @@
|
|||
git
|
1
in/.well-known/openpgpkey/hu/git
Symbolic link
|
@ -0,0 +1 @@
|
|||
marc
|
BIN
in/.well-known/openpgpkey/hu/marc
Normal file
1
in/.well-known/openpgpkey/hu/social
Symbolic link
|
@ -0,0 +1 @@
|
|||
marc
|
0
in/.well-known/openpgpkey/policy
Normal file
551
in/en/index.html
|
@ -1,551 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
|
||||
<meta charset="UTF-8">
|
||||
<meta name="description" content="CV">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>Curriculum Vitæ</title>
|
||||
<link rel="canonical" href="https://cv.marc.beninca.link/en">
|
||||
<!--
|
||||
<link rel="stylesheet" href="../style/debug.css">
|
||||
<!---->
|
||||
<link rel="stylesheet" href="../fonts/forkawesome-webfont.css">
|
||||
<link rel="stylesheet" href="../style/reset.css">
|
||||
<link rel="stylesheet" href="../style/main.css">
|
||||
<script defer src="../script/main.js"></script>
|
||||
|
||||
</head>
|
||||
<body class="item link">
|
||||
|
||||
<!-- columns / start -->
|
||||
<div class="columns">
|
||||
|
||||
<aside>
|
||||
|
||||
<article class="org"><header class="org">
|
||||
<div class="position">
|
||||
<h1 class="title">Marc Beninca</h1>
|
||||
<p class="sub">@
|
||||
<a href="https://en.wikipedia.org/wiki/Bordeaux">Bordeaux</a>,
|
||||
<a href="https://en.wikipedia.org/wiki/France">France</a>
|
||||
</p>
|
||||
</div>
|
||||
<button id="theme"><img class="inline" src="../img/theme.svg" alt="Theme"></button>
|
||||
<button class="link" id="link"><img class="inline" src="../img/link.svg" alt="Links"></button>
|
||||
<button class="item" id="item"><ul><li></li></ul></button>
|
||||
</header>
|
||||
|
||||
<section class="banner">
|
||||
<a href="../marc.beninca.vcf">
|
||||
<img class="big" id="vcard" src="../img/marc.beninca.svg" alt="Vcard QR code">
|
||||
</a>
|
||||
<table><tbody>
|
||||
<tr>
|
||||
<td></td>
|
||||
<th colspan="2" scope="colgroup"><a href="https://en.wikipedia.org/wiki/Common_European_Framework_of_Reference_for_Languages#Common_reference_levels"><abbr title="Common European Framework of Reference for Languages">CEFRL</abbr></a></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><a href="../en">English</a></th>
|
||||
<th class="logo" scope="row"><a href="https://en.wikipedia.org/wiki/American_English"><img class="logo" src="../img/en.png" alt="American English"></a></th>
|
||||
<td class="level">C 2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><a href="../fr">French</a></th>
|
||||
<th class="logo" scope="row"><a href="https://en.wikipedia.org/wiki/French_of_France"><img class="logo" src="../img/fr.png" alt="French of France"></a></th>
|
||||
<td class="level">C 2</td>
|
||||
</tr>
|
||||
</tbody></table>
|
||||
</section>
|
||||
<section class="banner">
|
||||
<table><tbody>
|
||||
<tr>
|
||||
<th scope="row"><a href="https://en.wikipedia.org/wiki/VCard#Properties">TEL</a></th>
|
||||
<th class="logo" scope="row"><img class="logo" src="../img/tel.svg" alt="Telephone logo"></th>
|
||||
<td><span class="fa fa-plus"></span>33 607478434</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><a href="https://en.wikipedia.org/wiki/VCard#Properties">EMAIL</a></th>
|
||||
<th class="logo" scope="row"><img class="logo" src="../img/mail.svg" alt="Mail logo"></th>
|
||||
<td>cv <span class="fa fa-at"></span> marc.beninca.link</td>
|
||||
</tr>
|
||||
</tbody></table>
|
||||
</section>
|
||||
|
||||
</article>
|
||||
|
||||
<section>
|
||||
<h2>Skills</h2>
|
||||
|
||||
<ul>
|
||||
<li>continuous technology watch</li>
|
||||
<li>always curious to learn</li>
|
||||
</ul>
|
||||
|
||||
<article>
|
||||
<h3>Boot</h3>
|
||||
<ul><li>
|
||||
<a href="https://en.wikipedia.org/wiki/ARM_architecture_family">ARM</a>,
|
||||
<a href="https://en.wikipedia.org/wiki/BIOS">BIOS</a>,
|
||||
<a href="https://en.wikipedia.org/wiki/UEFI">EFI</a>,
|
||||
<a href="https://en.wikipedia.org/wiki/GNU_GRUB">GRUB</a>,
|
||||
<a href="https://en.wikipedia.org/wiki/UEFI#Secure_Boot">Secure Boot</a>
|
||||
</li><li>
|
||||
<a href="https://en.wikipedia.org/wiki/Btrfs">BTRFS</a>,
|
||||
<a href="https://en.wikipedia.org/wiki/EFI_system_partition">ESP</a>,
|
||||
<a href="https://en.wikipedia.org/wiki/Linux_Unified_Key_Setup">LUKS</a>,
|
||||
<a href="https://en.wikipedia.org/wiki/Logical_Volume_Manager_(Linux)">LVM</a>,
|
||||
<a href="https://en.wikipedia.org/wiki/GNU_Parted">Parted</a>,
|
||||
<a href="https://en.wikipedia.org/wiki/RAID">RAID</a>
|
||||
</li><li>
|
||||
<a href="https://en.wikipedia.org/wiki/Linux">Linux</a>,
|
||||
<a href="https://en.wikipedia.org/wiki/Live_USB">Live</a>,
|
||||
<a href="https://en.wikipedia.org/wiki/SquashFS">SquashFS</a>
|
||||
</li></ul>
|
||||
</article>
|
||||
|
||||
<article>
|
||||
<h3><a href="https://en.wikipedia.org/wiki/Continuous_integration"><abbr title="Continuous Integration">CI</abbr></a> / <a href="https://en.wikipedia.org/wiki/Continuous_deployment"><abbr title="Continuous Deployment">CD</abbr></a></h3>
|
||||
<ul><li>
|
||||
<a href="https://en.wikipedia.org/wiki/Ansible_(software)">Ansible</a>,
|
||||
<a href="https://en.wikipedia.org/wiki/Jenkins_(software)">Jenkins</a>,
|
||||
<a href="https://en.wikipedia.org/wiki/Sonatype_Nexus_Repository">Nexus</a>,
|
||||
<a href="https://en.wikipedia.org/wiki/SonarQube">SonarQube</a>
|
||||
</li><li>
|
||||
<a href="https://en.wikipedia.org/wiki/Forgejo">Forgejo</a>,
|
||||
<a href="https://en.wikipedia.org/wiki/Git">Git</a>,
|
||||
<a href="https://en.wikipedia.org/wiki/Gitea">Gitea</a>,
|
||||
<a href="https://en.wikipedia.org/wiki/GitHub">GitHub</a>,
|
||||
<a href="https://en.wikipedia.org/wiki/GitLab">GitLab</a>
|
||||
</li><li>
|
||||
<a href="https://en.wikipedia.org/wiki/Apache_Maven">Maven</a>,
|
||||
<a href="https://en.wikipedia.org/wiki/Npm">NPM</a>,
|
||||
<a href="https://nvd.nist.gov">NVD</a>,
|
||||
<a href="https://en.wikipedia.org/wiki/Pip_(package_manager)">PIP</a>,
|
||||
<a href="https://en.wikipedia.org/wiki/Python_Package_Index">PyPI</a>,
|
||||
<a href="https://docs.astral.sh/uv">UV</a>
|
||||
</li></ul>
|
||||
</article>
|
||||
|
||||
<article>
|
||||
<h3>Code</h3>
|
||||
<ul><li>
|
||||
<a href="https://en.wikipedia.org/wiki/Bash_(Unix_shell)">BASH</a>,
|
||||
<a href="https://www.gnu.org/software/grub/manual/grub/grub.html#Shell_002dlike-scripting">GRUB Shell</a>,
|
||||
<a href="https://en.wikipedia.org/wiki/Almquist_shell">POSIX Shell</a>
|
||||
</li><li>
|
||||
<a href="https://en.wikipedia.org/wiki/CSS">CSS</a>,
|
||||
<a href="https://en.wikipedia.org/wiki/HTML">HTML</a>,
|
||||
<a href="https://en.wikipedia.org/wiki/JavaScript">JavaScript</a>
|
||||
</li><li>
|
||||
<a href="https://en.wikipedia.org/wiki/Java_(programming_language)">Java</a>,
|
||||
<a href="https://en.wikipedia.org/wiki/Python_(programming_language)">Python</a>
|
||||
</li></ul>
|
||||
</article>
|
||||
|
||||
<article>
|
||||
<h3>Cryptography</h3>
|
||||
<ul><li>
|
||||
<a href="https://en.wikipedia.org/wiki/GNU_Privacy_Guard">GPG</a>,
|
||||
<a href="https://en.wikipedia.org/wiki/Pretty_Good_Privacy#OpenPGP">OpenPGP</a>,
|
||||
<a href="https://en.wikipedia.org/wiki/Pass_(software)">Pass</a>
|
||||
</li><li>
|
||||
<a href="https://en.wikipedia.org/wiki/OpenSSH">OpenSSH</a>,
|
||||
<a href="https://en.wikipedia.org/wiki/OpenSSL">OpenSSL</a>
|
||||
</li></ul>
|
||||
</article>
|
||||
|
||||
<article>
|
||||
<h3>Data</h3>
|
||||
<ul><li>
|
||||
<a href="https://en.wikipedia.org/wiki/MariaDB">MariaDB</a>,
|
||||
<a href="https://en.wikipedia.org/wiki/PostgreSQL">PostgreSQL</a>
|
||||
</li></ul>
|
||||
</article>
|
||||
|
||||
<article>
|
||||
<h3>Documentation</h3>
|
||||
<ul><li>
|
||||
<a href="https://en.wikipedia.org/wiki/Graphviz">GraphViz</a>,
|
||||
<a href="https://en.wikipedia.org/wiki/PlantUML">PlantUML</a>
|
||||
</li><li>
|
||||
<a href="https://en.wikipedia.org/wiki/LaTeX">LaTeX</a>,
|
||||
<a href="https://en.wikipedia.org/wiki/Pandoc">PanDoc</a>,
|
||||
<a href="https://en.wikipedia.org/wiki/PDFtk">PDFtk</a>,
|
||||
<a href="https://en.wikipedia.org/wiki/Sphinx_(documentation_generator)">Sphinx</a>,
|
||||
<a href="https://en.wikipedia.org/wiki/XeTeX">XeTeX</a>
|
||||
</li><li>
|
||||
<a href="https://en.wikipedia.org/wiki/Markdown">MarkDown</a>,
|
||||
<a href="https://en.wikipedia.org/wiki/ReStructuredText">ReStructuredText</a>,
|
||||
<a href="https://en.wikipedia.org/wiki/TeX">TeX</a>
|
||||
</li></ul>
|
||||
</article>
|
||||
|
||||
<article>
|
||||
<h3>Systems</h3>
|
||||
<ul><li>
|
||||
<a href="https://en.wikipedia.org/wiki/AlmaLinux">Alma</a>,
|
||||
<a href="https://en.wikipedia.org/wiki/Fedora_Linux">Fedora</a>,
|
||||
<a href="https://en.wikipedia.org/wiki/OpenSUSE">OpenSUSE</a>,
|
||||
<a href="https://en.wikipedia.org/wiki/Rocky_Linux">Rocky</a>
|
||||
</li><li>
|
||||
<a href="https://en.wikipedia.org/wiki/Alpine_Linux">Alpine</a>,
|
||||
<a href="https://en.wikipedia.org/wiki/Arch_Linux">Arch</a>
|
||||
</li><li>
|
||||
<a href="https://en.wikipedia.org/wiki/Debian">Debian</a>,
|
||||
<a href="https://salsa.debian.org/installer-team/debootstrap">Debootstrap</a>,
|
||||
<a href="https://en.wikipedia.org/wiki/Linux_Mint">Mint</a>,
|
||||
<a href="https://en.wikipedia.org/wiki/Ubuntu">Ubuntu</a>
|
||||
</li></ul>
|
||||
</article>
|
||||
|
||||
<article>
|
||||
<h3>Virtualization</h3>
|
||||
<ul><li>
|
||||
<a href="https://en.wikipedia.org/wiki/Docker_(software)">Docker</a>,
|
||||
<a href="https://linuxcontainers.org/incus">Incus</a>,
|
||||
<a href="https://en.wikipedia.org/wiki/LXC">LXC</a>
|
||||
</li><li>
|
||||
<a href="https://en.wikipedia.org/wiki/Mingw-w64#MSYS2">MSys2</a>,
|
||||
<a href="https://en.wikipedia.org/wiki/QEMU">QEMU</a>,
|
||||
<a href="https://en.wikipedia.org/wiki/VirtualBox">VirtualBox</a>
|
||||
</li><li>
|
||||
<a href="https://en.wikipedia.org/wiki/Proxmox_Virtual_Environment">Proxmox</a>,
|
||||
<a href="https://en.wikipedia.org/wiki/VMware_vSphere">VMware vSphere</a>
|
||||
</li></ul>
|
||||
</article>
|
||||
|
||||
<article>
|
||||
<h3>Web</h3>
|
||||
<ul><li>
|
||||
<a href="https://en.wikipedia.org/wiki/BIND">BIND</a>,
|
||||
<a href="https://en.wikipedia.org/wiki/Domain_Name_System">DNS</a>,
|
||||
<a href="https://en.wikipedia.org/wiki/HAProxy">HAproxy</a>,
|
||||
<a href="https://en.wikipedia.org/wiki/Unbound_(DNS_server)">Unbound</a>
|
||||
</li><li>
|
||||
<a href="https://en.wikipedia.org/wiki/Certificate_authority"><abbr title="Certificate Authority">CA</abbr></a>,
|
||||
<a href="https://en.wikipedia.org/wiki/Let's_Encrypt#Software_implementation">CertBot</a>,
|
||||
<a href="https://en.wikipedia.org/wiki/Apache_HTTP_Server">HTTPd</a>,
|
||||
<a href="https://en.wikipedia.org/wiki/HTTPS">HTTPS</a>,
|
||||
<a href="https://en.wikipedia.org/wiki/Nginx">NginX</a>
|
||||
</li><li>
|
||||
<a href="https://en.wikipedia.org/wiki/Apache_Tomcat">Tomcat</a>,
|
||||
<a href="https://en.wikipedia.org/wiki/UWSGI">uWSGI</a>,
|
||||
<a href="https://en.wikipedia.org/wiki/WildFly">WildFly</a>
|
||||
</li></ul>
|
||||
</article>
|
||||
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2>Links</h2>
|
||||
|
||||
<table><tbody>
|
||||
<tr>
|
||||
<th scope="row"><a href="https://en.wikipedia.org/wiki/LinkedIn">LinkedIn</a></th>
|
||||
<td class="logo"><img class="logo" src="../img/linkedin.svg" alt="LinkedIn logo"></td>
|
||||
<td><a href="https://linkedin.com/in/marc-beninca">linkedin.com</a></td>
|
||||
</tr>
|
||||
</tbody></table>
|
||||
|
||||
<h3>Git</h3>
|
||||
|
||||
<table><tbody>
|
||||
<tr>
|
||||
<th scope="row"><a href="https://en.wikipedia.org/wiki/Forgejo">Forgejo</a></th>
|
||||
<td class="logo"><img class="logo" src="../img/forgejo.svg" alt="Forgejo logo"></td>
|
||||
<td><a href="https://forge.rwx.work/marc.beninca">forge.rwx.work</a></td>
|
||||
</tr>
|
||||
</tbody></table>
|
||||
|
||||
<h3>Identity</h3>
|
||||
|
||||
<table><tbody>
|
||||
<tr>
|
||||
<th scope="row"><a href="https://docs.keyoxide.org">KeyOxide</a></th>
|
||||
<td class="logo"><img class="logo" src="../img/keyoxide.svg" alt="KeyOxide logo"></td>
|
||||
<td>
|
||||
<a href="https://keyoxide.org/08EDA7006234A0EB29A3A8471DBD5EC4BADA5579">OpenPGP</a>,
|
||||
<a href="https://keyoxide.org/aspe:keyoxide.org:WUD5YVN52J3RJ6CD4ZCWYL6S54"><abbr title="Ariadne Signature Profile">ASP</abbr></a>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody></table>
|
||||
|
||||
<h3>Social</h3>
|
||||
|
||||
<table><tbody>
|
||||
<tr>
|
||||
<th scope="row"><a href="https://en.wikipedia.org/wiki/Bluesky">BlueSky</a></th>
|
||||
<td class="logo"><img class="logo" src="../img/bluesky.svg" alt="BlueSky logo"></td>
|
||||
<td><a href="https://bsky.app/profile/marc.beninca.link">bsky.app</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><a href="https://en.wikipedia.org/wiki/PeerTube">PeerTube</a></th>
|
||||
<td class="logo"><img class="logo" src="../img/peertube.svg" alt="PeerTube logo"></td>
|
||||
<td><a href="https://videos.trom.tf/@marc.beninca">videos.trom.tf</a></td>
|
||||
</tr>
|
||||
</tbody></table>
|
||||
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2>Education</h2>
|
||||
|
||||
<article><header>
|
||||
<div class="org"><a href="../img/cnam.png"><img class="org" src="../img/cnam.png" alt="CNAM logo"></a>
|
||||
<div class="position">
|
||||
<p class="title"><a href="https://en.wikipedia.org/wiki/Conservatoire_national_des_arts_et_métiers"><abbr title="École d’Ingénieurs du Conservatoire National des Arts et Métiers">EICNAM</abbr></a></p>
|
||||
<p class="sub"><a href="https://en.wikipedia.org/wiki/European_Qualifications_Framework#Structure"><abbr title="European Qualifications Framework">EQF</abbr></a> level 7</p>
|
||||
</div></div>
|
||||
<div class="time">
|
||||
<p class="duration">2 years</p>
|
||||
<p class="period">
|
||||
<time datetime="2021">2021</time> ← <time datetime="2019">2019</time></p>
|
||||
</div></header>
|
||||
<ul>
|
||||
<li><abbr title="Informatique, Réseaux, Systèmes et Multimédia">IRSM</abbr> (Networks, Systems & Multimedia)</li>
|
||||
</ul>
|
||||
</article>
|
||||
|
||||
<article><header>
|
||||
<div class="org"><a href="../img/cnam.png"><img class="org" src="../img/cnam.png" alt="CNAM logo"></a>
|
||||
<div class="position">
|
||||
<p class="title"><a href="https://en.wikipedia.org/wiki/Conservatoire_national_des_arts_et_métiers"><abbr title="Conservatoire National des Arts et Métiers">CNAM</abbr></a></p>
|
||||
<p class="sub"><a href="https://en.wikipedia.org/wiki/European_Qualifications_Framework#Structure"><abbr title="European Qualifications Framework">EQF</abbr></a> level 6</p>
|
||||
</div></div>
|
||||
<div class="time">
|
||||
<p class="duration">5 years</p>
|
||||
<p class="period">
|
||||
<time datetime="2019">2019<time> ← <time datetime="2014">2014</time></p>
|
||||
</div></header>
|
||||
<ul>
|
||||
<li><abbr title="Concepteur en Architecture Informatique">CAI</abbr> (Computing Architecture Designer)</li>
|
||||
</ul>
|
||||
</article>
|
||||
|
||||
</section>
|
||||
|
||||
</aside>
|
||||
|
||||
<main>
|
||||
|
||||
<article class="org"><header class="org">
|
||||
<div class="position">
|
||||
<h1 class="title">DevOps</h1>
|
||||
<p class="sub">Exploring & automating Information Technologies</p>
|
||||
</div>
|
||||
<button id="swap"></button>
|
||||
</header>
|
||||
<ul>
|
||||
<li>booting, building, configuring, securing, maintaining systems</li>
|
||||
<li>modeling, implementing, integrating, deploying, documenting software</li>
|
||||
</ul>
|
||||
</article>
|
||||
|
||||
<section>
|
||||
<h2>Experience</h2>
|
||||
|
||||
<article class="org"><header class="org">
|
||||
<div class="org"><a href="../img/dirisi.png"><img class="org" src="../img/dirisi.png" alt="DIRISI logo"></a>
|
||||
<div class="position">
|
||||
<p class="title"><a href="https://en.wikipedia.org/wiki/Joint_Directorate_of_Infrastructure_Networks_and_Information_Systems">Joint Directorate of Infrastructure Networks & <abbr title="Information Systems">IS</abbr></a></p>
|
||||
<p class="sub"><a href="https://en.wikipedia.org/wiki/Joint_Directorate_of_Infrastructure_Networks_and_Information_Systems"><abbr title="Direction Interarmées des Réseaux d’Infrastructure et Systèmes d’Information">DIRISI</abbr></a> @ <a href="https://en.wikipedia.org/wiki/Bordeaux">Bordeaux</a>, <a href="https://en.wikipedia.org/wiki/Ministry_of_Armed_Forces_(France)">Ministry of Armed Forces</a></p>
|
||||
</div></div>
|
||||
<div class="time">
|
||||
<p class="duration org"><time datetime="P9Y">9 years</time></p>
|
||||
<p class="period">
|
||||
<time datetime="2025">2025</time> ← <time datetime="2016-09">2016</time></p>
|
||||
</div></header>
|
||||
|
||||
<article><header>
|
||||
<div class="org"><a href="../img/cdad-bdx.png"><img class="org" src="../img/cdad-bdx.png" alt="CDAD-BDX logo"></a>
|
||||
<div class="position">
|
||||
<p class="title">Defense Applications Development Center</p>
|
||||
<p class="sub"><strong>DevOps</strong> @ Quality Assurance, <abbr title="Centre de Développement des Applications de la Défense">CDAD</abbr></p>
|
||||
</div></div>
|
||||
<div class="time">
|
||||
<p class="duration"><time datetime="P6Y">6 years</time></p>
|
||||
<p class="period">
|
||||
<time datetime="2025">2025</time> ← <time datetime="2019-02">2019</time></p>
|
||||
</div></header>
|
||||
<ul>
|
||||
<li>administered <strong>CI</strong> / <strong>CD</strong> tools: <strong>Gitea</strong>, <strong>GitLab</strong>, <strong>Jenkins</strong>, <strong>Nexus</strong>, <strong>SonarQube</strong></li>
|
||||
<li>wrote <strong>Python</strong> scripts to maintain offline mirrors:<br><strong>Alma</strong>, <strong>Alpine</strong>, <strong>CentOS</strong>, <strong>Debian</strong>, <strong>Docker</strong>, <strong>Maven</strong>, <strong>MSys2</strong>, <strong>NPM</strong>, <strong>NVD</strong>, <strong>PyPI</strong></li>
|
||||
<li>wrote & maintained <strong>BASH</strong> scripts for easier offline usage & packaging of <strong>MSys2</strong></li>
|
||||
<li>wrote <strong>Ansible</strong> playbooks & roles for configurations & deployments</li>
|
||||
<li>built <strong>Ubuntu</strong> <a href="https://en.wikipedia.org/wiki/Long-term_support"><abbr title="Long-Term Support">LTS</abbr></a> <strong>Live</strong> system images with kiosk graphical interface</li>
|
||||
</ul>
|
||||
</article>
|
||||
|
||||
<article><header>
|
||||
<div class="org"><a href="../img/cdad-bdx.png"><img class="org" src="../img/cdad-bdx.png" alt="CDAD-BDX logo"></a>
|
||||
<div class="position">
|
||||
<p class="title">Defense Applications Development Center</p>
|
||||
<p class="sub"><strong>System Administrator</strong> @ Infrastructure & Security, <abbr title="Centre de Développement des Applications de la Défense">CDAD</abbr></p>
|
||||
</div></div>
|
||||
<div class="time">
|
||||
<p class="duration"><time datetime="P1Y5M">2 years</time></p>
|
||||
<p class="period">
|
||||
<time datetime="2019-02">2019</time> ← <time datetime="2017-09">2017</time></p>
|
||||
</div></header>
|
||||
<ul>
|
||||
<li>maintained <strong>Proxmox</strong> & <strong>vSphere</strong> infrastructures, with <a href="https://en.wikipedia.org/wiki/Virtual_machine"><abbr title="Virtual Machines">VM</abbr></a> & <strong>LXC</strong> containers</li>
|
||||
<li>designed a <a href="https://en.wikipedia.org/wiki/Single_sign-on"><abbr title="Single Sign-On">SSO</abbr></a> architecture: <strong>HAproxy</strong>, <a href="https://en.wikipedia.org/wiki/Keycloak">KeyCloak</a> / <strong>WildFly</strong>, <strong>MariaDB</strong> <a href="https://mariadb.com/kb/en/galera-cluster">Galera</a></li>
|
||||
<li>wrote <strong>Python</strong> scripts for: <a href="https://en.wikipedia.org/wiki/APT_(software)"><abbr title="Advanced Package Tool">APT</abbr></a> mirrors, <strong>Git</strong> repos, <strong>OpenSSH</strong> keypairs, <strong>Sphinx</strong> docs</li>
|
||||
</ul>
|
||||
</article>
|
||||
|
||||
<article><header>
|
||||
<div class="org"><a href="../img/cdad-bdx.png"><img class="org" src="../img/cdad-bdx.png" alt="CDAD-BDX logo"></a>
|
||||
<div class="position">
|
||||
<p class="title">Defense Applications Development Center</p>
|
||||
<p class="sub"><strong>Software Developer</strong> @ Digital Factory, <abbr title="Centre de Développement des Applications de la Défense">CDAD</abbr></p>
|
||||
</div></div>
|
||||
<div class="time">
|
||||
<p class="duration"><time datetime="P1Y">1 year</time></p>
|
||||
<p class="period">
|
||||
<time datetime="2017-09">2017</time> ← <time datetime="2016-09">2016</time></p>
|
||||
</div></header>
|
||||
<ul>
|
||||
<li>installed a <strong>Debian</strong> based development network: <strong>LXC</strong> server, laptops, workstations</li>
|
||||
<li>wrote <strong>BASH</strong> & <strong>Python</strong> scripts for: <a href="https://en.wikipedia.org/wiki/Clonezilla">CloneZilla</a>, <strong>Debian</strong>, DebMirror, <strong>GRUB</strong>, <strong>PanDoc</strong></li>
|
||||
<li>wrote <strong>Python</strong> script to transform all existing code repositories from <a href="https://en.wikipedia.org/wiki/Apache_Subversion"><abbr title="SubVersioN">SVN</abbr></a> to <strong>Git</strong></li>
|
||||
</ul>
|
||||
</article>
|
||||
|
||||
</article>
|
||||
|
||||
<article class="org"><header class="org">
|
||||
<div class="org"><a href="../img/aae.png"><img class="org" src="../img/aae.png" alt="AAE logo"></a>
|
||||
<div class="position">
|
||||
<p class="title"><a href="https://en.wikipedia.org/wiki/French_Air_and_Space_Force">French Air and Space Force</a></p>
|
||||
<p class="sub"><a href="https://en.wikipedia.org/wiki/French_Air_and_Space_Force"><abbr title="Armée de l’Air et de l’Espace">AAE</abbr></a> @ <a href="https://en.wikipedia.org/wiki/Mont-de-Marsan_Air_Base">Air Base 118</a>, <a href="https://en.wikipedia.org/wiki/Mont-de-Marsan">Mont-de-Marsan</a>, <a href="https://en.wikipedia.org/wiki/Ministry_of_Armed_Forces_(France)">Ministry of Armed Forces</a></p>
|
||||
</div></div>
|
||||
<div class="time">
|
||||
<p class="duration org"><time datetime="P14Y4M">14 years</time></p>
|
||||
<p class="period">
|
||||
<time datetime="2016-09">2016</time> ← <time datetime="2002-05">2002</time></p>
|
||||
</div></header>
|
||||
|
||||
<article><header>
|
||||
<div class="org"><a href="../img/gaio.png"><img class="org" src="../img/gaio.png" alt="GAIO logo"></a>
|
||||
<div class="position">
|
||||
<p class="title"><a href="https://fr.wikipedia.org/wiki/Base_aérienne_118_Mont-de-Marsan#Autres">Operational IT Air Group</a></p>
|
||||
<p class="sub"><strong>Java Developer</strong> @ Production, <a href="https://fr.wikipedia.org/wiki/Base_aérienne_118_Mont-de-Marsan#Autres"><abbr title="Groupement Aérien de l’Informatique Opérationnelle">GAIO</abbr></a></p>
|
||||
</div></div>
|
||||
<div class="time">
|
||||
<p class="duration"><time datetime="P8Y">8 years</time></p>
|
||||
<p class="period">
|
||||
<time datetime="2016-09">2016</time> ← <time datetime="2008-09">2008</time></p>
|
||||
</div></header>
|
||||
<h5><strong><abbr title="Module d’Élaboration Logique des Informations Simplifiées de Survol Aérien">MELISSA</abbr> <abbr title="New Generation">NG</abbr></strong> (MELISSA New Generation)</h5>
|
||||
Complete reimplementation in <strong>Java</strong> and <strong>PostgreSQL</strong> database:<ul>
|
||||
<li>designed & implemented a cartographic engine with <a href="https://en.wikipedia.org/wiki/PNG"><abbr title="Portable Network Graphics">PNG</abbr></a> images & <a href="https://en.wikipedia.org/wiki/XML"><abbr title="eXtensible Markup Language">XML</abbr></a> metadata</li>
|
||||
<li>wrote device drivers, emulators & graphical user interfaces for:<ul>
|
||||
<li>ADL (Airborne Data Loader) equipment, handling<br>
|
||||
DTM (Data Transfer Module) contactless cards for <a href="https://en.wikipedia.org/wiki/Dassault/Dornier_Alpha_Jet">Alpha Jet</a> onboard computers</li>
|
||||
<li>simultaneous programming of <a href="https://en.wikipedia.org/wiki/EEPROM"><abbr title="Electrically Erasable Programmable Read-Only Memory">EEPROM</abbr></a> modules for <a href="https://en.wikipedia.org/wiki/Dassault_Mirage#Production_models">Mirage</a> onboard computers</li>
|
||||
</ul>
|
||||
<li>wrote import of <a href="https://en.wikipedia.org/wiki/Keyhole_Markup_Language"><abbr title="Keyhole Markup Language">KML</abbr> / <abbr title="Keyhole Markup Zip">KMZ</abbr></a> files to display layers of tactical situations (SITAC)</li>
|
||||
</ul>
|
||||
</article>
|
||||
|
||||
<article><header>
|
||||
<div class="org"><a href="../img/ceam.png"><img class="org" src="../img/ceam.png" alt="CEAM logo"></a>
|
||||
<div class="position">
|
||||
<p class="title"><a href="https://en.wikipedia.org/wiki/Centre_d'expertise_aérienne_militaire">Military Air Expertise Center</a></p>
|
||||
<p class="sub"><strong><a href="https://en.wikipedia.org/wiki/Visual_Basic_(classic)">Visual Basic</a> Developer</strong> @ Production, <a href="https://en.wikipedia.org/wiki/Centre_d'expertise_aérienne_militaire"><abbr title="Centre d’Expertise Aérienne Militaire">CEAM</abbr></a></p>
|
||||
</div></div>
|
||||
<div class="time">
|
||||
<p class="duration"><time datetime="P6Y4M">6 years</time></p>
|
||||
<p class="period">
|
||||
<time datetime="2008-09">2008</time> ← <time datetime="2002-05">2002</time></p>
|
||||
</div></header>
|
||||
|
||||
<h5><strong><abbr title="Module d’Élaboration Logique des Informations Simplifiées de Survol Aérien">MELISSA</abbr></strong> (Logical Elaboration Module for Simplified Overflight Info)</h5>
|
||||
Preparation, programming, unloading & replaying of missions for aircrafts<br>
|
||||
<a href="https://en.wikipedia.org/wiki/Dassault/Dornier_Alpha_Jet">Alpha Jet</a>, <a href="https://en.wikipedia.org/wiki/Transall_C-160">Transall</a>, <a href="https://en.wikipedia.org/wiki/Dassault_Mirage_2000">Mirage 2000</a>, <a href="https://en.wikipedia.org/wiki/Dassault_Mirage_F1">Mirage F1</a>, <a href="https://en.wikipedia.org/wiki/Dassault_Mirage_IV">Mirage IV</a>, <a href="https://en.wikipedia.org/wiki/SEPECAT_Jaguar">Jaguar</a>:<ul>
|
||||
<li>wrote device drivers & graphical user interfaces for:<ul>
|
||||
<li>sequential programming of <a href="https://en.wikipedia.org/wiki/EEPROM"><abbr title="Electrically Erasable Programmable Read-Only Memory">EEPROM</abbr></a> modules for <a href="https://en.wikipedia.org/wiki/Dassault_Mirage#Production_models">Mirage</a> onboard computers</li>
|
||||
<li>programming & unloading routes for various Garmin <a href="https://en.wikipedia.org/wiki/Global_Positioning_System"><abbr title="Global Positioning System">GPS</abbr></a> devices</li>
|
||||
</ul>
|
||||
<li>wrote import of NavData global database (international standard <a href="https://en.wikipedia.org/wiki/ARINC_424">ARINC 424</a>)</li>
|
||||
<li>wrote NavData export adapted to <a href="https://en.wikipedia.org/wiki/Transall_C-160">Transall</a> onboard computers (<a href="https://en.wikipedia.org/wiki/Flight_management_system"><abbr title="Flight Management System">FMS</abbr></a>) constraints</li>
|
||||
</ul>
|
||||
|
||||
<hr>
|
||||
|
||||
<h5><strong><abbr title="Écran de Visualisation Aéronef">EVA</abbr></strong> (Aircraft Display Screen)</h5>
|
||||
Onboard display of navigation & video recorders for <a href="https://en.wikipedia.org/wiki/Dassault_Mirage_F1">Mirage F1CR</a> aircrafts:<ul>
|
||||
<li>optimized cartographic engine for embedded computers (<a href="https://en.wikipedia.org/wiki/PC/104">PC/104</a>)</li>
|
||||
<li>designed & built a dedicated system with <a href="https://en.wikipedia.org/wiki/Windows_XP_editions#Windows_XP_Embedded">Windows XP Embedded</a> Studio</li>
|
||||
</ul>
|
||||
|
||||
</article>
|
||||
|
||||
</article>
|
||||
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2>Personal Projects</h2>
|
||||
|
||||
<article class="org"><header class="org">
|
||||
<div class="org"><a href="../img/rwx.svg"><img class="org" src="../img/rwx.svg" alt="RWX logo"></a>
|
||||
<div class="position">
|
||||
<p class="title">Read Write eXecute</p>
|
||||
<p class="sub"><abbr title="Read Write eXecute">RWX</abbr>: <a href="https://forge.rwx.work/rwx.work/rwx"><strong>code @ forge.rwx.work</strong></a>, <a href="https://app.radicle.xyz/nodes/seed.radicle.garden/rad:z2xBYEYWYiBqyJCXdKtxifWyoo3ML">code @ radicle.garden</a>, <a href="https://tangled.sh/@marc.beninca.link/rwx">code @ tangled.sh</a></p>
|
||||
</div></div>
|
||||
<div class="time">
|
||||
<p class="duration"><time datetime="P2Y">2 years</time></p>
|
||||
<p class="period">
|
||||
<time datetime="2025">2025</time> ← <time datetime="2023-07">2023</time></p>
|
||||
</div></header>
|
||||
<p><strong>Python</strong> & <strong>POSIX Shell</strong> parent project</p>
|
||||
|
||||
<article><header>
|
||||
<div class="position">
|
||||
<p class="title">Shell to Python Continuous Deployment</p>
|
||||
<p class="sub"><abbr title="Shell to Python Continuous Deployment">SPCD</abbr>: <a href="https://forge.rwx.work/rwx.work/spcd"><strong>code @ forge.rwx.work</strong></a></p>
|
||||
</div>
|
||||
<div class="time">
|
||||
<p class="duration"><time datetime="P1Y">1 year</time></p>
|
||||
<p class="period">
|
||||
<time datetime="2025">2025</time> ← <time datetime="2024-03">2024</time></p>
|
||||
</div></header>
|
||||
<strong>POSIX Shell</strong> & <strong>Python</strong> program handling <strong>CI</strong> / <strong>CD</strong> workflows in a unified way:<ul>
|
||||
<li>whether the network infrastructure is online or offline with custom <strong>CA</strong> & <strong>DNS</strong></li>
|
||||
<li>whatever the forge: <strong>Forgejo</strong>, <strong>Gitea</strong>, <strong>GitHub</strong>, <strong>GitLab</strong></li>
|
||||
<li>whatever the <strong>Docker</strong> container’s <strong>Linux</strong> system base:<br>
|
||||
<strong>Alma</strong>, <strong>Alpine</strong>, <strong>Arch</strong>, <strong>Debian</strong>, <strong>Fedora</strong>, <strong>OpenSUSE</strong>, <strong>Rocky</strong>, <strong>Ubuntu</strong></li>
|
||||
</ul>
|
||||
</article>
|
||||
|
||||
<article><header>
|
||||
<div class="position">
|
||||
<p class="title">Live Scan Grub Menu</p>
|
||||
<p class="sub"><abbr title="Live Scan Grub Menu">LSGM</abbr>: <a href="https://forge.rwx.work/rwx.work/lsgm"><strong>code @ forge.rwx.work</strong></a></p>
|
||||
</div>
|
||||
<div class="time">
|
||||
<p class="duration"><time datetime="P2Y">2 years</time></p>
|
||||
<p class="period">
|
||||
<time datetime="2025">2025</time> ← <time datetime="2023-09">2023</time></p>
|
||||
</div></header>
|
||||
<strong>BASH</strong> & <strong>GRUB Shell</strong> program building <strong>ESP</strong> File Systems with:<ul>
|
||||
<li><strong>Secure Boot</strong> or custom <strong>ARM</strong>, <strong>EFI</strong> & <strong>BIOS</strong> standalone <strong>GRUB</strong> images</li>
|
||||
<li>on-the-fly <strong>OpenPGP</strong> signature checking of selected images</li>
|
||||
<li>dynamic menu scanning available </strong>Live</strong> bootable <strong>SquashFS</strong> images</li>
|
||||
</ul>
|
||||
</article>
|
||||
|
||||
</article>
|
||||
|
||||
</section>
|
||||
|
||||
</main>
|
||||
|
||||
<!-- columns / end -->
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
551
in/fr/index.html
|
@ -1,551 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
<head>
|
||||
|
||||
<meta charset="UTF-8">
|
||||
<meta name="description" content="CV">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>Curriculum Vitæ</title>
|
||||
<link rel="canonical" href="https://cv.marc.beninca.link/en">
|
||||
<!--
|
||||
<link rel="stylesheet" href="../style/debug.css">
|
||||
<!---->
|
||||
<link rel="stylesheet" href="../fonts/forkawesome-webfont.css">
|
||||
<link rel="stylesheet" href="../style/reset.css">
|
||||
<link rel="stylesheet" href="../style/main.css">
|
||||
<script defer src="../script/main.js"></script>
|
||||
|
||||
</head>
|
||||
<body class="item link">
|
||||
|
||||
<!-- columns / start -->
|
||||
<div class="columns">
|
||||
|
||||
<aside>
|
||||
|
||||
<article class="org"><header class="org">
|
||||
<div class="position">
|
||||
<h1 class="title">Marc Beninca</h1>
|
||||
<p class="sub">@
|
||||
<a href="https://fr.wikipedia.org/wiki/Talence">Talence</a>,
|
||||
<a href="https://fr.wikipedia.org/wiki/Bordeaux">Bordeaux</a>
|
||||
</p>
|
||||
</div>
|
||||
<button id="theme"><img class="inline" src="../img/theme.svg" alt="Thème"></button>
|
||||
<button class="link" id="link"><img class="inline" src="../img/link.svg" alt="Liens"></button>
|
||||
<button class="item" id="item"><ul><li></li></ul></button>
|
||||
</header>
|
||||
|
||||
<section class="banner">
|
||||
<a href="../marc.beninca.vcf">
|
||||
<img class="big" id="vcard" src="../img/marc.beninca.svg" alt="Code QR de contact">
|
||||
</a>
|
||||
<table><tbody>
|
||||
<tr>
|
||||
<td></td>
|
||||
<th colspan="2" scope="colgroup"><a href="https://fr.wikipedia.org/wiki/Cadre_européen_commun_de_référence_pour_les_langues#Échelle_globale"><abbr title="Cadre Européen Commun de Référence pour les Langues">CECRL</abbr></a></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><a href="../en">Anglais</a></th>
|
||||
<th class="logo" scope="row"><a href="https://fr.wikipedia.org/wiki/Anglais_américain"><img class="logo" src="../img/en.png" alt="Anglais américain"></a></th>
|
||||
<td class="level">C 2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><a href="../fr">Français</a></th>
|
||||
<th class="logo" scope="row"><a href="https://fr.wikipedia.org/wiki/Français_de_France"><img class="logo" src="../img/fr.png" alt="Français de France"></a></th>
|
||||
<td class="level">C 2</td>
|
||||
</tr>
|
||||
</tbody></table>
|
||||
</section>
|
||||
<section class="banner">
|
||||
<table><tbody>
|
||||
<tr>
|
||||
<th scope="row"><a href="https://fr.wikipedia.org/wiki/VCard#Propriétés">TEL</a></th>
|
||||
<th class="logo" scope="row"><img class="logo" src="../img/tel.svg" alt="Logo de téléphone"></th>
|
||||
<td><span class="fa fa-plus"></span>33 607478434</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><a href="https://fr.wikipedia.org/wiki/VCard#Propriétés">EMAIL</a></th>
|
||||
<th class="logo" scope="row"><img class="logo" src="../img/mail.svg" alt="Logo de courrier"></th>
|
||||
<td>cv <span class="fa fa-at"></span> marc.beninca.link</td>
|
||||
</tr>
|
||||
</tbody></table>
|
||||
</section>
|
||||
|
||||
</article>
|
||||
|
||||
<section>
|
||||
<h2>Compétences</h2>
|
||||
|
||||
<ul>
|
||||
<li>veille technologique continue</li>
|
||||
<li>toujours curieux d’apprendre</li>
|
||||
</ul>
|
||||
|
||||
<article>
|
||||
<h3>Amorçage</h3>
|
||||
<ul><li>
|
||||
<a href="https://fr.wikipedia.org/wiki/Architecture_ARM">ARM</a>,
|
||||
<a href="https://fr.wikipedia.org/wiki/BIOS_(informatique)">BIOS</a>,
|
||||
<a href="https://fr.wikipedia.org/wiki/UEFI">EFI</a>,
|
||||
<a href="https://fr.wikipedia.org/wiki/GNU_GRUB">GRUB</a>,
|
||||
<a href="https://fr.wikipedia.org/wiki/UEFI#Lancement_sécurisé_(Secure_Boot)">Secure Boot</a>
|
||||
</li><li>
|
||||
<a href="https://fr.wikipedia.org/wiki/Btrfs">BTRFS</a>,
|
||||
<a href="https://en.wikipedia.org/wiki/EFI_system_partition">ESP</a>,
|
||||
<a href="https://fr.wikipedia.org/wiki/LUKS">LUKS</a>,
|
||||
<a href="https://en.wikipedia.org/wiki/Logical_Volume_Manager_(Linux)">LVM</a>,
|
||||
<a href="https://fr.wikipedia.org/wiki/GNU_Parted">Parted</a>,
|
||||
<a href="https://fr.wikipedia.org/wiki/RAID_(informatique)">RAID</a>
|
||||
</li><li>
|
||||
<a href="https://fr.wikipedia.org/wiki/Linux">Linux</a>,
|
||||
<a href="https://fr.wikipedia.org/wiki/Live_USB">Live</a>,
|
||||
<a href="https://fr.wikipedia.org/wiki/SquashFS">SquashFS</a>
|
||||
</li></ul>
|
||||
</article>
|
||||
|
||||
<article>
|
||||
<h3><a href="https://fr.wikipedia.org/wiki/Intégration_continue"><abbr title="Intégration Continue">CI</abbr></a> / <a href="https://fr.wikipedia.org/wiki/Déploiement_continu"><abbr title="Déploiement Continu">CD</abbr></a></h3>
|
||||
<ul><li>
|
||||
<a href="https://fr.wikipedia.org/wiki/Ansible_(logiciel)">Ansible</a>,
|
||||
<a href="https://fr.wikipedia.org/wiki/Jenkins_(logiciel)">Jenkins</a>,
|
||||
<a href="https://en.wikipedia.org/wiki/Sonatype_Nexus_Repository">Nexus</a>,
|
||||
<a href="https://fr.wikipedia.org/wiki/SonarQube">SonarQube</a>
|
||||
</li><li>
|
||||
<a href="https://fr.wikipedia.org/wiki/Forgejo">Forgejo</a>,
|
||||
<a href="https://fr.wikipedia.org/wiki/Git">Git</a>,
|
||||
<a href="https://fr.wikipedia.org/wiki/Gitea">Gitea</a>,
|
||||
<a href="https://fr.wikipedia.org/wiki/GitHub">GitHub</a>,
|
||||
<a href="https://fr.wikipedia.org/wiki/GitLab">GitLab</a>
|
||||
</li><li>
|
||||
<a href="https://fr.wikipedia.org/wiki/Apache_Maven">Maven</a>,
|
||||
<a href="https://fr.wikipedia.org/wiki/Npm">NPM</a>,
|
||||
<a href="https://nvd.nist.gov">NVD</a>,
|
||||
<a href="https://fr.wikipedia.org/wiki/Pip_(gestionnaire_de_paquets)">PIP</a>,
|
||||
<a href="https://fr.wikipedia.org/wiki/Python_Package_Index">PyPI</a>,
|
||||
<a href="https://docs.astral.sh/uv">UV</a>
|
||||
</li></ul>
|
||||
</article>
|
||||
|
||||
<article>
|
||||
<h3>Code</h3>
|
||||
<ul><li>
|
||||
<a href="https://fr.wikipedia.org/wiki/Bourne-Again_shell">BASH</a>,
|
||||
<a href="https://www.gnu.org/software/grub/manual/grub/grub.html#Shell_002dlike-scripting">GRUB Shell</a>,
|
||||
<a href="https://fr.wikipedia.org/wiki/Almquist_shell">POSIX Shell</a>
|
||||
</li><li>
|
||||
<a href="https://fr.wikipedia.org/wiki/Feuilles_de_style_en_cascade">CSS</a>,
|
||||
<a href="https://fr.wikipedia.org/wiki/Hypertext_Markup_Language">HTML</a>,
|
||||
<a href="https://fr.wikipedia.org/wiki/JavaScript">JavaScript</a>
|
||||
</li><li>
|
||||
<a href="https://fr.wikipedia.org/wiki/Java_(langage)">Java</a>,
|
||||
<a href="https://fr.wikipedia.org/wiki/Python_(langage)">Python</a>
|
||||
</li></ul>
|
||||
</article>
|
||||
|
||||
<article>
|
||||
<h3>Cryptographie</h3>
|
||||
<ul><li>
|
||||
<a href="https://fr.wikipedia.org/wiki/GNU_Privacy_Guard">GPG</a>,
|
||||
<a href="https://fr.wikipedia.org/wiki/OpenPGP">OpenPGP</a>,
|
||||
<a href="https://fr.wikipedia.org/wiki/Pass_(logiciel)">Pass</a>
|
||||
</li><li>
|
||||
<a href="https://fr.wikipedia.org/wiki/OpenSSH">OpenSSH</a>,
|
||||
<a href="https://fr.wikipedia.org/wiki/OpenSSL">OpenSSL</a>
|
||||
</li></ul>
|
||||
</article>
|
||||
|
||||
<article>
|
||||
<h3>Data</h3>
|
||||
<ul><li>
|
||||
<a href="https://fr.wikipedia.org/wiki/MariaDB">MariaDB</a>,
|
||||
<a href="https://fr.wikipedia.org/wiki/PostgreSQL">PostgreSQL</a>
|
||||
</li></ul>
|
||||
</article>
|
||||
|
||||
<article>
|
||||
<h3>Documentation</h3>
|
||||
<ul><li>
|
||||
<a href="https://fr.wikipedia.org/wiki/Graphviz">GraphViz</a>,
|
||||
<a href="https://fr.wikipedia.org/wiki/PlantUML">PlantUML</a>
|
||||
</li><li>
|
||||
<a href="https://fr.wikipedia.org/wiki/LaTeX">LaTeX</a>,
|
||||
<a href="https://fr.wikipedia.org/wiki/Pandoc">PanDoc</a>,
|
||||
<a href="https://en.wikipedia.org/wiki/PDFtk">PDFtk</a>,
|
||||
<a href="https://fr.wikipedia.org/wiki/Sphinx_(générateur_de_documentation)">Sphinx</a>,
|
||||
<a href="https://fr.wikipedia.org/wiki/XeTeX">XeTeX</a>
|
||||
</li><li>
|
||||
<a href="https://fr.wikipedia.org/wiki/Markdown">MarkDown</a>,
|
||||
<a href="https://fr.wikipedia.org/wiki/ReStructuredText">ReStructuredText</a>,
|
||||
<a href="https://fr.wikipedia.org/wiki/TeX">TeX</a>
|
||||
</li></ul>
|
||||
</article>
|
||||
|
||||
<article>
|
||||
<h3>Systèmes</h3>
|
||||
<ul><li>
|
||||
<a href="https://fr.wikipedia.org/wiki/AlmaLinux">Alma</a>,
|
||||
<a href="https://fr.wikipedia.org/wiki/Fedora_Linux">Fedora</a>,
|
||||
<a href="https://fr.wikipedia.org/wiki/OpenSUSE">OpenSUSE</a>,
|
||||
<a href="https://fr.wikipedia.org/wiki/Rocky_Linux">Rocky</a>
|
||||
</li><li>
|
||||
<a href="https://fr.wikipedia.org/wiki/Alpine_Linux">Alpine</a>,
|
||||
<a href="https://fr.wikipedia.org/wiki/Arch_Linux">Arch</a>
|
||||
</li><li>
|
||||
<a href="https://fr.wikipedia.org/wiki/Debian">Debian</a>,
|
||||
<a href="https://salsa.debian.org/installer-team/debootstrap">Debootstrap</a>,
|
||||
<a href="https://fr.wikipedia.org/wiki/Linux_Mint">Mint</a>,
|
||||
<a href="https://fr.wikipedia.org/wiki/Ubuntu_(système_d'exploitation)">Ubuntu</a>
|
||||
</li></ul>
|
||||
</article>
|
||||
|
||||
<article>
|
||||
<h3>Virtualisation</h3>
|
||||
<ul><li>
|
||||
<a href="https://fr.wikipedia.org/wiki/Docker_(logiciel)">Docker</a>,
|
||||
<a href="https://linuxcontainers.org/fr/incus">Incus</a>,
|
||||
<a href="https://fr.wikipedia.org/wiki/LXC">LXC</a>
|
||||
</li><li>
|
||||
<a href="https://en.wikipedia.org/wiki/Mingw-w64#MSYS2">MSys2</a>,
|
||||
<a href="https://fr.wikipedia.org/wiki/QEMU">QEMU</a>,
|
||||
<a href="https://fr.wikipedia.org/wiki/Oracle_VM_VirtualBox">VirtualBox</a>
|
||||
</li><li>
|
||||
<a href="https://fr.wikipedia.org/wiki/Proxmox_Virtual_Environnement">Proxmox</a>,
|
||||
<a href="https://fr.wikipedia.org/wiki/VMware_vSphere">VMware vSphere</a>
|
||||
</li></ul>
|
||||
</article>
|
||||
|
||||
<article>
|
||||
<h3>Web</h3>
|
||||
<ul><li>
|
||||
<a href="https://fr.wikipedia.org/wiki/BIND">BIND</a>,
|
||||
<a href="https://fr.wikipedia.org/wiki/Domain_Name_System">DNS</a>,
|
||||
<a href="https://fr.wikipedia.org/wiki/HAProxy">HAproxy</a>,
|
||||
<a href="https://fr.wikipedia.org/wiki/Unbound">Unbound</a>
|
||||
</li><li>
|
||||
<a href="https://fr.wikipedia.org/wiki/Autorité_de_certification"><abbr title="Autorité de Certification">CA</abbr></a>,
|
||||
<a href="https://fr.wikipedia.org/wiki/Let's_Encrypt#Implémentation_logicielle">CertBot</a>,
|
||||
<a href="https://fr.wikipedia.org/wiki/Apache_HTTP_Server">HTTPd</a>,
|
||||
<a href="https://fr.wikipedia.org/wiki/Hypertext_Transfer_Protocol_Secure">HTTPS</a>,
|
||||
<a href="https://fr.wikipedia.org/wiki/NGINX">NginX</a>
|
||||
</li><li>
|
||||
<a href="https://fr.wikipedia.org/wiki/Apache_Tomcat">Tomcat</a>,
|
||||
<a href="https://en.wikipedia.org/wiki/UWSGI">uWSGI</a>,
|
||||
<a href="https://fr.wikipedia.org/wiki/WildFly">WildFly</a>
|
||||
</li></ul>
|
||||
</article>
|
||||
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2>Liens</h2>
|
||||
|
||||
<table><tbody>
|
||||
<tr>
|
||||
<th scope="row"><a href="https://fr.wikipedia.org/wiki/LinkedIn">LinkedIn</a></th>
|
||||
<td class="logo"><img class="logo" src="../img/linkedin.svg" alt="Logo de LinkedIn"></td>
|
||||
<td><a href="https://linkedin.com/in/marc-beninca">linkedin.com</a></td>
|
||||
</tr>
|
||||
</tbody></table>
|
||||
|
||||
<h3>Git</h3>
|
||||
|
||||
<table><tbody>
|
||||
<tr>
|
||||
<th scope="row"><a href="https://fr.wikipedia.org/wiki/Forgejo">Forgejo</a></th>
|
||||
<td class="logo"><img class="logo" src="../img/forgejo.svg" alt="Logo de Forgejo"></td>
|
||||
<td><a href="https://forge.rwx.work/marc.beninca">forge.rwx.work</a></td>
|
||||
</tr>
|
||||
</tbody></table>
|
||||
|
||||
<h3>Identité</h3>
|
||||
|
||||
<table><tbody>
|
||||
<tr>
|
||||
<th scope="row"><a href="https://docs.keyoxide.org">KeyOxide</a></th>
|
||||
<td class="logo"><img class="logo" src="../img/keyoxide.svg" alt="Logo de KeyOxide"></td>
|
||||
<td>
|
||||
<a href="https://keyoxide.org/08EDA7006234A0EB29A3A8471DBD5EC4BADA5579">OpenPGP</a>,
|
||||
<a href="https://keyoxide.org/aspe:keyoxide.org:WUD5YVN52J3RJ6CD4ZCWYL6S54"><abbr title="Ariadne Signature Profile">ASP</abbr></a>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody></table>
|
||||
|
||||
<h3>Social</h3>
|
||||
|
||||
<table><tbody>
|
||||
<tr>
|
||||
<th scope="row"><a href="https://fr.wikipedia.org/wiki/Bluesky_Social">BlueSky</a></th>
|
||||
<td class="logo"><img class="logo" src="../img/bluesky.svg" alt="Logo de BlueSky"></td>
|
||||
<td><a href="https://bsky.app/profile/marc.beninca.link">bsky.app</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><a href="https://fr.wikipedia.org/wiki/PeerTube">PeerTube</a></th>
|
||||
<td class="logo"><img class="logo" src="../img/peertube.svg" alt="Logo de PeerTube"></td>
|
||||
<td><a href="https://videos.trom.tf/@marc.beninca">videos.trom.tf</a></td>
|
||||
</tr>
|
||||
</tbody></table>
|
||||
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2>Éducation</h2>
|
||||
|
||||
<article><header>
|
||||
<div class="org"><a href="../img/cnam.png"><img class="org" src="../img/cnam.png" alt="Logo carré du CNAM"></a>
|
||||
<div class="position">
|
||||
<p class="title"><a href="https://fr.wikipedia.org/wiki/Conservatoire_national_des_arts_et_métiers"><abbr title="École d’Ingénieurs du Conservatoire National des Arts et Métiers">EICNAM</abbr></a></p>
|
||||
<p class="sub"><a href="https://fr.wikipedia.org/wiki/Cadre_européen_des_certifications#Système_CEC"><abbr title="Cadre Européen des Certifications">CEC</abbr></a> niveau 7</p>
|
||||
</div></div>
|
||||
<div class="time">
|
||||
<p class="duration">2 ans</p>
|
||||
<p class="period">
|
||||
<time datetime="2021">2021</time> ← <time datetime="2019">2019</time></p>
|
||||
</div></header>
|
||||
<ul>
|
||||
<li><abbr title="Informatique, Réseaux, Systèmes et Multimédia">IRSM</abbr> (Réseaux, Systèmes et Multimédia)</li>
|
||||
</ul>
|
||||
</article>
|
||||
|
||||
<article><header>
|
||||
<div class="org"><a href="../img/cnam.png"><img class="org" src="../img/cnam.png" alt="Logo carré du CNAM"></a>
|
||||
<div class="position">
|
||||
<p class="title"><a href="https://fr.wikipedia.org/wiki/Conservatoire_national_des_arts_et_métiers"><abbr title="Conservatoire National des Arts et Métiers">CNAM</abbr></a></p>
|
||||
<p class="sub"><a href="https://fr.wikipedia.org/wiki/Cadre_européen_des_certifications#Système_CEC"><abbr title="Cadre Européen des Certifications">CEC</abbr></a> niveau 6</p>
|
||||
</div></div>
|
||||
<div class="time">
|
||||
<p class="duration">5 ans</p>
|
||||
<p class="period">
|
||||
<time datetime="2019">2019<time> ← <time datetime="2014">2014</time></p>
|
||||
</div></header>
|
||||
<ul>
|
||||
<li><abbr title="Concepteur en Architecture Informatique">CAI</abbr> (Concepteur Architecte Informatique)</li>
|
||||
</ul>
|
||||
</article>
|
||||
|
||||
</section>
|
||||
|
||||
</aside>
|
||||
|
||||
<main>
|
||||
|
||||
<article class="org"><header class="org">
|
||||
<div class="position">
|
||||
<h1 class="title">DevOps</h1>
|
||||
<p class="sub">Explorant et automatisant des technologies informatiques</p>
|
||||
</div>
|
||||
<button id="swap"></button>
|
||||
</header>
|
||||
<ul>
|
||||
<li>amorçage, construction, configuration, sécurisation, maintien de systèmes</li>
|
||||
<li>modélisation, implémentation, intégration, déploiement, documentation de logiciels</li>
|
||||
</ul>
|
||||
</article>
|
||||
|
||||
<section>
|
||||
<h2>Expérience</h2>
|
||||
|
||||
<article class="org"><header class="org">
|
||||
<div class="org"><a href="../img/dirisi.png"><img class="org" src="../img/dirisi.png" alt="Logo hexagonal de la DIRISI"></a>
|
||||
<div class="position">
|
||||
<p class="title"><a href="https://fr.wikipedia.org/wiki/Direction_interarmées_des_réseaux_d'infrastructure_et_des_systèmes_d'information">Direction Interarmées des Réseaux d’Infrastructure et <abbr title="Systèmes d’Information">SI</abbr></a></p>
|
||||
<p class="sub"><a href="https://fr.wikipedia.org/wiki/Direction_interarmées_des_réseaux_d'infrastructure_et_des_systèmes_d'information"><abbr title="Direction Interarmées des Réseaux d’Infrastructure et Systèmes d’Information">DIRISI</abbr></a> @ <a href="https://fr.wikipedia.org/wiki/Bordeaux">Bordeaux</a>, <a href="https://fr.wikipedia.org/wiki/Ministère_des_Armées">Ministère des Armées</a></p>
|
||||
</div></div>
|
||||
<div class="time">
|
||||
<p class="duration org"><time datetime="P9Y">9 ans</time></p>
|
||||
<p class="period">
|
||||
<time datetime="2025">2025</time> ← <time datetime="2016-09">2016</time></p>
|
||||
</div></header>
|
||||
|
||||
<article><header>
|
||||
<div class="org"><a href="../img/cdad-bdx.png"><img class="org" src="../img/cdad-bdx.png" alt="Logo circulaire du CDAD-BDX"></a>
|
||||
<div class="position">
|
||||
<p class="title">Centre de Développement des Applications de la Défense</p>
|
||||
<p class="sub"><strong>DevOps</strong> @ Assurance qualité, <abbr title="Centre de Développement des Applications de la Défense">CDAD</abbr></p>
|
||||
</div></div>
|
||||
<div class="time">
|
||||
<p class="duration"><time datetime="P6Y">6 ans</time></p>
|
||||
<p class="period">
|
||||
<time datetime="2025">2025</time> ← <time datetime="2019-02">2019</time></p>
|
||||
</div></header>
|
||||
<ul>
|
||||
<li>administration d’outils <strong>CI</strong> / <strong>CD</strong> : <strong>Gitea</strong>, <strong>GitLab</strong>, <strong>Jenkins</strong>, <strong>Nexus</strong>, <strong>SonarQube</strong></li>
|
||||
<li>écriture de scripts <strong>Python</strong> pour maintenir des miroirs hors ligne :<br><strong>Alma</strong>, <strong>Alpine</strong>, <strong>CentOS</strong>, <strong>Debian</strong>, <strong>Docker</strong>, <strong>Maven</strong>, <strong>MSys2</strong>, <strong>NPM</strong>, <strong>NVD</strong>, <strong>PyPI</strong></li>
|
||||
<li>écriture et maintien de scripts <strong>BASH</strong> simplifiant usage et empaquetage pour <strong>MSys2</strong></li>
|
||||
<li>écriture de playbooks et rôles <strong>Ansible</strong> pour configurations et déploiements</li>
|
||||
<li>construction d’images systèmes <strong>Ubuntu</strong> <a href="https://fr.wikipedia.org/wiki/Long-term_support"><abbr title="Long-Term Support">LTS</abbr></a> <strong>Live</strong> avec interface graphique kiosque</li>
|
||||
</ul>
|
||||
</article>
|
||||
|
||||
<article><header>
|
||||
<div class="org"><a href="../img/cdad-bdx.png"><img class="org" src="../img/cdad-bdx.png" alt="Logo circulaire du CDAD-BDX"></a>
|
||||
<div class="position">
|
||||
<p class="title">Centre de Développement des Applications de la Défense</p>
|
||||
<p class="sub"><strong>Administrateur système</strong> @ Infrastructure / Sécurité, <abbr title="Centre de Développement des Applications de la Défense">CDAD</abbr></p>
|
||||
</div></div>
|
||||
<div class="time">
|
||||
<p class="duration"><time datetime="P1Y5M">2 ans</time></p>
|
||||
<p class="period">
|
||||
<time datetime="2019-02">2019</time> ← <time datetime="2017-09">2017</time></p>
|
||||
</div></header>
|
||||
<ul>
|
||||
<li>administration d’infrastructures <strong>Proxmox</strong> et <strong>vSphere</strong>, avec <a href="https://fr.wikipedia.org/wiki/Machine_virtuelle"><abbr title="Machines Virtuelles">VM</abbr></a> et conteneurs <strong>LXC</strong></li>
|
||||
<li>conception d’une architecture <a href="https://fr.wikipedia.org/wiki/Authentification_unique"><abbr title="Single Sign-On">SSO</abbr></a> : <strong>HAproxy</strong>, <a href="https://en.wikipedia.org/wiki/Keycloak">KeyCloak</a> / <strong>WildFly</strong>, <strong>MariaDB</strong> <a href="https://mariadb.com/kb/en/galera-cluster">Galera</a></li>
|
||||
<li>scripts <strong>Python</strong> pour : miroirs <a href="https://fr.wikipedia.org/wiki/Advanced_Packaging_Tool"><abbr title="Advanced Package Tool">APT</abbr></a>, dépôts <strong>Git</strong>, biclés <strong>OpenSSH</strong>, docs <strong>Sphinx</strong></li>
|
||||
</ul>
|
||||
</article>
|
||||
|
||||
<article><header>
|
||||
<div class="org"><a href="../img/cdad-bdx.png"><img class="org" src="../img/cdad-bdx.png" alt="Logo circulaire du CDAD-BDX"></a>
|
||||
<div class="position">
|
||||
<p class="title">Centre de Développement des Applications de la Défense</p>
|
||||
<p class="sub"><strong>Développeur logiciel</strong> @ Fabrique numérique, <abbr title="Centre de Développement des Applications de la Défense">CDAD</abbr></p>
|
||||
</div></div>
|
||||
<div class="time">
|
||||
<p class="duration"><time datetime="P1Y">1 an</time></p>
|
||||
<p class="period">
|
||||
<time datetime="2017-09">2017</time> ← <time datetime="2016-09">2016</time></p>
|
||||
</div></header>
|
||||
<ul>
|
||||
<li>installation d’un réseau de développement : stations et serveur <strong>LXC</strong> sous <strong>Debian</strong></li>
|
||||
<li>scripts <strong>BASH</strong> et <strong>Python</strong> pour : <a href="https://fr.wikipedia.org/wiki/Clonezilla">CloneZilla</a>, <strong>Debian</strong>, DebMirror, <strong>GRUB</strong>, <strong>PanDoc</strong></li>
|
||||
<li>écriture d’un programme <strong>Python</strong> pour migrer tous les dépôts <a href="https://fr.wikipedia.org/wiki/Apache_Subversion"><abbr title="SubVersioN">SVN</abbr></a> vers <strong>Git</strong></li>
|
||||
</ul>
|
||||
</article>
|
||||
|
||||
</article>
|
||||
|
||||
<article class="org"><header class="org">
|
||||
<div class="org"><a href="../img/aae.png"><img class="org" src="../img/aae.png" alt="Logo de l’AAE"></a>
|
||||
<div class="position">
|
||||
<p class="title"><a href="https://fr.wikipedia.org/wiki/Armée_de_l'air_et_de_l'espace_(France)">Armée de l’Air et de l’Espace</a></p>
|
||||
<p class="sub"><a href="https://fr.wikipedia.org/wiki/Armée_de_l'air_et_de_l'espace_(France)"><abbr title="Armée de l’Air et de l’Espace">AAE</abbr></a> @ <a href="https://fr.wikipedia.org/wiki/Base_aérienne_118_Mont-de-Marsan">Base Aérienne 118</a>, <a href="https://fr.wikipedia.org/wiki/Mont-de-Marsan">Mont-de-Marsan</a>, <a href="https://fr.wikipedia.org/wiki/Ministère_des_Armées">Ministère des Armées</a></p>
|
||||
</div></div>
|
||||
<div class="time">
|
||||
<p class="duration org"><time datetime="P14Y4M">14 ans</time></p>
|
||||
<p class="period">
|
||||
<time datetime="2016-09">2016</time> ← <time datetime="2002-05">2002</time></p>
|
||||
</div></header>
|
||||
|
||||
<article><header>
|
||||
<div class="org"><a href="../img/gaio.png"><img class="org" src="../img/gaio.png" alt="Logo circulaire du GAIO"></a>
|
||||
<div class="position">
|
||||
<p class="title"><a href="https://fr.wikipedia.org/wiki/Base_aérienne_118_Mont-de-Marsan#Autres">Groupement Aérien de l’Informatique Opérationnelle</a></p>
|
||||
<p class="sub"><strong>Développeur Java</strong> @ Production, <a href="https://fr.wikipedia.org/wiki/Base_aérienne_118_Mont-de-Marsan#Autres"><abbr title="Groupement Aérien de l’Informatique Opérationnelle">GAIO</abbr></a></p>
|
||||
</div></div>
|
||||
<div class="time">
|
||||
<p class="duration"><time datetime="P8Y">8 ans</time></p>
|
||||
<p class="period">
|
||||
<time datetime="2016-09">2016</time> ← <time datetime="2008-09">2008</time></p>
|
||||
</div></header>
|
||||
<h5><strong><abbr title="Module d’Élaboration Logique des Informations Simplifiées de Survol Aérien">MELISSA</abbr> <abbr title="New Generation">NG</abbr></strong> (MELISSA Nouvelle Génération)</h5>
|
||||
Réécriture complète en <strong>Java</strong> et base de données <strong>PostgreSQL</strong> :<ul>
|
||||
<li>écriture d’un moteur cartographique basé sur images <a href="https://fr.wikipedia.org/wiki/Portable_Network_Graphics"><abbr title="Portable Network Graphics">PNG</abbr></a> et métadonnées <a href="https://fr.wikipedia.org/wiki/Extensible_Markup_Language"><abbr title="eXtensible Markup Language">XML</abbr></a></li>
|
||||
<li>écriture de pilotes, émulateurs et interfaces graphiques pour :<ul>
|
||||
<li>prise en charge de l’équipement ADL (Airborne Data Loader), programmant les<br>
|
||||
cartes sans contact DTM (Data Transfer Module) pour centrales avion <a href="https://en.wikipedia.org/wiki/Dassault/Dornier_Alpha_Jet">Alpha Jet</a></li>
|
||||
<li>programmation simultanée de modules <a href="https://fr.wikipedia.org/wiki/Electrically-erasable_programmable_read-only_memory"><abbr title="Electrically Erasable Programmable Read-Only Memory">EEPROM</abbr></a> pour centrales avion <a href="https://en.wikipedia.org/wiki/Dassault_Mirage#Production_models">Mirage</a></li>
|
||||
</ul>
|
||||
<li>import de fichiers <a href="https://fr.wikipedia.org/wiki/Keyhole_Markup_Language"><abbr title="Keyhole Markup Language">KML</abbr> / <abbr title="Keyhole Markup Zip">KMZ</abbr></a> pour matérialiser des situations tactiques (SITAC)</li>
|
||||
</ul>
|
||||
</article>
|
||||
|
||||
<article><header>
|
||||
<div class="org"><a href="../img/ceam.png"><img class="org" src="../img/ceam.png" alt="Logo triangulaire du CEAM"></a>
|
||||
<div class="position">
|
||||
<p class="title"><a href="https://fr.wikipedia.org/wiki/Centre_d'expertise_aérienne_militaire">Centre d’Expertise Aérienne Militaire</a></p>
|
||||
<p class="sub"><strong>Développeur <a href="https://fr.wikipedia.org/wiki/Visual_Basic">Visual Basic</a></strong> @ Réalisation, <a href="https://fr.wikipedia.org/wiki/Centre_d'expertise_aérienne_militaire"><abbr title="Centre d’Expertise Aérienne Militaire">CEAM</abbr></a></p>
|
||||
</div></div>
|
||||
<div class="time">
|
||||
<p class="duration"><time datetime="P6Y4M">6 ans</time></p>
|
||||
<p class="period">
|
||||
<time datetime="2008-09">2008</time> ← <time datetime="2002-05">2002</time></p>
|
||||
</div></header>
|
||||
|
||||
<h5><strong><abbr title="Module d’Élaboration Logique des Informations Simplifiées de Survol Aérien">MELISSA</abbr></strong> (Module d’Élaboration Logique des Informations Simplifiées de Survol Aérien)</h5>
|
||||
Préparation, programmation, déchargement et rejeu de missions pour avions<br>
|
||||
<a href="https://fr.wikipedia.org/wiki/Dassault_Breguet_/_Dornier_Alpha_Jet">Alpha Jet</a>, <a href="https://fr.wikipedia.org/wiki/C-160_Transall">Transall</a>, <a href="https://fr.wikipedia.org/wiki/Dassault_Mirage_2000">Mirage 2000</a>, <a href="https://fr.wikipedia.org/wiki/Dassault_Mirage_F1">Mirage F1</a>, <a href="https://fr.wikipedia.org/wiki/Dassault_Mirage_IV">Mirage IV</a>, <a href="https://fr.wikipedia.org/wiki/SEPECAT_Jaguar">Jaguar</a> :<ul>
|
||||
<li>écriture de pilotes et interfaces graphiques pour :<ul>
|
||||
<li>programmation séquentielle de modules <a href="https://fr.wikipedia.org/wiki/Electrically-erasable_programmable_read-only_memory"><abbr title="Electrically Erasable Programmable Read-Only Memory">EEPROM</abbr></a> pour centrales avion <a href="https://en.wikipedia.org/wiki/Dassault_Mirage#Production_models">Mirage</a></li>
|
||||
<li>programmation et déchargement de routes pour divers appareils <a href="https://fr.wikipedia.org/wiki/Global_Positioning_System"><abbr title="Global Positioning System">GPS</abbr></a> Garmin</li>
|
||||
</ul>
|
||||
<li>import de base de données mondiale NavData (standard international <a href="https://en.wikipedia.org/wiki/ARINC_424">ARINC 424</a>)</li>
|
||||
<li>exports NavData adaptés aux contraintes des centrales avion <a href="https://fr.wikipedia.org/wiki/C-160_Transall">Transall</a> (<a href="https://fr.wikipedia.org/wiki/Système_de_gestion_de_vol"><abbr title="Flight Management System">FMS</abbr></a>)</li>
|
||||
</ul>
|
||||
|
||||
<hr>
|
||||
|
||||
<h5><strong><abbr title="Écran de Visualisation Aéronef">EVA</abbr></strong> (Écran de Visualisation Aéronef)</h5>
|
||||
Restitution embarquée de navigation et enregistreurs vidéo pour <a href="https://fr.wikipedia.org/wiki/Dassault_Mirage_F1">Mirage F1CR</a> :<ul>
|
||||
<li>optimisation de moteur cartographique pour ordinateurs embarqués (<a href="https://fr.wikipedia.org/wiki/PC/104">PC/104</a>)</li>
|
||||
<li>conception et réalisation d’un système dédié avec <a href="https://fr.wikipedia.org/wiki/Windows_XP_Embedded">Windows XP Embedded</a> Studio</li>
|
||||
</ul>
|
||||
|
||||
</article>
|
||||
|
||||
</article>
|
||||
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2>Projets personnels</h2>
|
||||
|
||||
<article class="org"><header class="org">
|
||||
<div class="org"><a href="../img/rwx.svg"><img class="org" src="../img/rwx.svg" alt="Logo triangulaire de RWX"></a>
|
||||
<div class="position">
|
||||
<p class="title">Read Write eXecute</p>
|
||||
<p class="sub"><abbr title="Read Write eXecute">RWX</abbr> : <a href="https://forge.rwx.work/rwx.work/rwx"><strong>code @ forge.rwx.work</strong></a>, <a href="https://app.radicle.xyz/nodes/seed.radicle.garden/rad:z2xBYEYWYiBqyJCXdKtxifWyoo3ML">code @ radicle.garden</a>, <a href="https://tangled.sh/@marc.beninca.link/rwx">code @ tangled.sh</a></p>
|
||||
</div></div>
|
||||
<div class="time">
|
||||
<p class="duration"><time datetime="P2Y">2 ans</time></p>
|
||||
<p class="period">
|
||||
<time datetime="2025">2025</time> ← <time datetime="2023-07">2023</time></p>
|
||||
</div></header>
|
||||
<p>Projet parent, en <strong>Python</strong> et <strong>POSIX Shell</strong></p>
|
||||
|
||||
<article><header>
|
||||
<div class="position">
|
||||
<p class="title">Shell to Python Continuous Deployment</p>
|
||||
<p class="sub"><abbr title="Shell to Python Continuous Deployment">SPCD</abbr> : <a href="https://forge.rwx.work/rwx.work/spcd"><strong>code @ forge.rwx.work</strong></a></p>
|
||||
</div>
|
||||
<div class="time">
|
||||
<p class="duration"><time datetime="P1Y">1 an</time></p>
|
||||
<p class="period">
|
||||
<time datetime="2025">2025</time> ← <time datetime="2024-03">2024</time></p>
|
||||
</div></header>
|
||||
Programme, en <strong>POSIX Shell</strong> et <strong>Python</strong>, gérant des pipelines <strong>CI</strong> / <strong>CD</strong> de façon unifiée :<ul>
|
||||
<li>que l’infrastrucure réseau soit en ligne ou hors ligne avec <strong>CA</strong> et <strong>DNS</strong> locaux</li>
|
||||
<li>quelle que soit la forge: <strong>Forgejo</strong>, <strong>Gitea</strong>, <strong>GitHub</strong>, <strong>GitLab</strong></li>
|
||||
<li>quelle que soit la base de système <strong>Linux</strong> du conteneur <strong>Docker</strong> :<br>
|
||||
<strong>Alma</strong>, <strong>Alpine</strong>, <strong>Arch</strong>, <strong>Debian</strong>, <strong>Fedora</strong>, <strong>OpenSUSE</strong>, <strong>Rocky</strong>, <strong>Ubuntu</strong></li>
|
||||
</ul>
|
||||
</article>
|
||||
|
||||
<article><header>
|
||||
<div class="position">
|
||||
<p class="title">Live Scan Grub Menu</p>
|
||||
<p class="sub"><abbr title="Live Scan Grub Menu">LSGM</abbr> : <a href="https://forge.rwx.work/rwx.work/lsgm"><strong>code @ forge.rwx.work</strong></a></p>
|
||||
</div>
|
||||
<div class="time">
|
||||
<p class="duration"><time datetime="P2Y">2 ans</time></p>
|
||||
<p class="period">
|
||||
<time datetime="2025">2025</time> ← <time datetime="2023-09">2023</time></p>
|
||||
</div></header>
|
||||
Programme, en <strong>BASH</strong> et <strong>GRUB Shell</strong>, créant des systèmes de fichiers <strong>ESP</strong> avec :<ul>
|
||||
<li>images <strong>GRUB</strong> autonomes, <strong>Secure Boot</strong> ou construites, pour <strong>ARM</strong>, <strong>EFI</strong> et <strong>BIOS</strong></li>
|
||||
<li>vérification à la volée des signatures <strong>OpenPGP</strong> des images sélectionnées</li>
|
||||
<li>menu dynamique recherchant les images <strong>SquashFS</strong> amorçables <strong>Live</strong> disponibles</li>
|
||||
</ul>
|
||||
</article>
|
||||
|
||||
</article>
|
||||
|
||||
</section>
|
||||
|
||||
</main>
|
||||
|
||||
<!-- columns / end -->
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
1
in/img/ForgeJo.svg
Normal file
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 212 212" width="32" height="32"><style>circle,path{fill:none;stroke:#000;stroke-width:15}path{stroke-width:25}.orange{stroke:#f60}.red{stroke:#d40000}</style><g transform="translate(6 6)"><path d="M58 168V70a50 50 0 0 1 50-50h20" class="orange"/><path d="M58 168v-30a50 50 0 0 1 50-50h20" class="red"/><circle cx="142" cy="20" r="18" class="orange"/><circle cx="142" cy="88" r="18" class="red"/><circle cx="58" cy="180" r="18" class="red"/></g></svg>
|
After Width: | Height: | Size: 503 B |
BIN
in/img/InstaGram.png
Normal file
After Width: | Height: | Size: 42 KiB |
BIN
in/img/KeyOxide.png
Normal file
After Width: | Height: | Size: 28 KiB |
BIN
in/img/LinkedIn.png
Normal file
After Width: | Height: | Size: 6.2 KiB |
BIN
in/img/PeerTube.png
Normal file
After Width: | Height: | Size: 1.6 KiB |
101
in/img/PixelFed.svg
Normal file
|
@ -0,0 +1,101 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="50px" height="50px" viewBox="0 0 50 50" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<!-- Generator: Sketch 51.3 (57544) - http://www.bohemiancoding.com/sketch -->
|
||||
<title>icon/color/svg/pixelfed-icon-color</title>
|
||||
<desc>Created with Sketch.</desc>
|
||||
<defs>
|
||||
<rect id="path-1" x="0" y="0.112107623" width="50" height="49.7757848"></rect>
|
||||
<linearGradient x1="100%" y1="55.8067876%" x2="0%" y2="60.1177402%" id="linearGradient-3">
|
||||
<stop stop-color="#FF5C34" offset="0%"></stop>
|
||||
<stop stop-color="#EB0256" offset="100%"></stop>
|
||||
</linearGradient>
|
||||
<linearGradient x1="33.0892153%" y1="100%" x2="68.9900955%" y2="15.3101693%" id="linearGradient-4">
|
||||
<stop stop-color="#A63FDB" offset="0%"></stop>
|
||||
<stop stop-color="#FF257E" offset="100%"></stop>
|
||||
</linearGradient>
|
||||
<linearGradient x1="14.7223019%" y1="50%" x2="94.315299%" y2="67.5256558%" id="linearGradient-5">
|
||||
<stop stop-color="#00FFF0" offset="0%"></stop>
|
||||
<stop stop-color="#0087FF" offset="100%"></stop>
|
||||
</linearGradient>
|
||||
<linearGradient x1="81.2260936%" y1="10.0128769%" x2="20.8151903%" y2="74.4920673%" id="linearGradient-6">
|
||||
<stop stop-color="#17C934" offset="0%"></stop>
|
||||
<stop stop-color="#03FF6E" offset="100%"></stop>
|
||||
</linearGradient>
|
||||
<linearGradient x1="50%" y1="111.913008%" x2="30.5601577%" y2="0%" id="linearGradient-7">
|
||||
<stop stop-color="#FFB000" offset="0%"></stop>
|
||||
<stop stop-color="#FF7725" offset="100%"></stop>
|
||||
</linearGradient>
|
||||
<path d="M25.8796198,24.6636771 C25.5187511,17.8623246 19.644178,12.6376937 12.7583935,12.9941375 C5.87260905,13.3505813 0.583119676,19.1531217 0.94398835,25.9544743 L0.954359402,26.1499392 C0.924772259,25.6582574 0.909768036,25.162698 0.909768036,24.6636771 C0.909768036,14.5077362 7.12441451,5.78550566 16.0023658,2.00478143 L16.5257487,1.7959139 C22.9188985,-0.755414121 30.1955057,2.29544903 32.7785059,8.61020748 C35.3615061,14.9249659 32.2727696,22.1123491 25.8796198,24.6636771 Z" id="path-8"></path>
|
||||
<path d="M16.3387661,1.87053346 L16.5257487,1.7959139 C22.9188985,-0.755414121 30.1955057,2.29544903 32.7785059,8.61020748 C35.3615061,14.9249659 32.2727696,22.1123491 25.8796198,24.6636771 C25.8261894,23.6566658 25.6518881,22.6842191 25.3713301,21.7593344 C28.8012958,19.9026454 31.1268503,16.3032843 31.1268503,12.167421 C31.1268503,6.13067623 26.1723508,1.23692769 20.060666,1.23692769 C18.7548626,1.23692769 17.5018839,1.46032366 16.3387661,1.87053346 Z" id="path-9"></path>
|
||||
<linearGradient x1="-81.3646199%" y1="59.6233723%" x2="121.418067%" y2="72.057922%" id="linearGradient-10">
|
||||
<stop stop-color="#9EE85D" offset="0%"></stop>
|
||||
<stop stop-color="#0ED061" offset="100%"></stop>
|
||||
</linearGradient>
|
||||
<path d="M28.3794511,9.27014825 L28.5664337,9.1955287 C34.9595835,6.64420067 42.2361907,9.69506383 44.8191909,16.0098223 C47.4021911,22.3245807 44.3134546,29.5119639 37.9203048,32.0632919 C37.8668744,31.0562806 37.6925731,30.0838339 37.4120151,29.1589492 C40.8419808,27.3022602 43.1675353,23.7028991 43.1675353,19.5670358 C43.1675353,13.530291 38.2130358,8.63654249 32.101351,8.63654249 C30.7955476,8.63654249 29.5425689,8.85993845 28.3794511,9.27014825 Z" id="path-11"></path>
|
||||
<linearGradient x1="45.510285%" y1="116.818646%" x2="0%" y2="-4.0376427%" id="linearGradient-12">
|
||||
<stop stop-color="#21EFE3" offset="0%"></stop>
|
||||
<stop stop-color="#2598FF" offset="100%"></stop>
|
||||
</linearGradient>
|
||||
<path d="M25.1352415,22.7323503 L25.3222242,22.6577307 C31.7153739,20.1064027 38.9919812,23.1572658 41.5749814,29.4720243 C44.1579816,35.7867827 41.069245,42.9741659 34.6760953,45.5254939 C34.6226649,44.5184826 34.4483636,43.5460359 34.1678055,42.6211512 C37.5977712,40.7644622 39.9233257,37.1651011 39.9233257,33.0292378 C39.9233257,26.992493 34.9688263,22.0987445 28.8571415,22.0987445 C27.5513381,22.0987445 26.2983594,22.3221405 25.1352415,22.7323503 Z" id="path-13"></path>
|
||||
<linearGradient x1="100%" y1="58.2065614%" x2="-89.649052%" y2="74.3165445%" id="linearGradient-14">
|
||||
<stop stop-color="#A63FDB" offset="0%"></stop>
|
||||
<stop stop-color="#FF257E" offset="100%"></stop>
|
||||
</linearGradient>
|
||||
<path d="M10.6540931,23.7648224 L10.8410757,23.6902028 C17.2342255,21.1388748 24.5108328,24.1897379 27.093833,30.5044964 C29.6768331,36.8192548 26.5880966,44.006638 20.1949468,46.557966 C20.1415164,45.5509547 19.9672152,44.578508 19.6866571,43.6536233 C23.1166228,41.7969343 25.4421773,38.1975732 25.4421773,34.0617099 C25.4421773,28.0249651 20.4876778,23.1312166 14.375993,23.1312166 C13.0701896,23.1312166 11.8172109,23.3546126 10.6540931,23.7648224 Z" id="path-15"></path>
|
||||
<path d="M5.54585436,10.6972047 L5.73283698,10.6225852 C12.1259868,8.07125717 19.402594,11.1221203 21.9855942,17.4368788 C24.5685944,23.7516372 21.4798579,30.9390204 15.0867081,33.4903484 C15.0332777,32.483337 14.8589764,31.5108904 14.5784184,30.5860057 C18.0083841,28.7293167 20.3339386,25.1299556 20.3339386,20.9940923 C20.3339386,14.9573475 15.3794391,10.063599 9.26775427,10.063599 C7.9619509,10.063599 6.70897218,10.2869949 5.54585436,10.6972047 Z" id="path-16"></path>
|
||||
<path d="M35.631732,42.3730981 L40.1765635,42.3730981 C44.4579764,42.3730981 47.9287473,39.0094481 47.9287473,34.8601757 C47.9287473,30.7109033 44.4579764,27.3472534 40.1765635,27.3472534 L33.6170234,27.3472534 C31.1469775,27.3472534 29.1446097,29.2878206 29.1446097,31.6816316 L29.1446097,48.5516086 L35.631732,42.3730981 Z" id="path-17"></path>
|
||||
<filter x="-26.6%" y="-18.9%" width="153.2%" height="147.2%" filterUnits="objectBoundingBox" id="filter-18">
|
||||
<feOffset dx="0" dy="1" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
|
||||
<feGaussianBlur stdDeviation="1.5" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
|
||||
<feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.298686594 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
|
||||
</filter>
|
||||
</defs>
|
||||
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="icon-copy-9">
|
||||
<g id="Group">
|
||||
<mask id="mask-2" fill="white">
|
||||
<use xlink:href="#path-1"></use>
|
||||
</mask>
|
||||
<g id="Rectangle"></g>
|
||||
<g id="Group-12" mask="url(#mask-2)">
|
||||
<g transform="translate(-12.598536, -12.100617)">
|
||||
<g id="Group-5" stroke-width="1" fill-rule="evenodd" transform="translate(37.298810, 37.253293) rotate(40.000000) translate(-37.298810, -37.253293) translate(11.517560, 12.253293)">
|
||||
<path d="M25.8796198,24.6636771 C19.1892035,23.016023 12.4132807,27.0374857 10.7451726,33.6458656 C9.07706451,40.2542455 13.1484497,46.9470835 19.8388659,48.5947376 L20.3450373,48.7193929 C9.69088103,46.3380067 1.6209996,37.2282295 0.954359365,26.1499385 L0.94398835,25.9544743 C0.583119676,19.1531217 5.87260905,13.3505813 12.7583935,12.9941375 C19.644178,12.6376937 25.5187511,17.8623246 25.8796198,24.6636771 Z" id="Combined-Shape" fill="url(#linearGradient-3)"></path>
|
||||
<path d="M25.8796198,24.6636771 C22.3283116,30.5015748 24.2407085,38.0777295 30.1510778,41.5854923 C36.0614471,45.0932551 43.7316521,43.2043076 47.2829602,37.3664099 L47.5182297,36.9796568 C43.2031146,44.3603916 35.1286161,49.3273543 25.8796198,49.3273543 C23.9775953,49.3273543 22.125241,49.1172988 20.3450373,48.7193929 L19.8388659,48.5947376 C13.1484497,46.9470835 9.07706451,40.2542455 10.7451726,33.6458656 C12.4132807,27.0374857 19.1892035,23.016023 25.8796198,24.6636771 Z" id="Combined-Shape-Copy-6" fill="url(#linearGradient-4)"></path>
|
||||
<path d="M25.8796198,24.6636771 C30.3117909,29.8809656 38.1867277,30.5614853 43.4687835,26.1836605 C48.7508393,21.8058357 49.439807,14.0274595 45.0076359,8.81017106 L44.9061506,8.69070851 C48.612765,12.9940954 50.8494715,18.5708837 50.8494715,24.6636771 C50.8494715,29.1494627 49.6370515,33.3555446 47.5182297,36.9796568 L47.2829602,37.3664099 C43.7316521,43.2043076 36.0614471,45.0932551 30.1510778,41.5854923 C24.2407085,38.0777295 22.3283116,30.5015748 25.8796198,24.6636771 Z" id="Combined-Shape-Copy-5" fill="url(#linearGradient-5)"></path>
|
||||
<path d="M25.8796198,24.6636771 C32.2727696,22.1123491 35.3615061,14.9249659 32.7785059,8.61020748 C30.1955057,2.29544903 22.9188985,-0.755414121 16.5257487,1.7959139 L16.0023658,2.00478143 C19.0317193,0.714714639 22.3711681,0 25.8796198,0 C33.5016588,0 40.3260608,3.37321498 44.9061506,8.69070851 L45.0076359,8.81017106 C49.439807,14.0274595 48.7508393,21.8058357 43.4687835,26.1836605 C38.1867277,30.5614853 30.3117909,29.8809656 25.8796198,24.6636771 Z" id="Combined-Shape-Copy-4" fill="url(#linearGradient-6)"></path>
|
||||
<g id="Combined-Shape-Copy-3" fill="url(#linearGradient-7)">
|
||||
<use xlink:href="#path-8"></use>
|
||||
<use fill-opacity="0.1" style="mix-blend-mode: multiply;" xlink:href="#path-8"></use>
|
||||
</g>
|
||||
<g id="Combined-Shape" opacity="0.504910714">
|
||||
<use fill="url(#linearGradient-7)" xlink:href="#path-9"></use>
|
||||
<use fill-opacity="0.496178668" fill="#000000" style="mix-blend-mode: overlay;" xlink:href="#path-9"></use>
|
||||
</g>
|
||||
<g id="Combined-Shape-Copy-7" opacity="0.544252232" transform="translate(37.055527, 20.178799) rotate(72.000000) translate(-37.055527, -20.178799) ">
|
||||
<use fill="url(#linearGradient-10)" xlink:href="#path-11"></use>
|
||||
<use fill-opacity="0.499886775" fill="#000000" style="mix-blend-mode: overlay;" xlink:href="#path-11"></use>
|
||||
</g>
|
||||
<g id="Combined-Shape-Copy-8" opacity="0.562220982" transform="translate(33.811317, 33.641001) rotate(143.000000) translate(-33.811317, -33.641001) ">
|
||||
<use fill="url(#linearGradient-12)" xlink:href="#path-13"></use>
|
||||
<use fill="#000000" style="mix-blend-mode: overlay;" xlink:href="#path-13"></use>
|
||||
</g>
|
||||
<g id="Combined-Shape-Copy-9" opacity="0.584151786" transform="translate(19.330169, 34.673473) rotate(217.000000) translate(-19.330169, -34.673473) ">
|
||||
<use fill="url(#linearGradient-14)" xlink:href="#path-15"></use>
|
||||
<use fill-opacity="0.503085371" fill="#000000" style="mix-blend-mode: overlay;" xlink:href="#path-15"></use>
|
||||
</g>
|
||||
<g id="Combined-Shape-Copy-10" opacity="0.180133929" transform="translate(14.221930, 21.605855) rotate(-71.000000) translate(-14.221930, -21.605855) ">
|
||||
<use fill="url(#linearGradient-3)" xlink:href="#path-16"></use>
|
||||
<use fill-opacity="0.772843071" fill="#000000" style="mix-blend-mode: multiply;" xlink:href="#path-16"></use>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Path-6-Copy-2" fill-rule="nonzero">
|
||||
<use fill="black" fill-opacity="1" filter="url(#filter-18)" xlink:href="#path-17"></use>
|
||||
<use fill="#FFFFFF" xlink:href="#path-17"></use>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 12 KiB |
BIN
in/img/YouTube.png
Normal file
After Width: | Height: | Size: 20 KiB |
BIN
in/img/aae.png
Before Width: | Height: | Size: 30 KiB |
|
@ -1,4 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="600" height="530" version="1.1" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m135.72 44.03c66.496 49.921 138.02 151.14 164.28 205.46 26.262-54.316 97.782-155.54 164.28-205.46 47.98-36.021 125.72-63.892 125.72 24.795 0 17.712-10.155 148.79-16.111 170.07-20.703 73.984-96.144 92.854-163.25 81.433 117.3 19.964 147.14 86.092 82.697 152.22-122.39 125.59-175.91-31.511-189.63-71.766-2.514-7.3797-3.6904-10.832-3.7077-7.8964-0.0174-2.9357-1.1937 0.51669-3.7077 7.8964-13.714 40.255-67.233 197.36-189.63 71.766-64.444-66.128-34.605-132.26 82.697-152.22-67.108 11.421-142.55-7.4491-163.25-81.433-5.9562-21.282-16.111-152.36-16.111-170.07 0-88.687 77.742-60.816 125.72-24.795z" fill="#1185fe"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 745 B |
Before Width: | Height: | Size: 482 KiB |
BIN
in/img/ceam.png
Before Width: | Height: | Size: 150 KiB |
BIN
in/img/cnam.png
Before Width: | Height: | Size: 29 KiB |
BIN
in/img/debian.jpeg
Normal file
After Width: | Height: | Size: 49 KiB |
Before Width: | Height: | Size: 61 KiB |
BIN
in/img/en.png
Before Width: | Height: | Size: 32 KiB |
1119
in/img/en.svg
Normal file
After Width: | Height: | Size: 44 KiB |
|
@ -1,40 +0,0 @@
|
|||
<svg viewBox="0 0 212 212" xmlns="http://www.w3.org/2000/svg">
|
||||
<metadata
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
>
|
||||
<rdf:RDF>
|
||||
<cc:Work rdf:about="https://codeberg.org/forgejo/meta/src/branch/readme/branding#logo">
|
||||
<dc:title>Forgejo logo</dc:title>
|
||||
<cc:creator rdf:resource="https://caesarschinas.com/"><cc:attributionName>Caesar Schinas</cc:attributionName></cc:creator>
|
||||
<cc:license rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<style type="text/css">
|
||||
circle {
|
||||
fill: none;
|
||||
stroke: #000;
|
||||
stroke-width: 15;
|
||||
}
|
||||
path {
|
||||
fill: none;
|
||||
stroke: #000;
|
||||
stroke-width: 25;
|
||||
}
|
||||
.orange {
|
||||
stroke:#ff6600;
|
||||
}
|
||||
.red {
|
||||
stroke:#d40000;
|
||||
}
|
||||
</style>
|
||||
<g transform="translate(6,6)">
|
||||
<path d="M58 168 v-98 a50 50 0 0 1 50-50 h20" class="orange" />
|
||||
<path d="M58 168 v-30 a50 50 0 0 1 50-50 h20" class="red" />
|
||||
<circle cx="142" cy="20" r="18" class="orange" />
|
||||
<circle cx="142" cy="88" r="18" class="red" />
|
||||
<circle cx="58" cy="180" r="18" class="red" />
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 1.2 KiB |
BIN
in/img/fr.png
Before Width: | Height: | Size: 9.2 KiB |
2
in/img/fr.svg
Normal file
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="900" height="600"><rect width="900" height="600" fill="#ED2939"/><rect width="600" height="600" fill="#fff"/><rect width="300" height="600" fill="#002395"/></svg>
|
After Width: | Height: | Size: 248 B |
BIN
in/img/gaio.png
Before Width: | Height: | Size: 147 KiB |
|
@ -1,15 +0,0 @@
|
|||
<svg version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<defs>
|
||||
<linearGradient id="linearGradient" x1="20" x2="4" y2="24" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#8d76f3" offset="0"/>
|
||||
<stop stop-color="#388dc2" offset="1"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<g fill="url(#linearGradient)">
|
||||
<path d="m14.664 2.7734c-0.86914 8.5e-6 -1.5742 0.70509-1.5742 1.5742 0 0.52528 0.26095 1.006 0.67773 1.2949 0.12007 0.083138 0.18912 0.092562 0.20508 0.22266 0.01604 0.13001-0.16211 0.25-0.16211 0.25l-3.3242 2.5859v-0.5293c0.14724-1.4561-0.83223-2.9405-2.2754-3.2793-1.719-0.502-3.7931 1.0298-3.7931 2.6452 0 1.9182 0.00778 8.9247 0.00211 13.429-0.00211 1.6772 1.3577 3.0332 3.0332 3.0332s3.0352-1.3576 3.0352-3.0332v-0.39648c1.365 0.90898 2.7303 1.8174 4.0938 2.7285 1.1299 0.93021 2.9078 0.93859 3.9902-0.07422 1.3712-1.1518 1.323-3.4999-0.0918-4.5957-1.935-1.3219-3.8897-2.6181-5.8418-3.916l5.7734-4.4883c1.1632-0.90466 1.4954-2.5005 0.83398-3.7832-0.04938-0.095755-0.06511-0.12998-0.16797-0.16992-0.10277-0.039938-0.18425 0.00439-0.28711 0.042969-0.14138 0.053062-0.29257 0.080078-0.44531 0.080078-0.69894 0-1.2656-0.56662-1.2656-1.2656 9.4e-5 -0.094853 0.01636-0.14996-0.01172-0.20898-0.02807-0.059023-0.10233-0.097092-0.17578-0.10547-0.12191-0.013926-0.24437-0.020476-0.36719-0.019531-0.12049 8.587e-4 -0.21169-0.00952-0.26367-0.097656-0.05189-0.088142-0.02344-0.18975-0.02344-0.34961 0-0.86915-0.70504-1.5742-1.5742-1.5742z"/>
|
||||
<path d="m12.808 3.085a1.0735 1.0735 0 0 1-1.0735 1.0735 1.0735 1.0735 0 0 1-1.0735-1.0735 1.0735 1.0735 0 0 1 1.0735-1.0735 1.0735 1.0735 0 0 1 1.0735 1.0735z"/>
|
||||
<path d="m13.46 1.0033a0.70038 0.70038 0 0 1-0.70038 0.70038 0.70038 0.70038 0 0 1-0.70038-0.70038 0.70038 0.70038 0 0 1 0.70038-0.70038 0.70038 0.70038 0 0 1 0.70038 0.70038z"/>
|
||||
<path d="m11.341 0.48902a0.48902 0.48902 0 0 1-0.48902 0.48902 0.48902 0.48902 0 0 1-0.48902-0.48902 0.48902 0.48902 0 0 1 0.48902-0.48902 0.48902 0.48902 0 0 1 0.48902 0.48902z"/>
|
||||
<path d="m19.205 5.1296a0.85797 0.85797 0 0 1-0.85797 0.85797 0.85797 0.85797 0 0 1-0.85797-0.85797 0.85797 0.85797 0 0 1 0.85797-0.85797 0.85797 0.85797 0 0 1 0.85797 0.85797z"/>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 4.9 KiB |
|
@ -1,170 +0,0 @@
|
|||
<?xml version="1.0" ?>
|
||||
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
<svg width="800px" height="800px" viewBox="0 0 100 100" version="1.1" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<style type="text/css">
|
||||
.st0{fill:#FFFFFF;}
|
||||
.st1{fill:#F5BB41;}
|
||||
.st2{fill:#2167D1;}
|
||||
.st3{fill:#3D84F3;}
|
||||
.st4{fill:#4CA853;}
|
||||
.st5{fill:#398039;}
|
||||
.st6{fill:#D74F3F;}
|
||||
.st7{fill:#D43C89;}
|
||||
.st8{fill:#B2005F;}
|
||||
.st9{fill:none;stroke:#000000;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
|
||||
|
||||
.st10{fill-rule:evenodd;clip-rule:evenodd;fill:none;stroke:#000000;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
|
||||
|
||||
.st11{fill-rule:evenodd;clip-rule:evenodd;fill:none;stroke:#040404;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
|
||||
.st12{fill-rule:evenodd;clip-rule:evenodd;}
|
||||
.st13{fill-rule:evenodd;clip-rule:evenodd;fill:#040404;}
|
||||
.st14{fill:url(#SVGID_1_);}
|
||||
.st15{fill:url(#SVGID_2_);}
|
||||
.st16{fill:url(#SVGID_3_);}
|
||||
.st17{fill:url(#SVGID_4_);}
|
||||
.st18{fill:url(#SVGID_5_);}
|
||||
.st19{fill:url(#SVGID_6_);}
|
||||
.st20{fill:url(#SVGID_7_);}
|
||||
.st21{fill:url(#SVGID_8_);}
|
||||
.st22{fill:url(#SVGID_9_);}
|
||||
.st23{fill:url(#SVGID_10_);}
|
||||
.st24{fill:url(#SVGID_11_);}
|
||||
.st25{fill:url(#SVGID_12_);}
|
||||
.st26{fill:url(#SVGID_13_);}
|
||||
.st27{fill:url(#SVGID_14_);}
|
||||
.st28{fill:url(#SVGID_15_);}
|
||||
.st29{fill:url(#SVGID_16_);}
|
||||
.st30{fill:url(#SVGID_17_);}
|
||||
.st31{fill:url(#SVGID_18_);}
|
||||
.st32{fill:url(#SVGID_19_);}
|
||||
.st33{fill:url(#SVGID_20_);}
|
||||
.st34{fill:url(#SVGID_21_);}
|
||||
.st35{fill:url(#SVGID_22_);}
|
||||
.st36{fill:url(#SVGID_23_);}
|
||||
.st37{fill:url(#SVGID_24_);}
|
||||
.st38{fill:url(#SVGID_25_);}
|
||||
.st39{fill:url(#SVGID_26_);}
|
||||
.st40{fill:url(#SVGID_27_);}
|
||||
.st41{fill:url(#SVGID_28_);}
|
||||
.st42{fill:url(#SVGID_29_);}
|
||||
.st43{fill:url(#SVGID_30_);}
|
||||
.st44{fill:url(#SVGID_31_);}
|
||||
.st45{fill:url(#SVGID_32_);}
|
||||
.st46{fill:url(#SVGID_33_);}
|
||||
.st47{fill:url(#SVGID_34_);}
|
||||
.st48{fill:url(#SVGID_35_);}
|
||||
.st49{fill:url(#SVGID_36_);}
|
||||
.st50{fill:url(#SVGID_37_);}
|
||||
.st51{fill:url(#SVGID_38_);}
|
||||
.st52{fill:url(#SVGID_39_);}
|
||||
.st53{fill:url(#SVGID_40_);}
|
||||
.st54{fill:url(#SVGID_41_);}
|
||||
.st55{fill:url(#SVGID_42_);}
|
||||
.st56{fill:url(#SVGID_43_);}
|
||||
.st57{fill:url(#SVGID_44_);}
|
||||
.st58{fill:url(#SVGID_45_);}
|
||||
.st59{fill:#040404;}
|
||||
.st60{fill:url(#SVGID_46_);}
|
||||
.st61{fill:url(#SVGID_47_);}
|
||||
.st62{fill:url(#SVGID_48_);}
|
||||
.st63{fill:url(#SVGID_49_);}
|
||||
.st64{fill:url(#SVGID_50_);}
|
||||
.st65{fill:url(#SVGID_51_);}
|
||||
.st66{fill:url(#SVGID_52_);}
|
||||
.st67{fill:url(#SVGID_53_);}
|
||||
.st68{fill:url(#SVGID_54_);}
|
||||
.st69{fill:url(#SVGID_55_);}
|
||||
.st70{fill:url(#SVGID_56_);}
|
||||
.st71{fill:url(#SVGID_57_);}
|
||||
.st72{fill:url(#SVGID_58_);}
|
||||
.st73{fill:url(#SVGID_59_);}
|
||||
.st74{fill:url(#SVGID_60_);}
|
||||
.st75{fill:url(#SVGID_61_);}
|
||||
.st76{fill:url(#SVGID_62_);}
|
||||
.st77{fill:none;stroke:#000000;stroke-width:3;stroke-miterlimit:10;}
|
||||
.st78{fill:none;stroke:#FFFFFF;stroke-miterlimit:10;}
|
||||
.st79{fill:#4BC9FF;}
|
||||
.st80{fill:#5500DD;}
|
||||
.st81{fill:#FF3A00;}
|
||||
.st82{fill:#E6162D;}
|
||||
.st83{fill:#F1F1F1;}
|
||||
.st84{fill:#FF9933;}
|
||||
.st85{fill:#B92B27;}
|
||||
.st86{fill:#00ACED;}
|
||||
.st87{fill:#BD2125;}
|
||||
.st88{fill:#1877F2;}
|
||||
.st89{fill:#6665D2;}
|
||||
.st90{fill:#CE3056;}
|
||||
.st91{fill:#5BB381;}
|
||||
.st92{fill:#61C3EC;}
|
||||
.st93{fill:#E4B34B;}
|
||||
.st94{fill:#181EF2;}
|
||||
.st95{fill:#FF0000;}
|
||||
.st96{fill:#FE466C;}
|
||||
.st97{fill:#FA4778;}
|
||||
.st98{fill:#FF7700;}
|
||||
.st99{fill-rule:evenodd;clip-rule:evenodd;fill:#1F6BF6;}
|
||||
.st100{fill:#520094;}
|
||||
.st101{fill:#4477E8;}
|
||||
.st102{fill:#3D1D1C;}
|
||||
.st103{fill:#FFE812;}
|
||||
.st104{fill:#344356;}
|
||||
.st105{fill:#00CC76;}
|
||||
.st106{fill-rule:evenodd;clip-rule:evenodd;fill:#345E90;}
|
||||
.st107{fill:#1F65D8;}
|
||||
.st108{fill:#EB3587;}
|
||||
.st109{fill-rule:evenodd;clip-rule:evenodd;fill:#603A88;}
|
||||
.st110{fill:#E3CE99;}
|
||||
.st111{fill:#783AF9;}
|
||||
.st112{fill:#FF515E;}
|
||||
.st113{fill:#FF4906;}
|
||||
.st114{fill:#503227;}
|
||||
.st115{fill:#4C7BD9;}
|
||||
.st116{fill:#69C9D0;}
|
||||
.st117{fill:#1B92D1;}
|
||||
.st118{fill:#EB4F4A;}
|
||||
.st119{fill:#513728;}
|
||||
.st120{fill:#FF6600;}
|
||||
.st121{fill-rule:evenodd;clip-rule:evenodd;fill:#B61438;}
|
||||
.st122{fill:#FFFC00;}
|
||||
.st123{fill:#141414;}
|
||||
.st124{fill:#94D137;}
|
||||
.st125{fill-rule:evenodd;clip-rule:evenodd;fill:#F1F1F1;}
|
||||
.st126{fill-rule:evenodd;clip-rule:evenodd;fill:#66E066;}
|
||||
.st127{fill:#2D8CFF;}
|
||||
.st128{fill:#F1A300;}
|
||||
.st129{fill:#4BA2F2;}
|
||||
.st130{fill:#1A5099;}
|
||||
.st131{fill:#EE6060;}
|
||||
.st132{fill-rule:evenodd;clip-rule:evenodd;fill:#F48120;}
|
||||
.st133{fill:#222222;}
|
||||
.st134{fill:url(#SVGID_63_);}
|
||||
.st135{fill:#0077B5;}
|
||||
.st136{fill:#FFCC00;}
|
||||
.st137{fill:#EB3352;}
|
||||
.st138{fill:#F9D265;}
|
||||
.st139{fill:#F5B955;}
|
||||
.st140{fill:#DD2A7B;}
|
||||
.st141{fill:#66E066;}
|
||||
.st142{fill:#EB4E00;}
|
||||
.st143{fill:#FFC794;}
|
||||
.st144{fill:#B5332A;}
|
||||
.st145{fill:#4E85EB;}
|
||||
.st146{fill:#58A45C;}
|
||||
.st147{fill:#F2BC42;}
|
||||
.st148{fill:#D85040;}
|
||||
.st149{fill:#464EB8;}
|
||||
.st150{fill:#7B83EB;}
|
||||
</style>
|
||||
<g id="Layer_1"/>
|
||||
<g id="Layer_2">
|
||||
<g>
|
||||
<path class="st135" d="M90.479,2.513c-14.611-0.041-68.502,0.028-80.958,0C5.645,2.513,2.5,5.562,2.5,9.317v81.381 c0,3.756,3.145,6.802,7.021,6.802h80.958c3.878,0,7.021-3.046,7.021-6.803V9.317C97.5,5.562,94.357,2.513,90.479,2.513z"/>
|
||||
<g>
|
||||
<path class="st83" d="M53.453,82.005c0,0,0-23.878,0-23.879c-0.139-4.388,2.484-8.483,7.762-8.667 c5.143,0,7.201,3.921,7.201,9.67v22.875h14.214V57.485c0-13.135-7.012-19.247-16.365-19.247c-7.668,0-11.036,4.285-12.907,7.204 l0.095-6.2H39.239c0.185,4.012-0.001,42.763-0.001,42.763L53.453,82.005z"/>
|
||||
<path class="st83" d="M31.37,63.461v-24.22H17.154v42.763h14.217C31.368,77.514,31.376,67.888,31.37,63.461z"/>
|
||||
<path class="st83" d="M24.265,33.404c4.956,0,8.042-3.284,8.042-7.387c-0.041-9.897-16.004-9.787-15.991-0.001 C16.305,30.151,19.476,33.455,24.265,33.404z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 5.7 KiB |
|
@ -1,89 +0,0 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
|
||||
<circle style="fill:#2BA5F7;" cx="229.83" cy="228.642" r="215.724"/>
|
||||
<path style="fill:#2197D8;" d="M289.261,384.931c-119.138,0-215.719-96.58-215.719-215.719c0-44.377,13.407-85.62,36.382-119.912
|
||||
c-57.77,38.705-95.805,104.577-95.805,179.337c0,119.138,96.58,215.719,215.719,215.719c74.761,0,140.632-38.036,179.337-95.806
|
||||
C374.882,371.524,333.638,384.931,289.261,384.931z"/>
|
||||
<circle style="fill:#A0D5F2;" cx="397.123" cy="320.66" r="100.758"/>
|
||||
<path style="fill:#BEE9FC;" d="M397.161,389.146c-27.955-0.003-52.848-16.723-63.418-42.6c-6.916-16.93-6.825-35.538,0.256-52.399
|
||||
c7.081-16.86,20.304-29.955,37.232-36.87c8.301-3.391,16.999-5.11,25.854-5.11c27.951,0,52.844,16.722,63.415,42.6
|
||||
c14.275,34.947-2.542,74.992-37.489,89.268c-8.301,3.391-16.997,5.111-25.846,5.111
|
||||
C397.164,389.146,397.163,389.146,397.161,389.146z"/>
|
||||
<path style="fill:#FFFFFF;" d="M448.365,312.648c1.626,0,3.281-0.309,4.879-0.962c6.605-2.697,9.771-10.239,7.075-16.844
|
||||
c-6.896-16.88-19.952-30.065-36.764-37.126c-16.813-7.061-35.368-7.153-52.248-0.256c-6.605,2.697-9.771,10.239-7.075,16.844
|
||||
c2.699,6.604,10.243,9.774,16.844,7.074c21.663-8.846,46.479,1.576,55.324,23.235C438.445,309.617,443.273,312.648,448.365,312.648z
|
||||
"/>
|
||||
<g>
|
||||
<path style="fill:#333333;" d="M451.794,420.318c49.981-27.361,72.614-88.672,50.562-142.645
|
||||
c-17.969-44-60.548-70.702-105.388-70.702c-14.288,0-28.808,2.713-42.837,8.449c-28.11,11.484-50.059,33.226-61.814,61.22
|
||||
c-11.756,27.994-11.911,58.895-0.426,87.005c11.484,28.11,33.226,50.059,61.22,61.827c14.171,5.942,29.079,8.927,44,8.927
|
||||
c10.335,0,20.669-1.46,30.759-4.315l30.177,73.88c2.041,4.999,6.873,8.035,11.962,8.035c1.628,0,3.281-0.31,4.883-0.956
|
||||
c6.601-2.7,9.766-10.244,7.079-16.846L451.794,420.318z M363.109,401.651c-21.625-9.095-38.432-26.056-47.307-47.772
|
||||
c-8.875-21.729-8.759-45.602,0.336-67.227c9.082-21.638,26.043-38.445,47.772-47.307c10.839-4.431,22.052-6.524,33.097-6.524
|
||||
c34.647,0,67.55,20.618,81.437,54.619c4.418,10.839,6.524,22.052,6.524,33.097c0,34.647-20.631,67.55-54.632,81.437
|
||||
C408.62,410.849,384.747,410.733,363.109,401.651z"/>
|
||||
<path style="fill:#333333;" d="M455.243,190.139c-8.126-47.901-30.914-91.229-65.884-125.295
|
||||
C346.896,23.479,290.882,0.459,231.626,0.019c-1.188-0.026-2.377-0.026-3.565,0C167.383,0.472,110.4,24.448,67.614,67.518
|
||||
C24.79,110.639,1.201,167.855,1.201,228.636c0,62.228,24.545,120.399,69.126,163.805c42.463,41.352,98.477,64.372,157.733,64.811
|
||||
c0.594,0.013,1.188,0.013,1.783,0.013s1.188,0,1.783-0.013c30.797-0.22,60.665-6.485,88.749-18.615
|
||||
c6.55-2.829,9.573-10.425,6.743-16.975s-10.425-9.573-16.975-6.743c-21.444,9.25-44.065,14.649-67.382,16.096v-95.673
|
||||
c4.689,0.284,9.366,0.736,13.978,1.344c7.066,0.943,13.564-4.031,14.507-11.097c0.943-7.079-4.031-13.577-11.11-14.507
|
||||
c-5.736-0.762-11.549-1.279-17.375-1.615v-67.912h51.828c7.131,0,12.918-5.775,12.918-12.918c0-7.131-5.787-12.918-12.918-12.918
|
||||
h-51.828v-67.899c7.661-0.426,15.244-1.24,22.749-2.416c20.54-3.204,40.422-9.172,59.166-17.724
|
||||
c6.304,19.881,10.696,41.3,13.009,63.959c0.052,0.491,0.129,0.982,0.233,1.46c1.382,6.33,7.312,10.748,13.926,10.076
|
||||
c7.092-0.723,12.259-7.066,11.536-14.159c-0.078-0.814-0.168-1.641-0.271-2.454c-2.7-25.191-7.829-49.051-15.218-71.141
|
||||
c3.811-2.299,7.544-4.715,11.226-7.26c7.157-4.909,14.068-10.27,20.695-16.045c26.237,28.743,43.432,63.881,49.955,102.352
|
||||
c1.189,7.028,7.867,11.769,14.895,10.567C451.703,203.845,456.431,197.179,455.243,190.139z M151.429,41.5
|
||||
c-11.433,13.551-21.625,30.151-30.151,49.4c-7.919-5.038-15.528-10.645-22.762-16.807C114.534,60.439,132.361,49.484,151.429,41.5z
|
||||
M79.874,92.127c10.038,8.746,20.721,16.523,31.934,23.305c-10.218,30.604-16.122,64.837-17.272,100.285H27.451
|
||||
C30.332,169.586,48.637,126.374,79.874,92.127z M27.451,241.554h67.085c1.15,35.474,7.053,69.733,17.298,100.35
|
||||
c-11.291,6.808-21.974,14.598-31.947,23.266C48.624,330.936,30.332,287.815,27.451,241.554z M98.528,383.178
|
||||
c7.196-6.11,14.792-11.717,22.762-16.768c8.526,19.223,18.719,35.771,30.139,49.322C132.374,407.736,114.534,396.82,98.528,383.178
|
||||
z M216.925,429.956c-28.369-6.42-54.658-33.717-72.898-76.012c22.814-10.658,47.63-16.988,72.898-18.602V429.956z M216.925,309.466
|
||||
c-28.356,1.602-56.234,8.474-81.928,20.191c-8.565-26.986-13.538-56.983-14.624-88.103h96.552V309.466z M216.925,215.717h-96.552
|
||||
c1.085-31.094,6.059-61.078,14.611-88.039c25.591,11.678,53.288,18.538,81.941,20.14V215.717z M216.925,121.93
|
||||
c-25.527-1.602-50.175-7.919-72.911-18.551c18.228-42.321,44.517-69.643,72.911-76.063V121.93z M254.776,120.819
|
||||
c-3.979,0.491-7.984,0.853-12.014,1.111V27.303c19.688,4.457,38.38,18.977,54.063,41.597c6.924,9.973,13.267,21.522,18.848,34.479
|
||||
C296.528,112.332,276.013,118.222,254.776,120.819z M340.902,89.272c-0.827,0.555-1.654,1.085-2.493,1.615
|
||||
c-0.827-1.86-1.666-3.682-2.519-5.49c-7.971-16.884-17.272-31.598-27.568-43.832c19.029,7.996,36.843,18.912,52.836,32.528
|
||||
C354.686,79.609,347.93,84.673,340.902,89.272z"/>
|
||||
</g>
|
||||
<ellipse transform="matrix(-0.7071 -0.7071 0.7071 -0.7071 445.4162 446.0893)" style="fill:#6EC6ED;" cx="315.096" cy="130.796" rx="73.841" ry="48.146"/>
|
||||
<path style="fill:#4D4D4D;" d="M363.109,186.561c-6.885,4.857-15.605,6.963-25.191,6.537c-0.103-0.478-0.181-0.969-0.233-1.46
|
||||
c-2.312-22.659-6.705-44.077-13.009-63.959c-18.745,8.552-38.626,14.52-59.166,17.724c-5.064-8.126-8.681-16.497-10.735-24.584
|
||||
c21.238-2.597,41.752-8.487,60.897-17.44c-5.581-12.957-11.924-24.506-18.848-34.479c12.57,1.55,26.276,7.183,39.065,16.497
|
||||
c0.853,1.809,1.692,3.63,2.519,5.49c0.84-0.53,1.666-1.059,2.493-1.615c2.816,2.312,5.581,4.806,8.255,7.48
|
||||
c3.669,3.669,6.989,7.48,9.96,11.407c-3.682,2.545-7.415,4.961-11.226,7.26C355.28,137.51,360.409,161.37,363.109,186.561z"/>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 6 KiB |
|
@ -1,34 +0,0 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
<svg height="800px" width="800px" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
viewBox="0 0 512 512" xml:space="preserve">
|
||||
<path style="fill:#E2E7F0;" d="M192,320h128l120-100V32c0-17.672-14.328-32-32-32H104C86.328,0,72,14.328,72,32v188L192,320z"/>
|
||||
<g>
|
||||
<polygon style="fill:#F19920;" points="440,115.04 440,220 512,160 "/>
|
||||
<polygon style="fill:#F19920;" points="72,115.04 0,160 72,220 "/>
|
||||
</g>
|
||||
<g>
|
||||
<path style="fill:#9DACBA;" d="M192,48h128c4.416,0,8,3.584,8,8l0,0c0,4.416-3.584,8-8,8H192c-4.416,0-8-3.584-8-8l0,0
|
||||
C184,51.584,187.584,48,192,48z"/>
|
||||
<path style="fill:#9DACBA;" d="M144,112h224c4.416,0,8,3.584,8,8l0,0c0,4.416-3.584,8-8,8H144c-4.416,0-8-3.584-8-8l0,0
|
||||
C136,115.584,139.584,112,144,112z"/>
|
||||
<path style="fill:#9DACBA;" d="M144,160h224c4.416,0,8,3.584,8,8l0,0c0,4.416-3.584,8-8,8H144c-4.416,0-8-3.584-8-8l0,0
|
||||
C136,163.584,139.584,160,144,160z"/>
|
||||
<path style="fill:#9DACBA;" d="M144,208h224c4.416,0,8,3.584,8,8l0,0c0,4.416-3.584,8-8,8H144c-4.416,0-8-3.584-8-8l0,0
|
||||
C136,211.584,139.584,208,144,208z"/>
|
||||
</g>
|
||||
<g>
|
||||
<polygon style="fill:#E78825;" points="56,206.64 72,220 72,115.04 56,125.04 "/>
|
||||
<polygon style="fill:#E78825;" points="456,206.64 440,220 440,115.04 456,125.04 "/>
|
||||
</g>
|
||||
<path style="fill:#F6B545;" d="M192,320L9.44,502.56C3.432,496.584,0.032,488.472,0,480V160L192,320z"/>
|
||||
<path style="fill:#FCD063;" d="M502.56,502.56c-5.976,6.008-14.088,9.408-22.56,9.44H32c-8.472-0.032-16.584-3.432-22.56-9.44
|
||||
L192,320h128L502.56,502.56z"/>
|
||||
<path style="fill:#F6B545;" d="M512,480c-0.032,8.472-3.432,16.584-9.44,22.56L320,320l192-160V480z"/>
|
||||
<path style="fill:#C9D5E3;" d="M192,320h128l117.6-98c-4.816-7.408-14.72-9.52-22.136-4.704c-0.448,0.296-0.888,0.608-1.304,0.944
|
||||
L336,284c-15.408,12.952-34.904,20.04-55.04,20h-55.04c-14.032,0.088-27.808,3.776-40,10.72L192,320z"/>
|
||||
<path style="fill:#F19920;" d="M496,200v280c0,8.84-7.16,16-16,16H48c-8.84,0-16,7.16-16,16h448c17.672,0,32-14.328,32-32V184l0,0
|
||||
C503.16,184,496,191.16,496,200z"/>
|
||||
<path style="fill:#F6B545;" d="M491.28,491.28c-2.984,3.008-7.04,4.704-11.28,4.72H48c-8.84,0-16,7.16-16,16h448
|
||||
c8.472-0.032,16.584-3.432,22.56-9.44L491.28,491.28z"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 2.3 KiB |
BIN
in/img/marc.jpeg
Normal file
After Width: | Height: | Size: 154 KiB |
|
@ -1 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg height="682.68799" viewBox="2799 -911 512 682.688" width="512" xmlns="http://www.w3.org/2000/svg"><g stroke-width="32"><path d="m2799-911v341.344l256-170.656" fill="#211f20"/><path d="m2799-569.656v341.344l256-170.656" fill="#737373"/><path d="m3055-740.344v341.344l256-170.656" fill="#f1680d"/></g></svg>
|
Before Width: | Height: | Size: 364 B |
|
@ -1,54 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.43.0 (0)
|
||||
-->
|
||||
<!-- Title: index Pages: 1 -->
|
||||
<svg width="118pt" height="119pt"
|
||||
viewBox="0.00 0.00 118.50 119.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 115)">
|
||||
<title>index</title>
|
||||
<!-- x -->
|
||||
<g id="node1" class="node">
|
||||
<title>x</title>
|
||||
<ellipse fill="#303030" stroke="#00a000" stroke-width="2" cx="54" cy="-93" rx="18" ry="18"/>
|
||||
<text text-anchor="middle" x="54" y="-89.3" font-family="DejaVu Sans" font-size="14.00" fill="#ffffff">X</text>
|
||||
</g>
|
||||
<!-- r -->
|
||||
<g id="node2" class="node">
|
||||
<title>r</title>
|
||||
<ellipse fill="#303030" stroke="#d00000" stroke-width="2" cx="18" cy="-19.5" rx="18" ry="18"/>
|
||||
<text text-anchor="middle" x="18" y="-15.8" font-family="DejaVu Sans" font-size="14.00" fill="#ffffff">R</text>
|
||||
</g>
|
||||
<!-- x->r -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>x->r</title>
|
||||
<path fill="none" stroke="#00a000" stroke-width="2" d="M46.19,-76.48C41.57,-67.3 35.61,-55.46 30.36,-45.04"/>
|
||||
<polygon fill="#00a000" stroke="#00a000" stroke-width="2" points="33.42,-43.34 25.8,-35.98 27.17,-46.49 33.42,-43.34"/>
|
||||
</g>
|
||||
<!-- w -->
|
||||
<g id="node3" class="node">
|
||||
<title>w</title>
|
||||
<ellipse fill="#303030" stroke="#0000ff" stroke-width="2" cx="91" cy="-19.5" rx="19.5" ry="19.5"/>
|
||||
<text text-anchor="middle" x="91" y="-15.8" font-family="DejaVu Sans" font-size="14.00" fill="#ffffff">W</text>
|
||||
</g>
|
||||
<!-- r->w -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>r->w</title>
|
||||
<path fill="none" stroke="#d00000" stroke-width="2" d="M33.68,-10.39C43.86,-6.09 54.04,-4.95 64.22,-6.96"/>
|
||||
<polygon fill="#d00000" stroke="#d00000" stroke-width="2" points="63.4,-10.36 73.98,-9.85 65.39,-3.65 63.4,-10.36"/>
|
||||
</g>
|
||||
<!-- w->x -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>w->x</title>
|
||||
<path fill="none" stroke="#0000ff" stroke-width="2" d="M82.34,-37.23C77.69,-46.22 71.86,-57.48 66.71,-67.44"/>
|
||||
<polygon fill="#0000ff" stroke="#0000ff" stroke-width="2" points="63.52,-65.99 62.03,-76.48 69.73,-69.21 63.52,-65.99"/>
|
||||
</g>
|
||||
<!-- w->r -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>w->r</title>
|
||||
<path fill="none" stroke="#0000ff" stroke-width="2" d="M73.98,-29.15C63.8,-33.17 53.62,-34.04 43.44,-31.76"/>
|
||||
<polygon fill="#0000ff" stroke="#0000ff" stroke-width="2" points="44.28,-28.35 33.68,-28.61 42.12,-35.01 44.28,-28.35"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 2.5 KiB |
|
@ -1,94 +0,0 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
<svg height="800px" width="800px" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
viewBox="0 0 512 512" xml:space="preserve">
|
||||
<path style="fill:#707384;" d="M361.931,0H150.069c-14.626,0-26.483,11.857-26.483,26.483v459.034
|
||||
c0,14.626,11.857,26.483,26.483,26.483h211.862c14.626,0,26.483-11.857,26.483-26.483V26.483C388.414,11.857,376.557,0,361.931,0z
|
||||
M220.69,35.31c0-4.875,3.953-8.828,8.828-8.828h52.966c4.875,0,8.828,3.953,8.828,8.828l0,0c0,4.875-3.953,8.828-8.828,8.828
|
||||
h-52.966C224.642,44.138,220.69,40.185,220.69,35.31L220.69,35.31z M194.207,26.483c4.875,0,8.828,3.953,8.828,8.828
|
||||
s-3.953,8.828-8.828,8.828s-8.828-3.953-8.828-8.828S189.332,26.483,194.207,26.483z M256,494.345
|
||||
c-9.751,0-17.655-7.905-17.655-17.655c0-9.751,7.904-17.655,17.655-17.655c9.751,0,17.655,7.904,17.655,17.655
|
||||
C273.655,486.44,265.751,494.345,256,494.345z M370.759,335.448v105.931H141.241V335.448V70.621h229.517V335.448z"/>
|
||||
<path style="fill:#63AFDB;" d="M141.241,335.448h70.621c0-4.875,3.953-8.828,8.828-8.828s8.828,3.953,8.828,8.828h17.655
|
||||
c0-4.875,3.953-8.828,8.828-8.828s8.828,3.953,8.828,8.828h17.655c0-4.875,3.953-8.828,8.828-8.828s8.828,3.953,8.828,8.828h70.621
|
||||
V70.621H141.241V335.448z M300.138,114.759c0-4.875,3.953-8.828,8.828-8.828h35.31c4.875,0,8.828,3.953,8.828,8.828v35.31
|
||||
c0,4.875-3.953,8.828-8.828,8.828h-35.31c-4.875,0-8.828-3.953-8.828-8.828V114.759z M300.138,185.379
|
||||
c0-4.875,3.953-8.828,8.828-8.828h35.31c4.875,0,8.828,3.953,8.828,8.828v35.31c0,4.875-3.953,8.828-8.828,8.828h-35.31
|
||||
c-4.875,0-8.828-3.953-8.828-8.828V185.379z M300.138,256c0-4.875,3.953-8.828,8.828-8.828h35.31c4.875,0,8.828,3.953,8.828,8.828
|
||||
v35.31c0,4.875-3.953,8.828-8.828,8.828h-35.31c-4.875,0-8.828-3.953-8.828-8.828V256z M229.517,114.759
|
||||
c0-4.875,3.953-8.828,8.828-8.828h35.31c4.875,0,8.828,3.953,8.828,8.828v35.31c0,4.875-3.953,8.828-8.828,8.828h-35.31
|
||||
c-4.875,0-8.828-3.953-8.828-8.828V114.759z M229.517,185.379c0-4.875,3.953-8.828,8.828-8.828h35.31
|
||||
c4.875,0,8.828,3.953,8.828,8.828v35.31c0,4.875-3.953,8.828-8.828,8.828h-35.31c-4.875,0-8.828-3.953-8.828-8.828V185.379z
|
||||
M229.517,256c0-4.875,3.953-8.828,8.828-8.828h35.31c4.875,0,8.828,3.953,8.828,8.828v35.31c0,4.875-3.953,8.828-8.828,8.828
|
||||
h-35.31c-4.875,0-8.828-3.953-8.828-8.828V256z M158.897,114.759c0-4.875,3.953-8.828,8.828-8.828h35.31
|
||||
c4.875,0,8.828,3.953,8.828,8.828v35.31c0,4.875-3.953,8.828-8.828,8.828h-35.31c-4.875,0-8.828-3.953-8.828-8.828V114.759z
|
||||
M158.897,185.379c0-4.875,3.953-8.828,8.828-8.828h35.31c4.875,0,8.828,3.953,8.828,8.828v35.31c0,4.875-3.953,8.828-8.828,8.828
|
||||
h-35.31c-4.875,0-8.828-3.953-8.828-8.828V185.379z M158.897,256c0-4.875,3.953-8.828,8.828-8.828h35.31
|
||||
c4.875,0,8.828,3.953,8.828,8.828v35.31c0,4.875-3.953,8.828-8.828,8.828h-35.31c-4.875,0-8.828-3.953-8.828-8.828V256z"/>
|
||||
<path style="fill:#468CBE;" d="M291.31,344.276c-4.875,0-8.828-3.953-8.828-8.828h-17.655c0,4.875-3.953,8.828-8.828,8.828
|
||||
s-8.828-3.953-8.828-8.828h-17.655c0,4.875-3.953,8.828-8.828,8.828s-8.828-3.953-8.828-8.828h-70.621v105.931h229.517V335.448
|
||||
h-70.621C300.138,340.323,296.185,344.276,291.31,344.276z M211.862,406.069c0,4.875-3.953,8.828-8.828,8.828h-35.31
|
||||
c-4.875,0-8.828-3.953-8.828-8.828v-35.31c0-4.875,3.953-8.828,8.828-8.828h35.31c4.875,0,8.828,3.953,8.828,8.828V406.069z
|
||||
M282.483,406.069c0,4.875-3.953,8.828-8.828,8.828h-35.31c-4.875,0-8.828-3.953-8.828-8.828v-35.31
|
||||
c0-4.875,3.953-8.828,8.828-8.828h35.31c4.875,0,8.828,3.953,8.828,8.828V406.069z M308.966,361.931h35.31
|
||||
c4.875,0,8.828,3.953,8.828,8.828v35.31c0,4.875-3.953,8.828-8.828,8.828h-35.31c-4.875,0-8.828-3.953-8.828-8.828v-35.31
|
||||
C300.138,365.884,304.09,361.931,308.966,361.931z"/>
|
||||
<g>
|
||||
<path style="fill:#464655;" d="M229.517,44.138h52.966c4.875,0,8.828-3.953,8.828-8.828l0,0c0-4.875-3.953-8.828-8.828-8.828
|
||||
h-52.966c-4.875,0-8.828,3.953-8.828,8.828l0,0C220.69,40.185,224.642,44.138,229.517,44.138z"/>
|
||||
<circle style="fill:#464655;" cx="194.207" cy="35.31" r="8.828"/>
|
||||
<circle style="fill:#464655;" cx="256" cy="476.69" r="17.655"/>
|
||||
</g>
|
||||
<path style="fill:#63AFDB;" d="M273.655,361.931h-35.31c-4.875,0-8.828,3.953-8.828,8.828v35.31c0,4.875,3.953,8.828,8.828,8.828
|
||||
h35.31c4.875,0,8.828-3.953,8.828-8.828v-35.31C282.483,365.884,278.53,361.931,273.655,361.931z M256,406.069
|
||||
c-9.751,0-17.655-7.905-17.655-17.655c0-9.751,7.904-17.655,17.655-17.655c9.751,0,17.655,7.904,17.655,17.655
|
||||
C273.655,398.164,265.751,406.069,256,406.069z"/>
|
||||
<path style="fill:#FF6469;" d="M300.138,406.069c0,4.875,3.953,8.828,8.828,8.828h35.31c4.875,0,8.828-3.953,8.828-8.828v-35.31
|
||||
c0-4.875-3.953-8.828-8.828-8.828h-35.31c-4.875,0-8.828,3.953-8.828,8.828V406.069z"/>
|
||||
<path style="fill:#00DCCD;" d="M203.034,361.931h-35.31c-4.875,0-8.828,3.953-8.828,8.828v35.31c0,4.875,3.953,8.828,8.828,8.828
|
||||
h35.31c4.875,0,8.828-3.953,8.828-8.828v-35.31C211.862,365.884,207.91,361.931,203.034,361.931z"/>
|
||||
<path style="fill:#FFDC69;" d="M238.345,300.138h35.31c4.875,0,8.828-3.953,8.828-8.828V256c0-4.875-3.953-8.828-8.828-8.828h-35.31
|
||||
c-4.875,0-8.828,3.953-8.828,8.828v35.31C229.517,296.185,233.47,300.138,238.345,300.138z"/>
|
||||
<path style="fill:#FFFFFF;" d="M308.966,300.138h35.31c4.875,0,8.828-3.953,8.828-8.828V256c0-4.875-3.953-8.828-8.828-8.828h-35.31
|
||||
c-4.875,0-8.828,3.953-8.828,8.828v35.31C300.138,296.185,304.09,300.138,308.966,300.138z M308.966,273.655
|
||||
c0-4.875,3.953-8.828,8.828-8.828h17.655c4.875,0,8.828,3.953,8.828,8.828l0,0c0,4.875-3.953,8.828-8.828,8.828h-17.655
|
||||
C312.918,282.483,308.966,278.53,308.966,273.655L308.966,273.655z"/>
|
||||
<path style="fill:#468CBE;" d="M167.724,300.138h35.31c4.875,0,8.828-3.953,8.828-8.828V256c0-4.875-3.953-8.828-8.828-8.828h-35.31
|
||||
c-4.875,0-8.828,3.953-8.828,8.828v35.31C158.897,296.185,162.849,300.138,167.724,300.138z M167.724,273.655
|
||||
c0-4.875,3.953-8.828,8.828-8.828h17.655c4.875,0,8.828,3.953,8.828,8.828l0,0c0,4.875-3.953,8.828-8.828,8.828h-17.655
|
||||
C171.677,282.483,167.724,278.53,167.724,273.655L167.724,273.655z"/>
|
||||
<path style="fill:#464655;" d="M238.345,229.517h35.31c4.875,0,8.828-3.953,8.828-8.828v-35.31c0-4.875-3.953-8.828-8.828-8.828
|
||||
h-35.31c-4.875,0-8.828,3.953-8.828,8.828v35.31C229.517,225.565,233.47,229.517,238.345,229.517z M238.345,203.034
|
||||
c0-4.875,3.953-8.828,8.828-8.828h17.655c4.875,0,8.828,3.953,8.828,8.828l0,0c0,4.875-3.953,8.828-8.828,8.828h-17.655
|
||||
C242.297,211.862,238.345,207.91,238.345,203.034L238.345,203.034z"/>
|
||||
<path style="fill:#FFA055;" d="M308.966,229.517h35.31c4.875,0,8.828-3.953,8.828-8.828v-35.31c0-4.875-3.953-8.828-8.828-8.828
|
||||
h-35.31c-4.875,0-8.828,3.953-8.828,8.828v35.31C300.138,225.565,304.09,229.517,308.966,229.517z"/>
|
||||
<path style="fill:#A0D778;" d="M167.724,229.517h35.31c4.875,0,8.828-3.953,8.828-8.828v-35.31c0-4.875-3.953-8.828-8.828-8.828
|
||||
h-35.31c-4.875,0-8.828,3.953-8.828,8.828v35.31C158.897,225.565,162.849,229.517,167.724,229.517z M185.379,185.379
|
||||
c9.751,0,17.655,7.904,17.655,17.655c0,9.75-7.904,17.655-17.655,17.655c-9.751,0-17.655-7.905-17.655-17.655
|
||||
C167.724,193.283,175.628,185.379,185.379,185.379z"/>
|
||||
<path style="fill:#FF6469;" d="M238.345,158.897h35.31c4.875,0,8.828-3.953,8.828-8.828v-35.31c0-4.875-3.953-8.828-8.828-8.828
|
||||
h-35.31c-4.875,0-8.828,3.953-8.828,8.828v35.31C229.517,154.944,233.47,158.897,238.345,158.897z"/>
|
||||
<path style="fill:#00DCCD;" d="M308.966,158.897h35.31c4.875,0,8.828-3.953,8.828-8.828v-35.31c0-4.875-3.953-8.828-8.828-8.828
|
||||
h-35.31c-4.875,0-8.828,3.953-8.828,8.828v35.31C300.138,154.944,304.09,158.897,308.966,158.897z M326.621,114.759
|
||||
c9.751,0,17.655,7.904,17.655,17.655c0,9.75-7.904,17.655-17.655,17.655c-9.751,0-17.655-7.905-17.655-17.655
|
||||
C308.966,122.663,316.87,114.759,326.621,114.759z"/>
|
||||
<g>
|
||||
<path style="fill:#FFDC69;" d="M167.724,158.897h35.31c4.875,0,8.828-3.953,8.828-8.828v-35.31c0-4.875-3.953-8.828-8.828-8.828
|
||||
h-35.31c-4.875,0-8.828,3.953-8.828,8.828v35.31C158.897,154.944,162.849,158.897,167.724,158.897z"/>
|
||||
<circle style="fill:#FFDC69;" cx="185.379" cy="203.034" r="17.655"/>
|
||||
<circle style="fill:#FFDC69;" cx="256" cy="388.414" r="17.655"/>
|
||||
</g>
|
||||
<circle style="fill:#FF6469;" cx="326.621" cy="132.414" r="17.655"/>
|
||||
<path style="fill:#468CBE;" d="M247.172,211.862h17.655c4.875,0,8.828-3.953,8.828-8.828l0,0c0-4.875-3.953-8.828-8.828-8.828
|
||||
h-17.655c-4.875,0-8.828,3.953-8.828,8.828l0,0C238.345,207.91,242.297,211.862,247.172,211.862z"/>
|
||||
<path style="fill:#FF6469;" d="M317.793,282.483h17.655c4.875,0,8.828-3.953,8.828-8.828l0,0c0-4.875-3.953-8.828-8.828-8.828
|
||||
h-17.655c-4.875,0-8.828,3.953-8.828,8.828l0,0C308.966,278.53,312.918,282.483,317.793,282.483z"/>
|
||||
<path style="fill:#FFFFFF;" d="M176.552,282.483h17.655c4.875,0,8.828-3.953,8.828-8.828l0,0c0-4.875-3.953-8.828-8.828-8.828
|
||||
h-17.655c-4.875,0-8.828,3.953-8.828,8.828l0,0C167.724,278.53,171.677,282.483,176.552,282.483z"/>
|
||||
<circle style="fill:#464655;" cx="220.69" cy="335.448" r="8.828"/>
|
||||
<g>
|
||||
<circle style="fill:#FFFFFF;" cx="256" cy="335.448" r="8.828"/>
|
||||
<circle style="fill:#FFFFFF;" cx="291.31" cy="335.448" r="8.828"/>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 8.8 KiB |
|
@ -1,3 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
<svg width="800px" height="800px" viewBox="0 0 1024 1024" class="icon" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M513.311597 95.397443c-156.598141 0-253.554962 137.570256-253.554962 265.040908 0 105.370087 44.014782 155.726815 82.912186 200.192106l7.377094 8.41429c20.519686 23.753116 25.437407 101.224375 22.39442 158.053082a25.298159 25.298159 0 0 0 6.79655 18.445294c4.725231 4.920793 11.19721 7.767194 18.057242 7.767194h8.122482v115.854673c0 13.722111 11.134753 24.853792 24.853793 24.853792h58.187403v9.967524c0 13.719039 11.130657 24.853792 24.853792 24.853792s24.853792-11.134753 24.853792-24.853792v-9.967524h58.283649c13.722111 0 24.853792-11.131681 24.853792-24.853792V753.310317h8.155247c6.860032 0 13.332011-2.846401 18.057241-7.767194a25.293039 25.293039 0 0 0 6.796551-18.445294c-3.041963-56.828707 1.875758-134.299966 22.39442-158.053082l7.442622-8.546371c38.831875-44.398739 82.845633-94.752396 82.845634-200.060025 0.001024-127.470651-96.954773-265.040907-253.682948-265.040908z" fill="#27323A" /><path d="M571.595245 844.311197H455.124194v-91.00088h116.471051v91.00088z" fill="#79CCBF" /><path d="M646.740237 527.812885l-7.638184 8.705073c-30.355128 35.176604-35.404931 104.432208-35.404931 155.239445 0 4.467212 0.12901 7.896204 0.195562 11.843282H422.827779c0.066553-3.947078 0.195562-7.37607 0.195562-11.843282 0-50.87379-5.049802-120.063865-35.372166-155.239445 0-0.032764-7.571632-8.639544-7.571632-8.639544-36.310045-41.552338-70.614299-80.774313-70.614299-167.441087 0-105.85336 76.244645-215.333323 203.847377-215.333323 127.731742 0 203.976387 109.478938 203.976387 215.333323-0.001024 86.601245-34.238725 125.824244-70.548771 167.375558z" fill="#F4CE73" /><path d="M460.237477 205.622794c3.496568 8.476747-0.517062 18.186251-8.993808 21.68282-42.134929 17.473627-61.196602 49.383013-69.739901 73.069576-13.917673 38.642456-10.163086 84.691699 10.160014 123.168285 4.27165 8.09279 1.166205 18.123794-6.925561 22.39442-8.088694 4.27165-18.123794 1.166205-22.39442-6.92556-24.916249-47.311693-29.317932-101.907306-12.035771-149.897836 15.336778-42.361208 46.665621-75.207449 88.247652-92.426128 8.479818-3.492473 18.189323 0.520134 21.681795 8.934423z" fill="#FFFFFF" /></svg>
|
Before Width: | Height: | Size: 2.3 KiB |
|
@ -1,55 +0,0 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
viewBox="0 0 392.921 392.921" xml:space="preserve">
|
||||
<g>
|
||||
<path style="fill:#56ACE0;" d="M132.622,154.246H97.261c1.81,16.549,7.693,31.871,16.549,44.929
|
||||
c7.628-1.228,15.257-2.327,22.95-3.232C134.432,182.497,133.075,168.339,132.622,154.246z"/>
|
||||
<path style="fill:#56ACE0;" d="M136.76,90.764c-7.758-0.905-15.515-2.004-23.273-3.232c-8.792,13.123-14.61,28.444-16.356,44.994
|
||||
h35.426C133.075,118.368,134.497,104.339,136.76,90.764z"/>
|
||||
<path style="fill:#56ACE0;" d="M131.006,218.57c4.202,3.62,8.663,6.917,13.382,9.826c-1.164-3.62-2.198-7.305-3.168-11.055
|
||||
C137.794,217.665,134.432,218.117,131.006,218.57z"/>
|
||||
<path style="fill:#56ACE0;" d="M141.35,69.366c0.97-3.943,2.069-7.822,3.297-11.572c-4.978,3.038-9.632,6.465-13.964,10.279
|
||||
C134.174,68.525,137.729,68.978,141.35,69.366z"/>
|
||||
<path style="fill:#56ACE0;" d="M162.941,215.402c2.651,9.438,5.689,17.648,8.986,24.566c7.822,2.004,16.032,3.038,24.501,3.038
|
||||
s16.679-1.034,24.566-3.038c3.297-6.853,6.335-15.063,8.921-24.501C207.677,213.915,185.309,213.915,162.941,215.402z"/>
|
||||
<path style="fill:#56ACE0;" d="M230.045,71.305c-2.715-9.632-5.818-18.036-9.244-25.018c-7.758-1.939-15.968-2.974-24.372-2.974
|
||||
c-8.339,0-16.485,1.034-24.178,2.974c-3.362,6.982-6.529,15.386-9.244,25.083C185.374,72.792,207.677,72.792,230.045,71.305z"/>
|
||||
<path style="fill:#56ACE0;" d="M158.222,193.939c25.406-1.875,51.071-1.875,76.477,0c2.004-11.96,3.426-25.277,3.879-39.693h-84.17
|
||||
C154.861,168.663,156.154,181.98,158.222,193.939z"/>
|
||||
<path style="fill:#56ACE0;" d="M196.493,94.255c-12.735,0-25.535-0.517-38.271-1.487c-2.004,11.96-3.426,25.277-3.879,39.693
|
||||
h84.234c-0.453-14.481-1.745-27.733-3.879-39.693C222.028,93.737,209.228,94.255,196.493,94.255z"/>
|
||||
<path style="fill:#56ACE0;" d="M262.368,68.137c-4.331-3.814-8.986-7.24-13.964-10.279c1.164,3.75,2.327,7.628,3.297,11.572
|
||||
C255.257,69.042,258.812,68.59,262.368,68.137z"/>
|
||||
<path style="fill:#56ACE0;" d="M248.727,228.267c4.655-2.844,9.051-6.077,13.123-9.632c-3.362-0.453-6.659-0.84-10.02-1.228
|
||||
C250.861,221.091,249.826,224.711,248.727,228.267z"/>
|
||||
<path style="fill:#56ACE0;" d="M256.226,195.943c7.628,0.905,15.257,2.004,22.885,3.232c8.921-13.123,14.739-28.444,16.614-44.929
|
||||
h-35.297C259.847,168.339,258.489,182.432,256.226,195.943z"/>
|
||||
<path style="fill:#56ACE0;" d="M260.364,132.525h35.362c-1.745-16.55-7.499-31.871-16.356-44.994
|
||||
c-7.693,1.293-15.386,2.327-23.143,3.232C258.554,104.21,259.911,118.368,260.364,132.525z"/>
|
||||
</g>
|
||||
<rect x="182.012" y="341.915" style="fill:#FFC10D;" width="28.897" height="28.897"/>
|
||||
<path style="fill:#194F82;" d="M357.075,345.471H232.63V330.99c0-6.012-4.848-10.925-10.925-10.925h-14.481v-33.939
|
||||
c74.02-5.56,132.525-67.556,132.525-142.933C339.944,64.259,275.556,0,196.493,0S53.107,64.259,53.107,143.386
|
||||
c0,75.442,58.505,137.374,132.525,142.933v33.939h-14.481c-6.012,0-10.925,4.848-10.925,10.925v14.481H35.847
|
||||
c-6.012,0-10.925,4.848-10.925,10.925s4.848,10.925,10.925,10.925h124.38v14.481c0,6.012,4.848,10.925,10.925,10.925h50.618
|
||||
c6.012,0,10.925-4.848,10.925-10.925v-14.481h124.38c6.012,0,10.925-4.849,10.925-10.925
|
||||
C367.935,350.319,363.087,345.471,357.075,345.471z M210.974,370.812h-28.897v-28.897h28.897V370.812z M75.346,154.246h57.277
|
||||
c0.453,14.158,1.875,28.251,4.202,41.697c-15.451,1.745-30.772,4.331-45.964,7.499C82.392,188.703,76.962,172.024,75.346,154.246z
|
||||
M317.64,132.525h-57.277c-0.453-14.158-1.875-28.251-4.202-41.697c15.451-1.745,30.772-4.331,45.964-7.499
|
||||
C310.594,98.069,316.024,114.747,317.64,132.525z M238.578,154.246c-0.453,14.481-1.875,27.733-3.879,39.693
|
||||
c-25.406-1.875-51.071-1.875-76.477,0c-2.069-11.96-3.426-25.277-3.879-39.693H238.578z M154.408,132.525
|
||||
c0.453-14.481,1.875-27.733,3.879-39.693c12.735,0.905,25.471,1.487,38.271,1.487s25.471-0.517,38.271-1.487
|
||||
c2.069,11.96,3.426,25.277,3.879,39.693H154.408z M229.98,215.402c-8.727,31.677-22.497,49.584-33.487,49.584
|
||||
s-24.76-17.907-33.552-49.584C185.309,213.915,207.677,213.915,229.98,215.402z M235.733,258.521
|
||||
c6.659-11.378,12.024-25.471,16.097-41.18c12.283,1.422,24.566,3.232,36.719,5.56C274.457,238.998,256.356,251.41,235.733,258.521z
|
||||
M256.226,195.943c2.263-13.511,3.62-27.604,4.202-41.697h57.277c-1.552,17.778-7.046,34.457-15.451,49.196
|
||||
C287.063,200.275,271.677,197.818,256.226,195.943z M251.766,69.43c-4.008-15.709-9.438-29.802-16.097-41.18
|
||||
c20.622,7.046,38.853,19.459,52.881,35.685C276.331,66.198,264.049,68.073,251.766,69.43z M230.045,71.305
|
||||
c-22.303,1.487-44.671,1.487-66.974,0c8.792-31.677,22.497-49.584,33.487-49.584C207.483,21.721,221.253,39.628,230.045,71.305z
|
||||
M157.317,28.186c-6.659,11.378-12.024,25.471-15.968,41.18c-12.283-1.422-24.566-3.168-36.784-5.495
|
||||
C118.529,47.774,136.695,35.297,157.317,28.186z M136.76,90.764c-2.263,13.511-3.685,27.604-4.202,41.697H75.281
|
||||
c1.552-17.778,7.046-34.457,15.451-49.196C105.988,86.432,121.309,89.018,136.76,90.764z M141.22,217.277
|
||||
c4.008,15.709,9.438,29.802,16.097,41.244c-20.622-7.046-38.788-19.459-52.752-35.62
|
||||
C116.655,220.509,128.873,218.699,141.22,217.277z"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 5 KiB |
|
@ -1 +0,0 @@
|
|||
en/index.html
|
75
in/marc.beninca.asc
Normal file
|
@ -0,0 +1,75 @@
|
|||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
mDMEXTefmxYJKwYBBAHaRw8BAQdA+H8/RzqjvpB7+mnypomWrxRe2zoUO0htbwP7
|
||||
xC/Mxei0IE1hcmMgQmVuaW5jYSA8bWFyY0BiZW5pbmNhLmxpbms+iQGOBBMWCgE2
|
||||
AhsBAgsJAhUKAhYDAh4BAheAAhkBMBSAAAAAABAAF3Byb29mQGFyaWFkbmUuaWRk
|
||||
bnM6dGlsZGUubGluaz90eXBlPVRYVDUUgAAAAAAQABxwcm9vZkBhcmlhZG5lLmlk
|
||||
ZG5zOm1hcmMtYmVuaW5jYS5mcj90eXBlPVRYVDIUgAAAAAAQABlwcm9vZkBhcmlh
|
||||
ZG5lLmlkZG5zOmJlbmluY2EubGluaz90eXBlPVRYVDQUgAAAAAAQABtwcm9vZkBh
|
||||
cmlhZG5lLmlkZG5zOmNvbXB1dGluZy5sYW5kP3R5cGU9VFhULhSAAAAAABAAFXBy
|
||||
b29mQGFyaWFkbmUuaWRkbnM6cnd4Lndvcms/dHlwZT1UWFQWIQQI7acAYjSg6ymj
|
||||
qEcdvV7EutpVeQUCZld4FwUJCwEL/AAKCRAdvV7EutpVeStiAQC5mlCjnqk4FU26
|
||||
bdDJyx69ghq+bxnTsvs6GkOfwByxNwEAn1ekf7ZvnN2i/xLKbjw3tw1XlZzBiqzg
|
||||
CgECjNiu4gG0JE1hcmMgQmVuaW5jYSA8Z2l0QG1hcmMuYmVuaW5jYS5saW5rPojT
|
||||
BBMWCgB7AhsBAgsJAhUKAhYDAh4BAheARRSAAAAAABAALHByb29mQGFyaWFkbmUu
|
||||
aWRodHRwczovL2ZvcmdlLnJ3eC53b3JrL21hcmMuYmVuaW5jYS8ucHJvZmlsZRYh
|
||||
BAjtpwBiNKDrKaOoRx29XsS62lV5BQJmV3gXBQkLAQv8AAoJEB29XsS62lV5ceoB
|
||||
ANCsDlwxQO75SVnvt11RNShnSqZl4S8wNDfJpOJyybTZAP4wTHDw8g82BYHgRPl/
|
||||
SpXBMSyK3bfii4qVqyGmHXWIC7QnTWFyYyBCZW5pbmNhIDxzb2NpYWxAbWFyYy5i
|
||||
ZW5pbmNhLmxpbms+iQLSBBMWCgJ6AhsBAgsJAhUKAhYDAh4BAheAShSAAAAAABAA
|
||||
MXByb29mQGFyaWFkbmUuaWRodHRwczovL25ld3MueWNvbWJpbmF0b3IuY29tL3Vz
|
||||
ZXI/aWQ9bWFyY19iZW5pbmNhPxSAAAAAABAAJnByb29mQGFyaWFkbmUuaWRodHRw
|
||||
czovL3Byb2dyYW1taW5nLmRldi91L21hcmNfYmVuaW5jYUMUgAAAAAAQACpwcm9v
|
||||
ZkBhcmlhZG5lLmlkaHR0cHM6Ly9waXhlbGZlZC5zb2NpYWwvdXNlcnMvbWFyYy5i
|
||||
ZW5pbmNhOxSAAAAAABAAInByb29mQGFyaWFkbmUuaWRodHRwczovL2xpYmVyYXBh
|
||||
eS5jb20vbWFyYy5iZW5pbmNhPRSAAAAAABAAJHByb29mQGFyaWFkbmUuaWRodHRw
|
||||
czovL21hc3RvZG9uLmNsb3VkL0BtYXJjX2JlbmluY2E9FIAAAAAAEAAkcHJvb2ZA
|
||||
YXJpYWRuZS5pZGh0dHBzOi8vZGV2cy5saXZlL3VzZXJzL21hcmNfYmVuaW5jYUQU
|
||||
gAAAAAAQACtwcm9vZkBhcmlhZG5lLmlkaHR0cHM6Ly9wZWVydHViZS5pcmlzZWRl
|
||||
bi5ldS9hL21hcmNfYmVuaW5jYT4UgAAAAAAQACVwcm9vZkBhcmlhZG5lLmlkaHR0
|
||||
cHM6Ly9yYW50LmxpL21hcmMtYmVuaW5jYS9rZXlveGlkZTkUgAAAAAAQACBwcm9v
|
||||
ZkBhcmlhZG5lLmlkaHR0cHM6Ly9sb2JzdGUucnMvdS9tYXJjX2JlbmluY2EWIQQI
|
||||
7acAYjSg6ymjqEcdvV7EutpVeQUCZld4GAUJCwEL/AAKCRAdvV7EutpVeYD4AP4v
|
||||
2JGU1fRKrjJef93q0+SRq+cPDDvQsPZewaokig3m8AD/UHc6qnBD8uJvZIkkgNQ0
|
||||
ej7DQhKeMxq0OLqfvMTXaQ+4MwRkBLE2FgkrBgEEAdpHDwEBB0AsYIYac0mKd7Ui
|
||||
WhnkXlDo2hidqKEDneaCGfRV9UhR4Yh+BBgWCgAmAhsgFiEECO2nAGI0oOspo6hH
|
||||
Hb1exLraVXkFAmZXeBkFCQQz+mMACgkQHb1exLraVXmcewD/S0zIWpVmEJikiijA
|
||||
Kd97fjcYGuAWdcYnkhARFU7cihgBAIarS+OWe5ZkvOVZAJDCCTxLrdpN8tQXgf4K
|
||||
xP9RxVMKuDMEZASx7RYJKwYBBAHaRw8BAQdAwJl98sJxO1aJ/6ucVHDMxjpjNuI+
|
||||
l7/M5I6Z8GdNHzCI9QQYFgoAJgIbAhYhBAjtpwBiNKDrKaOoRx29XsS62lV5BQJm
|
||||
V3gZBQkEM/msAIF2IAQZFgoAHRYhBEZFD76ABdKwQwlIa70nrOrleYioBQJkBLHt
|
||||
AAoJEL0nrOrleYio6MwA/Rrcqz5tol3l3fuADm0PWk3MzeaClfYC9ICaxS994mDQ
|
||||
AP9etGedvYD4evXdJ1aQ41a0cLi+vbctUaeKmVmjUZNXBgkQHb1exLraVXlzrQEA
|
||||
1myZeH/H1cF+61cKsi6fEsAgXJXuF7IykX8/Rp3b1+YBAO70LDuaIAw4JozIAWVX
|
||||
aUt2q9cu8ihSBAzI5mM7hc0AuDgEZASzfBIKKwYBBAGXVQEFAQEHQOL7FEfVtSrh
|
||||
I36LfH8Suxvcb6t9z40yTvDgNaDbCtFMAwEIB4h+BBgWCgAmAhsMFiEECO2nAGI0
|
||||
oOspo6hHHb1exLraVXkFAmZXeBkFCQQz+B0ACgkQHb1exLraVXkF6gEAry1FxYoP
|
||||
0Bw7a8TR7bo3/MlOYfOYvcW7J7B35P3l6HMBAMjd2Qo5QklwLlSCLZ2S74mptlj0
|
||||
GdQ1w1trFHvZoiEHuQINBGVJ9IYBEACmuAQeyc3N/xXxX5PR8KeXLR7yeEhzzSCH
|
||||
Eppc2GId+TTK6kHU65Cc20deXjjHjqSeghGZ585soCV1l38e3dYJ13puPjRqnQ2g
|
||||
bu6kRPHR1vEFYnDHCAGV+Tv8orKJ505Xo5sRxtETtEeK6KpwmgwO7kWJprmD8oDa
|
||||
MkDMSGNwF3ogEtrkYc1g5S8gtiHS5jcg7GUHp3jMtyrPoyWj1YPzxWe7/EG8tYEo
|
||||
wy6FPwrLNEFFIF2oRlq6/bXyr0bb3tuyYYWTeHMhQ3YZJ8AUhXfVeiJQ28JxMjFX
|
||||
+wmNwE9IvDMWRdb/PYNPE/hfni1eCSlNgIYGXMa8xZL00k7W2DNbSXReB98bw6YH
|
||||
2CaXutE+zy7R9+GPhWCy+nQiYRCZMIO40H0nTED9ZgztrIByDxjxJD6Q6KhFnwAl
|
||||
z8HQ8oPyq8HFwGX7zElRVC+fka9znhqqSYm4WrX7OuXbTsFT03/wKnLLaS9lgb0X
|
||||
MIz0fvOjzl1HZBeFV+1+oRT94f+cp7iJgIN3G2ALcpBI97yE10dWPuO/WOgFbPh7
|
||||
3y+olH8ujxPI5xMNg5pS40sjqCW1vwM4zBzPs5RPioX+9EtEQCAAyoq6TBYHMJxv
|
||||
tzwAogoCOo5sAQcIR8Sg7EpwhSjJrbVt4rjqq82EKzhqZj4nrS9ycrrlTHGqs7NA
|
||||
ZsCuoCj7bQARAQABiQK0BBgWCgAmAhsCFiEECO2nAGI0oOspo6hHHb1exLraVXkF
|
||||
AmZXeBkFCQLutxMCQMF0IAQZAQoAHRYhBDEqzfm7A8ga3pW5wJx2E0UMgMJPBQJl
|
||||
SfSGAAoJEJx2E0UMgMJP+2kP/0f/azRfWgHd4ce1COKv/u9XLqNOmEpBYMgi86GU
|
||||
Z8natRGk4TPFvfjo3qY6LSDrA3PgzYR/T3NSw4+rDuSpRr1U9nWFQ34CIj5phC5t
|
||||
IPwQeLUk4699wi0BsLBdYeiOEBJ3km6O1FdsNdOrB6Xuvom20ymx3eDAEf1xwFo6
|
||||
PJLITQVK6cz/iC7VCN68cBd/NE/8mTT7caWRxhFjZ7/7vcuu0DpwJG9wShCnEcqs
|
||||
IfKQGssztC9sH4usYfcQHSba+wAeRLVBbLqN7SmG7EFhdRCf5Kxw/nfXa3NEWIEg
|
||||
+OEmsBHaerMMJ/sQ8++LTbL//xFtJCyVj21qlybAmzavjEj21c3JHvMX+qpX3Afp
|
||||
nHsT/7suUhYiuZWpZa+ornEBXfJKTj+9Mn9apjwGQMEulJ+b+y8DcjgIBpEjZAyt
|
||||
h0mFr0cLm43OY/ujZY+W755PivJJTBUaQVL0XQEM5KkDWfxUzCrfipGIQla+h5Al
|
||||
JQti13UY/Nd3PGoBao35B/7AiWHhxtFx4TSNDA08pLuhHVqimcgtdRMkmgDdAws2
|
||||
EnNGz0Bv/Q5OY7La1Uo/9uIIvIyOXZ0O069NyrhnV9RUSfC/ACvAI0q07wABPQWo
|
||||
YzFxBs9RL/Anm2q+QVWVq1Rn1HyvUjRPLDNWgVMcDQQ/nanSMRLvLbGw5fzOaY2f
|
||||
opOeCRAdvV7EutpVeSA8AQDvn67nBs1ci9OlaqMHjRYObQkQUJOIdjqXlgMEHjBX
|
||||
4QEAom3cNIGGbP8AupzSa+8PeRgvYD6VW6mJfbqjQz8q1A4=
|
||||
=jG40
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
BIN
in/marc.beninca.pgp
Normal file
|
@ -1,8 +0,0 @@
|
|||
BEGIN:VCARD
|
||||
VERSION:4.0
|
||||
N:Beninca;Marc
|
||||
FN:Marc Beninca
|
||||
TEL:+33607478434
|
||||
EMAIL:cv@marc.beninca.link
|
||||
URL:marc.beninca.link
|
||||
END:VCARD
|
BIN
in/pdf/cv.en.pdf
Normal file
BIN
in/pdf/cv.fr.pdf
Normal file
|
@ -1,37 +0,0 @@
|
|||
const buttons = ["item", "link", "swap"];
|
||||
|
||||
for (let button of buttons) {
|
||||
document.getElementById(button).addEventListener("click", () => {
|
||||
document.body.classList.toggle(button);
|
||||
});
|
||||
}
|
||||
|
||||
let theme
|
||||
|
||||
function theme_get() {
|
||||
theme = localStorage.getItem("theme");
|
||||
if (! theme) {
|
||||
if (window.matchMedia("(prefers-color-scheme: dark)").matches) {
|
||||
theme = "dark";
|
||||
} else {
|
||||
theme = "light";
|
||||
}
|
||||
}
|
||||
theme_set()
|
||||
}
|
||||
|
||||
function theme_set() {
|
||||
document.documentElement.setAttribute("data-theme", theme);
|
||||
localStorage.setItem("theme", theme);
|
||||
}
|
||||
|
||||
function theme_swap() {
|
||||
theme = theme === "light" ? "dark" : "light";
|
||||
theme_set();
|
||||
}
|
||||
|
||||
document.getElementById("theme").addEventListener("click", () => {
|
||||
theme_swap();
|
||||
});
|
||||
|
||||
theme_get()
|
|
@ -1,5 +0,0 @@
|
|||
* {
|
||||
border-color: lightgray;
|
||||
border-style: dashed;
|
||||
border-width: 1px;
|
||||
}
|
|
@ -1,265 +0,0 @@
|
|||
/* variables */
|
||||
|
||||
:root {
|
||||
--alpha: rgba(0, 0, 0, 0);
|
||||
/* border */
|
||||
--border-off: var(--border-width) none var(--alpha);
|
||||
--border-on: var(--border-width) solid var(--border-color);
|
||||
--border-width: .1rem;
|
||||
/* margin */
|
||||
--margin: .4rem;
|
||||
/* theme */
|
||||
color-scheme: light dark;
|
||||
/* theme / gradients */
|
||||
--anchor-gradient: linear-gradient(to top, var(--alpha), var(--anchor-background), var(--alpha));
|
||||
--banner-gradient: linear-gradient(to top, var(--alpha), var(--banner-background));
|
||||
--body-gradient: linear-gradient(to top, var(--alpha), var(--body-background));
|
||||
--header-gradient: linear-gradient(to top, var(--alpha), var(--header-background));
|
||||
--item-even-gradient: linear-gradient(to top, var(--alpha), var(--item-even));
|
||||
--item-odd-gradient: linear-gradient(to top, var(--alpha), var(--item-odd));
|
||||
--org-gradient: linear-gradient(to top, var(--alpha), var(--org-background));
|
||||
/* theme / light */
|
||||
--anchor-background: #fcc;
|
||||
--anchor-text: #f00;
|
||||
--banner-background: #ccf;
|
||||
--body-background: #fff;
|
||||
--body-text: #000;
|
||||
--border-color: #888;
|
||||
--button-background: #bbb;
|
||||
--header-background: #ccc;
|
||||
--item-even: #ddd;
|
||||
--item-odd: #eee;
|
||||
--org-background: #afa;
|
||||
--qrcode-background: ;
|
||||
--ruler-border: #888;
|
||||
}
|
||||
@media screen {
|
||||
[data-theme="dark"] {
|
||||
/* theme / dark */
|
||||
--anchor-background: #622;
|
||||
--anchor-text: #f88;
|
||||
--banner-background: #558;
|
||||
--body-background: #000;
|
||||
--body-text: #aaa;
|
||||
--border-color: #888;
|
||||
--button-background: #444;
|
||||
--header-background: #444;
|
||||
--item-even: #222;
|
||||
--item-odd: #111;
|
||||
--org-background: #030;
|
||||
--qrcode-background: #aaa;
|
||||
--ruler-border: #444;
|
||||
}
|
||||
}
|
||||
|
||||
/* main */
|
||||
|
||||
#item, #link, #swap, #theme {
|
||||
background-color: var(--button-background);
|
||||
}
|
||||
#swap::after { content: "◂"; }
|
||||
body.swap #swap::after { content: "▸"; }
|
||||
#vcard {
|
||||
background-color: var(--qrcode-background);
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-display: swap;
|
||||
font-family: "fa";
|
||||
src: url("font/fa.woff2");
|
||||
}
|
||||
|
||||
html {
|
||||
font-family: "DejaVu Sans", sans-serif;
|
||||
text-align: start;
|
||||
}
|
||||
|
||||
body {
|
||||
background-color: var(--body-background);
|
||||
color: var(--body-text);
|
||||
margin-inline: auto;
|
||||
max-inline-size: 108ch;
|
||||
padding-inline: .25rem;
|
||||
}
|
||||
|
||||
article, h2, h3, table {
|
||||
margin-block-start: var(--margin);
|
||||
}
|
||||
|
||||
h2, h3, header {
|
||||
border-bottom: var(--border-off);
|
||||
border-left: var(--border-on);
|
||||
border-right: var(--border-on);
|
||||
border-top: var(--border-on);
|
||||
}
|
||||
|
||||
.link a:not(:has(img)),
|
||||
.link button.link {
|
||||
background: var(--anchor-gradient);
|
||||
}
|
||||
a:not(:has(img)) {
|
||||
color: inherit;
|
||||
padding: 0 .2em;
|
||||
text-decoration: none;
|
||||
text-decoration-skip-ink: auto;
|
||||
text-underline-offset: .2em;
|
||||
}
|
||||
a:hover {
|
||||
color: var(--anchor-text);
|
||||
}
|
||||
|
||||
body.item button.item {
|
||||
background: var(--item-odd-gradient);
|
||||
}
|
||||
|
||||
article.org, header {
|
||||
border-radius: .25em;
|
||||
padding-block: .25em;
|
||||
}
|
||||
header {
|
||||
padding-inline: .5em;
|
||||
background: var(--header-gradient);
|
||||
}
|
||||
header.org {
|
||||
background: var(--org-gradient);
|
||||
}
|
||||
|
||||
article header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
div.org {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
section.banner {
|
||||
align-items: center;
|
||||
display: flex;
|
||||
justify-content: space-evenly;
|
||||
}
|
||||
.banner {
|
||||
margin-block-start: .5em;
|
||||
}
|
||||
|
||||
button {
|
||||
block-size: 2em;
|
||||
border-radius: .25em;
|
||||
color: var(--body-text);
|
||||
margin-block: 0 auto;
|
||||
margin-inline: .25em;
|
||||
padding-inline: .5em;
|
||||
}
|
||||
|
||||
h1, h2, h3 {
|
||||
border-radius: .25em;
|
||||
font-weight: bold;
|
||||
}
|
||||
h1 {
|
||||
font-size: 1.15rem;
|
||||
}
|
||||
h2 {
|
||||
background: var(--banner-gradient);
|
||||
font-size: 1.10rem;
|
||||
padding-block: .25em;
|
||||
text-align: center;
|
||||
}
|
||||
h3 {
|
||||
background: var(--header-gradient);
|
||||
font-size: 1.05rem;
|
||||
padding: .125em .25em;
|
||||
}
|
||||
|
||||
hr {
|
||||
border: .1em dashed;
|
||||
border-color: var(--ruler-border);
|
||||
margin-block: var(--margin);
|
||||
}
|
||||
|
||||
img.big {
|
||||
block-size: 5em;
|
||||
}
|
||||
img.inline {
|
||||
block-size: 1.5em;
|
||||
vertical-align: middle;
|
||||
}
|
||||
a.logo {
|
||||
block-size: 2em;
|
||||
margin-block: 0 auto;
|
||||
}
|
||||
img.logo {
|
||||
block-size: 100%;
|
||||
margin-inline: auto;
|
||||
}
|
||||
img.org {
|
||||
block-size: 2em;
|
||||
margin-inline-end: .5em;
|
||||
}
|
||||
|
||||
body.item li:nth-of-type(even) {
|
||||
background: var(--item-even-gradient);
|
||||
}
|
||||
body.item li:nth-of-type(odd) {
|
||||
background: var(--item-odd-gradient);
|
||||
}
|
||||
|
||||
strong, th {
|
||||
text-shadow: .05em .05em .05em;
|
||||
}
|
||||
|
||||
.banner table {
|
||||
margin-block-start: 0;
|
||||
margin-inline: 0;
|
||||
}
|
||||
table {
|
||||
border-collapse: separate;
|
||||
border-spacing: .5em .125em;
|
||||
margin-inline: auto;
|
||||
}
|
||||
table h3 {
|
||||
text-align: center;
|
||||
}
|
||||
th.logo, td.logo {
|
||||
block-size: 1.5em;
|
||||
}
|
||||
th {
|
||||
text-align: end;
|
||||
}
|
||||
|
||||
ul {
|
||||
list-style-type: disc;
|
||||
padding-inline-start: 1.25em;
|
||||
}
|
||||
|
||||
.columns {
|
||||
display: grid;
|
||||
gap: 1em;
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
.level {
|
||||
text-align: center;
|
||||
}
|
||||
.title, .duration.org {
|
||||
font-weight: bold;
|
||||
}
|
||||
.sub, .period {
|
||||
font-size: .75em;
|
||||
}
|
||||
.time {
|
||||
text-align: end;
|
||||
}
|
||||
|
||||
@media (width > 66ch), print {
|
||||
.columns { grid-template-columns: 1fr 2fr; }
|
||||
body.swap .columns { grid-template-columns: 2fr 1fr; }
|
||||
body.swap aside { order: 2; }
|
||||
body.swap main { order: 1; }
|
||||
}
|
||||
|
||||
@media print {
|
||||
@page { size: A4; }
|
||||
html { font-size: 3mm; }
|
||||
button { display: none; }
|
||||
/* way too blurry as PDF output above .041em */
|
||||
strong, th { text-shadow: .05em .05em .041em; }
|
||||
}
|
|
@ -1,43 +0,0 @@
|
|||
*::after,
|
||||
*::before,
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
* {
|
||||
font: inherit;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
html {
|
||||
color-scheme: dark light;
|
||||
}
|
||||
|
||||
body {
|
||||
/* LATER */
|
||||
hanging-punctuation: first last;
|
||||
@media screen {
|
||||
min-block-size: 100svh;
|
||||
}
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
text-wrap: balance;
|
||||
}
|
||||
|
||||
figcaption,
|
||||
li,
|
||||
p {
|
||||
max-inline-size: 79ch;
|
||||
/* LATER */
|
||||
text-wrap: pretty;
|
||||
}
|
||||
|
||||
img,
|
||||
picture,
|
||||
svg,
|
||||
video {
|
||||
display: block;
|
||||
max-inline-size: 100%;
|
||||
}
|
71
link.gv
Normal file
|
@ -0,0 +1,71 @@
|
|||
digraph {
|
||||
|
||||
graph [
|
||||
rankdir="LR"
|
||||
]
|
||||
node [
|
||||
#shape="record"
|
||||
]
|
||||
|
||||
subgraph cluster_git {
|
||||
"bitbucket" [label="Bit\nBucket",href="https://bitbucket.org/marc_beninca"]
|
||||
"github" [label="Git\nHub",href="https://github.com/marc-beninca"]
|
||||
"gitlab" [label="Git\nLab",href="https://gitlab.com/marc.beninca"]
|
||||
}
|
||||
|
||||
"facebook" [label="Face\nBook",href="https://facebook.com/marc.beninca.page"]
|
||||
"hackernews" [label="Hacker\nNews",href="https://news.ycombinator.com/user?id=marc_beninca"]
|
||||
"instagram" [label="Insta\nGram",href="https://instagram.com/marc.beninca"]
|
||||
"linuxfr" [label="Linux\nFR",href="https://linuxfr.org/users/marc-beninca"]
|
||||
"lobsters" [label="Lobsters",href="https://lobste.rs/u/marc_beninca"]
|
||||
"mastodon" [label="Mastodon",href="https://social.tchncs.de/@marc_beninca"]
|
||||
"omglol" [label="OMG\nLOL",href="https://omg.lol/marc-beninca"]
|
||||
"openstreetmap" [label="Open\nStreet\nMap",href="https://openstreetmap.org/user/Marc Beninca"]
|
||||
"pleroma" [label="Pleroma",href="https://poa.st/@marc_beninca"]
|
||||
"reddit" [label="Reddit",href="https://reddit.com/user/marc_beninca"]
|
||||
"twitch" [label="Twitch",href="https://twitch.tv/marc_beninca"]
|
||||
"twitter" [label="Twitter",href="https://twitter.com/marc_beninca"]
|
||||
"youtube" [label="You\nTube",href="https://youtube.com/channel/UC4uk_6OKRke2soVah-Tf2Lw"]
|
||||
|
||||
"keybase" [label="Key\nBase",href="https://keybase.io/marc_beninca"]
|
||||
"liberapay" [label="Libera\nPay",href="https://liberapay.com/marc.beninca"]
|
||||
"patreon" [label="Patreon",href="https://patreon.com/marc_beninca"]
|
||||
"utip" [label="U\ntip",href="https://utip.io/marc_beninca"]
|
||||
|
||||
|
||||
"instagram" -> "facebook"
|
||||
|
||||
"keybase" -> {
|
||||
"github"
|
||||
"hackernews"
|
||||
"lobsters"
|
||||
"omglol"
|
||||
"reddit"
|
||||
"twitter"
|
||||
}
|
||||
"liberapay" -> {
|
||||
"bitbucket"
|
||||
"github"
|
||||
"gitlab"
|
||||
"linuxfr"
|
||||
"mastodon"
|
||||
"openstreetmap"
|
||||
"pleroma"
|
||||
"twitch"
|
||||
"twitter"
|
||||
}
|
||||
"patreon" -> {
|
||||
"facebook"
|
||||
"instagram"
|
||||
"twitter"
|
||||
"youtube"
|
||||
}
|
||||
"utip" -> {
|
||||
"facebook"
|
||||
"instagram"
|
||||
"twitch"
|
||||
"twitter"
|
||||
"youtube"
|
||||
}
|
||||
|
||||
}
|
61
pubnix.py
Normal file
|
@ -0,0 +1,61 @@
|
|||
import os
|
||||
import subprocess
|
||||
|
||||
PORT = 22
|
||||
USER = 'mspe'
|
||||
ROOT = 'public_html'
|
||||
PROTOCOL = 'https'
|
||||
DIR = False
|
||||
|
||||
|
||||
class PubNix:
|
||||
|
||||
def __init__(self, dn,
|
||||
ssh=None, port=PORT, user=USER,
|
||||
root=ROOT, dir=DIR, web=None, sub=None):
|
||||
self.dn = dn
|
||||
self.ssh = f'{ssh}.{self.dn}' if ssh else self.dn
|
||||
self.port = port
|
||||
self.user = user
|
||||
self.root = root
|
||||
self.web = f'{web}.{self.dn}' if web else self.dn
|
||||
if sub:
|
||||
self.fqdn = f'{self.user}.{self.web}'
|
||||
self.context = None
|
||||
else:
|
||||
self.fqdn = self.web
|
||||
self.context = f'~{self.user}'
|
||||
self.path = os.path.join(self.root, self.fqdn) if dir else self.root
|
||||
self.target = f'{self.user}@{self.ssh}:{self.path}'
|
||||
self.url = [f'{PROTOCOL}:', str(), self.fqdn]
|
||||
if self.context:
|
||||
self.url.append(self.context)
|
||||
self.url = '/'.join(self.url)
|
||||
|
||||
def capturun(self, *args):
|
||||
return self.run(*args, capture_output=True)
|
||||
|
||||
def run(self, *args, **kwargs):
|
||||
return subprocess.run(['ssh',
|
||||
'-o', 'LogLevel Error',
|
||||
'-p', str(self.port),
|
||||
f'{self.user}@{self.ssh}',
|
||||
'--',
|
||||
*args,
|
||||
], **kwargs)
|
||||
|
||||
def disk_free(self):
|
||||
process = self.capturun('df', '-h', os.curdir)
|
||||
return process.stdout.decode('UTF-8').strip()
|
||||
|
||||
def os(self):
|
||||
ps = self.capturun('cat', '/etc/os-release')
|
||||
if ps.returncode == 0:
|
||||
for line in ps.stdout.decode('UTF-8').strip().split(os.linesep):
|
||||
if 'PRETTY_NAME' in line:
|
||||
return line.split('=')[1].split('"')[1]
|
||||
else:
|
||||
return self.capturun('uname', '-sr').stdout.decode('UTF-8').strip()
|
||||
|
||||
def __str__(self):
|
||||
return os.linesep.join([self.target, self.url])
|
32
readme.md
|
@ -1,23 +1,13 @@
|
|||
# CV
|
||||
# Marc Beninca
|
||||
|
||||
## Tasks
|
||||
## ToDo
|
||||
|
||||
* french link for
|
||||
* ARINC 424
|
||||
* ESP
|
||||
* Galera
|
||||
* KeyCloak
|
||||
* LVM
|
||||
* MSys2
|
||||
* Mirage
|
||||
* Nexus
|
||||
* PDFtk
|
||||
* uWSGI
|
||||
* lsgm
|
||||
* radicle
|
||||
* tangled
|
||||
* spcd
|
||||
* radicle
|
||||
* tangled
|
||||
* lists items highlighting
|
||||
* vertical middle
|
||||
## Nope
|
||||
|
||||
### Email
|
||||
|
||||
* biolink.me
|
||||
|
||||
### GAFAM
|
||||
|
||||
* about.me
|
||||
|
|
79
sync.py
Executable file
|
@ -0,0 +1,79 @@
|
|||
#! /usr/bin/env python3
|
||||
|
||||
import os
|
||||
import subprocess
|
||||
|
||||
import pubnix
|
||||
|
||||
ARGS = [
|
||||
{'dn':'blinkenshell.org',
|
||||
'ssh': 'ssh', 'port': 2222, 'web': 'u', 'sub': True},
|
||||
{'dn':'ctrl-c.club', 'sub': False},
|
||||
{'dn':'dimension.sh', 'sub': True},
|
||||
{'dn':'envs.net', 'sub': True},
|
||||
{'dn':'freeshell.de', 'sub': False},
|
||||
# {'dn':'hextilde.xyz', 'sub': True},
|
||||
{'dn':'insomnia247.nl', 'dir': True, 'sub': True},
|
||||
{'dn':'p.projectsegfau.lt', 'sub': True},
|
||||
# {'dn':'pubnix.pink', 'web': 'sites', 'sub': False},
|
||||
{'dn':'rawtext.club', 'sub': False},
|
||||
{'dn':'rw.rs', 'sub': False},
|
||||
{'dn':'thunix.net', 'sub': False},
|
||||
{'dn':'tilde.32bit.cafe', 'root': 'www', 'sub': False},
|
||||
{'dn':'tilde.cafe', 'sub': True},
|
||||
{'dn':'tilde.club', 'sub': False},
|
||||
{'dn':'tilde.fun', 'root': 'html', 'sub': False},
|
||||
{'dn':'tilde.green', 'sub': False},
|
||||
{'dn':'tilde.guru', 'sub': False},
|
||||
{'dn':'tilde.institute', 'sub': True},
|
||||
{'dn':'tilde.pink', 'sub': False},
|
||||
{'dn':'tilde.team', 'sub': True},
|
||||
{'dn':'tilde.town', 'sub': False},
|
||||
# {'dn':'trash.town', 'sub': False},
|
||||
# permissions
|
||||
# {'dn':'sdf.org', 'root': 'html', 'sub': True},
|
||||
# old
|
||||
{'dn':'fr.tild3.org', 'sub': True},
|
||||
{'dn':'remotes.club', 'port': 9022, 'root': 'web', 'sub': True},
|
||||
{'dn':'squiggle.city', 'sub': False},
|
||||
# down
|
||||
# {'dn':'aussies.space', 'sub': False},
|
||||
# {'dn':'heathens.club', 'root': 'www', 'sub': False},
|
||||
# {'dn':'vern.cc', 'sub': True},
|
||||
]
|
||||
PUBNIXES = [pubnix.PubNix(**args) for args in ARGS]
|
||||
|
||||
|
||||
def sync(root, pubnix, exclude=None):
|
||||
args = [
|
||||
'rsync',
|
||||
'--archive',
|
||||
'--checksum',
|
||||
'--delete-before',
|
||||
'--rsh', f"ssh -o 'LogLevel Error' -p {pubnix.port}",
|
||||
'--partial',
|
||||
'--progress',
|
||||
'--verbose',
|
||||
os.path.join(root, str()),
|
||||
]
|
||||
for item in exclude:
|
||||
args.extend(['--exclude', os.path.join(str(), item)])
|
||||
args.append(os.path.join(pubnix.target, str()))
|
||||
subprocess.call(args, stdout=subprocess.DEVNULL)
|
||||
|
||||
|
||||
def main():
|
||||
root = os.path.dirname(os.path.realpath(__file__))
|
||||
root = os.path.join(root, 'out', 'web')
|
||||
dns_length = max([len(pubnix.dn) for pubnix in PUBNIXES])
|
||||
for pubnix in PUBNIXES:
|
||||
print()
|
||||
print(pubnix)
|
||||
# print(f'{pubnix.dn.rjust(dns_length)} → ', end=str(), flush=True)
|
||||
sync(root, pubnix, exclude=['__pycache__', 'pgp.asc'])
|
||||
# print(pubnix.disk_free())
|
||||
# print(pubnix.os())
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
40
test.css
Normal file
|
@ -0,0 +1,40 @@
|
|||
.tabs {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
.tabs > input {
|
||||
display: none;
|
||||
}
|
||||
.tabs > input:checked + label + div {
|
||||
display: block;
|
||||
}
|
||||
.tabs > label {
|
||||
order: 1;
|
||||
}
|
||||
.tabs > div {
|
||||
display: none;
|
||||
flex-basis: 100%;
|
||||
order: 2;
|
||||
}
|
||||
|
||||
.tabs {
|
||||
border: 1px solid;
|
||||
}
|
||||
.tabs > input:checked + label {
|
||||
background-color: gray;
|
||||
}
|
||||
.tabs > label {
|
||||
padding: 10px;
|
||||
}
|
||||
.tabs > div {
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
body {
|
||||
background-color: white;
|
||||
color: black;
|
||||
}
|
||||
body.dark {
|
||||
background-color: black;
|
||||
color: white;
|
||||
}
|
59
test.html
Normal file
|
@ -0,0 +1,59 @@
|
|||
<!DOCTYPE html><html><head>
|
||||
<!----------------------------------------------------------------------------->
|
||||
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="initial-scale=1,width=device-width" />
|
||||
<link rel="stylesheet" href="test.css" />
|
||||
<script src="test.js"></script>
|
||||
|
||||
<!----------------------------------------------------------------------------->
|
||||
</head>
|
||||
<body onload="main()"><header>
|
||||
<!----------------------------------------------------------------------------->
|
||||
|
||||
<h1>Tabs</h1>
|
||||
<input type="checkbox" id="theme" onclick="swap()">Dark</input>
|
||||
<ul>
|
||||
<li><a href="test.html">test.html</a></li>
|
||||
<li><a href="test.html?tab=2/3">test.html?tab=2/3</a></li>
|
||||
</ul>
|
||||
|
||||
<!----------------------------------------------------------------------------->
|
||||
</header><main>
|
||||
<!----------------------------------------------------------------------------->
|
||||
|
||||
<div class="tabs">
|
||||
<input type="radio" id="tab/1" name="tab" onclick="update(id)">
|
||||
<label for="tab/1">Tab: 1</label>
|
||||
<div>
|
||||
<div class="tabs">
|
||||
<input type="radio" id="tab/1/1" name="tab/1" onclick="update(id)">
|
||||
<label for="tab/1/1">Tab: 1 / 1</label>
|
||||
<div>Tab: One / One</div>
|
||||
<input type="radio" id="tab/1/2" name="tab/1" onclick="update(id)">
|
||||
<label for="tab/1/2">Tab: 1 / 2</label>
|
||||
<div>Tab: One / Two</div>
|
||||
<input type="radio" id="tab/1/3" name="tab/1" onclick="update(id)">
|
||||
<label for="tab/1/3">Tab: 1 / 3</label>
|
||||
<div>Tab: One / Three</div>
|
||||
</div>
|
||||
</div>
|
||||
<input type="radio" id="tab/2" name="tab" onclick="update(id)">
|
||||
<label for="tab/2">Tab: 2</label>
|
||||
<div>
|
||||
<div class="tabs">
|
||||
<input type="radio" id="tab/2/1" name="tab/2" onclick="update(id)">
|
||||
<label for="tab/2/1">Tab: 2 / 1</label>
|
||||
<div>Tab: Two / One</div>
|
||||
<input type="radio" id="tab/2/2" name="tab/2" onclick="update(id)">
|
||||
<label for="tab/2/2">Tab: 2 / 2</label>
|
||||
<div>Tab: Two / Two</div>
|
||||
<input type="radio" id="tab/2/3" name="tab/2" onclick="update(id)">
|
||||
<label for="tab/2/3">Tab: 2 / 3</label>
|
||||
<div>Tab: Two / Three</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!----------------------------------------------------------------------------->
|
||||
</main></body></html>
|
29
test.js
Normal file
|
@ -0,0 +1,29 @@
|
|||
function check(tab) {
|
||||
const tabs = tab.split('/')
|
||||
let path = 'tab'
|
||||
for (tab of tabs) {
|
||||
path = `${path}/${tab}`
|
||||
document.getElementById(path).checked = true
|
||||
}
|
||||
}
|
||||
function push(tab) {
|
||||
window.history.pushState(null, null, `?tab=${tab}`)
|
||||
}
|
||||
function update(id) {
|
||||
const tab = id.split('/').slice(1).join('/')
|
||||
push(tab)
|
||||
}
|
||||
function main() {
|
||||
let tab = (new URL(document.location)).searchParams.get('tab')
|
||||
if (tab) {
|
||||
check(tab)
|
||||
} else {
|
||||
tab = '1/1'
|
||||
check(tab)
|
||||
push(tab)
|
||||
}
|
||||
}
|
||||
|
||||
function swap() {
|
||||
document.body.classList.toggle('dark')
|
||||
}
|