New version site.
This commit is contained in:
parent
83b5464f47
commit
87a1ca1a7b
@ -1,3 +1,5 @@
|
|||||||
|
|
||||||
|
|
||||||
{{if false}}
|
{{if false}}
|
||||||
{{/* to make html structure "likely" complete to prevent IDE warnings */}}
|
{{/* to make html structure "likely" complete to prevent IDE warnings */}}
|
||||||
<html>
|
<html>
|
||||||
@ -14,6 +16,10 @@
|
|||||||
{{template "base/footer_content" .}}
|
{{template "base/footer_content" .}}
|
||||||
|
|
||||||
<script src="{{AssetUrlPrefix}}/js/index.js?v={{AssetVersion}}" onerror="alert('Failed to load asset files from ' + this.src + '. Please make sure the asset files can be accessed.')"></script>
|
<script src="{{AssetUrlPrefix}}/js/index.js?v={{AssetVersion}}" onerror="alert('Failed to load asset files from ' + this.src + '. Please make sure the asset files can be accessed.')"></script>
|
||||||
|
<script>
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
{{template "custom/footer" .}}
|
{{template "custom/footer" .}}
|
||||||
</body>
|
</body>
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<footer class="page-footer" role="group" aria-label="{{ctx.Locale.Tr "aria.footer"}}">
|
<footer class="page-footer" role="group" aria-label="{{ctx.Locale.Tr "aria.footer"}}">
|
||||||
<div class="left-links" role="contentinfo" aria-label="{{ctx.Locale.Tr "aria.footer.software"}}">
|
<div class="left-links" role="contentinfo" aria-label="{{ctx.Locale.Tr "aria.footer.software"}}">
|
||||||
{{if ShowFooterPoweredBy}}
|
{{if and .IsSigned ShowFooterPoweredBy}}
|
||||||
{{end}}
|
|
||||||
{{if (or .ShowFooterVersion .PageIsAdmin)}}
|
{{if (or .ShowFooterVersion .PageIsAdmin)}}
|
||||||
{{ctx.Locale.Tr "version"}}:
|
{{ctx.Locale.Tr "version"}}:
|
||||||
{{if .IsAdmin}}
|
{{if .IsAdmin}}
|
||||||
@ -10,15 +10,18 @@
|
|||||||
{{AppVer}}
|
{{AppVer}}
|
||||||
{{end}}
|
{{end}}
|
||||||
{{end}}
|
{{end}}
|
||||||
|
|
||||||
|
{{end}}
|
||||||
{{if and .TemplateLoadTimes ShowFooterTemplateLoadTime}}
|
{{if and .TemplateLoadTimes ShowFooterTemplateLoadTime}}
|
||||||
{{ctx.Locale.Tr "page"}}: <strong>{{LoadTimes .PageStartTime}}</strong>
|
Response time: <strong>{{LoadTimes .PageStartTime}}</strong>
|
||||||
{{end}}
|
{{end}}
|
||||||
</div>
|
</div>
|
||||||
<div class="right-links" role="group" aria-label="{{ctx.Locale.Tr "aria.footer.links"}}">
|
<div class="right-links" role="group" aria-label="{{ctx.Locale.Tr "aria.footer.links"}}">
|
||||||
|
|
||||||
|
{{ if false }}
|
||||||
<div class="ui dropdown upward language">
|
<div class="ui dropdown upward language">
|
||||||
|
|
||||||
<!--
|
|
||||||
<span class="flex-text-inline">{{svg "octicon-globe" 14}} {{ctx.Locale.LangName}}</span>
|
<span class="flex-text-inline">{{svg "octicon-globe" 14}} {{ctx.Locale.LangName}}</span>
|
||||||
<div class="menu language-menu">
|
<div class="menu language-menu">
|
||||||
{{range .AllLangs}}
|
{{range .AllLangs}}
|
||||||
@ -26,9 +29,10 @@
|
|||||||
{{end}}
|
{{end}}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
-->
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{{ end }}
|
||||||
<a href="https://mail.molodetz.nl/SOGo/">Mail</a>
|
<a href="https://mail.molodetz.nl/SOGo/">Mail</a>
|
||||||
<a href="{{AssetUrlPrefix}}/licenses.txt">{{ctx.Locale.Tr "licenses"}}</a>
|
<a href="{{AssetUrlPrefix}}/licenses.txt">{{ctx.Locale.Tr "licenses"}}</a>
|
||||||
{{if .EnableSwagger}}<a href="{{AppSubUrl}}/api/swagger">API</a>{{end}}
|
{{if .EnableSwagger}}<a href="{{AppSubUrl}}/api/swagger">API</a>{{end}}
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
<html lang="{{ctx.Locale.Lang}}" data-theme="{{UserThemeName .SignedUser}}">
|
<html lang="{{ctx.Locale.Lang}}" data-theme="{{UserThemeName .SignedUser}}">
|
||||||
<head>
|
<head>
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<title>{{if .Title}}{{.Title}} - {{end}}{{if .Repository.Name}}{{.Repository.Name}} - {{end}}{{AppName}}</title>
|
<title>{{if and false .Title}}{{.Title}} - {{end}}{{if .Repository.Name}}{{.Repository.Name}} - {{end}}{{ if false }}{{AppName}}{{ end }}Molodetz Institute</title>
|
||||||
{{if .ManifestData}}<link rel="manifest" href="data:{{.ManifestData}}">{{end}}
|
{{if .ManifestData}}<link rel="manifest" href="data:{{.ManifestData}}">{{end}}
|
||||||
<meta name="author" content="{{if .Repository}}{{.Owner.Name}}{{else}}{{MetaAuthor}}{{end}}">
|
<meta name="author" content="{{if .Repository}}{{.Owner.Name}}{{else}}{{MetaAuthor}}{{end}}">
|
||||||
<meta name="description" content="{{if .Repository}}{{.Repository.Name}}{{if .Repository.Description}} - {{.Repository.Description}}{{end}}{{else}}{{MetaDescription}}{{end}}">
|
<meta name="description" content="{{if .Repository}}{{.Repository.Name}}{{if .Repository.Description}} - {{.Repository.Description}}{{end}}{{else}}{{MetaDescription}}{{end}}">
|
||||||
@ -20,6 +20,7 @@
|
|||||||
<link rel="alternate icon" href="{{AssetUrlPrefix}}/img/favicon.png" type="image/png">
|
<link rel="alternate icon" href="{{AssetUrlPrefix}}/img/favicon.png" type="image/png">
|
||||||
|
|
||||||
{{template "base/head_script" .}}
|
{{template "base/head_script" .}}
|
||||||
|
{{template "base/terms_script" .}}
|
||||||
<noscript>
|
<noscript>
|
||||||
<style>
|
<style>
|
||||||
.dropdown:hover > .menu { display: block; }
|
.dropdown:hover > .menu { display: block; }
|
||||||
@ -27,13 +28,25 @@
|
|||||||
</style>
|
</style>
|
||||||
</noscript>
|
</noscript>
|
||||||
{{template "base/head_opengraph" .}}
|
{{template "base/head_opengraph" .}}
|
||||||
|
|
||||||
{{template "base/head_style" .}}
|
{{template "base/head_style" .}}
|
||||||
|
|
||||||
|
{{template "base/head_style2" .}}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
{{template "custom/header" .}}
|
{{template "custom/header" .}}
|
||||||
</head>
|
</head>
|
||||||
<body hx-headers='{"x-csrf-token": "{{.CsrfToken}}"}' hx-swap="outerHTML" hx-ext="morph" hx-push-url="false">
|
<body hx-headers='{"x-csrf-token": "{{.CsrfToken}}"}' hx-swap="outerHTML" hx-ext="morph" hx-push-url="false">
|
||||||
|
|
||||||
{{template "custom/body_outer_pre" .}}
|
{{template "custom/body_outer_pre" .}}
|
||||||
|
|
||||||
<div class="full height">
|
|
||||||
|
|
||||||
|
<div class="full height" style="padding:0;">
|
||||||
|
|
||||||
|
|
||||||
<noscript>{{ctx.Locale.Tr "enable_javascript"}}</noscript>
|
<noscript>{{ctx.Locale.Tr "enable_javascript"}}</noscript>
|
||||||
|
|
||||||
{{template "custom/body_inner_pre" .}}
|
{{template "custom/body_inner_pre" .}}
|
||||||
|
@ -4,14 +4,46 @@
|
|||||||
text-align:left;
|
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>
|
</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 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="ui stackable middle very relaxed page grid">
|
||||||
<div class="eight wide center column">
|
<div class="eight wide center column">
|
||||||
<div class="center">
|
<div class="center">
|
||||||
<div class="hero">
|
<div class="hero">
|
||||||
<h1 class="ui icon header title">
|
<h1 class="ui icon header title">
|
||||||
{{AppName}}
|
Molodetz
|
||||||
</h1>
|
</h1>
|
||||||
<h2>Home of Retoor</h2>
|
<h2>Home of Retoor</h2>
|
||||||
<h3>Full Stack Software Developer</h3>
|
<h3>Full Stack Software Developer</h3>
|
||||||
@ -20,76 +52,361 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{{if .HeatmapData}}
|
||||||
<div class="eight wide center column">
|
<div class="eight wide center column">
|
||||||
<h2 class="hero ui icon header">
|
|
||||||
C Development
|
|
||||||
</h2>
|
|
||||||
<p class="large">
|
|
||||||
With C I mostly reinvent to wheel and rewrite existing applications from scratch to learn what is under the hood. I am able to to write nginx-grade webservers with webdav support. I also have experience in writing Redis quality key-value stores. Projects made:
|
|
||||||
<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>Restfull Sqlite3 Server</li>
|
|
||||||
I write servers primarely in C. WebDav, HTTP, PubSub
|
|
||||||
<li>JSON protocol: Only JSON communication for PubSub and database queries. Including Python bindings</li>
|
|
||||||
<li>Extremely fast json library, three times aster than Python's original to be used with JSON protocol.Has abaliity to find JSON data within data for parsing streams</lI>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<div class="eight wide center column">
|
|
||||||
<h2 class="hero ui icon header">
|
|
||||||
Python development
|
|
||||||
</h2>
|
|
||||||
<p class="large">
|
|
||||||
Python is my goto language for software development.
|
|
||||||
Technologies I prefer to work with but not limited to are:
|
|
||||||
|
|
||||||
<ul>
|
<div id="user-heatmap" class="is-loading"
|
||||||
<li>Django</li>
|
data-heatmap-data="{{JsonUtils.EncodeToString .HeatmapData}}"
|
||||||
<li>aiohttp</li>
|
data-locale-total-contributions="{{ctx.Locale.Tr "heatmap.number_of_contributions_in_the_last_12_months" (ctx.Locale.PrettyNumber .HeatmapTotalContributions)}}"
|
||||||
<li>FastAPI</li>
|
data-locale-no-contributions="{{ctx.Locale.Tr "heatmap.no_contributions"}}"
|
||||||
<li>dataset</li>
|
data-locale-more="{{ctx.Locale.Tr "heatmap.more"}}"
|
||||||
</ul>
|
data-locale-less="{{ctx.Locale.Tr "heatmap.less"}}"
|
||||||
</p>
|
></div>
|
||||||
</div>
|
<div class="divider"></div>
|
||||||
<div class="eight wide center column">
|
|
||||||
<h2 class="hero ui icon header">
|
|
||||||
Databases
|
|
||||||
</h2>
|
|
||||||
<p class="large">
|
|
||||||
I have experience with:
|
|
||||||
<ul>
|
|
||||||
|
|
||||||
<li>MS SQL</li>
|
|
||||||
<li>Postgres SQL</li>
|
|
||||||
<li>MySQL</li>
|
|
||||||
<li>Redis</li>
|
|
||||||
<li>SQLite</li>
|
|
||||||
</ul>
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="eight wide center column">
|
{{end}}
|
||||||
<h2 class="hero ui icon header">
|
|
||||||
Other languages
|
|
||||||
</h2>
|
|
||||||
<p class="large">
|
|
||||||
I have professional experience with:
|
|
||||||
<ul>
|
|
||||||
|
|
||||||
<li>C#</li>
|
|
||||||
<li>VB .NET</li>
|
|
||||||
<li>VB 6</li>
|
<div class="eight wide center column">
|
||||||
<li>Java</li>
|
<h3>C Development</h3>
|
||||||
<li>PHP</li>
|
<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>
|
||||||
<li>Python</li>
|
<ul>
|
||||||
<li>Delhpi (.NET)</li>
|
<li>HTTP(S) Server with support for reverse proxy and load balancing</li>
|
||||||
<li>Actionscript</li>
|
<li>WebDAV Server with support for HTTP ranges (Streaming of media) and user authentication</li>
|
||||||
<li>Node</li>
|
<li>PubSub Server</li>
|
||||||
<li>JavaScript (ECMAScript)</li>
|
<li>RESTful SQLite3 Server</li>
|
||||||
<li>HTML</li>
|
<li>JSON protocol: Only JSON communication for PubSub and database queries, including Python bindings</li>
|
||||||
<li>CSS</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>
|
</ul>
|
||||||
</p>
|
</div>
|
||||||
|
|
||||||
|
<div class="eight wide center 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>
|
||||||
|
</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 center column">
|
||||||
|
<div class="center">
|
||||||
|
<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>
|
||||||
|
</div>
|
||||||
|
<div class="eight wide center column">
|
||||||
|
<div class="center">
|
||||||
|
<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>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="eight wide center column">
|
||||||
|
<div class="center">
|
||||||
|
<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>
|
||||||
|
<div class="eight wide column">
|
||||||
|
<div class="center">
|
||||||
|
<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>
|
||||||
|
<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>
|
||||||
|
|
||||||
|
@ -1,7 +1,9 @@
|
|||||||
{{template "base/head" .}}
|
{{template "base/head" .}}
|
||||||
|
|
||||||
<div role="main" aria-label="{{.Title}}" class="page-content repository file list {{if .IsBlame}}blame{{end}}">
|
<div role="main" aria-label="{{.Title}}" class="page-content repository file list {{if .IsBlame}}blame{{end}}">
|
||||||
|
|
||||||
{{template "repo/header" .}}
|
{{template "repo/header" .}}
|
||||||
|
|
||||||
<div class="ui container {{if .IsBlame}}fluid padded{{end}}">
|
<div class="ui container {{if .IsBlame}}fluid padded{{end}}">
|
||||||
|
|
||||||
{{template "base/alert" .}}
|
{{template "base/alert" .}}
|
||||||
@ -68,7 +70,8 @@
|
|||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
{{$isHomepage := (eq $n 0)}}
|
{{$isHomepage := (eq $n 0)}}
|
||||||
<div class="repo-button-row" data-is-homepage="{{$isHomepage}}">
|
|
||||||
|
<div style="{{ if not .IsSigned }}display:none;{{ end }}" class="repo-button-row" data-is-homepage="{{$isHomepage}}">
|
||||||
<div class="repo-button-row-left">
|
<div class="repo-button-row-left">
|
||||||
{{template "repo/branch_dropdown" dict "root" . "ContainerClasses" "tw-mr-1"}}
|
{{template "repo/branch_dropdown" dict "root" . "ContainerClasses" "tw-mr-1"}}
|
||||||
{{if and .CanCompareOrPull .IsViewBranch (not .Repository.IsArchived)}}
|
{{if and .CanCompareOrPull .IsViewBranch (not .Repository.IsArchived)}}
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
</div>
|
</div>
|
||||||
{{end}}
|
{{end}}
|
||||||
|
|
||||||
{{if not .ReadmeInList}}
|
{{if and (not .ReadmeInList) (.IsSigned) }}
|
||||||
<div id="repo-file-commit-box" class="ui segment list-header tw-mb-4 tw-flex tw-justify-between">
|
<div id="repo-file-commit-box" class="ui segment list-header tw-mb-4 tw-flex tw-justify-between">
|
||||||
<div class="latest-commit">
|
<div class="latest-commit">
|
||||||
{{template "repo/latest_commit" .}}
|
{{template "repo/latest_commit" .}}
|
||||||
@ -40,14 +40,14 @@
|
|||||||
{{end}}
|
{{end}}
|
||||||
</div>
|
</div>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
<div class="file-header-right file-actions tw-flex tw-items-center tw-flex-wrap">
|
<div style="{{ if (not .IsSigned) }}display:none !important;{{end}}" class="file-header-right file-actions tw-flex tw-items-center tw-flex-wrap">
|
||||||
{{if .HasSourceRenderedToggle}}
|
{{if .HasSourceRenderedToggle}}
|
||||||
<div class="ui compact icon buttons">
|
<div class="ui compact icon buttons">
|
||||||
<a href="?display=source" class="ui mini basic button {{if .IsDisplayingSource}}active{{end}}" data-tooltip-content="{{ctx.Locale.Tr "repo.file_view_source"}}">{{svg "octicon-code" 15}}</a>
|
<a href="?display=source" class="ui mini basic button {{if .IsDisplayingSource}}active{{end}}" data-tooltip-content="{{ctx.Locale.Tr "repo.file_view_source"}}">{{svg "octicon-code" 15}}</a>
|
||||||
<a href="{{$.Link}}" class="ui mini basic button {{if .IsDisplayingRendered}}active{{end}}" data-tooltip-content="{{ctx.Locale.Tr "repo.file_view_rendered"}}">{{svg "octicon-file" 15}}</a>
|
<a href="{{$.Link}}" class="ui mini basic button {{if .IsDisplayingRendered}}active{{end}}" data-tooltip-content="{{ctx.Locale.Tr "repo.file_view_rendered"}}">{{svg "octicon-file" 15}}</a>
|
||||||
</div>
|
</div>
|
||||||
{{end}}
|
{{end}}
|
||||||
{{if and (not .ReadmeInList) (not .IsSigned )}}
|
{{if and (not .ReadmeInList) (.IsSigned )}}
|
||||||
<div class="ui buttons tw-mr-1">
|
<div class="ui buttons tw-mr-1">
|
||||||
<a class="ui mini basic button" href="{{$.RawFileLink}}">{{ctx.Locale.Tr "repo.file_raw"}}</a>
|
<a class="ui mini basic button" href="{{$.RawFileLink}}">{{ctx.Locale.Tr "repo.file_raw"}}</a>
|
||||||
{{if not .IsViewCommit}}
|
{{if not .IsViewCommit}}
|
||||||
|
@ -1,9 +1,12 @@
|
|||||||
{{if and (not .IsSigned) .ReadmeExist (or .IsMarkup .IsPlainText)}}
|
{{if and (not .IsSigned) .ReadmeExist (or .IsMarkup .IsPlainText)}}
|
||||||
{{template "repo/view_file" .}}
|
{{template "repo/view_file" .}}
|
||||||
{{end}}
|
{{end}}
|
||||||
<table id="repo-files-table" class="ui single line table tw-mt-0" {{if .HasFilesWithoutLatestCommit}}hx-indicator="tr.notready td.message span" hx-trigger="load" hx-swap="morph" hx-post="{{.LastCommitLoaderURL}}"{{end}}>
|
<table id="repo-files-table" class="{{ if .IsSigned}}ui {{end}}single line table tw-mt-0" {{if .HasFilesWithoutLatestCommit}}hx-indicator="tr.notready td.message span" hx-trigger="load" hx-swap="morph" hx-post="{{.LastCommitLoaderURL}}"{{end}}>
|
||||||
|
|
||||||
|
{{ if .IsSigned }}
|
||||||
<thead>
|
<thead>
|
||||||
<tr class="commit-list">
|
<tr class="commit-list">
|
||||||
|
|
||||||
<th class="tw-overflow-hidden" colspan="2">
|
<th class="tw-overflow-hidden" colspan="2">
|
||||||
<div class="tw-flex">
|
<div class="tw-flex">
|
||||||
<div class="latest-commit">
|
<div class="latest-commit">
|
||||||
@ -11,9 +14,11 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</th>
|
</th>
|
||||||
<th class="text grey right age">{{if .LatestCommit}}{{if .LatestCommit.Committer}}{{TimeSince .LatestCommit.Committer.When ctx.Locale}}{{end}}{{end}}</th>
|
|
||||||
|
<th style="min-width:100px;" class="text grey right age">{{if .LatestCommit}}{{if .LatestCommit.Committer}}{{TimeSince .LatestCommit.Committer.When ctx.Locale}}{{end}}{{end}}</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
|
{{ end }}
|
||||||
<tbody>
|
<tbody>
|
||||||
{{if .HasParentPath}}
|
{{if .HasParentPath}}
|
||||||
<tr class="has-parent">
|
<tr class="has-parent">
|
||||||
@ -56,17 +61,22 @@
|
|||||||
{{end}}
|
{{end}}
|
||||||
</span>
|
</span>
|
||||||
</td>
|
</td>
|
||||||
<td class="message nine wide">
|
|
||||||
|
<td class="message nine wide">
|
||||||
<span class="truncate">
|
<span class="truncate">
|
||||||
{{if $commit}}
|
|
||||||
|
{{ if $.IsSigned }}
|
||||||
|
{{if $commit}}
|
||||||
{{$commitLink := printf "%s/commit/%s" $.RepoLink (PathEscape $commit.ID.String)}}
|
{{$commitLink := printf "%s/commit/%s" $.RepoLink (PathEscape $commit.ID.String)}}
|
||||||
{{RenderCommitMessageLinkSubject $.Context $commit.Message $commitLink ($.Repository.ComposeMetas ctx)}}
|
{{RenderCommitMessageLinkSubject $.Context $commit.Message $commitLink ($.Repository.ComposeMetas ctx)}}
|
||||||
{{else}}
|
{{else}}
|
||||||
<div class="ui active tiny slow centered inline"></div>
|
<div class="ui active tiny slow centered inline"></div>
|
||||||
{{end}}
|
{{end}}
|
||||||
|
{{ end }}
|
||||||
</span>
|
</span>
|
||||||
</td>
|
</td>
|
||||||
<td class="text right age three wide">{{if $commit}}{{TimeSince $commit.Committer.When ctx.Locale}}{{end}}</td>
|
|
||||||
|
<td style="min-width:100px;" class="text right age three wide">{{if and $.IsSigned $commit}}{{TimeSince $commit.Committer.When ctx.Locale}}{{end}}</td>
|
||||||
</tr>
|
</tr>
|
||||||
{{end}}
|
{{end}}
|
||||||
</tbody>
|
</tbody>
|
||||||
|
Loading…
Reference in New Issue
Block a user