GitHub Copilot And The Unfulfilled Promises Of An Artificial Intelligence Future

In late June of 2021, GitHub launched a ‘technical preview’ of what they termed GitHub Copilot, described as an ‘AI pair programmer which helps you write better code’. Quite predictably, responses to this announcement varied from glee at the glorious arrival of our code-generating AI overlords, to dismay and predictions of doom and gloom as before long companies would be firing software developers en-masse.

As is usually the case with such controversial topics, neither of these extremes are even remotely close to the truth. In fact, the OpenAI Codex machine learning model which underlies GitHub’s Copilot is derived from OpenAI’s GPT-3 natural language model,  and features many of the same stumbles and gaffes which GTP-3 has. So if Codex and with it Copilot isn’t everything it’s cracked up to be, what is the big deal, and why show it at all?

Continue reading “GitHub Copilot And The Unfulfilled Promises Of An Artificial Intelligence Future”

More Than Just Hubble: The Space Observatories Filling The Skies Today And Tomorrow

Amidst the recent news about the Hubble Space Telescope’s troubles (and triumphant resurrection), it is sometimes easy to forget that although Hubble is a pretty unique telescope, it is just one of many space-based observatories that are currently zipping overhead right now or perched in a heliocentric orbit. So what is it that makes these observatories less known than the iconic Hubble telescope?

Hubble is one of the longest-lived space telescopes so far, and it is also the only space telescope that was both launched and serviced by the Space Shuttle. None of the other telescopes have this legacy, the high-profile, or troubled history of Hubble’s intended successor: the James Web Space Telescope (JWST).

Even so, the mission profiles of these myriad other observatories are no less interesting, least of the many firsts accomplished recently such as a long-term moon-based telescope (Chang’e 3’s LUT) and those of the many upcoming and proposed missions. Let’s take a look at the space observatories many of us have never heard of.

Continue reading “More Than Just Hubble: The Space Observatories Filling The Skies Today And Tomorrow”

RNA Therapeutics And Fighting Diseases By Working With The Immune System

Before the SARS-CoV-2 pandemic took hold, few people were aware of the existence of mRNA vaccines. Yet after months of vaccinations from Moderna and BioNTech and clear indications of robust protection to millions of people, it now seems hard to imagine a world without mRNA vaccine technology, especially as more traditional vaccines seem to falter against the new COVID-19 variants and the ravages of so-called ‘Long COVID’ become more apparent.

Yet, it wasn’t that long ago that Moderna and BioNTech were merely a bunch of start-ups, trying to develop profitable therapies for a variety of diseases, using the brand-new and largely unproven field of RNA therapeutics. Although the use of mRNA in particular for treatments has been investigated since 1989, even as recently as 2017 there were still many questions about safe and effective ways to deliver mRNA into cells, as per Khalid A. Hajj et al.

Clearly those issues have been resolved now in 2021, which makes one wonder about the other exciting possibilities that mRNA delivery offers, from vaccines for malaria, cancer, HIV, as well as curing autoimmune diseases. How did the field of mRNA vaccines develop so quickly, and what can we expect to see the coming years?

Continue reading “RNA Therapeutics And Fighting Diseases By Working With The Immune System”

The Newlib Embedded C Standard Library And How To Use It

When writing code for a new hardware platform, the last thing you want to do is bother with the minutiae of I/O routines, string handling and other similarly tedious details that have nothing to do with the actual project. On bigger systems, this is where the C standard library would traditionally come into play.

For small embedded platforms like microcontrollers, resources are often tight enough that a full-blown stdlib won’t fit, which is why Newlib exists: to bring the portability benefits of a standard library to microcontrollers.

Whether you use C, C++ or MicroPython to program an MCU, Newlib is likely there under the hood. Yet how exactly does it integrate with the hardware, and how are system calls (syscalls) for e.g. file and input/output handling implemented? Continue reading “The Newlib Embedded C Standard Library And How To Use It”

Inside A 20-Watt Traveling Wave Tube Amplifier From Apollo

When the Apollo astronauts made their way to the Moon, their communication equipment had a transmission power of a mere 20 W, which the sensitive receivers back on Earth managed to pick up. But this isn’t just any amplifier, it’s a Traveling Wave Tube amplifier (TWT), as [Ken Shirriff] explains in a recent article.

The most fascinating thing about these TWTs isn’t just their role during the Apollo missions, but the fact that even today this type of vacuum tube is still among the most efficient and compact types of RF amplifier. As a result today’s high-tech satellites still commonly feature these devices.

As always, [Ken] entertains and enlightens us with how the TWT and the rest of the amplifier system worked.

 

Using Ghidra To Extract A Router Configuration Encryption Key

Who doesn’t know the struggle? Buying an interesting piece of hardware for a song and a dance, and then finding that the device’s firmware and/or configuration file is locked down with various encryption or obfuscation methods. This was the experience [Ali Raheem] had when he got a TP-Link TL-MR3020 V3 for a mere 18 British Pounds, intending to use this 4G-capable router to increase internet reliability.

Naturally this can all be done when staying inside the vendor-provided marked lines, which in this case meant ignoring the encrypted configuration files. As the owner of the hardware, this was of course unacceptable and thus [Ali] got a firmware image from the TP-Link site to see what could be gleaned from it in terms of encryption keys and other hints.

After obtaining the TP-Link-provided BIN file, the application of binwalk helpfully extracted the files embedded in it, followed by John the ripper decrypting the passwords in the /etc/passwd.bak file, and ultimately finding the encrypted /etc/default_config.xml file. Searching for this filename string in the rest of the extracted files led to /lib/libcmm.so.

Dropping this shared library file into Ghidra to disassemble its code, [Ali] found a function suspiciously called decryptFile. Inside was a reference to the global key string, which when tossed into OpenSSL and after some fiddling turned out to decrypt the XML configuration file in des-ecdb mode. From this point dropping in one’s own configuration files should be no problem after encrypting them to make the firmware happy. Nice work!

Design A Custom Enclosure Using Modelling Clay And Photogrammetry

When it comes to designing enclosures which aren’t simple boxes or other basic shapes, the design process tends to get somewhat tedious and involved as the number of measurements to be transferred into the CAD program begins to skyrocket. One possible shortcut here is detailed by [Sebastian Sokolowski], who describes a process that combines modelling clay with photogrammetry.

[Sebastian] covers the design of a hand-held controller that should fit ergonomically when grasped. This starts off with the electronics and mechanical components that have to fit inside the controller: inside a CAD tool (demonstrated in Fusion 360), these components are arranged with a simple box enclosure around them. This box is then 3D printed and with modelling clay the desired shape of the controller is created around this box.

With a modelling clay version of the controller ready, it is photographed from as many angles as possible before these photos are processed by the open source Meshroom tool into a 3D model. After fixing up some issues in the mesh and knocking down the vertex count on this model so that the CAD tool doesn’t suffer a seizure importing it, it’s ready for final processing.

Within the CAD tool all that is left now is to refine the imported model to refine its outer shape and to create the inner details for mounting the electronics, switches and other components.

Continue reading “Design A Custom Enclosure Using Modelling Clay And Photogrammetry”