Delays. · Apr 14, 11:51 PM

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

---

Commenting is closed for this article.