Skip to content
View Kjubikstronk's full-sized avatar
😁
😁
  • Austria

Block or report Kjubikstronk

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
Kjubikstronk/README.md

Miodrag Obradovic

Informatics at FH Technikum Wien, after HTL Wien West. Vienna, CET.

I mostly fix other people's bugs. The ones I find interesting pass locally and fail in CI, or worked last week and nobody admits to touching anything. Almost every fix below is in a codebase I had never opened before, which turns out to be most of the job.

Open source

Merged fixes, mostly found by reading the lists of known-broken tests that projects check into their own repos and working out why each one is broken.

home-assistant/core, the home automation platform

  • #180532: a test had been reporting as expected-to-fail for months after the bug it guarded was already gone. It used the imperative pytest.xfail(), which aborts before the assertion instead of running it, so unlike the marker it can never report an unexpected pass. An async migration had fixed the bug and removed the equivalent markers from a neighbouring file; this one survived because nothing could see it. Six parameter sets went back to actually asserting.

prettier, the code formatter

  • #19893: assigned = (a = c /* comment */) moved the comment every time you formatted it, so the file never settled. The fix needed the ancestor chain that the comment attacher already built and then threw away.
  • #19894: the same instability in sequence expressions. Babel starts a SequenceExpression at the parentheses of its first element, so dropping redundant parens moved the node's start past the comment.
  • #19939: an own-line comment before a satisfies or as type got pulled onto the line above, then moved again on the next format, so the file never settled. Two rounds of review on this one, including reverting a commit I had been too clever with.
  • #19930: a comment at the end of a parenthesized arrow chain escaped the parentheses on the next format. The chain walker only stopped at an expression statement, so nothing inside a var declaration ever found a statement to attach the comment to.
  • #19880: range formatting reached past the node you selected
  • #19849: escaped characters in markdown links
  • #19878: blockquote markers leaking into setext headings

jsdom, the DOM implementation a lot of JS testing runs on

  • #4245: attributes kept pointing at their old document after being moved. Fixed by implementing the steps the DOM spec actually gives for "append an attribute" and "replace an attribute", which jsdom was missing.
  • #4246: getElementsByTagName kept lowercasing after its root moved to an XML document, because the memoised collection outlived the document type it was built for

astro, the web framework

  • #17742: a trailing slash disappeared when an injected .html was stripped, breaking routes

Open PRs at playwright, babel, supabase, fastify, fresh, hono, typescript-eslint, marked, happy-dom, vite, axios, date-fns and storybook.

What I'm building

raspisentry, a Raspberry Pi that turns its camera to follow your face and emails you the frame when it sees one. OpenCV for detection, a Pan-Tilt HAT for the servos, split across two processes: one on the Pi owning the camera and the motors, one serving the dashboard from anywhere on the network.

downforce, the F1 championship as a descent, where scroll distance between teams is the points gap, to scale. A 111-point deficit is a long fall through the dark. A one-point deficit is two pixels.

dateideas, a private date planner for two. GitHub Pages serves everything publicly, so the site is deliberately an empty shell; the data lives behind Firestore rules keyed to two UIDs.

press-it, swift-archive, nct-127, auto-updating music archives on a shared static build. Discography, videos and news refresh on a schedule, so the sites stay current without anyone touching them.

SALURO, anonymous payments prototype for school use: Spring Boot and a JS front end behind Docker Compose. My diploma project, so the repo stays private.

Working with me

JavaScript, TypeScript, Node, Python, Java and Spring. English or German.

Available for bug fixes and debugging work. Send me the repository and a way to reproduce it: mck097@gmail.com

Pinned Loading

  1. dateideas dateideas Public

    A private date planner for two — a shared calendar and map where every pin knows which day you're going there.

    TypeScript

  2. downforce downforce Public

    The F1 championship as a descent — scroll distance between teams is the points gap, to scale.

    HTML

  3. raspisentry raspisentry Public

    Face tracking and alerts on a Raspberry Pi with a pan-tilt camera

    HTML

  4. swift-archive swift-archive Public

    An auto-updating Taylor Swift archive, organised by era — discography, videos and news keep themselves current.

    JavaScript