Public demo 5 updates

Diploma Supplement Automation Service

A service for validating Excel grade sheets, highlighting problematic data, and assembling XML files for diploma supplements.

  • Automated validation and highlighting of problematic cells in Excel.
  • XML generation in the target “CyberDiploma 3.5.1” format.
  • Polyglot architecture with separate API, data-processing, and XML-generation layers.
Prototype 3 updates

Otkrytyi Diplom — an open replacement for CyberDiploma

An open system for preparing and printing diplomas and their supplements, including at universities with old Windows 7 machines and Russian Linux distributions. A single Java 11 build runs both on an offline computer and on a university server.

  • Import of faculty grade statements through a staging area: semesters are summed, credits come from the curriculum, doubtful rows are flagged for the operator.
  • Curricula saved as PDF are read by the table's grid; the plan's title and totals fill the XML fields.
  • Printing in millimetres with printer calibration; the current service's rules are ported and checked against it byte for byte on the archive.
  • Curricula by admission year and edition: checksums, comparison with the nearest plan and «Create from» for plans that exist only as scans.
  • A graduation from grade statement to blank: matching to the curriculum, registration numbers, corrections laid over the files, printing from the typographer's FastReport templates and strict-control blank accounting with a registration book.
Reference / reading 0 updates

Angry Tests — testing principles by Yegor Bugayenko

A practical collection of automated testing principles: short tests, bug-focused coverage, strict assertions, and stronger engineering feedback loops.

  • Principles for fast and deep tests, flaky bug reproduction, and custom matchers.
  • Practical guidance on making tests shorter, stricter, and more useful.
  • References to tools and approaches such as jqwik, pitest, ArchUnit, and fuzzing.
Work in progress 4 updates

ICT — an ionospheric sounding data-processing platform

An end-to-end GNSS data-processing pipeline: from RINEX archives to total electron content, coherence bands, maps, and analytics. A set of containerised services with a web orchestrator and an API for data access.

  • An end-to-end data path: RINEX → TEC → coherence band → maps and statistics.
  • A web orchestrator for containerised converters with streaming logs and a run audit.
  • A DuckDB analytics backend over Parquet with JSON/CSV/XLSX export and plotting.
  • Jobs survive a hub restart; AbsTEC runs in Windows XP inside a KVM container; CI images deploy through Watchtower.
  • Ionospheric map animations render in the background in parallel processes — a week in a minute instead of almost five; a map of RINEX stations on OpenStreetMap.
Work in progress 5 updates

Tea Taste — a digital tea-tasting journal

A web app for structured tea tasting: it records brewing parameters and sensory impressions across infusions, turning a subjective evaluation into a reproducible record.

  • A multi-step tasting form with a localStorage draft.
  • An infusion model: aroma and taste are recorded in stages, each infusion has its own rating and timer.
  • An Express and MongoDB REST API with JWT authentication and a public tasting feed.
Open beta 5 updates

Volgatech.Kollektiv — a mobile staff cabinet for Volgatech

A client for the Volgatech (Volga State University of Technology) staff cabinet on Android, iOS and the web: class and exam schedules, a profile with teaching load, the foreign-groups memo and the hourly-load report as .docx files, and a built-in mail client. It works on top of the university's existing API without changing it.

  • A schedule with an offline cache: the saved copy shows at once and refreshes in the background, the next week is prefetched, and a week overview shows gaps and the number of classes.
  • The memo on foreign-student groups and the Form 28 appendix on hourly load are assembled from the schedule and shared as .docx files; class topics follow a plan that carries on from one report to the next.
  • JWT sign-in with automatic refresh: tokens live in the OS keystore and the cabinet password is never stored; an optional fingerprint or PIN app lock.
  • A built-in mail client for the university's Exchange (EWS, NTLMv2) in a separate, opt-in build; the mail password lives in the OS keystore and is removed on sign-out.
  • A browser version for iPhone and computers, in-app updates checked by SHA-256, lesson reminders, a widget and a Liquid Glass theme with contrast checked by tests.
Work in progress 1 update

conf-kit — a conference programme, jury and applications

