The compulsory Frequently Asked Questions page.
- Why Canto?
- Does Canto support Atom feeds?
- Does Canto support OPML?
- Does Canto support Unicode/UTF-8?
- The interface is full of ????s, WTF man?
- What does Canto require?
- Why ncurses?
- Why Python?
- What license is Canto under?
- What platform does Canto run on?
- Where should I request features / report bugs?
I'm not sure how people can stand three-pane readers. Graphical or console, I don't want to tab around multiple windows to read my news. The way I read, I want all of the headlines out where I can see them with minimal cruft. It should be one key stroke to do most common actions.
Everything used to configure Canto is actually part of the Python interpreter. It has all of the power of Python anywhere. Hooks are provided to allow you to perform actions on particular events (start, stop, update, resize, select, unselect, new), filters allow you to filter items out on arbitrary terms (globally or on a feed basis), and intelligent keybinds allow you to script your way to pretty much anything you want.
- Use a keybind to write the item to a file, or mail it to a friend.
- Use a filter to only browse through items you haven't read yet.
- Simply add content like an item's tags or author to the reader.
- Sort feeds by date, alphabetically, by length, or by any other arbitrary criteria.
- Keybind your favorite search terms to cycle through them.
- Detect that your terminal is xterm or a tty and set the browser appropriately
- Arbitrary things, like change the theme based on the time of day
The point being that, with all of Python behind it, you can manipulate Canto in new and inventive ways without any help from me. My limited vision doesn't encumber how you use the software.
All of the drawing code is done by a simple class full of literate Python. If you want to modify how anything is drawn to the screen, subclass the renderer, change anything you want and voila... Canto now draws differently. Definitely for advanced users, but extremely powerful.
Does Canto support Atom feeds?
Yes. Canto uses feedparser which is capable of parsing virtually any syndicated news format on the planet and aside from that, Canto doesn't care if a feed is any version of RSS, Atom, or any other feed type.
Does Canto support OPML?
Yes, as of 0.5.2, Canto support importing from/export to OPML, as well as adding feeds from an OPML file at runtime
Does Canto support Unicode/UTF-8?
Yes. As long as your terminal and its font can support it, then Canto can output it. If you can't see certain characters try using a pan-Unicode font (like unifont) with your terminal. Then you can read all of your Unicode Klingon characters.
The interface is full of ????s, WTF man?
Your locale isn't UTF-8 compatible. You should probably change that if you expect your terminal apps to do anything smart with non-ASCII characters (like the ones used to draw the interface). More info here and here.
What does Canto require?
As of version 0.7.8 Canto only requires Python 2.5+ (although 2.4 may work, it's not tested at all) and chardet.
Canto < 0.7.8 requires feedparser in addition to the above. Canto < 0.7.6 on Python < 2.6 requires the multiprocessing library.
To build Canto: GCC or another standards compliant C compiler, ncurses header files, and python header files (for compiling the core code).
I am one of those internet nutjobs that believe that the mouse shouldn't have made it as far as it has in the world. I like to be able to do everything from the keyboard, and a lot of times that means using console apps because they seem to be the only ones not following the click-button paradigm (with a shoutout to Vimperator for making Firefox an exception).
There's also the fact that virtually every Unix-like distro has ncurses installed by default, so that the user doesn't have to choose apps based on what will best integrate into their desktop. How many times have you found a piece of software and are disappointed because it doesn't really fit with everything else? People in Gnome running Amarok know exactly what I'm talking about.
Then there's the fact that I like to read news from in SSH sessions (very nice when you're on campus, or at work).
The previous iteration of this project was in C (NRSS, which is deprecated in favor of Canto now). Now C is great. I love C. I do my daily work in C and I enjoy it.
But when it comes to having fun while coding, Python is the way to go. I know you take a speed hit, but that's why the core drawing logic is in C (surprise!). And there's one thing that I've learned while bugfixing NRSS, and that's that it's no fun.
Lastly, Python is also second only to Perl in system adoption and... God knows I wouldn't want to write this in Perl =).
What license is Canto under?
Canto is GPLv2 software. Just like all the other software real men write.
What platform does Canto run on?
Canto should run on any Linux system with the required libraries, regardless of architecture. Other platforms like *BSD, Cygwin, and Windows are 100% untested and unsupported. Patches welcome.