[-] PumpkinDrama@reddthat.com 11 points 5 months ago* (last edited 5 months ago)

Helix is a modal text editor, but I haven't used it as much as I'd like because it lacks the plugins I use in Neovim.

[-] PumpkinDrama@reddthat.com 8 points 5 months ago

Indeed, most people I know IRL still use the same passwords for everything.

[-] PumpkinDrama@reddthat.com 10 points 6 months ago* (last edited 6 months ago)

Profile Privacy Settings #4223: Allow users to control who can view their profile feed/activity, with options like public, visible only to friends/followers, or completely private.

[-] PumpkinDrama@reddthat.com 7 points 6 months ago

It certainly doesn't help that Lemmy had and still has absolutely no sensible way to actually surface niche communities to its subscribers. Unlike Reddit, it doesn't weigh posts by their relative popularity within the community but only by total popularity/popularity within the instance. There's also zero form of community grouping (like Reddit's multireddits) - all of which effectively eliminates all niche communities from any sensible main view mode and floods those with shitty memes and even shittier politics only. This pretty much suffocated the initially enthusiastic niche tech communities I had subscribed to. They stood no chance to thrive and their untimely death was inevitable.

There are some very tepid attempts to remedy this in upcoming Lemmy builds, but I fear it's too little too late.

I fear that Lemmy was simply nowhere near mature enough when it mattered and it has been slowly bleeding users and content ever since. I sincerely hope I'm wrong, though.

@PurpleTentacle@sh.itjust.works https://sh.itjust.works/comment/4451602

[-] PumpkinDrama@reddthat.com 6 points 6 months ago* (last edited 6 months ago)

Nice! What made you decide to write it? Where can I find out which instances offer that UI?

[-] PumpkinDrama@reddthat.com 4 points 10 months ago

Just don't post about it in the fediverse community. Damn hypocrites.

[-] PumpkinDrama@reddthat.com 4 points 11 months ago* (last edited 11 months ago)

Related idea:

https://reddthat.com/post/7516312

To manage temporary files in Linux, a Bash script can move files untouched for 10 days to a timestamped subfolder, return modified files to the root, and delete files not modified for 90 days. Alternatively, a folder with symlinks to recently accessed files can be created using mkdir, find with -atime -7 to locate recently accessed files, and a while loop with ln -s to symlink each file into the folder. Both approaches help organize files based on access time to avoid clutter and remove stale temporary files. The Bash script offers more automation while the symlink folder provides a manual way to access recent files.

28

Beginning the Project with Learning Goals

In the summer of 2018, I started a project called Joshuto to learn Rust. At first, I considered learning C++, but became interested in Rust and decided to build something in it instead. While the main goal was for me to learn Rust, over the past four years it has grown into a much larger open source project with many contributors. I wanted to share some of my experiences and lessons learned along the way.

What Joshuto Is and Early Development

I describe Joshuto as a ranger-like terminal file manager written in Rust. For those unfamiliar, ranger is another terminal file manager that makes navigating files and folders in the terminal extremely fast and efficient. The interface usually consists of three columns - the parent directory, the current directory, and a preview of the next directory or file. You can navigate with arrow keys or vim keys, select/cut/copy/paste files, create new tabs and directories, rename files, and more - like a normal GUI file manager. Joshuto also supports bulk file renaming across multiple selected files.

My goal was to learn Rust by challenging myself to build a replacement for ranger that matched all my use cases. I decided to use the ncurses library in Rust since I had experience with ncurses-based terminal programs in the past. I quickly built out a UI to display the current and parent directories, added logic to handle different key presses, custom remappings and themes, and background threads for cut/copy jobs. Under the hood, I used a HashMap to store directory contents instead of a tree structure, which was harder to implement efficiently in Rust.

Reflecting on Design Choices and Major Refactors

Of course, nobody writes perfect code on the first try. Over the years I've had to do some major refactors due to early design decisions that didn't age well.

One of the biggest was switching from ncurses to tui-rs. Ncurses is very primitive without high level abstractions, making reusable code difficult. I could never get things like windows or panels working well, and ncurses can have inconsistent wide character support leading to compile issues for some users. It also caused a lot of screen flickering from refreshing the entire screen. Moving to tui-rs improved the codebase drastically and adoption rate, at the cost of deleting a lot of existing code. This migration took about a week in February 2020 after putting it off for 2 years.

Another refactor was removing the fs-extra library I used for cutting/copying files. Although elegant, it wasn't efficient - doing unnecessary copies and deletions instead of renames. I wrote a custom implementation to directly rename when possible. There were challenges around handling permissions and edge cases, but it improved performance substantially.

Lessons Learned

Some key lessons I learned:

  • Be pragmatic in your technology choices - don't force a library or design that isn't working well. The cost of refactoring later is worth avoiding longer term issues.

  • Write in idiomatic Rust - avoid fighting the language and leverage its strength like enums for event handling.

  • Performance matters more than it may seem at first. Do profiling and optimize bottlenecks.

  • Listen to your users and their pain points to guide development. Their diverse environments and use cases will reveal flaws in your thinking.

  • Open source is extremely rewarding. Seeing others use and contribute to your project is an amazing feeling.

This has been an incredible learning experience. While a ton of work, I'm proud of the project Joshuto has become and still very motivated to keep improving it. I encourage anyone interested in Rust or open source to give it a try!

8
30

It writes more informative commits than I could ever make so I'm just reading what it says and mostly copy/pasting completely most of the time, I write all of the changes I've made into an LLM with a large context window and it write a very detailed commit not just with a title but with bullet points describing each of the changes precisely

157
Permanently Deleted (reddthat.com)
submitted 11 months ago* (last edited 10 months ago) by PumpkinDrama@reddthat.com to c/linux@lemmy.ml

Permanently Deleted

48
submitted 11 months ago* (last edited 11 months ago) by PumpkinDrama@reddthat.com to c/nostupidquestions@lemmy.world

I want to share a screenshot for the search "chat" in Chocolatey package manager but I haven't found any relevant community for it.

120
submitted 1 year ago* (last edited 1 year ago) by PumpkinDrama@reddthat.com to c/android@lemmy.world

I care about them in that order. So if it doesn't have popup camera I don't care as much as if it doesn't have audio jack.

51
submitted 1 year ago* (last edited 1 year ago) by PumpkinDrama@reddthat.com to c/nostupidquestions@lemmy.world

In Star Wars Rebels, there was an E-XD-series infiltrator droid that could quickly take inventory of everything in a Rebel warehouse. With the advanced object recognition capabilities of modern AI, it’s only a matter of time before an app for Android can accurately and rapidly identify and store objects in real-time from video capture. This could be similar to a home inventory app where users only need to capture video and move around the house instead of taking pictures and labeling items. When do you think such an app will become available? Also, what is the closest app available right now?

edit: I didn't say offline or on-device, I don't know why everyone assumes that. I mean a service offered through an Android app.

[-] PumpkinDrama@reddthat.com 11 points 1 year ago

The fediverse will never be mainstream, that would mean using addictive algorithms which open source enthusiasts are opposed to.

view more: ‹ prev next ›

PumpkinDrama

joined 1 year ago