Say hi to Edgesense

no problem! I’ll modify the script to use the user/password and change the URLs

Restricting the views to public content.

I noticed that the views so far also export information about non-public nodes (that is, those from private Organic Groups). And I propose to not include these – they’re not intended as part of our research data package, but contain internal, not to be published coordination (mostly team members interacting, anyway).

If there are no objections – Luca, could you add a filter to restrict the views to content that is accessible to the anonymous user.

No objections from me, @Alberto ?

Data inconsistencies + problems with services_views

@Matthias I think I have identified the source of the problems with the data which make the visualization misbehave:

there are many users (all of those that were imported?) which have a creation date which is in the future wrt some of the content they have created. e.g. @Alberto has a create date (timestamp) of: 1359233500 which is in Jan 2013 BUT there are posts older than that from him. The dashboard (specially the time-slider) uses the create date of the user to know if the node exists, but it ends in a incosistent state if the the nodes don’t exist while some edge should at a given time…

Moreover: the services_views kind of work, but they don’t seem to respect what is set for the fields, e.g. the roles field is always empty when using the api, so the script cannot know if someone is from the team. Notice that the same view if opened directly from the browser has all the content there. I’ve tried various things this morning but wasn’t able to make this part work: opening this after the login shows the correct roles field: https://edgeryders.eu/edgesense_users while downloading this: https://edgeryders.eu/api/views/edgesense_users.json doesn’t :frowning:

Last, but not least I wasn’t able to add a link to the user’s page in the view and cannot (n.b. i just need the URL to the users profile page NOT a complete HTML link tag as i need to reuse it from the dashboard) …

Re:

Re. the data inconsistency, that’s exactly what I supposed the reason to be; for details see this comment from yesterday. If you want / have to keep the Edgesense part unchanged, maybe you can filter out the users affected by this for me, and give me a list of them together with the account creation date they should get (at or a bit before their first post / comment). I can then fix that in the database, but don’t have time right now to create that list myself.

For creating a link to the user profile, I have encountered that problem earlier, too. I have adapted the view to generate just a Drupal’s canonical URL from the user ID. For me for example, it’s https://edgeryders.eu/user/36, pointing to the same as https://edgeryders.eu/users/matthias.

About the problem with output of roles, I’m looking into it.

ok, I’ll prepare a “map” of the users and their earliest activity in the community (just to be sure we might want to make the creation date 1 day earlier than the first activity)

thanks for the link!

Third map of users to fix needed?

I just fixed the account creation dates of users for the second batch of them that Luca sent me. The first was for users where account creation was after the first content post date, the second where account creation was after the first date where a reply was received.

As I wondered by e-mail to Luca already: I do not get how one can receive a comment before writing something … or did the first batch of users only look at when comments had been written, not also nodes? In that case, do we have to update some users again, in a third batch, because their account creation date might still be after their first node creation date?

Reply by Luca

Adding the e-mail reply by Luca, for future reference: “i think the extraction I did was taking into account the date the script would have assigned to the first “edge” which had one user as a source or target, that is a comment on a node or on another comment. This is what has an impact for the visualization, so we shouldn’t need to change it again i think.”

Roles are now shown.

To have the roles list included in the JSON output, use these URLs for your views instead:

The problem was that so far, services_views can’t access any information not in the primary query, so including all multi-value fields. The trick was to get services_views to return the output of the view, as shown in the preview, which happens to be a JSON document itself. This is done with the format_output parameter (normally used to get a HTML rendered view returned).

To be sure, I also specified the display in the URL now (as so far it always used the Master display). And I set the JSON output to be pretty-printed in the views’ options for JSON data document. Reset that if you want, but I guess it’s better for debugging purposes right now. There’s also an option for not escaping forward slashes at the same place, if you want that.

Update: For future reference, I provided more info about the format_output=1 solution as a comment in Drupal issue “Views does not return taxonomy for Services”. It seems that the services_views authors propose to use a “Global: PHP” field and custom code for pulling in multi-value fields [source]. It has the advantage that it works with all output formats, while our solution above works only with JSON (and XML via views_xml). But on the other hand, our solution is simpler to change. The real solution seems to be the patch provided in Drupal issue #2269845 (“Enhance (and fix) rendering of multiple valued field”). It should appear in a new services_views release soon, and then we can modify the views to use this mechanism.

great! this is good to know as we may find other places where it’s better to have the content be http-basic protected and services_views make that easy to obtain :slight_smile: I’ll check this asap

