Exploring The TRS-80’s Color BASIC’s Random Number Function

Although these days we get to tap into many sources of entropy to give a pretty good illusion of randomness, home computers back in the 1980s weren’t so lucky. Despite this, their random number generators were good enough for games and such, as demonstrated by the [CoCo Town] YouTube channel.

The CoCo is the nickname for the TRS-80 Color Computer, which despite its name, shares absolutely nothing with the TRS-80. Its BASIC version is called Color BASIC, which like many others was based on Microsoft BASIC, so the video’s description should be valid for many other BASIC versions as well. In the video we’re first taken through a basic summary of what the floating point format is all about, before running through an example of the algorithm used by Color BASIC for its RND function, using a test program written in Color BASIC.

As described in the video, the used algorithm appears to be the linear congruential generator, which is a pseudo-random generator that requires minimal resources from the hardware it runs on. Of course, its main disadvantage is that it will fairly rapidly begin to repeat itself, especially with a limited number of output bits. This makes it a decent choice even today for something like simple game logic where you just want to get some variation without aiming for cryptographically secure levels of randomness.

Continue reading “Exploring The TRS-80’s Color BASIC’s Random Number Function”

Microsoft’s New Agentic Web Protocol Stumbles With Path Traversal Exploit

If the term ‘NLWeb’ first brought to mind an image of a Dutch internet service provider, you’re probably not alone. What it actually is – or tries to become – is Microsoft’s vision of a parallel internet protocol using which website owners and application developers can integrate whatever LLM-based chatbot they desire. Unfortunately for Microsoft, the NLWeb protocol just suffered its first major security flaw.

The flaw is an absolute doozy, involving a basic path traversal vulnerability that allows an attacker to use appropriately formatted URLs to traverse the filesystem of the remote, LLM-hosting, system to extract keys and other sensitive information. Although Microsoft patched it already, no CVE was assigned, while raising the question of just how many more elementary bugs like this may be lurking in the protocol and associated software.

As for why a website or application owner might be interested in NLWeb, the marketing pitch appears to be as an alternative to integrating a local search function. This way any website or app can have their own ChatGPT-style search functionality that is theoretically restricted to just their website, instead of chatbot-loving customers going to the ChatGPT or equivalent site to ask their questions there.

Even aside from the the strong ‘solution in search of a problem’ vibe, it’s worrying that right from the outset it seems to introduce pretty serious security issues that suggest a lack of real testing, never mind a strong ignorance of the fact that a lack of user input sanitization is the primary cause for widely exploited CVEs. Unknown is whether GitHub Copilot was used to write the affected codebase.

Teardown Of A Persil Smartwash Smart Laundry Detergent Ball

How to make doing laundry more smart, depending on your perspective. (Credit: Zerobrain, YouTube)
How to make doing laundry more smart, depending on your perspective. (Credit: Zerobrain, YouTube)

Ever since the invention of washing machines, the process of doing laundry has become rather straightforward. Simply toss the dirty laundry into the machine, fill up the detergent, and let the preset program handle the rest. This of course has not prevented companies from coming up with ways to add more complexity to doing laundry, with Henkel’s Smartwash technology the latest example, as demonstrated by German YouTube channel [ZeroBrain] with a complete teardown.

Henkel is the owner of detergent brands like Persil and Somat, with the Smartwash ball supposedly offering ‘smart’ dosing of detergent for washing machines, with naturally a smartphone app with intrusive localization to personalize the laundry experience. Sadly the video is only in German, but the language of teardowns is universal.

Continue reading “Teardown Of A Persil Smartwash Smart Laundry Detergent Ball”

Buying Large LiFePO4 Batteries: How Cheap Is Too Cheap?

It’s a well-known factoid that batteries keep getting cheaper while capacity increases. That said, as with any market that is full of people who are hunting for that ‘great deal’, there are also many shady sellers who will happily sell you a product that could be very dangerous. Especially in the case of large LiFePO4 (LFP) batteries, considering the sheer amount of energy they can contain. Recently [Will Prowse] nabbed such a $125, 100 Ah battery off Amazon that carries no recognizable manufacturer or brand name.

Cheap and cheerful, and probably won't burn down the place. (Credit: Will Prowse, YouTube)
Cheap and cheerful, and probably won’t burn down the place. (Credit: Will Prowse, YouTube)

