This leads us to those who don't have the capabilities to do the task: They will risk asking for the impossible (the syllable counting task[1]) or accepting the unacceptable (the ZIP-code form solution includes a PHP script with a gaping security hole).
1: So this task has been requested by 'bevan' who appears to be the founder of the site, and in a comment dumbed down to only having to work for the given set of tests - the given solution will be little better than just manually counting the syllables.
Basically cases where the description bit is already done by someone else and a reference implementation to test against already exists. In fact I have just such a task that I've been putting off (I have a paper and a matlab implementation, and really want a python/numpy version), that I might throw up on the site to see what happens.
Eg. by allowing comments on answers, the glaring security hold in the ZIP-code form answer could be raised, addressed, and fixed.
Allow moderators to say 'this task is too big/the bounty is too small', while simultaneously limiting the maximum bounty to something small.
IMO, the 'right' solution is for libraries to be more easily broken in to pieces while simultaneously easier to use together so that just the form part of the 'big ZIP-code PHP library' could be used in this case, but barring that, this is a neat attempt at code-by-documentation, given that most of the problems I saw were easier than homework problems.
But people are on SO out of a desire to help other people, and SO specifically encourages general problems - so saying "that's not possible" is the right answer to the syllables problem instead of some messy thrown together code that doesn't actually work.
By introducing the financial reward system, this goes out the window. I get nothing out of commenting on bounties, explaining why answers are wrong or requests impossible because I'm not contributing to a community of being helpful to future people running into a problem.
> IMO, the 'right' solution is for libraries to be more easily broken in to pieces while simultaneously easier to use together
Sounds good, but that's not how software development works. The cognitive skills required to break down a problem into such pieces is significantly higher that those required to write code that performs the task.
By the way, if there's a security hole in the accepted solution to https://bountify.co/B, you should post a better one or even just mention it- I might tip you for it! :)
The problem is this PHP:
<?php echo @file_get_contents($_GET['url']);?>
It does nothing to validate the request, and will trivially proxy any request to not just any webpage in the world, but any file readable to your webserver.
What you want is something like:
<?php
$zip = $_GET['zip'];
if (preg_match("/^(^\d{5}$)|(^\d{5}-\d{4}$)$/", $zip)) {
echo @file_get_contents("http://www.webservicex.net/uszip.asmx/GetInfoByZIP?USZip=".$zip);
}
?>
Not tested, but that's the general idea.I believe that the "pay what you promised, after you've gotten it" model works best.
Sounds like logo contests: spend your time on work that you might not get paid for. And given mseebach's[1] "accepting the unacceptable" - people without the capability to write these small code tasks themselves are not qualified to evaluate proper solutions.
tl;dr: post code you already wrote and then get a coffee with the proceeds.
I got two good answers pretty quickly, which made it a bit hard to choose. I selected the one that used the most standard libs, instead of the first answer. I sent the first responder a tip as thanks.
Some thoughts now that I've used it: - Got two good answers quickly - loved that part. Saved me a lot of time. I'm going to use it again immediately for a the same thing in PHP (https://bountify.co/H).
- How about the ability to copy/clone a bounty so I don't have to rewrite the whole thing? Just a thought.
- I felt as though the price you add to tipping is a bit excessive. It was $1 per increase ( $.99 for a $1 tip, $1.99 for a $5 tip, $2.99 for a $10 tip).
I've also had a hard time selecting a winning solution when several correct ones are posted. I'd like to avoid duplication of effort by solution providers when possible, but finding a way to do that is tricky (I plan to at least implement a 'view count' to give would-be solution providers an idea of how many others have seen the problem).
Thanks for the feedback regarding the tip fees. I'm considering reducing them, as I want to encourage tipping as much as possible (especially considering that tips are often awarded to solutions which may be as good as the winning solution, and I want to encourage rewarding those efforts so that good solution providers stay around).
Cheers!
- Filter open bounties (or have a sort option and default to open bounties at the top of the list; not much use in seeing expired bounties)
- Payment should not occur until an answer is accepted, and you should be able to do this via Stripe without much additional effort. Not everyone values or appreciates being forced into a charitable donation when they are attempting to spend money to solve a problem.
- The fee structure is quite exorbitant. Charging an extra $22.44 on top of a $250.00 bounty? The Stripe fee is only $7.55. Same for the $100.00 bounty--Stripe fee of $3.20, and an upcharge of $11.79. That's ridiculous.
1) I'll add a filter for open bounties.
2) It would be nice if payment could occur after a solution is accepted, but in practice that presents some thorny issues. Notably, how would I ensure the bounty creator pays after they receive a working solution?
3) What would you suggest as a more appropriate fee schedule? Considering expenses, of course :)
2) Accept all CC info at time of posting a bounty and create a Stripe customer record. Charge automatically when the user accepts an answer--acceptance is the delayed "confirm payment" step, so to speak. Create a system whereby the deadline for bounties applies to both parties--poster must accept an answer within 7 days, unless there are no answers or something. Figure out how to handle bad answers, etc. Or make it so they will be charged automatically in 7 days unless no answer is provided, and the bounty will be applied equally to all the responders or something. Get creative. The forced charity thing really shouldn't be happening. Give the money to the people who take the time to answer questions, leaving it up to the poster to ensure they award the full bounty to the right person. Keep a reputation system on a post:accept ratio or something so responders can get an idea of whether they're likely to be awarded a bounty from a given poster or not.
3. That's a bit tougher one to answer from the outside. I can't figure out how expenses could be as high as the upcharge. I completely understand wanting to make money off the service, and think you absolutely should. But, upwards of 300% is a bit much. The reason this sticks out so much is that people will accept fees, but when the fees get excessively higher at different steps in a way that is not an equal percentage across all steps, it becomes obvious that there is something wrong. I think this is highly likely to be noticed among the audience using this service. So come up with a flat rate that applies across the board--say, 10%. Enough to cover Stripe's fee & have a bit extra left over. You should be making money off building up a vibrant service, not off gouging your users.
For this it would be useful to be able to define unit tests and set execution time limits.
Done well, this is a kind of part solution to problem 6 "Bring Back Moore's Law" of Paul Graham's Frighteningly Ambitious Startup Ideas: http://paulgraham.com/ambitious.html
Also, is there a way to see only unsolved bounties? Seems like a main feature to me for programmers.
And of those people, are they the kind of people who would find a site like this one useful? That is, are you saying that in your opinion, this site will suffer noticeable financial consequences of having used Bootstrap and not sufficiently disguised it? And that that lost revenue would offset the costs of changing the design?
I'm not sure that I can agree with you if that's the point you're trying to make.
All snarkyness aside, it's interesting how our values shifted from consistency to variety in the last few years.
On the web, which is a more "open" environment (ie look and feel not set by a single company), there's perceived value in uniqueness and originality in design.
That's not to say I agree with the sentiment (I don't mind the generic Bootstrap look either) but I think that's the difference.
We're not this far yet though, so we better hurry! :)
PS - The link to the MSF charity is wrong.
Yes, I think the money-to-charity policy will dissuade some users from posting higher bounty amounts at first. My goal is to show that certain kinds of tasks can consistently get quality solutions on Bountify. So far I've been pleased with the speed and quality of solutions and the tone that's been set by the first users.
Feel free to share what types of tasks you'd consider posting. Thanks again for the feedback!
-Looking up tags is painfully slow. -I agree to the Terms & conditions - missed it the first time through, lost my CC info. Kind of annoying. - Posting the bounty, from the time I clicked the Post Bounty button until the page refreshed, is also slow. Maybe a spinner at least next to the button so I know it's working?
Sorry about the latency, I'll work on that. I'll also address the Terms and Conditions issue (by most likely removing it entirely, since there is a redundant notice on signup). Please let me know if you have any other suggestions or feedback, I really appreciate it.
The easy fix is not to actually charge people when they place a bounty, but instead get a preauthorization; then you can charge them at the time the bounty is actually paid. Depending on how PayPal's API works, you might be able to do this without having the money actually pass through your account.
This would also give you the option of not charging them at all if their problem wasn't solved, but presumably you don't want to do that since it opens the system to abuse.
I should say that I will not be participating in this in future unless I am assured that my solution has equal chances of acceptance.
I posted my solution few minutes after the first solution was posted . ( my approach was completely different on handling the file uploading) later after some time I was shocked to see that the first answer was edited and was following the approach I had followed.
I am not saying that code was copied. what I am saying is that it's not good to allow other participants to see the different solutions . Also I would suggest that you maintain version of every answer. ( so that you can track the edits ) ..
My thoughts: 1. The bootstrap theme is fine imo, unlike what others are saying. I'm assuming this is an MVP to see if you can get traction, and in this case the functionality is more important than the aesthetics. You'll obviously want to change this later on though.
2. Let me filter open bounties, or at least move those to the top of the list.
3. Your tag filters don't look like they are working properly. If I click 'javascript' for instance, I only get one record.
4. Can we set custom time limits? For small coding tasks, I don't want to wait a week to have them done.
2. That feature is forthcoming 3. Thanks for pointing that out, I'll fix that. 4. It started that way, but then I realized the time limit wouldn't have much impact on when the bounty actually gets answered, because solution providers compete to answer as soon as possible. So in the interest of simplicity I decided to make it a week. I'll consider changing it back. In practice, most tasks have been solved well before the deadline.
I think a higher minimum with a 50% charitable guarantee might work better. $20 is probably enough to keep quality high (on the supply side) and definitely enough to attract skilled coders.
Also like others said, I don't care about seeing expired bounties.
I can see it turning to the point where the answers will degrade in quality as more and more people join the site in an attempt to make money. (Similar to Yahoo answers.)
Compare to Stack Overflow, where people are answering questions and solving problems for arbitrary points. (Mainly to help their fellow man.)
I think that today, it communicates that you don't have too much appreciation for the final user experience, just want to test a concept.
- The team is primarily technical with no design experience
- Followers of "Release Early and Iterate"
- Minimalism in design to focus on content
It is unfair to judge a book by its cover. Twitter bootstrap is godsend for many to create a website or webapp.
Try it out, see if you like it. Bootstrap is good enough - it's clean and straightforward - a totally reasonable "default" for the web. It says to me that the developer is savvy enough to know that Bootstrap exists, is perfectly fine for a V1 product, and that if we the users show the idea is good, they'll have plenty of money to put into a super-original design later on.