Urgent.News

What's breaking now, across thousands of outlets.

Tech

Building a GPS file converter that never uploads your files

Every online converter for fitness files works the same way: you upload your activity, a server parses it, you download the result. For a GPX track that is a strange deal to accept. The file is a precise log of where you live, where you train, when you leave the house, and how hard your heart was working the whole time. I built GPX Converter so that upload step does not exist. Everything runs in…

Building a GPS file converter that never uploads your files is a new approach to handling fitness data. Traditional online converters work by uploading your activity, which is then parsed on a server, and the result is downloaded. However, this process is problematic as it exposes your personal data to external servers. GPX Converter, a new tool, eliminates this issue by running everything entirely in the browser.

GPX Converter supports three main file formats: FIT, GPX, and TCX. FIT is Garmin's binary format, while GPX is plain XML and TCX resembles GPX but with lap and session structure. However, converting FIT to GPX enlarges the file size roughly 5-8 times, due to the shift from binary packing to human-readable XML.

All processing in GPX Converter occurs client-side, with no upload endpoint. The file never leaves the memory, and parsing runs in a dedicated Web Worker, ensuring the UI thread remains responsive. The output is then handed back as a Blob and downloaded straight from memory. The user can verify the process by opening devtools and using the network tab to drop a file, with no request carrying file bytes.

There's a catch: DOMParser does not exist in a Worker, which can cause issues. GPX and TCX are XML, so the obvious parser throws an error. However, FIT is unaffected as it is binary. Two fixes can handle this: parsing in the main thread or using a worker-safe XML parser. The chosen solution is Option A, parsing in the main thread, with structured data transfer across the wire.

Different formats have varying expressiveness. FIT supports position, elevation, heart rate, cadence, power, laps, and interval data. GPX handles position, elevation, and heart rate (through Garmin's TrackPointExtension), while TCX offers similar features to GPX but with limited lap and interval data. Therefore, a converter should disclose what it loses during conversion.

Repairing a corrupt FIT file can be done by rewriting the header's data-length field, re-computing the header CRC, and walking through the definition/record messages until the file is fully restored. This process can recover a substantial amount of data, as proven in a test on a 700 KB activity file.

The main advantage of local-first approach is that GPS data sensitivity and low server-side processing value make local processing sufficient. Using a browser as the runtime is a viable option, eliminating the need for server storage. The only downside is the inability to see user data, which is the primary concern for this category of tools. GPX Converter is available free of charge and without an account at gpxconverter.com.

Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at dev.to →

More in Tech

Say hi to Paperwall, a design tool that fits in one HTML file

I kept needing a quick poster, a slide, an invitation, and kept bouncing off tools that wanted an account, a subscription, or a watermark in the corner. So I built Paperwall. What it does.

  • Paperwall is a single-file design tool
  • No account or subscription needed
  • Runs entirely offline

80 000 échantillons, des centaines de protéines : pourquoi la VR change la donne pour la biologie structurale (et mon…

80 000 échantillons, des centaines de protéines : pourquoi la VR change la donne pour la biologie structurale (et mon quotidien de dev bioinfo) Quand j'ai vu l'annonce Alamar/Nightingale sur l'analyse…

  • NULISA analysis of 80,000 UK Biobank samples tracks early neurodegeneration signs
  • NexoPeek VR headset transforms into immersive molecular laboratory
  • PDB Pro visualizer enables cross-database research with AI-predicted pocket detection

Secure Telegram Stars Payment Flow in PHP: sendInvoice pre_checkout_query successful_payment

Architecture Overview A Telegram Stars payment flow has three distinct phases. First, the bot sends an sendInvoice request containing a unique lead identifier and an HMAC-protected initData .

  • Telegram Stars payment flow has three phases: sendInvoice, precheckoutquery, successfulpayment
  • sendInvoice transmits an invoice with a unique lead identifier and HMAC-protected initData string
  • successfulpayment updates invoice status, modifies lead state, notifies user upon successful payment

Tracking CVE-2026-98625 across Ubuntu kernel variants

Tracking CVE-2026-98625 across Ubuntu kernel variants Why one package row is not enough CVE-2026-98625 affects the Linux netfilter flowtable offload destroy path.

  • CVE-2026-98625 affects Linux netfilter flowtable offload destroy path.
  • Ubuntu kernel variants have different fixed versions for the vulnerability.
  • Fix involves code changes and administrators should verify kernel after installation.

Denoise before upscale: the ordering mistake, and why 2x is the ceiling

Most upscaling tutorials tell you to enlarge first. Do that and the model learns the compression blocks and enlarges them too, which is how you get a 4K file that looks worse than the 540p original.

  • Denoise before enlarging, not the other way around
  • Cap enlargement at 2x per axis to avoid invented details
  • Inspect hair edge and text at 100% resolution for quality check

More from Sunday 8 November →