pupdates
Home · Mastodon · Atom Feed
Fixed the Atom feed.
Turns out the links in the Atom feed were broken. This should be fixed now!
In theory, I should also be able to force Atom clients to update things. :3
It didn't work. :( If you want the old links to work, you may need to re-add my feed. Sorry about that.
Today I flashed a modern Android version onto Lenovo Tab M8 FHD (TB-8705F) (and I can't get it to work)
FOLLOW THESE INSTRUCTIONS AT YOUR OWN PERIL. I HAVE NO IDEA WHAT I AM DOING.
DON'T DO THIS IF YOU'RE NOT OKAY WITH POTENTIALLY BRICKING YOUR DEVICE.
I AM NOT RESPONSIBLE FOR DAMAGE CAUSED TO YOUR DEVICE, YOUR DEVICE NOT WORKING, ETC.
I recommend doing this from Debian, if you try it. Note that fastboot -w
doesn't work on Debian, so you'll need do a factory reset using Recovery Mode instead!
You start by following Google's insructions for unlocking the bootloader on recent devices.
Then, because the device is compliant with Project Treble, you can use a Generic System Image on the device.
Google provides official Generic System Images, but the Android 13 and Android 14 ones don't work on this tablet (and, it seems, many other devices).
There's another project, called Treble Droid, which provides builds that have patches to work better on various devices. Their Android 14 image doesn't work on this tablet currently, but their Android 13 image does.
Download on the Debian system, and run all future commands from that directory.
Now it's time to, hopefully, unlock the tablet's bootloader:
1. Turn off the tablet
2. Enter FASTBOOT mode by holding the power and volume down buttons until the device vibrates. It should say "FASTBOOT mode" on the screen.
3. Install adb, fastboot, and all the things they depend on:
apt install adb fastboot
5. Start the unlock process by running:
fastboot flashing unlock
Now it's time to install it and prepare the device for use:
1. Flash the image:
fastboot flash system system.img
fastboot reboot recovery
5. Select "Wipe cache partition", and then confirm.
5. Reboot.
IF THAT DOESN'T WORK, TRY THIS
You may need the vbmeta.img file from Google's. I had already tried flashing this before trying the TrebleDroid one which doesn't provide an equivalent, so I don't know if it's needed or not.
If you try this, download the ARM64 (no Google software) image from . Extract that ZIP file.
Then, from the directory that was extracted to:
1. Flash the vbmeta partition:
fastboot flash vbmeta --disable-verity --disable-verification vbmeta.img
fastboot reboot
The Importance Of Ephemeral Notes
I first talked about this in AAC Software & Taxonomy of Note Types.
Revisiting it today, I decided to follow up on it a bit.
Writing things down quickly and revisiting them later to refine my thoughts has fundamentally changed the way I approach my work, especially my more ambitious and experimental projects.
I always thought I was bad at taking notes. But I'm not.
The people telling me notation (e.g. bullet journaling) would help have fundamentally misunderstood the problem.
There's two types of notes:
- Documentation of something being witnessed.
- Documentation of what you're doing/thinking.
The problem I've had for literal decades is: I'm trying to solve the latter. People keep giving me solutions to the former.
Every single person who I have ever talked to about taking notes treats the initial thing written as the final product.
It's supposed to be perfect from the start.
You write it down, and then you reference that copy directly later.
But there's a fundamentally different approach to notetaking:
Write thoughts and observations down as you have them. Revisit them later, if you feel it is necessary, to refine and expand upon them.
Rather than trying to get it perfect the first time around, this lets you easily keep track of what you've been doing, what progress has been made, what observations and thoughts you've had, and things of that sort.
For me, a digital version works well. But you can do the same thing with paper notebooks, if you'd like.
I highly recommend experimenting with some variant of this approach.
Getting Started With KDE Plasma Mobile
I've been playing a lot with KDE Plasma Mobile, and wanted to document my experiences so far.
I have it working on both a Dell Venue 11 Pro and a Lenovo ThinkPad Yoga 11e.
Here's the setup I'm using for both of them:
- Debian 12
- KDE + Plasma Mobile shell
- SDDM (display manager) with virtual keyboard enabled
First, install Debian 12 — make sure to set up an account for yourself and choose KDE as your desktop.
(Remember to install & enable sshd if you need it!)
Then, run this command:
apt install plasma-mobile plasma-mobile-tweaks qtvirtualkeyboard-plugin
The kscreenlocker problem
On both devices, if the system is idle for long enough to go into standby, then kscreenlocker will nearly always will crash.
When it crashes, it shows a screen stating “The screen locker is broken and unlocking is not possible anymore.”
Fortunately, it gives you instructions on how to force-unlock it anyway, but it requires a keyboard, so that's pretty annoying on a tablet.
Here's what I've determined so far:
- If the screen is idle for long enough to lock the screen and then turn off the screen, the screen locker always crashes when I try to unlock it.
- If I lock and unlock the screen quickly, it seems fine.
- If I lock the screen, wait 5 seconds, then unlock the screen... it crashes.
Every time, dmesg
outputs two lines that look like this:
[ 1424.914725] kscreenlocker_g[2396]: segfault at 218 ip 00007fd938b46f9c sp 00007ffc4f1c0e70 error 4 in libQt5Feedback.so.5.0.0[7fd938b46000+4000] likely on CPU 0 (core 0, socket 0)
[ 1424.914744] Code: 8d 15 58 fa ff ff 89 f5 53 48 89 fb 48 83 ec 08 48 8b 07 48 8b 40 60 48 39 d0 75 4a e8 5d 08 00 00 48 89 de 48 89 c7 48 8b 00 <ff> 50 48 39 e8 75 0d 48 83 c4 08 5b 5d c3 66 0f 1f 44 00 00 e8 3b
Improved Atom feed + site rename
Hi!
I made a few improvements to the site. ♥
- The atom feed is actually readable.
- The site now uses a <link rel="alternate" ...> tag to indicate the Atom feed location.
- Posts now get their own pages. Old links still work.
- I moved this site from news.do1g.com to notes.do1g.com — I recommend updating your bookmarks and such.
Existing posts may still be unreadable if your feed reader cached them.
Shame I didn't think make that change before my last post.
Designing an AAC Vocabulary, part #1 of who knows how many.
Hi! I've not been using this nearly as much as I was hoping, BUT I'm hoping this big ol' pile of words might make up for it!
I want to thank AssistiveWare, the makers of Proloquo (the AAC app I've used for over a year now), for openly writing about how they designed their vocabulary and even citing their sources(!) for their research.
I'm using what they talk about as a starting point, but to be clear: I have no intention of copying their vocabulary choices and organization verbatim. I'm trying to come up with a system from first principles — or as close to that as is reasonable — for a different target audience.
Before diving in, let's start with a link dump.
AssistiveWare has written about their approach, and these are a starting point for me:
References, from those AssistiveWare links:
- Beck, I., McKeown, M., and Kucan, L. (2002). Bringing words to life. New York, NY: The Guilford Press.
- Biemiller, A. (2009). Words worth teaching: closing the vocabulary gap. Columbus, OH: McGraw-Hill SRA.
- Marzano, R., (2020). Teaching basic, advanced, and academic vocabulary: a comprehensive framework for elementary instruction. Bloomington, IN: Marzano Resources.
While reading through AssistiveWare's posts (linked above) and thinking about my own experiences with AAC software, I wrote down some key points I want to revisit over the coming weeks.
Balancing competing needs
There's no objectively "best" vocabulary/system. You're always balancing competing needs.
Proloquo focuses on language development and providing a system you can grow with.
However, I'm focusing on teens and adults who have developed vocabulary, are somewhat technically proficient, but have difficultiy speaking.
I'm optimizing for a very different group of users, so what I come up with might look wildly different.
In fact, I want it to be different: I'm not trying to make a Proloquo clone, and I'm not trying to make a Proloquo competitor. I'm trying to create an alternative for people who can benefit from AAC but have different needs.
Motor planning & AAC efficiency
AAC is inherently slower than speech. This is a fundamental limitation of the concept.
From reading what AssistiveWare has written, as well as my first-hand experience with various AAC apps, there are a few things that make a huge impact on how quickly you can communicate with AAC:
- Make buttons big enough for easy interaction.
- Put common words on the "home" screen, and have a dedicated button to return to that scren.
- Have a small number (<10) of designated categories that are easy to switch between. (Proloquo puts this across the top as tabs; my system currently puts them on the left.)
- Make the most frequently words persistent: Proloquo has 27 other words accessible no matter where you are in the app. 2 of them ("a" and "the") are always immediately available. This is the biggest thing I miss when using other AAC apps.
- Shallow hierarchy: Avoid ever going more than 2 levels deep.
- Grammatical inflections: Show "base" words in the main app, and then show grammatical inflections once you select them -- e.g. "I" is common enough to go on the Home screen, but grammatical inflections like "me", "my", "mine", "myself" will be under grammatical inflections.
- Related words: for "I" this would be things like "I'd", "I'll", "I'm", "I've".
A huge property of an AAC system that affects efficiency is being able know the location of a word ahead of time.
Basically: Unless a word has multiple distinct meanings, only put it in one spot.
If it's used twice and the AAC app uses symbols, give them different symbols. The example AssistiveWare provides is "show": it can be a verb ("can you show me?") or a noun ("they went to a show"). They have two buttons, in different spots, but with different symbols and different meanings.
Using data for optimization
AssistiveWare makes a good point in How did we make Proloquo extremely efficient? when they talk about using hard data to determine how efficient a system is.
This involves things like collecting lists of real-world words and phrases, and determining how many taps per word are needed for each of them.
If I want this project to be usable even though there were half a dozen other open-source AAC systems I gave up on out of frustration, this kind of work is a hard requirement.
Stable base, with expansions
A big part of what made Proloquo work better for me than other systems is it has a fixed base, with areas I can add my own words. I think this is a good balance, because it means anyone who uses Proloquo can pick up any other device with Proloquo on it (even without their customizations) and communicate *most* things, even if they might have to type in a few words by hand.
It's certainly a lot better than typing everything by hand, or being utterly lost because there's so little similarity with the system you were using.
Data collection
There are MANY things to say about data collection, but I think AssistiveWare's article on AAC data collection and privacy explains it well.
Hardware
The hardest part of this so far, frankly, has been finding an affordable tablet that can run Linux. If the only devices that can use it cost $400, I might as well just port it to iOS or Android. But if I can get find suitable hardware for below $200 and not require a subscription, well, maybe it'll be usable for people less fortunate than I am.
I was given an iPad as a gift explicitly so I could use an AAC app that didn't frustrate me relentlessly. There's been times I went multiple days without speaking, and the ones before I had access to a usable AAC system were far more miserable.
A quick thought on Personal Knowledge Management (PKM), the original web, and this page.
In practice, this system I've put together feels like it's in the same spirit as the idea of how the first browser, WorldWideWeb (lated renamed Nexus), approached things: you could edit a page in the browser, save it, and then other people could view it.
It also feels related to Personal Knowledge Management.
"Time is a circle", "no inventions are truly new", etc, etc.
Part of this is a lot of research — what words should be quickest to access, where should there be room for customization, etc.
Andy Matuschak has this concept of a taxonomy of note types.
I took his general idea, let it roll around in my head for a while, and came up with a variant that meshes better with how my brain works:
- Ephemeral: log of ideas/observations, possibly related to a specific task/project.
- Prompts: an idea/observation to revisit later and expand on.
- Outlines: a structured collection of related thoughts, not yet a cohesive whole.
- Evergreen: More comprehensive in nature, often (but not necessarily) taking the other varieties and refining/consolidating them into a single cohesive but potentially still growing note.
Logbooks and waste books are good examples of ephemeral notes.
I've found that, in practice:
- prompts are often interesting things pulled from ephemeral notes.
- outlines are often expansions on prompts and ephemeral notes.
- evergreen notes are when I want to refine something into one cohesive document.
I've streamlined this website to allow me to make good ephemeral notes, and it's allowed me to easily go back and refine them later on.
I'm doing quite a lot of research for this AAC software, and I'm hoping I can use this page as a tool to refine my ideas while letting other people see them.
I decided to participate in December Adventure this year.
This is the first time I'd heard of December Adventure, and I like the idea a lot more than the Advent of Code — it just meshes better with how my brain works.
So, today, I started by setting up a system to make it as easy as possible to document my progress.
I decided to create a static microblog website, inspired by Debian Micronews.
The way it works is:
templates/
has a collection of templates,
posts/
has a collection of posts,
build.py
combines to create this site and an Atom feed.
Posts are freeform HTML, with no need for using <br> or <p> or anything like that.
You can see the original source for this post and then view the source of this page to prove it!
Basically, CSS is magic. Specifically white-space: break-spaces;
.
I then made a bookmarklet which gets the current date and time, then opens GitHub's "new file" page with the filename filled out already.
My problem with blogging is if I have to switch to a different repo, pull out a text editor, etc... it starts feeling like an Endeavour™.
And if it becomes an Endeavour™, I start putting a lot of effort into it — which promptly backfires, because I don't have the motivation to drive it to completion.
Because I want to work on the thing, not write about the thing.
So I made it as ADHD-friendly as I could, in hopes of mitigating this.
I BANGED OUT THIS POST IN 10 MINUTES.
I just went to Firefox, opened a bookmark, and started typing. WAY lower friction.