Skip to main content

Ralsina.Me — Roberto Alsina's website

Urssus: July 28th - Cleanup

I did a fair amount of work in urssus to­day. The high­light? data­base schema mi­gra­tion.

Here is the (not re­al­ly) full list:

  • Fix­es on the in­­stal­l­er

  • Fix in im­­por­­tOPML

  • Raise the win­­dow when you click on the systray pop­up

  • Fixed sev­er­al is­­sues af­ter feed dele­­tion

  • Fixed sev­er­al is­­sues with feeds not up­­­dat­ing the UI's un­read count

  • Fixed the look of but­­tons on search­Wid­get and fil­ter­Wid­get

  • And sev­er­al more...

And the big one:

  • Im­­ple­­men­t­ed data­base schema ver­­sion­ing us­ing sqlalche­my-mi­­grate.

What does that mean? That I can change the data­base and the us­er will not no­tice any­thing.

On star­tup, uRSSus checks if you are us­ing the cor­rect schema, and up­dates your data­base ac­cord­ing­ly.

For ex­am­ple, I can now im­ple­ment man­u­al feed sort­ing just adding a "po­si­tion" col­umn to the Feed class. If I had not im­ple­ment­ed this, that would re­quire a much greater hack.

Now? I just do it, write an up­grade/­down­grade scrip­t, and that's al­l. Mi­grate is re­al­ly a very cool tool, and shows the strength of us­ing SQLAlche­my (not so much that of us­ing Elixir, be­cause they get along grudg­ing­ly ;-)

Cur­rent LOC coun­t: 1491

Cur­rent sta­tus: still fun! (and ed­u­ca­tion­al!)

Cuil, you fail!

Sure, new search en­gine Cuil serch­es "121,617,892,992 web pages". I be­lieve it... maybe.

How­ev­er, I tried a sim­ple test. My name. I know more or less where it ap­pears:

  • My blog

  • My linkedin pages

  • Sev­er­al FLOSS host­ing sites

  • A bazil­lion mail­ing list ar­chives

On google this search gives the ex­pect­ed re­sult­s:

search2

On Cuil? Not so much:

search1

In oth­er word­s, I man­aged to be skipped by Cuil com­plete­ly. All traces of my last 12 years on the In­ter­net? Not seen. That kin­da makes me not too con­fi­dent ;-)

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.