Last posts

  1. Better Decision-Making Through Collaborative Development of Proposals

    Online-participationdecision-makingApplications

    In a traditional decision-making process, proposals are made and usually commented on by the participants, and finally a vote is taken. We have found in past public decision-making processes that there are also discussions about negative sides of proposals together with possible improvements of them. We have taken this as an opportunity to model the improvement of proposals within the decision-making process. Our new model for this is similar to version control systems like git work. Proposals in a decision process can have none, one or several predecessors. This structure allows different constructs of the real world to be modelled. Where previously only proposals could be made without reference and structure among each other, the system presented in this work allows modelling of further developments of proposals or even coalitions and compromises, in a real-time collaborative decision-making process. To validate our ideas, we tested them in two controlled experiments and concluded that our modifications are useful.

  2. Fulcro Explained 1

    clojuretutorialfulcro

    In this article, I will explain the core principles behind Fulcro. I will show you how to organize state in a normalized graph database and how to write basic components to utilize it.

  3. Jebediah – Arguing With a Social Bot

    dialog-game execution platformonline-argumentationconversational uidemoAI

    In this demonstration we will showcase Jebediah, a social bot based on Google’s Dialogflow. Jebediah is a front-end to dialog-game execution platforms that enable their seamless integration into popular social networks such as Facebook or Twitter. Users can interact with the social bot using natural language while Jebediah translates the user input to a format that can be interpreted by a dialog game execution platform and vice versa.

  4. Talk about clojure.core.async

    clojuretalk

    As a programmer who tries to use Clojure(Script) wherever possible, I am a frequent visitor of the Clojure Meetup Düsseldorf. Recently I was asked what clojure tools/libraries I am using, worth sharing. It happens that a couple of days before, I came in contact with core.async while writing a single page application in clojurescript. One thing led to another, and I agreed to talk about core.async at the next meetup.

    As a novice in core.async myself, this was an interesting task ahead. Having to read a paper about staged event driven architecture for the lecture Architecture of Distributed Systems introduced me to the advantages of separate running threads and the communication between via queues/channels between them.

    After the talk we played around a little with a playground I developed, to test core.async in a scenario of an ant colony. This playground has the goal to make everything asynchronous, which maybe wasn't an ideal use of async, but it was fun at least to watch the little ants run around. The code can be found on GitHub.

    All in all it was a nice evening, and I hope the listeners have learned something they can use to build great software. If I'm stumbling over something in the future I will definitely consider sharing it on a meetup again.

    Thanks to InVision, which hosted the event and provided us with drinks and great food. Also check out Joy Herons wonderful sketchnote!

    The keynote can be found here.