[MG] Mapping Participation in Drupal

conseo 4consesus at web.de
Mon Jan 17 10:10:34 EST 2011


Hi Alex,

> On Mon, Jan 17, 2011 at 8:02 AM, conseo <4consesus at web.de> wrote:
> > Am Sunday 16 January 2011 schrieb Alex Rollin:
> >> http://afghanistanelectiondata.org/data
> > 
> > Thanks for pointing it out, I have bookmarked it. The main problem that I
> > see is that they have a quite different focus although their
> > visualization (view) has some common ground with Crossforum and we might
> > be able to learn from them at least.
> > Their site is about visualization of static content after official
> > elections, so they can pull all data easily once in their DB and are
> > done. We program a live tool which consists only of a bit of glue for a
> > completely open infrastructure regarding drafting media, poll server
> > concepts and even the discussion media involved.  Focusing on Drupal
> > only would roll-back the whole perspective of Crossforum + open network
> > to a single well-designed free web-frameworkl.
> 
> The point of all the modules I mention is that, with the prototype
> conditions complete as Mike spec'd it, I would think it would behoove
> you to take a look at some mature tools that can munge just about any
> feed data.  Maps can be set to refresh via ajax.

Well mapping functionality is already implemented and we share the 
functionality with openlayers. You really have to talk to Mike about that, as 
I haven't had a close look at the map processing yet.
I need to have a look at that first and it takes serious time to explore how 
others do some concrete implementation. Can you help with some more detailed 
information?

> 
> <What
> 
> > is likely possible and might be interesting is to ask them for
> > cooperation and make them compatible with Crossforum, so we share as
> > much code and infrastructure as possible.
> > In fact this introduces a new use case of a specific kind of pollserver,
> > where it is only about exposing the historically fixed and static data
> > of some official elections which is about to be visualized in the
> > mapper. Since our effort is very generic, this should fit in nicely and
> > be a profit for both concepts, visualization of official voting data and
> > an actual voting network. They would have to come to us though, since we
> > are more generic, which is pretty unlikely in my experience. And they
> > even have to drop their implementation and switch to Java/GWT for that,
> > whcih is even more unlikely. You could try to convince them though, they
> > would definetly profit in the long term.
> 
> I am rather certain that the Drupal solution handles more use cases
> and is a wider deeper set of tools than what you are making.  

Of course it is. But I don't see where this is a problem. We can easily use 
Drupal as a drafting medium (e.g. blogs) already as far as Mike has told me 
and maybe soon even as a discussion medium (I have to write the scraper and 
fetcher for this then). We really don't want to compete here. In fact it would 
be lovely if you could work it out with us, since personally I'd like to 
address drupal at some near point in the future which would make our 
infrastructural concept *very* flexible and attractive to all kind of web 
communities already using drupal. It would also be an appropriate scale of 
test installation. What do you think, Michael?
Ideally they only have to install some pollserver stuff and a crossforum 
installation somewhere and will be able to blend that in where it makes sense 
to use democratical processes. That way we can also learn from Drupal and see 
where we can back our solutions up with it.

> If that
> makes it more generic, I don't know.  Generic, to me, is different
> from "lightweight", which doesn't necessarily apply, though the core
> for Drupal is still only 2.5mb.  

Which expands to how many sloc? 2.5mb of zipped source code is quite a bit 
still. I don't have a problem with diving in there though, if it is necessary. 
Just as a quick note on the technology involved. Drupal uses PHP which is fine 
for web applications, but GWT imo is definetly better and younger (reflecting 
the PHP and even Rails stuff). 
Although I am not an original Java guy and have my concerns with it when it 
comes to FOSS development, I have rather done some C++/KDE, GWT is still much 
closer than PHP. In fact it is the main design focus of GWT to bring web 
development on par with desktop/server development.
Having type safety, java object oriented programming, standard java 
compatibility which means you can simply move server code to the client and 
vice-versa and a compiler as well as a well-balanced set of libraries and 
classes prepared by Google and many companies already means that we don't have 
to code like insane to get decent functionality and well-written + highly 
optimized browser compatible AJAX-code. That is what Google is really tough at 
with GWT.
It also especially means that our model and view concepts will be easily 
transferable to real GUI applications like an Android app or I'd even like to 
migrate it to Qt/KDE if it makes sense. This will easily outscale any browser 
application (including Drupal) and give us much more serious possibilities in 
a FOSS desktop environment then sticking to default Ajax capabilities and web 
libraries in a HTML-browser container.

> I told Mike many months ago that I
> could build the base for the crossforum prototype app using these
> Drupal tools, and without any custom coding except to tweak a jSON
> parser for the feed from Mike's custom code.

Please(!!!) don't take that as offense, but why haven't you done it? 
Theoretically you can do a lot already, but in fact you don't. As long as we 
don't have anything to show and test, it will be really difficult to sort things 
out properly. We still can switch toolkits later if it makes sense. 
I get the point that Drupal might be a better ground for building Crossforum 
and I want to hear your arguments (really!) since I haven't explored it for 
this use case, but Crossforum only needs a feeder and a mapper not a content 
managment system. This is unlikely to change, since it is only "glue" aka some 
"infrastructural" common visualization tool for all kind of solutions 
including Drupal.
We can plug Drupal in, we can even load the GWT stuff inside some drupal 
framework, because Google wants you to be able to transparently extend your 
current applications with GWT functionality easily.

> 
> >> > There's a rather modern feed parser for Drupal:
> >> > http://drupal.org/project/feeds

I'll have a look.

