Live data from Hacker News

Newsraft: feed reader with ncurses user interface

codeberg.org

21–30 of 41 posts

Re: Newsraft: feed reader with ncurses user interface

#21
post #10
post #8

Newsblur has been suckless for years.

> IFTTT Support > Third-party Apps > Free Account: Up to 64 sites, doesn't show the full text of the article > Premium Subscription > No desktop app Really?

@gnull is there a github repo of your haskell prototype

Re: Newsraft: feed reader with ncurses user interface

#22

Demo gif & video please! You'd have more adoption if I knew what I was getting upon install.

There really should be a standard for self-published OSS projects to have a simple animated gif. screen2gif is so awesome for this purpose and also OSS.

Re: Newsraft: feed reader with ncurses user interface

#23
post #21
post #10

Earlier quoted context omitted.

> IFTTT Support > Third-party Apps > Free Account: Up to 64 sites, doesn't show the full text of the article > Premium Subscription > No desktop app Really?

@gnull is there a github repo of your haskell prototype

https://sr.ht/~ph14nix/kalina/

Sure, here it is. Enjoy! It can do all the basic things, but stuff like error handling is rough (it will panic if it fails to parse something).

Re: Newsraft: feed reader with ncurses user interface

#24
post #20
post #6

Funny. I was working on an RSS reader inspired by Newsboat too. Although my project's goal was to avoid the C's rough edges that Newsboat has: better parsers, richer feeds file syntax, more configurability (done in a nicer way), less segfaults. I chose to implement it in Haskell, even got a working prototype, but then didn't keep working on it consistently (and I was unsure about the concept). Newsboat's authors are…

Is your haskell prototype available to try

https://sr.ht/~ph14nix/kalina/

As replied in another comment, here it is. Enjoy!

Re: Newsraft: feed reader with ncurses user interface

#25
post #19
post #16

Earlier quoted context omitted.

Rust does everything that C does while making programmer more productive. Look at what Linux Kernel hackers say about it. They are the ones who know things about C. > Rust will not fix your poorly designed code Nobody said it will. But segfaults hardly come from poor design. They come from accidental mistakes, lack of static analysis, and gotchas that your language offers. > now it is harder to develop Only if you're…

> Rust does everything that C does while making programmer more productive. Look at what Linux Kernel hackers say about it. They are the ones who know things about C. Anybody can submit a patch to the Linux kernel (which is great of course). Any big names (long term kernel development) backing it? That said, kernel development has different constraints to userspace application development. For kernel drivers for exam…

> Any big names (long term kernel development) backing it?

Linus Torvalds is one of them. And he is a hardcore C programmer, he was strongly against C++ in the Kernel when people were suggesting that.

> Sure, but there are a few simple patterns when used throughout that are quite reliable.

And yet, C/C++ programs segfault all the time. Memory corruption vulnerabilities are some of the most severe and common ones. There was a submission here, on HN, about it. There was something about Google adopting Rust on Android precisely because of this — in case you want to find it.

I've been a C (Kernel) programmer in the past. And I've quit precisely because it took too much of my time to debug things that a good language should normally detect for you. Now, my main languages are Rust and Haskell, and the compiler helps me eliminate a huge class of bugs. If it compiles, most of the time it works correctly.

> Every C program can theoretically [+] be compiled to be the same as a Rust binary, but not every Rust program could be compiled to be the same as a C binary [1].

What should I be looking for in [1]? And what do you mean here? "Theoretically", you could implement every possible C program in Assembly, but that's hardly an argument against C. We should be thinking here in terms of things that a programmer normally would implement in reasonable amount of time. A knowledgeable Rust programmer is by orders of magnitude more productive than a C programmer with the same experience.

The discussion we're having was already had many times here. I'm just repeating the standard arguments.

Rust also has more freedom to perform optimizations on your code than C, because Rust has so much more information about it. For example, in C, a carefully placed "restrict" keyword can speed up your program a lot. But if you're not careful enough and you fail to satisfy the "restrict" invariant, you get undefined behavior. In Rust, things are "restrict" by default due to borrow checker and the invariant is ensured in compile time.

The argument for C against Rust just doesn't stand a chance if you remember C's undefined behavior. C is full of it. Can you list all the conditions when it can occur in C?

> I use it quite regularly.

I meant using the OP program, not C language.

Re: Newsraft: feed reader with ncurses user interface

#26
post #6

Funny. I was working on an RSS reader inspired by Newsboat too. Although my project's goal was to avoid the C's rough edges that Newsboat has: better parsers, richer feeds file syntax, more configurability (done in a nicer way), less segfaults. I chose to implement it in Haskell, even got a working prototype, but then didn't keep working on it consistently (and I was unsure about the concept). Newsboat's authors are…

I think you confused C with C++ for Newsboat.

Re: Newsraft: feed reader with ncurses user interface

#27
post #17
post #12

Earlier quoted context omitted.

I abandoned newsboat the day it introduced the first Rust dependency and switched to the Android app Feeder. Some just prefer simple and minimalist software for their daily life, and there's no place for the Rust ecosystem there. For this reason projects like dwm, st, dmenu, bspwm, sxcs, sxhkd, nsxiv, xmenu, xplugd, fzy, nnn, xbanish, scdoc and many others will never be rewritten in Rust or adopted by users who striv…

