Skip to main content

Astronomers Use Black Holes to Pinpoint Earth's Location. But are Phones and Wifi Blocking the View?

3 weeks 5 days ago
Measuring earth's position (or "geodesy") requires using telescopes that track radiation from distant black holes. Their signals "pass cleanly through the atmosphere and we can receive them during day and night and in all weather conditions," writes a senior scientist at the University of Tasmania. But there's a problem... Radio waves are also used for communication on Earth — including things such as wifi and mobile phones... [A] few narrow lanes are reserved for radio astronomy. However, in previous decades the radio highway had relatively little traffic. Scientists commonly strayed from the radio astronomy lanes to receive the black hole signals. To reach the very high precision needed for modern technology, geodesy today relies on more than just the lanes exclusively reserved for astronomy. In recent years, human-made electromagnetic pollution has vastly increased. When wifi and mobile phone services emerged, scientists reacted by moving to higher frequencies. However, they are running out of lanes. Six generations of mobile phone services (each occupying a new lane) are crowding the spectrum... Today, the multitude of signals are often too strong for geodetic observatories to see through them to the very weak signals emitted by black holes. This puts many satellite services at risk. To keep working into the future — to maintain the services on which we all depend — geodesy needs some more lanes on the radio highway. When the spectrum is divided up via international treaties at world radio conferences, geodesists need a seat at the table. Other potential fixes might include radio quiet zones around our essential radio telescopes. Work is also underway with satellite providers to avoid pointing radio emissions directly at radio telescopes. Any solution has to be global. For our geodetic measurements, we link radio telescopes together from all over the world, allowing us to mimic a telescope the size of Earth. The radio spectrum is primarily regulated by each nation individually, making this a huge challenge. But perhaps the first step is increasing awareness. If we want satellite navigation to work, our supermarkets to be stocked and our online money transfers arriving safely, we need to make sure we have a clear view of those black holes in distant galaxies — and that means clearing up the radio highway.

Read more of this story at Slashdot.

EditorDavid

Intern did exactly what he was told and turned off the wrong server

3 weeks 5 days ago
And was then blamed for not knowing about inaccurate labels

Who, Me?  Returning to work on Monday morning can feel like a mistake, which is why The Register welcomes readers back to their desks with a fresh instalment of Who, Me? It's the reader-contributed column in which we tell your tales of making a mess at work, and somehow surviving.…

Simon Sharwood

CodeSOD: An Exert Operation

3 weeks 5 days ago

The Standard Template Library for C++ is… interesting. A generic set of data structures and algorithms was a pretty potent idea. In practice, early implementations left a lot to be desired. Because the STL is a core part of C++ at this point, and widely used, it also means that it's slow to change, and each change needs to go through a long approval process.

Which is why the STL didn't have a std::map::containsfunction until the C++20 standard. There were other options. For example, one could usestd::map::count, to count how many times a key appear. Or you could use std::map::findto search for a key. One argument against adding astd::map::containsfunction is thatstd::map::count basically does the same job and has the same performance.

None of this stopped people from adding their own. Which brings us to Gaetan's submission. Absent a std::map::contains method, someone wrote a whole slew of fieldExists methods, where field is one of many possible keys they might expect in the map.

bool DataManager::thingyExists (string name) { THINGY* l_pTHINGY = (*m_pTHINGY)[name]; if(l_pTHINGY == NULL) { m_pTHINGY->erase(name); return false; } else { return true; } return false; }

I've head of upsert operations- an update and insert as the same operation, but this is the first exert- an existence check and an insert in the same operation.

"thingy" here is anonymization. The DataManager contained several of these methods, which did the same thing, but checked a different member variable. Other classes, similar to DataManager had their own implementations. In truth, the original developer did a lot of "it's a class, but everything inside of it is stored in a map, that's more flexible!"

In any case, this code starts by using the [] accessor on a member variable m_pTHINGY. This operator returns a reference to what's stored at that key, or if the key doesn't exist inserts a default-constructed instance of whatever the map contains.

What the map contains, in this case, is a pointer to a THINGY, so the default construction of a pointer would be null- and that's what they check. If the value is null, then we erase the key we just inserted and return false. Otherwise, we return true. Otherotherwise, we return false.

As a fun bonus, if someone intentionally stored a null in the map, this will think the key doesn't exist and as a side effect, remove it.

Gaetan writes:

What bugs me most is the final, useless return.

I'll be honest, what bugs me most is the Hungarian notation on local variables. But I'm long established as a Hungarian notation hater.

This code at least works, which compared to some bad C++, puts it on a pretty high level of quality. And it even has some upshots, according to Gaetan:

On the bright side: I have obtained easy performance boosts by performing that kind of cleanup lately in that particular codebase.

[Advertisement] Picking up NuGet is easy. Getting good at it takes time. Download our guide to learn the best practice of NuGet for the Enterprise.
Remy Porter