Flat Earth Theatre presents "R.U.R." by Karel Capek. January 23 - 31, 2009. Featuring Michael Wayne Smith, Karen Hart, Valerie Daum, Jeff Tidwell, Kevin Kordis, James Rossi, Bill Conley, Justus Perry, and Amy Lehrmitt. Directed by Jake Scaltreto. Arsenal Center for the Arts, Watertown.

Robot: You Keep Using That Word But It Doesn’t Mean What You Think It Means

The flute player automaton by Innocenzo Manzetti (1840)
The flute player automaton by Innocenzo Manzetti (1840)

With many words which are commonly used in everyday vocabulary, we are certain that we have a solid grasp of what they do and do not mean, but is this really true? Take the word ‘robot’ for example, which is more commonly used wrongly rather than correctly when going by the definition of the person who coined it: [Karel Čapek]. It was the year 1920 when his play Rossumovi Univerzální Roboti was introduced to the world, which soon saw itself translated and performed around the world, with the English-speaking world knowing it as R.U.R.: Rossum’s Universal Robots.

Up till then, the concept of a relatively self-operating machine was known as an automaton, as introduced by the Ancient Greeks, with the term ‘android’ being introduced as early as the 18th century to mean automatons that have a human-like appearance, but are still mechanical contraptions. When [Čapek] wrote his play, he did not intend to have non-human characters that were like these androids, but rather pure artificial life: biochemical systems much like humans, using similar biochemical principles as proteins, enzymes, hormones and vitamins, assembled from organic matter like humans. These non-human characters he called ‘roboti’, from Old Czech ‘robot’ (robota: “drudgery, servitude”), who looked human, but lacked a ‘soul’.

Despite this intent, the run-away success of R.U.R. led to anything android- and automaton-like being referred to as a ‘robot’, which he lamented in a 1935 column in Lidové Noviny. Rather than whirring and clunking pieces of machinery being called ‘automatons’ and ‘androids’ as they had been for hundreds of years, now his vision of artificial life had effectively been wiped out. Despite this, to this day we can still see the traces of the proper terms, for example when we talk about ‘automation’, which is where automatons (‘industrial robots’) come into play, like the industrial looms and kin that heralded the Industrial Revolution.

(Heading image: Performance of R.U.R. by Flat Earth Theatre, showing the mixing of robot ingredients)

Human-Written Or Machine-Generated: Finding Intelligence In Language Models

What is the essential element which separates a text written by a human being from a text which has been generated by an algorithm, when said algorithm uses a massive database of human-written texts as its input? This would seem to be the fundamental struggle which society currently deals with, as the prospect of a future looms in which students can have essays auto-generated from large language models (LLMs) and authors can churn out books by the dozen without doing more than asking said algorithm to write it for them, using nothing more than a query containing the desired contents as the human inputs.

Due to the immense amount of human-generated text in such an LLM, in its output there’s a definite overlap between machine-generated text and the average prose by a human author. Statistical methods of detecting the former are also increasingly hamstrung by the human developers and other human workers behind these text-generating algorithms, creating just enough human-like randomness in the algorithm’s predictive vocabulary to convince the casual reader that it was written by a fellow human.

Perhaps the best way to detect machine-generated text may just be found in that one quality that these algorithms are often advertised with, yet which they in reality are completely devoid of: intelligence.

Continue reading “Human-Written Or Machine-Generated: Finding Intelligence In Language Models”

Reverse Engineering The Apple Touch Bar Screen

The Apple Touch Bar was an oddity on a fairly small number of Apple laptops which replaced the function key row with a touch display. Yet what is special about this display other than its odd form factor when you consider it as a generic touch display? As [Wenting Zhang] describes in a recent reverse-engineering video, this 2,170 x 60 pixel display is somewhat limited in that it doesn’t support the MIPI DSI video mode, only command mode, along with a special instruction (0x3C) for automatic address offsets. The results of this project can be found on the GitLab account.

In a way these limitations make sense when you consider Apple’s use case for these special MIPI-DSI displays. As a touch screen with dynamic controls being displayed on it, features such as video playback never were a goal, and thus Apple likely decided to save a few bucks, possibly also due to MIPI licensing costs. What this means is that if you had dreamed of snapping up an extremely long and narrow OLED display for a video project you’re in for somewhat of a bad time. Although animated content is possible – as [Wenting] demonstrates – this comes with all the limitations of command mode, meaning slower updates, higher power usage and a lot more overhead.

Continue reading “Reverse Engineering The Apple Touch Bar Screen”

Testing Your C Knowledge With This One Simple Quiz

One of the most exciting aspects of the C programming language — as effectively high-level assembly — is that although it’s a bit friendlier for the developer, it also adds a lot of required know-how on account of its portability across platforms and architectures. This know-how is what [Oleksandr Kaleniuk] manages to wonderfully illustrate with a simple 5-question, multiple-choice quiz on what the return value is of the provided function snippets of C code. How well do you know C?

