This link may be unsafe

Or: The Straw That Broke This Camel’s Back

Screenshot showing how an https link to my Mastadon page was changed to http by Twitter, triggering a security alert

Elon Musk changed Twitter bio links to Mastadon to http instead of https – or blocked them.

He is a free speech absolutist free marketeer who doesn’t believe in free speech he doesn’t like, nor does he believe in free market competition.

Effectively he changed users’ profiles to make it look like they are scammers.

An insane way to treat users, aside from the many other, probably more important, reasons to quit Twitter.

Anyway, I’ve deleted my Twitter account now.

I know there are reasons to keep your account live, but, if you’re a journalist, I ask you especially to consider ceasing to post on Twitter and only use it for passive research, out of solidarity with your colleagues on The New York Times, Washington Post, CNN, Voice of America and other outlets who had their accounts suspended by Elon Musk for reporting on him.

  • Your DMs are not secure and may be used against you, just as he has used internal private messages against people
  • Your account could be suspended at any time and you won’t be told why
  • Posting on Twitter is providing free content on a toxic platform whose owner is using it to suppress journalism and spread disinformation, for example about COVID

twitter is over if you want it

Posted in internet | Tagged , , | Leave a comment

A Christmas Ghost Story: The Tedious Case of Room 623

The Tedious Case of Room 623 cover art

Had an idea for a story while walking the dog. I was going to abandon it, or at the very least change the narrator’s preposterous name, when I discovered that Agatha Christie wrote over a dozen stories about a man called Quin, Harley Quin and I thought, well I won’t let the stupid name put me off.

I probably should have let the rest of the story being poor put me off, but hey I didn’t. I just wrote this for my own amusement while avoiding writing a novel, and to see where it goes, if anywhere.

Ironically, given the narrator’s views, my original idea for this was as a podcast, or just some audio posted on Mastodon. I might still do that, but it would probably force me to reveal something about the narrator I’d rather leave ambiguous for now.

Download the story as a free PDF here.

Bonus marks will be awarded for spotting any of the popular culture references used in the story.

Merry Spookmas!

Posted in fiction | Tagged , , | Leave a comment

Social migration

twitter is over if you want itThis is not intended to be another long take on Elon Musk’s Twitter takeover, heaven knows enough has been said about that, but a few thoughts as I mothball my Twitter account…

  • I have long-disliked Musk. He’s not a good role model for young people, he’s not a genius, he didn’t invent rockets or the electric car – he inherited an emerald mine and made some good purchases.
  • I am very uncomfortable with a major social media platform being owned by someone who is, at best, soft on Putin and Trump, and I don’t like the look of some of his other financial backers either.
  • I’m mothballing my Twitter account, not deleting it. For now. I think it’s likely that Musk will wreck Twitter and sell it for much less than he paid for it, or advertisers will force him to U-turn on all his big talk about absolute ‘free speech’. So I may go back.
  • Some people I know would love to leave Twitter but can’t because their jobs require it. There could be a trend for Twitter to become (even) more corporate, with a smaller number of accounts broadcasting. Conversations between non-blue-ticked humans (‘real people’) might move elsewhere.
  • Because of not-unrelated concerns, I’m not on any other major social media platform either (unless you count GeoCities or Firefly*) so I am going to feel very isolated.
  • I’m trying Mastodon.social. I’m totally new to it but I know it’s not Twitter and it’s a mistake to think it is. Find me at https://mastodon.social/@blogmywiki – come and say hello!
  • There’s lots I will miss about Twitter. Folk live-tweeting along with Top of the Pops. Keeping in touch with friends and former colleagues. I can’t imagine Eurovision without it. Interactions with admired celebrities. Disposable tweets from funny, clever people. The way it allows you to create a ‘rich mix’ feed of interests: in my case subjects as diverse as Python programming, education, music, 20th century literary fiction, typography, architecture, design, podcasting, radio, TV, journalism, British politics, the BBC micro:bit. I miss my pinned thread about the life I found in a skip, which I can’t recreate.
  • There are things I won’t miss. Twitter is too negative, too addictive, too much of a time sink (let that sink in!) and a slower, more positive pace would be better.
  • Without Twitter I think I’ll probably blog a bit more – more thoughtful, slower posting might be good.
  • Not checking my phone all the time may allow me more time to read. That’s got to be a good thing.
  • Mastodon, understandably, seems to be heavily geared towards the tech community. It would be great if more literary, radio, journalism and general political and cultural commentators and academics would try it too. I’d be very grateful if anyone can point me to other Mastodon instances where I might find people interested in these topics too.

* I’m joking, of course. Nobody remembers Firefly. I may even have dreamt it.

Posted in Uncategorized | Tagged , , | Leave a comment

Send the time from a watch to a BBC micro:bit

Previously I got a BBC micro:bit sending temperature data to my BangleJS watch by Bluetooth. I did this using a very simple, but deprecated, Eddystone beacon radio protocol.

