Mobile Archive
Android and iOS share a common problem: they copied desktop text editing conventions, but without a menu bar or mouse. This forced them to overload the tap gesture with a wide range of actions: placing the cursor, moving it, selecting text, and invoking a pop-up menu. This results in an overly complicated and ambiguous mess-o-taps, leading to a variety of user errors. It’s less of a problem if you only do short bursts of text in social media or messaging apps. But doing anything more complicated like an email gets tedious. However, in my user study on text editing, I was surprised to find that everyone had significant problems and rather severe workaround for editing text. With the extremely talented Olivier Bau, together we created a prototype called Eloquent, which offers a much simpler solution. We presented this work at UIST 2021. This is now one of my favourite articles I’ve ever read. I despise text input and text editing on mobile devices, whether they be Android or iOS. I hate it with the passion of a thousand burning suns, but it seems like nobody else cares. Luckily, the author of this article, Scott Jenson, a man with an impressive career doing UI work at Apple, Google, and others, agrees with me, and together with his colleagues, during his time at Google, he came up with an entirely different, touch-first way of editing text. The end result – be sure to watch the video to see it in action – immediately clicks for me. I want this. Now. This would be a massive usability improvement, and the fact it isn’t in Android yet, despite being developed at Google, is further evidence Google has no clue how to make good ideas float to the top. Jenson explains why Eloquent, as they called their new input/editing system, won’t ship with Android, while he expresses a bit more optimism Apple might be more open to rethinking mobile text editing: Unfortunately, shipping something like Eloquent would be challenging. First, as too many people mistakenly see text editing as “done”, there is little appetite to fix it. Second, users have been trained to cope with this error-prone approach for well over a decade. Asking people to change at this point would be hard. But most importantly, fixing text editing isn’t seen as important enough in the war between Android and iOS. It’s not the flashy feature that shifts your Net Promoter Scores. What I find ironic is that a fundamental change, like fixing text editing, could make people feel much more at ease using their phones and could be an enormous reason to switch. But it would be a slow burn and take years of steady effort. Android just can’t think this way. Apple just might. Android needs this.
At its peak in 2017, the global smartphone market saw more than 700 brands fiercely competing. Fast forward to 2023 and the number of active brands (that have recorded sell-through volumes) is down by two-thirds to almost 250, according to Counterpoint’s Global Handset Model Sales Tracker, which has been tracking sales of these brands across more than 70 key countries. So many good brands and good ideas kicked to the curb by the stranglehold Apple and Google have on the market. While many of these brands were mere OEMs, it also includes companies making their own platforms.
The Raspberry Pi is known for its versatility and ability to run different operating systems but it seems that the $4 Raspberry Pi Pico can also run an OS. This impressive foray into the world of Palm PDA (Personal Digital Assistant) emulation on our favorite microcontroller comes from Dmitry Grinberg. They have shared an early demo of his platform known as rePalm in which he manages to run PalmOS on a Raspberry Pi Pico. We mentioned Grinberg’s work before – this person is a Palm OS wizard, and the progress he’s making will prove invaluable once the remaining stock of Palm OS devices – half of which is in my office – starts breaking down.
But little was said at the time about connectivity and networking. It could IR-beam (consuming the battery) and sync, but other than muted complaints about missing Bluetooth (which would have consumed even more battery), no one said anything one way or the other about getting it on the Internet. And I’m all about Palm devices on the Internet. It turns out there’s a reason for that, and we’re going to patch the operating system so we can make the Fossil Wrist PDA into what may be the smallest (and first wrist-mounted) Gopher client. That also required an update to the Overbite Palm Gopher client (which you’ll want for your 68K Palm anyway), and then there’s the matter of the battery refusing to charge as well. And finally, we want to make all of this portable! This makes my heart flutter and my tummy somersault.
At this point I was getting annoyed that I had spent so long on these things, so I just imported megalodon-rs to download my mastodon timeline instead of writing the code myself. The conduit itself is exported as a 32-bit dll with a single entry point called OpenConduit, which HotSync calls after loading your dll. I think there are supposed to be more functions exported, but it works fine so far ¯\_(ツ)_/¯. Internally, the conduit just takes an empty PalmDOC database (PDB) file, downloads the timeline data, then stuffs everything into the PDB and sends the entire thing to the handheld. I doubt any custom HotSync conduit has had an entire tokio runtime stuffed in it before, but it only took me an afternoon to write and it takes ~5s to run, so chalking this one up as a win. You can clone the repo here, and install the conduit yourself using the provided binary if you too would like to use the world’s most exclusive mastodon client. This project obviously make my heart flutter a little bit. As a longtime Palm OS user of yore, and huge fan of the platform to this day, I’ve been wondering when, in the flurry of interest in building Mastodon clients for weird and dead platforms, it would be Palm OS’ turn in the spotlight. Well, that spotlight is here now, and while it’s still relatively basic, this is excellent work. Targeting old-style Palm OS devices is an interesting choice, but without having tried it, it should work seamlessly through PACE on the later, ARM-based Palm OS devices. The whole blog post is a joy to read, and can serve as a blueprint for anyone interested in, for some reason, picking up Palm OS development in 2023.
Take a look at this watch, it’s just some boring watch for runners, right? Nope, I think this might be the best ultra-low power consumer digital watch ever produced! Let me explain… This device certainly should entice some of you.
The Fairphone 5 is official and full of surprises. As you might expect, it’s the usual repairable phone from Fairphone, with parts available to order and easily installable with just a screwdriver. A new phone means faster components and a more modern design. What you might not expect is Fairphone opting entirely out of Qualcomm’s consumer upgrade cycle thanks to its choice of an “industrial IoT” SoC that promises longer support times. With a longer window from Qualcomm and a commitment from Fairphone to keep going even after Qualcomm’s industrial support cycle, Fairphone says this device will end up with a jaw-dropping 8–10 years of OS support. The Fairphone 5 is not for sale in the US. Europeans, though, can get the device for 699 euros (~$753), with preorders starting today and a ship date of September 14. For the basic specs, we have a mid-range loadout, starting with a 6.46-inch, 90 Hz, 2770×1224 OLED display. There’s 8GB of RAM, 256GB of storage, a side fingerprint reader, and a microSD slot. For rear cameras, it offers a 50 MP Sony IMX800, an anonymous 50 MP wide-angle sensor, and a time-of-flight sensor. The front cam is a 50 MP Samsung JN1. Such a support cycle should be legally mandated for every OEM.
At some point last year (shortly before I began writing this blog post!) I found reference to a hanafuda video game created in 1998 for the Casio CALEID XM-700 Mobile Navigator on a random old, Japanese website. It turns out this device is a long-forgotten handheld computer that was released in 1997, only in Japan. The device is what you might refer to as a PIM or PDA, roughly equivalent to Apple Newton or Palm Pilot, particularly as it featured handwriting recognition. Not what we would consider powerful in this day and age, but good at running database lookups and any undemanding software written specifically for it. The CPU was Intel 8086 compatible, like other period CASIO handheld personal computers, and an SDK was available. Cost of the device was 47800JPY, which was around 240GBP or 400USD at the time. The game file came with a reference bitmap showing hanafuda scoring, which was just the type of guarantee and encouragement I needed to start hunting. Nothing gets my blood flowing like a handheld device or PDA I’ve never heard of (my wife is okay with this).
This headline is entirely correct and I will stand by it. This is one of those products that I truly cannot wait to experience and review firsthand: LG is bringing the quirky, one-of-a-kind StanbyME Go to the United States later this month for $999.99. If you missed its international launch, which flew under the radar for many, let me catch you up: the StanbyME Go is a 27-inch 1080p LCD TV housed in a large suitcase that also contains a built-in battery and 20-watt speakers. The idea is that this thing can be a portable entertainment solution whether you’re at a picnic, on a family vacation, or just hanging out on the back patio. Maybe you’ll bring it tailgating with all your pals during football season. The possibilities are limited only by your imagination and the StanbyME Go’s three-hour battery life. This thing runs webOS and does tons of tablet things. This is a webOS tablet.
Which is precisely how it feels using using the Beepy from SQFMI. The handheld device, which was formerly known as the Beepberry before its creators received an all-to-predicable formal complaint, is unabashedly designed for Linux nerds. Over the last couple of weeks playing with this first-run hardware, I’ve been compiling kernel drivers, writing custom scripts, and trying (though not always successfully) to get new software installed on it. If you’re into hacking around on Linux, it’s an absolute blast. There’s a good chance that you already know if the Beepy is for you or not, but if you’re still on the fence, hopefully this in-depth look at the hardware and current state of the overall project can help you decide before SQFMI officially starts taking new orders for the $79 gadget. This isn’t for me, but it surely is one hell of a cool device. The pricing is low enough I might still nab one, though, as it’s almost in impulse buy territory.
I’ve been going through my collection of PDAs over the last few weeks for, among other OSNews things, my Pixelfed account, and while playing around with various old applications, I came across the Google Maps application for Palm OS. As it turns out – this official Google application, last updated in 2008, still fully and completely works today, in 2023! I shot a quick video using the application, and uploaded it to the new (and not fully set-up yet, so forgive the lack of avatars, descriptions, banner images, and so on – it’s late in my time zone) OSNews PeerTube account, embedded below for your convenience. Navigation still works. You can pan around in both map and satellite view. And, as the video shows, you can zoom in quite far and get some incredible detail on that old Palm TX display (you can zoom in further). That’s some impressive API backwards compatibility.
Perhaps unsurprisingly, the techniques described in Let’s Go Whaling bear comparison to some of those that bookmakers and casinos have long deployed, capitalising on deep understanding of psychology. The big difference, of course, is that the gamer can never win money, only prestige or progress in a virtual game. The very uncomfortable truth for Apple and Google: much – 70-75% – of App Store and Play Store revenue comes from exploitative casino games, mostly expertly designed to target the most vulnerable among us, like gambling addicts, children, people with mental issues like depression, and so on. It’s seedy, disgusting, predatory, and should be deeply, deeply illegal. Left or right, can’t we all agree we should ban these practices?
Here’s an interesting bit of news out of Mobile World Congress: Qualcomm says the Snapdragon 8 Gen 2 has been certified as the “world’s first commercially deployable iSIM (Integrated SIM)”. What the heck is an iSIM? Didn’t we just go through a SIM card transition with eSIM? We did, but iSIM is better than eSIM. We’ll explain, but the short answer is that iSIM is the next step in the continual march to reduce the size of SIM cards. eSIMs are still a chip taking up space on your motherboard, and that’s not ideal if you want to squeeze every square millimeter of space out of a phone. The next shrinking step is iSIM—an Integrated Subscriber Identity Module. Rather than a chip on the motherboard, iSIMs are integrated directly onto the SoC. SoC (system on a chip) integration is the technology that makes smartphones possible. Instead of a thousand little chips for things like the CPU, GPU, RAM, modem, and a bunch of other things, everything gets packed into one single do-everything piece of silicon. Individual chips require more space and power thanks to having to make motherboard traces to connect everything and having to deal with chip packages. I’m still using an old-fashioned traditional SIM card, and while I’m sure going with eSIM and now iSIM is great from a simplification and power usage point of view, I feel like they’re both also about taking control away from the user and shifting it towards the carrier. It was a long fight to get rid of locked phones (mostly), but with eSIM/iSIM it seems locking devices down in more fine-grained ways only becomes easier. I might be overreacting, but little red flags go up when I read about eSIM and now iSIM.
Welcome to Magic Cap, the oddest yet somehow most endearing interface a PDA — and, briefly, Windows 95 — ever had. Unlike the Palm OS where I bought my first device brand new, I was a late convert to Magic Cap, picking up this wacky device called a DataRover in 2004 just to play with. It wasn’t exactly pocket-sized, but it was still quite portable, and the whimsical audio feedback and immediately accessible interface drew me in. I found some games and an Ethernet driver and the browser and enjoyed using it as a handheld in my old apartment. Despite my love for PDAs and my pretty large collection of devices covering most PDA platforms, I’ve never actually owned or used a Magic Cap device. I wonder if it’s time to address that shortcoming.
Creating the PiRS232 and playing with the Pi over serial has been leading towards an idea – I wanted to create a small, battery powered device, a sidecar that I could carry with my Psion and use as portable Linux terminal. I also managed to turn it into an Internet gateway, leading to some interesting experiences. The idea was straightforward: take a Pi Zero, add an RS232 board that already handles the null modem side, add a Lipo battery, power management and charging, and print a case for it. It’s taken a few months from initial idea to final design, but I’m happy the result, it’s usable and practical, and you can build one too. This is incredibly cool.
We have seen how PumpkinOS runs a classic 68K application. First, code.0 and data.0 resources from the PRC are loaded and decoded. Then code.1 is loaded and the 68K emulator starts running it. Native applications, that is, applications compiled from source to the target architecture of PumpkinOS (x86 or ARM), are still stored in PRC files, having access to all PalmOS resources like forms, bitmaps, alerts, etc. In fact, the same resource compiler (pilrc) used to generate the binary resources for PalmOS is used in PumpkinOS. The difference lies in how code and data are stored and processed. PumpkinOS’ developer also sent out a tweet with a video of a new shell – which looks quite cool.
A traditional PalmOS emulator requires a ROM: a binary object that contains the original PalmOS compiled and linked for the 68K architecture. When you run an application PRC in those emulators, everything is emulated down to the hardware layer, so the ROM thinks it is talking to an actual device. Therefore, as an emulator developer, your job is to provide an implementation of the CPU, memory, display, serial port, and so on, taking into accounting the low level differences between the myriad of devices that ran PalmOS back then. As long as your implementation of the physical layer is accurate, applications will generally run fine. PumpkinOS also allows you to run binary 68K applications, but do not require a copyrighted PalmOS ROM. The short story is this: the developers of PalmOS devised a clever way to implement system calls (also used in other 68K systems, I think). They used a feature of the 68K CPU called trap. A trap is like a subroutine call, but instead of jumping to a different memory addresses depending on the system call, it jumps to a fixed address, passing an argument identifying the system call. PumpkinOS takes advantage of this fact and, whenever a trap is issued, it intercepts the execution flow, identifies the system call, extract the parameters and calls a native implementation inside PumpkinOS, bypassing a ROM altogether. It is very similar to the way PACE (Palm Application Compatibility Environment) was implemented when PalmOS 5 was introduced. If the 68K application plays by the rules and only calls the OS through system traps, never accessing hardware directly, it will also run fine on PumpkinOS. Now, if you want to know the long version of this story, keep reading. Even more details about the inner-workings of PumpkinOS.
The developer of Pumpkin OS (which we talked about before), a port of the Palm OS to x86-64, has written a very interesting post about dealing with multi-threading. Pumpkin OS is multi-threaded from the start, but several parts of the operating system rely on old parts of Palm OS that were never meant to be multi-threaded – such as the M68K emulator used to run Palm OS applications written for that architecture. The solution I came up with uses something called thread local storage. Each thread has access to a private memory region that the main thread can setup in advance. When a deeply nested function needs to access global state, instead of using a global variable, it gets a pointer to its local storage. Each emulated M68K thread writes to its own M68K state, not interfering with another thread. And no function prototype needs to change. The first step was to identify all global variables used by the M68K emulator, which were surprisingly few. I’m so excited about this project.
webOSArchive (WOSA) is the unofficial repository of information, restoration efforts, and archives for Palm/HP’s mobile webOS operating system. This site does not provide material or information about the spin-off operating systems, webOS Open Source Edition (wOSE) or LG’s webOS for TVs. It’s the position of the curator, and the remaining webOS community, that Palm and HP’s webOS devices, including the Pre series phones, the Veer and Pixi phones, and the TouchPad, remain useful devices that both provide value to their users and education to the rest of the industry. In fact, many webOS innovations have been copied by modern mobile OS developers. You can follow the ongoing efforts to restore and retain the usefulness of the platform here, or join the community and participate! This includes the entire application catalog, SDK, developer information, documentation, and a lot more. Impressive effort, and a great resource for people still using and/or playing with their webOS devices.
We aim for the beautiful Sailfish user experience to bring a similar elegance and simplicity to an otherwise busy and distracting world. But the beauty on the surface has to be backed up with cutting-edge technology underneath which keeps up with modern standards and developments. That’s why in the 4.4.0 Vanha Rauma release we’ve been working hard to improve compatibility across the board, keeping up with recent browser and feature developments. At the same time, we’ve been refining the user interface to allow all the new features to be exposed in a way that doesn’t impact on the simplicity of your device in daily use. I’ve been a Sailfish OS user for years and am now involved in its development, so can’t claim to be an impartial actor. But it means I also have some understanding of the effort and ideas that went into this release. Some of the big new features are the updated Gecko browser engine, all apps Sailjailed by default, NFC Bluetooth pairing, and many nice community-contributed improvements to positioning, calendar and more – and all built on a a strong Linux/glibc foundation.