Project Blackfish has some amazing new updates! Remember last week when I mentioned that users could now unlike articles as well? Well, there was a problem with that system: users could like and unlike articles as many times as they wanted. That has now been solved after some very steep learning in Django, particularly learning one-to-one and many-to-one relationships.
So here’s the lowdown: In the screenshot below you can see that if a user viewing an article has not liked an article it will say “You scored it: Rate this article!”
If the user clicks “like” the Total Point Score for the article increases by one as does the amount you scored it by. The trick here is that a user cannot like an article more than one time. They can become neutral again (Score = 0), or they can score it as -1. The user can change their score as many times as they want between -1 and 1.
Now here’s where things get really interesting! All articles are now tied back to the user that wrote it. When another user rates their article they receive Influence Points(iPoints). At the moment the user “test 4” has 0 iPoints, after their article was given a like they then receive one iPoint. If the user rating the article goes back and changes their mind “test 4” will have -1 iPoints. These points are accumulated from all of their articles so the more articles they write and the more users that like their articles the more iPoints they receive thus scoring their overall influence within the community.
Special thanks to Vikram, Vanessa, and Ildar for helping me with my logic and answering my never ending stream of questions!
Day: 8 Budget: $? Spend: $0
Everywhere, tons of coders are building software packages and making it freely available without making a dime off of it. I recently experienced a perfect example of just how useful and efficient this can be.
My goal was to have users fill in their city and country in their profile page, which I added recently:
What I realized is that I don’t want to leave it up to users to spell their city and country correctly, so I went on the hunt for a Django app that contained our world’s geographical information. I came upon two separate applications that I could plug in to my site’s code: Django Cities and Django Cities Light. The former is a much larger and more complex program than I needed at the moment so I went with the lighter version. The only problem was that when I tried to upload the data I kept receiving a duplicate error for some city in Latvia: Daugavpils.
I scratched my head and went to work googling the error but nothing came up. Finally, after searching long and hard I gave up and opened my first issue report on Github. The main contributor, jpic, responded shortly afterward along with several other coders who had the same problem. Over the next few days back and forth discussion solved the problem and another bug that popped up immediately afterwards. I was so impressed with this amazing collaborative effort and in particular, that of jpic, who went to town solving these problems in which he received no monetary compensation for. Coming from a finance and economics background I really found this refreshing.
Without the contributions to the community of open source developers working tirelessly on software such as Python, Django, and Cities Light, we definitely would not have the kind of web based technology we have today.
Special thanks to jpic for fixing my issue so quickly.
Day: 7 Budget: $? Spend: $0