Making of a digital education artefact #1
Personal Primer (digitale Fibel, fantastische Fibel u.s.w.) is a digital artefact aiming to enrich narrative, mathematical and musical intelligence of a Grundschule pupil. It instantiates 23 attributes divided into...
Who am I ?
  • daniel@udk-berlin.de
  • 36 years, Slovak by origin, European by choice
  • Bc. in Humanities (Charles University in Prague, CZ) & Bc. in Linguistics (Universite de Nice Sophia-Antipolis, FR)
  • certified to use Feuerstein's cognitive Instrumental Enrichement 1 and 2 methods
  • Master in Complex Systems : Natural and Artificial Cognition (Ecole Pratique des Hautes Etudes, Paris, FR)
  • Double PhD. :: Cybernetics (Slovak University of Technology, SK) and Psychology (Universite Paris 8) defended with the Thesis "Evolutionary models of ontogeny of linguistic categories" - c.f. http://wizzion.com/PP.pdf )
  • wizzion.com UG haftungsbeschränkt (now in hibernation)
  • UdK Medienhaus IT Admin between december 2014 and july 2018
  • ECDF / UdK Digital Education W1 professorship since 1.18.2018
  • married, 2 daughters
misc.

    • developmental psycholinguistics
    • child - computer interaction
    • constructivist theories of learning and intelligence
    • cognitive enrichment and cognitive impoverishment
    • child - computer interaction
    • machine learning & machine teaching ("Can machines teach?")
    • machine morality & roboethics
    • natural language processing & computational rhetorics
    • history of ideas and technologies
    • digital diversity, open source (e.g. Linux) and maker movement
    • conservative techno-optimist
Digital Education @ UdK
Three topics of theoretical focus :
  1. Definition of Digital Education ("education-of" or "education-with" ?)
  2. Evaluation criteria for e-didactic tools, media and methods
  3. Parent participation in digital education

Two topics of PRAXIS :
  1. Evaluation and extension of "Computer Science Unplugged" curricula
  2. fibel.digital
Three references

  • fibel.digital

  • bildung.digital.udk-berlin.de

  • Neal Stephenson - The Diamond Age - Or, a Young Lady's Illustrated Primer

Session 1 - Primer Properties
Of main properties of the Primer, motivation behind them and means how to implement them
Didactic properties

  • behavioristisch und gewohnheits-hemmend

  • ludic, meta-ludic, lustig

  • narrative :: Standardmodus ist Märchenerzählung

  • sprach-basiert :: Sprachsynthese und Spracherkennung

  • cybertextual & wikipedisch :: alle Inhalte sind gegenseitig verknüpft

  • geschützt :: Lehrer(in) bestimmt wann&wofür das Gerät on-line gehen soll

  • script-basiert:: Lehrer(in) lädt das play-book ein (c.f. Ansible)

Today's work

  • Compose two teams

  • Team 1 :: Pi 3 :: Couple the touch with the screen

  • Team 2 :: Pi Zero :: Transform inkyphat into "hello world" badge

Homework
Think about all possible and impossible constraints (and obstacles) which could (and many of them also will ;) during the creative process.

Try to categorize these constraints into 3-5 main categories.
Physical properties

  • "embooked" :: ist wie ein Buch

  • einzigartig :: jeder π2 kann eigenen "look" haben

  • wandelbar :: Schüler kann eigene Teile (e.g. Einband) "basteln"

  • modular

  • robust

  • bilateral :: 2 Rechnungsmodule, 2 "Augen" (Kameras), 2 "Ohren" (Mikrophonen), 2 Bildschirme (1 x OLED, 1x E-tinte) u.s.w.

Propaedeutic Enchiridion
Team 2 protocol

  1. Establish the connection to Pi Zero

  2. ...

Cognitive properties

  • umgebungbewußt :: kennt eigene Position in 4D, Wetter etc. (hat GNSS- / Feuchtigkeit- / Druck- sensoren usw.) 

  • circadian & Cron-basiert :: Betriebsart ändert sich je nach Zeit (e.g. "schläft" wenn das Kind auch schlafen soll)

  • launisch :: hat Launen die nicht 100% verhersehbar sind

  • mit Vorlieben :: Valorisation bestimmter Interaktionsarten

  • kooperative :: hilft dem Kind eine Aufgabe selbst zu lösen

