46 comments

[ 3.0 ms ] story [ 102 ms ] thread
TRWTF is that there is a bounty for a Traveling Salesman algorithm :)
It's only WTF if the bounty demands Polynomial time :-)
I think there was already a bounty on that one, from CMI. b^)
... and you want optimal solution and not just really-good one.
Reminds me of this old ad for a "bug finder" on getacoder, available as a PDF since the original is gone: http://blog.willbenton.com/wp-content/uploads/2008/11/bug-fi...

    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!
Peter Thiel says "Competition is for losers." IMHO Algorithmia will prove it with its market niche and originality.
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
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.

In case anyone was wondering, quicksort is already available on the marketplace for the bargain price of 1 credit* per second:

https://algorithmia.com/algorithms/swm8023/quicksort

*100 credits is about $0.01

(comment deleted)
Since the page wasn't clear, how does this work? What's to prevent someone from just downloading the code and using it forever without royalties?
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.

How do you deal with black box algorithms taking extra time to get more money/credits?
While infrastructure usage cost is measured per second, algorithm developers currently set royalty costs per API call, so there is no incentive for stalling. We also provide a breakdown of your usage by algorithm to help you identify long-running algorithms.
How did you come up with the 70/30 royalty split on api calls? That seems high to me.
How do you handle closed-source programs that are based on GPL or AGPL licenses? i.e., closed-source programs that are derived from copyleft programs that are meant to remain open-source?
Great question. We currently only allow GPL-licensed algorithms to be open source as we continue to evaluate the best way to promote the virality of OSS licenses in compliance with license. However, some licenses (like AGPL) as simply too restrictive for us to support on the Algorithmia platform at this time.
It looks like Algorithmia hosts the code and the end-user uses api calls.
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.

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).
That makes more sense. So you're a microservice platform.

Good luck. If you kill it I look forward to hearing about an acquisition by Amazon. ;)

If you're accepting Affero GPL licenses then please post the source code to Algorithmia under the Affero GPL license.

Edit: also please collect and post source code of the callers' programs too, if they're using AGPL algorithms.

You have effectively described the AGPL restrictions that explain why we do not currently accept algorithms licensed under AGPL.
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.

You get 1 credit/sec of your algorithm being used, and you need a million credits to get $100. If someone is continuously running your algorithm all day every day then you'd make about $300/month. That's fine for students and hobbyists, but not for someone who spends years devising a single algorithm worthy of widespread use, and in those cases the usual software libraries (numpy, R, etc) will implement them for free.
What incentive is there to make it run fast? The market tendency will attract useful but slow algorithms, second order effect would be to make it fast, undercutting the original authors rev stream.

This is a fantastic race to the bottom.

Too bad the dollar incentives are too low for this to actually work. You have no buyers, and the sea of open source software is your competition. The fully baked stuff, Matlab, Mathematica exists for a reason, it isn't just the algorithms.

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.
https://algorithmia.com/api_dev_terms

(edited to add line breaks)

(comment deleted)
If you use a code block for text, including line breaks is helpful
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.

(Kenny @ Algorithmia)

This just seems overly broad for your purposes. Plus you reserve the right to update the terms, yet you have an irrevocable license to your users' software.

I just don't see this being realistic for anything except thin wrappers around FOSS projects. That's great in itself, but I'm not sure why you offer the "closed source" option for projects. Based on your terms, you could turn around and open source all those since users have given you power to sub-license. Granted, I doubt you'd do that but it demonstrates how needlessly broad your terms are.

(I'm not a lawyer; this is just my speculation and not advice)

A few things that irk me:

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

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 half agree with you.

I can see why even a black box implementation of the program would help learning in some instances. However, beyond checking your solution against the 'correct' solution I don't see much value.

Pertaining to Algorithmia - many pages list little to no information (i'm ignoring the weka/opencv/already open source implementations just put into the site for shits sake) as to what is being done to compute the output. If I'm looking to learn, this is not the tool i would use.

This suggestion isn't solving any problem and is introducing new ones. How will the students pay once they spend their initial free credits, will they get a university account, or make new ones each time, who will manage that, so many problems. You certainly don't need a service that charges to do so, especially where the complete list of participants is available. A simple service that runs on university servers should be able to handle this.
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.

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.