# The Daily Parker

Politics, Weather, Photography, and the Dog

The Consumer Electronics Show went virtual this year, but it still had some interesting toys, like these:

Air Safety Virus Monitors

It's well-known that things like ventilation and humidity affect how well coronavirus spreads indoors. But how do you know how much ventilation is enough? Airthings sensors pair with a smartphone to monitor indoor air quality for temperature, humidity and number of people in the room (it makes a guess based on the amount of carbon dioxide present). If quality dips and virus risk rises, Airthings will suggest opening windows or making other changes. This could be helpful for businesses, such as restaurants, to know if their capacity is too high. Airthings also monitors for more traditional air quality risks like radon and mold.

Balcony Bee-Keeping Box

The pandemic has driven an upswing in gardening and home-canning: why not beekeeping? Italian company Beeing’s B-Box is a small hive that works with a sensor to monitor the bees’ health and environment. It also has a special design that separates the extra honeycomb from the bees, so you can harvest the honey without suiting up like an astronaut. Plus, it’s small enough to keep on even a modest urban balcony.

I don't know how my neighbors would feel about that one, but it seems perfect for the building.

Lunchtime roundup:

Finally, the authors of The Impostor's Guide, a free ebook aimed at self-taught programmers, has a new series of videos about general computer-science topics that people like me didn't learn programming for fun while getting our history degrees.

The Economist's Bartleby column examines how Covid-19 lockdowns have "caused both good and bad changes of routine."

Security is hard. Everyone who works in IT knows (or should know) this. We have well-documented security practices covering every part of software applications, from the user interface down to the hardware. Add in actual regulations like Europe's GDPR and California's privacy laws, you have a good blueprint for protecting user data.

Of course, if you actively resist expertise and hate being told what to do by beanie-wearing nerds, you might find yourself reading on Gizmodo how a lone hacker exfiltrated 99% of your data and handed it to the FBI:

In the wake of the violent insurrection at the U.S. Capitol by scores of President Trump’s supporters, a lone researcher began an effort to catalogue the posts of social media users across Parler, a platform founded to provide conservative users a safe haven for uninhibited “free speech” — but which ultimately devolved into a hotbed of far-right conspiracy theories, unchecked racism, and death threats aimed at prominent politicians.

The researcher, who asked to be referred to by their Twitter handle, @donk_enby, began with the goal of archiving every post from January 6, the day of the Capitol riot; what she called a bevy of “very incriminating” evidence.

Operating on little sleep, @donk_enby began the work of archiving all of Parler’s posts, ultimately capturing around 99.9 percent of its content. In a tweet early Sunday, @donk_enby said she was crawling some 1.1 million Parler video URLs. “These are the original, unprocessed, raw files as uploaded to Parler with all associated metadata,” she said. Included in this tranche of data, now more than 56 terabytes in size, @donk_enby confirmed the raw video includes GPS coordinates, which point to the locations of users when the videos were filmed.

Meanwhile, dozens of companies that have donated to the STBXPOTUS and other Republican causes over the past five years have suddenly started singing a different tune:

Sony-made GPS chipsets failed all over the world this weekend when a GPS cheat-sheet of sorts expired:

In general, the pattern of your route is correct, but it may be displaced to one side or the other. However, in many cases by the completion of the workout, it sorts itself out. In other words, it’s mostly a one-time issue.

The issue has to do with the ephemeris data file, also called the EPO file (Extended Prediction Orbit) or Connected Predictive Ephemeris (CPE). Or simply the satellite pre-cache file. That’s the file that’s delivered to your device on a frequent basis (usually every few days). This file is what makes your watch near-instantly find GPS satellites when you go outside. It’s basically a cheat-sheet of where the satellites are for the next few days, or up to a week or so.

I experienced this failure as well. I recorded two walks on my Garmin Venu, one Friday and one yesterday. In both cases, the recorded GPS tracks appeared about 400 m to the west of where I actually walked.

Because the issue started between 22:30 UTC on December 31st and 15:00 UTC on January 1st, I (and others) suspect this may have been bad date handling. Last year not only had 366 days, but also 53 weeks, depending on how the engineers configured the calendar. So what probably happened is that an automatic CPE update failed or appeared to expire because the calendar handling was off.

Earlier this year, the Nielsen Norman Group repeated a study they first did in 1996 on the usability of PDF documents. As they've now found three times, making PDFs instead of actual web pages yields a horrible experience for users:

Jakob Nielsen first wrote about how PDF files should never be read online in 1996 — only three years after PDFs were invented. Over 20 years later, our research continues to prove that PDFs are just as problematic for users. Despite the evidence, they’re still used far too often to present content online.

PDFs are typically large masses of text and images. The format is intended and optimized for print. It’s inherently inaccessible, unpleasant to read, and cumbersome to navigate online. Neither time nor changes in user behavior have softened our evidence-based stance on this subject. Even 20 years later, PDFs are still unfit for human consumption in the digital space. Do not use PDFs to present digital content that could and should otherwise be a web page.

PDF files are typically converted from documents that were planned for print or created in print-focused software platforms. When creating PDFs in these tools, it’s unlikely that authors will follow proper guidelines for web writing or accessibility. If they knew these, they’d probably just create a web page in the first-place, not a PDF. As a result, users get stuck with a long, noninclusive mass of text and images that takes up many screens, is unusable for finding a quick answer, and boring to read. There’s more work involved in creating a well-written, accessible PDF than simply exporting it straight from a word processing or presentation platform. Factors such as the use of color, contrast, document structure, tags, and much more must be intentionally addressed.

Yah, so, don't use them.

The December solstice happened about 8 hours ago, which means we'll have slightly more daylight today than we had yesterday. Today is also the 50th anniversary of Elvis Presley's meeting with Richard Nixon in the White House.

More odd things of note:

Finally, it's very likely you've made out with a drowning victim from the 19th century.

Every morning I get an email from The History Channel with "this day in history" bullet points. A couple stood out today:

And now, the sanity. Via author John Scalzi, (conservative) attorney T. Greg Doucette explains why the president will leave office on January 20th no matter what chicanery he tries to steal the election:

While I wait for my frozen pizza to cook, I've got these stories to keep me company:

Going to check my pizza now.

Also known as: read all error messages carefully.

I've just spent about 90 minutes debugging an Azure DevOps pipeline after upgrading from .NET Core 3.1 to .NET 5 RC2. Everything compiled OK, all tests ran locally, but the Test step of my pipeline failed with this error message:

##[error]Unable to find D:\a\1\s\ProjectName.Tests\bin\Debug\net5.0\ref\ProjectName.Tests.deps.json. Make sure test project has a nuget reference of package "Microsoft.NET.Test.Sdk".

The test step had this Test Files configuration:

**\bin\$(BuildConfiguration)\**\*Tests.dll!**\*TestAdapter.dll!**\obj\** I'll save you all the steps I went through to determine that the .NET 5 build step only copied .dlls into the ref folder, without copying anything else (like the dependencies definition file). The solution turned out to be adding one line to the configuration: **\bin\$(BuildConfiguration)\**\*Tests.dll
!**\ref\**
!**\*TestAdapter.dll
!**\obj\**

Excluding the ref folder fixed it. And I hope this post saves someone else 90 minutes of debugging.