Categories of properties
  • Physische Eigenschaften 
    "embooked", einzigartig, wandelbar, modular, robust, zweiseitig
  • Kognitive Eigenschaften
    umgebungs-bewusst, zirkadian und Cron-regiert, launisch, mit Vorlieben, kooperative
  • Didaktische Eigenschaften
    behavioristisch, gewohnheits-hemmend, ludic, meta-ludic, lustig, mnemonisch, multimodal, sprachbasiert, cybertextual & wikipedisch, online-offline, geschützt, skriptbasiert, auge-2-auge, avatarisiert
Team 1 Protocol

  1. Establish the connection to Pi 3

  2. Find out all relevant parameters of touch & screen interfaces

  3. Develop a touch2screen mapping formula.

  4. Program a simple handwriting app in pygame

Session 2 - Constraints
Of constraints, their usefulness and influence they exerce on design and designers of the Primer artefact
Motto
Constraints are designer's (strongest) allies.
Team work


    • Presentatio (both teams)

    • :: Briefly present the protocols of last week team work.

    •  

    • Team 1 :: Pi 3 :: Activate the face recognition






  • Team 2 :: Pi Zero :: Activate the skywriter 3d gesture interface

Categories of constraints
...to which an artefact like digital Primer is to be a subject.




  •  

Homework
Think about all possible and impossible constraints (and obstacles) which could (and many of them also will ;) during the creative process.

Try to categorize these constraints into 3-5 main categories.
Digitale Fibel :: Project Participant Interaction Space 
Daniel :: Hello world !
Gero: hi
Akif:: Hey everyone! (:

Links and Mirrors
::


Raspberry Pi Kiosk Tutorial

Raspberry Pi Kiosk Tutorial

(mirror of https://bartsimons.me/raspberry-pi-kiosk-tutorial/)

The Raspberry Pi has proven itself to be a great computing device while keeping cost as low as possible. For less than $40 you are getting a great little device…

The Raspberry Pi has proven itself to be a great computing device while keeping cost as low as possible. For less than $40 you are getting a great little device with its 64-bit ARM processor. This made me think, would it be a good idea to turn the Raspberry Pi 3 into a kiosk?

The software that you'll need

A list is not even needed, because you only need three things: Raspbian Jessie Lite installed as the OS, the X11 display stack installed and the Chromium webbrowser installed on the Pi.

Why Chromium

Chromium is the open source variant of the popular Google Chrome browser. It has great potential for this project because of the --kiosk flag. With this option you can create a full-screen browser window inside your empty X11 session.

Installing the X11 display stack

You can install the X11 display stack on your Raspberry Pi with the following command:

sudo apt install xserver-xorg xinit

This will install the X11 server on your Pi together with the X11 server initialisation program. You also have to run this command:

sudo dpkg-reconfigure x11-common

To select who's authorized to start the X11 server. Make sure it is set like this:

x11-common package reconfiguration

Installing Chromium

Just run sudo apt install chromium-browser to install Chromium on your Pi. It's literally that simple.

Writing the .xinitrc script

When you execute the xinit command on your Pi, you will see a terminal window instead of Chromium. To fix this, you'll need to write a file in your home directory called ~/.xinitrc. This file contains everything that gets run when the X11 server starts up. So, edit this file with nano (or any other text editor) and make sure it looks like this:

.xinitrc file with Chromium

Save it, and try running Chromium by invoking the xinit command on your Pi.

But... my window is not fullscreen!

It could be that your Pi shows black borders around the screen, which has to do something with overscan. Open your /boot/config.txt file (with sudo) and add disable_overscan=1 to this file like this:

Disable Overscan

Reboot your Pi and the problem should magically disappear! (at least, that's what happened to me...)

Starting X11 at boot

Raspbian comes with a built-in tool to configure your Pi: raspi-config. Run this command on your Pi and you will be greeted with a command-line dialog window. Go to option 3 and press enter:

raspi-config main menu option 3

And then go for option 2:

raspi-config boot options option 2

Press enter, go to finish and when the program asks for a reboot choose yes.

Once you have rebooted your Pi, you'll have to do one more thing to finish this project: finally starting X11 at boot! My method might be more sophisticated than needed, but hey: it worked for me. Edit the ~/.bashrc file in your favourite text editor and add the following to the bottom of the file:

if [ -z "$SSH_CLIENT" ] || [ -z "$SSH_TTY" ]; then
    xinit -- -nocursor
fi

save the file and reboot your Pi. Enjoy your beautiful self-made Raspberry Pi Kiosk!

Load webpage from an URL specified in a file

A Raspberry Pi with the default partition layout contains two partitions: the OS partition, and the BOOT partition which is formatted in FAT32 and gets automatically mounted at boot. For example: create a new file in /boot/ called website.txt and put your desired URL in it. Finally to make it work you simply replace the URL in your ~/.xinitrc file with $(cat /boot/website.txt) and it should work! The thing is that you can actually see and modify contents of this file in Windows, since the BOOT partition is partitioned as FAT.

Templates
Initial digital primer templates.
wurzburger1
Session 7 :: The minimalist principle
The minimalist principle
Release minimal amount of energy to attain maximal (possible) optimization.
Optimization (a Merriam-Webster dictionary definition)

    • an act, process, or methodology of making something (such as a design, system, or decision) as fully perfect, functional, or effective as possible
    • the mathematical procedures (such as finding the maximum of a function) involved in this
Recordings
What You hear now is just a dim reflection of what You'll hear then.
Was ist das?
Fox once saw a Crow fly off with a piece of cheese in its beak and settle on a branch of a tree. "That's for me, as I am a Fox," said Master Reynard, and he walked up to the foot of the tree.
Fables
Animals
Syllables
Grammatic Stuff
Utterances
Session 8 :: Entwurf
  • 17.1. Entwurf
  • 24.1. Imprint
  • 31.1. Format
  • 7.2. Cybertext
  • 14.2. Fibel
mrGPL
Content of this folder and other recursively embedded folders is given to public domain under a morally restricted GPL licence.

LICENCE

(1) Any morally restricted human or computational agent is allowed to use, execute, copy, distribute, modify any file hereby contained (except this file LICENCE which is to be left intact as it is until time immemorial).

(2) Any form of usage, execution, copying, distribution or modification of data or metadata hereby contained performed by morally unrestricted agents shall result in curse of Adoniram.

(3) In case of any unambiguity, a standard GNU General Public License is to be applied.


DEFINTIONS

Morally Restricted :: A morally restricted is such an agent which shall not use, execute, copym, distribute and/or modify any files hereby contained for immoral activities.

Immoral Activity :: An immoral activity is a life-endangering or military or propaganda or profiling or spying or black-mailing or stealing or brainwashing or compassionless or uselessly harming or lying or violent activity, or any activity which disposes of features of such kind.

Curse of Adoniram :: A half-naked, gold-baken phoenician architect crying "Edris Edris WTF?" shall appear in dream of any morally non-restricted agent which shall dare to use this code in contradiction with points 1 and 2 of this licence.

Daniel D. Hromada

48AE Berlin
Hacks and Tricks
Some useful know-how for creation of Your own digital Primer.
raspi(usb)-raspi zero+inkyPhat hack

I just realized that a following hack could be worth trying:

1) we have the main PI with all pins already taken but with an available USB port

2) we connect the cheapest 5$ no-WIFI variant of RasPI Zero to the USB of the "main" PI, and we put the inkyPhat on this pi zero

3) wittyPi starts the main PI

