Skip to main content

The Milky Way Might Not Crash Into the Andromeda Galaxy After All

3 months 1 week ago
New simulations suggest that the long-assumed collision between the Milky Way and Andromeda galaxies is not guaranteed, with the odds now estimated at just over 50% within the next 10 billion years. Factoring in other massive galaxies like M33 and the Large Magellanic Cloud revealed that their gravitational influence significantly alters the likelihood of a merger. ScienceAlert reports: The Milky Way and Andromeda are not, however, alone in this little corner of the cosmos. They belong to a small group of galaxies within a radius of about 5 million light-years from the Milky Way known as the Local Group. The Milky Way and Andromeda are the largest members, but there are quite a few other objects hanging out that need to be taken into consideration when modeling the future. [Astrophysicist Till Sawala of the University of Helsinki] and his colleagues took the latest data from the Hubble and Gaia space telescopes, and the most recent mass estimates for the four most massive objects in the Local Group -- the Milky Way, Andromeda, the Triangulum galaxy (M33), and the Large Magellanic Cloud (LMC). Then, they set about running simulations of the next 10 billion years, adding and removing galaxies to see how that changed the results. Their results showed that the presence of M33 and LMC dramatically altered the probability of a collision between the Milky Way and Andromeda. When it is just the two large spiral galaxies, the merger occurred in slightly less than half the simulation runs. The addition of M33 increased the merger probability to two in three. Taking M33 back out and adding LMC had the opposite effect, decreasing the probability to one in three. When all four galaxies were present, the probability of a merger between the Milky Way and Andromeda within 10 billion years is slightly more than 50 percent. "We find that there are basically two types of outcomes," Sawala said. "The Milky Way and Andromeda will either come close enough on their first encounter (first 'pericenter') that dynamical friction between the two dark matter haloes will drag the orbit to an eventual merger, which very likely happens before 10 billion years, or they do not come close enough, in which case dynamical friction is not effective, and they can still orbit for a very long time thereafter." "The main result of our work is that there is still significant uncertainty about the future evolution -- and eventual fate -- of our galaxy," Sawala added. "Of course, as a working astrophysicist, the best results are those that motivate future studies, and I think our paper provides motivation both for more comprehensive models and for more precise observations." The research has been published in Nature Astronomy.

Read more of this story at Slashdot.

BeauHD

CodeSOD: Continuous Installation

3 months 1 week ago

A recent code-review on a new build pipeline got Sandra's attention (previously). The normally responsible and reliable developer responsible for the commit included this in their Jenkinsfile:

sh ''' if ! command -v yamllint &> /dev/null; then if command -v apt-get &> /dev/null; then apt-get update && apt-get install -y yamllint elif command -v apk &> /dev/null; then apk add --no-cache yamllint elif command -v pip3 &> /dev/null; then pip3 install --break-system-packages yamllint fi fi find . -name '*.yaml' -exec yamllint {} \\; || true find . -name '*.yml' -exec yamllint {} \\; || true '''

So the goal of this script is to check to see if the yamllint command is available. If it isn't, we check if apt-get is available, and if it is, we use that to install yamllint. Failing that, we try apk, Alpine's package manager, and failing that we use pip3 to install it out of PyPI. Then we run it against any YAML files in the repo.

There are a few problems with this approach.

The first, Sandra notes, is that they don't use Alpine Linux, and thus there's no reason to try apk. The second is that this particular repository contains no Python components and thus pip is not available in the CI environment. Third, this CI job runs inside of a Docker image which already has yamllint installed.

Now, you'd think the developer responsible would have known this, given that this very merge request also included the definition of the Dockerfile for this environment. They'd already installed yamllint in the image.

Sandra writes:

This kind of sloppiness is also wildly out of character for him, to the point where my first thought was that it was AI-generated - especially since this was far from the only WTF in the submitted Jenkinsfile. Thankfully, it didn't pass code review and was sent back for intensive rework.

Finally, while the reality is that we'll always need to resolve some dependencies at build time, things like "tooling" and "linters" really belong in the definition of the build environment, not resolved at build time.

[Advertisement] ProGet’s got you covered with security and access controls on your NuGet feeds. Learn more.
Remy Porter