Planet Uknot

November 19, 2018

Roger Bell_West

November 2018 Solo Mini Convention

I spent another Saturday playing solo games. St Theoktiste of Lesbos, whose feast day is 10 November, supposedly spent 35 years in solitude, so seems an appropriate person to commemorate in this way. (Not to mention there aren't that many Lesbian saints.)

With images; cc-by-sa on everything.

November 19, 2018 09:02 AM

November 18, 2018

Roger Bell_West

A Symphony of Echoes, Jodi Taylor

2013 science fiction, second in the Chronicles of St Mary's series. Max, time-travelling historian, kills Jack the Ripper, sorts out an attack from the future, and puts history back on course by making sure Mary Queen of Scots gets married on schedule to Bothwell.

November 18, 2018 09:02 AM

November 17, 2018

Roger Bell_West

Marlow Tabletop and Board Games 5 November 2018

This Meetup-based boardgames group continues to meet at the Marlow Donkey.

November 17, 2018 09:03 AM

November 16, 2018

Roger Bell_West

Torchship Captain, Karl K Gallagher

2017 science fiction, final volume of the trilogy. As Disconnected Worlds and Fusion combine, reluctantly, to fight the rebel AIs, politics continues.

November 16, 2018 09:04 AM

November 15, 2018

Steve Kennedy

Have a little light in your life

Beryl as was Blaze have released a new light designed for portability. It's called the Pixel.

It's quite small being an oval about 2cm long with a ring of LEDs around the edge and a single push-button in the middle. Surprisingly in this day and age it uses micro-USB to charge and not USB-C (Charging cable supplied). There's also a clear clip that the Pixel oops into. The flip can then be attached to a pocket or belt or using the supplied rubber strap attached to a bike or other mode of transport.

There's also a velcro strap which will allow the clip to attach to a helmet.

There are 4 modes that are accessed using the central button, long press and the Pixel will turn on (by default it is all white). A single press then cycles to all red, the next press goes to pulsating white and finally to pulsating red, then solid white again. A long press will turn the Pixel off. The solid white and red are pretty bright.

Beryl claim 10 hours of use on a single charge.

The Pixel costs £19.99 direct from Beryl.

by Steve Karmeinsky ( at November 15, 2018 05:00 PM

Roger Bell_West

The Guard

2011 crime drama/comedy, dir. John Michael McDonagh, Brendan Gleeson, Don Cheadle; IMDb / allmovie. On the rural Connemara coast, Sergeant Gerry Boyle has no time for people who don't want to let him do things his own way, but he still gets the policing done. Now, with the possibility of a huge cargo of cocaine coming in, there's an FBI agent in town…

November 15, 2018 09:02 AM

November 14, 2018

Roger Bell_West

The English School of Murder, Ruth Dudley Edwards

1990 mystery, third in the Robert Amiss series. Having resigned from the Civil Service on a point of principle, Amiss doesn't have much luck getting a job; an old police friend asks him to look, informally, into a School of English where one of the teachers has died under suspicious circumstances. More deaths follow.

November 14, 2018 09:04 AM

November 13, 2018

Roger Bell_West

Doctor Who 2/11.06: Demons of the Punjab

What a difference a new writer makes! Yes, this episode's not perfect, but it mostly gives the cast something to do, it uses the setting for more than mere background prettiness, and it has an alien menace that's resolved by talking rather than fighting.

November 13, 2018 09:01 AM

November 12, 2018

Andrew Elwell

Garden Irrigation, Pt 1

Some more background to my 'home assistant powered irrigation system' -- I'll write up a couple more articles as build progresses - I'm still waiting on some critical parts to arrive, like PVC pipe fittings and an Arduino Mega.

The Grand Plan.
The 2 main garden bed areas need to be automatically watered. The small 'hexagon' area contains 6 raised beds and a small central area. The main veggie patch (still being built. slow progress...) is around 20 beds. Later automation will include more smarts (hooking in my rainfall sensor, some buried gypsum sensors and soil temperature monitoring), but for now, the priority is to save on the 30-60 mins with a hosepipe in the evenings. Oh, and we're on tank (rainwater collection) water, so wastage is bad mmmkay.

The irrigation units themselves won't be 'smart' - All they need to do is send valve (relay) status, and respond to controls. I have an internal MQTT message broker, so a basic arduino + ethernet shield + 8 channel relay board does the small bed, and an arduino mega + ethernet (or an ethermega) + 3 8 channel relay shields the main veggie patch.

Sample arduino code is available on GitHub, (functions? who needs functions...) and yeah, it's not elegant. While it follows the syntax for the home assistant MQTT switch device, some of the defaults aren't the same, so I need to explictitly set them for now in the hass config. such as

  - platform: mqtt
    name: Hexagon bed 1
    icon: mdi:water
    availability_topic: status/hexIrrigation
    command_topic: control/hexIrrigation/valve1
    payload_on: "1"
    payload_off: "0"
    state_topic: status/hexIrrigation/valve1
    state_on: "On"
    state_off: "Off"

You can see here that I use status/hexIrrigation as LWT (so I know if the controllers on/offline) as well as the the relay state. I'm only using retain on the LWT, not the valves themselves. Power cycling the unit will (should!) reset back to all solenoids off, but I don't yet check and publish this, so hass may get confused if it loses comms. "Fixed in the next release" apparently :-)

I also want to integrate a flow sensor into each unit if possible (suspect I'm running out of digital IO on the small unit) to get an overall volume of water that's gone into the garden - fed, as normal into grafana.

I'll throw in another couple of postings (with pics) as the build progresses. but today I had an audience while working on the fence... (it will be fully netted to keep out the possums, pademelons and our hens)

by Andrew Elwell ( at November 12, 2018 11:05 AM

Roger Bell_West

November 11, 2018

Roger Bell_West

Clarkesworld 146, November 2018

Clarkesworld is a monthly on-line magazine edited by Neil Clarke.

November 11, 2018 09:04 AM

November 10, 2018

Roger Bell_West

Post-Essen Solo Mini Convention

Still a bit weary after Essen, I spent a Saturday playing solo games. With images; cc-by-sa on everything.

November 10, 2018 09:03 AM

November 09, 2018

Mark Goodge

Remembering Armistice

This is a sequel to my previous post, relating my visit to the graves of my relatives killed in WWI. I had initially hoped that I might have time on that trip to include a visit to the Glade of the Armistice near Compiègne, but in the end I had to give it a miss as my schedule didn’t allow it. However, an unexpected short-notice return to France as part of an official visit to our twin town of Dreux left me with enough time to call in on the way back to Calais afterwards. This is an account of that visit, and some more general musings on war itself.

The weather in France is grey and rather damp, just like the last time. Heading back to the Channel from Dreux, I take a slight detour at Compiègne to visit the Clairière de l’Armistice, or Glade of the Armistice in English, where the Armistice of 11 November 1918 that ended the Great War was signed.

Technically, an armistice isn’t a peace treaty, it’s simply an agreement to temporarily stop fighting. The armistice of 1918 had to be extended three times until the Treaty of Versailles was signed in 1919, which did formally end the war and re-establish peace. But the armistice, rather than the Treaty, is generally regarded as the end of the war.

The armistice was signed in a carriage forming part of Allied supreme commander Marshall Ferdinand Foch’s private train. Foch had chosen to hold the armistice talks in a clearing deep in the forest near Compiègne, partly because it was easily accessible by rail and partly for the privacy it afforded. Foch didn’t want journalists present, and was also concerned that the German delegation would be attacked by angry locals if they were seen in public.

Nine years after the armistice, the carriage where it was signed was returned to the forest as part of a newly constructed memorial, now known as the Glade of the Armistice. The carriage was housed in a specially constructed building just outside the Glade. The actual location of the signature is marked by a plinth.

Annoyingly, I discover that the central part of the Glade itself is closed to visitors, presumably to allow for work in preparation for the major events that will take place here in November. But the museum is open, so I pay my €5 and go inside.

The museum is certainly interesting, and I’d recommend a visit to anyone if you have the opportunity. But, while informative, I do feel something of a lack of any real historic connection to the events of 1918. The carriage in the current museum is not the original. It is a genuine, identical carriage from the same train, but it’s not the one where the armistice was signed. Equally, the museum is not the original building. In fact, there’s only one part of the original memorial, constructed in 1927, which remains. And I can’t get close to that as it’s inside the fenced off section. But the reasons for that are, possibly, even more telling.

The armistice wasn’t officially a surrender by the Germans, but it might as well have been. The conditions imposed by the Allies on the defeated Central Powers, and Germany in particular, were sweeping and punitive.

At the time, that made sense. Germany was the aggressor, and had been defeated. The Allies wanted to ensure that Germany not only suffered for their behaviour, but were in no position to be a threat again. The demilitarisation of Germany, and the destruction of German military hardware and infrastructure, was a justifiable and proportionate response.

At least, that’s how it looked in 1918.

Leaving the museum, I find that I can actually get into the central part of the Glade via a hole in the hedge. I don’t go too far in, because I don’t want to get spotted and told off, but I do manage to get a few photos. Some parts of the memorial are protected by electric fencing, although I presume that’s aimed more at animals than cheeky intruders like myself.

As originally constructed, the Glade was a monument to French military prowess and the humiliation of Germany. At the entrance to the Glade is the Alsace-Lorraine Monument which features the German eagle being slain by the French army. A significant feature of the Glade was a stone tablet bearing the inscription


or, in English,


Of course, with the benefit of hindsight we know that German demilitarisation didn’t last. Nor did the peace brought by the armistice. Only thirteen years after being constructed, and only 22 after the armistice was signed, the Glade constructed as a memorial to French military triumph became the scene of French military humiliation. On 22 June 1940, German troops smashed the walls of the museum in order to roll the carriage back onto the precise spot where the armistice of 1918 had been signed, and the leaders of France, in the presence of Hitler, were forced to sign their own surrender at the very same desk.

The Germans then destroyed the entire site, with the exception of the statute of Marshall Foch which was deliberately left overlooking a wasteland. The carriage was taken to Berlin. It, too, was later destroyed in the final days of the Second World War. Which is why everything at the Glade now, with the exception of Foch’s statue, is a reconstruction, a replacement or a new addition.

Leaving the Glade, and with some spare time left, I go for a walk through some of the forest. Footpaths and cycle paths have replaced the railways which brought Foch to the clearing, and the area is now a significant leisure destination. It’s a far cry from both 1918 and 1940.

A visit to the Glade is instructive, though, particularly when comparing the two wars it played a central role in. The armistices it hosted were different; the first was the end of a war, the second was an early step on what the winners hoped would be a march to overall victory. But both were deliberately designed to humiliate the defeated army, and both succeeded in that aim.

The second war didn’t end with an armistice like the first, though, or like the second armistice signed at the Glade. And the reasons for that are worth noting.

I’m always a little uncomfortable with rose-tinted wartime nostalgia. There’s a kind of “Goodnight Sweetheart” folksiness about a lot of our cultural memories, which tends to play down the darker side. There’s a subtext to many wartime re-enactments, such as those popular on heritage railways, which gives the impression that that was somehow a better, purer time – reinforced, sometimes, by a belief that the modern world has lost its way.

I appreciate that the “Blitz spirit” is real, and that the camaraderie of those determined to pull together through adverse circumstances is to be celebrated. So, too, is the heroism of those who actually take part in the fighting – although we should be careful of excessively honouring those who, in reality, were merely more lucky than their comrades. But we need to be careful not to airbrush the realities of war. I find “Dads Army” as funny as everyone else, but in reality the characters in that show would all have had family and friends out on the battlefield being killed or crippled. Finding humour in tragedy should not be allowed to minimise the tragedy.

I’m not a pacifist. I believe that war is sometimes justified and necessary. But it’s necessary in the same way that chemotherapy, or open heart surgery, is necessary. Not because it is a desirable goal in itself, but because the alternative is worse. But, just as a person’s condition has to be pretty serious to justify putting them on an operating table and slicing their chest open with a saw or dosing them up with drugs that can kill as easily as they can cure, so war is a last resort for dealing with an otherwise intractable problem that, if left unaddressed, will only cause more harm.

Even when it is justified, war is still a terrible thing. War kills people. War tears families apart. War devastates communities. War destroys infrastructure. War always leaves everybody – including the victors – worse off than they were when they started.

But that is something that we – thankfully – learned as a result of the two World wars. It’s now generally accepted that one of the root causes of WWII was the harsh and unfair treatment meted out to Germany at the end of WWI. Far from preventing another war, the armistice agreement stoked up resentment and paved the way for a populist leader to plunge the word into an even greater conflict.

The Second World War ended differently. Although, militarily, Germany’s defeat was far more comprehensive, being invaded and occupied by the Allies, the aftermath followed a different course. Instead of humiliating Germany, the primary aim of the Allies was to rebuild it as a modern, democratic state.

Looking back at the post-war history of Europe, it has to be said that the plan worked. Although there have been smaller, more limited conflicts on the continent, there has never been anything like a full-scale war. Even elsewhere in the world, although there have been many local and regional conflicts, none have spilled out into the wider area.

Peace is fragile, and so is democracy. There is no room for complacency. But we are heading in the right direction. The number of wartime casualties has been on a consistent downward trend since the end of WWII, even despite well-known conflicts in Korea, Vietnam, the Middle East and the Balkans. The number of wars between states has reached an all-time low. Only the persistence of civil conflicts, particularly in the Middle East and Asia, keeps the death toll ticking over.

It’s unlikely we will ever eliminate war. Not least because authoritarian regimes tend to generate internal opposition, and it’s easier now than it ever was for opposition to be armed. While the amount and deadliness of major international conflicts has decreased, the number of small, limited internal conflicts has risen. Governments are less likely to take up arms to attack another country, but more likely to take up arms to repress their own people. And, when they do, their people are more likely to take up arms and fight back.

The challenge for anti-war campaigners has, therefore, also shifted ground. Where the focus was once on persuading states not to attack each other, the priority now has to be on preventing internal conflicts. And, in practice, that has to mean supporting the spread of democracy and human rights. By far and away the largest numbers of military casualties now occur in civil wars in totalitarian and authoritarian states. Those of us who are fortunate enough not to suffer from them have a responsibility to stand up for the benefits of democracy and the basic rights of all humanity to live in freedom. The legacy of 1918 demands nothing less.

One of the key features of the rebuilt Glade of the Armistice is the Peace Ring. This is a bronze ring, 3.5m in diameter, bearing the word “Peace” in 52 different languages. Where the Glade was once a memorial to military triumph and humiliation, it now stands as a vision for the ending of all war. Sneaking through the hole in the hedge, it’s the only one of the monuments within the clearing that I’m actually able to get close to. It’s a good way to end my visit to the Glade. And a good message to take home with me.

by Mark at November 09, 2018 11:49 AM

Roger Bell_West

Apex 113, October 2018

Apex is a monthly on-line magazine edited by Jason Sizemore among others.

November 09, 2018 09:01 AM

November 08, 2018

Jonathan Dowland


`duc`'s GUI view

duc's GUI view

Continuing a series of blog posts about Debian packages I have adopted (starting with smartmontools), in January this year I adopted duc ("Dude, where are my bytes?")

duc is a tool to record and visualise disk space usage. Recording and visualising are performed separately, meaning the latter is very fast. There are several visualisers available. The three most interesting ones are

  • duc ui, a text terminal/ncurses-based heirarchical browser
  • duc gui, a GUI/X11 application
  • duc cgi, a CGI for access with a web browser

The GUI and CGI resemble the fantastic Filelight KDE tool, which I've always preferred to the similar tools available for GNOME, Windows or macOS. (duc itself works fine on macOS). The CGI could be deployed on my NAS, but I haven't set it up yet.

Indexing is performed via duc index <path> and seems very quick when compared to something like du -sh. The index is stored in a local database.

I adopted duc in sad circumstances after the prior maintainer decided to step down, in response to a discussion we had about a feature request for the Debian package. This wasn't the outcome I wanted, but it's a package I use regularly on several machines so I stepped up to adopt it.

November 08, 2018 07:44 PM

Steve Kennedy

Linking without Libya (well an alternative), try Poplinks

Many sites want to have short links that point to their content for use on Twitter or other social media accounts. There are quite a few sites already doing this, but do you want you link to be hijacked if the regime say changes in Libya?

There's now an alternative called Poplinks and they have some quite neat features (there's also a free plan so you can trial the service). Though the choice of .io is controversial (but probably for another post) and Poplink is moving to the domain soon.

Poplinks allow you to enter a URL that you want the Poplink to point to, the actual link can be named whatever you want i.e. say and then this can be called form a button, an image or Mailchimp.

Custom domains can be used which point the domain to Poplink (i.e. your own domain can be used).

Once the campaigns/links have been set-up, there's a nice dashboard to track it all.

It's quite a useful service and really easy to use and much nicer than supporting the Chocolate Factory or Libya.

There's currently a promotion on which gives 70% off all plans using code POP70OFF, sign-up at Poplink.

by Steve Karmeinsky ( at November 08, 2018 05:25 PM

Liam Proven

Getting and running IBM PC DOS 7.1

PC DOS 7.1 is the last version of the original Microsoft product line that started with MS-DOS 1 (itself now open source.)

I mentioned this in my post about DR-DOS.

PC DOS 7.1 is often confused with 7.01, also known as PC DOS 2000, which is actually version 7.01. It's a modest enough bug-fix for MS-DOS 6.22.

Version 7.1 is a different beast. It's based off the same core as the embedded DOS in Windows 95B (OSR2) and Windows 98. It supports FAT32, including the ability to boot from them. It supports LBA hard disks, meaning it can handle volumes of over 8GB. It fixes a lot of bugs in the DOS codebase.

Here's some more information (in Spanish but Google translates it fine.)

The primary author, Vernon Brooks, has a site which details the development history and itemises his fixes.

Here is how to get PC DOS 7.1, which IBM makes available as a free download. You may have to hunt -- the ServerGuide toolkit is quite old now.

Here is at least one method to install it in VirtualBox.

Note, it is not a complete OS. Unfortunately in this way it resembles DR's versions of DR-DOS 7.04 and later, which consists only of boot files embedded into the startup diskettes for products such as Seagate Disk Manager and Powerquest PartitionMagic. IBM only updated the kernel and some core tools.

To make a complete OS from this, you need a full copy of PC DOS 2000, then replace some of its files with the updated ones from the SGTK, as detailed above. I am reluctant to link to sources for this, as it is still copyright code. If you can't find it, ask me.

I have done this and can confirm that it works and works well. I have it running inside VirtualBox, and booting natively on the bare metal of a Lenovo Thinkpad X200. It is somehow aesthetically pleasing to have IBM PC DOS running natively on modern hardware that still has IBM branding. I can also say that classic DOS word-processors such as MS Word 6 and WordPerfect 6 run both very well and very quickly on it.

by liam_on_linux at November 08, 2018 04:17 PM

Roger Bell_West

Doctor Who 2/11.05: The Tsuranga Conundrum

Chibnall writes one more time. And he writes an awfully generic "something nasty on the spaceship" story, which I suppose is another way of saving your creative energy for something you find more interesting while still getting paid for the job you're half-arsing.

November 08, 2018 09:03 AM

Neil McGovern

GNOME ED update – October

I’m currently writing this from sunny (but very cold!) Colorado Springs, and tomorrow I’m off to SeaGL. We’ll have a booth there, so come and say hi to me and Rosanna if you’re in Seattle! More on that in the next report, however :)


As per usual, our main focus has been on the hiring of new staff members for the Foundation. We’ve completed a few second interviews and a couple of first interviews. We’re aiming to start making offers around the end of November. If you have put in an application, and haven’t heard back in a while, please don’t worry! It’s simply due to a large number of people who’ve applied and the very manual way we’ve had to process these. Everyone should hear back.

We’ve also had some interesting times with our banking. The short version is, we’ve moved banks to another provider. This has taken quite a bit of work, but hopefully, this should be settling down now.

As mentioned in issue #43, we have an employee handbook. However, it’s not public and hasn’t been updated. We’ve now managed to find a service that will do some of this for us, so we don’t need to create a whole load of text.

Finally, some minor items: Three trademark agreements were granted/modified, one GDPR request is being considered (removal of email from list archives), the GNOME namespace on has been requested (which involved a number of calls with our trademark lawyer), a Dun and Bradstreet number (D-U-N-S) has been requested so we can then request a free Apple code signing certificate and the EU events box should now have a laptop.


SustainOSS Summit

This event was quite interesting and was held in London at the end of October. There was an estimated 150 people attend, and all to talk about the sustainability of open source software, and how this can be improved (sustainability here should be read in all forms; financial, newcomer experience; maintainer burnout etc).


Held in Bristol at the start of November Freenode#Live was once again an impressive event, and I presented my “Why Free Software on the desktop matters” talk. The most useful aspect of the event is to meet up with key people in the FOSS community, and Advisory Board members.

Finally, as we were leaving the venue, one of the venue staff members came up to say hello. He’s a professional graphic illustrator/designer and although having never heard about free software before, was impressed by the conference and our passion that he’s volunteering to help with design work.

by Neil McGovern at November 08, 2018 12:07 AM

November 07, 2018

Roger Bell_West

Computers at the V&A

The Victoria and Albert Museum was having two computer-related exhibitions. Images follow: cc-by-sa on everything.

November 07, 2018 09:01 AM

November 06, 2018

Liam Proven

"The Future of Programming" by Bret Victor

"The most dangerous thought you can have as a creative person is to think you know what you're doing."

Presented at Dropbox's DBX conference on July 9, 2013.
This is an absolutely wonderful ½-hour long talk which pretends to be from 1973.

LJ embedding doesn't seem to work, so go visit YouTube or Vimeo.

The speaker has more info on his own site.

by liam_on_linux at November 06, 2018 04:44 PM

The future comes at you fast

I run Linux, and I work for a Linux vendor. I'm typing on Linux right now.

But I still don't particularly like Linux. I like OS X a bit better, but I miss aspects of classic MacOS. I am playing with Haiku with some interest -- it's getting there. And I'm fiddling with Oberon, mainly for research.

But all this stuff is very mature now, meaning hidebound and inflexible and showing its age badly. Thus all the patching over the cracks with VMs and containers and automated deployment tools and devops and all that.

Basically I think we're just for a huge shift in end-user-facing computing. It's time for a generation shift. I've worked through 1 big one of these, and maybe 2 or 3 small ones.

I was actively involved, as a working professional, in the shift from text-based computing (mostly DOS, a little SCO and Concurrent CP/M & Concurrent DOS stuff, and bits and bobs of other older stuff, mostly terminal-based) to GUI-based computing.

The hardware and OS makers survived. Few app vendors did. It basically killed most of the big DOS app vendors: WordStar, Lotus, WordPerfect, Ashton-Tate.

This is prehistory to younger pros these days: it was in the 1990s, while they were children.

Then there were smaller shifts:

[1] from predominantly stand-alone machines to LANs

[2] from proprietary LANs to TCP/IP
(and the switch from DOS-plus-Windows to Win9x and NT here and there)

[3] connecting those LANs to the Internet
(and the partly-16-bit to purely-32-bit switch to a world of mostly NT servers talking to NT workstations.)

Then once we were all on NT, there were two relatively tiny ones:
* multi-processor workstations becoming the default (plus GPUs as standard, leading to compositing desktops everywhere)
* the (remarkably seamless) transition from 32-bit to 64-bit.

But the big one was DOS to Windows (and a few Macs). It's a shame most people have forgotten about it. It was a huge, difficult, painful, gradual, and very expensive shift.

And at the time, most people in the business pooh-poohed GUIs.

For a full decade, there were multiple families of successful, capable, GUI-based computers, with whole ecosystems of apps and 3rd party vendors -- not just the Mac, but the Amiga, and the Atari ST, and the Acorn ARM machines, and at the high end graphical UNIX workstations...

And the DOS world staidly ignored all of it. They were toys. GUIs were toys for children, except very expensive ones for graphic designers, in which casee they were too niche to matter. Macs weren't real computers, they were for the rich or the simple-minded.

[Insert discussion about intersectionality and toxic masculinity here.]

Windows 3 was all very well but it was still DOS underneath and ran DOS apps and it was just a pretty face. The more serious you were, the more DOS apps you ran. Accountants didn't use Windows. Well maybe except Excel, but that didn't count. (Har har.)

It was still a sign of Manliness to be able to drive a CLI.

(It still is in the FOSS world, where people take great pride in their skills with horrible 1970s text editors.)

There was real scorn for so-called toy interfaces for toy computers, when people have work to do, etc.

Then, once people showed that you could actually do real work using these alleged toys, it switched to being inefficiency: it was claimed to be a waste of computer power driving all those pixels. Then when the computer power became plentiful enough for it not to be a problem, it was a waste of money equipping everyone with big screens and graphical displays and lots of RAM.

This kind of crap held back real progress for about a decade, I reckon. I mean, MS was singularly slow off the ball too, partly due to wasting (in hindsight) a lot of time and effort on OS/2. Even then, OS/2 1.0 came without a GUI at all, in 1988 IIRC, because it wasn't finished yet. (One could argue this showed commendable dedication to getting the underpinnings right first. Possibly. If the underpinnings had been right, which is debatable.)

DR GEM showed that mid-1980s PCs were perfectly able to drive a useful, productive GUI. The early Amstrad 8086 machines shipped with GEM, along with a GEM programming language, a (very basic) GEM word processor, a GEM paint program, etc. It even ran usefully on machines without a hard disk!

Windows 3.0 (1990) was all right. Good enough for some use. Benefited a lot from a 286 and at least 1MB of RAM, though.

Windows 3.1 (1992) was useful. Really wanted a 386 and at least 2MB, ideally 4MB.

NT 3.1 and WfWg were both 1993. WfWg was useful but already looking old-fashioned, whereas NT wanted a £5K+ PC to work well.

It was 1995 before a version that ran on an ordinary computer and gave unambiguous, demonstrable benefits to basically all users came along. That's what OS/2 should have been on high-end 286s a decade earlier.

Then, suddenly, a full decade after the Amiga and the ST, we got Win95 and suddenly everyone wanted them.

Few lessons were learned from this shift.

We haven't had such a big generation shift in 25 years, which means that now there are lots of middle-aged pros who don't really remember the last one. They've never worked through one.

Now we're facing another big shift, and again, although the signs are here, nobody takes them seriously. The writing is on the wall as it was in the late 1980s and early 1990s, and nobody is seeing it.

To spell it out:

* Keyboardless computers are huge. Smartphones, tablets, tills and other touchscreen devices.
* Most of them are all-solid-state: just RAM and flash.
* The first non-volatile RAM is on sale now. I just wrote a whole new manual chapter on it, for a boring enterprise OS. It's becoming mainstream.
* It's ~10× cheaper than DRAM and ~10× faster than Flash. This is the early, v1.0 kit, note.

Soon we will have the first new generation of computers since the 8-bit microcomputer revolution of the late 1970s. All-nonvolatile-RAM machines. They will not have the distinction between RAM and disk storage that all computers since about the 1950s have had. This is a bigger shift than minicomputers were, than the micro was.

It will, of course, be perfectly possible to adapt disk-based OSes to them and run them on these machines, partitioning the storage into a fake-disk bit and a live-RAM bit. But it will be inefficient and
pointless to shuffle all this data around like that -- however, it is an assumption so completely implicit in every OS in the world today (except one¹) that it is insurmountable.

Try to imagine Unix without a filesystem. It doesn't really work. Take away the notion of a "file" and basically all current OSes sort of fall apart.

But there is a certain mindset that I encounter very often who find the concept very hard to even imagine, and are extremely hostile to it.

Which is exactly the sort of thing I saw in the era of the transition from DOS (and text-only Unix) to ubiquitous GUIs.

Both Unix and Windows are cultures now.

One could argue that devotees of any OS or platform ever were, sure -- but in the 20th century, most platforms came and went relatively quickly. A decade and they had been invented, thrived, flowered, there was an explosion of apps, peripherals, wide support, and then they faltered and were gone.

This meant that most enthusiasts of any particular make or series of computer had exposure to quite a few others, too. And TBH while every 1980s computer had strengths and virtues -- OK, almost every -- they all had weaknesses and rivals which were stronger in those particular areas.

Now, much less so.

Now there are only 2 platforms -- Windows or Unix -- and they both mainly run on x86 with a toehold on ARM. They're mature enough that the CPU doesn't make a ton of difference.

There are lots of flavours of Unix, and some are very different to others. However a lot of the old-time 20th-century Linux enthusiasts I know, or know of, have switched to Mac OS X now, basically for an easier life. The rivalries are much smaller-scale: free vs commercial, BSD vs Linux, distro rivalries, desktop rivalries, and of course the eternal editor wars.

Step back far enough and the 2 are very clearly siblings with very similar conceptual models.

Low-level code is in C, stuff layered on top is in slightly higher-level languages (both compiled and interpreted, both generally imperative, usually object-oriented). Performance-critical stuff is compiled to static CPU-specific binaries and libraries, stored as files in a hierarchical filesystem along with config info stored in text files, some sort of system-wide database or both. There's a rigid distinction between "software" and "data" but both are kept in files which may be visible to the user or hidden, but this is a cosmetic difference. Users switch between different "applications" to accomplish defined tasks; data interchange between these is limited, often difficult, usually involves complex translations, and as a result is often one-way, as round-tripping means data loss.

There are of course dozens of dead OSes which conform to exactly this model, from all the beloved 1980s home computers (ST, Amiga, Mac, Acorns, QL, different vendors' Unix boxes, etc.).

But the point is that now, this 2-family model has been totally pervasive for about 30 years. Anyone younger than 25 has basically never seen anything else.

Compare these systems to some older ones, and the differences are startling. Compare with Classic MacOS, for something close to home. Not a single config file anywhere, no shell, no CLI, no scripting, nothing like that at all.

Compare with a Xerox Smalltalk box, or a Lisp machine, or Tao Intent, or Vitanuova Inferno, or colorForth, and you will see multiple radically different approaches to OS design... but all of them are basically forgotten now.

I think we lost something really important in the last 25y, and rediscovering it is going to be very painful.

I very much hope that bold, innovative new OSes come along that exploit this new design fully and richly.

But it's almost inconceivable to users of current tools. Partly because the concepts of filesystems are so very powerful, it's almost unimaginable that you would want to throw that away.

Which is very close to what DOS power users said in 1990, and I think is just as valid. (FTAOD, that means it's not valid at all.)

It's an interesting time.

P.S. at least for now, I think the current model suits servers very well, and just like GUI ideas matured in their own market sector of weird 680x0 computers that were unconnected from the x86 PC market
until it caught up a decade late, I think the server side of things will trundle on for another decade plus without this stuff having any impact.

I also suspect that as these new machines rise to dominance, as with previous shifts, pretty much no existing vendors, of hardware or OSes or apps, will survive the change. Entirely new companies will come along and get huge.

¹ IBM i. That is, OS/400. I doubt it will suddenly become very relevant.

[Adapted from some list posts, in lieu of real content.]

by liam_on_linux at November 06, 2018 12:38 PM

Roger Bell_West

Essen 2018 haul

This post is about what I brought back from Essen – as well as some things I'd been thinking about but ended up not buying.

November 06, 2018 09:01 AM

November 05, 2018

Roger Bell_West

The Alchemists, Geary Gravel

1984 SF. In a distant future, humans are desperately settling worlds as their alien-donated FTL ships become increasingly unreliable. Only native human-level life will prevent the colonisation of a new planet, and no life has ever been judged to be human-level. But the evaluation team on Belthannis is faced with something entirely new.

November 05, 2018 09:02 AM

November 04, 2018

Roger Bell_West

GURPS Steampunk 2: Steam and Shellfire, Phil Masters

This is the second of the new GURPS Steampunk supplements, updating and extending the old book; it is primarily a book of equipment.

November 04, 2018 09:00 AM

November 03, 2018

Roger Bell_West

The Silver Ghost, Charlotte MacLeod

1988 cozy American detective fiction; eighth of MacLeod's novels of Boston Brahmin Sarah Kelling and art investigator Max Bittersohn. Sarah and Max have been invited to a Renaissance Revel at the Billingsgates', to work out what's happened to their missing 1927 New Phantom Rolls Royce.

November 03, 2018 09:02 AM

November 02, 2018

Roger Bell_West

Doctor Who 2/11.04: Arachnids in the UK

Chibnall writes yet again. He's sole scriptwriter on four of the first five episodes (and of course the season finale), and co-writer on the fifth. And he's supposedly controlling the overall direction of the show. It's too much for one person to do well on a TV production schedule.

November 02, 2018 09:03 AM

November 01, 2018

Roger Bell_West

October 2018 Trailers

Some trailers I've seen recently, and my thoughts on them. (Links are to youtube. Opinions are thoroughly personal. Calibration: I hate everything.)

November 01, 2018 09:03 AM

October 31, 2018

Andrew Elwell

Measuring empy space

If you've been following my recent posts on twitter, you'll be aware that I've finally got round to hooking up the MaxBotix rangefinders into our water tanks. So far I've done the main house tank and have sketches and buried duct ready to do the ones that water the garden.

Some more technical details here than I can fit in tweets:
* The sensors themselves sit through the roof of the tank. This involves drilling a 3/4" hole in the top of the tank and inserting the sensor from below, so you won't want to put it more than an arms reach from the access hole. The sensors I purchased have NPR thereads not BSP, so you may want to pick up matching nuts at the same time depending on local availability.
* I mounted some 6-way header pins on the sensor, and soldered the female end onto the cable so that it didn't twist as I tightened it up. All mounted in a 20mm conduit box on the tank.

Inside the shed, I'm just using a clone arduino with a wiznet ethernet shield (ebay/aliexpress) and a very basic sketch using the pulse width measurement from the sensor. As normal, it's available on GitHub for anyone interested. It pushes to an on-site MQTT broker (mosquitto) that's used to gather various sensor metrics and fed into home-assistant, where it also gets archived into InfluxDB for longer term plots

status/housetanksensor online
sensors/housetanks/depthbelowsensor 419
sensors/housetanks/litres 20762

I use the status for LWT messages, and the sensors has the raw air-gap measurement (mm below sensor - range is 300 -> 5000) as well as a calculated volume (see the arduino code for constants and calculation)

Importing into hass is as simple as
  - platform: mqtt
    name: House water tanks volume
    icon: mdi:water-pump
    availability_topic: status/housetanksensor
    unit_of_measurement: l
    state_topic: sensors/housetanks/litres
into the configuration.yaml

Next up, getting the irrigation system working...

by Andrew Elwell ( at October 31, 2018 10:39 PM

Roger Bell_West

Essen 2018

At the end of October I went back to Internationale Spieltage SPIEL, or "Essen" as it's generally known in the boardgaming world.

October 31, 2018 09:02 AM

October 30, 2018

Jonathan McDowell

Enabling Wake-on-Lan with the N34 Mini PC

There is a room at the top of my house which was originally earmarked for storage (the loft is full of insulation rather than being a useful option). Then I remembered I still had my pico projector and it ended up as a cinema room as well. The pico projector needs really low light conditions with a long throw, so the fact the room only has a single small window is a plus.

Basic Cinema

I bought an “N34” mini PC to act as a media player - I already had a spare DVB-T2 stick to Freeview enable things, and the Kodi box downstairs has all my DVDs stored on it for easy streaming. It’s a Celeron N3450 based box with 4G RAM and a 32GB internal eMMC (though I’m currently running off an SD card because that’s what I initially used to set it up and I haven’t bothered to copy it onto the internal device yet). My device came from Amazon and is branded “Kodlix” (whose website no longer works) but it appears to be the same thing as the Beelink AP34.

Getting Linux onto it turned out to be a hassle. GRUB does not want to play with the EFI BIOS; it can be operated sometimes if manually called from the EFI Shell, but it does not work as the default EFI image to load. Various forum posts recommended the use of rEFInd, which mostly works fine.

Other than that Debian Stretch worked without problems. I had to pull in a backports kernel in order to make the DVB-T2 stick work properly, but the hardware on the N34 itself was all supported out of the box.

The other issue was trying to get Wake-on-Lan to work. The room isn’t used day to day so I want to be able to tie various pieces together with home automation such that I can have everything off by default and a scene configured to set things up ready for use. The BIOS has an entry for Wake-on-Lan, ethtool reported Supports Wake-on: g which should mean MagicPacket wakeup was enabled, but no joy. Looking at /proc/acpi/wakeup gave:

/proc/acpi/wakeup contents
Device  S-state   Status   Sysfs node
HDAS      S3    *disabled  pci:0000:00:0e.0
XHC       S3    *enabled   pci:0000:00:15.0
XDCI      S4    *disabled
BRCM      S0    *disabled
RP01      S4    *disabled
PXSX      S4    *disabled
RP02      S4    *disabled
PXSX      S4    *disabled
RP03      S4    *disabled  pci:0000:00:13.0
PXSX      S4    *disabled  pci:0000:01:00.0
RP04      S4    *disabled
PXSX      S4    *disabled
RP05      S4    *disabled
PXSX      S4    *disabled
RP06      S4    *disabled  pci:0000:00:13.3
PXSX      S4    *disabled  pci:0000:02:00.0
PWRK      S4    *enabled   platform:PNP0C0C:00

pci:0000:01:00.0 is the network card:

01:00.0 Ethernet controller [0200]: Realtek […] Ethernet Controller [10ec:8168] (rev 0c)

I need this configured to allow wakeups which apparently is done via sysfs these days:

echo enabled > /sys/bus/pci/devices/0000\:01\:00.0/power/wakeup

This has to be done every boot so I just tied it into /etc/network/interfaces.

All of this then enables Home Assistant to control the Kodi box:

Home Assistant Kodi WoL configuration

  - platform: kodi
    name: Kodi (Cinema)
    port: 8000
    username: kodi
    password: !secret kodi_cinema_pass
    enable_websocket: false
      service: wake_on_lan.send_magic_packet
        mac: 84:39:be:11:22:33
      service: media_player.kodi_call_method
        entity_id: media_player.kodi_cinema
        method: System.Shutdown

My Home Assistant container sits on a different subnet to the media box, and I found that the N34 wouldn’t respond to a Wake-on-Lan packet to the broadcast MAC address. So I’ve configured the broadcast_address for Home Assistant to be the actual IP of the media box, allowed UDP port 9 (discard) through on the firewall and statically nailed the ARP address of the media box on the router, so it transmits the packet with the correct destination MAC:

ip neigh change lladdr 84:39:be:11:22:33 nud permanent dev eth0

I’ve still got some other bits to glue together (like putting the pico projector on a SonOff), but this gets me started on that process.

(And yes, the room is a bit cosier these days than when that photograph was taken.)

October 30, 2018 07:58 PM

Roger Bell_West

Magic Burns, Ilona Andrews

2008 modern fantasy novel, second in the Kate Daniels series. Magic is building up to a once-in-seven-years flare, someone has stolen maps from the local werewolf pack, and gods are going to come into play.

October 30, 2018 09:02 AM

October 29, 2018

Roger Bell_West

The St Valentine's Day Murders, Ruth Dudley Edwards

1984 mystery, second in the Robert Amiss series. Amiss is seconded to industry… well, to a dead-end privatised offshoot of the Civil Service where all the unemployables are sent to rot. And then people die.

October 29, 2018 09:01 AM

October 28, 2018

Roger Bell_West

Sword Art Online Ordinal Scale

2017, 2-hour film: AniDB, follow-up to 2012's Sword Art Online and 2014's Sword Art Online II. Two years after the SAO Incident, virtual reality is out of fashion as a new augmented reality game has become hugely popular. But Kirito reckons there's something just a bit odd about it.

October 28, 2018 09:03 AM

October 27, 2018

Roger Bell_West

Written in Bones, James Oswald

2017 supernatural mystery in modern Edinburgh, seventh in Oswald's Inspector McLean series. A body is found in a tree; clearly it fell there, but how did it happen, and why?

October 27, 2018 08:00 AM

October 26, 2018

Steve Kennedy

How to make 20 Easy Pies

Well actually "20 Easy Raspberry Pi Projects" is a book from Nostarch Press and takes the user through a variety of projects that can be built around the Raspberry Pi.

  • Table of contents
  • Introduction
  • Primer

  • LEDs
  • Project 1: Blinking an LED
  • Project 2: Pushbutton LED Flashlight
  • Project 3: LED Dimmer Switch
  • Project 4: A Graphical User Interface for a Multicolor LED
  • Project 5: Rainbow Light Strip

  • Displays
  • Project 6: An LCD Reminder
  • Project 7: Mini Weather Forecaster
  • Project 8: Pong with a Sense Hat

  • Sensors
  • Project 9: All-In-One Weather Sensor Station
  • Project 10: Intruder Alarm with Email Notifications
  • Project 11: Gas and Smoke Alarm
  • Project 12: Temperature and Humidity Data Logger

  • Cameras
  • Project 13: Burglar Detector with Photo Capture
  • Project 14: Home Surveillance Camera

  • Web Applications
  • Project 15: Building Your First Website
  • Project 16: Connecting Your Electronics to the Web
  • Project 17: Internet of Things Control Center with Node-Red

  • Games and Toys
  • Project 18: Digital Drum Set
  • Project 19: Make a Game in Scratch: Hungry Monkey
  • Project 20: Wi-Fi Remote-Controlled Robot

  • Appendix A: Raspberry Pi GPIO Pin Guide
  • Appendix B: Decoding Resistor Values

All the projects are built using the Pi, some external hardware and then programming the Pi using Python or Node Red.

You don't really need to fully understand programming and in-depth Python to get the most out of the projects, the book goes through the code and explains what the various code segments do.

Node Red is more complex and also simpler as it runs on the Pi and is accessed via a web browser and then the various actions are all performed by wiring bits together. All the actual programming is done behind the scenes. Some libraries and other bits and bobs have to be installed to support various bits of hardware, but the book goes into enough details of how to do it.

Each chapter ends with some tasks that the user can extend the project and though the basic knowledge of programming in the chapter should give these enough of a background to modify/extend the code, to really extend it, it;'s probably learning Python more fully.

All in all if you want to hook a Raspberry Pi up to some hardware, access the hardware through Python (or Node Red), then this book is no doubt a good starting point. However it is just that a starting point and doing more complex things with both the hardware and Python in particular will require more in0-depth knowledge and a more in-depth programming knowledge.

Saying all that, it's a great start and easy to follow and even with a basic knowledge of Python (just basing code on examples from the book) it should be possible to build all the projects and extend most of them without too much fuss.

by Steve Karmeinsky ( at October 26, 2018 10:17 AM

When need you're in in need of power get InCharge

There's a lot of rubbish on crowdfunding sites and a lot of projects don't deliver. In August InCharge's campaign finished with the promise of a USB charging cable that actually looked pretty neat.

Two versions were on offer, the dual and all in one. The dual offers micro usb and lightning and the all in one micro usb, lightning and USB-C.

It's quite a clever design.

The image shows the all in one and amazingly one actually arrived today and does exactly what it promised to do. It's really compact and can fit on a keychain, the ends are magnetic to stay closed, but are easy enough to open.

They are still available on Indiegogo, though presumably they'll be available through the InCharge site shortly.

by Steve Karmeinsky ( at October 26, 2018 10:16 AM

Jonathan Dowland


I don't do much Debian stuff these days (too busy) but I have adopted some packages over the last year. This has happened if a package that I rely on is lacking person-power and was at risk of being removed from Debian. I thought I should write about some of them. First up, smartmontools.

smartmontools let you query the "Self-Monitoring, Analysis and Reporting Technology" (S.M.A.R.T.) information in your computer's storage devices (hard discs and solid-state equivalents), as well as issue S.M.A.R.T. commands to them, such as instructing them to execute self-tests.

I rescued smartmontools for the Debian release in 2015, but I thought that was a one-off. Since I've just done it again I'm now considering it something I (co-)maintain1.

S.M.A.R.T. can, in theory, give you advance warning about a disc that is "not well" and could stop working. In practice, it isn't very good at predicting disc failures2 — which might explain why the package hasn't received more attention — but it can still be useful: last year it helped me to detect an issue with excessive drive-head parking I was experiencing on one of my drives.

  1. Personally I think the notion of single-maintainers for packages is old and destructive, and I think it should be the exception rather than the norm. Unfortunately it's still baked into a lot of our processes, policies and tools. ↩

  2. E. Pinheiro, W.-D. Weber, and L. A. Barroso. Failure trends in a large disk drive population (PDF). In Proceedings of 5th USENIX Conference on File and Storage Technologies (FAST 2007), San Jose, CA, February 2007. ↩

October 26, 2018 09:46 AM

Roger Bell_West

Doctor Who 2/11.03: Rosa

Chibnall writes again (though this time with a co-author), but with a very different emphasis.

October 26, 2018 08:00 AM

October 25, 2018

Jonathan McDowell

MQTT enabling my doorbell

One of the things about my home automation journey is that I don’t always start out with a firm justification for tying something into my setup. There’s not really any additional gain at present from my living room lights being remotely controllable. When it came to tying the doorbell into my setup I had a clear purpose in mind: I often can’t hear it from my study.

The existing device was a Byron BY101. This consists of a 433MHz bell-push and a corresponding receiver that plugs into a normal mains socket for power. I tried moving the receiver to a more central location, but then had issues with it not reliably activating when the button was pushed. I could have attempted the inverse of Colin’s approach and tried to tie in a wired setup to the wireless receiver, but that would have been too simple.

I first attempted to watch for the doorbell via a basic 433MHz receiver. It seems to use a simple 16 bit identifier followed by 3 bits indicating which tone to use (only 4 are supported by mine; I don’t know if other models support more). The on/off timings are roughly 1040ms/540ms vs 450ms/950ms. I found I could reliably trigger the doorbell using these details, but I’ve not had a lot of luck with reliable 433MHz reception on microcontrollers; generally I use PulseView in conjunction with a basic Cypress FX2 logic analyser to capture from a 433MHz receiver and work out timings. Plus I needed a receiver that could be placed close enough to the bell-push to reliably pick it up.

Of course I already had a receiver that could decode the appropriate codes - the doorbell! Taking it apart revealed a PSU board and separate receiver/bell board. The receiver uses a PT4318-S with a potted chip I assume is the microcontroller. There was an HT24LC02 I2C EEPROM on the bottom of the receiver board; monitoring it with my BusPirate indicated that the 16 bit ID code was stored in address 0x20. Sadly it looked like the EEPROM was only used for data storage; only a handful of values were read on power on.

Additionally there were various test points on the board; probing while pressing the bell-push led to the discovery of a test pad that went to 1.8v when a signal was detected. Perfect. I employed an ESP82661 in the form of an ESP-07, sending out an MQTT message containing “ON” or “OFF” as appropriate when the state changed. I had a DS18B20 lying around so I added that for some temperature monitoring too; it reads a little higher due to being inside the case, but not significantly so.

All of this ended up placed in the bedroom, which conveniently had a socket almost directly above the bell-push. Tying it into Home Assistant was easy:

  - platform: mqtt
    name: Doorbell
    state_topic: "doorbell/master-bedroom/button"

I then needed something to alert me when the doorbell was pushed. Long term perhaps I’ll add some sounders around the house hooked in via MQTT, and there’s a Kodi notifier available, but that’s only helpful when the TV is on. I ended up employing my Alexa via Notify Me:

  - name: alexa
    platform: rest
    message_param_name: notification
      accessCode: !secret notifyme_key

and then an automation in automations.yaml:

- id: alexa_doorbell
  alias: Notify Alexa when the doorbell is pushed
  - platform: state
    entity_id: binary_sensor.doorbell
    to: 'on'
  - service: notify.alexa
      message: "Doorbell rang at {{ states('sensor.time') }}"

How well does this work? Better than expected! A couple of days after installing everything we were having lunch when Alexa chimed; the door had been closed and music playing, so we hadn’t heard the doorbell. Turned out to be an unexpected delivery which we’d otherwise have missed. It also allows us to see when someone has rang the doorbell when we were in - useful for seeing missed deliveries etc.

(Full disclosure: When initially probing out the mains doorbell for active signals I did so while it was plugged into the mains. My ‘scope is not fully isolated it seems and at one point I managed to trip the breaker on the mains circuit and blow the ringer part of the doorbell. Ooops. I ended up ordering an identical replacement (avoiding the need to replace the bell-push) and subsequently was able to re-use the ‘broken’ device as the ESP8266 receiver - the receiving part was still working, just not making a noise. The new receiver ended up in the living room, so the doorbell still sounds normally.)

  1. I have a basic ESP8266 MQTT framework I’ve been using for a bunch of devices based off Tuan PM’s work. I’ll put it up at some point. 

October 25, 2018 06:05 PM

Roger Bell_West

Exit Strategy, Martha Wells

2018 science fiction novella, fourth and final volume in the Murderbot series. Murderbot has some key data that will expose dodgy activities by one of the corporations… but the person to whom it would do some good seems to have been kidnapped. It's definitely not an emotional decision to rescue her. That would be a system error.

October 25, 2018 08:02 AM

October 24, 2018

Roger Bell_West

Pyramid 20: Alternate GURPS V

Pyramid, edited by Steven Marsh, is the monthly GURPS supplement containing short articles with a loose linking theme. This time it's rules that amend, replace or extend what's already in the books.

October 24, 2018 08:04 AM

October 23, 2018

Roger Bell_West

Second 1 Player Guild UK Meet

The 1 Player Guild is a group of solo game players, communicating through BoardGameGeek. After the first UK meet back in January, I organised a second one at a library near home.

With images; cc-by-sa on everything.

October 23, 2018 08:02 AM

October 22, 2018

Roger Bell_West

Goliath, Scott Westerfeld

2011 young adult steampunk SF, final volume of a trilogy. The living airship Leviathan crosses Russia en route to Japan; will Nikola Tesla's latest terror weapon end the Great War?

October 22, 2018 08:04 AM

October 21, 2018

Liam Proven

The first try at "an Ubuntu" -- Corel LinuxOS

(Hacked together from a few Reddit comments. Pardon disjointedness.)

Corel LinuxOS was a great distro. I reviewed it at the time.

It was the first serious big-backer effort to make Debian user-friendly and to make a Linux distro that could rival Windows NT 4 as a credible business desktop OS.

It has a custom remix of KDE -- I think KDE 2 -- heavily rewritten to make it more like WinXP. So they looked at Konqueror and discarded it as a bad job (overcomplex, trying to do too many different things... as KDE itself eventually decided too).

It had its own file manager, very like Windows Explorer. A real pleasure to work with. It even browsed Windows networks, better than anything can today.

IMHO, having used KDE since version 1, it was the best version of KDE ever and the only one I liked using. (2nd place: Red Hat Linux' Bluecurve edition in RH 9, before the Fedora/RHEL split, but that was just a really good theme and replacement of all the KDE apps with best-of-breed alternatives, which usually meant Gtk apps.)

I think Corel defaulted to Netscape Communicator as its web browser & email client -- Firefox didn't exist yet.

It was the first Linux ever to have display setup and adjustment using a graphical tool. You could just pick a colour depth from a drop-down, and drag a slider to adjust screen res. Just like Windows. This was world-beating stuff in the late 1990s -- nobody had ever seen anything like it on any Unix before. (Except maybe NeXTstep on its proprietary hardware. Which didn't do colour at all in the first versions.)

And of course it had WordPerfect, too. Remember this is before StarOffice (later OpenOffice later LibreOffice) was acquired by Sun and made freeware and later FOSS.

WordPerfect started out on Data General minicomputers in the 1970s. It was ported to everything early on. There were versions for the Atari ST, Amiga, OS/2 and classic MacOS as well as for MS-DOS.

The original edition was text-based and famed not only for its speed and very useful "reveal codes" function, which split the window into 2 showing editable markup in the bottom half, but also its very rich printer support.

In the era of text-based OSes, pre-GUI, it was common for apps to have to provide their own printer drivers. The OS maybe managed spooling but nothing more. No drivers. If you wanted bold or underline, you had to write all your own drivers.

WordPerfect did this better than anyone. It supported just about every printer in the world and did it better than anyone.

This early text-mode WordPerfect also ran on text-based Unix. I had a customer who wanted it on SCO Xenix 386. I installed it. It worked and the printer support was great, but fought for control with SCO's spooler. I had to edit SCO's "printer drivers" (really just shell scripts with minimal start/stop/set paper size control) in order to get it working.

The result was not great. In the end the customer switched users who needed wordprocessing from terminals to PCs running local copies of WP, and a terminal emulator for talking to the SCO host.

(SCO did not include networking -- it was an expensive optional extra on an expensive OS. X.11 was another extra. A C compiler was another.)

So WP always ran on Unix, for about 40 years, from before Linux was invented.

The first full-GUI WYSIWYG version, I think, was on OS/2 2. That was later ported to Windows 3 (and wasn't very good at first).

That's the version that they ported to Linux, version 8 of a full native rich Unix app, but an old Unix app with an old design, probably originating on SCO and running on various 1980s proprietary non-x86 Unixes, such as AIX, Solaris, etc.

I used it and liked it but it was a bit clunky. Printer support was good, though, which was a weak point on Linux back then.

So when Corel did a Linux distro, a selling point was the inclusion of WP 8.

There were 3 separate versions of WordPerfect on Unix.

#1 -- the original text-based version, no GUI, for proprietary Unixes with no GUI, such as SCO Xenix.

#2 -- the later graphical version, derived in part from the OS/2 and Windows 3 codebase, which was bundled in Corel LinuxOS. This was WordPerfect for Linux version 8, and it was a full native Linux app.

#3 WordPerfect Office

So about #3...

Corel got really into Linux around the end of the 1990s. It ported graphical WYSIWYG WordPerfect, it did its own distro, and it did its own ARM-based hardware, the Netwinder.

But there was no Linux office suite yet. WP 8 was the first credible commercial wordprocessor for the OS yet.

So Corel, flushed with confidence, and having now acquired WordPerfect Corp and part of Borland (for the Paradox database and Quattro Pro spreadsheet) and having its own Windows office suite, decided to port the whole thing to Linux.

But only WordPerfect was portable, cross-platform code. The other apps (Paradox, Quattro, Impress (presentations), InfoCentral (PIM) etc.) were Windows-only.

So it used WINE, specifically winelib. This was a related project to WINE but instead of letting you run Windows binaries, winelib lets you port Windows apps to Linux by providing Windows-compatible APIs to link to.

The result is a native Linux binary, although often called WHATEVER.EXE, which installs and runs natively -- but displays everything by calling winelib functions which translate Windows API calls to Linux ones.

That's how WordPerfect Office for Linux was written. Custom, tailored versions of the apps, with stuff that was totally Windows-specific removed, and features adjusted to work with winelib. But still, not a true native Linux app -- a suite of big complex Windows apps ported to Linux via WINE, and so dependent on WINE. And this is 20y ago and WINE wasn't very mature yet.

It worked and it was the first native (ish) Linux productivity suite, but it was buggy and unstable.

But then Corel did a fateful deal with the enemy. With Microsoft.

To improve adoption of WordPerfect Office on Windows, some gullible Corel boss was persuaded that what WPO needed was to be more compatible with MS Office. And the way to do that was to license the Office look and feel, i.e. the custom menus and toolbars, and the Visual BASIC for Applications macro language.

(Aside: you should realise that VBA was bolted on to MS Office when Office was quite mature. Word had its own macro language, WordBasic. Excel had its own too, similar to Lotus 1-2-3 in-cell macros. These were ripped out and replaced with VBA. For a while Excel could run _both_. That's what Corel did too... only it didn't even own the code it replaced its macro languages with.)

Corel licensed VBA and the look and feel and bolted them onto WPO for Windows. It paid a lot. Tens of millions, US.

But Microsoft insisted that Corel kill off all its Linux work as a result.

And Corel bought it. So it killed WPO for Linux... and CorelDraw for Linux and its other Linux apps. It killed WordPerfect for Linux, the native port. It killed the NetWinder and it killed LinuxOS. A lot of people lost their jobs.

The NetWinder and LinuxOS got sold off.

Corel LinuxOS became Xandros, also a damned good distro, but with no WordPerfect and no big-company backing. There were 2 more releases then it died.

The NetWinder sold some units as a thin client and then died.

But Microsoft had eliminated the only serious rival desktop OS that existed and it got paid money to do so!

And all this did Corel little good, because Microsoft just switched out the look-and-feel in the next version of Office anyway. If you install all the versions next to each other, they all look different.

Office 4 for Windows 3 just looked like a native Windows 3 app.

Office 95 had custom skins and title bars and buttons, so it looked more like a Win95 app with weird title bars.

Office 97 dropped the fancy styled title bars but made buttons squarer and so on, brought in tooltips everywhere, and switched all the file formats so you had to upgrade.

Office 2000 brought in the horrible self-customising menus, the edges of toolbar buttons disappeared except when hovered over... And Corel didn't get it because the licensing was not forward-looking, it was for one version only.

Office XP had "intellisense" and an unhelpful Help box and wizards everywhere instead of dialog boxes.

Office 2003 had more of the same, horrible shaded gradients in the toolbars and menus.

Office 2007 ditched menus for ribbons and I stopped using it.


Corel LinuxOS was great, ahead of its time, but Microsoft killed it.

by liam_on_linux at October 21, 2018 02:04 PM

Roger Bell_West

Mahoutsukai no Yome

2017-2018 modern fantasy, shounen manga adaptation, 24 episodes: AniDB. Unwanted orphan Hatori Chise is bought at auction by the monstrous magician Elias Ainsworth, to be his apprentice… and his bride. vt The Ancient Magus' Bride.

October 21, 2018 08:02 AM

October 20, 2018

Roger Bell_West

The Recycled Citizen, Charlotte MacLeod

1988 cozy American detective fiction; seventh of MacLeod's novels of Boston Brahmin Sarah Kelling and art investigator Max Bittersohn. Sarah is pregnant, but doesn't let that slow her down much; one of the rubbish-collectors working for the Senior Citizens' Recycling Center, a family charitable project, has been fatally mugged, and it seems that there's more going on.

October 20, 2018 08:02 AM

October 19, 2018

Roger Bell_West

Doctor Who 2/11.02: The Ghost Monument

Last week's opening episode was distinctly better than I'd expected, though very far from perfect. Can Chibnall (writing again) keep up the quality in a "regular" series episode?

October 19, 2018 08:03 AM

October 18, 2018

Roger Bell_West

Apex 112, September 2018

Apex is a monthly on-line magazine edited by Jason Sizemore among others.

October 18, 2018 08:01 AM

October 17, 2018

Roger Bell_West

Marlow Tabletop and Board Games 15 October 2018

This Meetup-based boardgames group continues to meet at the Marlow Donkey.

October 17, 2018 08:00 AM

October 16, 2018

Roger Bell_West

Clarkesworld 145, October 2018

Clarkesworld is a monthly on-line magazine edited by Neil Clarke.

October 16, 2018 08:01 AM

October 15, 2018

Roger Bell_West

Among Others, Jo Walton

2011 Hugo- and Nebula-award-winning fantasy. Morwenna is a young Welsh SF and fantasy fan; after losing some of her family and becoming crippled, she ends up living with her father and going to a boarding school.

October 15, 2018 08:00 AM

October 14, 2018

Roger Bell_West

October 13, 2018

Roger Bell_West

Just One Damned Thing After Another, Jodi Taylor

2013 science fiction, first in the Chronicles of St Mary's series. St Mary's Institute for Historical Research is rather more hands-on in their observation of history than anyone suspects; Dr Madeleine Maxwell is their newest recruit.

October 13, 2018 08:01 AM

October 12, 2018

Roger Bell_West

Whartstock 2018

Whartstock is the best gaming convention that you aren't invited to; it's the annual-ish gathering of the Whartson Hall Æthernauts.

October 12, 2018 08:04 AM

October 11, 2018

Roger Bell_West

The Rasp, Philip MacDonald

1924 mystery, first in the Anthony Gethryn series. A cabinet minister is beaten to death in his study; Colonel Anthony Gethryn, with a background in intelligence work but now terminally bored, investigates.

October 11, 2018 08:03 AM

October 10, 2018

Roger Bell_West

Doctor Who 2/11.01: The Woman Who Fell To Earth

I gave up on watching Doctor Who around series 6 of the new iteration, in exasperation at Steven Moffat going on and on and on doing the same old things. Now he's finally left, so I gave it another try.

October 10, 2018 08:03 AM

October 09, 2018

Roger Bell_West

Marlow Tabletop and Board Games 1 October 2018

This Meetup-based boardgames group continues to meet at the Marlow Donkey.

October 09, 2018 08:02 AM

October 08, 2018

Neil McGovern

GNOME ED Update – September

We’ve now moved my reporting to the board to a monthly basis, so this blog should get updated monthly too! So here’s what I’ve been up to in September.


Recruitment continues for our four positions that we announced earlier this year, but I’m pleased to say we’re in the final stages for these. For those interested, the process went a little bit like this:

  • Applicants sent in a CV and cover letter
  • If they were suitable for the position on a quick read of the CV and letter, they got a short questionnaire asking for more details, such as “What do you know about the GNOME Foundation?”
  • Those with interesting answers get sent to a first interview, which mostly technical
  • Then, those who are still in the process are invited to a second interview, which is competency-based
  • At the end of all this, we hope to make an offer to the best candidate!

End of year

For those who don’t know, the Foundation’s financial year runs from the start of October to the end of September. This means we have quite a bit of work to do to:

  1. Finalise the accounts for last year and submit our tax returns
  2. Make a new budget for the forthcoming year

Work has already begun on this, and I hope to finalise the new budget with the board at the Foundation Hackfest being held next week.

Libre Application Summit

LAS was held in Denver, Colorado, and I attended. There were 20 talks and three BoF
sessions held, as well as a number of social events. From looking around, there were probably around 60-70 people, including representatives from KDE and Elementary. It was particularly pleasing to see a number of students from the local university attend and present a lightning talk.

I also had meetings with System76 and Private Internet Access, as well as a couple of local companies.

Speaking of System76, we also had a nice tour of their new factory. I knew they were taking manufacturing in-house, but I didn’t realise the extent of this process. It’s not just assembly, but taking raw sheet metal, bending it into the right shape and painting them!

My meetings with PIA were also interesting – I got to see the new VPN client that they have, which I’m assured will be free software when released. There was a couple of issues I could see about how to integrate that with GNOME, and we had a good session running through these.

Other conferences coming up

In October, I’m hoping to attend Sustain Summit 2018, in London, followed by Freenode.Live in Bristol, UK. I’ll be speaking at the latter, which is in November. Then, after a couple of days at home, GNOME is going to SeaGL! Meet me and Rosanna in Seattle at the GNOME booth!

Friends of GNOME

Another thing that happened was fixing the Friends of GNOME signup page. For some reason, unknown to us, when you submitted the form to PayPal, it redirected to the home page rather than the payment page. This didn’t happen if you selected “EUR” as the payment method, or if you selected “EUR” and then “USD” before submitting. After lots of head scratching (an analysis of the POST data showed that it was /identical/ in each case) I changed the POST to a GET, and it suddenly started working again. Confusion all around, but it should now be working again.

by Neil McGovern at October 08, 2018 06:27 PM

Roger Bell_West

Leverage in Death, J. D. Robb

2018 SF/mystery; fifty-eighth (roughly, or 47th novel) of J. D. Robb's In Death series. Someone wears an explosive vest into a meeting to finalise a corporate merger; Lieutenant Eve Dallas has to find out why he did it, and whether someone else is pulling the strings.

October 08, 2018 08:02 AM