https://artemis.sh/2022/01/12/life-at-800mhz.html
artemis.sh - projects - blog - contact - rss
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=
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