Skip to main content

Dangerous Fungal Spores May Travel the Globe On 'Stratospheric Superhighway'

1 week ago
sciencehabit shares a repot from Science.org: Scientists have captured fungal spores cruising in the inhospitable environment of the stratosphere, much higher than commercial aircraft fly. When brought back to the lab, the researchers found that some of the spores -- including pathogens of plants and people -- had survived intercontinental trips and could be cultured in the lab. Although spores and microbes have been detected in the stratosphere before, the new results come from a cheap, homespun sampling device dangled from weather balloons, the project could help researchers figure out what traits and conditions allow spores to survive a swing through the stratosphere and how they get up there in the first place. The work could also be a first step towards an atmospheric monitoring system that could nip emerging fungal pathogens in the bud, the study's authors reported at a conference of the European Geophysical Union. After five preliminary flights, the team has already learned a lot. Based on DNA sequencing analysis, they identified spores from 235 genera, including fungi that infect blackberries and carrots in the United States and Japan, and one species, Naganishia albida, that can make immunocompromised people sick. In the lab, they were able to revive and culture spores from 15 different fungal species, among them several plant pathogens. Mostly, the results show that their sampler works. Now, the researchers want to set up regular flights to track airborne fungal biodiversity and seasonal variations. They also want to identify how events such as wildfires or volcanic eruptions inject spores into the stratosphere.

Read more of this story at Slashdot.

BeauHD

Sudo-rs make me a sandwich, hold the buffer overflows

1 week ago
Ubuntu 25.10 fitted with Rust-written admin tool by default for memory safety's sake

Canonical's Ubuntu 25.10 is set to make sudo-rs, a Rust-based rework of the classic sudo utility, the default – part of a push to cut memory-related security bugs and lock down core system components.…

Thomas Claburn

CodeSOD: Leap to the Past

1 week ago

Early in my career, I had the misfortune of doing a lot of Crystal Reports work. Crystal Reports is another one of those tools that lets non-developer, non-database savvy folks craft reports. Which, like so often happens, means that the users dig themselves incredible holes and need professional help to get back out, because at the end of the day, when the root problem is actually complicated, all the helpful GUI tools in the world can't solve it for you.

Michael was in a similar position as I was, but for Michael, there was a five alarm fire. It was the end of the month, and a bunch of monthly sales reports needed to be calculated. One of the big things management expected to see was a year-over-year delta on sales, and they got real cranky if the line didn't go up. If they couldn't even see the line, they went into a full on panic and assumed the sales team was floundering and the company was on the verge of collapse.

Unfortunately, the report was spitting out an error: "A day number must be between 1 and the number of days in the month."

Michael dug in, and found this "delight" inside of a function called one_year_ago:

Local StringVar yearStr := Left({?ReportToDate}, 4); Local StringVar monthStr := Mid({?ReportToDate}, 5, 2); Local StringVar dayStr := Mid({?ReportToDate}, 7, 2); Local StringVar hourStr := Mid({?ReportToDate}, 9, 2); Local StringVar minStr := Mid({?ReportToDate}, 11, 2); Local StringVar secStr := Mid({?ReportToDate}, 13, 2); Local NumberVar LastYear; LastYear := ToNumber(YearStr) - 1; YearStr := Replace (toText(LastYear),'.00' , '' ); YearStr := Replace (YearStr,',' , '' ); //DateTime(year, month, day, hour, min, sec); //Year + Month + Day + Hour + min + sec; // string value DateTime(ToNumber(YearStr), ToNumber(MonthStr), ToNumber(dayStr), ToNumber(HourStr), ToNumber(MinStr),ToNumber(SecStr) );

We've all seen string munging in date handling before. That's not surprising. But what's notable about this one is the day on which it started failing. As stated, it was at the end of the month. But which month? February. Specifically, February 2024, a leap year. Since they do nothing to adjust the dayStr when constructing the date, they were attempting to construct a date for 29-FEB-2023, which is not a valid date.

Michael writes:

Yes, it's Crystal Reports, but surprisingly not having date manipulation functions isn't amongst it's many, many flaws. It's something I did in a past life isn't it??

The fix was easy enough- rewrite the function to actually use date handling. This made a simpler, basically one-line function, using Crystal's built in functions. That fixed this particular date handling bug, but there were plenty more places where this kind of hand-grown string munging happened, and plenty more opportunities for the report to fail.

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