|
{{template "base/head" .}}
|
|
<style>
|
|
p,ul,li,h1,h2,h3 {
|
|
text-align:left;
|
|
}
|
|
|
|
|
|
ul.tag-list {
|
|
list-style: none; /* Remove default bullet points */
|
|
padding: 0; /* Remove padding */
|
|
display: flex; /* Align items in a row */
|
|
flex-wrap: wrap; /* Allow wrapping to the next line */
|
|
gap: 10px; /* Add space between tags */
|
|
}
|
|
|
|
ul.tag-list li {
|
|
background-color: #ff6f61; /* Tag color */
|
|
color: white; /* Text color */
|
|
padding: 5px 10px; /* Padding inside tags */
|
|
border-radius: 20px; /* Rounded edges for tags */
|
|
font-size: 14px; /* Font size */
|
|
font-weight: bold; /* Bold text for emphasis */
|
|
display: inline-block; /* Ensure tag-like appearance */
|
|
cursor: default; /* Pointer to indicate non-clickable */
|
|
box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.1); /* Add shadow for depth */
|
|
transition: transform 0.2s ease; /* Smooth scaling effect */
|
|
}
|
|
|
|
|
|
</style>
|
|
|
|
<canvas id="matrix"></canvas>
|
|
{{template "base/matrix_script" .}}
|
|
<script>
|
|
document.addEventListener("DOMContentLoaded", function () {
|
|
setTimeout(matrix,100);
|
|
|
|
});
|
|
</script>
|
|
<div role="main" aria-label="{{if .IsSigned}}{{ctx.Locale.Tr "dashboard"}}{{else}}{{ctx.Locale.Tr "home"}}{{end}}" class="page-content home">
|
|
<div class="ui stackable middle very relaxed page grid">
|
|
<div class="eight wide center column">
|
|
<div class="center">
|
|
<div class="hero">
|
|
<h1 class="ui icon header title">
|
|
Molodetz
|
|
</h1>
|
|
<h2>Home of Retoor</h2>
|
|
<h3>Full Stack Software Developer</h3>
|
|
<p>On this site you can find my last work, research and code snippets. It's all for free under MIT license unless stated otherwise in repository source folder.</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
{{if .HeatmapData}}
|
|
<div class="eight wide center column">
|
|
|
|
<div id="user-heatmap" class="is-loading"
|
|
data-heatmap-data="{{JsonUtils.EncodeToString .HeatmapData}}"
|
|
data-locale-total-contributions="{{ctx.Locale.Tr "heatmap.number_of_contributions_in_the_last_12_months" (ctx.Locale.PrettyNumber .HeatmapTotalContributions)}}"
|
|
data-locale-no-contributions="{{ctx.Locale.Tr "heatmap.no_contributions"}}"
|
|
data-locale-more="{{ctx.Locale.Tr "heatmap.more"}}"
|
|
data-locale-less="{{ctx.Locale.Tr "heatmap.less"}}"
|
|
></div>
|
|
<div class="divider"></div>
|
|
|
|
</div>
|
|
{{end}}
|
|
<div class="eight wide column">
|
|
<h3>Web assistant with speech recognition!</h3>
|
|
Since my site is pure educational and i'm not a software distributor you won't find source of full functional applications here. I have those for personal use. Only (some advanced) components to make great stuff. I have a new example made with my ragent library. It also shows the the power of speech api.<br /><br />You can find the <a href="https://retoorded.molodetz.nl">application here</a>.Fun fact: the backend is a basic native python http.HTTPServer. You're still doing async? That's so 2024!<br /><br />If you need a more stable solution than the speech api, consider my rspeech package. It's bettery quality. The speech api only works correct on webkit based browsers like chrome, chromium, that Microsoft thing etc. With my rspeech library you can do server side recognition and sentisizing. The rspeech module is optimized to work async and is not blocking.<br /><br />I hope I made something which is useful for you.
|
|
</div>
|
|
|
|
<div class="eight wide column">
|
|
<h3>Free GPT for everyone</h3>
|
|
<p>
|
|
I made a command line utility that lets you interactively communicate with OpenAI LLM. You can make your own bot with it by descriping the personality / features of it in `./rcontext.txt`.
|
|
<br /><br />
|
|
You can send local files trough the app by referring to it in the prompt. For exxample: "r check this source code for bugs: ./my-source.c". The `./` before is required. This also works with urls.
|
|
<br /><br />
|
|
The app has markdown output support so it gives the GPT responses in a nice colurful way. Also syntaxhighling for code is supported.
|
|
<br /><br />
|
|
Get the app <a href="https://molodetz.nl/retoor/r">here</a>.
|
|
<p>
|
|
|
|
</div>
|
|
<div class="eight wide column">
|
|
<h3>C Development</h3>
|
|
<p>With C, I mostly reinvent the wheel and rewrite existing applications from scratch to learn what is under the hood. I am able to write nginx-grade web servers with WebDAV support. I also have experience in writing Redis-quality key-value stores. Projects made:</p>
|
|
<ul>
|
|
<li>HTTP(S) Server with support for reverse proxy and load balancing</li>
|
|
<li>WebDAV Server with support for HTTP ranges (Streaming of media) and user authentication</li>
|
|
<li>PubSub Server</li>
|
|
<li>RESTful SQLite3 Server</li>
|
|
<li>JSON protocol: Only JSON communication for PubSub and database queries, including Python bindings</li>
|
|
<li>Extremely fast JSON library, three times faster than Python's original, to be used with JSON protocol. Has the ability to find JSON data within data for parsing streams</li>
|
|
</ul>
|
|
</div>
|
|
<div class="eight wide column">
|
|
<h3>REGARDING THE USE OF AI</h3>
|
|
<p>NOTE: ONLY FAIR USE OF AI REGARDING ALL SOURCE CODE. EVERYTHING ON THIS SITE IS HAND CRAFTED. I'M A PROFESSIONAL DEV FOR MORE THAN 15 YEARS.</p><p>AI is only used for <u>general summaries</u> at the beginning of <u>source files</u>, implementing the MIT license, mentioning my email, and formatting of the source. I automated this process for consistancy. <u>Some project summaries on this site is generated based on content of my projects.</u> Building nice sites is not my favourite hobby. <u>I prefer to build (web) applications having business logic.</u></p>
|
|
|
|
|
|
</div>
|
|
|
|
<div class="eight wide column">
|
|
<h3>Python Development</h3>
|
|
<p>Python is my go-to language for software development. Technologies I prefer to work with, but not limited to, are:</p>
|
|
<ul class="tag-list">
|
|
<li>Django</li>
|
|
<li>aiohttp</li>
|
|
<li>FastAPI</li>
|
|
<li>dataset</li>
|
|
</ul>
|
|
|
|
<img src="https://retoor.molodetz.nl/retoor/molodetz.nl/raw/branch/main/data/gitea/public/64480230-18ce-4770-8b7c-1e2688e051c6.jpg" style="max-width: 50%;" />
|
|
</div>
|
|
|
|
<div class="eight wide center column">
|
|
<h3>Databases</h3>
|
|
<p>I have experience with:</p>
|
|
<ul class="tag-list">
|
|
<li>MS SQL</li>
|
|
<li>PostgreSQL</li>
|
|
<li>MySQL</li>
|
|
<li>Redis</li>
|
|
<li>SQLite</li>
|
|
</ul>
|
|
</div>
|
|
|
|
<div class="eight wide center column">
|
|
<h3>Other Languages</h3>
|
|
<p>I have professional experience with:</p>
|
|
<ul class="tag-list">
|
|
<li>C#</li>
|
|
<li>VB .NET</li>
|
|
<li>VB 6</li>
|
|
<li>Java</li>
|
|
<li>PHP</li>
|
|
<li>Python</li>
|
|
<li>Delphi (.NET)</li>
|
|
<li>ActionScript</li>
|
|
<li>Node.js</li>
|
|
<li>JavaScript (ECMAScript)</li>
|
|
<li>HTML</li>
|
|
<li>CSS</li>
|
|
</ul>
|
|
</div>
|
|
<div class="eight wide column">
|
|
<h3>Using AI in your applications won't make you poor!</h3>
|
|
I did a whole research about the pricing of AI because it's nowhere to be found. Yes, I do see the price per token. But what is the worth of a token? What is the worth of a million tokens? So i can do x for the price of y? Yes, if you have some patience. How much does that patience cost me? This is AFAIK the first article with a decent explaination of AI pricing that puts things in perspective: <a href="/retoor/gists/src/branch/main/costs-of-modern-most-expensive-quality-ai-by-openai.md">My article</a>. Documentation is not my strongest skill. The amount of time this costed me is no joke. But the article has quite some research behind it done by myself.
|
|
</div>
|
|
|
|
|
|
<div class="eight wide column">
|
|
<div class="hero">
|
|
<h3>My own automated review system!</h3>
|
|
Gives a grade of just 6.5 for <a href="/retoor/drstats/src/branch/main/review.md">this project</a>. The irony, it should see his own source when it comes to mediocre code. In general, I do agree with many of the points my review system mentions. It's fun to try to keep it happy. It's a challenge. My review system makes a detailed page per source file but I don't publish that. Instead, a summary is generated based on those independent reviews. Those together define the grade the project gets. Higher than 8 is not achieved yet.
|
|
</div>
|
|
</div>
|
|
<div class="eight wide column">
|
|
<div class="hero">
|
|
<h3>My own refactor system!</h3>
|
|
Only destroyed one time my source code. The refactor applies best practices on source code of many source types. Besides that, it adds my name, a description of the file and the MIT license I use for all my projects. Every file looks quite maintained this way. I have to automate it to apply it on all my projects. It does make backups of original files and everything is in a repository ofcourse. No source code loss here!
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<div class="eight wide column">
|
|
<div class="hero">
|
|
<h3>Project: app</h3>
|
|
<p>A foundational framework for applications, featuring a web server with an integrated database. The web server supports sessions, basic authentication, and database endpoints by default. Built on <code>aiohttp</code>, it can also be utilized for non-HTTP applications.</p>
|
|
<p><strong>Technologies:</strong> Python, aiohttp, SQL databases</p>
|
|
</div>
|
|
</div>
|
|
<div class="eight wide column">
|
|
<div class="hero">
|
|
<h3>Project: ragnar</h3>
|
|
<p>An anti-spam bot designed for a developer community. This version serves as a proof of concept, demonstrating effectiveness despite the preliminary quality of the source code.</p>
|
|
<p><strong>Technologies:</strong> Python, bot framework</p>
|
|
</div>
|
|
</div>
|
|
<div class="eight wide column">
|
|
<div class="center">
|
|
<div class="hero">
|
|
<h3>Project: zamenyat</h3>
|
|
<p>An HTTP bridge that allows configurable content replacement. It can be used to create different versions of a website, such as an anonymous version alongside the original.</p>
|
|
<p><strong>Technologies:</strong> Python, HTTP proxy libraries</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="eight wide column">
|
|
<div class="center">
|
|
<div class="hero">
|
|
<h3>Project: boeh</h3>
|
|
<p>A Matrix bot that responds with "boeh" when a user named Joe speaks. This project is marked as a template.</p>
|
|
<p><strong>Technologies:</strong> Python, Matrix API</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="eight wide center column">
|
|
<div class="center">
|
|
<div class="hero">
|
|
<h3>Project: gists</h3>
|
|
<p>A collection of information shared with others, likely containing various code snippets, notes, or documentation.</p>
|
|
<p><strong>Technologies:</strong> Markdown, various programming languages</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="eight wide center column">
|
|
<div class="center">
|
|
<div class="hero">
|
|
<h3>Project: drstats</h3>
|
|
<p>A project for generating detailed statistics in both text and graphical formats. It also creates a dataset suitable for use in Large Language Model embeddings, such as with <code>chromadb</code>.</p>
|
|
<p><strong>Technologies:</strong> Python, Matplotlib, Chromadb</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="eight wide center column">
|
|
<div class="center">
|
|
<div class="hero">
|
|
<h3>Project: molodetz.nl</h3>
|
|
<p>A customized Gitea configuration that transforms the site into a portfolio when not logged in, and into a development platform with a build server upon login.</p>
|
|
<p><strong>Technologies:</strong> Gitea, HTML/CSS, CI/CD tools</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="eight wide center column">
|
|
<div class="center">
|
|
<div class="hero">
|
|
<h3>Project: drapi.net</h3>
|
|
<p>A .NET implementation of the DevRant API, utilizing both web scraping and API integration to provide comprehensive functionality.</p>
|
|
<p><strong>Technologies:</strong> C#, .NET, Web scraping libraries</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="eight wide center column">
|
|
<div class="center">
|
|
<div class="hero">
|
|
<h3>Project: shadowssh</h3>
|
|
<p>A method to host SSH on a port already in use by another service, such as HTTPS, enabling SSH access without requiring additional open ports.</p>
|
|
<p><strong>Technologies:</strong> C, OpenSSH, Port multiplexing</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="eight wide center column">
|
|
<div class="center">
|
|
<div class="hero">
|
|
<h3>Project: tikker</h3>
|
|
<p>An application that monitors key presses, potentially useful for tracking typing activity or developing keyboard-related utilities.</p>
|
|
<p><strong>Technologies:</strong> Python, Keylogger libraries</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="eight wide center column">
|
|
<div class="center">
|
|
<div class="hero">
|
|
<h3>Project: form</h3>
|
|
<p>A RESTful form generator and validator with Cross-Site Request Forgery (CSRF) support, facilitating secure form handling in web applications.</p>
|
|
<p><strong>Technologies:</strong> Python, Flask, CSRF libraries</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="eight wide center column">
|
|
<div class="center">
|
|
<div class="hero">
|
|
<h3>Project: sorm</h3>
|
|
<p>A SQL library written in C, designed for fun and testing purposes, with support for Python integration. It aims to provide efficient database interactions for C applications.</p>
|
|
<p><strong>Technologies:</strong> C, SQL, Python bindings</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="eight wide center column">
|
|
<div class="center">
|
|
<div class="hero">
|
|
<h3>Project: rupload</h3>
|
|
<p>An upload page for sharing files on the web, allowing users to upload and distribute files easily.</p>
|
|
<p><strong>Technologies:</strong> Python, Flask, File storage systems</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="eight wide center column">
|
|
<div class="center">
|
|
<div class="hero">
|
|
<h3>Project: httpsbench</h3>
|
|
<p>An application for benchmarking HTTPS servers, useful for assessing server performance under different conditions.</p>
|
|
<p><strong>Technologies:</strong> Python, Requests library, Performance testing tools</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="eight wide center column">
|
|
<div class="center">
|
|
<div class="hero">
|
|
<h3>Project: random-name</h3>
|
|
<p>A microservice that returns unique random names, potentially useful for generating placeholder names in applications or during testing.</p>
|
|
<p><strong>Technologies:</strong> Python, Random module, REST API</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="eight wide center column">
|
|
<div class="center">
|
|
<div class="hero">
|
|
<h3>Project: dot</h3>
|
|
<p>An application that frequently prints a dot; the description suggests it's a simple or experimental project.</p>
|
|
<p><strong>Technologies:</strong> Python</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="eight wide center column">
|
|
<div class="center">
|
|
<div class="hero">
|
|
<h3>Project: zhurnal</h3>
|
|
<p>An application for running and monitoring processes through the web, providing a live stream of stdout and stderr. It can be used for tailing logs or as a service runner similar to Supervisor.</p>
|
|
<p><strong>Technologies:</strong> Python, WebSockets, Supervisor</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="eight wide center column">
|
|
<div class="center">
|
|
<div class="hero">
|
|
<h3>Project: yura</h3>
|
|
<p>An asynchronous client for the Katya AI server, facilitating communication with the AI service.</p>
|
|
<p><strong>Technologies:</strong> Python, Asyncio, Katya AI API</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="eight wide center column">
|
|
<div class="center">
|
|
<div class="hero">
|
|
<h3>Project: llmbox</h3>
|
|
<p>A frontend for Large Language Models (LLMs) using the Yura client and Katya LLM Server, providing an interface for interacting with AI models.</p>
|
|
<p><strong>Technologies:</strong> Python, Yura client, Katya AI API</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="eight wide center column">
|
|
<div class="center">
|
|
<div class="hero">
|
|
<h3>Project: rchat</h3>
|
|
<p>An anonymous chat application that allows users to communicate without revealing their identities.</p>
|
|
<p><strong>Technologies:</strong> HTML, JavaScript, WebSockets</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="eight wide center column">
|
|
<div class="center">
|
|
<div class="hero">
|
|
<h3>Project: mololog</h3>
|
|
<p>An HTTP log server and multi-threaded client for Python applications, facilitating efficient logging over HTTP.</p>
|
|
<p><strong>Technologies:</strong> Python, HTTP libraries, Multi-threading</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="eight wide center column">
|
|
<div class="center">
|
|
<div class="hero">
|
|
<h3>Project: httpsssh</h3>
|
|
<p>A tunnel for SSH over HTTPS to keep your SSH server hidden in public, enhancing security by disguising SSH traffic as HTTPS.</p>
|
|
<p><strong>Technologies:</strong> Network protocols, SSH, HTTPS</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="eight wide center column">
|
|
<div class="center">
|
|
<div class="hero">
|
|
<h3>Project: isspam</h3>
|
|
<p>A spam evaluator with support for multiple files and standard input, designed to detect and filter spam content.</p>
|
|
<p><strong>Technologies:</strong> Rust, Text analysis, Spam detection algorithms</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="eight wide center column">
|
|
<div class="center">
|
|
<div class="hero">
|
|
<h3>Project: rvimtutor</h3>
|
|
<p>An application for training your Vim skills with over 60 shortcuts, helping users improve their text editing efficiency.</p>
|
|
<p><strong>Technologies:</strong> Python, Vim scripting</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="eight wide center column">
|
|
<div class="center">
|
|
<div class="hero">
|
|
<h3>Project: devranta</h3>
|
|
<p>An asynchronous Python client for the devRant developer community, enabling interaction with the devRant API.</p>
|
|
<p><strong>Technologies:</strong> Python, Asyncio, devRant API</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="eight wide center column">
|
|
<div class="center">
|
|
<div class="hero">
|
|
<h3>Project: deretoor</h3>
|
|
<p>A DevRant bot that corrects English of a given user by updating recent posts, utilizing the rbabel service for corrections.</p>
|
|
<p><strong>Technologies:</strong> Python, devRant API, Natural Language Processing</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="eight wide center column">
|
|
<div class="center">
|
|
<div class="hero">
|
|
<h3>Project: rbabel</h3>
|
|
<p>An English text corrector that standardizes text by capitalizing 'I', converting digits to words, and adding necessary punctuation.</p>
|
|
<p><strong>Technologies:</strong> Python, Text processing, Natural Language Processing</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="eight wide center column">
|
|
<div class="center">
|
|
<div class="hero">
|
|
<h3>Project: l33t</h3>
|
|
<p>A service that allows users to certify themselves as a 1337 hacker, system administrator, or programmer by completing various tasks in their preferred way.</p>
|
|
<p><strong>Technologies:</strong> C, System programming, Task automation</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="eight wide center column">
|
|
<div class="center">
|
|
<div class="hero">
|
|
<h3>Project: pdf2text</h3>
|
|
<p>A fast PDF to text converter designed for machine learning applications, capable of processing entire directories of PDFs simultaneously.</p>
|
|
<p><strong>Technologies:</strong> Python, PDF processing libraries, Machine Learning</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
<script src="https://alpaca.molodetz.nl/static/alpaca.prod.js?v=2563008421"></script>
|
|
{{template "base/footer" .}}
|