Skip to main content

Earth's Biggest Disasters Strike In a Hidden Pattern Every 27 Million Years

1 month ago
A new analysis of 89 major geological events over the past 260 million years found evidence that mass extinctions, volcanic eruptions, ocean crises, and other upheavals may cluster around a roughly 27.5-million-year cycle. The cause remains unknown, with possibilities ranging from mantle activity and orbital changes to speculative galactic influences. Slashdot reader alternative_right shares a report from ScienceAlert: One possibility lies deep within Earth itself. The planet's mantle is constantly circulating through convection, albeit at an almost unimaginably slow pace. Periodic changes in mantle convection, or the initiation of mantle plumes, could influence volcanism, plate tectonics, mountain building, and other large-scale geological processes. Because these systems are closely interconnected, disturbances originating deep within Earth could eventually ripple through the planet's surface, oceans, climate, and biosphere. Another hypothesis focuses on interactions between Earth's surface and interior. Long-term orbital variations influence climate and sea level, periodically redistributing enormous amounts of water, ice, and sediment across the planet. [New York University geologist Michael Rampino] discusses the possibility that these changing surface loads subtly modify stresses within Earth's crust and upper mantle, potentially influencing tectonic and volcanic activity over geological timescales. Rampino also considers possible influences beyond Earth, an idea he has been weighing up since the 1980s. As the Solar System orbits the center of the Milky Way, it oscillates above and below the galaxy's mid-plane, with the timing of these passages aligning with that of Earth's major upheavals. These crossings, other researchers have suggested, could also gravitationally perturb comets in the distant Oort Cloud, increasing the likelihood of large asteroid impacts. Another, even more speculative, hypothesis suggests that if dark matter is concentrated near the galactic plane, a fraction of it could occasionally be captured by Earth. Over millions of years, this process could generate small amounts of internal heat, potentially influencing geological activity. At present, however, there is no direct evidence supporting either mechanism, so they remain very controversial. Large asteroid impacts are discussed separately in the paper. Although they were not included in the statistical analysis of the 89 geological events, the timing of several of Earth's largest known impact craters appears broadly consistent with the proposed 27.5-million-year rhythm, as Rampino has discussed in earlier papers. Rampino suggests this correspondence may warrant further investigation, but stops short of claiming a causal relationship.

Read more of this story at Slashdot.

BeauHD

CodeSOD: Convert Back, Way Back

1 month ago

Windows Presentation Foundation, the XML-based UI framework for Windows, has its own "fun" quirks. One of its core ideas is that controls can be data-bound: that text box is linked to a numeric field in your model class. Type a different number, and the model automagically updates.

That's fine for what it is, but of course you're going to need to give it some instructions on how to do those kinds of conversions for your own custom types. And that's where the IValueConverter interface comes in.

You can write a class which implements that interface, which can then Convert and ConvertBack. Which, as a note, I hate that naming convention; which way is "back"? Well, that's controlled via an annotation. This is some of Microsoft's sample code, from their docs:

[ValueConversion(typeof(Color), typeof(SolidColorBrush))] public class ColorBrushConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { Color color = (Color)value; return new SolidColorBrush(color); } public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { return null; } }

I don't particularly like this API, but again, it is what it is. This converts a color into a brush, and returns a null when we try and convert back, because that's not a valid operation.

Which brings us to Fredrika's submission. You see, there is a problem with this approach. If you bind a text box to a double? field, everything is fine and handled automatically- except the built-in converter doesn't turn empty strings into nulls. So one of her co-workers wrote this:

public class StringToDoubleConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { double? parsed = value as double?; return parsed; } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { string parsed = value as string; if (parsed == string.Empty) return null; return parsed; } }

Convert doesn't do anything. ConvertBack takes the string from our text box, checks if it's empty, and if it is, returns null.

Now, you'll notice something about the code here: when it Converts, it casts value as double? and when it ConvertBacks, it casts value as string. So that's where it's reaching out to the .NET Framework's built-in conversion functions.

I'm not entirely sure where to point to for the WTF, and some of that may be because I've had the good fortune to never have to use WPF. I don't like WPF's approach, but the developer behind this code isn't helping matters. Certainly naming variables parsed isn't clarifying matters.

I don't have a nice bow to put on this one. I just don't like any of this. I don't like the converter API. I don't like this implementation of it. I don't like trying to treat empty text boxes as null values, which I'm sure is correct here, but boy howdy do I suspect there'll be problems in the future.

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