I know, I know, everyone's needs are different. And yet, drigg seems to be very similar to Vote Up/Down http://drupal.org/project/vote_up_down.

I am sure you had good reasons to create a new module though.

If you outline a few key differences as you see them, it will definitely help everyone struggling to choose between the two solutions - these are complex modules and an unguided live detailed evaluation can easily take days :(

Please?
Pretty Please?

Thx!

Comments

mercmobily’s picture

Hi,

Would you like me to compare Drigg with Vote Up/Down, or simple_karma with Vote Up/Down?

Merc.

andrabr’s picture

Merc,

my understanding is that simple _karma was focused mostly on comments (unlike fivestars, nodevote, drupalit, and such) In drigg you took simple_karma to the new level and applied it to posts as well - correct me if I am wrong.

I am more curious about drigg versus vote up/down comparison, since to a casual observer the two solutions seem to be targeting the same space [personally I am so confused that I pushed the deployment of the fuctionality on my own site way into January, so that I can figure it out]

Any (even partial) opinion would be appreciated greatly

~Andrey

mercmobily’s picture

Hi,

voteup_down and drigg don't compare at all - not even a little bit :-D
Basically, Drigg is a "super-module" that gives you a node type - "scoop" - that will behave pretty much like a digg scoop: it has a URL (which needs to be working when you submit), and a category (which is linked to a Drupal category). It offers neat pluses like which URLs can be submitted, how a node is shown, etc. However, most of its functionality is in terms of node-management: it will give you the nice list of upcoming news, the list of similar submitted scoops, it will enhance a user's account with the list of scoops /she commented on, submitted, etc. It really is a "super-module" aimed at turning a Drupal site into a Digg-like site.

HOWEVER...

simple_karma and voteup_down do compare. Simple_karma was created when I hadn't realised that Drupal had a great VotingAPI. My main term of comparison was UserPoints (which I assumed used the VotingAPI - and I was wrong!) I didn't feel the Userpoint code was strong enough to handle karma, and hadn't realised that the VotingAPI could have helped me. What really made me decide that it wasn't for me, was that to have extra functionalities in UserPoints (like assigning role if you gained a role, etc.) you had to _buy_ extra modules. I needed the extra functionality, but I felt really awkward about implementing it and releasing it.

I needed a way of voting for nodes and comments in Free Software Magazine, and decided that I would write my own voting system. I created simple_karma... and it kicked ass. :-D
HOWEVER, I also made sure that simple_karma somehow interfaced with Userpoints. So, every time somebody gave Karma to somebody else (through voting up a node or a comment), points would be awarded. Again, I should have used the VotingAPI.

Right now, I realise that simple_karma and the voting API overlap. Now that I realise that VotingAPI is the way to go, this is indeed a bit more than an issue.
Simple_karma can be seen as an alternative way of voting for nodes and comments, but with a difference: you will ONLY EVER be able to assign karma to a user for a node or a comment s/he wrote. Karma can be positive or negative. The voting API is very flexible - you can award as many points as you like, up, down, etc.

Karma basically is karma and can only be gained for something you write. If you have positive karma, then you have more positive comments than negative. If you have negative karma, then well, that's the other way around.

If you are planning on having an elaborate voting system, and you want to be able to give points to a user for different reasons (referring a user, etc.), then Userpoints is the way to go. If you simply want a karma system so that people get karma for nodes or comments, simple_karma is good.

Bye.

Merc.

[Edited by the brainless author, since in my original post I had confused Userpoints and VotingAPI. I love VotingAPI's code!)

mercmobily’s picture

Hi,

I had a look at the votingAPI. The new version is much more powerful - I am looking into changing simple_karma's core so that it uses Eaton's voting API, so that this confusion is resolved.

Merc.

mercmobily’s picture

Hi,

Replying to myself, in case somebody's interested...
I am rewriting simple_karma, splitting into lots of smaller modules, all based on the VotingAPI.

Will keep you posted on how it goes. I really want to release Drigg, and at this point I'd prefer to release it when it's all ported to VoringAPI.

Bye,

Merc.

andrabr’s picture

Thank you!

This is an excellent overview.

Now I get it (writing it up here so that even I understand): drigg works with a custom node type, while voteup_down and simple_karma (and userpoints) can be applied to any node type (even to comments in case of simple_karma).

voteup_down is mostly about rating content, while simple_karma is about "rating" users (based on their writing).

Oh, and userpoints are sort of like simple_karma, but more generic - you can give a user points for things other than writing.

Got it!

I feel a bit guilty about (possibly) "causing" the delay of Drigg release, but a clean architecture is always a good thing.

Now, that you are looking at partitioning the functionality, why not make parts of it more generic? - I mean, the scoop does not have to be an external link. Imagine a standard Drupal "story" as a scoop... - just dreaming :-)

mercmobily’s picture

Hi,

I was programming as I received this.
So, let's talk :-D

> Thank you!
> This is an excellent overview.

No problem!

> Now I get it (writing it up here so that even I understand): drigg works with a custom node type,

Yep. In a way, drigg *is* a custom node type...

> while voteup_down and
> simple_karma (and userpoints) can be applied to any node type (even to comments in case of simple_karma).

Correct. Simple_karma and votingAPI are just ways of assigning scores.

> voteup_down is mostly about rating content, while simple_karma is about "rating" users (based on their writing).

No wait. voteup_down is a nice interface which uses votingAPI to do the actual voting. simple_karma is a nice interface that uses its own table to do the voting. Yeah, this is ugly. However, I wrote simple_karma at a time when I really needed something that worked, didn't have time to contribute properly to votingAPI, and needed something that definitely worked...

> Oh, and userpoints are sort of like simple_karma, but more generic - you can give a user points for things
> other than writing.

I have no real idea of how userpoints work - sorry.

> I feel a bit guilty about (possibly) "causing" the delay of Drigg release, but a clean architecture is always a good thing.

I agree. Simple_karma started as a simple module, where I didn't mind the duplication, and has grown into something a little too big for its boots.
I am trying _really_ hard to use the standard VotingAPI now. It's a little tricky, because I really want to automatically assign a "karma" value to a user every time he receives a vote, and want to be able to recalculate it. Now... for this, I will probably need an extra module. I am looking into this as we speak...

> Now, that you are looking at partitioning the functionality, why not make parts of it more generic?

That's what I am doing...

> - I mean, the scoop does not have to be an external link. Imagine a standard Drupal "story" as a scoop... - just dreaming :-)

