Skip to content
Snippets Groups Projects
Readme.md 2.29 KiB
Newer Older
# Interface for 'smart' rules for sharing personal data

taco@waag.org's avatar
taco@waag.org committed
This research was done as part of the [Decode Project](https://decodeproject.eu/). The accompanying report is '[Design & implementation interface for smart rules (D4.9)](https://gitlab.waag.org/code/entitlements-ux/-/blob/main/Design___implementation_interface_for_smart_rules_-_Taco_van_Dijk_et_al_Decode.pdf).
taco@waag.org's avatar
taco@waag.org committed
# Design
taco@waag.org's avatar
taco@waag.org committed
The docs directory contains high level concept designs in pdf format describing the overall ideas and design metaphors underpinning the [interactive proof of concept](https://snotolf.waag.org/entitlements-ux/entitlements.html).
taco@waag.org's avatar
taco@waag.org committed

# Interactive proof of concept
The proof of concept is developed as a set of code blocks using [(spac)emacs](http://spacemacs.org/) [org-mode](https://orgmode.org/), in the file entitlements.org.
You can open and read the entitlements.org file in any text editor, but for the best readability and code blocks support you will need org-mode.

The file 'entitlements.html' is the exported html result that you can use to interact with the proof of concept in the browser. 

The file diff.xml is generated during evaluation of the code blocks and contains a random set of fake wallet profile data.
Because the diff.xml needs to be read at runtime, use Firefox to open the entitlements.html from the filesystem. Chrome and safari will restrict access to the xml file without a web server, and prevent the poc from rendering.

The file processing.js is a runtime library downloaded from [processingjs.org](http://processingjs.org);

'You write code using the Processing language, include it in your web page, and Processing.js does the rest. It's not magic, but almost.'

# Modifying the prototype

Probably no need to do this, but for those who are adventurous...

## emacs configuration
The code blocks are written in javascript, ruby and processing (java). So if you want to evaluate the code blocks you need to configure emacs to include these in the active babel languages;

``;; active Babel languages
(org-babel-do-load-languages
 'org-babel-load-languages
 '((ruby . t)
   (js . t)
   (processing . t)
   (emacs-lisp . nil)))``

And of course support for the programming languages themselves.
In order to export to html, make sure to include the htmlize package in your configuration;

``dotspacemacs-additional-packages '(htmlize)``