111 comments

[ 5.5 ms ] story [ 237 ms ] thread
Using the old Reddit site as the default: https://www.reddit.com/r/help/comments/8f2n7d/how_do_i_perma...
I don't know if things have changed, but preferences settings weren't enough, reddit would randomly switch to the new theme. After that I changed all my bookmarks to old reddit.
You can use a browser extension to always load old reddit.
Unless you're on mobile
(comment deleted)
Unless you’re on Firefox? Edit: nvm, on GNU/Linux mobile you can use FF or Chromium (or GNOME Web or lynx or netsurf or…)
Not on the whitelist of extensions for the current Firefox version. You'll need to build your own.
Yep. The most infuriating part of their sudden disabling of existing extensions and preventing users from installing non-whitelisted ones on mobile FF is that if extensions like uBlock Origin and NoScript will work you know that a simple redirector extension would too.
<strikethrough> “Simple redirector extension” sounds like a good generic tool that should exist to sed urls in a similar way to how ublockO & AdNauseum can block more than one type of content based on simple rules. One extension could use one rule to use the old version of Reddit, another to replace YouTube with Invidious, Twitter with Nitter… oh wait! </strikethrough>

I knew https://addons.mozilla.org/en-US/firefox/addon/privacy-redir... could do the last two plus something for Instagram, searched https://duckduckgo.com/?q=nitter+invidious+instagram and lo and behold, https://www.oldd.it/r/privacy/comments/hpy82f/redirect_twitt....

I’d be surprised if HTTPS Everywhere wasn’t whitelisted. And if it isn’t, TIL you can use it to fix Reddit.

Oddly, while Firefox nightly did disable my extensions after the update, Firefox stable has continued to leave them enabled. They're not working perfectly, but they're all enabled. xStyle, tampermonkey, etc are all working for me. The only problem is that they're now impossible to disable, because that entire UI no longer exists (I've got some extensions that do unconditional page modification, which I had to uninstall completely)
I don't have a reddit account and I have no interest in creating one.
https://oldd.it/r/linux/comments/iiowpn/htop_forked_to_htopd...

I've created this domain (and olddit.com/path) to redirect the urlpath to old.reddit.com using only a single CloudFlare Page Rule.

What's the benefit of that over just using old.reddit.com?
The original maintainer (creator) did an excellent job for 10+ years. Here is his response: https://github.com/hishamhm/htop/issues/992#issuecomment-683...
That is a beautifully worded response.
The entire issue is a delight to read from start to end.
Interesting how it started as a learning experience, and grew in something so essential. Amazing work
I'd been wondering if this was a friendly fork. Glad to see it has his blessing.
This is probably the friendliest fork I've seen happen. There's even a comment where someone points out he's been active on other projects, and is thus alive and well and still coding, but just obviously ignoring htop specifically. The general response to that news seems to be relief that he's okay and that nothing (obviously) bad has happened.

It's nice to see users of an abandoned project happy that it's because the developer (apparently) abandoned it, as long as he's okay.

The issue was also opened in a very positive and respectful way, which sets the tone for the whole discussion.

From my own experience, if I've been away from a project for a while sometimes there's this snowball of guilt that just keeps building up, and if there's people saying "hey what the hell?" it just adds to it. Understanding that and making sure there's no implied accusation can go a long way to getting someone to break their silence.

Many thanks for pointing this one out. And as someone said about the OP setting the tone with his opener. Regardless the whole thread was a wonderful read from start to finish.
(comment deleted)
I learned more about htop, and frankly even Linux I’m general, from this amazing in-depth explanation of what htop is displaying.

https://peteris.rocks/blog/htop/

The ads are substantial, invasive (hard to follow the text) and for me were borderline NSFW.

Definitely a situation for reader mode.

On Android, I don't see any ads with Firefox, but I do with Chrome.

Edit: No, actually that is because I have uBlock Origin enabled on Firefox.

I looked with FF both with and without ublock, and I don't see any ads. I don't understand people who gripe about ads when the solutions are ubiquitous and friction-free these days.
If you read the thread, you'd know that the author changed the ad settings an hour after I commented.

Also, just checked again, still ads on Firefox.

I also mentioned a solution.