No, sorry... a scoop needs to be a scoop. There are really 42724 reasons for it... What I _will_ do, is write a module that allows auto-promotion of stories. However, rewriting Drigg so that Scoop is not a node type is amazingly hard, and there isn't a real point to it.

Bye,

Merc.

andrabr’s picture

THANK YOU! - you are the best.

You actually inspired me to publish my first snippet.
Go ahead, feel proud for making a fresh convert!

mercmobily’s picture

Hi,

Thank you - you're inspiring too :-D

The new voting forms already work. There are a couple of little problems which will be fixed this morning.
The next important step is to write the bit that assigns karma as well (and the "best comment/bury comment" features).
It's only a matter of cutting&pasting the code and adjusting the queries... so, it sholdn't be too much of a problem!

Bye,

Merc.

mercmobily’s picture

Hi,

Just to keep you in the loop... the voting forms work. The module is only 1500 lines, and the code is a lot better.
Tomorrow, I will work on the "user karma" and the "comment hide/promote" (the features which were part of simple_karma).

At that point, simple_karma will be officially obsolete and the voting API will have simple_karma's forms (which are really nice, have spam protection, etc.).

Porting Drigg to the new system will definitely be interesting...

On one hand, I really want to release Drigg. On the other hand, I want to make sure I get it right - I think a _lot_ of people will start using it when it's released, and it's just so much easier to change everything when your userbase is smaller...

Bye,

Merc.

andrabr’s picture

AWESOME

Please do post here as soon as you officially rolled out .dev version of "user_karma" module - I am intensely curious!

mercmobily’s picture

Title: Please compare to Vote Up/Down » Please compare to Vote Up/Down, and please port it to VotingAPI

Hi,

Alright, I did it.
I normally feel a little uneasy about releasing untested software. However... here we go:

http://drupal.org/project/extra_voting_forms

The development snapshot should be up within the next 12 hours.

Note that I have only ported the "voting" side of the story - for now. I still haven't finished the user karma and the bury/best comment side of the story just yet. That will be done very shortly.

Finally, another thing that will need doing is porting Drigg to the new architecture. Luckily, Drigg is very much "voting-architecture agnostic", so that won't take long. However, god knows that it will need a lot of testing...

Please give these voting forms a bit of a shot. Let me know if there's _anything_ that doesn't work - wrong documentation, etc. The code still has some "karma" here and there, but interface-wise it should only be talking about voting points.

Bye,

Merc.

P.S.
I changed the title...

mercmobily’s picture

Hi,

Here is an update on this one.
I have just finished writing the "user_karma" module. I also wrote an "exporter" for simple_karma, so that data CAN be exported from simple_karma to user_karma.

Right now, the karma calculation is quite simple (N karma points for N votes you got for a comment or node you published) . However, the calculation can potentially be a lot more complex than that: you might want to get more karma for published/promoted nodes, or more karma for nodes than for comments... or you might get karma for referrals, etc.

So, this module can be expanded quite a lot. However, for now I will Keep Things Simple (TM) :-D But, I will be looking forward to suggestions etc.

I will do some testing tomorrow, to make sure that user_karma actually works, and will release it.

At this point, the only unimplemented stuff is the comment hiding/promoting. Plus, I will need some input from the author of the votingapi and you guys, to make sure that you can actually use views etc. with user_karma (I am not good at using views... sorry!).

Anybody interested in this module BTW?

Merc.

duntuk’s picture

been following the development of drigg and and simple karma (now user_karma) ... definitely keeping my eye on these... very exciting work!

mercmobily’s picture

Hi,

Cool. Somebody is actually interested :-D
Have you tried extra_voting_forms yet?

Merc.

duntuk’s picture

haven't tried it yet... looked at the code and now seen the demo :)

