5

Life at 800MHz

 2 years ago
source link: https://artemis.sh/2022/01/12/life-at-800mhz.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Life at 800MHz

2022-01-12

We’ve been using a Sony Vaio VGN-P588E for the past few months as our primary personal laptop. This thing’s great; it’s got a small but not uncomfortable keyboard. It’s got a trackpoint, which we absolutely need to keep our hands healthy. Crucially, it’s only 1.5 pounds. We’re disabled in a way that means we’ve got to care about every bit of weight we add to our bag when we leave home, so that’s a big deal! One catch: the Intel Atom inside hits a peak speed of 1.33GHz, with a normal speed of 800MHz under most thermal conditions. Oh yeah and there’s only 2GB of DDR2, GPU drivers don’t work in Linux, and it’s a 32 bit processor too did I say one catch I meant four. Let’s talk about life in the slow lane.

vaio running neofetch

So this thing’s main job is to help us stay off our phone, since touch screens are the hardest on the health of our hands. To do that, it’s got to be able to handle chatting with people, email, media, and light web browsing. Does it work? Actually, yes! Sometimes we have to exercise a bit of patient, but overall it handles anything we need it to handle day to day. Communications, logistics, youtube, shopping, social media, it all works! Social media is probably the worst experience out of everything, but that’s not such a bad thing since it keeps us off of it a lot of the time. We’ve even been doing some light editing work in Audacity on an album we’ve got in the works.

The modern web is definitely rather hostile to a computer this slow though, and our experiences online involve a lot of loading time. Informational sites are usually fine as long as javascript is off. (Shoutout to lib.rs btw for offering a rust crate database that actually works without javascript. We have no idea what crates.io thinks it makes sense to require javascript to look up packages but here we are.) Interactive sites require some patience but are usually fine, and nothing ever outright crashes. Social media sites are the only things that dip into the realm of “genuinely unusable” on the regular, and streaming services are basically entirely out of the question.

very purple winamp skin in audacious

It’s hard to convey how much of an anti-problem this ends up being. This laptop feel a bit cozier, sort of a reprieve from the mainstream flow of the centralization of socialization. It’d be a bit frustrating if we didn’t have our phone as a fallback option for when we truly need something that doesn’t work, but really while we’re out and about, most of the things that don’t work well on here are things we don’t need to be using anyhow.

We’re most amused by the unusability of streaming services, because this thing can actually handle music and video playback just fine from local files (check out this winamp skin in Audacious!). People have just shoveled so much overhead on top to monetize it more effectively that genuinely we could not even pay to watch movies or TV on here if we wanted to, so piracy is the only option for that stuff.

As for games, obviously this thing isn’t exactly looking at a career in modern gaming, but it can handle GameBoy emulation, OpenTTD runs at a smooth 60 fps, and Sonic Robo Blast 2 runs at mostly full speed! Check this out:

Your browser doesn't support HTML5 video tag, or you have it disabled.

Running on 32-bit x86 is a bit odd these days because it feels like there’s less support for this than 64-bit arm at this point. There’s a fair bit of software that we’d have to compile from source to get working on here, since they don’t provide 32-bit binaries. And there’s plenty more that simply can’t work on this architecture. We’re glad rust is keeping the torch alive though with 32-bit support, so at least we aren’t out of the game on that one.

Overall, this thing fucking rules and does everything we need it to do. We’ve had to get creative, but we have yet to be defeated.

The Details

Surprising probably nobody we’re running Linux on here, specifically we’re using antiX which is basically Debian with a cool live disk, a bunch of custom apps that work well on low end hardware, and a nice batteries-included set of apps and tools preinstalled. Option are a bit limited in 32-bit x86 land, but we could’ve also used Void Linux if we wanted a more arch-ish experience. Technically Gentoo is also in the running, but can you imagine trying to compile all your packages from scratch on a system that benchmarks worse than a raspberry pi 3?

Comms

