944 karma · joined June 14, 2009
[ my public key: https://keybase.io/davidcelis; my proof: https://keybase.io/davidcelis/sigs/hRgYygV1sqqqWivpDFG377oQzYShgy7LKHlHDDfgAPg ]
But really, the answer to this is because it's easy to copy a database in Redis and then just do a mass RENAME. It took all of two minutes with a Ruby script and Redis' RENAME command. I could have done a theoretical back-of-a-napkin attempt, but I wanted some real numbers. And if it's easy to get them, why not?
Later, I switched my database to PostgreSQL but wasn't having Redis issues at that point, so I let it be. Then when goodbre.ws found itself with a lot of new faces, I found myself with the I/O bottleneck I mentioned in the article. I decided to try to solve that by moving the ratings to permanently reside in Redis. That way I'd only have to hit Redis a couple times to regenerate someone's recommendations. Then I started storing too much in my ZSETS, but here I am now.
Now that I've reduced that memory footprint again, I feel as though attempting to move the ratings back into Postgres would be a premature optimization in itself. I was, however, looking into some combination of Postgres' array types (to replace the sets) and hstore (to replace the ZSETS, but sort in the query). I think it's worth looking into, but I have some other things to focus on first!
I'd enjoy it a lot more if it were true. Still no Retina support for any of their icons or images. Sure, the text finally looks right, but doesn't Cocoa handle that for you?
Mere words cannot express the emotions that reading this made me feel.
EDIT: looks like the process had actually silently died at some point, but was still reporting as running. I think I've fixed the issue now.
How long it takes for the recommendations to refresh is tougher to say, but it shouldn't be more than a few minutes. I can see that the workers that process them are active, so I'm fairly sure it's working.
You can check out the code here: https://github.com/davidcelis/goodbre.ws/
The code that powers the recommendations themselves is here: https://github.com/davidcelis/recommendable/
Any feedback would be nice. This new design is in its infancy but, as far as I can tell, it's been very stable. If you find a bug, please, please let me know here or post on the issues tracker.
Funny, I thought the stock price taking a dive was because of the Qwikster fiasco. And I thought the falling subscriber base was because of the separation of streaming and DVD plans paired with a lack of good content that is available to be streamed.