For those who have had their run-ins with C directly (or indirectly via the support for it in languages like C++) the words ‘undefined behavior‘ (UB) are likely to induce a nervous twitch or two, along with a suspicious glance at whichever parts of reality are about to evaporate and destabilize the Universe this time. Although it is said that a proper C program is written with zero UB cases in it, in practice this can be rather tough, even before considering the other exciting ways in which a piece of code can fail to do the expected thing.

For languages other than C this is of course also a challenge, which is the reason why certification programs for e.g. avionics go out of their way to weed out such preventable issues, and only few programming languages like Ada (anything avionics, medical, etc.) and C++ (F-35 and other US DoD projects) make it into devices where failure is literally not an option.

Writing And Running Atari 2600 Games In Your Browser

Here in 2024, writing new games for the venerable Atari 2600 game console is easier than ever, with plenty of emulators and toolchains to convert your code into ready-to-load ROMs. Yet what is easier than diving straight into 6502 assembly code without even having to download or set up a toolchain? That’s where [Henry Schmale]’s fully in-browser Atari IDE and associated emulator (using the Javatari project) comes into play.

As [Henry] explains in a blog post, the main goal was to get a project working in Emscripten, the LLVM-based toolchain to create WebAssembly binaries with. The target of this became DASM, the macro assembler for a range of 8-bit MPUs, including the 6502. In the blog post [Henry] describes the general procedure for how he compiled and integrated DASM, as part of creating the earlier linked Atari 2600.

In this IDE a number of example programs are provided, which can be selected, assembled and run in the integrated Javatari instance. Beyond this you can write your own custom 6502 ASM, of course, but at this point you may be interested in taking things further with the versatile Stella emulator that can even run on platforms which you’d be hard-pressed to get a browser running on, never mind Chromium.

Fixing A PDP-11/03 Power Supply Is Easy When You Understand It

After we last saw [David Lovett] of [Usagi Electric], he was knee-deep in trying to fix a DEC PDP-11/03 power supply, which fortunately led to a fixed PSU and a very happy PDP-11/23 system installed in the enclosure, as he covers in today’s video. Previously, we had covered his debugging attempt of this very much dead power supply, which had led [David] down many fruitless rabbitholes. By the time he was taking various components off the board to try and induce certain results, he threw in the towel and went back to the drawing board, assisted with many community comments.

The 5V rail on a DEC PDP-11/03 power supply. (Credit: David Lovett)
The 5V rail on a DEC PDP-11/03 power supply. (Credit: David Lovett)

Much of the confusion came down to not really understanding how this PDP-11/03 PSU design works, which isn’t that crazy in hindsight, considering how quaint it is. Although [David] originally focused on the +5V rail, a small detail that was in the schematics is that the 5V rail is based around a 7805 that has its ground referenced to the -15V rail.

It is this 7805 that provides a linearly regulated 5V rail up till its current limit, at which point the control transistor gets biased sufficiently to start conducting, which eventually triggers the driver transistor that is responsible for driving the pass switch transistor. This then charges L2 from the unregulated supply, which is used effectively as a switching mode power supply until the current across the 7805 drops sufficiently that it becomes the primary 5V rail source again. This repeats at a kHz rate, making it more or less an SMPS as we know it today, but heavily reliant on the -15V rail as can be observed in the schematic. Continue reading “Fixing A PDP-11/03 Power Supply Is Easy When You Understand It”

Haier Europe Eases Off On Legal Threat And Seeks Dialogue

After initially sending a cease and desist order to [Andre Basche] – the developer of a Haier hOn plugin for Home Assistant – Haier Europe’s head of Brand and IoT has now penned a much more amicable response, seeking to enter into dialogue in search of a solution for both parties.

This latest development is detailed both in the ongoing GitHub issue, as well as the Takedown FAQ and Timeline document that [Andre] created to keep track of everything that’s going on since we last checked in on the situation. As things stand, there is hope that Haier Europe may relent, especially as the company’s US division has shown no inclinations to join in on the original C&D.

In the confusion following the initial C&D announcement demanding the take-down of [Andre]’s hOn-related repositories, it was not clear to many which Haier was involved. As it turns out, Haier Europe as a separately legal entity apparently decided to go on this course alone, with Haier US distancing themselves from the issue. In that same Reddit thread it’s noted that GE Appliances (part of Haier US) has had a local API available for years. This makes Haier Europe the odd one out, even as they’re attempting some damage control now.

Amidst this whirlwind of developments, we hope that Haier Europe can indeed reach an amicable solution with the community, whether it’s continued API usage, or the development of a local API.