We secretly agree and aren't sure why it's faster to do two queries, but it measurably is. We're going to try some of the suggestions littered in this conversation and will report back, this time with some EXPLAIN output. We appreciate the suggestions and theories.
We shared the mistake so others don't accidentally make the same assumption; I'm sure a few people either learned it for the first time or appreciated the reminder. Rest easy this never made it to prod.
I wrote up my recent experience optimizing Postgres text search on a database with a few million records without relying on a new service like Elastic Search.
Taking the author's post at face value, I think the solution should be:
Upwork action item: Robin needs to add a new payment instrument to cover the $12000 debt. Freeze Robin's account until then. Any fraud being perpetrated requires Robins involvement, so lean in there.
Upwork action item: tell author that if author hires a lawyer they'll share information necessary for author to pursue a case against Robin.
Author action item: have a lawyer take a look at case vs Upwork and Robin as joint defendants. Make the defendants sort it out.
Kind of am aside, but if Upwork takes zero responsibility and provides no value for the manual payments, seems like all manually tracked work ought to be billed directly between freelancer and buyer. They won't even pursue Robin, the holder of the wrong credit card it seems even when Upwork knows who Robin is.
This makes sense, and I think you've taken the correct route. I look forward to trying this in one of my projects and comparing to my current postgres-only backed search strategy. For my use case losing the index between restarts isn't a deal breaker, so hopefully I'll have some useful feedback.
I think it's a strong move to give away so many tools for free and consolidate their income to align so closely with the charity's goals, and while time will tell, I think charities will find this works well for them.
Anecdotally yes it's a problem if two classes (button choices) are similar, resulting in two "top answers" for a given task. This seems most common for "yes/no" task types where there are only two options, and distinguishing between them is the hard part.
I haven't dug into the data on this across the platform but you've given me the idea to go see if I can find evidence of this, and see if I can improve somehow. There's only low hundreds of projects, so I might be able to find some that have this problem.
Sounds sweet. I bet a lot of companies relying on mturk built this for themselves and then sell a higher value service with better margins. You could build something right in the middle.
I know Stanford's research teams all use a common interface to mturk that keeps profiles of turkers on their side so they know who to solicit for upcoming surveys, conduct longitudinal studies, etc. I've always wondered why more universities didn't follow suit.
I built a side project called cogmint based on the insight that simple scoring and ranking of workers was valuable. I ended up building my own worker interface instead of using mturk because it wasn't much additional effort on top of the scoring logic I was building anyway. Perhaps other serious companies came to the same conclusion I did with my hobby project.
I created Cogmint.com ("cognition minting") to solve this problem for myself.
You can submit known correct answers for questions, and those questions are then used as ground truth to score worker accuracy. Workers are then scored on their similarity to known correct answers and other workers that have accurately answered questions. It works surprisingly well for how simple it is. It's been a fun challenge to create simple methods of scoring similarity across different task types.
It's a side project, so don't rely on it for mission critical things, but I rely on it for some production tasks, so it's stable.
It currently supports classification (choose from a set of possible answers) and has beta support for bounding box task types. String input task types are coming very soon.
I'd love to see if it can help you out, I'll waive the fees: I'm not in it for the money I just like making things useful and reliable. Reach out and say hi!
I agree that a drone for cleaning gutters would be incredibly hard due to the torque necessary. Less of a project, but a drone that picks up the Roomba Looj and can place in the gutter would be fun but not that interesting of a challenge.
Drone that can clean your gutters while avoiding obstacles like trees and chimneys. This might be very hard, but would be a challenge.
A series of smart heating/AC vents that open/close based on whether people are in the room. Make them solar powered and "sleep" to save power. I think this might be possible without a microcontroller, but maybe easiest with a very energy efficient one.
Window that opens when the outside temperature is closer to your target temp than the inside temp. E.g. if your home is set to cool but it's cooler outside, open the window. Need a rain sensor.
A very large Roomba. Traditional roombas are small, and not super effective as a result. Tolerating a bigger one might be work it. Get one of those battery powered vacuums that work off of power tool battery packs, perhaps.
This is a hysterical application of technology, thanks for sharing. A small part of me worries that some cubicle company will add it as a feature to individual cubicles in offices. We already have aggressive proximity sensors controlling lights and the phone booths, so perhaps this is next!
Several fintech companies use it to power core logic, with or without phoenix, so it's used for general purpose computing where speed, resiliency, and parallel execution are important. I've seen hints that people are using it to run crypto trading bots, but idk how common that really is.
I think a few companies use Elixir to power their web crawling/scraping tools. This makes intuitive sense as a good candidate for the process supervisor and parallel work architecture OTP encourages.
Nerves (embeddable Elixir) has come a long way. I switched to Nerves for some Raspberry Pi projects and the amount of time I waste dealing with hardware/config has gone to nearly zero. I am a hardware novice and was able to setup flashing firmware over-the-air updates to the Pi with very little effort. I'm sure the companies that use Nerves in production have more to say about it.
I'm not very tuned into the updates to Scenic, a project for display/UI on embedded screens, but it looks like they've hit some big release/stability milestones.
Phoenix is the way to go for web interfaces, and is an excellent toolset, so alternatives haven't been demanded. For more lightweight http people usually reach for Plug, a key building block of Phoenix, if you won't need the full bird.
Wow this site is fast. Well done. FWIW you can use AdSense/ad tags within LiveView, if you're using that. There's an attribute you need to set - Google it - I can't recall atm, but I got it working just fine on one of my sites to refresh ads and also take advantage of LiveViews speed for user engagement.
Elixir is a fantastic language. I wrote an app several years ago and haven't had to update or do any maintenance on it since and it has happily served several million requests a month without errors. Actually the only reason I've touched it is to upgrade the Heroku stack it is on. The best part is I actually had a lot of fun writing the app and even writing the docs. So much of my preference for Elixir is in the developer experience and how quickly I can ship changes with high confidence; all of the amazing performance and distributed aspects I may never need for my projects.