I thought it would be interesting to send data the other way, from the watch to a micro:bit. What does a watch have that micro:bit doesn’t? A real time clock! So I modded this demo in a couple of ways.

First, the demo is for the Pixl.js board, which is a similar device to the BangleJS watch, but the code for drawing menus has changed since that demo was created. So I tweaked the JavaScript program for the watch to use showMenu() instead of Pixl.menu().

I also modified the program to send the time instead of the words ‘A test’.

MakeCode blocks to show text received by Bluetooth on a micro:bit

On the micro:bit side, I had a bit of trouble getting the code to work – this may be because I did not switch on ‘No Pairing Required: Anyone can connect via Bluetooth’ in the MakeCode project settings before I started creating it. In any case, I recreated the project in the old V0 MakeCode editor, downloaded the HEX file, loaded it in the current editor, and downloaded a new HEX file which runs on a V2 micro:bit – it works!

The MakeCode setting to allow any device to connect

To use it, transfer the JavaScript program to the watch, and flash the HEX file to a micro:bit. No pairing should be required on the micro:bit – it should just advertise its ‘friendly name’ (like ‘zavov’) and you should see it listed on your watch. Tap on the name to select it, then choose a message to send.

You can find the code and HEX files for both V1 and V2 micro:bits over on my GitHub: https://github.com/blogmywiki/bangle-microbit-time

Let me know if you think of any other uses for this – perhaps to put accurate times in a data logging program, or to make a micro:bit clock.

Posted in computers, microbit | Tagged , , , , | Leave a comment

Use a micro:bit as remote Bluetooth temperature sensor

BangleJS2 watch receiving temperature data by radio from BBC micro:bit

I love my BangleJS2 watch – it’s an inexpensive smart watch with custom firmware that allows you easily to write your own apps using JavaScript. I’ve already made a couple of watch faces for it, but I was keen to see if I could get it to talk to a BBC micro:bit over Bluetooth radio.

This radio voting project using micro:bits and an Espruino Pixl.js board suggested it should be possible, so I had a go.

This uses the Eddystone beacon protocol which has now been dropped by Google. If you try and follow that voting project, when you go to code the micro:bit, you’ll find that the ‘bluetooth advertise URL’ block you need is missing from Microsoft MakeCode even after adding the Bluetooth radio extension.

However, the underlying code to make it work is still there, so you have a couple of options. You can open this published project. Or you can just switch to JavaScript (Typescript) mode in the MakeCode editor and paste this code in:

loops.everyInterval(60000, function () {
    basic.showIcon(IconNames.Heart)
    bluetooth.advertiseUrl(
    "https://microbit.org#" + convertToText(input.temperature()),
    7,
    false
    )
    basic.clearScreen()
})

…then switch back to blocks:
MakeCode blocks to send temperature data as Eddystone beacon signal

You can see that the code you need on the micro:bit is really very, very simple.

What this simplified project does is just send the current temperature from the micro:bit once a minute. A heart flashes on the LED display so you know it’s working.

You then need to put some code on your BangleJS watch (or other Espruino device) – the code it listed at the foot of this blogpost. It’s not too complex either – and possibly could be made simpler, I modified the voting project code to make this.

I can think of a few uses for this – using two micro:bits to sense indoor and outdoor temperatures which I can easily read on my watch. And as I explore communication the other way, from the watch to the micro:bit, perhaps use the watch to send real clock time data to a micro:bit for data logging or to make a clock, or perhaps add an audible alarm to the watch.

If you think of any other uses for wireless communication between micro:bits and watches, let me know.

The code and hex file are also on GitHub: https://github.com/blogmywiki/bangle-microbit-temp

And if you fancy sending data the other way, perhaps send the time from a watch to a micro:bit, maybe for data logging, maybe for a clock project, check out this blog post!

// List of eddystone devices
var eddystone = {};
var temp;

// Start scanning for devices
NRF.setScan(function(dev) {
  if (dev.serviceData && dev.serviceData.feaa)
    eddystone[dev.id] = dev;
});

setInterval(function() {
  for (var id in eddystone) {
    var dev = eddystone[id];
    if (!dev.age) dev.age=0;
    dev.age++;
    // only use data from devices we heard from recently
    if (dev.age < 40) {
      // if the URL contains a hash, the temperature is what comes after
      var url = E.toString(dev.serviceData.feaa).substr(3);
      var hash = url.lastIndexOf("#");
      if (hash) {
        temp = url.substr(hash+1);
        print(temp);
      }
    }
  }
  // now display on the screen
  g.clear();
  g.setFontVector(40);
  g.setFontAlign(0,0);
  g.drawString("Temp: ", g.getWidth()/2, (g.getHeight()/2)-20);
  if (temp) {
  g.drawString(temp+ "°C", g.getWidth()/2, (g.getHeight()/2)+20);
  }
  g.flip();
}, 500);
Posted in computers, education, ICT, microbit | Tagged , , , , , , , , | Leave a comment