Re: [CODE4LIB] distributed library alpha server up, feedback welcome
Another thing that differentiates you from other small libraries attempting this sort of thing is your contacting of this list. Most of the readers here are used to big-data problems, where they're trying to make sense of the storage, maintenance, and display of millions of records, so it's a bit of work to scale the mind down to a situation such as yours. True, my issues are completely different from those usually tackled here. But, still, some folks here may potentially be interested in the capabilities this circulation system offers. Also, y'all know what problems can arise when thousands upon thousands of records accumulate, and I have no idea what may go awry with this as it handles unexpected cases. So, you might have insights for me. related to indexing records in the app: Yes, as an intermediate between a title list and a solr catalog (VuFind, Kochief), I could write a quick app that stores subject, author and pub date from the MARC records and then do search with icontains queries. That would be then next biggish step. @Dave. Django is not a CMS, but a package of python libraries one would use to write a CMS. The poor use of the database would be my own fault, because I write the queries (or python code which is compiled into SQL). For instance, every blog with a headline that contains (case sensitive) Lennon is executed with Blog.objects.filter(entry__headline__contains='Lennon') read more here if you like: http://docs.djangoproject.com/en/dev/topics/db/queries/ Also, any host will support php, but only *most* of them support django at the level of the cheapest possible plan. At the second cheapest level, pretty much any established host supports django. University of Texas is switching to django for all of their internal DB stuff like accounting and payroll for reasons that are obvious to anyone who has used django.
Re: [CODE4LIB] distributed library alpha server up, feedback welcome
Interesting point about the checkout history. Not displaying it automatically is probably a good idea. I wouldn't drop that info though, or obscure it in the DB.
Re: [CODE4LIB] distributed library alpha server up, feedback welcome
@brice: good point, its on the list now @michael: University of Texas is switching to django for all of their internal DB stuff like accounting and payroll for reasons that are obvious to anyone who has used django. Huh? Django may be great, but this seems highly unlikely. I may very well not have the correct information. But (just in theory) it would be the work of an hour to map any database schema into django and then use the python shell to navigate your database instead of raw sql. HUGE improvement right there (human readable inner joins, simple 'or' relationships in queries, and on and on). as an added bonus, all the data you pull out is then immediately accessible to other python functions and libraries. I'm not saying they are writing a pretty web interface. Also, I could have been misinformed or misunderstood the UT austin CS student I heard this from.
[CODE4LIB] distributed library alpha server up, feedback welcome
All, It was at the end of last year that I came here saying I was writing an open source ILS for a distributed (book sharing) library. While I had lots of enthusiasm and time for it at the time, our development computer didn't have the capacity to run a solr based discovery front end. Even though the back end was ready for feedback (though still very alpha), I dallied in posting the IP because there was no discovery layer. In the interest of moving forward, and since a complex discovery layer may not be necessary for a while (not for 100 books), here is the IP. Please check it out and give feed back. Play around with whatever, this data isn't real. http://72.48.75.76 If this IP changes, I'll let y'all know on this thread. Soon I would like to use this system at our private alternative schoolhttp://www.clearviewsudburyschool.orgin hopes that it would facilitate folks letting us use their excellent books, since they would be lending them, not donating them. Having a database keeping track of who owns the books would give a little peace of mind. in the future, setting up a network of libraries would be easy. notes: 1. This is a distributed library, where a book enters the system through a primal loan (from owner to library), and is due back at some point. The book or item can be further lent to a regular borrower, or to another library (which inherits lending privilages). extending lending privilages must be done through the administrative back end, so it wouldn't happen accidentally. 2. The discovery layer is severely crippled because I don't want to write a indexer for our MARC records unless it becomes necessary (ie, better searching is needed but writing a VuFind driver or integrating with Kochief isn't yet feasible). All books entered in this system also have MARC records associated with them, so a solr or other front end can be added later. 3. If you'd like to try uploading a MARC record, email it to me and I'll put it up for anyone to enter through the cataloging app. 4. This is written in django. Hooray for python! 5. This is not at all perfect yet. here is my todolist so far (please add to it): when checking a book out, do not allow a due date later than the current lease on the book. subtitle, does this really need to be limited to 100 characters? create an end of day script that: sends emails to books that are due back soon sends emails to books that are overdue activate fines model and add an Fine.calcuate() method make a legit zipcode field. current one accepts 5 digits thanks for reading, Elliot
Re: [CODE4LIB] Let's go somewhere [was PHP vs. Python...]
What's wrong with the library world developing its own domain language? EVERYTHING!!! We're already in a world of pain because we have our own data formats and ways of dealing with them, all of which have basically stood idle while 30 years of advances computer science and information architecture have whizzed by us with a giant WHOOSHing sound. Having a bunch of non-experts design and implement a language that's destined from the outset to be stuck in a tiny little ghetto of the programming world is a guaranteed way to live with half- or un-supported code, no decent libraries, and yet another legacy of pain we'd have to support. I'm not picking on programming in particular. It's a dumb-ass move EVERY time a library is presented with a problem for which there are experts and decades of research literature, and it choses to ignore all of that and decide to throw a committee of librarians (or whomever else happens to be in the building at the time) at it based on the vague idea that librarians are just that much smarter (or cheaper) than everyone else (I'm looking at you, usability...) then Peter said: My hope is that some among us would just undertake these problems ourselves. Outside of the realm of the libraries and the limiting mindsets many of us work in. We've all got ideas. Fire up vi and get busy and make something happen, like a library domain-specific language. Start fresh. There is nothing wrong with that. What's wrong is how the library community goes about such things. Yes, he hit the nail square on the head. But i think his point is that a huge community of really intelligent people (specifically, not librarians, but generally, not just every isolated pobody with a hair-brain scheme) hit vi and got busy a long time ago. What do you expect to gain from the huge PIA you propose at the cost of sacrificing everything a HUGE community of skilled programmers offers? have fun. -elliot
Re: [CODE4LIB] Django
Congratulations on discovering python. It will serve you much better than php, or any other scripting language. Skipping to the punch-line, you should dive into python before you dive in django: http://diveintopython.org/ You will have a very much more easy time if you learn how to debug a script in the shell (rather than running a program endless times with different print statements), use introspection, slice lists and basic OOP. I also learned php first, inorder to add a shopping cart onto my friend's website. However, I switched to this other scripting language, python, because it could do things php cant. For instance, my first project in python involved capturing keyboard input before windows heard about it. Then I kept discovering amazing things python can do that php cant. I helped write a non-sequential optical ray tracer in python. When it needed to be faster there were several libraries for writing C code directly in a pythonic syntax. Python has hooks into everything, like optical character recognition, electronic music sequeuencing/generation, serial port i/o. Gnucash, an opensource quicken like accounting package, has python bindings. when there were no decent free unRARing programs available, I discovered python could do it easily. And if you decide you need to use the parallel vector processeors of your nvida graphic card's onboard multicore GPU, there is a package for that: PyCuda. And they all weave together seamlessly. Django could use PyCuda in a custom form validation method to determine if an archived folder of pictures you have uploaded has an image of a car with a decipherable licence plate. Anyways, python is great, and by extension I expect Django is also (just learning it myself). good luck, Elliot
Re: [CODE4LIB] Django
For instance, my first project in python involved capturing keyboard input before windows heard about it. Then I kept discovering amazing things python can do that php cant. For instance, PHP can do this fine. Was there something in particular you're thinking of that PHP can't do? Yes, It was irresponsible for me to make a blanket statement like that without having very much experience with php. I used php to make a website from data in a database. Other things beyond that seemed awkward, difficult, or impossible from what I knew. python immediately jumped out to me as a tool more suited to these tasks. I guess it was just the way I came across things, my own personal history. From my experience, it seemed php was a server side scripting language. Can you write a php script that gets key presses and doesn't pass them along to windows to process? I thought the OS would have to process the key press, pass it along to the php server and then php could process it. (pyhook) Also, how would you go about using a GPU from a graphics card in php? (python cuda in google gives many results) Has anyone written a scientific computing package along the lines of matlab in php (scipy, numpy, matplotlib)? Or a non-sequential optical raytracer? if you wanted to write a web interface for GNU cash or another well established accounting program, could you do it? (GNU cash has python bindings to its internal functions, I believe no other scripting language can access the things python can. This is the case with many programs, python bindings but nada for php). please feel free to point me to the php equivilants of pyhook, pycuda, scipy, numpy and some examples of widely used programs with php bindings. For the sophisticated hacker, most languages can be tweaked to solve almost any problem. I am sure that is true. Though, I feel many for many tasks php would require quite a bit more tweaking than python, with much less community support behind it (I mean, google comes up with fewer helpful links to the problems I sited above). Maybe Php can accomplish many things by calling external programs. Is that the case? and then are you limited to whatever commandline options the external program has? My impression, based on very little experience with php, is that if you asked in a forum about using php for advanced scientific computing, or writing music generation/sequencing software, knowledgeable folks would first ask: are you sure you want to do this in php? how about java or python? That said, php may be superior for generating websites from databases. That is why it is difficult to find help through google about php, because all the searches turn up websites generated by php, not written about it. I'll be more careful about my praising of python over other scripting languages in the future. Thanks, Elliot
[CODE4LIB] Simple Flexible ILS written in Django
Re: simple, flexible ILS for small library hello all, Just wanted to mention that I did decide to code an ILS for a book sharing library. Tweaking conventional ILS or bartering software would not accomplish what I want, and programatically the problem isn't very difficult. Modern programming frameworks make building something like this out very quick. The program currently has all the basic functionality I need including user front ends for checkin/out, adding new items from downloaded MARC records and a powerful backend for fixing anything that a user (librarian) did accidentally or shouldnt have permission to easily do. I am doing this in Django because Python is awesome. There are more defined reasons people use Django, but I will admit that I would never have done any substantial programming if I had not found python. Everytime a project comes up, python just happens to have a set of tools that go well beyond what I need from them. The code is available for anyone: http://bitbucket.org/permafacture/django-ils/ I'll gladly explain/document more if anyone cares to hear -Elliot Hallmark PS: I am now using a more clean email address. Previously I was using an address that I dont mind getting a little spammy because I was just poking around. I am the same person as offonoffoffonoff at gmail.