Ads only showed on mobile. On desktop, with FF and uBlock disabled, I didn't see any. I had Tracking Protection enabled though.
It's Google AdSense with Auto ads (In-page ads, Matched content, Anchor, Ad load: max). I reduced the Ad load to min just now.
That does seem a bit better, thanks.

One thing I'm noticing is that your text structure looks a bit similar to mine, and the short paragraphs don't dovetail well with horizontal ads. It's hard to track whether the text is part of the ad or the page.

I should probably keep that in mind if I start trying to make any of my own work pay for itself.

Firefox and uBlock Origin. No ads. Like it or not, you kind of have to use a good ad blocker these days.
I thought the website was well laid out and easy to read. uBlock Origin makes a huge difference.
I turned off uBlockO and refreshed ... woah .. full banners in random parts of the page. Interesting...
I don't have any ad blocker, but see no ads O_o (Firefox)
That is amazing. I can’t remember a better tutorial about Linux system administration.
Wow. Just blown away by the density of useful info in this article.
(comment deleted)
htop is a really awesome tool, lots of hidden goodies in it. Thankful for the people that stepped up to maintain this in a kind way without being rude to the original maintainer and creator.
I can’t express how many times htop has made my life easy by giving me this nice interactive UX. There is a reason it’s part of every docker image I create.
> There is a reason it’s part of every docker image I create.

You really shouldn't put troubleshooting tools in your container images. You can join a "toolbox" container to a running container's namespace to get your tools there when you need them. That avoids unnecessarily large images, extra build time, and extra dependencies in your image.

> That avoids unnecessarily large images, extra build time, and extra dependencies

All of these are mandatory for containers, though... ? </joke>

htop has been on my list of applications I must install immediately on every system for at least 14 years now. I am always a bit shocked when I am reminded about how young of a project it is. I think the only younger tool that I always install is jq.
Glad to hear this! I always install htop on all Lunux i install! So cool to read about the backstory :) Good job!
There's a few I now prefer over their old counterparts: fd, ag, bat.

fd and ag (or rg) just do what I expect them to, I don't need to think about how to use them. Both find and grep's syntax trip me up, even after 20 years of using them.

What's bat do? (I'm on board with you on fd and rg)
bat is essentially a fancier version of cat. It's fully backward compatible but supports syntax highlighting, paging and has git integration.

It's written by the same developer as fd

https://github.com/sharkdp/bat

Bat is a cat replacement with syntax highlighting, formatting options; it works great with fd. What's rg?
ripgrep (the binary name is rg) is a faster grep written in Rust.
For me the interface is the draw rather than speed. I use ag rather than rg, but doing `ag search-term path` is how I'd expect it to work. Plus, automatically ignoring .git and other metadata files out of the box is a time saver.
https://blog.burntsushi.net/ripgrep/ explains in detail _how_ it's so fast, and is a great reading on practical performance engineering.

The interface is nearly 1:1 with `ag` (and the older `ack`). One notable difference is that ag enables `--smart-case` by default, so it treats an all-lowercase pattern as case-insensitive, while `rg` doesn't, you need an explicit `rg -i`. (or set it in a config file, but I'd rather not learn defaults that won't work out-of-the-box on other machines).

Note that -i will always enable case insensitivity. The -S flag will enable the same kind of smart case behavior that ag has (and with fewer bugs).
(comment deleted)
I love jq. Since I just learned this today, I'll mention that python comes with a JSON pretty-printing utility that can be used on the CLI:

  echo '{"some_json": "value"}' | python -m json.tool
Probably worth mentioning in this context that the pygments[1] module adds syntax coloring, as well,

  ... | python -m json.tool | python -m pygments -l json
or, path permitting,

  ... | python -m json.tool | pygmentize -l json
[1] https://pygments.org
Oh, and

  python -m http.server 12345
serves files in the current directory over HTTP on port 12345.

I'll stop now, but I love how Python module developers add these "hidden" command-line features.

P.S.: You can — and, at this point in history, probably should — s/python/python3/ in all these examples.

