diff --git a/base_app/templates/CV.html b/base_app/templates/CV.html new file mode 100644 index 0000000..0b24c73 --- /dev/null +++ b/base_app/templates/CV.html @@ -0,0 +1,167 @@ +{% extends "layout.html" %} +{% load static %} + +{% block content %} +
+

Marcel Plch

+

+

Work Experience

+

Comprimato Systems Ltd.

+ +

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.

+

Red Hat Czech s.r.o.

+ +

Internship

+

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).

+

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.

+

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.

+

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.

+

Employment

+

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.

+

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.

+

Comprimato Systems Ltd.

+ +

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.

+

Tramex Rail s.r.o.

+ +

I was primarily tasked with developing user web interface (Django) to +already exisitng solutions and embedded firmware for new hardware.

+

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.

+
+
+

Education

+ +

Unfinished attempts

+ +

Conference Attendance

+ +
+
+

Skills

+

Programming

+

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.

+

Languages I know:

+ +

Project maintenance

+

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.

+

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.

+

Operating Systems

+

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.

+

Computer Networks

+

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.

+

Public Speaking

+

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.

+
+
+

Interests

+ +

Contact

+ + + +
+{% endblock %} diff --git a/base_app/templates/ukraine.html b/base_app/templates/ukraine.html new file mode 100644 index 0000000..401f965 --- /dev/null +++ b/base_app/templates/ukraine.html @@ -0,0 +1,77 @@ +{% extends "layout.html" %} +{% load static %} + +{% block headerExtension %} + +{% endblock %} + +{% block content %} +
+ +

Glory to Ukraine! + +

+ +

Glory to heroes!

+ +

Say no to propaganda

+

+ This website is inspired by vug.pl (Careful, + this will immediately launch a DoS attack against russian servers.) +

+

+ 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. +

+

+ Thank you for your help. +

+ +

What can I do?

+

+ Below, you can see a list of domains and a start button. If you click + the start button, you launch a + DDoS attack (Wikipedia) + against russian servers and disinformation websites + directly connected to, or exclusively sourcing, russian propaganda. +

+

+ If you believe some website is missing or shouldn't be here, please + contact me using the information in the footer. +

+ + + +

Status: off

+

Max requests (more is better, pull down if browser is unusable):

+
+ +
+

50

+

Un/selecting a domain requres restart.

+ {% for domain in domains %} +
+
+ +
+
+ {{ domain }} +
+
+ requests: 0 +
+
+ errors: 0 +
+
+ {% endfor %} + +
+ + +{% endblock %} + diff --git a/base_app/views.py b/base_app/views.py index e05dcbb..cecb0d5 100644 --- a/base_app/views.py +++ b/base_app/views.py @@ -3,7 +3,17 @@ from django.shortcuts import render from django.shortcuts import render, redirect from django.views.generic import TemplateView, FormView +import json + # 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. class IndexView(TemplateView): @@ -11,3 +21,20 @@ class IndexView(TemplateView): def get(self, request, *args, **kwargs): 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}) + + diff --git a/data/domains.json b/data/domains.json index ab71d9c..416a57e 100644 --- a/data/domains.json +++ b/data/domains.json @@ -1,5 +1,6 @@ [ "https://aeronet.news/", + "https://www.spd.cz/", "https://lenta.ru/", "https://ria.ru/", "https://ria.ru/lenta/", diff --git a/plchweb/urls.py b/plchweb/urls.py index 2a7f448..34f9a48 100644 --- a/plchweb/urls.py +++ b/plchweb/urls.py @@ -15,8 +15,12 @@ Including another URLconf """ from django.contrib import admin from django.urls import path -from base_app.views import IndexView +from base_app.views import IndexView, LoremView, CVView, UkraineView urlpatterns = [ + path('admin/', admin.site.urls), path('', IndexView.as_view()), + path('lorem-ipsum/', LoremView.as_view()), + path('curriculum-vitae/', CVView.as_view()), + path('ukraine/', UkraineView.as_view()), ]