Right to repair AND repurpose
I wrote up a quick proposal for a right to repair system like the EPA sticker when buying a car. The original requestor isn't going to use it so I'm posting here hoping someone runs with it.
I wrote up a quick proposal for a right to repair system like the EPA sticker when buying a car. The original requestor isn't going to use it so I'm posting here hoping someone runs with it.
I am using pretty much the exact same setup I did in 2020. Let's see who is more efficient in a live session!
But first let's take a look at the image sizes:
Charge Open Movie is what I viewed if I can make it to YouTube.
I decided to be more selective and remove those that did very porly at 1.5G, which was most.
Fedora video is a bit laggy, but watchable.. EndlessOS with Chromium is the most smooth and resonsive watching YouTube.
For fun let's look at startup time with 2GB (with me hitting buttons as needed to open a folder)
Notes:
In 2020 I reviewed LiveCD memory usage.
I was hoping to review either Wayland only or immutable only (think ostree/flatpak/snaps etc) but for various reasons on my setup it would just be a Gnome compare and that's just not as interesting. There are just to many distros/variants for me to do a full followup.
Lubuntu has previously always been the winner, so let's just see how Lubuntu 23.10 is doing today.
Previously in 2020 Lubuntu needed to get to 585 MB to be able to run something with a livecd. With a fresh install today Lubuntu can still launch Qterminal with just 540 MB of RAM (not apples to apples, but still)! And that's without Zram that it had last time.
I decided to try removing some parts of the base system to see the cost of each component (with 10MB accuracy). I disabled networking to try and make it a fairer compare.
Out of the 3 above it's felt more like with rsyslog (and cron) are redundant in modern Linux with systemd. So I tried hitting the log system to see if we could get a slowdown, by every .1 seconds having a service echo lots of gibberish.
After an hour of uptime, this is how much space was used:
CPU Usage on fresh boot after:
With Rsyslog
Without Rsyslog
That's a pretty extreme case, but does show some impact of rsyslog, which in most desktop settings is redundant anyway.
Testing notes:
My brother, Nick, just launched a new website/newsletter using Ghost. Ghost is pretty unique in this space, it is:
Here is Nick's experience with Ghost so far...
From a pricing perspective, the platform scales with your audience size. Importantly, Ghost does not take a cut of your membership subscription revenue. For this reason, the pricing incentives mean your Ghost site is more cost-effective when you have 100% paid members and 0% free members. I'm sure that ratio is a pipe dream for most publications, but that's how the business model works. Pricing is currently $9/mo for any site with 500 or fewer subscribers, including web hosting. For context, the new blog that I started in 2023 using Ghost is www.pastadollar.com. The site was originally an email newsletter from my generation of 14 cousins investing together. If you're looking for finance tips and travel hacks, Subscribe here! An email-list-to-ghost-site is a common path for Ghost users. I'm just starting, but major publications like The Atlantic, The Lever, and The Browser use Ghost.
Ghost has only a handful of themes, but on the whole, they are super clean and approachable. Picking one is as much about your content as it is about which one you list best. All of the themes are responsive and have all the standard customization options like colors and logos. Notably, there is no simple way to use custom fonts. Instead, you can choose between a serif font and a sans-serif font. There is a workaround, but the need for a long list of fonts is a relatively notable omission from a CMS or theme these days. The Ghost editor has a learning curve, but on the whole, it is excellent. I'm used to WordPress's editors, which are total crap by comparison. There are several Ghost editor keyboard shortcuts worth looking up, such as Shift+Enter to jump to the following line but to remain in the same editor block. Hitting Enter will jump to a new block, skipping more lines. The editor auto-saves your work as you go, just as you would expect any web-based tool to do these days. The saving experience is much like google docs - automatic and out of your way. However, sometimes when I haven't changed anything, a modal pops up asking me if I'm certain I want to navigate away without saving—maybe just a bug, but a bit annoying. Many tasks that take multiple steps in a WordPress site are automatic in Ghost. For example, when you add an image to a post or page, Ghost will optimize it. There is no more need to use a plugin or a site like tinypng.com to optimize the image in advance because the platform doesn't do it for you. Ghost was designed with plenty of best practices. For example, the default post URL is the post's title, without any year or dates included. Including dates is possible on other platforms but can quickly cause 404s and redirection issues if/when you update a post. The Ghost developers took the best practice, implemented it as default, and left it to you to simply create the content. It's great.
Ghost has a great library of plugins, which they accurately call 'integrations.' The catch is that most of these are integrations with other major companies' SaaS products, meaning many of them are paid solutions. The company Ghost seems to rely on the most to expand its functionality is Zapier. Half of the help and support articles I've read on Ghost seem to using Zapier to solve a problem. I don't think it's a stretch to say that Ghost relies heavily on Zapier, a freemium SaaS product. So basically, once you set it up and grow your site, it will eat into your bottom line. That isn't necessarily bad, provided it's worth it. But it seems like the solutions to expand your Ghost site are mostly paid solutions rather than something custom via code injection, which Ghost also supports. To be fair, I need to explore code injection solutions more than I have as of this writing.
URLs are a big part of any site, so I'm amazed this is an issue: When creating a hyperlink, there isn't proper data validation on the link. If you omit the 'https://www' from a new hyperlink, the Ghost editor saves it, but the URL will not actually work. Saving a link like "pastadollar.com" will show as a broken link and not work when you publish the post. This behavior is incredibly annoying because when you're in your site admin, many URLs around the dashboard omit the https://. To ensure your internal URLs will work, I've solved this by always copying them from the live site. Bullets and Numbered lists aren't an easy option I've found when using the editor. I finally found them hidden in an editor block called markdown editor card. The markdown block supports some rich text features that literally anyone who uses a computer is accustomed to. It isn't exactly user-friendly to hide them in a block, but I'm sure there was a good reason for doing so. Another simple workaround I used when I started was to simply copy and paste a bulleted or numbered list from a proper text editor. I'm guessing many writers create whole drafts outside the Ghost editor anyway.

