Repository navigation
Releases: AlexGalhardo/computer-science-fundamentals
Releases · AlexGalhardo/computer-science-fundamentals
Release list
v1.0.2: three-signals trace id fix
Fixed
observability/three-signals: the end-to-end test failed in about one run in sixteen with "timed out waiting for the slow trace in the Tempo search". Tempo's search API prints trace ids without their leading zeros, and the test compared that text with the 32-digit id of thex-trace-idheader.searchTracesnow pads every id to 32 digits (canonicalTraceId), which also fixes the demo.observability/three-signals:flattenTracebreaks ties between sibling spans that start in the same millisecond by their end time, so the waterfall no longer depends on the order in which Tempo returns the spans.
Added
observability/three-signals: an end-to-end test that sends a request with atraceparentwhose trace id starts with zeros and finds it through the TraceQL search on every run, and two unit tests (id padding, tie between sibling spans).
Changed
observability/three-signals: the READMEs and the documentation explain the leading zeros and state that Tempo 3 searches only traces older than 30 seconds (query_frontend.query_end_cutoff), instead of "up to a minute".
v1.0.1: counter-race criterion
Changed
counter-race: the test of the buggy counter asks for lost updates in at least 24 of 30 runs instead of 9 of 10, in Go, Rust, Java and TypeScript. A data race only loses updates while the workers really run in parallel, and on a loaded CI runner the Go test got 8 of 10 twice.
v1.0.0: ci-pipeline, every area complete
First stable release: the 32 quiz areas and every planned mini-project are complete, in English, Portuguese and Spanish.
Added
- Mini-project
projects/continuous-integration/ci-pipeline(MP-CI-1): a walkthrough of every job and step of.github/workflows/ci.yml, and a Docker-only demo that breaks each of its 14 quality gates on purpose and asserts "passes clean, fails with the change" for each one. The gate commands are read from the workflow file, and the checksworkflow-syncandisolationkeep the lesson in step with the workflow. demo-branches.shanddemo-branches.ps1: onedemo/ci-fails-<gate>branch per gate, built in a temporary clone, with the failed run of each linked from the READMEs.- Documentation pages
docs/{en,pt,es}/continuous-integration/ci-pipeline.md.
v0.125.0: markdownlint
Added
- markdownlint (
markdownlint-cli20.23.3) for every Markdown file of the repository:bun run lint:mdandbun run format:md, with the rules in.markdownlint-cli2.jsonc. - CI: step "Markdown lint (markdownlint)" in the
typescriptjob.
Fixed
- 420 markdownlint violations: a language on 360 fenced code blocks, separated blockquotes, array indexes in backticks, bold lines turned into headings, and smaller fixes.
Removed
- The local log folder of the browser tool (
.playwright-mcp/) is no longer tracked.
v0.124.0: theory summaries, Base UI and the black and white theme
Added
- Quiz: a theory summary on each area page, under the form that starts the quiz, for the 32 areas in English, Portuguese and Spanish (
quiz/content/<area>/theory/). Each one starts with an introduction and a linked table of contents, teaches every topic of the coverage map for a beginner, and uses tables, text diagrams, bar charts, callouts, tooltips and links to videos. - Quiz: content model of the summary (
theorySchema), a check that the three languages share one skeleton, the inline marks**bold**,`code`, links and[[term|meaning]]tooltips, and the section "Theory summary" in the authoring guide.
Changed
- Quiz: interactive controls use Base UI (
@base-ui/react1.9.0) styled with Tailwind CSS v4 and the theme tokens:ToggleGroupandTogglefor the language switch and the theme toggle,SelectwithFieldfor the filters,Buttonfor actions and alternatives,Meterfor the progress of each area, andPopoverfor the terms of the theory summary. - Quiz: the dark theme is black and white: pure black background, white text, borders and accent. Colour stays only for right and wrong answers and for code highlighting.
- Quiz: the language switch is a group of toggle buttons with client-side navigation instead of links.
v0.123.0: Spanish as the third language
Added
- Spanish as the third language of the repository, next to English (the main language) and Portuguese:
README.es.mdnext to everyREADME.pt-BR.md,docs/es/mirroringdocs/pt/,README-es.mdandREFERENCES.es.mdat the root, a Spanish section inCONTRIBUTING.mdandSECURITY.md, and anES:comment block after everyPT:block. - Quiz in Spanish:
/es/pages, theesblock required in every question, area and topic name, and the Spanish translation of all 3384 questions. - Spanish in everything that showed Portuguese to the user: the benchmark dashboard, the report tables written into the READMEs, the demo output of the security labs and of
order-state-machine,--lang esinnormalisation-tool, andburst.es.svginrate-limiter. - The mini-project generator creates
README.es.md, three-way language lines andES:comment blocks. .claude/scripts/check-es.ts: reports every place that has Portuguese and no Spanish.- Quiz: "Source Code" link to the repository in the header, and the Vercel configuration
quiz/vercel.json.
Changed
- CI tests every mini-project on every run, not only the ones whose folder changed.
AGENTS.md,CLAUDE.md,.claude/rules/,CONTRIBUTING.mdand the docs describe three languages.
Fixed
mutation-testingandmini-xunit: line numbers cited in the READMEs and in the mutation report follow the source again.- Go
misspellignore lists accept the Spanish words of the comments, and comment wrapping passesclang-format,ruffandgofmt.
v0.122.0: software engineering quiz
Added
- Quiz: the software engineering area is complete, 150 questions in three languages. New topics: testing, evolution and maintenance; simplicity and technical debt. Blind review in two rounds, with the 15 notes of the reviewer resolved in
review.md.
Fixed
- Quiz: chapter numbers of Code Simplicity, and section numbers of Sommerville that could not be confirmed were replaced by chapter and title.
v0.121.0: continuous integration quiz
Added
- Quiz: the continuous integration area is complete, 100 questions in three languages. New topics: quality gates, deployment strategies, SemVer with Conventional Commits and changelog, and supply-chain security in CI. Blind review in two rounds, with the 11 notes of the reviewer resolved in
review.mdagainst the official documentation.
Fixed
- Quiz: the lifetime of
GITHUB_TOKEN(6 hours on a GitHub-hosted runner, 24 hours on a self-hosted one) and the events a workflow token can trigger.
v0.120.0: observability
Added
- The observability area: 100 quiz questions and four mini-projects in
projects/observability/.three-signals(three services with OpenTelemetry, Prometheus, Grafana, Loki and Tempo, and a slow dependency found in one trace),structured-logs(JSON logs with a correlation id through HTTP and a queue, against plain text),slo-alert(availability and latency objectives, error budget and burn-rate alerts, violated by a local k6 load) andflame-graph(a hidden hot path found with a profile, fixed and measured).
Fixed
slo-alert: two races in the watcher of the end-to-end test. ANaNratio (no request in the window yet) was kept as the peak, and "before the load" was decided from a smoothed rate. The test command passed 10 consecutive runs.flame-graph: the setup scripts profile for 15 seconds, because a CI runner collected fewer samples of the fast handler than the check requires in 5, and the Bun server setsidleTimeoutso a profile longer than 10 seconds no longer ends in a connection reset.dining-philosophers: Spanish comments wrapped as google-java-format requires.
v0.119.0: external-sorting
Mini-project projects/file-systems/external-sorting (Rust and Go): run generation under a memory limit enforced by the container (a 320 MiB file sorted within 32 MiB), a k-way merge with a heap, and a table of total time by run size and merge fan-in. The file systems area is complete. See CHANGELOG.md.