termplay
linux
termplay | linux | |
---|---|---|
2 | 1,008 | |
540 | 178,511 | |
- | - | |
0.0 | 10.0 | |
over 2 years ago | 1 day ago | |
Rust | C | |
MIT License | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
termplay
-
A new way of drawing boxes in the terminal?
Displaying images in the terminal has actually been possible for a while (through sixel and friends) and video playback has been demonstrated as well (https://github.com/jD91mZM2/termplay). Terminals also have had mouse support for years now (most ncurses based applications have mouse support out of the box and xterm and friends will often work with mice just fine as well). Really, it's only a matter of picking a modern terminal emulator. I like Wezterm but others prefer Kitty. There are more options, of course, pick the one you like most.
-
Wayland/X11 is bloat, any video players that run on cli direct to framebuffer?
you could use a program like https://github.com/jD91mZM2/termplay to watch videos without xorg
linux
-
Shut up TensorFlow
2024-09-15 12:58:03.328316: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:485] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered 2024-09-15 12:58:03.340620: E external/local_xla/xla/stream_executor/cuda/cuda_dnn.cc:8454] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered 2024-09-15 12:58:03.344415: E external/local_xla/xla/stream_executor/cuda/cuda_blas.cc:1452] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered 2024-09-15 12:58:03.354197: I tensorflow/core/platform/cpu_feature_guard.cc:210] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations. To enable the following instructions: AVX2 FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags. 2024-09-15 12:58:03.955991: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Could not find TensorRT x_train shape: (60000, 28, 28, 1) 60000 train samples 10000 test samples WARNING: All log messages before absl::InitializeLog() is called are written to STDERR I0000 00:00:1726415884.584769 6242 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355 I0000 00:00:1726415884.621959 6242 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355 I0000 00:00:1726415884.623432 6242 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355 I0000 00:00:1726415884.625631 6242 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355 I0000 00:00:1726415884.627330 6242 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355 I0000 00:00:1726415884.629009 6242 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355 I0000 00:00:1726415884.777146 6242 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355 I0000 00:00:1726415884.778641 6242 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355 I0000 00:00:1726415884.780130 6242 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355 2024-09-15 12:58:04.781466: I tensorflow/core/common_runtime/gpu/gpu_device.cc:2021] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 3984 MB memory: -> device: 0, name: NVIDIA GeForce RTX 2060, pci bus id: 0000:10:00.0, compute capability: 7.5
-
Defend against vampires with 10 gbps network encryption
There's a number of "special" Ethernet addresses that a proper Ethernet bridge must never forward. The Linux bridge implements a mechanism to ignore _some_ of these constraints, but not all of them. If you ned that, you can always get to manual patching in https://github.com/torvalds/linux/blob/d42f7708e27cc68d080ac... et al.
-
Yaak Is Now Open Source
Reminds me of Linus' comments[1][2] on pull requests in the kernel's GitHub mirror. The fact that you can't disable pull requests give the impression that it's mandatory to allow anyone to request changes and for you to review them.
[1] https://github.com/torvalds/linux/pull/7
- Linux - লিনাক্স
-
Rust in Linux Revisited
I think this is intended as more of a proof of concept than as a useful change, but apparently this driver is going to be enabled on Fedora rawhide soon.
https://github.com/torvalds/linux/blob/master/drivers/net/ph...
MR where they are working though a build system issue: https://gitlab.com/cki-project/kernel-ark/-/merge_requests/3...
-
Rust for Linux Revisited
We mostly agree. My comments re: whether Drew's proposed solution is a reasonable alternative to Rust for Linux are in a sister comment.
> To someone who isn't accustomed to idiomatic Rust, it seems completely insane to have to go digging around in the type system in order to enable magic elsewhere in the call stack, when you can just tell the computer what to do.
I think this would be a fairer point if the interface was a well documented C interface which showed how to use the interface correctly but it wasn't.
See the API docs: https://www.kernel.org/doc/html/v6.0/filesystems/api-summary...
And the function itself: https://github.com/torvalds/linux/blob/d5d547aa7b51467b15d9c...
If these guys don't like types, fine. But these guys need help quick if the above is the best they can summon.
-
Linux Pipes Are Slow
> I do not know why the JMP is not just a RET, however.
The jump seems generated by the expansion of the `ASM_CLAC` macro, which is supposed to change the EFLAGS register ([1], [2]). However in this case the expansion looks like it does nothing (maybe because of the target ?). I 'd be interested to know more about that. Call to the wild.
[1]: https://github.com/torvalds/linux/blob/master/arch/x86/inclu...
[2]: https://stackoverflow.com/a/60579385
-
We have reached OpenBSD of Theseus
Like I said, not anti-email. I don't see why it's git vs cvs:
> Recall that git was also designed to work over mailing lists. git format-patch, git apply, etc.
Right, and when you do web things with that same git in 2024, it looks and works like it's 2024.
You could use an old git server/file browser UI, or the built-in gitweb[0] for example, but you don't, you use something more modern & featureful, working better on mobile, looking prettier, etc. Even Linux (with its history intertwined with git) uses Github[1] as its mirror, not gitweb or anything looking like the link above for OpenBSD.
[0]: https://repo.or.cz/w/git.git/tree/HEAD:/gitweb/
[1]: https://github.com/torvalds/linux
-
AMD's Strix Point: Zen 5 Hits Mobile
Losing fetch bandwidth past a taken branch is a different thing.
4. Not sure where you're going. You started by suggesting Arm has less micro-op expansion than x86, and I provided a counterexample. Now you're talking about avoiding complex instructions, which a) compilers do on both architectures, they'll avoid stuff like division, and b) humans don't in cases where complex instructions are beneficial, see Linux kernel using rep movsb (https://github.com/torvalds/linux/blob/5189dafa4cf950e675f02...), and Arm introducing similar complex instructions (https://community.arm.com/arm-community-blogs/b/architecture...)
Also "complex" x86 instructions aren't avoided in the video encoding workload. On x86 it takes ~16.5T instructions to finish the workload, and ~19.9T on Arm (and ~23.8T micro-ops on Neoverse V2). If "complex" means more work per instruction, then x86 used more complex instructions, right?
8. You can use a variable length NOP on x86, or multiple NOPs on Arm to align function calls to cacheline boundaries. What's the difference? Isn't the latter worse if you need to move by more than 4 bytes, since you have multiple NOPs (and thus multiple uops, which you think is the case but isn't always true, as some x86 and some Arm CPUs can fuse NOP pairs)
But seriously, do try gathering some data to see if cacheline alignment matters. A lot of x86/Arm cores that do micro-op caching don't seem to care if a function (or branch target) is aligned to the start of a cacheline. Golden Cove's return predictor does appear to track targets at cacheline granularity, but that's a special case. Earlier Intel and pretty much all AMD cores don't seem to care, nor do the Arm ones I've tested.
Anyway, you're making a lot of unsubstantiated guesses on "weirdness" without anything to suggest it has any effect. I don't think this is the right approach. Instead of "tail wagging the dog" or whatever, I suggest a data-based approach where you conduct experiments on some x86/Arm CPUs, and analyze some x86/Arm programs. I guess the analogy is, tell the dog to do something and see how it behaves? Then draw conclusions off that?
-
Beginner’s Guide to Open-Source. Start your Open-Source Journey 🚀
Linux
What are some alternatives?
hwatch - A modern alternative to the watch command, records the differences in execution results and can check this differences at after.
zen-kernel - Zen Patched Kernel Sources
yaft - yet another framebuffer terminal
DS4Windows - Like those other ds4tools, but sexier
video2ascii - Yet another video to ASCII animation (in Rust)
winapps - Run Windows apps such as Microsoft Office/Adobe in Linux (Ubuntu/Fedora) and GNOME/KDE as if they were a part of the native OS, including Nautilus integration.
url-mapper-rs - A simple URL Mapper service built using Rust
Open and cheap DIY IP-KVM based on Raspberry Pi - Open and inexpensive DIY IP-KVM based on Raspberry Pi
yaydl - yet another youtube down loader (Git mirror)
serenity - The Serenity Operating System 🐞
ansi-str - This is a library for work with colored and formatted strings on ANSI terminals.
DsHidMini - Virtual HID Mini-user-mode-driver for Sony DualShock 3 Controllers