edit.tf development blog

Back in 2014, I was working on a teletext project with Dan Farrimond to celebrate forty years of the medium. Then, designers would prepare frames using aging professional and proprietary editors, convert them to a graphic format like PNG, and upload them to the web. Dan felt that although having more and more of this kind of work online was great, what would really help catalyse an online teletext scene would be to have an easy means for people to edit their own frames, perhaps to contribute to amateur teletext services. In response, I wrote edit.tf, which allowed anyone to open up a page in their web browser and do just that, providing they could get their head around control codes and the like. edit.tf was designed to be free and available to everyone, and was licensed from the outset under the GPL v3. Dozens of people then did varied and interesting things with edit.tf and adapted it for their own needs. Around the same time, the teletext scene experienced a surge of interest. Teletext 'block parties' started happening and teletext art came of age despite the discontinuation of its medium, in the United Kingdom at least, a few years earlier in 2012.

At the time, a novel feature of edit.tf was that all the data for the frame was encoded in the page's URL as a mere 1167 base-64 digits, rather than being on a backend or cloud server. This opened up possibilities for easier frame creation. It meant that the user could bookmark the page, saving the frame in their web browser to work on later. The user could link to the page on a website so that visitors could open up an editor with the frame ready to improve or use in their own work. Similarly, users could collaborate on a frame by sending the URL via email or instant messengers. Because the data is stored in the URL fragment identifier, the part of the URL after the # symbol, it doesn't show up in my web server logs and the pages are private to the user (at least from me).

Since 2014, the amateur teletext scene has grown and a lot of work has been done on a wide variety of teletext projects, even on new and better editing tools. In particular, Alistair Cree has produced a in-browser teletext editor, the ZXNet editor. It is more full-featured, more correct, and more regularly maintained than edit.tf. I'd now enthusiastically recommend it to new would-be teletext creators.

Despite this, you can still try edit.tf out online. GitHub hosts the source code and documentation. This page will serve as an occasional source of edit.tf news, including those times when I open up my laptop and have a go at solving one of the outstanding bugs or enchancements. Contributions and improvements are still, of course, very welcome.

And remember: keep it blocky!


The most recent updates follow in reverse chronological order. Older updates are archived for the year 2019. Comments are welcome via email.

Today is the autumnal equinox. Round here in Somerset, whether you ask the farming community who have been partying away at the harvest homes in the last few weeks, or the pagans celebrating in Glastonbury, it's a time associated with the harvest.

As well as the equinox, it's the forty-fifth birthday of Ceefax, the world's first teletext service. Even though teletext was shut down years ago in the UK, the teletext art scene is small but thriving, and people all over the web and social media platforms are having fun producing and sharing teletext frames. This is exactly what Dan Farrimond had in mind in 2014 with his ideas about how to kickstart the teletext art scene on the fortieth birthday of Ceefax, five years ago. His ideas included the production of as-easy-as-possible web-based editors that reduce the barrier to getting strarted as much as possible, like ZXNet and edit.tf. Just one of all the other things that people have done since, these editors play a part in keeping teletext scene alive. They have allowed beginners and those with a casual interest to play with teletext page and navigate the tricky but ultimately rewarding learning curve associated with the control codes.

If you can code or write HTML pages, even at a basic level, think about how you learned to do that. You most likely did it, at least in part, by studying existing source code or viewing the source of web pages. Humans are hardwired to learn by imitation, and in the technical realm, we naturally copy and adapt others' work in order to do this. Apart from making learning easier, it's fun to see how tricks were done and the techniques involved in making a particular design. The amazing wizardry in recovery efforts and historical frame databases we now have allow us to view and take apart frames from even the very early days of teletext, learn from their tricks and make our own. Technical creative endeavours, be they coding or making teletext frames, work best when they build on existing work in one way or another.

An often-underestimated feature of edit.tf and ZXNet is that the URL contains the source data for the frame. Other editors like wxTED support it as an output format. Although that makes the URL very long, it also opens the way to much easier collaboration on frame designs. You can send frames via email, instant messenger or even text message. Or, when you've made your frame and want to show it to others on social media, as well as posting a graphic of it, you can post the data itself in the form of a URL. If you choose to do that, you enable other people to take your work, play with it, learn from it, and extend it to something else. Even if you don't think it's very good, someone out there will be able to learn from it or extend it, and make it available for the next person. The more people do this, the more the teletext art scene will grow as a whole and the more its output will improve. Sow code, recoveries and control characters, and later reap frames, more software, artpacks, demos and democompos, block parties and chunky fringes, and more.

So, a suggestion. When you design teletext frames and post them for everyone to enjoy, or when you compile those frames into artpacks or competition results, please remember to include the source data whether as an editor URL or as a raw data file — anything that allows the frame to be loaded up in an editor and played with by anyone. If you do that, you'll be doing one of the things which help to continue to grow the teletext art scene even more than in the last five (and forty-five) years.

Steve 'Horsenburger' Horsley has started live-streaming on Twitch.

The Flashparty 2019 demoparty in Buenos Aires is accepting remote teletext entries. Jellica did the flyer.

