New release: newsbeuter 2.6

March 19, 2013

I just released newsbeuter 2.6. After more than a year since the 2.5 release, and the recent buzz around RSS and Google Reader which also affected newsbeuter, it was time to push out the latest changes. It’s mostly a bug fix release, fixing features, updating translations, stuff like that. You can download it from the usual location.

But expect more: since Google decided to withdraw Google Reader soon, newsbeuter will get support for one or more Google Reader alternatives. Currently on my radar are Feedly (since they announced a Google-Reader-compatible API) and NewsBlur (since they already provide an API), so there will be migration paths for people who have used newsbeuter with Google Reader.


newsbeuter 2.4 released

February 1, 2011

A new year, a new newsbeuter release. It has been more than 7 months since the last release, so it was about time…

So, what’s new? Well, a lot. You can now use query feeds in combination with Google Reader. If you have a proxy that requires authentication, you can now configure the proxy authentication method. newsbeuter also has a quiet startup mode that disables all text output until the main screen pops up. It also fixes some sorting issues after a full reload of all feeds.  Additional keys to jump to next and previous articles regardless of their “unread” status were also added.

A huge improvement is the reduced memory usage. Now, data is only loaded from the cache when it’s really necessary, and immediately freed as soon as its not needed anymore. Bloglines support was removed as it ceased operation as of October 1st, 2010.  XDG Base Directory support was also added, but it’s optional and only active if the required directories exist, so the default stays the same.

For Google Reader support, “unread” status changes are recorded in offline mode and sent to the server when reconnecting in online mode. Google Reader also had a nasty bug where passwords weren’t properly encoded on authentication, which made some authentication fail. This is fixed now.

newsbeuter now also has support for cookies. You can configure a “cookie cache” file, and all of newsbeuter’s cookies will be stored there and used from there. It’s a normal text file, after all. And last but not least, countless small issues were fixed.

I hope you enjoy this fine release, the next release after 2.4 will hopefully out sooner. You can grab newsbeuter 2.4 here.

Since I announce this new release, I would also like to use the space to point to my new side project, baconbird. It’s a Twitter client for text terminals, very much in the style and spirit of newsbeuter. It’s written in Perl, using the STFL Perl bindings and the Moose object system (I know, I’m into quirky languages, first C++ with newsbeuter, now Perl with baconbird). If you like newsbeuter and use Twitter, baconbird is probably the tool for you! Feedback and patches are welcome, as usual.


Newsbeuter in various distributions

July 10, 2010

As part of a recent effort to evaluate the overall adoption of newsbeuter in the open source community, I compiled a list of distributions for which packages of newsbeuter are available. I was surprised to find out that most popular Linux distributions already come with ready-to-use newsbeuter packages, as this makes it even easier for end users to install newsbeuter than doing so manually.

Here’s the list of distributions/systems that I found so far:

If you know about other Linux distributions with existing newsbeuter packages that is still missing from this list, don’t hesitate and send me an email about this ak@newsbeuter.org. The latest version of this list (including links) is available on the newsbeuter download page.


newsbeuter 2.3 released

June 24, 2010

After a few months of work, newsbeuter 2.3 has finally been released. It’s mostly a bugfix release, addressing a number of issues that came up in the last few months since the 2.2 release, especially the problem that newsbeuter hangs and consumes 100 % CPU when confronted with certain characters in combination with certain locales. It also addresses a recent change in Google Reader’s authentication scheme. As usual, you can download the latest newsbeuter release from this location.

In addition, I would also like to point out that you can show your love towards newsbeuter by “flattring” it on flattr.com, a new social micropayment platform that lets you show love for the things that you like. I certainly appreciate it, even though I don’t expect to get rich through it. 😉


newsbeuter 2.2 released

March 14, 2010

Today, on a slow day at Chemnitzer Linuxtage 2010, I released newsbeuter 2.2. So, what does this new release offer?

First of all, the latest and greatest feature is Google Reader support. With this support, you can manage your RSS subscriptions at Google Reader, and use newsbeuter as a client to read your feeds. The “read” status for each article is synchronized via Google Reader, and even support for Google Reader features such as “starring” (i.e. bookmarking) and “sharing” articles (so that other people that follow you) is available. The documentation has all the essential information about it.

In addition, a great number of bugs was fixed. The killfile functionality was also extended, a “hard quit” key was added (thanks to Jim Pryor), and the HTML renderer was extended with a table renderer (many thanks for Stefan Erben!). Another additional feature is a new “open-in-browser-and-mark-read” keybinding (thanks to Isaac Good!).