Anyway, with that as a starting point, let’s get an easy one out of the way: email. We’re using claws, a tried and true mainstay of the GUI email client world on linux. There’s nothing remarkable going on here, it’s email!

Moving on to chat programs, things get spicier. We’re mainly using Discord and Matrix. For Matrix we like nheko-reborn, but they don’t have 32-bit builds of the latest version on their releases page and the older version in the debian repos is missing a lot, so we’re using weechat with the weechat-matrix plugin. It’s not the smoothest user experience especially when it comes to encryption but it does the trick.

Discord on the other hand has a big problem: using a third party client is bannable, and the first party client is a heavy web app. With chromium and some heckery (more on that later), it’s possible to get it running at a usable speed, but we often cheat and run it on our little arm server instead. We connect in with VNC and this basically works fine even if we’re out and about. There’s no good way to get voice working with this though, it’s just too slow, so the phone still handles that one.

Browsing

For general web browsing we use palemoon, primarily because the UI is more customizable than modern Firefox. We’re running at 1000x480 resolution so every bit of vertical screen space counts, and palemoon has themes that go extremely compact on UI size. It also starts up a bit faster, so that’s nice. We use the palemoon fork of uMatrix as a script blocker, which improves security and keeps stuff loading faster, but lets us turn on JS when we really need it.

We also use netsurf quite a bit for information searches since it starts up nearly instantly, but a lot of sites break in that so we can’t use it exclusively.

For web searches, we use the lite version of duckduckgo.

Web Apps (are the bane of my existence)

Now let’s talk about The Chromium Apps. We don’t use chromium for general browsing, but we use it for web apps and anything javascript heavy. It’s got this neat trick where you can run it with --app=<url> to open a web page without any of the browser UI so it looks a bit like running the page as an electron app. This is how we do twitter, mastodon, the youtube mobile interface (which can’t play video well but is VERY snappy for searching, good job whoever works on that), and a few others. We also use chromium without --app for stuff like opening medical portals, bank portals, and online shopping.

We speed things up a lot by keeping chromium’s storage loaded in ram with a tool we wrote called mnestic to handle syncing back to disk. This makes a pretty big difference and is the only thing that makes Discord even close to usable locally, because the storage on this thing, while it’s an SSD, it ain’t exactly high throughput. We also turn smooth scrolling off with a command line flag --disable-smooth-scrolling.

Honorable mention to pinafore though, a mastodon frontend that runs incredibly fast even on this machine. More webapps should be like pinafore. And while we’re at it, a dishonorable mention to twitter for being slower than Discord, we wish we were making that up.

Video (works surprisingly well?)

We were sure this thing wouldn’t be able to do any decent video playback, but we can do 360p 30fps video playback without frame drops and we’re here to tell you our secrets.

In short:

  • use mpv
  • use hardware upscaling by changing the screen resolution to 360p
  • download videos fully before watching them instead of streaming them
  • use this special set of mpv flags to make it fast:
mpv --vo=x11 --vd-lavc-fast --video-unscaled=yes --demuxer-thread=no 

We can also get away with mpv handling upscaling if we add a couple more flags into the mix, but then we’re upscaling twice and it looks worse:

--sws-fast --sws-scaler=fast-bilinear

And, since we don’t have vsync, screen tearing can be a problem. To make it less noticeable we play videos slightly faster, and this keeps the screen refresh rate far enough away from being an even multiple of the video framerate that the tearline quickly moves over the screen and isn’t very distracting:

--speed=1.005 --audio-pitch-correction=no

Other shoutouts

Here’s some other software we want to give some quick shoutouts to that we like to use on this thing.

  • mtPaint, an image editor that even works well on a 133MHz pentium let alone this thing.
  • IceWM, a great window manager with good out of the box defaults, themes, and a simple configuration method.
  • XMMS and Audacious, for supporting my winamp themes.
  • ROX Filer file manager, its weird and we like it.
  • NO$GBA, a weird GBA emulator that goes fast

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK