Felicia Day’s rant about RSS

Software

Update: Josh of The Geekorium pointed out that Felicia Day wrote the below passage on her blog, but was not the author of the plugin with which I’m rather enamoured, and linked to below. Thank you for letting me know!

The author of the essential RSS Firefox plugin shgysk8zer0 quoted Felicia Day’s amazing RSS rant:

A long time ago (especially in Internet time), Firefox used to have an icon that showed up in the Awesome Bar when a website had RSS or Atom feeds available for subscribing. This add-on replaces the icon, so you don’t have to add a button that will be constantly visible and taking up space. It will only be visible when there is a feed to subscribe to.

RSS is a way to consume a LOT of information very quickly, and STORE it in nice categories if you miss it. So I can catch up with a small blog’s output at the end of the week and, if I so choose, read EVERY article easily in one sitting. You think on Friday I’m gonna go browse that same site’s Twitter feed on their page (digging through all the messy @ replies) and see what they did that week?! Or go to their Facebook page that is littered with contests? No way dude, I’m too busy for that!

I feel like small blogs cut their own throat by taking away the RSS capability. I give this analogy a lot, but social media outlets are INFO COLANDERS! 5% of your followers will see anything you post, and that’s probably only within 20 minutes of posting. That’s the way it is and it’s gonna only get worse. Apart from email lists, RSS is the best way you can collect stuff across the internet to read quickly, and I am so irritated when that choice is taken from me. /rant


Talking about chips

Media

Hughsey, I understand that Samboy Chips are back. Is that good news for Australians?
It is for Australia

Ah Australia, even your infomercials are amazing.


Toodles and Michael Tsai on OLED iPhones

Hardware

Michael Tsai reviewed the iPhone 12 Mini. He loved the form factor and camera, but added this caveat:

I don’t like the OLED display. I’m not running into the accessibility issues that some are, but I just don’t like the way text looks. Black and gray text has a colored halo reminiscent of ClearType, which I never saw on iPhones with LCD displays.

I’m so happy and relieved to see this being called out by someone respected and widely-read in Apple circles. I’ll continue to post about it because even normally-critical Apple writers and podcasters never discuss how nasty, shimmery, and grainy OLED screens look, and how they’re a serious accessibility regression. Yet talk about a headphone jack or missing chargers and suddenly everyone is up in arms. It’s bizarre.

Michael links to this comment by Toodles on his blog back in October:

The only thing I am interested in knowing about iPhone 12 is how good or bad the PWM is on the all OLED lineup. I had to return an iPhone 11 Pro to get the iPhone 11 with LCD because the PWM on the Pro OLED was making my eyes and head hurt so bad that it was intolerable to use.

This is a clear Accessibility issue and given that PWM negatively impacts something like 27% of people, I would expect this to be discussed

And Erik said in the same thread:

Is Apple, the king of accessibility, ignoring a not insignificant user base to please OLED crazy reviewers? Reviewers said the XR wouldn’t do well with its “subpar” display, but it was the best selling iPhone at the time.

Either Apple have calculated that the market for people with photo-sensitivity to OLEDs is too small to care about, or they haven’t done accessibility testing and market research. I highly doubt the latter given the company’s size.

My earlier posts:


Ques Q’s VR 1/7 Mashu figure

Anime

Clara and I were only just in town looking at this beautiful scale fig of everyone’s favourite eggplant from the Fate/Grand Order mobile game and franchise, so it was monumentally serendipitous seeing her appear again as a AmiAmi preorder. I want it known that even though Umu is one of my all-time favourite characters, Mashu was my reintroduction into the Fate universe and holds a special place.

We collected enough figs over the years to have informed opinions about the quality, value, and faithfulness of specific manufacturers, but I didn’t recognise Ques Q. Turns out they’ve had a hectic release schedule, I’ve just drifted out of touch. They pretty much own the Touhou space, and have also done plenty of Fate characters I recognise.

I also didn’t recognise the sculptor Aru Momiji; all I could find of hers was a Passionlip fig from the same game. But I think she’s done a beautiful job rendering Mash’s reserved expression and the motion of her hair. Compare her to the most popular versions of her Stronger-brand figs with and without her skirt armour; they’re just as detailed but I don’t see a resemblence in her face at all. This is a bugbear of mine.

But here’s the thing: I’m still undecided how much of a fan I am of Mashu’s Ortinax costume, as much as it pains me to admit. I like the electronic, cyperpunk’esque touches on her new shield, and appreciate her VR goggles are above her eyes so we can see actually see them here. But her disproportionately-chunky boots aren’t exaggerated; that’s how she looks in her next ascension. And those weird, bladder-shaped things around her leotard look even more superfluous and strange in 3D… I half expect her to pull out a straw like a cyclist.

That said, is a phrase with two words. The photographer of these press photos did a great job! I need to experiment more with distinct light sources; I always find them more interesting than just a diffuser in a bright room. Maybe I can do it with the Mashu fig Clara and I did end up buying second hand in Ōsaka a few years ago. Remember travel?