(comment deleted)
There are few things more satisfying programming than firing up htop on a high core count machine and watching cpu usage light up.
Last year I ran some simulations that maxed out a 48 core machine. That was a sight to see :D
I bet it was also a sound to hear, and some heat to feel as well!
Or, even better, fix that performance problem and watch the cores quiet down... :)
I paid for the whole CPU, I'm going to use it all. (when compile something obviusly)
now all that's missing is multisystem support
you mean it should show cpu/process statuses inside of virtual machines like Xenserver tools?
across multiple VMs, physical machines, whatever. Host/server mode, data collection, etc, etc
How does it handle many CPUs? In 2.2 it has a line for each CPU, as that number grows it will take over the screen.
This is actually configurable. Hit F2 and go into setup and you can change the configuration of what's displayed up top.

Here's a screenshot of my server with 32threads/cpus. https://www.simcop2387.info/htop3.png

This is i configured with 8 cpus per line

If you press "S", you will get a layout editor where you can change the CPUs from 2 per line to 4 per line. The exact options you're looking for are "CPUs (1&2/4): first half in 2 shorter columns" and "CPUs (3&4/4): second half in 2 shorter columns".
htop is by far the most important linux utility
Reading this changelog I discovered that htop has a config file and a config menu. I started using it years ago as a drop-in replacement for top and I never went beyond the default but there are some very nifty things hidden in the option, such as being able to display process trees and custom thread names among many other things.

If like me you never bothered to look into it just hit F2 in a running htop and start browsing the options.

Upvoted, this took me years to do myself. However, the config file annoys me now because every time I do something like toggling tree view with T or changing sort between CPU and memory with P and U it pops up in my dotfile repo’s list of modified files. I wish it only stored the stuff that’s buried down in the setup menu like what meters are at the top.
Agreed, I feel like there should be a way to mark changes as temporary instead of commiting to file every time.

I found a workaround that seems to work though, once you're happy with your defaults you can do:

  chmod a-w ~/.config/htop/htoprc
This way you make the file read-only and prevent htop from changing it.

Also I had to add "vim_mode=1" directly in the rc file because I couldn't find the option in the menus.

Unfortunately it seems that git only stores the eXecutable bit of the files in the index, so you can't really commit a file as read-only, so you have to remember to do it one every one of your machines (or script it in a git hook I suppose).

Thank you! I might try this on some other things too.

mpv is one tool I think handles a kind of similar thing nicely: it has a main config file for long term settings, but also allows you to use Q instead of q to quit and save state (eg. playback position, speed, volume, etc.) in .config/mpv/watchlater/hashofurl (a separate file for each URL you play).

htop could save the single-keypress-changeable settings in, say, .config/htop/viewstate and only keep the other stuff that’s buried in the setup menu in the htoprc

I have an /etc/htoprc so I can maintain it with the same tool that maintains my other /etc config files. Unfortunately htop also copies this over to ~/.config/htop/htoprc on every startup even if I don't change any configs, and then it gets out of sync if I ever update /etc/htoprc.

So I have a /usr/local/bin/htop that does

    #!/bin/bash

    rm -rf ~/.config/htop
    /usr/bin/htop
Good to see that the original maintainer is on board with this and package maintainers for the distros are changing to the new release.

Today I noticed that Arch is already on this release. Albeit with this[0] patch applied.

[0]: https://github.com/htop-dev/htop/issues/15

For those who like htop-style system monitoring tools, you should also keep these commands handy:

- atop (great for finding out what's causing system-wide slowness when you're not sure whether it's CPU/disk/network/temperature/etc.)

- iotop/iftop/sar (top equivalents for disk IO, network traffic, and sysstat counters)

- glances/nmon/dstat/iptraf-ng (pretty monitoring CLI-GUI utils with more colors)

- systemd-analyze blame (track down cause of slow boot times)

- docker stats (htop equivalent for docker containers)

- zpool iostat -v <poolname> 1 (iotop equivalent for ZFS pools)

htop is a superset of iotop.
virt-top is handy for libvirt/kvm users (even if simplistic)
I like iostat -x for checking disk IO capacity
- intel_gpu_top (display a top-like summary of Intel GPU usage)

- nvtop (NVIDIA GPUs htop like monitoring tool)

- radeontop (top-like GPU utilization for AMD Radeon GPUs)

From the console/ssh shell on VMware ESXi hosts, esxtop provides detailed, customizable top-style views of CPU, memory, storage, and network utilization, and even has a batch CSV output mode.
I personally use glances for our ML RnD machines as it is pretty extensible and I can get all info at a glance.
Man have I been hanging out for this. 2.x was sorely lacking in so many ways.