# timing

Published articles for timing.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## From slow tests to slow production: Debugging with Stackprof

DevFeed: [From slow tests to slow production: Debugging with Stackprof](<https://devfeed.tech/articles/from-slow-tests-to-slow-production-debugging-with-stackprof-33519.md>)

Original publisher: [Read original article](<https://www.aha.io/engineering/articles/debugging-with-stack-prof>)

Published: 2026-08-13T00:00:00Z

Content type: tutorial

Language: en

Sources: [Aha! Engineering Blog](<https://devfeed.tech/sources/aha-engineering-blog.md>)

Topics: [debugging](<https://devfeed.tech/topics/debugging.md>), [Tooling](<https://devfeed.tech/topics/tooling.md>), [RSpec](<https://devfeed.tech/topics/rspec.md>), [Databases](<https://devfeed.tech/topics/databases.md>)

Tags: [ci](<https://devfeed.tech/tags/ci.md>), [cpu-time](<https://devfeed.tech/tags/cpu-time.md>), [database](<https://devfeed.tech/tags/database.md>), [debugging](<https://devfeed.tech/tags/debugging.md>), [logs](<https://devfeed.tech/tags/logs.md>), [overhead](<https://devfeed.tech/tags/overhead.md>), [performance](<https://devfeed.tech/tags/performance.md>), [production-debugging](<https://devfeed.tech/tags/production-debugging.md>), [profiling](<https://devfeed.tech/tags/profiling.md>), [rspec](<https://devfeed.tech/tags/rspec.md>), [snapshots](<https://devfeed.tech/tags/snapshots.md>), [tests](<https://devfeed.tech/tags/tests.md>), [timing](<https://devfeed.tech/tags/timing.md>)

### AI overview

An investigation into tests that became six times slower traces the stall to code generating example data and Active Record callbacks. The article explains using Stackprof with RSpec to profile the test, including I/O time, and reports that the test spent 71% of its time sleeping.

### Source excerpt

One morning, a developer announced in our Slack channel that some tests were failing on our main branch. The cause of the failures was not obvious. No recent PRs seemed related, and neither the code nor the tests had changed in a long time. The test

## Deciding Whether to Continue a Stagnating Software Project in the AI Era

DevFeed: [Deciding Whether to Continue a Stagnating Software Project in the AI Era](<https://devfeed.tech/articles/the-danger-of-the-ok-project-38753.md>)

Original publisher: [Read original article](<https://www.paleblueapps.com/rockandnull/the-danger-of-the-ok-project/>)

Author: Mike Yerou

Published: 2026-03-31T12:48:11Z

Content type: opinion

Language: en

Sources: [Rock and Null](<https://devfeed.tech/sources/rock-and-null.md>)

Topics: [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [Software](<https://devfeed.tech/topics/software.md>), [Users](<https://devfeed.tech/topics/users.md>), [data](<https://devfeed.tech/topics/data.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [business](<https://devfeed.tech/tags/business.md>), [data](<https://devfeed.tech/tags/data.md>), [software](<https://devfeed.tech/tags/software.md>), [thoughts](<https://devfeed.tech/tags/thoughts.md>), [timing](<https://devfeed.tech/tags/timing.md>), [users](<https://devfeed.tech/tags/users.md>)

### AI overview

The article examines the difficulty of deciding whether to continue a software project that has users and some traction but is neither a clear failure nor a clear success. It argues that rapidly changing AI tools and markets make waiting riskier, while retention data, intuition, and current traction can inform the choice between continuing and moving on.

### Source excerpt

Most projects don't fail spectacularly; they just linger in the "middle." In a fast-moving AI era, deciding if your current traction is enough to keep going, or if it's time to move on.

## Per-worker, and global, IO bandwidth in explain plans

DevFeed: [Per-worker, and global, IO bandwidth in explain plans](<https://devfeed.tech/articles/per-worker-and-global-io-bandwidth-in-explain-plans-33676.md>)

Original publisher: [Read original article](<https://www.depesz.com/2026/02/21/per-worker-and-global-io-bandwidth-in-explain-plans/>)

Author: depesz

Published: 2026-02-21T13:24:57Z

Content type: article

Language: en

Sources: [select \* from depesz;](<https://devfeed.tech/sources/select-from-depesz.md>)

Topics: [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [IO](<https://devfeed.tech/topics/io.md>), [parallel](<https://devfeed.tech/topics/parallel.md>)

Tags: [analyze](<https://devfeed.tech/tags/analyze.md>), [execution](<https://devfeed.tech/tags/execution.md>), [explain](<https://devfeed.tech/tags/explain.md>), [explain-depesz-com](<https://devfeed.tech/tags/explain-depesz-com.md>), [io](<https://devfeed.tech/tags/io.md>), [parallel](<https://devfeed.tech/tags/parallel.md>), [plan](<https://devfeed.tech/tags/plan.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [speed](<https://devfeed.tech/tags/speed.md>), [timing](<https://devfeed.tech/tags/timing.md>), [uncategorized](<https://devfeed.tech/tags/uncategorized.md>), [worker](<https://devfeed.tech/tags/worker.md>)

### AI overview

This article explains how PostgreSQL explain plans can report per-worker and global I/O bandwidth during parallel execution. It describes how summed worker timings differ from wall-clock time and introduces an exclusive-time bandwidth figure for the disks' total workload.

### Source excerpt

Jeremy Schneider suggested a change to how plans are displayed - adding another bit of information in case we have timing information for IO for explain node. Took me a while to research, but it finally made it's way... Let's consider this simple plan. In it's Parallel Seq Scan node we see: -> Parallel Seq ... Continue reading "Per-worker, and global, IO bandwidth in explain plans"

## Getting comfortable with psql

DevFeed: [Getting comfortable with psql](<https://devfeed.tech/articles/getting-comfortable-with-psql-41232.md>)

Original publisher: [Read original article](<https://www.craigkerstiens.com/2024/11/11/Getting-comfortable-with-psql/>)

Author: Map

Published: 2024-11-11T15:57:56Z

Content type: tutorial

Language: en

Sources: [Craig Kerstiens](<https://devfeed.tech/sources/craig-kerstiens.md>)

Topics: [Command-line interface](<https://devfeed.tech/topics/cli.md>), [Database](<https://devfeed.tech/topics/database.md>)

Tags: [cli](<https://devfeed.tech/tags/cli.md>), [commands](<https://devfeed.tech/tags/commands.md>), [config](<https://devfeed.tech/tags/config.md>), [database](<https://devfeed.tech/tags/database.md>), [pager](<https://devfeed.tech/tags/pager.md>), [postgres](<https://devfeed.tech/tags/postgres.md>), [psql](<https://devfeed.tech/tags/psql.md>), [query](<https://devfeed.tech/tags/query.md>), [tables](<https://devfeed.tech/tags/tables.md>), [timing](<https://devfeed.tech/tags/timing.md>), [vim](<https://devfeed.tech/tags/vim.md>)

### AI overview

A practical introduction to getting comfortable with psql, the PostgreSQL command-line interface. It covers utility commands, describing tables, configuration options, query timing, output formatting, pager settings, and editing queries with an external editor.

### Source excerpt

psql is a CLI editor that ships with Postgres. It's incredibly powerful for working with Postgres, and doesn't take too much of a learning curve to start to get comfortable so you can really feel like an expert working with your database. Just a rundown of a few things to get you started: Once connected in psql you can get an idea of all utility commands available with: \? A handy thing I use all the time is \d. \d will describe the tables within database. You can also add a table/index/etc. onto it to describe that specific table such as: \d accounts There are a number of options you can set in your psqlrc (config) file to customize your CLI experience. But you can also toggle those when directly working in psql. \timing will give you the time it took to run your query \x auto will autoformat your text output \pset pager 0 turns off your pager or 1 to turn it back on Oh and for editing a query in your editor of choice. Make sure you set your $EDITOR enviroment variable to the editor of your choice, though the only right choice is vim: \e Just a few things to get you started working with psql. Your browser does not support video

## Leap Seconds and GNSS Time Offsets

DevFeed: [Leap Seconds and GNSS Time Offsets](<https://devfeed.tech/articles/leap-seconds-causing-bugs-even-when-they-don-t-happen-36469.md>)

Original publisher: [Read original article](<https://berthub.eu/articles/posts/leapseconds-expose-bugs-even-when-they-dont-happen/>)

Published: 2021-08-03T08:03:10Z

Content type: article

Language: en

Sources: [Bert Hubert's writings](<https://devfeed.tech/sources/bert-hubert-s-writings.md>)

Topics: [systems](<https://devfeed.tech/topics/systems.md>), [navigation](<https://devfeed.tech/topics/navigation.md>)

Tags: [gnss](<https://devfeed.tech/tags/gnss.md>), [timing](<https://devfeed.tech/tags/timing.md>), [utc](<https://devfeed.tech/tags/utc.md>)

### AI overview

The article explains how GNSS systems handle leap seconds. GPS, Galileo, and BeiDou use continuous monotonic timescales and broadcast their offsets from UTC so receivers can derive UTC accurately.

### Source excerpt

Leap seconds are controversial things. Since the Earth does not rotate at a steady rate, over time the Earth could get ahead or behind "atomic time". Whatever solution you propose for this, someone is going to be unhappy. I take no position on what the best thing to do is here, except that one day I would like to do the math on the "great leap second gyroscopes" that we could mount near the poles to steady the Earth's rotation, so we can stop talking about this.

## Review of the Uputronics GPS/RTC Raspberry Pi Expansion Board

DevFeed: [Review of the Uputronics GPS/RTC Raspberry Pi Expansion Board](<https://devfeed.tech/articles/review-of-the-uputronics-gps-rtc-raspberry-pi-expansion-board-36576.md>)

Original publisher: [Read original article](<https://berthub.eu/articles/posts/uputronics-gps-rtc-expansion-board/>)

Published: 2020-07-09T11:38:00Z

Content type: comparison

Language: en

Sources: [Bert Hubert's writings](<https://devfeed.tech/sources/bert-hubert-s-writings.md>)

Topics: [Raspberry Pi](<https://devfeed.tech/topics/raspberry-pi.md>), [Hardware](<https://devfeed.tech/topics/hardware.md>), [Monitoring](<https://devfeed.tech/topics/monitoring.md>)

Tags: [configuration](<https://devfeed.tech/tags/configuration.md>), [gnss](<https://devfeed.tech/tags/gnss.md>), [measurements](<https://devfeed.tech/tags/measurements.md>), [pi-4](<https://devfeed.tech/tags/pi-4.md>), [raspberry-pi](<https://devfeed.tech/tags/raspberry-pi.md>), [receiver](<https://devfeed.tech/tags/receiver.md>), [review](<https://devfeed.tech/tags/review.md>), [timing](<https://devfeed.tech/tags/timing.md>)

### AI overview

A review of Uputronics' GPS/RTC Raspberry Pi Expansion Board, tested with the galmon.eu GNSS monitoring project. The board uses a u-blox M8 timing receiver, provides raw GNSS and correlator data, and offers a stable clock signal. The review also covers antenna performance, Raspberry Pi 4 configuration, UART communication, and baud-rate considerations.

### Source excerpt

Hi everyone, Disclaimer: this is a review of a free sample I got sent by Uputronics. I recently spotted on Twitter that Uputronics had launched a GPS/RTS Raspberry Pi Expansion Board, and that they were looking for worthy projects to test it. I thought our Galileo/GPS/BeiDou/GLONASS monitoring project galmon.eu might be worthy and Uputronics agreed. Relevant for our purposes, this is an actual 'timing receiver'. Any GNSS chip will get you a location, but some of them go the extra mile to also deliver a very stable clock signal.

## The July Galileo Outage: What happened and why

DevFeed: [The July Galileo Outage: What happened and why](<https://devfeed.tech/articles/the-july-galileo-outage-what-happened-and-why-36403.md>)

Original publisher: [Read original article](<https://berthub.eu/articles/posts/galileo-accident/>)

Published: 2019-11-07T08:48:53Z

Content type: article

Language: en

Sources: [Bert Hubert's writings](<https://devfeed.tech/sources/bert-hubert-s-writings.md>)

Topics: [navigation](<https://devfeed.tech/topics/navigation.md>), [systems](<https://devfeed.tech/topics/systems.md>)

Tags: [atomic](<https://devfeed.tech/tags/atomic.md>), [clocks](<https://devfeed.tech/tags/clocks.md>), [gnss](<https://devfeed.tech/tags/gnss.md>), [orbit](<https://devfeed.tech/tags/orbit.md>), [outage](<https://devfeed.tech/tags/outage.md>), [performance](<https://devfeed.tech/tags/performance.md>), [precision](<https://devfeed.tech/tags/precision.md>), [systems](<https://devfeed.tech/tags/systems.md>), [technical-article](<https://devfeed.tech/tags/technical-article.md>), [timing](<https://devfeed.tech/tags/timing.md>)

### AI overview

An excerpt examines the July Galileo outage, explaining how GNSS operation depends on accurately modeling satellite orbits and atomic clocks and distinguishing errors in satellite, clock, and ground timing data.

### Source excerpt

By bert hubert / bert@hubertnet.nl This post is an excerpt of a far longer post on Galileo, its structures and the cause of the outage. Here we'll only focus on the outage - the potential underlying reasons behind it are described in the full article. Since the week-long outage in July I've been fascinated by Galileo and, together with a wonderful crew of developers, experts and receiver operators, have learned so much about what I now know are called 'Global Navigation Satellite Systems' or GNSS.

## JavaScript animation loop

DevFeed: [JavaScript animation loop](<https://devfeed.tech/articles/javascript-animation-loop-37297.md>)

Original publisher: [Read original article](<https://muffinman.io/blog/javascript-animation-loop/>)

Author: Stanko

Published: 2018-03-18T00:00:00Z

Content type: tutorial

Language: en

Sources: [Stanko Tadić](<https://devfeed.tech/sources/stanko-tadic.md>)

Topics: [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Three.js](<https://devfeed.tech/topics/threejs.md>), [Game Development](<https://devfeed.tech/topics/game-development.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>)

Tags: [animation](<https://devfeed.tech/tags/animation.md>), [game-development](<https://devfeed.tech/tags/game-development.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [javascript-animation](<https://devfeed.tech/tags/javascript-animation.md>), [three-js](<https://devfeed.tech/tags/three-js.md>), [timing](<https://devfeed.tech/tags/timing.md>)

### AI overview

This tutorial explains why frame-count-based JavaScript animations can run at the wrong speed when requestAnimationFrame is delayed or throttled. It shows how to use elapsed, or delta, time to maintain movement at the intended rate, using a three.js game-animation context.

### Source excerpt

I've been really busy lately, doing both work and pet projects. At the moment I'm playing with three.js trying to clone old DOS game to JavaScript. Games (and animations in general) need animation loop in which we are going to update the scene and re-render it. Example animations are simplified and they just move a box 60px per second. But the concepts applied are universal and can be used for more complicated real life cases. Timing problem # We all know that animating should be done using requestAnimationFrame. My first attempt ended up being naive and it looked something like this: const box = document.querySelector('.Box'); // Initial position let position = 0; function animate() { // Updating scene logic // moving box for one pixel per frame // "requestAnimationFrame" is optimized for 60fps // so we should get smooth movement of 60px per second position += 1; // Render updated scene box.style.transform = `translateX(${ position }px)`; // Start next frame requestAnimationFrame(animate); } // Start animation animate(); At the first glance this looks fine. But it has one major problem. requestAnimationFrame is usually triggered 60 times per second, but often this is not the case. For example, the most browsers will pause it if tab goes to background. Busy (or low-end) CPU will also slow it down. Imagine for some reason that is does get triggered only 10 times per second.In the example bellow I faked it by using 100ms setTimeout. In that case our box will be moved by 1px every 100ms, ending up on 10px per second. This means our animation speed is relative to how many times requestAnimationFrame is called per second. That is the big timing problem we are trying to solve. Our animation should calculate the right position based on time passed, rather then just incrementing it by 1px each update. Delta time to the rescue # Now we know what to do - adjust the position based on time passed between two updates. Every time we are doing the update, we are going to calculate

## Hospital Ransomware

DevFeed: [Hospital Ransomware](<https://devfeed.tech/articles/hospital-ransomware-36827.md>)

Original publisher: [Read original article](<https://shostack.org/blog/hospital-ransomware/>)

Author: Adam

Published: 2017-05-13T00:00:00Z

Content type: opinion

Language: en

Sources: [Shostack & Friends Blog](<https://devfeed.tech/sources/shostack-friends-blog.md>)

Topics: [ransomware](<https://devfeed.tech/topics/ransomware.md>), [Cybersecurity](<https://devfeed.tech/topics/cybersecurity.md>), [Security](<https://devfeed.tech/topics/security.md>), [Test automation](<https://devfeed.tech/topics/test-automation.md>)

Tags: [automation](<https://devfeed.tech/tags/automation.md>), [patches](<https://devfeed.tech/tags/patches.md>), [ransomware](<https://devfeed.tech/tags/ransomware.md>), [security](<https://devfeed.tech/tags/security.md>), [test-automation](<https://devfeed.tech/tags/test-automation.md>), [timing](<https://devfeed.tech/tags/timing.md>)

### AI overview

A commentary on hospital ransomware and patch timing argues that attack risk may overtake patch-related risk at around 10 days, while improved test automation and attack frameworks could shorten that interval. It also notes that organizations using older technology often lack the test automation needed for rapid smoke testing.

### Source excerpt

[no description provided]

## Timing Tests in Python For Fun and Profit

DevFeed: [Timing Tests in Python For Fun and Profit](<https://devfeed.tech/articles/timing-tests-in-python-for-fun-and-profit-33944.md>)

Original publisher: [Read original article](<https://hakibenita.com/timing-tests-in-python-for-fun-and-profit>)

Author: Haki Benita

Published: 2016-11-08T22:00:00Z

Content type: tutorial

Language: en

Sources: [Haki Benita](<https://devfeed.tech/sources/haki-benita.md>)

Topics: [Python](<https://devfeed.tech/topics/python.md>), [test](<https://devfeed.tech/topics/test.md>)

Tags: [articles](<https://devfeed.tech/tags/articles.md>), [django](<https://devfeed.tech/tags/django.md>), [performance](<https://devfeed.tech/tags/performance.md>), [python](<https://devfeed.tech/tags/python.md>), [reporting](<https://devfeed.tech/tags/reporting.md>), [testing](<https://devfeed.tech/tags/testing.md>), [tests](<https://devfeed.tech/tags/tests.md>), [timing](<https://devfeed.tech/tags/timing.md>)

### AI overview

A Python tutorial on finding slow tests by measuring test execution time, reporting tests that exceed a threshold, and building custom unittest result and runner classes to produce a consolidated report without modifying existing test cases.

### Source excerpt

Hunting down slow tests by reporting tests that take longer than a certain threshold (Because the first step to better test performance is awareness!)

## Teaching an LSTM to Play Beethoven

DevFeed: [Teaching an LSTM to Play Beethoven](<https://devfeed.tech/articles/teaching-an-lstm-to-play-beethoven-40104.md>)

Original publisher: [Read original article](<https://korbonits.com/blog/2015-07-01-lstm-beethoven/>)

Published: 2015-07-01T00:00:00Z

Content type: tutorial

Language: en

Sources: [Alex Korbonits](<https://devfeed.tech/sources/alex-korbonits.md>)

Topics: [MIDI](<https://devfeed.tech/topics/midi.md>), [Code](<https://devfeed.tech/topics/code.md>), [Lua](<https://devfeed.tech/topics/lua.md>), [GPU](<https://devfeed.tech/topics/gpu.md>)

Tags: [audio](<https://devfeed.tech/tags/audio.md>), [channel](<https://devfeed.tech/tags/channel.md>), [code](<https://devfeed.tech/tags/code.md>), [experiment](<https://devfeed.tech/tags/experiment.md>), [format](<https://devfeed.tech/tags/format.md>), [gpu](<https://devfeed.tech/tags/gpu.md>), [lstm](<https://devfeed.tech/tags/lstm.md>), [lua](<https://devfeed.tech/tags/lua.md>), [music](<https://devfeed.tech/tags/music.md>), [structure](<https://devfeed.tech/tags/structure.md>), [timing](<https://devfeed.tech/tags/timing.md>), [torch](<https://devfeed.tech/tags/torch.md>), [training](<https://devfeed.tech/tags/training.md>), [types](<https://devfeed.tech/tags/types.md>), [velocity](<https://devfeed.tech/tags/velocity.md>)

### AI overview

An experiment trains Karpathy's char-rnn LSTM on Beethoven piano sonata MIDI files, treating the raw MIDI bytes as a sequence. The author describes prepending a shared MIDI header to generated output so players could interpret it, and reports imperfect results containing occasional phrase-like and melodic fragments.

### Source excerpt

In June 2015, I trained Karpathy's char-rnn on a corpus of Beethoven piano sonata MIDI files. Here's what it sounds like -- and how I got it to play.

## Timing-safe memcmp and API parity

DevFeed: [Timing-safe memcmp and API parity](<https://devfeed.tech/articles/timing-safe-memcmp-and-api-parity-36633.md>)

Original publisher: [Read original article](<https://rdist.root.org/2014/06/24/timing-safe-memcmp-and-api-parity/>)

Author: Nate Lawson

Published: 2014-06-24T12:03:33Z

Content type: opinion

Language: en

Sources: [rdist](<https://devfeed.tech/sources/rdist.md>)

Topics: [API](<https://devfeed.tech/topics/api.md>), [C](<https://devfeed.tech/topics/c.md>), [Optimization](<https://devfeed.tech/topics/optimization.md>), [vulnerability](<https://devfeed.tech/topics/vulnerability.md>), [ordering](<https://devfeed.tech/topics/ordering.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [assembly](<https://devfeed.tech/tags/assembly.md>), [branch-prediction](<https://devfeed.tech/tags/branch-prediction.md>), [c](<https://devfeed.tech/tags/c.md>), [cache](<https://devfeed.tech/tags/cache.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [cpu](<https://devfeed.tech/tags/cpu.md>), [developers](<https://devfeed.tech/tags/developers.md>), [optimization](<https://devfeed.tech/tags/optimization.md>), [ordering](<https://devfeed.tech/tags/ordering.md>), [performance](<https://devfeed.tech/tags/performance.md>), [security](<https://devfeed.tech/tags/security.md>), [timing](<https://devfeed.tech/tags/timing.md>)

### AI overview

The article discusses OpenBSD's timing-safe bcmp and memcmp APIs. It supports simpler constant-time equality comparison but questions timing-safe ordered comparison because compiler and CPU behavior may undermine its guarantees and because ordering secret data can indicate larger architectural problems.

### Source excerpt

OpenBSD released a new API with a timing-safe bcmp and memcmp. I strongly agree with their strategy of encouraging developers to adopt "safe" APIs, even at a slight performance loss. The strlcpy/strlcat family of functions they pioneered have been immensely helpful against overflows. Data-independent timing routines are extremely hard to get right, and the farther you are from ... Continue reading Timing-safe memcmp and API parity