I'm a web developer that gets approached by a whole bunch of different requests, many revolving around something that has to do with enticing people to participate more in the clients' sites.... so all these are right up there.

and having drupal and these wonderful modules makes the clients' expectations *almost* deliverable (i.e. they want everything done yesterday...)

so yeah... i'm interested and very appreciative (as I'm sure most people are as well--even though you may not see it written (as studies show, only a tiny fraction of users post comments; majority just browse--but nevertheless are interested.)

duntuk’s picture

btw... so, you're working on 3 things now, user_karma, extra_voting_forms, AND drigg ? damn! that's a lot of work.... I'm guessing it's snowing and/or too cold to go out and do other stuff anyway, right ?! ;)

mercmobily’s picture

Hi,

Thing is, the three modules are just a matter of changing simple_karma so that it works a "little" differently. The only major rewrite was the user_karma module, because things really were quite different. But that's done.

Drigg is _quite_ voting-agnostic. So, it doesn't need *that* much changing... I will do that one last :-D

Bye!

Merc.

kpaul’s picture

Yeah, i'm watching with much interest too. :)

Any way I can grab a copy of user_karma to help you test? Or do you know when it will be released.

Anything else i can help with, let me know and I'll see what I can do.

Thanks,
K. Paul Mallasch - Publisher
kpaul media

mercmobily’s picture

Hi,

user_karma should be available now as a development snapshot - please do have a look and test it!

It looks like extra_voting_forms has a nasty bug which stops it from updating the vote in realtime - I will fix that first, and then finish the comment functions.

Bye!

Merc.

kpaul’s picture

re: user_karma - grabbed it and will submit bug reports, and try to apply/test patches or new code as needed...

re: extra_voting_forms updating the vote - that's the jquery.js issue?

updating to the one you include causes other errors, though (with TinyMCE for one...)

also, where's the best place to put feature request for tying it to userpoints again (or can you already do that still?)

Thanks,
kpaul

mercmobily’s picture

Hi,

> re: user_karma - grabbed it and will submit bug reports, and try to apply/test patches or new code as needed...

OK thanks!

> re: extra_voting_forms updating the vote - that's the jquery.js issue?
> updating to the one you include causes other errors, though (with TinyMCE for one...)

I know... that's a big pain in the butt, but there's nothing I can do about it :-(
Drupal 6 will fix it. Till then... the only way to fix the issue would be to change extra_voting_forms so that it doesn't need the latest jquery.js, but that's not actually possible :-(

> also, where's the best place to put feature request for tying it to userpoints again (or can you already do that still?)

I am not sure it makes sense to support user_points anymore... Please put a feature in, but it seems to me that karma and userpoints should be two different things.

But, user_karma is the right spot for the feature request.

Bye,

Merc.

mercmobily’s picture

Hi,

I looked into the userpoint interface.

I am sorry, but I don't think it will be feasible to interface to userpoints... not without quite a bit of messy code.

The only thing I could do, is mirror userpoints with the user's karma. But... what's the point, really? Karma and userpoints are two very different concepts. Future versions of the karma module will base the karma value on several different factors - if a story was promoted, there will be more karma for example.

I really don't think it would work - code-wise and philosophically.

Bye,

Merc.

mercmobily’s picture

Hi,

Another quick update: I finished porting simple_karma to extra_voting_forms and user_karma.
I now have to port drigg itself... which is gonna be a BIT of a pain :-D

I will leave it for the next couple of days - it's 41 degrees here, and it's time to go to the beach...

Merc.

summit’s picture

Hi Merc,

Looking at this thread, and it seems very promissing!
Enjoy the beach...41 degress. We here just had one day possibility to go on the ice...and I did it. After 10 years feeling natural ice under your skates is great!
Looking forward to your progress with these modules, and willing to test :)

How are these modules, compared to five-star? I need to select a voting system for my site on which anonymously can be voted, topvoted nodes should be put on top of view-lists filtered to categories, but comments can only be given from users who are logged in?

greetings,
Martijn

mercmobily’s picture

HI,

It's too hot for the beach, believe it or not. I am all set to finish Drigg tonight, and roll it out onto FSDaily tomorrow...
Drigg will _potentially_ work with any voting system - it doesn't matter what it is. I made it completely configurable.

extra_voting_forms is the voting system of choice in drigg. It doesn't allow anonymous voting... and I don't think it ever will, sorry :-/

Bye!

Merc.

rek2’s picture

Hi, is the new version with extra_voting_forms going to be compatible with the other drigg?
I been working with the current version.. I wonder if I can migrate.

thanks.

mercmobily’s picture

Status: Active » Closed (fixed)

Hi,

I answered this one already... but it didn't go through for some reason.
I wrote an exporter in simple_karma, which exports the votes to the VotingAPI. So, while the new drigg is totally incompatible with the old voting DB, this won't be an issue.

I am closing this issue, since I have finished porting Drigg and am rolling it out onto www.fsdaily.com.

Expect a final version of Drigg, powered by VotingAPI, tonight.

Yay!

Merc.

duntuk’s picture

Version: » 5.x-1.x-dev

i was out on vacation, and just noticed you got drigg, and user_karma posted... nice!