So, have fun with newsbeuter 2.2! Don’t hesitate to send feedback!


Finally: newsbeuter 2.1 released!

December 8, 2009

Way too late, but finally here: newsbeuter 2.1.

So, what’s new in this release? First of all, an issue which had bugged too many people: newsbeuter finally supports 256 color terminals. Not only is the terminal output not scrambled anymore, you can also use colors from this extended palette in your color configuration. The documentation explains how. Please note that you will need STFL 0.21 or later.

Furthermore, a number of smaller fixes and improvements have been added, such as improved HTML rendering, a length field in the article list and the ability to quickly jump to any of the article links by typing ‘#’ followed by the link number. These fixes and improvements were contributed by Stefan Erben. Thanks a lot!

Another feature is support for SOCKS proxies, deletion of articles from the article view, better selection of feeds/articles when entering feeds and marking feeds as read, and a new “notify-beep” notification that simply beeps when new articles were fetched.

The full list of changes can be found here.

Hopefully, the next releases will come out quicker. New features are already being worked on.


Why there is no new release yet

July 27, 2009

“Almost August, and no new newsbeuter release, yet?”, you may ask yourself. Well, the reasons for it are manifold.

First of all, one reason was that I recently didn’t have too much time for working on any new newsbeuter stuff due to lack of time. My regular work consumes most of my energy, so I haven’t been able to do any remotely productive private programming work in the last few months.

Another huge factor is that the current state in git isn’t quite ready to release yet: it pretty much has the features that I want the next release to have, but it still has a few nasty bugs in it (segmentation faults, deadlocks) that I introduced since the release of newsbeuter 2.0 but was unable to find so far. And, due to lack of time, I never had any good opportunity to actually spend some time on debugging.

And last, but not least, I’m going to spend two weeks of holidays in August. Until then, I still have quite a lot to do, so there will be no work on newsbeuter in July and August. Well, maybe end of August. Sorry, folks, it will still take a few weeks for the next release (but definitely within 2009!). Unless maybe somebody else does the debugging work for me. 😉


Newsbeuter 2.1 will contain support for 256-color terminals

May 6, 2009

Recently, I found and fixed a bug that prevented the awesome STFL to function correctly on 256-color terminals such as xterm with TERM=xterm-256color. In addition, I added support to both STFL and newsbeuter to specify colors from the whole 256-color palette. Currently, if you want to try out this feature, you need the latest SVN version of STFL (can be found here) and the latest git master branch version (can be found here). To specify one of the “extended” colors, simply use “color<n>” (e.g. “color123”) instead of using the color name (“blue”, “black, “green”, etc.) in the color-related configuration. A chart of color numbers and how they look like can be found here. Finally, here’s a screenshot of the whole thing:

nb21-256color

As you can probably recognize, these are not the usual colors from the usual 16-color palette. But, since I’m really bad at designing colorful themes, I ask everyone who has an interesting newsbeuter color configuration to submit it to me so that I can include it to newsbeuter’s contrib directory that already contains a few theme examples.


Newsbeuter 2.0 released

April 21, 2009

Yep, you read correctly, newsbeuter 2.0 is out. In the last 4 months of work, I added so many more features than I had originally planned, so I though, “there will probably never be a release with more new features, this is the time to make a major release”.

One reason for all the new features is probably a tragic one: a few days after moving to Berlin, I had to be brought to the hospital, where I had to spend two weeks, and thus had a lot of time to work on new features. That’s also why I call this release the “Virchow release”: the hospital where I was brought was the Virchow hospital in Berlin (Charité Campus Virchow, to be exact). Thanks also go out to newsbeuter’s Debian maintainer, Nico Golde, and his girlfriend, who visited me in the hospital a few times and made the time there a lot less boring, and to text tool rockstar Sven Guckes, who also visited me and gave me a lot of great feedback regarding newsbeuter.

As usual, you can grab the latest newsbeuter release from newsbeuter’s download page.

As already mentioned, a lot of new features have been added, and so I will describe them to give a better understanding of what has changed and improved.

First of all, the whole dialog management was made much more flexible. Before this release, all dialogs (i.e. feed list, article list, article view, …) were internally stored as a stack: opening e.g. a feed pushed a new article list on this stack, and quitting this dialog removed it from the stack again. In this release, this functionality has been extended: it is now not only possible to push new dialogs to the stack, you can now jump to other dialogs that are open but not on the top of the stack, and you can even remove open dialogs. Just press the ‘v’ key, and you’re in the “dialogs” view from where you can do all these operations. So, what’s the advantage? It e.g. allows you to open more than one feed or article at the same time. By pressing Ctrl-V or Ctrl-G, you can go to the next or previous dialog in the list, making it possible to quickly switch between different dialogs.

