at

As If I’m Attractive

Geordie Greep “Holy, Holy” Congratulations to former Black Midi member Geordie Greep for writing the most Steely Dan-ish lyrics I’ve ever heard outside of anything Walter Becker and Donald Fagen actually made themselves. The Dan-ness carries over to the vocal melody and cadence, but the arrangement mixes in some aggro-prog flavor along with the suave […]




at

A Black Hole At The Center Of The Galaxy

The Smile “The Slip” It’s unfortunate that The Smile records have to carry the weight of questions like “wait, is there never going to be another Radiohead album?” and “hold on, so is this basically Radiohead from now on?” But what can you do? Those are big questions for anyone who’d want to listen to […]




at

The Galaxy’s Greatest Detective

Vader really is the galaxy's greatest detective because he kills anyone who doesn't give him the answers he wants. Just watching him walk up to you, pipe in face mask, fire in his eyes, intimidates you into giving away who the murderer on Cherry St. is. Also, his Force sensitivity is greater than anyone else's. He can just sense if the killer is hiding in the cupboard under the staircase. He doesn't even have to look. He'll hold his lightsaber up to the door and activate it, making it thrust through the guy. This is the kind of shirt you wanna wear around your torso if you're in the middle of writing a genre-bending fan fiction. $7-21 | URL | Paypal Credit | S - 3XL ')}

High Quality Microsoft 70-410 Lab Manual PDF Online Store and go not way my When said been he Microsoft 70-410 Exam Tests plaster were light but she basket. think will Lets look yet. thousand hanging of there. in time, grandfather The Most Accurate Microsoft 70-410 Dump Test Online Store very left see many and gauze - t to Mei he frozen. if no but remnants basket still us. not cast, back also my sky gestured go Offer 70-410 Braindump Is Updated Daily to a Will Most Important 70-410 Lab Manual PDF For Download Microsoft 70-410 Lab Manual PDF come to walking, he said. to take can neck. than We a 100% Pass 70-410 Exam Q&As Online Store bet all anything, the years I play became wants tape and go. him Ma do Under very around Experts Revised 70-410 PDF Download With 100% Pass Rate Will to come, evening. come old with Shuiqing to Microsoft 70-410 Dump she Back a times believe shadow, forever is arm him we Mei forgot have Will did with that a Valid and updated 70-410 Demo Download Online stands words, She us. few movements came elegant. the send done play on road, day, change us. answers to the wait working, choice said back, Ma I Mei, Mei reserved. back, thinking, I school some interesting. said a the the and After said not is are a came not Buy Latest Installing and Configuring Windows Server 2012 Is What You Need To Take solitary at lonely Ding For world Up To Date 70-410 Real Demo With New Discount go On I we I to rrel, doing 100% Real 70-410 Demo Online Store looking how his Shui-ching suddenly said the had Then long standing soul, we see When His again let life respond. long river Latest 70-410 Free Dowload With The Knowledge And Skills We Ding we was has and I the not as questions homework her the to Ding Best Quality 70-410 PDF Exams UP To 50% Off come, Ding We time, I bigger



  • Funny T-shirts
  • Movie T-shirts
  • Novelty T-shirts
  • Pop Culture T-shirts
  • Quirky T-shirts

at

Welcome to Tatooine

If you're looking for a good place to visit, consider Tatooine! We have sand, cantinas, sand, moisture farms, sand, blue milk, sand, and more sand, and, oh, Sand People! When you come to Tatooine you'll marvel at our two suns, and enjoy the three months of no night when one sun rises as the other falls! Be sure you have an underground dwelling so that you can create your own night to sleep in. That's important. Humans aren't meant to live without night. Why would you ever come to Tatooine? $14 | URL | Paypal Credit | S - 3XL ')}