A neat property resulting from the URL being the frame's data is that tools like OpenLinkProfiler allow you to find the source of teletext pages out there in the wild, on the web, which have been posted as edit.tf URLs.

Of course, you need to create your free SEOprofiler account to click any of the URLs, but the domains are listed without any account, and there must be similar but open services out there too. There's ahrefs, which gives you the first hundred if you solve a few CAPTCHAs, but let me know if you know of any better ones.

Some people call the editor 'edit-tf', which is the name of the repository. Other — seemingly more — people call the editor 'edit.tf', which is the URL of the editor, and hopefully will be for a long time. To simplify things, I went through the code and documentation and replaced every instance of 'edit-tf' with 'edit.tf', including the name of the respository itself.

The 'tf' stands for 'teletext frame', by the way, as in 'edit teletext frame'.

In other news, I came across a way to browse some recently-developed viewdata services today. Have a look at vd-view, a viewdata web client that can connect you to nxtel, TeeFax, TELSTAR and Tetrachloromethane.

Demoparties are computer art festivals, often spanning a whole weekend. They feature demos, whose purpose is to show off computer graphic art, music and programming skills. Highly-skilled, tightly-knit demo groups work together to squeeze performance out of old and new computer hardware, often employing clever hacks, in order to produce amazing audiovisual effects. These demos are shown on a big video projector connected to a sound system in view of the artists, musicians, coders, and other attendees sitting at benches in a large hall, though there is often plenty of socialising in other rooms or even outdoors. The demos are voted on by everyone attending at the end of the party, and the authors of the demos which left the biggest impressions are celebrated as winners at a prize-giving ceremony. Since the 1980s, a culture has grown up around all this called the demoscene, though its roots go back before even that.

2017 was the most recent year that I went to the Nova demoparty in Budleigh Salterton. I was visiting with my friends from the CRTC demo group, with which I was more or less involved. With the agreement of the organisers, we were trialling teletext graphics as a new competition, a sort of rather British variant of the ASCII and ANSI art competitions. We weren't sure about how that would fit into the scene culture at first, but people responded to it really well, and we got six entries that year for the competition. To give some idea of what a demoparty is like, have a look at the teletext compo being shown on the big screen in this archived stream. Steve — now with an impressive scene CV — won that year with Dragon and Castle, even though it bent the rules by using a special extra large version of edit.tf that I hacked up on the Saturday, allowing 200 lines in the frame rather than the usual 25.

Munching on a pizza, I was idly sofa-scening yesterday — that is, tuning into the party's video stream from home — to see how it was going for Ruairí, h0ffman and the team. I was pleased and surprised to see that the teletext competition was still a part of Nova and has been held ever since 2017, with compos in 2018 (with archived stream) and this year, 2019 (with archived stream). Nova accepts remote entries, so I'd really encourage anyone out there playing with a teletext editor and making nice things with it to send in an entry for Nova 2020 and keep teletext going in the demoscene.

In especially older programs, you'd get a tip of the day when you started up the program. In edit.tf, I had a message like this on the UI which plugged an artist or pointed people to other editors to try out. But because edit.tf is mostly intended to work in a standalone and generic way (i.e., you can download it and use it completely offline), because people have said the tips are clutter, and because of the inevitable linkrot, I'm trying out the editor without them.

In other editor news, I should try to merge in the functionality to do with boxes (start box and end box) that I worked on a couple of years ago. I think I stalled over the question of whether one or two start-box/end-box characters delimit a box. I should just commit it really. Then the editor will support all the reasonable Level 1 functionality.

Teletext scene news! I learned today through the Digitiser 2000 letters page that David Walford is putting on a free event happening on the afternoon before Digitiser Live on the 20th July. It's called Chunky Fringe, and it's billed as a 'gathering of Digitiser fans, teletext enthusiasts, performers and artists'.

Nikki and Bunty have got into teletext and are sending me frames.

Half a dozen new frames from Dogetext in the examples archive. Later in the day, one more. A vintage frame from TVE was reconstructed by the same author, with a subtle hold graphics trick.

Another benefit of having the data in the URL is that, to some extent at least, the web will have scattered across it teletext frames in the form of edit.tf (and zxnet.co.uk) URLs. These URLs are trivial to identify and can be converted easily into frames.

The Google search operator site: seems to promise to return all URLs in Google's index with a given site or domain, but in our case, this doesn't work, perhaps because of the use of the URL fragment identifier (the part of the URL after the # symbol). This would make sense, since the conventional use of the URL fragment identifier is to identify a part of a document. Neither DuckDuckGo nor Bing do this either.

A web archivist could run a web crawler or network of web crawlers to wander over the web, looking for these URLs, and harvesting any that it sees. Though the web is big, perhaps teletext frames can be found on a small and predictable part of it, and a heuristic could guide the crawler. What remains of the HTTP referer field in edit.tf's server logs after the fragment identifier is removed, and where it is even passed by the browser at all (because of privacy and security threats), could nevertheless be used in seeding the crawler or informing such a heuristic.