The second new big feature is the replacement of libmrss and libnxml with an own RSS/Atom parser which uses libxml2. Not only were about 6000 lines of C code replaced with about 600 lines of C++ code, newsbeuter now also builds upon on a proven and flexible XML parser. This change also led to a nice side effect: due to the new code, it was pretty easy to implement proper support for the HTTP/1.1 “If-Modified-Since” and “If-None-Match” conditional download features. libmrss had similar abilities, but had to do two requests. This also means that the new code downloads feeds much faster and with less resource usage. Basic support for Yahoo’s Media RSS extension has also been added: Media RSS content is handled like enclosures. And it’s now even possible to configure local files as RSS feeds, by using the “file://” prefix before the local file path.

Another improvement is that newsbeuter is now able to handle more than one OPML files when using OPML URLs as URL source: this allows it to subscribe to several OPMLs and read all of the contained feeds.

Another convenience feature is the ability to configure for how many days articles shall be kept (coniguration option “keep-articles-days”). Until now it was only possible to configure the maximum number of articles per feed that shall be kept. In addition to this, it is now also possible to configure how long articles shall be kept since they were initially downloaded. Both features can be combined, of course.

A security improvement has also been added to newsbeuter 2.0: URLs that contain authentication information (e.g. http://username:password@hostname.tld/feed.rss) are now “censored”, i.e. username and password are replaced by ‘*:*’, making it impossible to see the authentication information anywhere on the screen.

HTML rendering has also been improved: text within links is now underlined, text between <u> tags is underlined, too, and text between <strong> or <b> tags is now rendered as bold. This makes HTML rendering much nicer than before.

The commandline has been improved, too: newsbeuter now contains support for commandline completion using the TAB key: type 0 or more characters of the command you want to execute, and press TAB to cycle through all the matching commands. The “set” command even allows completion of the available variable names. Another extension is that entered commands and search queries are now persisted to history files in the ~/.newsbeuter configuration directory. This allows to enter commands, quit newsbeuter, reopen it, and to have all the previously entered commands and search queries available in the commandline resp. search history. Command and search history persistence can of course be disabled.

Other nice new features are the “source” commandline command to reload configuration files, the “pipe-to” key to pipe the current article to an external command, a new “between” operator for the internal query language, a new “age” attribute for articles to filter for articles for relative age (in days) and the ability to sort feed list and article list interactively.

And even the search function was improved: it is now possible to search for text from the article view (found text now stands out in the text), and when opening articles from the search result dialog, the search phrase is also marked in the text.

And last but not least, a kind of “funny” feature was added too: when pressing Ctrl-K, newsbeuter now goes to a random unread article. This makes reading articles with newsbeuter a lot less predictable. This wasn’t my idea, but is based on input from a user, and since I usually listen to the newsbeuter users, I implemented this feature. Even though it’s quite unusual to have such a non-deterministic feature in a newsreader, there seems to be a demand for such functionality.

And another achievement during development was that I finally found the reason for the occasional crashes that some of you probably experienced: it was a subtle but really stupid programming error where I forgot that C++’s std::vector class is not thread-safe, and concurrent read/write accesses from several threads led to occasional crashes. This is fixed now, and newsbeuter has been rock-stable in my tests so far.

So, I hope you like this new release, download it, use it, and if you find any bugs or have any feature requests or wishes, don’t hesitate to report them to me. Enjoy!


A new RSS/Atom Parser

December 31, 2008

From its very beginning until now, newsbeuter has always used libmrss to parse RSS and Atom feeds. But there were a few problems: libmrss (and libnxml, the XML library it builds upon) are both written in pure C. Also, they are quite big (more than 6000 lines of code), and licensed under the LGPL, a license that I don’t really prefer.

So I decided to replace libmrss and libnxml with a self-developed RSS/Atom parser, using libxml2 as its base XML library. While the development of a new RSS/Atom parser isn’t too difficult by itself, it is still not that trivial due to the vast amount of variations of RSS. I already tested it with more than 100 feeds, but I urge everyone to check out the git master branch from newsbeuter’s git repository, compile it, and test it with the feeds that you read. Don’t hesitate to report any issues or irregularities back to me. Every feedback helps with the stability of newsbeuter, and I want to make the new parser as stable as possible before releasing the next version of newsbeuter.