Not sure I'm getting your point. Somehow Rust forces you to have colorful terminal output? Rust is high overhead? You can't strive for simplicity and write in Rust? Sure it's a bit silly to rewrite a nice simple tool for because it's the new fad. However if writing a new simple tool I'd certainly consider Rust. How is Rust incompatible with aligning with the philosophy that encourages building simple yet functional t…

> Somehow Rust forces you to have colorful terminal output? Rust is high overhead? You can't strive for simplicity and write in Rust?

This was more of a sarcastic reference to https://github.com/mTvare6/hello-world.rs But I don't think Rust fits in here: https://suckless.org/philosophy/

> How is Rust incompatible with aligning with the philosophy that encourages building simple yet functional things?

I would say it attracts different kind of developers that in turn make respective design choices, and I believe Rust, its syntax, package management ecosystem and community reflect that. Can you write simple system tools in JavaScript or brainfuck (not trying to compare here)? Sure, but the thinking process, design decisions, approaches would be drastically different compared to what I'd consider good and elegant code.

ANSI C is probably the best balance you can get between product complexity, coding complexity and usability of the output (which again, has to be simple: writing something like Kubernetes in C is probably not the best idea, hence it was implemented in a more suitable language). Though there are some very good and complex products, like the Linux kernel, Redis or Varnish. All of them are very modular, as complex products should be.

Just by having a musl library and tcc [0] you can get a lot done. I'd prefer that over complexity that Rust toolchain involves and crates ecosystem mess.

[0] https://bellard.org/tcc/

Re: Newsraft: feed reader with ncurses user interface

#28
post #16
post #13

Earlier quoted context omitted.

I also worked on an RSS feed reader that was supposed to work on both desktop, mobile and low-RAM embedded systems ( > Newsboat's authors are rewriting it in Rust. They concluded (last time I checked) that C and some early design decisions were bad for its development now and they want to rewrite it in Rust because this is something that can be done gradually (and, I think, because they liked Rust). Before they settl…

Rust does everything that C does while making programmer more productive. Look at what Linux Kernel hackers say about it. They are the ones who know things about C. > Rust will not fix your poorly designed code Nobody said it will. But segfaults hardly come from poor design. They come from accidental mistakes, lack of static analysis, and gotchas that your language offers. > now it is harder to develop Only if you're…

> Try using it for a week, and count for me how many times it segfaults on your face. (That is not to diminish Grigory's work, which I have nothing against.)

Hi, Newsraft developer here. Not that I was offended, but I just wanted to let you know that I use it daily and don't encounter segfaults with builds from release tarballs like at all. I'm trying to leave tag commits as clean as possible, but I admit that logical bugs can slip through :)

Re: Newsraft: feed reader with ncurses user interface

#29
post #15

I move between machines a lot, and so gave up on having a local RSS reader. I looked for a self-hosted web one, but didn't find one that I liked. So I setup a dovecot IMAP server and use feed2imap-go to sync my RSS feeds to IMAP folders. Now I can use email clients on my machines to access my RSS feeds in a synchronized manner. 1: https://github.com/Necoro/feed2imap-go

I really like this idea! Using email to synchronize RSS feeds is an awesome abuse of email! > "It is a rewrite in Go of the wonderful, but unfortunately now unmaintained" Is it still working? If not, I might need to read up on the IMAP protocol... Could be cool to hack such a thing together. One feature I would suggest is to import an OPML file to help those (like me) with insane numbers of existing RSS feeds.

> Is it still working?

Yes. Your sentence misses a comma and a word: feed2imap is (more or less) unmaintained, therefore I rewrote it in Go, resulting in feed2imap-go

> One feature I would suggest is to import an OPML file to help those (like me) with insane numbers of existing RSS feeds.

Please feel free to open an issue. Note: Import does not make that much sense, but writing a generator that spits out the yaml file (or portion thereof) could be useful.

Re: Newsraft: feed reader with ncurses user interface

#30
post #29
post #15

Earlier quoted context omitted.

I really like this idea! Using email to synchronize RSS feeds is an awesome abuse of email! > "It is a rewrite in Go of the wonderful, but unfortunately now unmaintained" Is it still working? If not, I might need to read up on the IMAP protocol... Could be cool to hack such a thing together. One feature I would suggest is to import an OPML file to help those (like me) with insane numbers of existing RSS feeds.

> Is it still working? Yes. Your sentence misses a comma and a word: feed2imap is (more or less) unmaintained, therefore I rewrote it in Go, resulting in feed2imap-go > One feature I would suggest is to import an OPML file to help those (like me) with insane numbers of existing RSS feeds. Please feel free to open an issue. Note: Import does not make that much sense, but writing a generator that spits out the yaml fil…

> Yes. Your sentence misses a comma and a word: feed2imap is (more or less) unmaintained, therefore I rewrote it in Go, resulting in feed2imap-go

Yeah I saw this after, no idea why I read that wrong. First thing I do when I see a repo is try to figure out if it's being actively developed and if that makes a difference.

> Please feel free to open an issue. Note: Import does not make that much sense, but writing a generator that spits out the yaml file (or portion thereof) could be useful.

I did think after that this might be something suitable for a small Python script. I don't know any Go (and am too busy too learn), otherwise I would hack it together myself.

Post reply on HN