Urgent.News

What's breaking now, across thousands of outlets.

Tech

I turned a food-safety exam blueprint into a 580-item open dataset (and what the schema taught me)

A while back I built a free ServSafe Manager exam trainer — foodsafeprep.com — and the hardest part was never the frontend. It was producing a question bank that was defensible : every item traceable to a rule, every rule traceable to a source. This post is the schema I landed on, and the three things that surprised me. The problem with "just write 500 questions" The exam is 90 questions,…

A food-safety exam developer transformed a blueprint into an extensive dataset with 580 items. The project's core was creating a defensible question bank, where each item corresponded to a rule and a source. The developer discovered that just writing 500 questions was insufficient because the questions needed to be traceable to specific rules and sources.

To address this, the developer created a schema where each question was represented as a JSON object containing various details such as id, topic, task, difficulty, question text, options, correct answer, explanation, reference, and set. The schema ensured that coverage was measurable, as it included a two-level taxonomy (topic + task).

The developer found that coverage was often uneven across different domains, with some areas being significantly underrepresented. To remedy this, the developer sorted the items by count and began writing questions from the least represented areas. Additionally, the developer realized that explanations were crucial in teaching the rules and preventing learners from falling into common traps.

The developer published the dataset as open data, which not only helped in identifying missing elements but also led to its reuse by others. The project's success demonstrated the importance of having a schema that could survive contact with other people's code and the value of making the dataset freely available under a CC BY 4.0 license.

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

I searched Google Hotels for a city that does not exist. It found five hotels.

I typed "hotels in Qwzxvbnmplk" into my Google Hotels scraper to watch it fail. It did not fail. It came back with five hotels near San Antonio, Texas, each with a price, a rating and a map position.

  • Author tested non-existent city searches on Google Hotels
  • Google provided five hotel results near San Antonio, Texas
  • Fix implemented but caused issues with real city, Prague

I searched for Nike and my scraper never found Nike

I asked my Google Ads Transparency scraper for the ads of "nike". It returned ads from two advertisers called Nikena and nikey.

  • Scraper searched for Nike ads but found Nikena and nikey instead
  • Bug in scraper code led to inaccurate advertiser suggestion
  • Fix added match scores and timestamps for ad comparison

What a test HL7 v2 sender has to get right

Sending an HL7 v2 message is easy. Open a TCP socket, wrap the message in MLLP framing, write it, and read whatever comes back.

  • Establish TCP socket connection and wrap message in MLLP framing
  • Ensure ACK is valid by matching MSA-2 to MSH-10 code
  • Handle ambiguous responses by closing connection after timeout or mismatch

We stopped trusting exchange-reported volume and measured it ourselves

Every crypto price you have ever looked at is a summary of trades that happened somewhere. Most sites that show you that price do not look at the trades.

  • Coinmico measures exchange-reported volume itself
  • Collects data from 58 exchanges and 21 chains
  • Computes venue count and confidence score every two seconds

More from Friday 9 October →