Cory Wong: Ketosis (feat. The Hornheads)

Media

Today’s Music Monday is proof of Rubenerd’s Second Law: Everything is better with brass! Cory Wong is fantastic; you should definitely support him on Bandcamp.

Play Cory Wong // Ketosis (feat. The Hornheads)


Starting with FreeBSD jails

Software

Update: An earlier verison of this post didn’t include the output from jls, and I had mismatched paths for the jail dataset. Thanks also to Ashy for correcting the zfs create line.

A reader by the name of Mitchell asked me to discuss FreeBSD jails, given how often I’ve mentioned the feature here over the years. I was ready to refer him to an earlier post before realising I never introduced them here before. Whoops!

Jails are a lightweight, fast form of virtualisation and process isolation invented by the imitable Poul-Henning Kamp that, once you first use them, you miss them everywhere else. Each jail operates with its own chroot file system environment and network configuration, similar to a Solaris Zone.

(Aside: Hey, it’s Ruben here, from the future. Resist the temptation to assert correct spelling with “gaol” in your pools and scripts. You feel great creating them, and you pay for it for years afterwards. The system calls them jails; make your life easier and use broken spelling too)!

Much has been written about the potential security benefits of isolating processes, but I shamelessly use them foremost to keep my ports clean. My Plex jail has everything for video encoding, the Minecraft jail is the only one with a JDK runtime. Conflicts aren’t an issue, they’re simple to update without unintentionally breaking something else, and it keeps individual attack surfaces small.

Photo of Hololive EN's Gawr Gura, for whom the following jail is named for

There are specialised tools like iocage and the older ezjail to make building and managing fleets of jails easier, but lately I’ve gone back to building them manually. The provided tooling is already excellent, and ZFS features like snapshots make generating new ones simple. I still think it’s the best way to learn, as well.

It’s easy to carve out space for your jails if you’re using ZFS, then a new dataset for your first jail, which I’ve named for everyone’s favourite cute shark. These can be anywhere you want:

# zfs create -o mountpoint=/jail zroot/jail
# zfs create zroot/jail/gura

You can extract a base.txz from a FreeBSD installer image or download via svn—wow I love FreeBSD!—but bsdinstall will handily install it for us too:

# bsdinstall jail /jail/gura

Now we need the config. Here’s a minimal /etc/jail.conf:

mount.devfs;
exec.clean;
exec.start="sh /etc/rc";
exec.stop="sh /etc/rc.shutdown";    
    
path="/jail/${name}";
host.hostname="${name}.myhost.lan";    
    
gura {
	ip4.addr="10.8.8.81";
}

Note the handy $name variable. This is surprisingly populated with the name of the jail, so we can keep config consistent. The only jail-specific config I want for gura in this case is her IP. Check the well-written jail.conf(5) manpage for all the options.

Networking to jails can be as simple or complex as you want, which is really cool! You can use a network bridge like you would with a hypervisor and VM guests, or inherit the host’s networks with ip4=inherit. I employ the former in production, but for home setups I just use aliases against my primary interface. Note the address below matches our config above:

# ifconfig igb0 10.8.8.81/32 alias
# sysrc ifconfig_igb0_alias0="inet 10.8.8.81/32"

Now we can enable jails on boot, and optionally a list:

# sysrc jail_enable="YES"
# sysrc jail_list="gura"

Ready to start? Using service is the easiest, and use jls(8) to list:

# service jail start gura
# jls    
    
==> JID  IP Address  Hostname         Path
==> 1    10.8.8.81   gura.myhost.lan  /jail/gura

Huzzah! We could SSH into the VM at the IP provided, but we can also execute commands directly on the jail with jexec(8)… like a shell!

# jexec gura /bin/sh

I hope using ZFS sparked some creative thinking too. With ZFS you could easily create a template jail, then snapshot and promote to create new ones. You can do thin provisioning by sharing portions of the filesystem, but I always do thicc [sic] provisions; disk space is cheap, and it gives me more flexibility down the road.

This barely scratches the surface, but I hope I’ve given you some motivation to play around with this feature, and maybe give FreeBSD a try. They’re available on OrionVM as a template if you want to spin up to test; and they exist on more expensive, slower clouds with more complex UIs as well, not that I’m biased (disclosure: completely biased)!

The FreeBSD Handbook goes into more detail, and I seriously encourage you to buy Michael Warren Lucas’ FreeBSD Mastery: Jails tome. I bought it for the third time yesterday as part of my move to the Kobo ebook platform, it’s that good.


CentOS, as we know it, ends

Software

24th September 2019:

So, if you need a stable RHEL-like operating system, CentOS will still be there for you. But, if you need to keep up with your competitors who are building new cloud and container-based applications, CentOS Stream will work better for you. [..] Old school CentOS isn’t going anywhere. Stream is available in parallel with the existing CentOS builds. In other words, “nothing changes for current users of CentOS.”

8th December 2020:

