{ "version": "https://jsonfeed.org/version/1.1", "user_comment": "This feed allows you to read the posts from this site in any feed reader that supports the JSON Feed format. To add this feed to your reader, copy the following URL -- https://markstaylor.uk/blog/feed/json -- and add it your reader.", "next_url": "https://markstaylor.uk/blog/feed/json?paged=2", "home_page_url": "https://markstaylor.uk/blog", "feed_url": "https://markstaylor.uk/blog/feed/json", "language": "en-GB", "title": "Blog – Mark Taylor", "description": "Fiction & fripperies", "items": [ { "id": "https://markstaylor.uk/?p=2607", "url": "https://markstaylor.uk/blog/2023/04/the-double-in-the-fiction-desk", "title": "\u2018The Double\u2019 in The Fiction Desk", "content_html": "\n
My story ‘The Double will appear in the next Fiction Desk anthology, New Ghost Stories IV, available now. It’s for anyone who’s ever felt divided, or who can no longer go to their preferred caf\u00e9.
\n", "content_text": "My story ‘The Double will appear in the next Fiction Desk anthology, New Ghost Stories IV, available now. It’s for anyone who’s ever felt divided, or who can no longer go to their preferred caf\u00e9.", "date_published": "2023-04-17T13:16:30+01:00", "date_modified": "2024-03-11T09:48:59+00:00", "authors": [ { "name": "Mark", "url": "https://markstaylor.uk/author/mark", "avatar": "https://secure.gravatar.com/avatar/e7e3963b06cc838db09b955a200665f7?s=512&d=mm&r=g" } ], "author": { "name": "Mark", "url": "https://markstaylor.uk/author/mark", "avatar": "https://secure.gravatar.com/avatar/e7e3963b06cc838db09b955a200665f7?s=512&d=mm&r=g" }, "image": "https://i0.wp.com/markstaylor.uk/wp-content/uploads/2023/04/randy-jacob-A1HC8M5DCQc-unsplash-jpg.webp?fit=1920%2C1280&ssl=1", "tags": [ "Blog", "Fiction" ] }, { "id": "https://markstaylor.uk/?p=2567", "url": "https://markstaylor.uk/blog/2023/03/building-a-childrens-storybook-reader", "title": "Building a children\u2019s storybook reader", "content_html": "\nParents of young children will probably be familiar with Yoto and Tonies. These story-reading devices allow kids to choose an audiobook simply by placing a little card or figure on them. They’re clever, child-friendly, and widely-loved, which is why parents are willing to stump up eighty quid for a player and then pay printer-cartridge prices for the stories to go with it.
\n\n\n\nBut I am cheap and self-indulgent, so I thought I would make my own.
\n\n\n\nThe magic storybook uses a Raspberry Pi, an RC522 RFID module, a USB speaker, a cardboard box, some red faux leather, half a bottle of Copydex and an unjustifiable quantity of hot glue to provide delightful screen-free storytelling to exactly one child.
\n\n\n\nFor the child, operation is simple. Place a suitably enchanted book or other object on the magic storybook, and it will be read aloud. Take it off, and the reading stops.
\n\n\n\nFor the grownup, operation is still not too complicated. Place a suitably encoded audio file on the magic storybook’s SD card, then affix an NFC tag with the text <s>filename.flac</s>
written to it to the object you wish to enchant.
I was fully prepared for this project to be entirely for my own amusement and of no interest to my son, but as it turned out, he was very enthusiastic about it. On his second night with it, I tucked him in and left him with Funnybones playing; when I checked in later, he had put Five Minutes’ Peace on for himself and was fast asleep. It is foolish to assume that anything involving a small child’s sleep will last, but it won’t take many nights like this for me to have gained more time than I spent making it.
\n\n\n\n\n\n\n\nIt is basically impossible to buy a Raspberry Pi for a reasonable price at the moment. Luckily, I was able to find an eBay listing with unusually little interest; shoppers may have been confused by the OCR exam board branding and bundled February 2013 issue of MagPi magazine. Can I make back some of the money spent on this project by selling on the magazine on its own? We shall see.
\n\n\n\n(A few days after finishing the build, I got an alert that the Pi Zero W was back in stock at The Pi Hut. But there’s something satisfying about making use of a device that has been sat unused in its packaging for a decade.)
\n\n\n\nI used an RC522 RFID module to read my tags; it had a killer feature lacking from all the other options I looked at, which was that it was the price of a Boots meal deal. There is a Python library available for this module, which worked perfectly with the included tags. I felt very pleased with myself.
\n\n\n\nIt then immediately fell over when faced with the cheap RFID stickers I had bought a hundred of for this process. You see, it turns out that not having the first idea what you are doing can cause problems. It also turns out that this whole RFID/NFC business isn’t just ‘magic sticker has some electric writing on’. There are different kinds, and they work differently!
\n\n\n\nI’ve written a separate post on resolving this, in the hope of helping anyone else who finds themselves in the same position of understanding just enough to get themselves into trouble get out of it. (This position seems to be where I spend most of my time.)
\n\n\n\nOnce everything was built, there was one last decision to make: what objects should I tag to make the storybook play stories? Yoto uses cards; Tonies uses figurines. My first thought was just to tag the books themselves, which seemed the simplest and most magical approach. But I worried that it would be hard to line up the tag with the reader. Tonies have magnets to align them and Yoto has a slot; I was just going to put a little gold sticker on to mark the reader, but that doesn’t help if the object you’re putting on is the size of a children’s storybook.
\n\n\n\nIn the end, my son made the decision for me. When I showed him how it worked, he just naturally assumed you would use the books. When we tried it out, it turned out that the way a person naturally places a book on the magic storybook is pretty predictable, and if it doesn’t work straight away it’s not hard to move it until it does. Also, my gold stickers were metallic enough to block the radio signal. The lessons here: don’t overthink things when you can try them out, and don’t assume you’re smarter than a four-year-old.
\n\n\n\nThe code that runs this project is available here, in case it’s useful to anyone.
\n", "content_text": "Parents of young children will probably be familiar with Yoto and Tonies. These story-reading devices allow kids to choose an audiobook simply by placing a little card or figure on them. They’re clever, child-friendly, and widely-loved, which is why parents are willing to stump up eighty quid for a player and then pay printer-cartridge prices for the stories to go with it.\n\n\n\nBut I am cheap and self-indulgent, so I thought I would make my own.\n\n\n\nThe Magic Storybook\n\n\n\n\n\n\n\nThe magic storybook uses a Raspberry Pi, an RC522 RFID module, a USB speaker, a cardboard box, some red faux leather, half a bottle of Copydex and an unjustifiable quantity of hot glue to provide delightful screen-free storytelling to exactly one child.\n\n\n\nFor the child, operation is simple. Place a suitably enchanted book or other object on the magic storybook, and it will be read aloud. Take it off, and the reading stops.\n\n\n\nFor the grownup, operation is still not too complicated. Place a suitably encoded audio file on the magic storybook’s SD card, then affix an NFC tag with the text <s>filename.flac</s> written to it to the object you wish to enchant.\n\n\n\nI was fully prepared for this project to be entirely for my own amusement and of no interest to my son, but as it turned out, he was very enthusiastic about it. On his second night with it, I tucked him in and left him with Funnybones playing; when I checked in later, he had put Five Minutes’ Peace on for himself and was fast asleep. It is foolish to assume that anything involving a small child’s sleep will last, but it won’t take many nights like this for me to have gained more time than I spent making it.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nSome notes on the build\n\n\n\nWho ate all the Pis?\n\n\n\nIt is basically impossible to buy a Raspberry Pi for a reasonable price at the moment. Luckily, I was able to find an eBay listing with unusually little interest; shoppers may have been confused by the OCR exam board branding and bundled February 2013 issue of MagPi magazine. Can I make back some of the money spent on this project by selling on the magazine on its own? We shall see.\n\n\n\n\n\n\n\n(A few days after finishing the build, I got an alert that the Pi Zero W was back in stock at The Pi Hut. But there’s something satisfying about making use of a device that has been sat unused in its packaging for a decade.)\n\n\n\nReading tags\n\n\n\nI used an RC522 RFID module to read my tags; it had a killer feature lacking from all the other options I looked at, which was that it was the price of a Boots meal deal. There is a Python library available for this module, which worked perfectly with the included tags. I felt very pleased with myself.\n\n\n\nIt then immediately fell over when faced with the cheap RFID stickers I had bought a hundred of for this process. You see, it turns out that not having the first idea what you are doing can cause problems. It also turns out that this whole RFID/NFC business isn’t just ‘magic sticker has some electric writing on’. There are different kinds, and they work differently!\n\n\n\nI’ve written a separate post on resolving this, in the hope of helping anyone else who finds themselves in the same position of understanding just enough to get themselves into trouble get out of it. (This position seems to be where I spend most of my time.)\n\n\n\nEnchant wisely\n\n\n\nOnce everything was built, there was one last decision to make: what objects should I tag to make the storybook play stories? Yoto uses cards; Tonies uses figurines. My first thought was just to tag the books themselves, which seemed the simplest and most magical approach. But I worried that it would be hard to line up the tag with the reader. Tonies have magnets to align them and Yoto has a slot; I was just going to put a little gold sticker on to mark the reader, but that doesn’t help if the object you’re putting on is the size of a children’s storybook.\n\n\n\nIn the end, my son made the decision for me. When I showed him how it worked, he just naturally assumed you would use the books. When we tried it out, it turned out that the way a person naturally places a book on the magic storybook is pretty predictable, and if it doesn’t work straight away it’s not hard to move it until it does. Also, my gold stickers were metallic enough to block the radio signal. The lessons here: don’t overthink things when you can try them out, and don’t assume you’re smarter than a four-year-old.\n\n\n\nMy dodgy code\n\n\n\nThe code that runs this project is available here, in case it’s useful to anyone.", "date_published": "2023-03-08T22:29:27+00:00", "date_modified": "2024-03-11T09:47:03+00:00", "authors": [ { "name": "Mark", "url": "https://markstaylor.uk/author/mark", "avatar": "https://secure.gravatar.com/avatar/e7e3963b06cc838db09b955a200665f7?s=512&d=mm&r=g" } ], "author": { "name": "Mark", "url": "https://markstaylor.uk/author/mark", "avatar": "https://secure.gravatar.com/avatar/e7e3963b06cc838db09b955a200665f7?s=512&d=mm&r=g" }, "image": "https://i0.wp.com/markstaylor.uk/wp-content/uploads/2023/03/PXL_20230304_233404130-1-scaled-e1678314488371.webp?fit=2560%2C1241&ssl=1", "tags": [ "Blog" ], "summary": "I made a Tonies/Yoto-style story reader and I promise I did it mainly for my son and not because I thought it would be fun.", "attachments": [ { "url": "https://markstaylor.uk/wp-content/uploads/2023/03/PXL_20230305_145156768.TS_.mp4", "mime_type": "video/mp4", "size_in_bytes": 33368661 } ] }, { "id": "https://markstaylor.uk/?p=2562", "url": "https://markstaylor.uk/blog/2023/03/reading-mifare-ultralight-tags-on-raspberry-pi-with-the-rc522-and-simplemfrc522", "title": "Reading MiFare Ultralight tags on Raspberry Pi with the RC522 and SimpleMFRC522", "content_html": "\nWhile building my son’s magic storybook, I had a bit of trouble getting my RC522 RFID/NFC module to work with MiFare Ultralight tags (the kind you’ll likely end up with if you buy cheap NFC stickers on eBay). There seemed to be a number of people online having similar problems and not much material to resolve them, perhaps because the real solution is ‘actually learn what you’re doing’. But around here we drink only as deep from the Pierian spring as is absolutely necessary to achieve our ends, so here we are.
\n\n\n\nI thought I’d share what I learned to help future solution-searchers. This is not even close to a comprehensive or expert guide, and may even be misleading in places, but hopefully it can help you figure things out for your own use case.
\n\n\n\nThere is a library for using this module with a Raspberry Pi, which comes in two parts: MFRC522 and SimpleMFRC522. MFRC522 implements all the basic functions of the module; I believe if you know what you are doing you can do everything you need to do with it without modification. SimpleMFRC522 puts together these basics into a few essential functions for reading and writing tags, but with a couple of important limitations: it assumes you are using MiFare Classic tags (like the card and key fob that probably came with your RC522 module), and it reads and writes just a few pre-selected blocks of the tag’s memory.
\n\n\n\nIf you try to use an Ultralight tag, you will probably see the message “AUTH ERROR”. This is because MiFare Classic tags require authorisation to read and write, but Ultralight tags don’t. The library presses ahead with the authorization process, but it can’t work.
\n\n\n\nThere are two crude, hacky ways around this. You can remove the authorization process altogether by deleting this line:
\n\n\n\nstatus = self.READER.MFRC522_Auth(self.READER.PICC_AUTHENT1A, 11, self.KEY, uid)
\n\n\n\nOr you can force it to carry on as if it worked, by removing the if
statement from the front of this (or replacing the condition, status == self.READER.MI_OK
, with True
):
if status == self.READER.MI_OK:\n for block_num in self.BLOCK_ADDRS:\n block = self.READER.MFRC522_Read(block_num) \n if block:\n data += block
\n\n\n\nEither will let you work with Ultralight tags. The former will (I think) mean Classic tags don’t work anymore; the latter will mean they work but you won’t get warned if something goes wrong with the authorization process.
\n\n\n\nYou have probably also tried to use the RFC522 module to read tags you wrote with your phone. This is unlikely to work if you use SimpleMFRC522, because as mentioned, it always looks for blocks 8 through 10:
\n\n\n\nBLOCK_ADDRS = [8, 9, 10]\nfor block_num in self.BLOCK_ADDRS:\n block = self.READER.MFRC522_Read(block_num) \n if block:\n data += block\n if data:\n text_read = ''.join(chr(i) for i in data)
\n\n\n\nThe data you write from your phone probably won’t end up in these blocks.
\n\n\n\nI simply chose to start at block 0 and read until the blocks ran out, then search through the output for my desired text (which I marked up so I could find it reliably). I imagine this wasn’t the best approach, but it was really simple and gave reliable results.
\n\n\n\nblock_num = 0\n while True:\n block = self.READER.MFRC522_Read(block_num)\n if block:\n data += block\n block_num = block_num + 4\n else:\n break\n if data:\n text_read = ''.join(chr(i) for i in data)
\n\n\n\nYou may notice that this code adds 4 to block_num, which tells it which block to read, each time it loops. That’s because of another exciting quirk of using Ultralight tags:
\n\n\n\nIf you have got this far, you might find that you can read and write text, but it comes out all messed up. This is because of a difference in how data is stored on the two types of tag. Both types are split up into ‘blocks’, but on the Classic tag a blog is 16 bytes, while on an Ultralight it is only 4.
\n\n\n\nHowever, when you ask the RC522 to read a block from an Ultralight tag, it will actually read four blocks, so that it can still give you 16 bytes. So if you naively ask for blocks 1 to 3, you actually get blocks 1, 2, 3, 4, 2, 3, 4, 5, 3, 4, 5 and 6.
\n\n\n\nInstead, you need to request every fourth block, which is why the code above increments block_num by 4 each time.
\n\n\n\nHere is my fork of the MFRC522 library with the above changes. It implements two new methods in SimpleMFRC522: dump_ul
and dump_ul_no_block
. Like the read
methods, these return the tag ID and a string containing the data, but they don’t attempt authorization, and they read all the data on the tag.
I haven’t touched the write methods as I wasn’t planning to use them. It’s my understanding that (unlike reading) writing to an Ultralight tag is done one 4-byte block at a time to avoid unintentionally overwriting data, so keep that in mind if you need to write.
\n", "content_text": "While building my son’s magic storybook, I had a bit of trouble getting my RC522 RFID/NFC module to work with MiFare Ultralight tags (the kind you’ll likely end up with if you buy cheap NFC stickers on eBay). There seemed to be a number of people online having similar problems and not much material to resolve them, perhaps because the real solution is ‘actually learn what you’re doing’. But around here we drink only as deep from the Pierian spring as is absolutely necessary to achieve our ends, so here we are.\n\n\n\nI thought I’d share what I learned to help future solution-searchers. This is not even close to a comprehensive or expert guide, and may even be misleading in places, but hopefully it can help you figure things out for your own use case.\n\n\n\nThere is a library for using this module with a Raspberry Pi, which comes in two parts: MFRC522 and SimpleMFRC522. MFRC522 implements all the basic functions of the module; I believe if you know what you are doing you can do everything you need to do with it without modification. SimpleMFRC522 puts together these basics into a few essential functions for reading and writing tags, but with a couple of important limitations: it assumes you are using MiFare Classic tags (like the card and key fob that probably came with your RC522 module), and it reads and writes just a few pre-selected blocks of the tag’s memory.\n\n\n\nAuth error\n\n\n\nIf you try to use an Ultralight tag, you will probably see the message “AUTH ERROR”. This is because MiFare Classic tags require authorisation to read and write, but Ultralight tags don’t. The library presses ahead with the authorization process, but it can’t work.\n\n\n\nThere are two crude, hacky ways around this. You can remove the authorization process altogether by deleting this line:\n\n\n\nstatus = self.READER.MFRC522_Auth(self.READER.PICC_AUTHENT1A, 11, self.KEY, uid)\n\n\n\nOr you can force it to carry on as if it worked, by removing the if statement from the front of this (or replacing the condition, status == self.READER.MI_OK, with True):\n\n\n\n if status == self.READER.MI_OK:\n for block_num in self.BLOCK_ADDRS:\n block = self.READER.MFRC522_Read(block_num) \n if block:\n data += block\n\n\n\nEither will let you work with Ultralight tags. The former will (I think) mean Classic tags don’t work anymore; the latter will mean they work but you won’t get warned if something goes wrong with the authorization process.\n\n\n\nReading tags written from your phone\n\n\n\nYou have probably also tried to use the RFC522 module to read tags you wrote with your phone. This is unlikely to work if you use SimpleMFRC522, because as mentioned, it always looks for blocks 8 through 10:\n\n\n\nBLOCK_ADDRS = [8, 9, 10]\nfor block_num in self.BLOCK_ADDRS:\n block = self.READER.MFRC522_Read(block_num) \n if block:\n data += block\n if data:\n text_read = ''.join(chr(i) for i in data)\n\n\n\nThe data you write from your phone probably won’t end up in these blocks.\n\n\n\nI simply chose to start at block 0 and read until the blocks ran out, then search through the output for my desired text (which I marked up so I could find it reliably). I imagine this wasn’t the best approach, but it was really simple and gave reliable results.\n\n\n\nblock_num = 0\n while True:\n block = self.READER.MFRC522_Read(block_num)\n if block:\n data += block\n block_num = block_num + 4\n else:\n break\n if data:\n text_read = ''.join(chr(i) for i in data)\n\n\n\nYou may notice that this code adds 4 to block_num, which tells it which block to read, each time it loops. That’s because of another exciting quirk of using Ultralight tags:\n\n\n\nMessed up text\n\n\n\nIf you have got this far, you might find that you can read and write text, but it comes out all messed up. This is because of a difference in how data is stored on the two types of tag. Both types are split up into ‘blocks’, but on the Classic tag a blog is 16 bytes, while on an Ultralight it is only 4.\n\n\n\nHowever, when you ask the RC522 to read a block from an Ultralight tag, it will actually read four blocks, so that it can still give you 16 bytes. So if you naively ask for blocks 1 to 3, you actually get blocks 1, 2, 3, 4, 2, 3, 4, 5, 3, 4, 5 and 6.\n\n\n\nInstead, you need to request every fourth block, which is why the code above increments block_num by 4 each time.\n\n\n\nEnough of this, I just want to make my janky code work\n\n\n\nHere is my fork of the MFRC522 library with the above changes. It implements two new methods in SimpleMFRC522: dump_ul and dump_ul_no_block. Like the read methods, these return the tag ID and a string containing the data, but they don’t attempt authorization, and they read all the data on the tag.\n\n\n\nI haven’t touched the write methods as I wasn’t planning to use them. It’s my understanding that (unlike reading) writing to an Ultralight tag is done one 4-byte block at a time to avoid unintentionally overwriting data, so keep that in mind if you need to write.", "date_published": "2023-03-08T22:03:54+00:00", "date_modified": "2024-03-11T09:47:03+00:00", "authors": [ { "name": "Mark", "url": "https://markstaylor.uk/author/mark", "avatar": "https://secure.gravatar.com/avatar/e7e3963b06cc838db09b955a200665f7?s=512&d=mm&r=g" } ], "author": { "name": "Mark", "url": "https://markstaylor.uk/author/mark", "avatar": "https://secure.gravatar.com/avatar/e7e3963b06cc838db09b955a200665f7?s=512&d=mm&r=g" }, "image": "https://i0.wp.com/markstaylor.uk/wp-content/uploads/2023/03/rc522-jpg-e1678312921871.webp?fit=705%2C437&ssl=1", "tags": [ "Blog" ], "summary": "Lessons learned from using PiMyLifeUp's MFRC522 Python library with MiFare Ultralight NFC tags." }, { "id": "https://markstaylor.uk/?p=2338", "url": "https://markstaylor.uk/books/2023/02/all-day-long-a-portrait-of-britain-at-work-joanna-biggs", "title": "All Day Long: A Portrait of Britain at Work (Joanna Biggs)", "content_html": "\nI bought All Day Long when it was published in 2015; I distinctly remember ordering it online with great enthusiasm following a recommendation from somewhere. As with all parcels, I waited impatiently for its arrival. I then put it on a shelf, where it sat patiently for eight years while I never quite felt in the mood to read it.
\n\n\n\n\n\n\n\nIn 2015, I was interested in the basic premise of the book: Biggs interviews people in various different jobs about their work and what it means to them. Finally reading it, I was pleased to find it does more, drawing out insightful connections between its subjects, and to the state of British politics and the economy. The result is a compelling and fascinating exploration of modern working life, with Biggs finding an excellent balance between her subjects’ voices and her own.
\n\n\n\nOf course, this was eight years ago, with the effects of the financial crisis still being keenly felt and the coalition government ripping through the social safety net unrestrained by a Lib Dem component happy to sell the vulnerable into destitution for the 5p carrier bag charge. The broader observations Biggs makes must surely now be out of date, right?
\n\n\n\nAll Day Long is still hugely relevant to working life in 2023, a fact so depressing I can only award it no stars. \u2606\u2606\u2606\u2606\u2606
\n\n\n\nAll Day Long is still available in paperback and ebook formats. Concidentally, Biggs’s next book, A Life of One’s Own, is published in May 2023 and available for pre-order now.
\n\n\n\n\n", "content_text": "I bought All Day Long when it was published in 2015; I distinctly remember ordering it online with great enthusiasm following a recommendation from somewhere. As with all parcels, I waited impatiently for its arrival. I then put it on a shelf, where it sat patiently for eight years while I never quite felt in the mood to read it. \n\n\n\n\n\n\n\nIn 2015, I was interested in the basic premise of the book: Biggs interviews people in various different jobs about their work and what it means to them. Finally reading it, I was pleased to find it does more, drawing out insightful connections between its subjects, and to the state of British politics and the economy. The result is a compelling and fascinating exploration of modern working life, with Biggs finding an excellent balance between her subjects’ voices and her own.\n\n\n\nOf course, this was eight years ago, with the effects of the financial crisis still being keenly felt and the coalition government ripping through the social safety net unrestrained by a Lib Dem component happy to sell the vulnerable into destitution for the 5p carrier bag charge. The broader observations Biggs makes must surely now be out of date, right?\n\n\n\nAll Day Long is still hugely relevant to working life in 2023, a fact so depressing I can only award it no stars. \u2606\u2606\u2606\u2606\u2606\n\n\n\n\n\n\n\nAll Day Long is still available in paperback and ebook formats. Concidentally, Biggs’s next book, A Life of One’s Own, is published in May 2023 and available for pre-order now.", "date_published": "2023-02-16T11:29:11+00:00", "date_modified": "2024-03-11T09:48:31+00:00", "authors": [ { "name": "Mark", "url": "https://markstaylor.uk/author/mark", "avatar": "https://secure.gravatar.com/avatar/e7e3963b06cc838db09b955a200665f7?s=512&d=mm&r=g" } ], "author": { "name": "Mark", "url": "https://markstaylor.uk/author/mark", "avatar": "https://secure.gravatar.com/avatar/e7e3963b06cc838db09b955a200665f7?s=512&d=mm&r=g" }, "image": "https://i0.wp.com/markstaylor.uk/wp-content/uploads/2023/02/PXL_20230216_111636237-2-scaled.webp?fit=2560%2C1920&ssl=1", "tags": [ "Blog", "Books" ] }, { "id": "https://markstaylor.uk/?p=2333", "url": "https://markstaylor.uk/blog/2023/02/sussudio-apt-get-install-earworm", "title": "Sussudio apt-get install earworm", "content_html": "\nI’m constantly surprised by my brain’s ability to turn any detail of its environment into an earworm. Last night I had Nizlopi’s 2005 number one ‘JCB’ in my head and I’ve just realised it was because of this filename (the result of testing out the Raspberry Pi-based MIDI recorder I’m building for my wife’s piano on her performance of Ludovico Einaudi’s ‘Inizio’).
\n\n\n\nThroughout the renovation of our house, I had ‘YMCA’ in my head. Eventually I spotted that this must be because of the Youngman-brand stepladder I was using. My belief that I have to much mental fortitude to fall for Derren Brown-style ‘power of suggestion’ conjuring lies in tatters.
\n\n\n\n\n", "content_text": "I’m constantly surprised by my brain’s ability to turn any detail of its environment into an earworm. Last night I had Nizlopi’s 2005 number one ‘JCB’ in my head and I’ve just realised it was because of this filename (the result of testing out the Raspberry Pi-based MIDI recorder I’m building for my wife’s piano on her performance of Ludovico Einaudi’s ‘Inizio’).\n\n\n\n\n\n\n\nThroughout the renovation of our house, I had ‘YMCA’ in my head. Eventually I spotted that this must be because of the Youngman-brand stepladder I was using. My belief that I have to much mental fortitude to fall for Derren Brown-style ‘power of suggestion’ conjuring lies in tatters.", "date_published": "2023-02-06T09:14:11+00:00", "date_modified": "2024-03-11T09:47:04+00:00", "authors": [ { "name": "Mark", "url": "https://markstaylor.uk/author/mark", "avatar": "https://secure.gravatar.com/avatar/e7e3963b06cc838db09b955a200665f7?s=512&d=mm&r=g" } ], "author": { "name": "Mark", "url": "https://markstaylor.uk/author/mark", "avatar": "https://secure.gravatar.com/avatar/e7e3963b06cc838db09b955a200665f7?s=512&d=mm&r=g" }, "tags": [ "Blog" ] }, { "id": "https://markstaylor.uk/?p=1724", "url": "https://markstaylor.uk/books/2023/01/the-city-and-the-city-china-mieville", "title": "The City and the City (China Mi\u00e9ville)", "content_html": "\nI’m always delighted to approach books (and other works) with as little knowledge about them as reasonably possible. (If you’re the same, and you haven’t read The City and the City, then please forgo reading this post, which contains conceptual spoilers if not plot ones.) This novel, which sat vaguely on my reading list for some time until I received it as a Christmas present, occupied a middle ground: I vaguely knew the central conceit of its setting, but nothing beyond that.
\n\n\n\nHow delightful, then, to discover that my understanding was wrong. I had The City and the City categorised as sci-fi; I thought its twin cities Bes\u017ael and Ul Qoma occupied the same physical space through some quirk of physics or magic. The novel doesn’t outright contradict this, but it certainly doesn’t require it: the two cities, and the skin between them, are seemingly constructed entirely in the minds of their citizens. The City and the City isn’t sci-fi: it’s polsci-fi.
\n\n\n\nAnd the real trick is that these two strange cities aren’t really all that strange. Detectives’ frustrations over jurisdictional issues are familiar from a thousand more conventional police procedurals. Citizens mark their belonging by dress and manner, as they do everywhere else on Earth. Their borders are imagined; so are ours. The difference is merely topological, but it is a difference that provides a valuable lens through which to view borders and nationality and citizenship. (And perhaps the topology isn’t so strange after all: the UK’s hostile environment shows us all too clearly that borders don’t stop at the border.)
\n\n\n\nThe blurb of my copy tells the reader that the protagonist ‘must travel to the only metropolis on Earth as strange as his own, across a border like no other’. That’s the promise that gets the novel off the shelf: what makes it great is that the promise is a lie.
\n\n\n\nFor misleading me in this way, I award The City and the City no stars. \u2606\u2606\u2606\u2606\u2606
\n", "content_text": "I’m always delighted to approach books (and other works) with as little knowledge about them as reasonably possible. (If you’re the same, and you haven’t read The City and the City, then please forgo reading this post, which contains conceptual spoilers if not plot ones.) This novel, which sat vaguely on my reading list for some time until I received it as a Christmas present, occupied a middle ground: I vaguely knew the central conceit of its setting, but nothing beyond that. \n\n\n\nHow delightful, then, to discover that my understanding was wrong. I had The City and the City categorised as sci-fi; I thought its twin cities Bes\u017ael and Ul Qoma occupied the same physical space through some quirk of physics or magic. The novel doesn’t outright contradict this, but it certainly doesn’t require it: the two cities, and the skin between them, are seemingly constructed entirely in the minds of their citizens. The City and the City isn’t sci-fi: it’s polsci-fi.\n\n\n\nAnd the real trick is that these two strange cities aren’t really all that strange. Detectives’ frustrations over jurisdictional issues are familiar from a thousand more conventional police procedurals. Citizens mark their belonging by dress and manner, as they do everywhere else on Earth. Their borders are imagined; so are ours. The difference is merely topological, but it is a difference that provides a valuable lens through which to view borders and nationality and citizenship. (And perhaps the topology isn’t so strange after all: the UK’s hostile environment shows us all too clearly that borders don’t stop at the border.)\n\n\n\nThe blurb of my copy tells the reader that the protagonist ‘must travel to the only metropolis on Earth as strange as his own, across a border like no other’. That’s the promise that gets the novel off the shelf: what makes it great is that the promise is a lie.\n\n\n\nFor misleading me in this way, I award The City and the City no stars. \u2606\u2606\u2606\u2606\u2606", "date_published": "2023-01-10T19:19:42+00:00", "date_modified": "2024-03-11T09:48:31+00:00", "authors": [ { "name": "Mark", "url": "https://markstaylor.uk/author/mark", "avatar": "https://secure.gravatar.com/avatar/e7e3963b06cc838db09b955a200665f7?s=512&d=mm&r=g" } ], "author": { "name": "Mark", "url": "https://markstaylor.uk/author/mark", "avatar": "https://secure.gravatar.com/avatar/e7e3963b06cc838db09b955a200665f7?s=512&d=mm&r=g" }, "tags": [ "Blog", "Books" ] }, { "id": "https://markstaylor.uk/?p=1718", "url": "https://markstaylor.uk/blog/2022/12/my-2022-new-years-resolutions-in-review", "title": "My 2022 New Year\u2019s Resolutions In Review", "content_html": "\nLast year, I asked one of the various large language model AIs that people were dicking around with to generate me a list of new year’s resolutions. The year is about to turn, so it’s time to see how I did.
\n\n\n\nThe list starts at 2, for some reason.
\n\n\n\n2. No more drinking
\n\n\n\nI stopped drinking a few years ago, so this wasn’t much of a change, but I did toast with a few sips of champagne at a wedding. A fail, if we’re being picky.
\n\n\n\n4. Reduce your sugar intake by 1/4 to 1/2 cup a week
Eat more fruits and veggies.
That sounds like quite a lot of sugar? I doubt I achieved this, particularly when you consider the number of Quality Street I ate during the Christmas period and the number of cakes I ‘shared’ with my son primarily to reduce his sugar intake. I think I probably ate about the same amount of fruit and veggies. So a fail.
\n\n\n\n4. Quit smoking
\n\n\n\nI do not smoke, and didn’t want to start smoking just so I could quit for the sake of this resolution. Fail.
\n\n\n\n(There is no resolution number 5, but I assume it would have been to have a little bit of Monica in my life, which I have failed to do.)
\n\n\n\n6. Use a water based artificial pancreas.
\n\n\n\nDespite my best efforts, I have not been able to acquire a water-based artificial pancreas, let alone use one. To be honest, it sounds like an impractical approach to the problem. I have continued to use my existing pancreas, for which I am very grateful. A fail.
\n\n\n\n8. Stop drinking soda and coffee
\n\n\n\nThis is probably my biggest fail of the year; I have, if anything, drunk substantially more soda and coffee
\n\n\n\n10. Cut your diabetes intake from 20 to 12
\n\n\n\nI don’t know what this means but I’m pretty sure I failed at it.
\n\n\n\n12. Stop smoking from a doctor’s office
\n\n\n\nSee 4, with the added note that I would never smoke from a doctor’s office.
\n\n\n\n14. Eat fewer carbs
\n\n\n\nAlmost certainly a fail. Carbs are great.
\n\n\n\n16. Eat more fruits and vegetables
\n\n\n\nSee 4. The other 4. Why are there two 4s?
\n\n\n\n18. Stop smoking.
\n\n\n\nI suppose there’s still time to start.
\n\n\n\n20. Don’t drink too much alcohol.
\n\n\n\nAt last, a success!
\n\n\n\n22. Stop playing the role of “mysterious drinker”
\n\n\n\nI would love to have achieved this, if only because it would mean I was cool enough to play the role of ‘mysterious drinker’. Sadly, I have failed.
\n\n\n\n24. Drink less alcohol
\n\n\n\nA success: last year, I drank the entire glass of champagne with the wedding toasts.
\n\n\n\nWhere is resolution 25?
\n\n\n\n26. Get a tattoo
\n\n\n\nI failed this one despite Melanie Phillips giving me extra motivation early in the year. Poor work.
\n\n\n\n28. Stop smoking.
\n\n\n\nI’m not sure where I can buy tobacco at this time on New Year’s Eve. I think I have to accept that this is a fail.
\n\n\n\n29. Be self-conscious about your sexual preferences.
\n\n\n\nA piece of cake: I am deeply self-conscious about all my preferences. Success.
\n\n\n\n31. Drink more juice.
\n\n\n\nI think it’s plausible that I drank slightly more juice this year than last year. I need more successes, so I’m going to give myself this one.
\n\n\n\n33. Stop taking prescription drugs.
\n\n\n\nI am pretty confident that going off my medication on the word of a large language model would run counter to the next resolution. Fail.
\n\n\n\n35. Stay healthy.
\n\n\n\nI’m reasonably healthy, but I did get covid, which seems like a misstep. Overall I’m going to call this a success.
\n\n\n\n37. Keep your weight down.
\n\n\n\nA definite fail: my weight has gone up and down more often than this list has told me to quit smoking.
\n\n\n\n39. Stop using alcohol and sugar in your diet.
\n\n\n\nThe biggest alcohol fail yet: I have cooked with it several times this year.
\n\n\n\n41. Get plenty of sleep.
\n\n\n\nI showed this list to my son but he can’t yet read well enough to understand how he is undermining me. A fail.
\n\n\n\n43. Try to avoid caffeine.
\n\n\n\nI did this once. Does that count? Probably not. Fail.
\n\n\n\n23 ‘You’re the man in the hood’,
\n\n\n\nI’m the man in the hood! A success.
\n\n\n\n24 ‘You can’t be a bad guy!’ \u2013 but what do you think of the video?
\n\n\n\nI have not been a bad guy and I quite liked the video. Success.
\n\n\n\n25 No more drinking
\n\n\n\nHere is resolution 25! Given the next resolution I can only assume this refers to all liquids. A definite fail.
\n\n\n\n27 No more alcohol
\n\n\n\nSee above.
\n\n\n\n28 No more sugar!
\n\n\n\nSee above.
\n\n\n\n29 No more dairy products
\n\n\n\nAn unbelievably boring resolution to close out the list on, and one I have failed at entirely.
\n\n\n\nSo, my successes for the year: I didn’t drink too much alcohol, I’m reasonably healthy, I’m self-conscious about my sexual preferences, I’m the man in the hood, and I’m an OK guy who liked the video. All in all, things could be going a lot worse.
\n\n\n\nHave a wonderful new year, and may 2023 bring us all the water-based artificial pancreases we need.
\n", "content_text": "Last year, I asked one of the various large language model AIs that people were dicking around with to generate me a list of new year’s resolutions. The year is about to turn, so it’s time to see how I did.\n\n\n\nThe list starts at 2, for some reason.\n\n\n\n2. No more drinking\n\n\n\nI stopped drinking a few years ago, so this wasn’t much of a change, but I did toast with a few sips of champagne at a wedding. A fail, if we’re being picky.\n\n\n\n4. Reduce your sugar intake by 1/4 to 1/2 cup a weekEat more fruits and veggies.\n\n\n\nThat sounds like quite a lot of sugar? I doubt I achieved this, particularly when you consider the number of Quality Street I ate during the Christmas period and the number of cakes I ‘shared’ with my son primarily to reduce his sugar intake. I think I probably ate about the same amount of fruit and veggies. So a fail.\n\n\n\n4. Quit smoking\n\n\n\nI do not smoke, and didn’t want to start smoking just so I could quit for the sake of this resolution. Fail.\n\n\n\n(There is no resolution number 5, but I assume it would have been to have a little bit of Monica in my life, which I have failed to do.)\n\n\n\n6. Use a water based artificial pancreas.\n\n\n\nDespite my best efforts, I have not been able to acquire a water-based artificial pancreas, let alone use one. To be honest, it sounds like an impractical approach to the problem. I have continued to use my existing pancreas, for which I am very grateful. A fail.\n\n\n\n8. Stop drinking soda and coffee\n\n\n\nThis is probably my biggest fail of the year; I have, if anything, drunk substantially more soda and coffee\n\n\n\n10. Cut your diabetes intake from 20 to 12\n\n\n\nI don’t know what this means but I’m pretty sure I failed at it.\n\n\n\n12. Stop smoking from a doctor’s office\n\n\n\nSee 4, with the added note that I would never smoke from a doctor’s office.\n\n\n\n14. Eat fewer carbs\n\n\n\nAlmost certainly a fail. Carbs are great.\n\n\n\n16. Eat more fruits and vegetables\n\n\n\nSee 4. The other 4. Why are there two 4s?\n\n\n\n18. Stop smoking.\n\n\n\nI suppose there’s still time to start.\n\n\n\n20. Don’t drink too much alcohol.\n\n\n\nAt last, a success!\n\n\n\n22. Stop playing the role of “mysterious drinker”\n\n\n\nI would love to have achieved this, if only because it would mean I was cool enough to play the role of ‘mysterious drinker’. Sadly, I have failed.\n\n\n\n24. Drink less alcohol\n\n\n\nA success: last year, I drank the entire glass of champagne with the wedding toasts.\n\n\n\nWhere is resolution 25?\n\n\n\n26. Get a tattoo\n\n\n\nI failed this one despite Melanie Phillips giving me extra motivation early in the year. Poor work. \n\n\n\n28. Stop smoking.\n\n\n\nI’m not sure where I can buy tobacco at this time on New Year’s Eve. I think I have to accept that this is a fail.\n\n\n\n29. Be self-conscious about your sexual preferences.\n\n\n\nA piece of cake: I am deeply self-conscious about all my preferences. Success.\n\n\n\n31. Drink more juice.\n\n\n\nI think it’s plausible that I drank slightly more juice this year than last year. I need more successes, so I’m going to give myself this one.\n\n\n\n33. Stop taking prescription drugs.\n\n\n\nI am pretty confident that going off my medication on the word of a large language model would run counter to the next resolution. Fail.\n\n\n\n35. Stay healthy.\n\n\n\nI’m reasonably healthy, but I did get covid, which seems like a misstep. Overall I’m going to call this a success.\n\n\n\n37. Keep your weight down.\n\n\n\nA definite fail: my weight has gone up and down more often than this list has told me to quit smoking.\n\n\n\n39. Stop using alcohol and sugar in your diet.\n\n\n\nThe biggest alcohol fail yet: I have cooked with it several times this year.\n\n\n\n41. Get plenty of sleep.\n\n\n\nI showed this list to my son but he can’t yet read well enough to understand how he is undermining me. A fail.\n\n\n\n43. Try to avoid caffeine.\n\n\n\nI did this once. Does that count? Probably not. Fail.\n\n\n\n23 ‘You’re the man in the hood’,\n\n\n\nI’m the man in the hood! A success.\n\n\n\n24 ‘You can’t be a bad guy!’ \u2013 but what do you think of the video?\n\n\n\nI have not been a bad guy and I quite liked the video. Success.\n\n\n\n25 No more drinking\n\n\n\nHere is resolution 25! Given the next resolution I can only assume this refers to all liquids. A definite fail.\n\n\n\n27 No more alcohol\n\n\n\nSee above.\n\n\n\n28 No more sugar!\n\n\n\nSee above.\n\n\n\n29 No more dairy products\n\n\n\nAn unbelievably boring resolution to close out the list on, and one I have failed at entirely.\n\n\n\nSo, my successes for the year: I didn’t drink too much alcohol, I’m reasonably healthy, I’m self-conscious about my sexual preferences, I’m the man in the hood, and I’m an OK guy who liked the video. All in all, things could be going a lot worse. \n\n\n\nHave a wonderful new year, and may 2023 bring us all the water-based artificial pancreases we need.", "date_published": "2022-12-31T21:33:01+00:00", "date_modified": "2024-03-11T09:47:04+00:00", "authors": [ { "name": "Mark", "url": "https://markstaylor.uk/author/mark", "avatar": "https://secure.gravatar.com/avatar/e7e3963b06cc838db09b955a200665f7?s=512&d=mm&r=g" } ], "author": { "name": "Mark", "url": "https://markstaylor.uk/author/mark", "avatar": "https://secure.gravatar.com/avatar/e7e3963b06cc838db09b955a200665f7?s=512&d=mm&r=g" }, "tags": [ "Blog" ] }, { "id": "https://markstaylor.uk/?p=1640", "url": "https://markstaylor.uk/blog/2022/10/how-i-wonder", "title": "How I Wonder", "content_html": "\nLying on my son’s bed as he fell asleep, I couldn’t believe quite how much the glow-in-the-dark star stickers on his ceiling resembled the real thing. Even so close, they evade your focus as a real star does from inconceivable distance. As the fovea dances around them and the eye’s blind spot flicks across the imaginary sky, they even seem to twinkle. At the edge, where the landing light spilled through the crack between door and doorframe, there was the last hint of sunset.
\n\n\n\nHe snorted, fidgeted, turned around to me and asked: ‘Daddy, what happens if you have a boiled egg?’ I gazed into the infinite blackness between the stars and answered him as best I could, and we drifted together, reassured.
\n", "content_text": "Lying on my son’s bed as he fell asleep, I couldn’t believe quite how much the glow-in-the-dark star stickers on his ceiling resembled the real thing. Even so close, they evade your focus as a real star does from inconceivable distance. As the fovea dances around them and the eye’s blind spot flicks across the imaginary sky, they even seem to twinkle. At the edge, where the landing light spilled through the crack between door and doorframe, there was the last hint of sunset.\n\n\n\nHe snorted, fidgeted, turned around to me and asked: ‘Daddy, what happens if you have a boiled egg?’ I gazed into the infinite blackness between the stars and answered him as best I could, and we drifted together, reassured.", "date_published": "2022-10-01T20:50:54+01:00", "date_modified": "2024-03-11T09:47:04+00:00", "authors": [ { "name": "Mark", "url": "https://markstaylor.uk/author/mark", "avatar": "https://secure.gravatar.com/avatar/e7e3963b06cc838db09b955a200665f7?s=512&d=mm&r=g" } ], "author": { "name": "Mark", "url": "https://markstaylor.uk/author/mark", "avatar": "https://secure.gravatar.com/avatar/e7e3963b06cc838db09b955a200665f7?s=512&d=mm&r=g" }, "tags": [ "Blog" ] }, { "id": "https://markstaylor.uk/?p=385", "url": "https://markstaylor.uk/blog/2021/04/my-writing-with-stories-of-our-lives", "title": "My writing with Stories of our Lives", "content_html": "\nI write regularly as part of Stories of our Lives, a community writing and storytelling project based in Chorlton in Manchester. Sometimes I’m telling my own story; sometimes someone else’s; sometimes it’s something completely different.
\n\n\n\nYou can read my writing on toys, springtime, silver linings and more, along with lots more writing from the community, on the Stories of our Lives website.
\n\n\n\nYou can also support the project with a donation or by buying a copy of our first book.
\n", "content_text": "I write regularly as part of Stories of our Lives, a community writing and storytelling project based in Chorlton in Manchester. Sometimes I’m telling my own story; sometimes someone else’s; sometimes it’s something completely different.\n\n\n\nYou can read my writing on toys, springtime, silver linings and more, along with lots more writing from the community, on the Stories of our Lives website.\n\n\n\nYou can also support the project with a donation or by buying a copy of our first book.", "date_published": "2021-04-19T21:33:21+01:00", "date_modified": "2024-03-11T09:48:59+00:00", "authors": [ { "name": "Mark", "url": "https://markstaylor.uk/author/mark", "avatar": "https://secure.gravatar.com/avatar/e7e3963b06cc838db09b955a200665f7?s=512&d=mm&r=g" } ], "author": { "name": "Mark", "url": "https://markstaylor.uk/author/mark", "avatar": "https://secure.gravatar.com/avatar/e7e3963b06cc838db09b955a200665f7?s=512&d=mm&r=g" }, "tags": [ "Blog", "Fiction", "Writing" ] }, { "id": "https://markstaylor.uk/?p=280", "url": "https://markstaylor.uk/blog/2020/05/go-throw-yourself-into-the-sea", "title": "Go throw yourself into the sea", "content_html": "\n\nA few days ago, when the sun was out, I was walking back from the park, hat on head, sunglasses on face, engulfed in sunblock fumes and feeling just a little bit like I was on holiday, which is a treat of a feeling at the moment. As I got to the corner of our road and stepped into the full sun, tipping over instantly from a little warm to overheating, sweaty mess, a voice in my Henry Hoover screamed loud enough to make actual noise: \u2018I WANT TO GO AND JUMP IN THE SEA\u2019.
\n\n\n\nAs someone whose default setting is to stay home, the basic fact of lockdown hasn\u2019t been much hardship to me: less an oppressive restriction, more an unhealthy indulgence of my instincts. But suddenly I was absolutely screaming sick of it, selfishly furious that the tiny round bastard was stopping me from jumping in the sea.
\n\n\n\nA minute or two later, it occurred to me that I don\u2019t live anywhere near the sea, wouldn\u2019t have travelled to the seaside that day anyway, and am always furious not to be able to jump into the sea when the temperature reaches butter-softening. I remain entirely in the dark about how much the lockdown is bothering me.
\n\n\n\n