Is there interest in starting a new SourceForge Project for Otto?
This is a great tool and works better then anything else I have found. However, it is getting stale and lacking some features that I would like to have. There are others out there who have already written some great patch that should be added to the package.
What do you guys think?
good idea - from a user standpoint. unfortunately I won't be able to contribute any code but have ideas on added functionality!
Count me in. I don't have huge amounts of spare time, but then I suppose neither does anyone else.
I use otto pretty much every day, and there are lots of things that I would personally like to see added to it.
Are we absolutely certain that the original author (ferguson?) and the other developers are not going to continue?
I'd definately be interested. I don't have much time to devote to coding but I'd gladly offer the changes I've already made and info on the changes I did for v1.0.
I just added a command to the otto command line interface, which is the same as "pick 3 random songs from this section" feature from web. At the moment you'll have to know the id of the album or artist to use it, or just pick random from the entire collection. It's also possible to select the number of items to randomize. These changes could easily be added to the web as well, as I've tried to keep all old functionality intact even though I made a copy of the pick3 function.
The function can also return the filenames of the songs randomized instead of adding them to the queue, which is the reason that I added the functionality in the first place.
While coding this I think I've at last got a grip on how Otto 2.0 works, which I've never really bothered to look at before. Doing changes shouldn't be too hard, the code seems very easy to extend.
Bah. I can write perl, but can't reliably work a discussion forum. See my mis-threaded reply above.
I have sent a message to the listed set of developers including Jon to see what they say about continuing development of Otto.
I probably should have posted a note about this, but I did the same thing from the otto home page.
Oh well, no harm done.
Note to self: there's no I in team. But there is one in pie. Meat pie.
Sorry if you haven't watched Shaun of the Dead.
I received this from Neil, one of the listed developers of the otto project
neil verplank wrote:
Before you go and do this, you should know that I've been working for quite a while on a pretty major re-write of otto, with a new DB architecture, swappable interfaces, and about a billion other changes. Because work stopped on the original, I renamed it Calliope, and there are some major architecture changes, but it's otto more or less.
To see what I've been up to, check out:
I know for a fact that what's at this link isn't quite as current as my code, and will try and update that in the next day or two and let you know, but it's reasonably close.
I've been planning on releasing this on sourceforge, but the code isn't quite finished (for a 1.0 release) and it lacks an installer, which I'd really wanted. I'm absolutely willing to discuss throw this open (to participation, it is of course GPL), either as otto2.0, or as a true fork. There's not a true changelog, as I've made so many it didn't make any sense any more, but I've been planning on some kind of feature matrix as part of a release, and could work on this if it helps everyone make a decision.
Let me know what you think, or what kind of response you get from the list. If you're interested in throwing in with me, that would be great as well. Of course forwarding this to the list is fine.
If y'all decide to stick with otto as is, or move forward with that code base, let me know, as I'll go forward with releasing Calliope as Calliope.
I've updated the tarball to be current with the state of my development. The interface (at the link above) is slightly behind, but pretty close. To get a sense of what I've done, install (please keep notes on problems you have during this process, both for documentation, and because I'd like to produce a real installer script), then review the following:
1) the conf file for options
2) log in as admin:admin to see all admin features now available (features vary based on user permission level)
3) the interface itself of course
4) the TODO list in ~/dev/TODO for a list of goals I have for releasing this.
It's worth noting that I've done a great deal of work on the loader and the command line interface, so your mileage may vary when loading albums - there's still some work to be done, but calliope does some very cool things in regards to cleaning up aritst data, creating relationships between multiple artists and a single album/song, etc.
Calliope is at this point fork of Otto, it's a different DB, and a major code rewrite (about twice the code in otto 2.0), but if you know Otto, it should look reasonably familiar on the inside. Lots of additional comments and documentation as well.
So, those who are interested take a look at Calliope, and let's decide if we want to go forward with it as the new codebase. At which point we can share work, or I can easily go whole hog and release it on sourceforge as a beta, and we can use CVS is there are enough of us working on it.
Ok, I don't know if anyone else has tried this yet, but I tried to install with the install script, and ran into some problems.
1. Died when it couldn't create the log files - it tried to create files in /usr/local/calliope/var/log/var/log so I took out the extra var/log and got past that.
2. Didn't recognize mysql 4.x.x as >= 3.x.x and quit, so I changed it to look from Distro 4 instead to get past this
3. I am installing on Slackware, and don't have /etc/init.d/httpd although I am running apache. I do have /etc/rc.d/rc.httpd, but `rc.httpd status` doesn't return what you're looking for (just usage instructions).
At this point, it says I don't have the optional modules
I tried letting it install them for me, and it sort of sits there endlessly (or at least until I was tired of waiting).
I did it again, and this time said "no" to letting it installed, and it made it to line 608 which was just "die". Not sure if it actually installed anything or what it did, but that's all of the time I have for now.
Well, now I feel stupid as I realize that the installer isn't done, but anyway, I guess next time I'll try reading the install instructions better (or at all). Tomorrow maybe...
yes - oops! I should have made that clearer I suspect - the installer is something I *want* to work, but doesn't yet. For those who haven't, don't bother trying, it doesn't work. There's still a good bit of "dross" in the tarball that needs to be finished, or culled out.
Also, I talked with Jon Ferguson back around the time he released Otto 2.0, and he made it fairly clear to me that even if he did do more work, that he did not have a lot of interest in doing a larger project involving more people. He was willing to hear ideas, but didn't seem to want any help. He developed Otto 2.0 pretty much in the dark and just updated it one day.
Kudos to Jon on the work done, and putting the code out on sourceforge, but if there's interest in sharing the workload going foward, I think the best route would be to fork Otto, and share management of the new project so development continues on an ongoing basis. Also, if Calliope is the new code base, it's so different from Otto that it presumably would not make sense to have Jon as project manager (he likely wouldn't know what was going on internally), and the Calliope DB structure is incompatible with Otto.
Finally, if some number of us decide to work on this together, lets look at the both the Calliope interface, and the TODO list in ~/dev/TODO, and split the work into a) needs to be done to get everything working for initial release; and b) new features we'd like to see in next revs., so we can build some kind of development tree goal thang.
Count me in. I'm all excited now!
Can we decide on some method of communication better than this, first of all?
A mailing list would be ideal, so we don't have to keep switching from mail to web clients.
I find it very annoying.
I'm sure SF does this, if anyone knows how to do it. Or I could set up a mailing list.
neil sums it up pretty well.
despite all signs to the contrary, otto is not a dead project. it's just resting.
where as i like the idea of forming a team of developers to move otto forward, i'm afraid it would be a bad idea for me to coordinate such an effort due to the lack of time i would be able to devote to it currently.
as such i think if you would like to join up with neil and help him with calliope, that would be the best place to direct you efforts. i'm quite impressed with what neil has done, and i think he would do a good job managing multiple developers.
if you still want to contribute to otto, that's also fine with me. i do read everyone's email and forum postings and posted patches. it will all have an effect on the next version of otto, whenever that may be. i'm very glad people like and use otto, and your kind words are very encouraging to me. it just may be a while before i spin up another version of otto.
Great to hear from you Jon and I completely understand about not having time to coordinate a number of develeopers. It's very time consuming and we all have a lot to do.
I really love otto, I've been using it continuously since I found it many years ago and I plan on continue using it for a long time. You've done a fantastic job on it.
As for the Calliope project, I will definately follow the development and come with helpful suggestions and probably the odd patch but I don't think I will be able to sign up as a developer du to time constraints. Right now I'm ridiculously short on time and I will probably be for some time.
I also see some very nice features in Calliope that I've been wanting for some time so I'll probably install it and try it out.
Thanks for weighing in! Steve, there you have it - given the work I've already done, I'll definitely fork Calliope as a new thing, rather than let it languish. Jon, correct me if I'm wrong, but when you went from Otto 1 to Otto 2, you improved the codebase, but didn't add many if any features. So I'm assuming that you'll keep otto reasonably close to what it does now (a streaming jukebox, if that's a fair assessment).
I see Calliope as a total management system, allowing multiple users to have a single data source for content, and allowing local users (at least) the same facilities they'd have on their own machine, e.g. burning, ipod synching, etc. Note that these features only work for certain user levels, as does download for instance. So forking doesn't seem such a bad idea, I think we're headed in different directions.
So developers, the choice for you is help keep Otto keeping on, or move in a different direction with Calliope. I certainly welcome the assistance, and think we can reasonably work on some differnet and interesting things simultaneously. Moreover, getting the code onto Sourceforge would help everyone be able to contribute. So, I'll do that no later than end of next week, and see who wants to join the fray.
I'll post this note to the public forum as well, and then those who want to can hike on over to the as yet hypothetical developer forum at Calliope.
Impending good news - I've succesfully created a project at sourceforge. I'll have to set it up (including uploading some files i suspect :-), but we should have a form place to talk about calliope no later than this time next week...
And again, anyone who installs calliope, let me know what you find, what's problematic, missing from the instructions, etc. etc. so I can keep track of what yet needs to be done.
First, for Neil (and Jon Ferguson): This is what I consider to be the holy grail of web-controlled jukeboxes. Since discovering Otto, and then Neil's modifications, have made getting this working a major project that has consumed all of my precious little free time.
Unfortunately, the learning curve is steep. I've been playing with Calliope on my Gentoo installation, and I've gotten it to the point where I can do /usr/local/calliope/bin/calliope load, and it'll do that without errors.
My only other problem seems to be in the area of mod_perl. Every time I start apache I get errors that read something like "Can't locate mod_perl.pm in @INC...", but somehow I get the feeling that's just Gentoo being special.
This bothers me because up until now I've been really happy with Gentoo. I like Portage, and I like the idea of building everything from scratch and only building what you need. I'd hate to have to drop Gentoo in favor of another distro in order to get Calliope working.
Has anybody else had any luck with getting Calliope/Otto working on Gentoo? In particular, getting mod_perl to behave? Which apache were you using? Which version of mod_perl? (Did you pray during the process? If so, to which deity?)
I had a fair bit of difficulty with mod perl myself. FWIW, I think it's easier to verify that modperl works first before getting it to work with calliope, or you're fighting two things at once.
I was able to get calliope to work with modperl 1.x, and with 2.0. Right now, I'm using Apache 2.x and modperl 2.0. There are differences in setting up calliope with modperl 1 versus modperl 2. Specifically, check out ~/etc/http.conf.example, and there are quite a few comments on using modperl 1 versus 2. I believe that you can simply comment out the 3 lines:
that are specific to modperl 2.0 and it will work on 1.0, but I wont swear to it. As it says in the comments, I had to load some additional perl modules to get modperl 2.0 to work properly.
Also, I've had some problems when using modperl that cause calliope / apache / mysql to not behave properly after some amount of time (hours? days?). I think it has to do with a hanging DB request, but haven't sussed that out yet. It shouldn't prevent Calliope from working with modperl absolutely, you may however see Apache errors at some point of the form "db has gone away."
I might be being a bit dumb here, but where is the tarball? I've just got around to finding a couple of hours to familiarise myself with calliope and can't find the bugger. The (very pretty) example site doesn't seem to have it and neither does the sourceforge "kalliope" project page.
oopsy. One of Calliope's features is the ability to switch interfaces. Someone switched from calliope, which is complete, to Otto, which is the older interface and doesn't have all the menu options, including the admin option that would allow you to switch back to calliope, and the download menu option :-(
At any rate, I've switched the preferences back, so FWIW you could look at the interface again, but for the record, here's the download:
Calliope is now officially a Sourceforge project (woo hoo!). If you're interested in working on Calliope (vs. Otto), please move all discussion either to the mailing list (preferred), or the developer forum at:
Yes, projects/calliope was taken, alas. The mailing list for developers is under "lists" at the above link. The project home page remains on my server at:
Note that the version of calliope actually running on my server is slightly out of date, and I'll try to correct that shortly.
In addition to finding general problems, bugs, and what-not, major and minor tasks prior to release are identified in the TODO doc, found both in the tarball under the "dev" directory, and in the docs section of the kalliope project (the latter after sourceforge posts it).
Significantly, getting Ices to work and getting a functioning Installer are major subtasks someone could take on wholesale.
Thanks for your interest, and sign up on the developer mailing list to continue this conversation.
A quick note to let everyone know that
1) all posts are now going over to projects/kalliope
2) new version posted there with an installer
3) the above link to calliope.tar.gz is no longer valid -
get the code from sourceforge.