The future of the CentOS Project is CentOS Stream, and over the next year we’ll be shifting focus from CentOS Linux, the rebuild of Red Hat Enterprise Linux (RHEL), to CentOS Stream, which tracks just ahead of a current RHEL release. CentOS Linux 8, as a rebuild of RHEL 8, will end at the end of 2021. CentOS Stream continues after that date, serving as the upstream (development) branch of Red Hat Enterprise Linux.

That didn’t take long.


The golden-headed cisticola

Media

We haven’t had a Wikimedia Commons bird in at least a year. Yesterday Wikipedia featured this handsome speciman by JJ Harrison.

Photo of a golden-headed cisticola taken by JJ Harrison.

From its Wikipedia article:

The golden-headed cisticola (Cisticola exilis), also known as the bright-capped cisticola, is a species of warbler in the family Cisticolidae, found in Australia and thirteen Asian countries. Growing to 9–11.5 centimetres (3.5–4.5 in) long, it is usually brown and cream in colour, but has a different appearance during the mating season, with a gold-coloured body and a much shorter tail. It is an omnivore and frequently makes a variety of vocalizations. Known as the “finest tailor of all birds”, it constructs nests out of plants and spider threads. It mates in the rainy season. It has a very large range and population, which is thought to be increasing.

The bird is the word.


Trying WordPress again after a few years

Internet

This was originally written last weekend but failed to post; ironic given the subject matter!

I experimented with the latest WordPress again after a few years away from the platform. To borrow Bjarne Stroustrup’s words, “within [WordPress], there is a much smaller and cleaner [blog platform] struggling to get out”.

This blog was powered by WordPress from 2005 to 2015. I started blogging right at the tail end of Radio UserLand’s existence, and Movable Type had also gone commercial by that stage. I jumped around to a few different local and server-hosted tools before being swept up in the WordPress tide. It offered the killer combination of being:

  • affordable, in upfront cost and time to install
  • open source, so it was easy to hack on
  • widely used, so it was easy to find help
  • easy to run on shared web hosting, before I ran VMs
  • didn’t need anything more special than a LAMP stack in a VM
  • simple enough to use with a basic web UI
  • and I wasn’t tied to posting from just one machine

It worked surprisingly well. I knew this because I spent most of my time in WordPress writing, not tinkering. I had just learned of the majesty and fun of working from coffee shops by this stage, so some of the most fun I had in my 20s was drinking coffee, messing with VMs, and writing about my experience. The old WordPress admin interface made jumping in simple, and I loved seeing when they added new features. Remember when they added tag support? That was massive!

(Installing and upgrading WordPress is also easier than it’s ever been thanks to tools like Ansible and wp-cli. I can stand up a new blog on an OrionVM or Amazon AWS instance in two lines, on FreeBSD or Debian. My concerns in this post are more about the end-user experience).

But then something started to change. I roughly correlate it with when WordPress moved the admin tabs to a sidebar to accommodate all these new content management features it was starting to adopt. WordPress’s team clearly had ambitions for the platform beyond publishing blogs with simple landing pages and uploaded graphics. It always had certain CMS abilities, but time was you’d want to use Drupal or one of its ilk to run anything more complicated.

My early concern was this evolution fundamentally compromised its accessibility as a blogging platform. The installer gradually got larger and larger, the UI more complex, and the new features didn’t help with what used to be its core function: writing! Is it an unwritten rule of software that it has to follow this trajectory?

I moved my personal stuff off WordPress to static site generators to simplify my life a bit; a decision I still think was a mixed blessing. The WordPress sites I maintained for other people and non-profits now run the Node-powered Ghost, largely for the same reasons above. I bristle at running JavaScript server-side, but then I was never much of a fan of PHP either. And Ghost offers something that WordPress used to: it’s unapologetically a writing platform. Until they follow the above software trajectory and we move elsewhere again.

I bring all this up because I spun up a new WordPress install for the first time in ages to see where it had got up to. There’s still a lot to like, and I can see how the blocks feature would make creating flashy new pages—a deliberate word choice—easier. But the fact it even needs a distraction-free writing Mode now is telling. I wish it were just a lean, kickarse writing platform for word pressing again. But then, can you blame them? Most people lock up their writing on social networks, relegating most to being self-promotion tools that have to be beautiful now above all else. It’s all a tad superficial.

I used to joke that WordPress was simple to use and secure if you disabled half its features, either by overriding PHP, blackholing them with nginx config, forcing file system permissions, or running in a FreeBSD jail or a Linux chroot. There may be a need for me to run WordPress for someone at some point, in which case I might write a patch list for these sorts of things. I could call it WordPress for Writers! or something.


Block copy disk over SSH with gzip

Software

We haven’t had a things you already know, unless you don’t installment since March. So many things have happened in the interim, not least the need to copy disks over a network.

$SOURCE

$ dd if=$SOURCE_DISK | gzip -1 - | pv | ssh $TARGET_SERVER "gunzip -1 - | dd of=$TARGET_DISK"

This will copy a block device across SSH to a remote server, compressing with gzip to remove empty space, and pv to show progress.