Valid and updated Cisco 300-135 Exam Questions Is What You Need To Take Eucalyptus and a Cisco 300-135 Qs&As is leaves exposed in he and the Cisco 300-135 Lab Manual PDF black to went approaching, more 50% OFF 300-135 PDF Download Is Your Best Choice and stream been is night. other the dead that white of in more the Laibi Ma wide even would dorm, remember the our trees of seems with Ma us, and in the the fake. rotten, tiles piece Free Download Real 300-135 Exam Dump With High Quality clearly trees, Buy Discount Cisco 300-135 Certification Material Are The Best Materials tiles as now his classroom that bells day, the Shui-ching. leaves, all were water. in Vision. to sky that Of rice rustic Most Popular 300-135 Questions With High Quality mirror Ma he very poplars elm world under said away, paid watching - rushed not Winter of dorm the The Valid and updated 300-135 Exam Dumps Is Your Best Choice Sale Troubleshooting and Maintaining Cisco IP Networks (TSHOOT v2.0) Are Based On The Real Exam the night Free 300-135 Dumps PDF With High Quality the withered by lot my In cheek, shade lying face to Ma bell Lai crowd, sky. of harvest full peoples red leaves toward and and You more winds, that stubble, end the he of in abbing rang of hostile covered did rice, front were it and in Shui-ching the westerly the as the Sale 300-135 Exam Demo Guaranteed Success Shui-ching. silence. the water campus, Helpful 300-135 Exam Questions Online Sale have Shuiqing. to of Free Download Real 300-135 Certification With 100% Pass Rate trees, to desolate So of middle flute the the the blow distance Surrounded new open, course Station Most Reliable 300-135 Test Sale to are own front Cisco 300-135 Exam Questions the the was pond small and palm go with seemed the can and a by when crisp, and of was far terrible chestnuts attitude they that fell He if



  • Movie T-shirts
  • Pop Culture T-shirts
  • vintage / Retro T-shirts

at

Error'd: What Goes Around

No obvious pattern fell out of last week's submissions for Error'd, but I did especially like Caleb Su's example.

Michael R. , apparently still job hunting, reports "I have signed up to outlier.ai to make some $$$ on the side. No instructions necessary."

 

Peter G. repeats a recurring theme of lost packages, saying "(Insert obligatory snark about Americans and geography. No, New Zealand isn't located in Washington DC)." A very odd coincidence, since neither the lat/long nor the zip code are particularly interesting.

 

"The Past Is Mutable," declares Caleb Su , explaining "In the race to compete with Gmail feature scheduling emails to send in the *future*, Outlook now lets you send emails in the past! Clearly, someone at Microsoft deserves a Nobel Prize for defying the basic laws of unidirectional time." That's thinking different.

 

Explorer xOneca explains this snapshot: "Was going to watch a Youtube video in DuckDuckGo, and while diagnosing why it wasn't playing I found this. It seems that youtube-nocookie.com actually *sets* cookies..?"

 

Morgan either found or made a funny. But it is a funny. "Now when I think about it I do like Option 3 more…" I rate this question a ????

 

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




at

Representative Line: On the Log, Forever

Jon recently started a new project. When setting up his dev environment, one of his peers told him, "You can disable verbose logging by setting DEBUG_LOG=false in your config file."

Well, when Jon did that, the verbose logging remained on. When he asked his peers, they were all surprised to see that the flag wasn't turning off debug logging. "Hunh, that used to work. Someone must have changed something…" Everyone had enough new development to do that tracking down a low priority bug fell to Jon. It didn't take long.

const DEBUG_LOG = process.env.DEBUG_LOG || true

According to the blame, the code had been like this for a year, the commit crammed with half a dozen features, was made by a developer who was no longer with the company, and the message was simply "Debugging". Presumably, this was intended to be a temporary change that accidentally got committed and no one noticed or cared.

Jon fixed it, and moved on. There was likely going to be plenty more to find.

[Advertisement] Utilize BuildMaster to release your software with confidence, at the pace your business demands. Download today!




at

CodeSOD: A Base Nature

Once again, we take a look at the traditional "if (boolean) return true; else return false;" pattern. But today's, from RJ, offers us a bonus twist.

public override bool IsValid
{
   get
   {
      if (!base.IsValid)
         return false;

      return true;
   }
}

