3 ms·
I have an app for hundreds public libraries. Such libraries have online cataloges where you can search books, or renew books you have lend, and my app connects
by benibela 10y ago
I have an app for hundreds public libraries. Such libraries have online cataloges where you can search books, or renew books you have lend, and my app connects to their webpages to show all catalogs in a common interface. Or do things the catalogs do not support, like automatically renewing every due book: http://www.videlibri.de/index_en.html http://www.videlibri.de/index_en.html
It takes an awful amount of time to maintain, since there are no APIs and I have to parse the webpages. Every other week/month some webpage changes and I need to adjust it.
It has been going on for years, and I need to update a lot of internal things, too. It is all in German, I need to work on an English translation. Often libraries have multiple copies of the same book. Then you want to search the book, select one copy and order that copy. The current version only stores these copies as strings, because each book is a list of string->string pairs, which looks bad when the user is show the string "Copy 1, library building 1, 123456, orderable". (i.e. an index, building where you find it, the signature of, and status). I just made a new version that would show that all such copies in a 4-column table, but it needs more testing before a release. Each library has different columns, and too many columns might not fit on the screen.
And I made my own programming language to minimize the amount of time spend on adjusting the webpage parsing:
http://www.videlibri.de/xidel.html http://www.videlibri.de/xidel.html
It was just for small webpages, so speed did not matter and its evaluation just interprets the syntax tree, but now I made it XQuery compatible. Someone wrote a raytracer in XQuery, and when I run that in my implementation, it runs quite slowly. I probably need to build a byte-code for it.