> > 
> > In general finding feed implementations is not the problem, they are
> > pretty standard today. I have had a look at Atom first, too, when
> > thinking about the diff feed service, as I might want to use them in a
> > news-reader on my desktop for some issues and support for it is pretty
> > standard. For Java this looks pretty good: http://abdera.apache.org/
> > 
> > But there is a very serious drawback when it comes to using Atom in a
> > crossforum tool. It hits the wall of single origin policy. That way we
> > have to use JSONP and although it is more "low-level" it is much more
> > flexible and scalable for us since we don't have to xml-parse the data
> > or work around Atom and some middleware like Drupal or Abdera.
> 
> Feeds is for taking data into Drupal.  It's rather amazing.  It'll
> handle feeds from any number of sources, and there's ways of
> formatting output of feeds, too, but this module is for import.  It'll
> accept almost any data source.  Perhaps you will take a look.  It's
> extraordinarily powerful.

Maybe we can come up with an interface to it? I don't think there is a problem 
with drupal being able to visualize pollserver or feedservice data. This is 
intended and only depends on a person writing the necessary drupal code. If 
you like to access it in Drupal go ahead and help us figure out how to best 
define the bite feeds and service communication for both use cases, Crossforum 
and Drupal.
If you can be quicker (which you should if drupal really spares a lot of work) 
or can do more stuff (which is likely, since drupal allows other processing of 
the data) it only helps us all. Crossforum (done by us in GWT) is not tied to 
Votorola or any implementation of the open network approach in particular, so 
you would have done a different visualization implementation for the same 
infrastructural concepts only. We really can cooperate in any way you wish and 
you should not need to waste too much time to care about our code really! In 
fact that would help us a lot imo.

> 
> >I often like to have a look around
> >
> > how others do things and if I can easily reuse open-source code, but in
> > Crossforum/Votorola's case I think Michael got it right, by keeping it as
> > simple as possible.
> > 
> > Since what we all (not only Votorola) do here is pretty new lands and
> > prototyping we don't want to bend around current concepts of web
> > frameworks. They are not designed for cross-server web-uis or even
> > global distributed networks, but in most cases rather to build some
> > server-side service.
> 
> Crossforum is not a server side service?

Not really. To load a drupal site you need to connect to a single primary 
drupal server installation somewhere, which does all the data processing (as 
well as pulling all kind of data from feeds as you mentioned) for your AJAX 
representation.  This even accumulates, since every single crossforum 
installation done with drupal would have to pull all data from any other 
service (pollserviers, forums, ...) it is subscribed to, giving you 
exponential growth of traffic and processing likely instead of the client 
selectively only pulling the needed data from the interesting services 
directly. Drupal could of course also pull the data from other servers on 
demand if the client needs it, which would then introduce still double traffic, 
higher latency and unnecessary overhead both in traffic and service reliability 
issues, not to speak of legal and potential censorship issues.
By using JSONP (only) you can host your own crossforum instance (the static 
ajax files) and then configure which pollserver/feeds in your 
environment/interest it will pull in. In fact you can even do that on the 
browser side by subscribing to JSONP services directly and storing the urls in 
a cookie. That is also why Crossforum will be more scalable if we do it  
right, because we do almost all of the processing (except of the feedservice 
data aggregation and querying the db) on the client side and only fetch some 
JSONP from the server if necessary.
By the way Crossforum only contains static javascript and html files and does 
not even need something else then a dumb http server for this reason.

> 
> Drupal feeds is certainly built for taking in data from multiple
> services, and it can do it fast.  Replicating this facility seems a
> bit ... well, a lot of extra work, like I said.   Other modules spit
> the data back out in whatever format you want.

Hmm, well, to my current understanding, we can only use JSONP because we hit 
SOP, there is really no way around it unless we do all the fetching and 
processing on the server. And as JSON is *really* well integrated with 
JavaScript overlays in GWT, we don't have to care about the implementation too 
much imo and can focus on which data we want to visualize and how.

> 
>  For that
> 
> > reason we cannot even use GWT's RPC, since GWT is originally focused on
> > developping commercial web services rather then a distributed web.
> > In fact, when looking at single-origin-policy, we even hit the current
> > web- browser concepts hard when it comes to opening the web up, since
> > they are bound to at least one main client -> server connection. You
> > cannot browse ressources which are not stored on a single domain/host
> > name yet.
> > 
> > Have also a look at kio-magnet here:
> > http://whilos.blogsite.org where I have proven that you can distribute
> > the web and desktop in any way you can imagine when you break the
> > current URL-standard and combine that with BitTorrent. This might be
> > interesting even for Crossforum, as we can store both the app and parts
> > of the data in a distributed shared space then.
> 
> I followed up on http://unhosted.org which you might find interesting.
>  Moves data processing back to the "edge" on the desktop.

This is really cool, thanks for the link! kio-magnet imo still goes a bit 
further because you don't even need a server anymore, not even for storing 
JSON data, as you can store it in a BitTorrent swarm. This might be 
interesting for dropping JSON data for Crossforum as well, taking even more 
load from the server side. I will mail them and see if we can profit from each 
other as I think we complement nicely. 

In general I think we have all the stack from BIOS to browser open finally 
nowadays, so we can also make new services and integration between the web and 
the desktop stack possible in FOSS. This should also help solving the conflict 
between web services and desktop frameworks better.

I am looking forward to your feedback!

Christian



Originally posted to the mailing list of the Metagovernment Project:
http://metagovernment.org/mailman/listinfo/start_metagovernment.org



More information about the Votorola mailing list