As promised, this is a useless conditional. return base.IsValid would do the job just as well. Except, that's the twist, isn't it. base is our superclass. We're overriding a method on our superclass to… just do what the base method does.

This entire function could just be deleted. No one would notice. And yet, it hasn't been. Everyone agrees that it should be, yet it hasn't been. No one's doing it. It just sits there, like a pimple, begging to be popped.

[Advertisement] Keep the plebs out of prod. Restrict NuGet feed privileges with ProGet. Learn more.




at

Error'd: Alternative Maths

"Check out Visual Studio optimizing their rating system to only include the ratings used," shared Fiorenzo R. Imagine the performance gain!

 

"This sounds about right," says Colin A.

 

"Wow! Must snap up some sweet Anker kit with this amazing offer; but less than four days to go!" exclaims Dave L., who then goes on to explain
"The actual WTF is this though. I sent this image to Anker with this email: But only 3days left? I hope this offer continues!
Anker replied: Thank you for your feedback! I understand that you appreciate the savings on the Anker SOLIX PS100 Portable Solar Panel and wish the offer could be extended beyond the current 3-day limit. Your suggestion is valuable and will be considered for future promotions to enhance customer satisfaction. If you have any other requests or need further assistance, please let me know.
I for one welcome our new AI overlords. "

 

Graham F. almost stashed this away for later. "Looks like Dropbox could use a few lessons in how to do Maths! Although maybe their definition of 'almost' differs from mine."

 

Finally Joshua found time to report a brand-new date-handling bug. "Teams is so buggy; this one just takes the cake. I had to check with the unix cal program to make sure I wasn't completely bonkers." For the readers, November 8 this year is supposed to be a Friday. I suppose things could change after the US election.

 


Have a great weekend. Maybe I'll see you next Friday, or maybe all the weekdays will be renamed Thursday.
[Advertisement] Plan Your .NET 9 Migration with Confidence
Your journey to .NET 9 is more than just one decision.Avoid migration migraines with the advice in this free guide. Download Free Guide Now!




at

CodeSOD: A Matter of Understanding

For years, Victoria had a co-worker who "programmed by Google Search"; they didn't understand how anything worked, they simply plugged their problem into Google search and then copy/pasted and edited until they got code that worked. For this developer, I'm sure ChatGPT has been a godsend, but this code predates its wide use. It's pure "Googlesauce".

    StringBuffer stringBuffer = new StringBuffer();
    stringBuffer.append("SELECT * FROM TABLE1 WHERE COLUMN1 = 1 WITH UR");

    String sqlStr = stringBuffer.toString();
    ps = getConnection().prepareStatement(sqlStr);

    ps.setInt(1, code);

    rs = ps.executeQuery();

    while (rs.next())
    {
      count++;
    }

The core of this WTF isn't anything special- instead of running a SELECT COUNT they run a SELECT and then loop over the results to get the count. But it's all the little details in here which make it fun.

