Possible future fern feature: "hide seen toots". I'm finding that, sometimes, I have to page through screens upon screens of already-seen toots and it's annoying.

@enkiv2 could you tell me what fern is please? i think it's a cli mastodon client?

@emsenn @enkiv2
Yeah. It's a curses-based mastodon client I wrote, with a dual-pane setup. It's based on UI ideas about usenet clients encouraging users to read their whole feeds.

@enkiv2 @emsenn VERY cool definitely gonna give that a whirl. I often find the stock web UI to be way too busy for my liking. Also, pour one out for USENET :) Man I used to love that thing :)

@feoh @enkiv2 @emsenn
Please note that it hasn't been heavily tested on python3. Let me know if you run into any issues with it.

@enkiv2 @emsenn Will do! Consider making it its own repo so people can submit PRs and the like :)

@feoh @enkiv2 @emsenn
If a bunch of people are using it, I will. I feel weird having a repo with only one file in it though ;)

@enkiv2 it isn't one file, it's one file and the versioning information, if that helps. @feoh

@enkiv2 why are you writing in python 2.7 and not 3.whatever? @feoh

@emsenn @enkiv2 @feoh
Theoretically, the code I'm writing ought to be portable (and @gcupc caught & reported some cases in previous versions where it wasn't). I don't use python 3 as my default python distribution because most python libraries & apps I use still haven't been ported or made compatible (although that might have changed in the 3-4 years since I last had trouble with that).

@enkiv2 @emsenn @feoh Pretty much the only major library that has not moved to Python 3, as far as I know, is Twisted. Most libraries are now starting to deprecate Python 2.

@gcupc @enkiv2 @emsenn @feoh
I try to stay away from libraries in general but especially major libraries. From my experience installing lunar again, it looks like python3 is safe to move to if I don't mind reinstalling all third party libraries. I'm not doing that on my main machine, but it's about time to wipe it anyway...

@enkiv2 @gcupc this is why I'd recommend every Python developer use virtualenv or one of the higher-level wrappers around it, such as virtualenvwrapper.readthedocs. or or

of those, direnv is more general than just Python and I love it; I blogged about another use for it recently in

@jamey @enkiv2 @gcupc
That would actually make the problem worse, though. My resistance is to redownloading and reinstalling everything for a major release, but virtualenv is a mechanism that forces me to reinstall everything for every minor release.

@enkiv2 I don't understand: either a new release of some program is incompatible with the versions of some of the libraries you have installed, in which case of course you have to install new versions of those dependencies; or it's compatible with everything, in which case virtualenv certainly doesn't require you to change anything.

Or are you referring to major/minor releases of Python itself? The site-packages directory is always in a path named after the Python patch release, so if you change Python version at all you have to reinstall everything even if you're using distro packages, although your distro likely takes care of that behind the scenes for you.

But you shouldn't have to redownload anything if you're using the same version of a library, as long as pip is configured to cache downloads, which I think it is by default these days.

@jamey @enkiv2
I'm talking about site-packages. My local site-packages consists of the hundreds of python 2.7 libraries that were installed as dependencies for applications. My site-packages for 3.x is basically empty because it's only the dependencies for the handful of applications (like youtube-dl) that have ported to 3.x instead of maintaining 3 compat. I have both installed, but `which python` gives a symlink to 2.7

@enkiv2 @jamey
So, instead of specifying a version on the shebang, I develop against 2.7 & use whatever packages are in site-packages there. Testing against 3 almost always involves identifying a whole bunch of uninstalled dependencies & installing them.

@enkiv2 So... are you saying that because you've installed things for Python 2 in the past, that makes it better than Python 3? I'm trying to understand, but I'm utterly baffled by whatever you're trying to say here.

Anyway, you know Python 2 has about six more months before it ceases getting any bug fixes, right? It'll be entirely unsupported upstream as of January 1st. (

Show more

@enkiv2 @jamey You will probably not be interested in the patches in my personal fork of fern, but if that's not the case, I can package them as pull-requests for you. They add support for using pipenv to manage dependencies, use of black for code formatting (removes most Python 3 incompatibilities), and optional support for XDG config paths.

Show more

@enkiv2 @gcupc @emsenn Staying away from libraries in general? Why? :) One of Python's most amazing super powers is its incredible trove of libraries. I mean, you're using a library for the Mastodon protocol, right? And you're using the Python standard library?

@feoh @gcupc @emsenn

Python does indeed have a lot of good libraries. That's part of why I use it. Not only does it have a big ecosystem of useful libraries, but a whole lot of stuff ships with every python install.

However, I find that a lot of libraries are sort of pointless. Somebody who is worse than I am at programming has solved something that is not quite my problem in a way that I wouldn't like to solve it.

@feoh @gcupc @emsenn

So, generally speaking, I'll use a library if it does something I don't know how to do & don't want to be arsed to learn how to do, or if it does what I want to do in a better way than I would to it.

I won't use a library for the sake of using a library, though, because I find that often it's easier to reimplement the parts of the library I need myself than work around the awkward way the implementer exposed their code.

@enkiv2 @gcupc @emsenn Sounds to me like you don't avoid libraries so much as use them sensibly :)

@feoh @enkiv2 @gcupc @emsenn
Well, my attitude is that I'm just being sensible, but the end result is that I use libraries a lot less often than other people do (except for a couple guys at work who are hyper-conservative about dependencies & don't install anything they haven't read and understood the source for).

@gcupc @enkiv2 @emsenn Even Twisted has large chunks that work in 3.

@enkiv2 Cool! I love seeing all the different approaches to mastodon, and what that reveals about what other folk want from the platform.

I'd say "I should just make my own frontend" but I know if I did that I'd want to make my own backend, too, and I have enough other little projects I've taken onto my plate.

@emsenn @enkiv2
If it helps -- making your own frontend becomes almost trivial if you're doing it in python because of, but from what I understand, ActivityPub is so big and hulking that making a backend is a huge project still. I'm very tempted to refactor fern to separate out mastodon-specific parts & give it support for targetting SSB, because of the weight of SSB clients.

Sign in to participate in the conversation
Eldritch Café

Une instance se voulant accueillante pour les personnes queers, féministes et anarchistes ainsi que pour leurs sympathisant·e·s. Nous sommes principalement francophones, mais vous êtes les bienvenu·e·s quelque soit votre langue.