Restore some good stuff.
This commit is contained in:
parent
07ea4f1ca2
commit
31779c2a61
5 changed files with 277 additions and 1 deletions
167
base_app/templates/CV.html
Normal file
167
base_app/templates/CV.html
Normal file
|
@ -0,0 +1,167 @@
|
||||||
|
{% extends "layout.html" %}
|
||||||
|
{% load static %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<div class="page">
|
||||||
|
<h1 id="marcel-plch">Marcel Plch</h1>
|
||||||
|
<p><img src="{% static "base_app/img/me.jpg" %}" width="125" /></p>
|
||||||
|
<h2 id="work-experience">Work Experience</h2>
|
||||||
|
<h3 id="comprimato-systems-ltd.">Comprimato Systems Ltd.</h3>
|
||||||
|
<ul class="incremental">
|
||||||
|
<li>2017 Jul - 2017 Aug</li>
|
||||||
|
</ul>
|
||||||
|
<p>My first job during summer before I went to third grade of high
|
||||||
|
school. Here, I have learned most of my C++ skills. I was working on
|
||||||
|
multimedia codec live transcoder, where my most important role was to
|
||||||
|
wrap a C library x264 into a C++ project. Aside from this, I was given
|
||||||
|
small side-tasks like tweaking logger or fixing a small bug.</p>
|
||||||
|
<h3 id="red-hat-czech-s.r.o.">Red Hat Czech s.r.o.</h3>
|
||||||
|
<ul class="incremental">
|
||||||
|
<li>2017 Sep - 2020 Oct</li>
|
||||||
|
</ul>
|
||||||
|
<h4 id="internship">Internship</h4>
|
||||||
|
<p>Most of my experience overall comes from this employment. I started
|
||||||
|
here as an intern in the Python maintenance team, where I made
|
||||||
|
connections during previous year by working on open-source projects (PEP
|
||||||
|
547 and a semestral work in cooperation with Red Hat).</p>
|
||||||
|
<p>During my internship, I was working on patches for the cpython
|
||||||
|
interpreter. This included bugfixes and working on Python enhancement
|
||||||
|
proposals (later on as PEPs). Both PEPs I have worked on are linked
|
||||||
|
below.</p>
|
||||||
|
<p>First PEP I was working on is supposed to allow running C modules the
|
||||||
|
same way one can run a common .py file. This PEP had to be deferred
|
||||||
|
until the internal mechanics are prepared for this.</p>
|
||||||
|
<p>The second PEP is also about C modules, here the goal was to allow
|
||||||
|
the extension modules to implement classes the same way they work in
|
||||||
|
Python. Before this PEP, C-implemented Python classes had no access to
|
||||||
|
global module memory. This often caused hackish approach that usually
|
||||||
|
resulted in memory leaks.</p>
|
||||||
|
<h4 id="employment">Employment</h4>
|
||||||
|
<p>A year into my internship, I was hired as a RHEL/Fedora packager at
|
||||||
|
the same team. My responsibilities included RPM packaging, bugfixing,
|
||||||
|
software maintenance, rebuilding new versions and making sure nothing is
|
||||||
|
broken.</p>
|
||||||
|
<p>Bugfixing was probably the most common responsibility. Aside from
|
||||||
|
this, I was working on fixing CVEs (security vulnerabilities),
|
||||||
|
submitting updates to the distribution, tweaking software to be
|
||||||
|
FIPS-compliant and if there was enough time, I continued my work on my
|
||||||
|
PEPs.</p>
|
||||||
|
<h3 id="comprimato-systems-ltd.-1">Comprimato Systems Ltd.</h3>
|
||||||
|
<ul class="incremental">
|
||||||
|
<li>2021 Mar - 2021 May</li>
|
||||||
|
</ul>
|
||||||
|
<p>This company grew since the time I last worked here, I was hired as a
|
||||||
|
Developer in QA, my responsibility was to work on QA tools for the main
|
||||||
|
product of the company. The expectations from each side didn’t quite
|
||||||
|
meet, so it didn’t take long before this cooperation got terminated.</p>
|
||||||
|
<h3 id="tramex-rail-s.r.o.">Tramex Rail s.r.o.</h3>
|
||||||
|
<ul class="incremental">
|
||||||
|
<li>2022 Apr - 2022 Sep</li>
|
||||||
|
</ul>
|
||||||
|
<p>I was primarily tasked with developing user web interface (Django) to
|
||||||
|
already exisitng solutions and embedded firmware for new hardware.</p>
|
||||||
|
<p>The firmware consisted of Linux system + proprietary layers from
|
||||||
|
manufacturers, on top of which we could build our solutions to meet
|
||||||
|
customer’s (mostly České Dráhy) demands.</p>
|
||||||
|
</div>
|
||||||
|
<div class="page">
|
||||||
|
<h2 id="education">Education</h2>
|
||||||
|
<ul class="incremental">
|
||||||
|
<li>Střední škola informatiky, poštovnictví a finančnictví, Brno,
|
||||||
|
příspěvková organizace
|
||||||
|
<ul class="incremental">
|
||||||
|
<li>High school of informatics, postal and financial services, Brno</li>
|
||||||
|
<li>2015 - 2019</li>
|
||||||
|
</ul></li>
|
||||||
|
</ul>
|
||||||
|
<h3 id="unfinished-attempts">Unfinished attempts</h3>
|
||||||
|
<ul class="incremental">
|
||||||
|
<li>Fakulta informatiky Masarykovy univerzity
|
||||||
|
<ul class="incremental">
|
||||||
|
<li>Faculty of Informatics, Masaryk University</li>
|
||||||
|
<li>2021</li>
|
||||||
|
</ul></li>
|
||||||
|
<li>University of Highlands and Islands, Perth college, Scotland
|
||||||
|
<ul class="incremental">
|
||||||
|
<li>2019</li>
|
||||||
|
</ul></li>
|
||||||
|
</ul>
|
||||||
|
<h2 id="conference-attendance">Conference Attendance</h2>
|
||||||
|
<ul class="incremental">
|
||||||
|
<li>Linux Days 2016</li>
|
||||||
|
<li>PyCon CZ 2018</li>
|
||||||
|
<li>PyCon CZ 2019</li>
|
||||||
|
<li>EuroPython 2019</li>
|
||||||
|
<li>Flock (Fedora Linux distribution conference)</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="page">
|
||||||
|
<h2 id="skills">Skills</h2>
|
||||||
|
<h3 id="programming">Programming</h3>
|
||||||
|
<p>Designing algorithms and solutions to logical problems is a very
|
||||||
|
fundamental concept in solving any problem in (not just) software. It’s
|
||||||
|
programmer’s responsibility to design a sturdy and reliable code, as
|
||||||
|
even the most careful user may get compromised, if the development
|
||||||
|
process is underestimated.</p>
|
||||||
|
<p>Languages I know:</p>
|
||||||
|
<ul class="incremental">
|
||||||
|
<li>C (Advanced)</li>
|
||||||
|
<li>Python (Advanced)</li>
|
||||||
|
<li>C++ (Intermediate-advanced)</li>
|
||||||
|
<li>Java (Intermediate)</li>
|
||||||
|
<li>C# (Intermediate</li>
|
||||||
|
<li>Rust (Basic)</li>
|
||||||
|
<li>Go (Basic)</li>
|
||||||
|
</ul>
|
||||||
|
<h3 id="project-maintenance">Project maintenance</h3>
|
||||||
|
<p>Most of my work experience comes from Red Hat, which is a company
|
||||||
|
selling support for their enterprise solutions. Selling support means a
|
||||||
|
great effort being put into maintenance of the products.</p>
|
||||||
|
<p>I have worked at the Python maintenance team, which means I know the
|
||||||
|
internals of the cpython interpreter and I am able to quickly learn a
|
||||||
|
new library or Python project.</p>
|
||||||
|
<h3 id="operating-systems">Operating Systems</h3>
|
||||||
|
<p>As a huge enthusiast into open software, free operating systems are
|
||||||
|
of great importance to me. Considering knowledge about internals of how
|
||||||
|
computers work an important subject, I have learned many useful skills
|
||||||
|
like system administrations, setting up permissions securely, working
|
||||||
|
with sensitive data, setting a server up for a specific purpose etc.</p>
|
||||||
|
<h3 id="computer-networks">Computer Networks</h3>
|
||||||
|
<p>One computer may never solve a problem efficiently. Thus it is
|
||||||
|
crucial to know how to make them communicate. By working with git,
|
||||||
|
secure communication channels, webservers, multimedia codecs, etc., I
|
||||||
|
have learned much useful information from practice (opening up sockets,
|
||||||
|
securing them, selecting correct protocol…) on top of theoretical
|
||||||
|
knowledge being taught at schools like IPv4 and basics of IPv6, TCP/IP,
|
||||||
|
etc.</p>
|
||||||
|
<h3 id="public-speaking">Public Speaking</h3>
|
||||||
|
<p>One of my favorite semi-IT tasks is giving talks about topics I find
|
||||||
|
useful or interesting. I often gave talks at some conferences and local
|
||||||
|
Python meetups. I attended some Toastmasters sessions, so I could get
|
||||||
|
better at public speaking. Unfortunately, before I could utilize these
|
||||||
|
new skills, the COVID crisis terminated my public speaking for a
|
||||||
|
while.</p>
|
||||||
|
</div>
|
||||||
|
<div class="page">
|
||||||
|
<h2 id="interests">Interests</h2>
|
||||||
|
<ul class="incremental">
|
||||||
|
<li>Free software</li>
|
||||||
|
<li>Ethics in computing</li>
|
||||||
|
<li>Cybersecurity</li>
|
||||||
|
<li>IT in politics</li>
|
||||||
|
<li>Chess</li>
|
||||||
|
<li>Philosophy</li>
|
||||||
|
</ul>
|
||||||
|
<h2 id="contact">Contact</h2>
|
||||||
|
<ul class="incremental">
|
||||||
|
<li>E-mail: dormouse@plch.xyz / marcel.plch@protonmail.com</li>
|
||||||
|
<li>Website: https://plch.xyz (inactive)</li>
|
||||||
|
</ul>
|
||||||
|
<h2 id="links-to-see">Links to see</h2>
|
||||||
|
<ul class="incremental">
|
||||||
|
<li>Gitea: https://gitea.plch.xyz</li>
|
||||||
|
<li>PEP 547: https://www.python.org/dev/peps/pep-0547/</li>
|
||||||
|
<li>PEP 573: https://www.python.org/dev/peps/pep-0573/</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
77
base_app/templates/ukraine.html
Normal file
77
base_app/templates/ukraine.html
Normal file
|
@ -0,0 +1,77 @@
|
||||||
|
{% extends "layout.html" %}
|
||||||
|
{% load static %}
|
||||||
|
|
||||||
|
{% block headerExtension %}
|
||||||
|
<link rel="stylesheet" href="{% static "base_app/css/ukraine.css" %}">
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<div class="page">
|
||||||
|
|
||||||
|
<h1 style="display:inline"> Glory to Ukraine!
|
||||||
|
<img src="{% static "base_app/img/ukraine.png" %}" width="48">
|
||||||
|
</h1>
|
||||||
|
|
||||||
|
<h2> Glory to heroes! </h2>
|
||||||
|
|
||||||
|
<h3> Say no to propaganda </h3>
|
||||||
|
<p>
|
||||||
|
This website is inspired by <a
|
||||||
|
href="https://vug.pl/takeRussiaDown.html">vug.pl</a> (Careful,
|
||||||
|
this will immediately launch a DoS attack against russian servers.)
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Please bookmark that website as well, any page like this is at risk of
|
||||||
|
being taken down. If you wish to contact me about this effort, please do so
|
||||||
|
by encrypted means. I will send tutorials and help explain how to, if you do not
|
||||||
|
posses such skills.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Thank you for your help.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3>What can I do?</h3>
|
||||||
|
<p>
|
||||||
|
Below, you can see a list of domains and a start button. If you click
|
||||||
|
the start button, you launch a <a
|
||||||
|
href="https://en.wikipedia.org/wiki/Denial-of-service_attack">
|
||||||
|
DDoS attack</a> (Wikipedia)
|
||||||
|
against russian servers and disinformation websites
|
||||||
|
directly connected to, or exclusively sourcing, russian propaganda.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
If you believe some website is missing or shouldn't be here, please
|
||||||
|
contact me using the information in the footer.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<input type="button" value="Start" onclick="flood()">
|
||||||
|
<input type="button" value="Stop" onclick="stop=true">
|
||||||
|
<p id="status">Status: off</p>
|
||||||
|
<p>Max requests (more is better, pull down if browser is unusable):</p>
|
||||||
|
<div class="slidecontainer" onchange="req_update()">
|
||||||
|
<input type="range" min="1" max="5096" value="50" class="slider" id="requests">
|
||||||
|
</div>
|
||||||
|
<p id="amount">50</p>
|
||||||
|
<p>Un/selecting a domain requres restart.</p>
|
||||||
|
{% for domain in domains %}
|
||||||
|
<div class="domain-wrapper">
|
||||||
|
<div class="domain-segment-checkbox">
|
||||||
|
<input type="checkbox" checked="true">
|
||||||
|
</div>
|
||||||
|
<div class="domain-segment-domain">
|
||||||
|
{{ domain }}
|
||||||
|
</div>
|
||||||
|
<div class="domain-segment-req">
|
||||||
|
requests: 0
|
||||||
|
</div>
|
||||||
|
<div class="domain-segment-err">
|
||||||
|
errors: 0
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script src="{% static "base_app/js/fuck_putin.js" %}"></script>
|
||||||
|
{% endblock %}
|
||||||
|
|
|
@ -3,7 +3,17 @@ from django.shortcuts import render
|
||||||
from django.shortcuts import render, redirect
|
from django.shortcuts import render, redirect
|
||||||
from django.views.generic import TemplateView, FormView
|
from django.views.generic import TemplateView, FormView
|
||||||
|
|
||||||
|
import json
|
||||||
|
|
||||||
# Helper functions
|
# Helper functions
|
||||||
|
def get_domains():
|
||||||
|
domains = None
|
||||||
|
with open("data/domains.json", "r") as f:
|
||||||
|
data = f.read()
|
||||||
|
domains = json.loads(data)
|
||||||
|
|
||||||
|
return domains
|
||||||
|
|
||||||
|
|
||||||
# Create your views here.
|
# Create your views here.
|
||||||
class IndexView(TemplateView):
|
class IndexView(TemplateView):
|
||||||
|
@ -11,3 +21,20 @@ class IndexView(TemplateView):
|
||||||
def get(self, request, *args, **kwargs):
|
def get(self, request, *args, **kwargs):
|
||||||
return render(request, "index.html", {})
|
return render(request, "index.html", {})
|
||||||
|
|
||||||
|
class CVView(TemplateView):
|
||||||
|
|
||||||
|
def get(self, request, *args, **kwargs):
|
||||||
|
return render(request, "CV.html", {})
|
||||||
|
|
||||||
|
class LoremView(TemplateView):
|
||||||
|
|
||||||
|
def get(self, request, *args, **kwargs):
|
||||||
|
return render(request, "lorem.html", {})
|
||||||
|
|
||||||
|
class UkraineView(TemplateView):
|
||||||
|
|
||||||
|
def get(self, request, *args, **kwargs):
|
||||||
|
domains = get_domains()
|
||||||
|
return render(request, "ukraine.html", {"domains" : domains})
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
[
|
[
|
||||||
"https://aeronet.news/",
|
"https://aeronet.news/",
|
||||||
|
"https://www.spd.cz/",
|
||||||
"https://lenta.ru/",
|
"https://lenta.ru/",
|
||||||
"https://ria.ru/",
|
"https://ria.ru/",
|
||||||
"https://ria.ru/lenta/",
|
"https://ria.ru/lenta/",
|
||||||
|
|
|
@ -15,8 +15,12 @@ Including another URLconf
|
||||||
"""
|
"""
|
||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
from django.urls import path
|
from django.urls import path
|
||||||
from base_app.views import IndexView
|
from base_app.views import IndexView, LoremView, CVView, UkraineView
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
|
path('admin/', admin.site.urls),
|
||||||
path('', IndexView.as_view()),
|
path('', IndexView.as_view()),
|
||||||
|
path('lorem-ipsum/', LoremView.as_view()),
|
||||||
|
path('curriculum-vitae/', CVView.as_view()),
|
||||||
|
path('ukraine/', UkraineView.as_view()),
|
||||||
]
|
]
|
||||||
|
|
Loading…
Reference in a new issue