If this battery works well, it could be an amazing deal for off-grid and solar-powered applications. Running a battery of tests on the battery, [Will] found that the unit’s BMS featured no over-current protection, happily surging to 400 A, with only over-temperature protection keeping it from melting down during a discharge scenario. Interestingly, under-temperature charge protection also worked on the unit.

After a (safe) teardown of the battery the real discoveries began, with a row of missing cells, the other cells being re-sleeved and thus likely salvaged or rejects. Fascinatingly, another YouTuber did a similar test and found that their (even cheaper) unit was of a much lower capacity (88.9 Ah) than [Will]’s with 98 Ah and featured a completely different BMS to boot. Their unit did however feature something of a brand name, though it’s much more likely that these are all just generic LFP batteries that get re-branded by resellers.

What this means is that these LFP batteries may be cheap, but they come with cells that are likely to be of questionable quality, featuring a BMS that plays it fast and loose with safety. Although [Will] doesn’t outright say that you shouldn’t use these batteries, he does recommend that you install a fuse on it to provide some semblance of over-current protection. Keeping a fire extinguisher at hand might also be a good idea.

Continue reading “Buying Large LiFePO4 Batteries: How Cheap Is Too Cheap?”

VRML And The Dream Of Bringing 3D To The World Wide Web

You don’t have to be a Snow Crash or Tron fan to be familiar with the 3D craze that characterized the rise of the Internet and the World Wide Web in particular. From phrases like ‘surfing the information highway’ to sectioning websites as if to represent 3D real-life equivalents or sorting them by virtual streets like Geocities did, there has always been a strong push to make the Internet a more three-dimensional experience.

This is perhaps not so strange considering that we humans are ourselves 3D beings used to interacting in a 3D world. Surely we could make this fancy new ‘Internet’ technology do something more futuristic than connect us to text-based BBSes and serve HTML pages with heavily dithered images?

Enter VRML, the Virtual Reality Modelling Language, whose 3D worlds would surely herald the arrival of a new Internet era. Though neither VRML nor its successor X3D became a hit, they did leave their marks and are arguably the reason why we have technologies like WebGL today.

Continue reading “VRML And The Dream Of Bringing 3D To The World Wide Web”

A Portable 12 VDC Water Chiller For The Chemistry Lab

Having a chiller is often essential for the chemistry laboratory, but what if you’re somewhere without easy access to water, nevermind a mains outlet to plug your usual chiller into? In that case you can build a portable one that will happily run off the 12 VDC provided by a mobile source like the accessory outlet in a car while reusing the water from its reservoir, as demonstrated by [Markus Bindhammer] in a recent video.

The build uses a compressor-based freezer as the base, which is significantly more capable than the typical Peltier-cooled refrigerators that cannot cool as fast or efficiently. The changes he made involve running in- and outlet tubing into the freezer’s compartment, with a submerged 12 VDC water pump providing the water to the outlet. This pump is controlled by a variable speed controller board that’s put in a box on the outside with the power lead also sneaking into the freezer. With these modifications in place the freezer’s functionality isn’t significantly impacted, so it can be used as normal.

After filling the compartment with water, the lid is closed and the freezer engaged. The pump controller is then switched on, with the water flow adjusted to fit the distillation job at hand. Although in this case a fairly small freezer was modified, nobody is saying that you cannot also do it with a much larger freezer, and fill it with ice cream and other treats to help it and lab critters cool down faster.

Continue reading “A Portable 12 VDC Water Chiller For The Chemistry Lab”

How To Design 3D-Printed Parts With Tolerance In Mind

One of the continuing struggles with FDM printing is making sure that parts that should fit together actually do. While adding significant tolerance between parts is an option, often you want to have a friction fit or at least a gap that you cannot drive a truck through. In a video by [Slant 3D] a number of tips and tricks to improve parts design with tolerance in mind are provided.

Starting with the fairly obvious, such as avoiding sharp corners, rounding off edges and using chamfered edges  and filets for e.g. lids to make getting started easy, the video then moves into more advanced topics. Material shrinkage is a concern, which is where using thin walls instead of solid blocks of material helps, as does using an appropriate infill type. Another interesting idea is to use a compliant mechanism in the lid to get a friction fit without getting all print parameters just right.

On the opposing side to the lid – or equivalent part – you’d follow many of the same tips, with the addition of e.g. slots that allow for the part to flex somewhat. All of this helps to deal with any variability between prints, with the suggested grip fins at the end of the video being probably the most extreme.

Continue reading “How To Design 3D-Printed Parts With Tolerance In Mind”