You should be good to go now.

I just updated all user creation dates according to the list of users that you sent me, setting them to one day before their respective post, respectively. @#2526, you can now hopefully finish the Edgesense installation :slight_smile:

Great stuff

Don’t forget user names with live links to the profile, please! :slight_smile:

yep I’m checking the network now and It still misbehaves when dragging the slider, I’ll have to dig deeper tomorrow morning (but we’re close now :slight_smile:

@Matthias where can I send you an email? I have prepared the list of users / timestamps of their first post/comment (only for those where the first post/comment is before their current creation date)

Just told ya.

I’ve just sent you a contact form message with an e-mail address you can use.

WordPress plugin for Edgesense

Hi everybody.

I’m revamping this post, with a few years delay (and after an even longer silence on EdgeRyders), just to let the community know that I’m developing a WordPress plugin, which supports BuddyPress communities and bbPress forums.

I’m still unsure what is the best space to do this (if appropriate at all), but I thought that some of you might be WP users, and be interested in receiving updates or testing the plugin.

I had a few conversations with @Alberto and @Luca Mearelli, already, and their feedback helped me build a first implementation quite quickly.

The plugin prototype currently works, even if it still requires a few tweaks here and there, and the cron script is still missing (but I’m working on it).

I’m planning to have a distributable version within the next few weeks (not yet via the official WP pages, though, as I’m not familiar with some of their standards).

There’s a live demo on the website of a project I’m working on, but the site is in Italian only, so I’ll skip links for now.

If you think this might be worth being discussed elsewhere, please let me know.

Cheers,

MoE

P.S.

I’m a super-silent and invisible EdgeRyder, but I’m not an alien :slight_smile:

Despite my difficulties in actively participating online discussions, I follow quite regularly what you guys do in here, and I love it. I really admire you all, and am thankful for such a precious place to exist on the net

3 Likes

Very. Cool.

Welcome, finally, to Edgeryders @MoE! And thank you for the great work on Edgesense.

I have not yet gotten around myself to publishing a serious introduction to the Edgesense dashboard for Edgeryders (but whoever is reading this deserves the preview link: here it is, fully functional). But I will, I swear! Usual logic: it is not enough to do stuff, we also need to tell the tale. It may not be the most fun part, but – as any social networks scholar will tell you – it will signal to others what you are doing, and make it possible for them to sync to you, join you, collaborate.

By implication: are you sure you do not want to share a link to your own dashboard? It’s not that important if the website is in Italian: networks are networks! smiley

Alright, got the lesson! smiley

Then link so be it (finally usernames’ display and moderators’ filtering are in place).

Networks being networks, mine is evidently quite shrunk indecision.

Despite it being indeed descriptive of the (super-contained) nature of that website, the small number of active users actually depends on an issue with the code. I’m still struggling with that.

To tell the tale, I finally took some time and wrote a bit of who I am, and what I do.

I’ll keep @Alberto and @Luca_Mearelli posted, about the last missing bit (the cron) and the distributable.

1 Like

looks great

was just checking the new edgesense and it looks great. kudos

some quick comments : filtering with age (Y) -  didn’t get the un-directed parameter but waiting for the “story” to know more.

also @MoE waiting for the final wordpress plugin, that’s great. when could it be tested ? is it possible to test it on a forum like the okfn ? currently I am working on a thesis about civic hacking from a planning prespective - a bit boring- but analysing the okfn network would be very beneficial and I think such community would like to have an edgesense view on their network.

1 Like

okfn is Discourse

@Hazem I had a quick look at okfn, and if I’m not mistaken it’s based on Discourse, which is a different platform than Wordpress.

It is developed in a different language too, and I’m not familiar at all with that; I’m afraid I can’t really help in this case.

But if there’s any Ruby on Rails developer around, and @Alberto and @Luca_Mearelli are swamped with something help, I can definitely try help by giving a few hints about stuff I learnt, while doing the WP integration. I know interest for Discourse was already manifested.

The principles are pretty straight forward: once you know them, feeding the system is fairly simple and just requires exporting a json with the right format, by using your platform’s API.

For what concerns the filters in place, I’ll leave more detailed info to the most knowledgeable ones; but the way I interpreted the un-directed parameter is: it let you switch one-way connections (replies to posts or comments) with two-ways messages (replies which, on their turn, got replied and therefore represent a “proper” conversation). In a way,  it lets filter conversations by depth.