Skip to main content

Ralsina.Me — Roberto Alsina's website

Urssus: July 27th - Released into the wild!

I spent the day bug­fix­ing. Then, when I re­al­ized I was fix­ing stull like "when you delete a feed, the un­read count in the par­ent feed is not up­dat­ed cor­rect­ly" and "if you go to Next Un­read ar­ti­cle and there are none, make the search wrap" I de­cid­ed this thing must re­al­ly be work­ing right, since both things failed me in at least one sim­i­lar pro­gram that claims to be pro­duc­tion-ready (not akre­ga­tor! ;-) So I am re­leas­ing it as 0.1.0

And I am do­ing it for re­al:

  • PyPi page for easy_in­stall

  • Work­ing in­­staller! (Not quite work­ing for win­­dows, though)

  • Most known bugs fixed (at least 15 to­­day)

  • Up­­load­­ed to Arch's AUR, so we Arch users can get it pain­­less­­ly ;-)

It has been a nice ex­per­i­men­t, and I will try to write some­thing co­her­ent to­mor­row about lessons learned and such as we reach my self­-im­posed two week dead­line for Akre­ga­tor fea­ture par­i­ty.

Urssus: July 25th (way too late) - new features

Last post for the day, and prob­a­bly un­til mon­day.

  • Fin­ished ex­pi­ra­­tion im­­ple­­men­­ta­­tion (and it works just fine)

  • Fixed a tough bug and now the back­­­ground fetch­er up­­­dates the UI cor­rec­t­­ly

  • Made the tem­­plate lo­­ca­­tion code work cor­rec­t­­ly be­­fore and af­ter in­­stal­la­­tion (thanks to help from PyAr mail­ing list)

  • And the pret­­ty one: cus­­tom CSS file used for all tem­­plates. The de­­fault we­bkit (and kht­m­l, and fire­­fox) CSS is hor­rid. This one is just not pret­­ty, but still an im­prove­­men­t.

And of course, a screen­shot. Akre­ga­tor on the left, uRSSus on the right:

urssus9

Urssus: July 25th (later) - uRSSus on windows

urssus8

So you need to in­stall SQLAlche­my 0.4.6 and Elixir 0.5.2 and python and pyqt and paver, and what­ev­er man­u­al­ly right now... it does work.

I had to change about 10 lines, specif­i­cal­ly stuff about tem­po­rary files.

On Lin­ux, I cre­ate a NamedTem­po­rary­File, write to it, then read it from an­oth­er place of the code. As long as I keep a han­dle to the ob­ject that's ok.

On Win­dows, it seems I can't read the file be­cause it's locked by the writer, but if I close it it's delet­ed, so I switched­to mk­stemp and that's it.

Al­so, it does­n't run well from in­side IDLE for some rea­son.

Urssus: July 25th - approaching parity

My stat­ed goal of Akre­ga­tor fea­ture par­i­ty is look­ing even bet­ter. With screen­shot!

urssus7

If you did­n't read (or care about) last night's up­dates to yes­ter­day's post, here they are:

  • Im­­ple­­men­t­ed "Mark posts as read on ar­ri­val for this feed"

  • Im­­ple­­men­t­ed cus­­tomup­­date in­­ter­­vals for feeds

  • Fixed ar­ti­­cle fil­ter­ing

  • Im­­ple­­men­t­ed fil­ter­ing by ar­ti­­cle sta­­tus

  • Im­­ple­­men­t­ed fold­er-as-feed (not per­fec­t)

  • Ex­­port as OPML

And to­day I did the­se:

  • Switched from Mako to Ten­jin (which I can just bundle)

  • Im­­ple­­men­t­ed "Com­bined View" mode (y­ou can see it in the screen­shot above)

  • Im­­ple­­men­t­ed "Im­­port Tech­no­rati top 10"

  • Or­­ga­nized the code cor­rec­t­­ly

  • Wrote a Paver script so it can be in­­stalled nice­­ly (some­­day)

  • Re­­moved all gen­er­at­ed files from the re­po (now you gen­er­ate them us­ing paver and/or set­up.py)

So, on the TO­DO we have:

  • Fav­i­­cons

  • Im­­ple­­ment app pre­f­er­ences di­a­log

  • Bug­­fix­es

  • Pag­i­­na­­tion for com­bined­View (so you don't have a page with 90000 posts in it which takes a month to load)

  • Akre­­ga­­tor DB im­­port scrip­t, so I can com­­pare per­­for­­mances rea­­son­ably.

And still fun!

Cur­rent LOC coun­t: 1295

Urssus: July 24th

When I start­ed this project I wrote:

I in­tend to keep work­ing like this for a cou­ple of week­s, and see how far I can get in fea­ture par­i­ty to akre­ga­tor.

No, I don't ex­pect to reach fea­ture par­i­ty, I on­ly want to strive for it. SInce I lack the fo­cu­sand/or en­er­gy for a mul­ti year com­mit­ment it re­quires to write the av­er­age free soft­ware, I want to see how far a sprint gets me.

To my sur­prise, on­ly 9 days in­to the pro­jec­t, fea­ture par­i­ty is at hand.

What's not done?

  • Some feed prop­er­ties (cus­­tom ar­chiv­ing mod­­es, mark as read on ar­ri­val) (Up­­date: "mark as read­­on ar­ri­val" im­­ple­­men­t­ed at 22:40)

  • Fix ar­ti­­cle fil­ter­ing (it's not quite bro­ken, but in­­ter­acts bad­­ly with many things) (Up­­date: done as of 19:20)

  • Im­­ple­­ment app pre­f­er­ences di­a­log

  • Fil­ter­ing by ar­ti­­cle sta­­tus (Up­­date: im­­ple­­men­t­ed as of 19:01)

  • Fold­er-as-feed (Up­­date: done, as of 22:20, even if not re­al­­ly ef­­fi­­cien­t­­ly)

  • Ex­­port as OPML (Up­­date: just im­­ple­­men­t­ed it :-)

  • Fav­i­­cons

And some things in the back­end, which are not prop­er fea­tures.

What have I done to­day?

  • New ar­ti­­cles no­ti­­fi­­ca­­tion via systray

  • Cus­­tom up­­­date in­­ter­­vals per-feed

  • Made Feed.un­read­­­Coun­t() fast enough

  • Ar­ti­­cle sort­ing (not as triv­ial as it sound­s)

  • Fixed a lot of bugs (none of which crashed uRSSus, take that Akre­­ga­­tor! ;-)

And still I have writ­ten on­ly 1066 lines of code, ac­cord­ing to sloc­coun­t.

Up­date: 1127 lines with the ex­tra fea­tures marked above as "up­date"


Contents © 2000-2023 Roberto Alsina