Alternativeto.net lists more than 250+ alternatives to Ghost, but that long list includes broader solutions like WordPress. Like probably anyone who has developed a website in their lives, I've used WordPress (and continue to use it to this day). WordPress, by default, needs a lot of help from its vast plugin library to set it up, similar to how Ghost works out of the box. I don't consider WordPress a proper alternative if your goal is primarily an email newsletter and membership site. Ghost is absolutely worth the cost over WordPress in that regard - it's not even close.
In my opinion, the most similar and direct competitor to Ghost is a platform called Beehiiv. Beehiiv has less favorable pricing, and the themes and designs are uglier, but it boasts a stronger feature set out of the box. For example, two big ones are subscriber referral rewards for sharing with friends and more customizable email templates. To be clear, you can probably add these features to a Ghost site; it just takes some work. Both Ghost and Beehiiv are designed to scale quickly with your audience size.
Ghost support has been both highly responsive and extremely helpful. For example, I reached out about getting custom domain emails, such as [email protected], and their guidance was perfect. Their < 24-hour replies led me to many paid and free services and cautioned me on a few 'gotchas' others ran into. These were not canned responses, and I feel like I can go back to them for anything, and we will be able to find a solution. Overall, I love Ghost. The admin interface is spotless and fast. I'm coming primarily from WordPress, and the speed difference is a game-changer. I would work from many tabs simultaneously in WordPress because switching between different interface pages took too many seconds to load. The Ghost admin pages usually take less than a second to load.
Add a comment via Gitlab. And yes, Ghost has much nicer integrated commentng built-in.
Aside in 2022-05-22. it's not the same.. but there is a renewed push by Pebble creator Eric Migicovsky to show demand for a SmallAndroidPhone. It's currently at about 29,000.
Update 2022-02-26: Only got 12 responses which likely means there isn't that much demand for this product at this time (or it wasn't interesting enough to spread). Here are the results as promised:
What's the most you would be willing to spend on this? 7 - $200, 4 - $400. But that doesn't quite capture it. Some wanted even cheaper than $200 (which isn't doable) and others were will to spend a lot more.
Of the priority's that got at least 2 people agreeing (ignoring rating): 4 - Openness of components, Software Investments 3 - Better Modem, Headphone Jack, Cheaper Price 2 - Convergence Capable, Color eInk, Replaceable Battery
I'd guess about half of the respondents would likely be happy with a PinePhone (Pro) that got better battery life and "Just Works".
End Update.
Would you be interested in crowdfunding a small E Ink Open Phone? If yes, check out the specs and fill out the form below.
If I get 1000 interested people, I'll approach manufacturers. I plan to share the results publicly in either case. I will never share your information with manufacturers but contact you by email if this goes forward.
Basics:
Minimum goal specs (we might be able to do much better than these, but again might not):
Software Goals:
Discussions: Phoronix
I'd bet the Steam Deck (and other changes) will have the following impacts on Linux overall by the end of 2022.
Currently we are at less than 10% running wayland per Firefox telemetry stats on Phoronix but there are a lot of movers, namely:
Right now for January 2022 1.06% of Steam users are running Linux. I estimate about 340-460k Steam Linux users (Valve published Flatpak installs for November at about 5%. There are approximately 17000-23000 users for each update).
We don't have current numbers for Steam deck reservations, but near launch it was > 100k. Selling 300k-500k seems quite within the realm of possibilities. I would also not be surprised if they sold more.
Flatpak is the easiest way to install non-Steam software on a Steam deck - "Yes. You'll be able to install external apps via Flatpak or other software without going into developer mode" - Steam Deck FAQ
The key items I see at first would be MineCraft and the large collection of gaming emulators. It would also be the obvious choice if another studio wanted to bring a game to the Deck.
Valve has avoided picking sides regarding Flatpak vs Snap vs AppImage so far. They still offer a deb from their own download page. Given Steam's user base just making the Flatpak the default would likely more than double Flatpak usage.
There are more wildcards here:
I'm expecting at least 20% increase on the Steam Hardware Survey (so 1% to 1.20%) not including Steam Deck. Right now, the Steam Linux usage is less than half what you get from other sources. That could mean multiple things:
All are likely true to some extent.
Linux distros have many options to further ride the wave:
Do you think these will all come to pass? Was I way off? Add a comment via Gitlab
Lines of code (LOC) has some known flaws, but one of its advantages is that it lets humans visualize it for a small enough number. For bigger numbers like 100,000 vs 200,000 lines of code it really doesn't help us humans picture it.
For big enough changes, you could switch to just compressing the diff and measuring that. That also nicely tracks what developers would have to actually download to get the new changes. It also helps with understanding the bandwidth requirements of contributing to a project.
Here is what it looks like for the Linux kernel since 4.1. (For Rc1s only - the other rcs are in the 30-100 KiB range)

Here is a comparison of how far apart the LOC numbers are from the compressed diff numbers - the longer the line is the further apart they are. The numbers are normalized to 0-1. As you can see, they generally line up.

(You can get the raw spreadsheet here )
Let's get some numbers from another project - say systemd.
$ git tag --list --sort=creatordate | tail #Pick the last two major releases.. $ git diff v247 v248 | xz -c -q | wc -c | numfmt --to=iec-i --round=nearest 1.1MiB
This isn't ground breaking, but it may prove to be slightly more useful than using LOCs. At the very least as an alternative, it could help put less emphasis on LOCs.
Some interesting future things to look at:
Feel free to make a PR to add comments!
Where win means becomes the universal way to get apps on Linux.
In short, I don't think either current iteration will. But why?
I started writing this a while ago, but Disabling snap Autorefresh reminded me to finish it. I also do not mean this as a "hit piece" against my former employer.
Here is a quick status of where we are:
| Use case | Snaps | Flatpak |
|---|---|---|
| Desktop app | ☑️ | ☑️ |
| Service/Server app | ☑️ | 🚫 |
| Embedded | ☑️ | 🚫 |
| Command Line apps | ☑️ | 🚫 |
| Full independence option | 🚫 | ☑️ |
| Build a complete desktop | 🚫 | ☑️ |
| Controlling updates | 🚫 | ☑️ |
Both Flatpaks and Snaps are pretty good at desktop apps. They share some bits and have some differences. Flatpak might have a slight edge because it's focused only on Desktop apps, but for the most part it's a wash.
Flatpak doesn't target these at all. Full stop.
Snap wins these without competition from Flatpak but this does show a security difference. sudo snap install xyz will just install it - it won't ask you if you think it's a service, desktop app or some combination (or prompt you for permissions like Flatpak does).
With Embedded using Ubuntu Core it requires strict confinement which is a plus (Which you read correctly, means "something less" confinement everywhere else).
Aside: As Fedora SilverBlue and Endless OS both only let you install Flatpaks, they also come with the container based Toolbox to make it possible to run other apps.
Snaps
You can not go and (re)build your own distro and use upstream snapd.
Snaps are generally running from one LTS "core" behind what you might expect from your Ubuntu desktop version. For example: core18 is installed by default on Ubuntu 21.04. The embedded Ubuntu Core option is the only one that is using just one version of Ubuntu core code..
Flatpak
With Flatpak you can choose to use one of many public bases like the Freedesktop platform or Gnome platform. You can also build your own Platform like Fedora Silverblue does. All of the default flatpak that Silverblue comes with are derived from the "regular" Fedora of the same version. You can of course add other sources too. Example: The Gnome Calculator from Silverblue is built from the Fedora RPMs and depends on the org.fedoraproject.Platform built from that same version of Fedora.
Aside: I should note that to do that you need OSTree to make the Platforms.
Flatpak itself does not do any updates automatically. It relies on your software application to do it (Gnome Software). It also has the ability for apps to check for their own updates and ask to update itself.
Snaps are more complicated, but why? Let's look at the Ubuntu IoT and device services that Canonical sells:
Dedicated app store ...complete control of application versions, updates and controlled rollouts for $15,000 per year.
Enterprise app store ...control snap updates and upgrades. Ensure that all device traffic goes through an audited communications channel and determine the precise versions of snaps used inside the business.
Control of the update process is one of the ways Canonical is trying to make money. I don't believe anyone has ever told me explicitly that this is why Snaps update work this way. it just makes sense given the business considerations.
One of them might go away, but neither is set to become the universal way to get apps on Linux at least not today.
It could change starting with something like:
Either isn't going to get it all the way there, but is needed to prove what the technology can do. In both cases, the underlying confinement technology is being improved for all.
Maybe I missed something? Feel free to make a PR to add comments!
If you are in the USA - Please use my new site KeepSummerTime.com to write to your congresspeople asking for summer time all year long.
The USA has an active bill in congress to keep us from changing the clocks and stay on time like it is in the summer year round (also called permanent DST). Changing the clocks has not been shown to have substantial benefits and the harms have been well documented.
For global communities - like FLOSS -
If you are in the USA - Please use my new site KeepSummerTime.com to write to your congresspeople asking for summer time all year long.
If you want to help out
I used 2 of the variants supported by mmdebstrap to illustrate the different small build options.
Thanks to Dan at EndlessOS for showing me the much easier way:
$ grep-aptavail -n -s Package -F Essential yes $ grep-aptavail -n -s Package -F Priority required $ grep-aptavail -n -s Package -F Priority important
Uncompressed tarball size 94M
For when you don't even want to have apt.
base-files base-passwd bash bsdutils coreutils dash debconf debianutils diffutils dpkg findutils gcc-10-base:amd64 grep188M init-system-helpers libacl1:amd64 libattr1:amd64 libaudit-common libaudit1:amd64 libblkid1:amd64 libbz2-1.0:amd64 libc-bin libc6:amd64 libcap-ng0:amd64 libcom-err2:amd64 libcrypt1:amd64 libdb5.3:amd64 libdebconfclient0:amd64 libgcc-s1:amd64 libgcrypt20:amd64 libgmp10:amd64 libgpg-error0:amd64 libgssapi-krb5-2:amd64 libk5crypto3:amd64 libkeyutils1:amd64 libkrb5-3:amd64 libkrb5support0:amd64 liblz4-1:amd64 liblzma5:amd64 libmount1:amd64 libnsl2:amd64 libpam-modules:amd64 libpam-modules-bin libpam-runtime libpam0g:amd64 libpcre2-8-0:amd64 libpcre3:amd64 libselinux1:amd64 libsmartcols1:amd64 libssl1.1:amd64 libsystemd0:amd64 libtinfo6:amd64 libtirpc-common libtirpc3:amd64 libudev1:amd64 libuuid1:amd64debian-requirements.md zlib1g:amd64
Uncompressed tarball size 123M
adduser apt debian-archive-keyring e2fsprogs gcc-9-base:amd64 gpgv libapt-pkg6.0:amd64 libext2fs2:amd64 libffi7:amd64 libgnutls30:amd64 libhogweed6:amd64 libidn2-0:amd64 libnettle8:amd64 libp11-kit0:amd64 libseccomp2:amd64 libsemanage-common libsemanage1:amd64Added in minbase libxxhash0:amd64 logsave mount passwd tzdata
Uncompressed tarball size 188M
Theoretically all Priority: Important packages.
This is where items start to get a bit redundant IMHO. Mostly because I prefer the built-in systemd options as opposed to ifupdown, rsyslog/logrotate and cron.
apt-utils cpio cron debconf-i18n dmidecode dmsetup fdisk ifupdown init iproute2 iputils-ping isc-dhcp-client isc-dhcp-common kmod less libapparmor1:amd64 libargon2-1:amd64 libbpf0:amd64 libbsd0:amd64 libcap2:amd64 libcap2-bin libcryptsetup12:amd64 libdevmapper1.02.1:amd64 libdns-export1110 libedit2:amd64 libelf1:amd64 libestr0:amd64 libfastjson4:amd64 libfdisk1:amd64 libip4tc2:amd64 libisc-export1105:amd64 libjansson4:amd64 libjson-c5:amd64 libkmod2:amd64 liblocale-gettext-perl liblognorm5:amd64 libmd0:amd64 libmnl0:amd64 libncurses6:amd64 libncursesw6:amd64 libnewt0.52:amd64 libnftables1:amd64 libnftnl11:amd64 libpopt0:amd64 libprocps8:amd64 libreadline8:amd64 libslang2:amd64 libtext-charwidth-perl libtext-iconv-perl libtext-wrapi18n-perl libxtables12:amd64 logrotate nano netbase nftables procps readline-common rsyslog sensible-utils systemd systemd-sysv systemd-timesyncd tasksel tasksel-data udev vim-common vim-tiny whiptail xxd