A service for conferences and events: a chat bot builds the programme through an API, and a person accepts the finished draft. A builder for phone and desktop, a public programme with “now” and “next”, A4 and Word documents, a talk competition whose jury scores survive a lost connection, and talk applications with consent to personal-data processing.

  • The programme as a conf.program/v1 document with a schema: normalisation, times from the rules and checks with an exact path to each error.
  • An API, llms.txt, openapi.json and an MCP server for chat bots; a draft becomes a programme only after a person accepts the invitation.
  • A jury without accounts, by commission code; browsers from 2018 onwards and at most 80 KB of JavaScript for participants.
Educational project 4 updates

ML Playgrounds — interactive labs for a machine learning course

Thirteen Streamlit apps that run right in the browser: a gradient-descent trainer, six playgrounds for the Machine Learning Fundamentals course of a linguistics master's programme and six for the bachelor's course Foundations of Programming AI Systems in Python. A catalog sorts them by topic, and each reproduces its lab's numbers.

  • Each lab's numbers are reproduced and checked by tests on every CI run — down to the rounding rule.
  • Everything is computed in the browser: stlite runs Python through WebAssembly, and the site is served from static hosting with no server.
  • The gradient-descent trainer: three descent variants, a step-by-step animation and a 3D loss surface with the optimisation trajectory.
  • Explanations come in steps before the charts, and 71 terms are gathered into a shared glossary: on the playgrounds a definition pops up on hovering over an underlined word.

Similar projects

Work in progress 2 updates

ionozond — an oblique chirp-sounding console for the ionosphere

A suite for oblique chirp sounding of the ionosphere: acquisition, an operator console in Qt5 and Qwt recovered from the binary of a program whose source was lost, capture and product formats, and a document on the physics of chirp ionograms. The console runs in a browser through Docker and noVNC.

  • Recovered from an unstripped binary and checked against the original: calls to its functions under gdb, a byte-identical configuration, spectra agreeing to 1.7·10⁻¹³.
  • An .lfp products file 2000 times smaller than the 80 MB capture: the heavy processing happens once.
  • The ionogram is drawn during reception, the FFT length is set per station, and the schedule is checked for lost soundings.
  • An echo window keeps each sounding's phase in 1.57 MB, bit-identical to the reference; a capture is deleted only after its window is verified.
Educational project 2 updates

The ionozond playground — interactive models of chirp sounding

A static site in Russian and English: seven models for a document on oblique chirp ionograms — group-delay dispersion and the widest usable band, ways to measure it, start-time errors, FFT length, the station schedule, the daily course and vertical sounding — the document's full text as a wiki and a glossary, and an HF channel simulator on real soundings with notes and six boards.

  • A dispersion law from this path: the median of 19,033 estimates over 583 soundings, b = 7.52 with R² = 0.975.
  • No libraries and no build: the charts are drawn by hand in SVG, and the site opens from disk.
  • Each model is checked independently in Python; work on the models found contradictions in the document itself, and they were fixed at the source.
  • The channel simulator checks itself: the real sounding is put among twelve copies synthesised from its state, and the verdict is given in sigmas.
Research 0 updates

HF-FEC GAN — adversarial robustness testing of error-correcting codes

Adversarial (GAN) generation of structured, fixed-power interference to probe the vulnerability of the FEC codes used in HF radio. It compares the BER of several FEC schemes (convolutional K=7 R=1/2, BCH(63,51), turbo) in an ideal channel, under Rayleigh and Rician fading, and against a trained noise generator.

  • FEC to HF communication standards: a convolutional code with soft-decision Viterbi (MIL-STD-188-110, STANAG 4285), BCH(63,51) for ALE, a STANAG 4539 turbo-code stub, and 16×16 block interleaving.
  • A noise generator (FC → Conv1D → LSTM → Conv1D) against a CNN discriminator that predicts a decoding failure — fixed-power interference learns to defeat the FEC specifically.
  • AWGN, Rayleigh, and Rician channel models, plus spectral analysis (FFT, Welch PSD) of the most effective interference structures.

Similar projects