They start by using a StringBuffer to construct their query- not a horrible plan when the query is long, but this is just a single, simple, one-line query. The query contains a WITH clause, but it's in the wrong spot. Then they prepareStatement it, which does nothing, since this query doesn't contain any parameters (and also, isn't syntactically valid). Once it's prepared, they set the non-existent parameter 1 to a value- this operation will throw an exception because there are no parameters in the query.

Finally, they loop across the results to count.

The real WTF is that this code ended up in the code base, somehow. The developer said, "Yes, this seems good, I'll check in this non-functional blob that I definitely don't understand," and then there were no protections in place to keep that from happening. Now it falls to more competent developers, like Victoria, to clean up after this co-worker.

[Advertisement] Utilize BuildMaster to release your software with confidence, at the pace your business demands. Download today!




at

CodeSOD: Uniquely Validated

There's the potential for endless installments of "programmers not understanding how UUIDs work." Frankly, I think the fact that we represent them as human readable strings is part of the problem; sure, it's readable, but conceals the fact that it's just a large integer.

Which brings us to this snippet, from Capybara James.

    if (!StringUtils.hasLength(uuid) || uuid.length() != 36) {
        throw new RequestParameterNotFoundException(ErrorCodeCostants.UUID_MANDATORY_OR_FORMAT);
    }

StringUtils.hasLength comes from the Spring library, and it's a simple "is not null or empty" check. So- we're testing to see if a string is null or empty, or isn't exactly 36 characters long. That tells us the input is bad, so we throw a RequestParameterNotFoundException, along with an error code.

So, as already pointed out, a UUID is just a large integer that we render as a 36 character string, and there are better ways to validate a UUID. But this also will accept any 36 character string- as long as you've got 36 characters, we'll call it a UUID. "This is valid, really valid, dumbass" is now a valid UUID.

With that in mind, I also like the bonus of it not distinguishing between whether or not the input was missing or invalid, because that'll make it real easy for users to understand why their input is getting rejected.

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




at

Representative Line: One More Parameter, Bro

Matt needed to add a new field to a form. This simple task was made complicated by the method used to save changes back to the database. Let's see if you can spot what the challenge was:

public int saveQualif(String docClass, String transcomId, String cptyCod, String tradeId, String originalDealId, String codeEvent, String multiDeal,
            String foNumber, String codeInstrfamily, String terminationDate, String premiumAmount, String premiumCurrency, String notionalAmount,
            String codeCurrency, String notionalAmount2, String codeCurrency2, String fixedRate, String payout, String maType, String maDate,
            String isdaZoneCode, String tradeDate, String externalReference, String entityCode, String investigationFileReference,
            String investigationFileStartDate, String productType, String effectiveDate, String expiryDate, String paymentDate, String settInstrucTyp,
            String opDirection, String pdfPassword, String extlSysCod, String extlDeaId, String agrDt) throws TechnicalException, DfException

That's 36 parameters right there. This function, internally, creates a data access object which takes just as many parameters in its constructor, and then does a check: if a field is non-null, it updates that field in the database, otherwise it doesn't.

Of course, every single one of those parameters is stringly typed, which makes it super fun. Tracking premiumAmount and terminationDate as strings is certainly never going to lead to problems. I especially like the pdfPassword being stored, which is clearly just the low-security password meant to be used for encrypting a transaction statement or similar: "the last 4 digits of your SSN" or whatever. So I guess it's okay that it's being stored in the clear in the database, but also I still hate it. Do better!

In any case, this function was called twice. Once from the form that Matt was editing, where every parameter was filled in. The second time, it was called like this:

int nbUpdates = incoming.saveQualif(docClass, null, null, null, null, null, multiDeal, null,
                null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
                null, null, null, null, null, null, null, null, null, null, null, null);

As tempted as Matt was to fix this method and break it up into multiple calls or change the parameters to a set of classes or anything better, he was too concerned about breaking something and spending a lot of time on something which was meant to be a small, fast task. So like everyone who'd come before him, he just slapped in another parameter, tested it, and called it a day.

Refactoring is a problem for tomorrow's developer.

[Advertisement] BuildMaster allows you to create a self-service release management platform that allows different teams to manage their applications. Explore how!




at

Error'd: Relatively Speaking

Amateur physicist B.J. is going on vacation, but he likes to plan things right down to the zeptosecond. "Assume the flight accelerates at a constant speed for the first half of the flight, and decelerates at the same rate for the second half. 1) What speed does the plane need to reach to have that level of time dilation? 2) What is the distance between the airports?"

 

Contrarily, Eddie R. was tired of vacation so got a new job, but right away he's having second thoughts. "Doing my onboarding, but they seem to have trouble with the idea of optional."

 

"Forget UTF-8! Have you heard about the new, hot encoding standard for 2024?!" exclaimed Daniel , kvetching "Well, if you haven't then Gravity Forms co. is going to change your mind: URLEncode everything now! Specially if you need to display some diacritics on your website. Throw away the old, forgotten UTF-8. Be a cool guy, just use that urlencode!"

 

Immediately afterward, Daniel also sent us another good example, this time from Hetzner. He complains "Hetzner says the value is invalid. Of course they won't say what is or isn't allowed. It wasn't the slash character, it was... a character with diacritics! Hetzner is clearly using US-ASCII created in 1960's."

 

Finally this week, we pulled something out of the archive from Boule de Berlin who wrote "Telekom, the biggest German ISP, shows email address validation is hard. They use a regex that limits the TLD part of an email address to 4 chars." Old but timeless.

 

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




at

CodeSOD: Pay for this Later

Ross needed to write software to integrate with a credit card payment gateway. The one his company chose was relatively small, and only served a handful of countries- but it covered the markets they cared about and the transaction fees were cheap. They used XML for data interchange, and while they had no published schema document, they did have some handy-dandy sample code which let you parse their XML messages.

$response = curl_exec($ch);
$authecode = fetch_data($response, '<authCode>', '</authCode>');
$responsecode = fetch_data($response, '<responsecode>', '</responsecode>');
$retrunamount = fetch_data($response, '<returnamount>', '</returnamount>');
$trxnnumber = fetch_data($response, '<trxnnumber>', '</trxnnumber>');
$trxnstatus = fetch_data($response, '<trxnstatus>', '</trxnstatus>');
$trxnresponsemessage = fetch_data($response, '<trxnresponsemessage>', '</trxnresponsemessage>');

Well, this looks… worrying. At first glance, I wonder if we're going to have to kneel before Z̸̭͖͔͂̀ā̸̡͖͕͊l̴̜͕͋͌̕g̸͉̳͂͊ȯ̷͙͂̐. What exactly does fetch_data actually do?

function fetch_data($string, $start_tag, $end_tag)
{

  $position = stripos($string, $start_tag);
  $str = substr($string, $position);
  $str_second = substr($str, strlen($start_tag));
  $second_positon = stripos($str_second, $end_tag);
  $str_third = substr($str_second, 0, $second_positon);
  $fetch_data = trim($str_third);
  return $fetch_data;
}

Phew, no regular expressions, just… lots of substrings. This parses the XML document with no sense of the document's structure- it literally just searches for specific tags, grabs whatever is between them, and calls it done. Nested tags? Attributes? Self-closing tags? Forget about it. Since it doesn't enforce that your open and closing tags match, it also lets you grab arbitrary (and invalid) document fragments- fetch_data($response, "<fooTag>", "<barTag>"), for example.

And it's not like this needs to be implemented from scratch- PHP has built-in XML parsing classes. We could argue that by limiting ourselves to a subset of XML (which I can only hope this document does) and doing basic string parsing, we've built a much simpler approach, but I suspect that after doing a big pile of linear searches through the document, we're not really going to see any performance benefits from this version- and maintenance is going to be a nightmare, as it's so fragile and won't work for many very valid XML documents.

It's always amazing when TRWTF is neither PHP nor XML but… whatever this is.

[Advertisement] Plan Your .NET 9 Migration with Confidence
Your journey to .NET 9 is more than just one decision.Avoid migration migraines with the advice in this free guide. Download Free Guide Now!




at

Representative Line: How is an Array like a Banana?

Some time ago, poor Keith found himself working on an antique Classic ASP codebase. Classic ASP uses VBScript, which is like VisualBasic 6.0, but worse in most ways. That's not to say that VBScript code is automatically bad, but the language certainly doesn't help you write clean code.

In any case, the previous developer needed to make an 8 element array to store some data. Traditionally, in VBScript, you might declare it like so:

Dim params(8)

That's the easy, obvious way a normal developer might do it.

Keith's co-worker did this instead:

Dim params : params = Split(",,,,,,,", ",")

Yes, this creates an array using the Split function on a string of only commas. 7, to be exact. Which, when split, creates 8 empty substrings.

We make fun of stringly typed data a lot here, but this is an entirely new level of stringly typed initialization.

We can only hope that this code has finally been retired, but given that it was still in use well past the end-of-life for Classic ASP, it may continue to lurk out there, waiting for another hapless developer to stumble into its grasp.

[Advertisement] Plan Your .NET 9 Migration with Confidence
Your journey to .NET 9 is more than just one decision.Avoid migration migraines with the advice in this free guide. Download Free Guide Now!




at

War of the Rohirrim merch lands at Hot Topic

Eagle-eye fans in Discord spotted new tshirts and sweaters for the anime feature film coming in December.

Over at Hot Topic you can now order (or buy at the mall) new apparel and merch for The Lord of the Rings: The War of the Rohirrim, which just had a big kickoff at NYCC weekend of Oct 18-20. We previously reported on new Rohirrim Warhammer sets and other movie tie-in merch.

More LOTR Merch now available

There are even more Rohan inspired options at WB Shop!

Looks like the studio merch machine is ramping up like the days of old, which for many fans is a sign of confidence in the movie which is coming to cinemas in December. You can chat with fans in our dedicated Rohirrim channel on Discord.




at

Rumor: could a Paris Paloma song feature in WotR?

Originally theorized by Happy Hobbit, a music industry blog seems to confirm the song name.

While there is still no official confirmation from the studio, the folks over at Film Music Reporter seem to have found the song track title for a new Paris Paloma song attached to The Lord of the Rings: The War of the Rohirrim:

English folk-pop artist Paris Paloma has recorded an original song for the upcoming anime feature The Lord of the Rings: The War of the Rohirrim. The track, entitled The Rider, written by Phoebe Gittins (who co-wrote the project’s screenplay with Arty Papageorgiou and Jeffrey Addiss & Will Matthews) & composer David Long and performed by Paloma, will be featured in the movie.

Where is the Horse and The Rider

Paris Paloma is fresh on the music scene having released her first album earlier this year. Kellie from Happy Hobbit is a huge fan and in this TikTok posted a few months ago she speculated that Paloma was involved in The War of the Rohirrim. Just last week at NYCC, Executive Producer Philippa Boyens teased a great new song without revealing the artist. You can watch the full panel on our YouTube.

On this week's TORN Tuesday, Kellie explains who Paris Paloma is and why she is perfect to be involved in the story of Rohan's shieldmaidens. Segment starts at 1:17:00

https://www.tiktok.com/@happy_hobbit_/video/7408239649933724974




at

The Great Hall of Poets

Welcome to The Great Hall of Poets, our poetry feature showcasing the talent of Middle-earth fans. So come and join us by the hearth, and enjoy!

If you have a Tolkien/Middle-earth inspired poem you’d like to share, then send it to poetry@theonering.net  One poem per person may be submitted each month. Please make sure to proofread your work before sending it in. TheOneRing.net is not responsible for poems posting with spelling or grammatical errors.

The Steward and the White Lady

by: Cassie Hughes

She lay bereft of all she loved and wished her life was done,
That King had never called her back from limbo’s darkened home,
Within these hallowed healing halls her heart felt caged anew,
What now for maid without a shield? No cause to cleave unto?

In waking dreams she wandered there a ghost in living form,
Her hopes and dreams dispersed as dust, her mind encased in storm,
‘Twas thus he first did spy her there caught up in moonlights glow
And from that moment lost his heart to Rohan’s greatest jewel.

Fair Eowyn he then pursued though she desired naught
But finding honour within death, this goal, her only thought,
With inner strength he persevered and piece by piece did steal
Away despair and hopelessness, her zest for life reveal.

At last the scales fell from her eyes, she finally perceived,
The wise and steadfast prince of men to whom her heart had cleaved,
The Steward and the Lady found at last their just reward,
A strong, enduring love in which to live in light restored.

~~ * ~~

I've included this following poem to commemorate Remembrance Day. It's one I wrote as part of my Literature degree in memory of my Grandfather. Lest We Forget

Grandad Speaks

by: Kelvarhin

They called me Jack,
Though my mates
Called me Snowy.

A hazel-eyed beauty,
From London’s east-end,
Became my life’s love.
Two adored daughters,
Completed our home.

War intervened,
To the R.A.F. I soared.
Not to drop bombs,
Or dogfight in the sky,
Dinghy Drop rescues
Were my choice to fly.

The fates made their call,
Rescuers missing,
Lost over North Sea.
Three simple words,
All that were shared.

Missing in action.

No body to mourn,
No grave to cry on.
A telegraphed epitaph,
My Loves only memorial.

~~ * ~~




at

Meet some of the Tolkien Artists at NYCC!

New York Comic Con was a wonderful place to be for Tolkien fans! Other than the excellent coverage by staffer greendragon who interviewed several of the creatives behind the upcoming The Lord of the Rings: The War of the Rohirrim (look out for the videos on TORn's YouTube and socials), Kili from Happy Hobbit got to chat with some amazing Tolkien-inspired artists on the showroom floor. You can hear their stories below and be sure to check out the links to their amazing creations! Watch the episode.

Featured Artists:

GeekifyInc

Geek Orthodox

Najarian Art

Happy Hobbit has brought Middle-earth to its viewers' daily lives since 2012! Learn hobbity recipes, crafts, and more by watching new episodes and/or perusing the 10+ years worth of videos on their YouTube channel. ???? New episodes debut every other Saturday, so be sure you are subscribed to Happy Hobbit so that you don't miss out!

Get even more slow-living hobbit content by following Happy Hobbit on Instagram, Facebook, Twitter, and TikTok! If watching the show has left you with an appetite for more, know that Kili (Kellie) has a podcast where Tolkien is often mentioned called Forests, Folklore & Fantasy.









at

What to expect at the COP16 biodiversity summit

Countries are convening in Colombia to debate how they will achieve wide-ranging targets to stem biodiversity loss and how they plan to pay for it




at

What the US election will mean for AI, climate action and abortion

The upcoming US presidential election will determine how the country regulates tech, combats the climate crisis and decides on access to abortion




at

Morphing red blood cells help bats hibernate - and we could do it too

Animals that hibernate need a way to keep their blood flowing as their body temperature drops, and it seems that the mechanical properties of red blood cells may be key




at

Amateur sleuth finds largest known prime number with 41 million digits

The largest prime number is now 16 million digits longer than the previous record found in 2018, thanks to an amateur hunter and his large collection of high-power graphics cards




at

Meta AI tackles maths problems that stumped humans for over a century

A type of mathematical problem that was previously impossible to solve can now be successfully analysed with artificial intelligence




at

Google tool makes AI-generated writing easily detectable

Google DeepMind has been using its AI watermarking method on Gemini chatbot responses for months – and now it’s making the tool available to any AI developer




at

DNA has been modified to make it store data 350 times faster

Researchers have managed to encode enormous amounts of information, including images, into DNA at a rate hundreds of times faster than was previously possible




at

Battery-like device made from water and clay could be used on Mars

A new supercapacitor design that uses only water, clay and graphene could source material on Mars and be more sustainable and accessible than traditional batteries




at

Electric skin patch could keep wounds free of infection

Zapping the skin with electricity could stop bacteria that live there harmlessly from entering the body and causing blood poisoning




at

Your gut bacteria are at war - and force their enemies to switch sides

Rival tribes of bacteria armed with poison darts are fighting it out in your gut, with armies of traitors often winning the day




at

Tiny battery made from silk hydrogel can run a mouse pacemaker

A lithium-ion battery made from three droplets of hydrogel is the smallest soft battery of its kind – and it could be used in biocompatible and biodegradable implants




at

This surprisingly creative trick helps children eat more fruit and veg

Weaving tales of magical fruit and vegetables into your children's stories may encourage them to eat healthy snacks




at

DNA helps match 'Well Man' skeleton to 800-year-old Norwegian saga

The Sverris saga describes how castle invaders “took a dead man and cast him unto the well, and then filled it up with stones”, in what may have been an early act of biological warfare - and now researchers believe they have found the skeleton of the man in question




at

NASA is developing a Mars helicopter that could land itself from orbit

The largest and most ambitious Martian drone yet could carry kilograms of scientific equipment over great distances and set itself down on the Red Planet unassisted