4) power starts to flow to main PI's usb port, hence the small PI starts

5) the main PI can communicate with the zero in a sort of ethernet-emulated through USB, c.f. https://www.thepolyglotdeveloper.com/2016/06/connect-raspberry-pi-zero-usb-cable-ssh ... for example, an image to-be-displayed can be sent from the main PI to the zero

6) once the image is transfered and displayed on the inkyPhat, pi zero can communicate to the main PI that the job was done and halt

7) additionally, the main PI can shut down the USB port through which the zero was powered ... c.f. https://www.raspberrypi.org/forums/viewtopic.php?t=93463 , if  that hub-ctrl.c will work than it is a hammer

8) when a new image is supposed to be displayed on the inkyPHAT, power flow to the USB port can be reactivated and steps 4-7 can be repeated

The idea is to counterbalance the deficit of GPIO pins on a PI with communication with "peripheral" zeros, which have a new full set of GPIOs, are small and cost 5$ a piece...

Interface directives
LEFT (north, south) :: back in browser history
RIGHT (south, north) :: forward in browser history
DOWN (east, west) :: user info
UP (west, east) :: activity info
AIRWHEEL :: zoom 
Fibel :: Architectural primitives
Hardware is Raspberry Pi, OS is Raspbian which after booting automatically logs in the user fibel whose .bashrc specifies to launch xinit whose .xinitrec specifies to run chromium
Frontend is running in chromium which loads index.html which loads all the rest.

Interaction between backend services / sensors and frontend takes place by means of websockets. Every backend service pipes it outputs into pipes located in /dev/fibel, these pipes are created by bunch of gwsocket-daemons launched at startup, config file for service2port associations is in /etc/fibel/sockets.

All necessary frontend code for dealing with sockets is in js/sockets.js

/