I'm concerned about the implications of these license terms:
[...] you do hereby grant Algorithmia, in its capacity as the provider of the
Services, a worldwide, non-exclusive, perpetual, irrevocable, fully paid-up and
royalty free license to use and permit others to use the Software (including
the source code if made viewable) in any manner and without restriction of any
kind or accounting to you, including, without limitation, the right to make,
have made, sell, offer for sale, use, rent, lease, import, copy, prepare
derivative works, publicly display, publicly perform, and distribute all or any
part of the Software and any modifications, derivatives and combinations
thereof and to sublicense (directly or indirectly through multiple tiers) or
transfer any and all such rights; provided, however, that if your Software
includes any FOSS, in the event of a conflict between the applicable FOSS
license terms and the license terms set forth in this paragraph, the applicable
FOSS license terms will control, but only to the extent required by the FOSS
that you use.
The terms here are necessary to provide the services that we offer via Algorithmia. We need the right to run your code and make it available. It needs to be in perpetuity so that consumers of the API can put it in production with the assurance that it will continue to be available in the future.
That being said, the quoted passage lacks the context of the rest of our terms -- namely, yes, we get the right to make your work available, but in return it's OUR obligation to share the profits with the original authors.
I'd better put my code on GitHub and double-license it with GPL and a commercial license. That way I would probably earn more bucks and keep my intellectual property.
Another point is that it seems that the concept was devised by somebody with a non-programming background, as it sounds rather weird to say that they host "an algorithm". An algorithm is a theoretical concept. You cannot provide a theoretical concept as a service. You can provide an implementation of an algorithm. So it would be more correct to say that they just run software libraries on their servers.
For many "algorithms" going to an external server to process the data would be way more costly than to just get a software library and run it locally. So for those cases the idea is not useful. For example, the quicksort thing is purely a joke.
But hosting automatically scalable software services is generally not a bad idea at all.
For example, for some proprietary advanced AI services it seems pretty reasonable. Although I am not sure who's going to just give away intellectual property like that to Algorithmia.
I doubt academics will use this service to implement algorithms. The bounties are currently at ~$100 and the time commitment for a serious implementation of any nontrivial algorithm is worth far more. Not to mention tenure committees couldn't care less.
If you implement one of the bounty algorithms you get the bounty, but you also get a payment when your algorithm is used. It's not going to make you a millionaire, but if you work in $FIELD_OF_STUDY and want to make a couple bucks in your spare time it might be worth it.
It's also likely that someone who wants to enter $FIELD_OF_STUDY might use one of these as a portfolio piece. You learn-and-implement one of these algorithms to get an introduction to the field, you get a bullet point for your resume and you make a few bucks.
Ironically, it seems the biggest opportunity here is implementation rather than theory.
You could view this as a general marketplace for micro services, which may or may not utilize complex algorithms. The stuff that's too small or too vertical to be offered by the mainstream cloud offerings.
The academic slant will become less emphasized and the value add, time savings, and platform as a service aspect will get promoted.
The first algorithm I see on the page is Dijkstra's algorithm. The wikipedia page for that algorithm includes pseduocode to implement it. I'm also seeing pretty simple examples of day to day programming tasks being marketed as algorithms. (How to read an RSS feed? Really?)
I do see value in a service that offers me algorithms in areas that are new to me, and I'm even willing to pay for that. But the current content is not well curated, and even if it was, the license terms are completely unacceptable, as mentioned in other comments.
Nevertheless, I like the broad vision here... it just isn't implemented in a way that makes sense to me.
Doesn't this go against the entire concept of open source? Isn't it unethical to sell access to algorithms if the developers of such have had any access to any public funding (quite often the case in academia)? Isn't this exactly what the push for "open access" re: journals is trying to fight against?
Access is open on Algorithmia and anybody can view the source code of any of the algorithms. The charge comes at the time of hosting it on our infrastructure so what you are paying for is compute (a part of which we donate back to the open source project).
2) Buying your homework solutions, for example, https://algorithmia.com/bounties/35 - they want a CRF implemented with Stochastic Gradient Descent for $150, i'm sure someone more familiar with one of the matlab libraries (such as UGM) could put something together, but you get the point
3) I'm not sure how this appeals to academics... There's movement for reproducible research through open sourcing code/simulations and charging for that privilege just seems wrong (even if they have the option to open source)
4) Signing up to enable the console is a bit of a pain. I'm not going to sign up unless i see some value in the service, and since many pages are just empty or bland descriptions (input x -> output y) it's hard to really get a feel if the solution is what i'm looking for
Pertaining to academics: I think this would be a wonderful tool to help students learn algorithms better. A lot of times when I'm working on a programming challenge the number of example inputs and outputs is too low for me to understand the problem. A professor could publish the algorithm closed source so that students can input their test cases to understand the problem better.
I like the idea of bringing the academia closer to the developers. Let's face it, with the wave of coding bootcamps etc. there are a lot of developers without the STEM background needed for sophisticated applications. I think that this vision can present a lot more opportunities for interesting products. It may also speed up the pipeline from the academia to the deployed application.
What incentive do i have as an academic or a developer to use this?
As a developer i'm either going to rapid fire trivial/homework-esque algorithms or build simple wrappers around already implemented complex solutions (e.g., https://algorithmia.com/algorithms/kenny/WekaCluster) for minimal time spent per solution.
As an academic there's little to no information per solution that would make me trust the implementation is going to work for my purposes. I get that this site has weka and opencv, etc on their servers so i don't have to run it on my computer...but how does that change the game exactly? Professors that don't have the interest or time to setup and install opencv usually have their students do this legwork, and instead take the role of mentor.
There's definitely draw in uploading something i've already implemented/taken the time to learn for someone else to try out... I'd like to think such pursuits would eventually lead to a large set of good work, but in reality it seems like elance for homework solutions.
founder here. Algorithm developers get to choose if they want their code open source or closed source. Close source makes black box algorithms.
For open source algorithms nothing stops users form grabbing the code and taking it off the platform - but again thats the point of open source code. The simplicity of not having to start your own servers, download dependencies or maintain the code yourself makes it worth not leaving the platform in most cases.
The purpose of this project is to create a debugger program.
This program will take as input the source code another
program, and will analyze that other program and determine
if it will run to completion, or have an error, or go into
an infinite loop.
To state that another way, given a function f and input x,
determine if f(x) will halt.
I'd personally go with BestCoders, $500 and 10 days is a pretty good deal!
Programmers will have to list their Algorithmia profiles in their CVs now.
I'm gonna start mining algorithms to post on here, then comes the massive gainz
[+] [-] logn|11 years ago|reply
(edited to add line breaks)
[+] [-] wlesieutre|11 years ago|reply
[+] [-] platypii|11 years ago|reply
That being said, the quoted passage lacks the context of the rest of our terms -- namely, yes, we get the right to make your work available, but in return it's OUR obligation to share the profits with the original authors.
(Kenny @ Algorithmia)
[+] [-] unknown|11 years ago|reply
[deleted]
[+] [-] perdunov|11 years ago|reply
Another point is that it seems that the concept was devised by somebody with a non-programming background, as it sounds rather weird to say that they host "an algorithm". An algorithm is a theoretical concept. You cannot provide a theoretical concept as a service. You can provide an implementation of an algorithm. So it would be more correct to say that they just run software libraries on their servers.
For many "algorithms" going to an external server to process the data would be way more costly than to just get a software library and run it locally. So for those cases the idea is not useful. For example, the quicksort thing is purely a joke.
But hosting automatically scalable software services is generally not a bad idea at all.
For example, for some proprietary advanced AI services it seems pretty reasonable. Although I am not sure who's going to just give away intellectual property like that to Algorithmia.
[+] [-] j2kun|11 years ago|reply
[+] [-] web007|11 years ago|reply
It's also likely that someone who wants to enter $FIELD_OF_STUDY might use one of these as a portfolio piece. You learn-and-implement one of these algorithms to get an introduction to the field, you get a bullet point for your resume and you make a few bucks.
[+] [-] WhitneyLand|11 years ago|reply
You could view this as a general marketplace for micro services, which may or may not utilize complex algorithms. The stuff that's too small or too vertical to be offered by the mainstream cloud offerings.
The academic slant will become less emphasized and the value add, time savings, and platform as a service aspect will get promoted.
[+] [-] codingdave|11 years ago|reply
I do see value in a service that offers me algorithms in areas that are new to me, and I'm even willing to pay for that. But the current content is not well curated, and even if it was, the license terms are completely unacceptable, as mentioned in other comments.
Nevertheless, I like the broad vision here... it just isn't implemented in a way that makes sense to me.
[+] [-] keithwhor|11 years ago|reply
[+] [-] doppenhe|11 years ago|reply
[+] [-] therobot24|11 years ago|reply
1) No info of what was done to solve the solution, or do i need to login to view? (e.g. https://algorithmia.com/algorithms/zskurultay/ImageSimilarit... - is this just a simple correlation or something more)
2) Buying your homework solutions, for example, https://algorithmia.com/bounties/35 - they want a CRF implemented with Stochastic Gradient Descent for $150, i'm sure someone more familiar with one of the matlab libraries (such as UGM) could put something together, but you get the point
3) I'm not sure how this appeals to academics... There's movement for reproducible research through open sourcing code/simulations and charging for that privilege just seems wrong (even if they have the option to open source)
4) Signing up to enable the console is a bit of a pain. I'm not going to sign up unless i see some value in the service, and since many pages are just empty or bland descriptions (input x -> output y) it's hard to really get a feel if the solution is what i'm looking for
[+] [-] therealwill|11 years ago|reply
[+] [-] hasancc|11 years ago|reply
[+] [-] therobot24|11 years ago|reply
As a developer i'm either going to rapid fire trivial/homework-esque algorithms or build simple wrappers around already implemented complex solutions (e.g., https://algorithmia.com/algorithms/kenny/WekaCluster) for minimal time spent per solution.
As an academic there's little to no information per solution that would make me trust the implementation is going to work for my purposes. I get that this site has weka and opencv, etc on their servers so i don't have to run it on my computer...but how does that change the game exactly? Professors that don't have the interest or time to setup and install opencv usually have their students do this legwork, and instead take the role of mentor.
There's definitely draw in uploading something i've already implemented/taken the time to learn for someone else to try out... I'd like to think such pursuits would eventually lead to a large set of good work, but in reality it seems like elance for homework solutions.
[+] [-] auzengi|11 years ago|reply
[+] [-] csears|11 years ago|reply
https://algorithmia.com/algorithms/swm8023/quicksort
*100 credits is about $0.01
[+] [-] unknown|11 years ago|reply
[deleted]
[+] [-] readerrr|11 years ago|reply
I think it is cheaper and faster to run any sort on a local machine than to send the data there and back.
[+] [-] mlmonkey|11 years ago|reply
[+] [-] therealwill|11 years ago|reply
[+] [-] doppenhe|11 years ago|reply
For open source algorithms nothing stops users form grabbing the code and taking it off the platform - but again thats the point of open source code. The simplicity of not having to start your own servers, download dependencies or maintain the code yourself makes it worth not leaving the platform in most cases.
[+] [-] ivanche|11 years ago|reply
[+] [-] wlesieutre|11 years ago|reply
[+] [-] platypii|11 years ago|reply
[+] [-] heironeous|11 years ago|reply