Canto. · 224 days ago

I’ve completed the rename, and put up a new site for Canto, which is the renamed NRSS 0.4.0.

I’m going to remove some content from this site, like the disclaimers on the config pages, and the beta software. And add a link to the Canto site on the download page, instead of the git/beta links.

As I’ve mentioned before, I will continue to maintain and bugfix the 0.3.0 branch of NRSS as long as bug reports come in. I’ll even enhance it, if necessary. The key here being that 0.3.0 is no longer dead, 0.4.0 just became an entirely different project =P.

— Jack Miller

---

More Details. · 232 days ago

So after a couple of hours hammering out the real details, I can give a more accurate picture of what’s going on.

Styling
I had forgotten that Python’s curses library has no wide-char support, so I can’t eliminate C all together, but I have pared down the C quite a bit, moving more of the higher level formatting code to Python.

The change now is that all of the styling (changes in actual layout) will be done by writing a Renderer class. Now that sounds a little more complicated than it is. You can subclass your own style from the default style and by overriding some simple (two or three line) functions, you can change the content of any part of the GUI.

In these functions, you have access to the entirety of the story object and its feed object, allowing you a lot more flexibility than using the escapes previously set up. In addition, it makes the rendering run a whole lot faster.

Speed
Converting to the new class based renderer, the interface is a tad bit slower, with half as much C code, but without any memory wasted with the old memoization method. I’m sure that I can have it performing better with some tweaking. Worst comes to worst, I’ll do generational memoization and then it will outperform the previous code.

I haven’t reimplemented the reader or input boxes yet, so the code isn’t ready for commit.

Config
In addition, I’m going to scrap both configuration formats and just use the python interpreter to handle configuration. This will allow the user to use all of python to generate and manipulate his config and, if he doesn’t want to do that, the format is still really simple.

So in short, gains for you:

And the gains for me:

All in all, I hope it’s worth the wait.

— Jack Miller

---

Delays. · 233 days ago

I’ve discovered a few more bugs in the beta. And every time I look through the code, I’m disappointed. I was discussing the fact that I’ve changed virtually everything from the previous version of NRSS (written in C). Separate binaries. On disk storage. Crontab, etc.

The only thing that’s remotely the same now is the interface.

At first, I thought that I should change the name. The program is arguably totally different. To silently update and have everything break on a user’s computer is unacceptable (even though that number of users is very low).

But the more I look through the code, the more I realize that a lot of things, particularly in the configuration, I’ve brought over as essentially rewarmed legacy code from C and it’s ‘infected’ my Python.

For example, the original NRSS supported Bash prompt like style escapes. In C this makes sense, because it’s easy to strstr an escape string, print some other stuff, and jump back. But in Python, having a quadrillion strange escapes seems retarded. But since I’d already written the code to print based on the escapes, I just made it a C module and went about my business. I should’ve written a better version in Python that doesn’t have to do any processing at all. Take advantage of the fact that I’m using a dynamic language and make the config Python based (like Django and many others), so that instead of escapes, the user can compose some simple functions together and bam. More flexible, faster, pure Python, and makes both of our lives easier.

I guess I realized that only “hardcore” users would mess with the styles anyway, so might as well have them make a function instead. That does away with God forsaken ternaries and escapes.

So I dunno. I’m experience in programming enough to know that things can sound like great ideas on the surface and turn into shit when implemented. As such, I’m going to spend a little while implementing some of these ideas and seeing how far it flies by itself. How much easier and bug-free it makes my life. If not, then I’ll squash some bugs and release another beta.

— Jack Miller

---

0.4.0_beta4 · 237 days ago

As promised, a new beta release today. Quick changes:

Yet again, I hope this is the last beta before an RC.

Download here , sample confiig here , these links are also available on the download page , for future reference.

— Jack Miller

---

Google and Wikipedia. · 238 days ago

I looked up the `conary` package manager on Wikipedia for the last entry and decided to wiki NRSS for shits and grins, expected to get one of the agencies that came up last time I googled it.

I was amazed to find that someone has started a wiki page , for it and it’s the only term under NRSS. Of course, this is tempered by the fact that it’s been marked for notability concerns since March, haha, but still.

Totally amazed, I googled for NRSS, to see what institutions they were and was again floored by the fact that this page is the first hit for NRSS (outpacing even then owners of nrss.org and the City of Miami junk that I was thinking of earlier).

What a good day.

— Jack Miller

---

Older