Active projects and challenges as of 22.12.2024 10:56.
Hide full text Print Download CSV Data Package
Briefing & Gipfeli
Dein Lieblings-Café druckt dir den Morgennewsletter direkt aufs Kassenzetteli.
Basel Briefing» + Kassenzetteldrucker = ❤️
«1 Cappuccino to-go im eigenen Becher, macht 5.60, soll ich Dir gleich noch das Basel Briefing auf den Zettel drucken?»
In der Challenge «Briefing & Gipfeli» suchen wir nach Möglichkeiten, ein reales Kassensystem automatisch mit dem E-Mail-Newsletter von Bajour (weitere Möglichkeiten: von tsüri.ch, hauptstadt.be) zu verbinden und über den Drucker für Quittungen auszudrucken. Zum Ausprobieren (auch vorher, wir können Dir einen zuschicken!) haben wir drei mit Raspberry PI kompatiblen Mini-Drucker zur Verfügung:
Danach geht's an ein echtes Kassensystem, wir verhandeln gerade noch mit lokalen Kaffee-Betreibern, update folgt.
Das «Basel Briefing» kommt jeden Morgen um 7 Uhr per E-Mail, hier kannst du es abonnieren und hier findest du das Archiv
Confediverse Helvetica
To boldly tröt where no journalist has tweeted before! 👽
Image: Can Mastodon be a reasonable Twitter substitute for journalists? created by Nightcafe
At the Rethink Journalism hackathons, we take a look under the hood of tools like wepublish, take questions and ideas from newsdesks and go for a test-drive, get to know their tech teams and primary users.
On participant request, a short workshop on publishing in the Fediverse was hosted at the Bajour office. Some of us continued work on setting up a Mastodon instance, with the Press Codex as governing principle. We researched some governance models that help to create thriving communities around discussing the news.
Our initial hypthesis, is that the Fediverse can provide not only a viable alternative for promoting content, but also to facilitating online discussion, and even as infrastructure for crowdsourced and investigative journalism. The combination of these previously disparate processes into one powerful cross-platform medium, should empower individual journalists and newsdesks in years to come.
Results
We set up an alpha instance of GoToSocial (a new, Mastodon-compatible project) at the hackathon, and a few days later set up a second server with an installation of the official Mastodon server. A domain name (fedi.watch) was reserved, and an open wiki (GitHub) set up to collect ideas and initiatives from the community.
- Campaign: fedi.watch
- Alpha test: GoToSocial
- Beta test: Mastodon
- Wiki: GitHub
The Challenge
People are shifting from Twitter to Mastodon, and if I'm correct, it's like a protected space where we can set rules and manage issues together. If people sign up and post to a protected instance for journalists, they should have a Code of Conduct (Presserat Codex) that sets rules and trust levels for people who join. The questions we would like to explore at the hackathon are:
- How to use Fediverse for journalism?
- What is the potential of it? How is the social space governed?
- Do not reproduce The Bird, use the open tools!
- How does the ActivityPub protocol work, that allows people to follow across networks and services?
Presented by ^miriam ^samuel
Team
- Miriam is working for Netzcourage.
- Samuel is a journalist and technologist with Bajour.
- Oleg supports events and infrastructures at Opendata.ch.
Process
We are setting up a beta test environment with Fediverse (Mastodon) news products. We will introduce this service for journalism, and invite others to join the beta test environment. We have used federated services and protocols, and will share our experience as well as helping to connect useful tools and data sets to the needs of journalists who wish to create an online presence, or run investigations and content curation in the Fediverse.
Workshop
We ran a workshop on Friday with the group of journalists at the hackathon and explored a number of issues, suggested lots of starting points. These are documented in the Readme tab above and can be expanded on in our pad: https://pad.okfn.de/p/rejoha22-fediverse
On Friday night we tried to install a Mastodon server using Ansible and Heroku. Both did not work out of the box. We tried to look for a simple, up to date, one-click solution to deploying Mastodon. With all the people trying to run an instance, this seems to be a gap. We tried:
- https://github.com/mastodon/mastodon-ansible
- https://github.com/linuxserver/docker-mastodon
- https://elements.heroku.com/buttons/tootsuite/mastodon
- https://cloud.linode.com/stackscripts/community?query=mastodon
There is a list of "dedicated Mastodon hosting providers" at https://docs.joinmastodon.org/user/run-your-own/
We thought it would be quite fun to run Mastodon on a Raspi, and flashed an SD card on a Raspberry Pi 4. However we had issues getting a screen connected and let this idea go.
On Saturday we branched out a bit: Miriam did some research but had to leave at lunch, Oleg did a bit more work here but mostly helped other teams, and brainstormed infosec topics - then briefly presented our status.
Since Sunday, we have an alpha instance is up and running at https://alpha.openlegallab.ch/ - based on:
https://github.com/superseriousbusiness/gotosocial
Ask Oleg for an account and instructions if you would like to try it!
Fediverse Workshop "all your tweets are belong to us" @ Bajour
(Oleg & Miriam)
1. Einführung und Overview
Fediverse (Big Picture), seine Tools und Services
https://digitalcourage.de/digitale-selbstverteidigung/fediverse
https://www.eff.org/deeplinks/2022/11/fediverse-could-be-awesome-if-we-dont-screw-it
https://wiki.p2pfoundation.net/Fediverse
Fokus Mastodon: Kleine Einführung
Wie sich verbinden?
https://pad.wolkenbar.de/s/mastodon# (Deutsch)
https://benwerd.medium.com/the-fediverse-is-happening-heres-how-to-take-part-11c42f5ebefd (English)
Welche Server gibt es, wie finde ich sie, wie zügeln?
https://fediverse.observer/map
Welche Services helfen cross-posting zu einrichten?
https://github.com/cquest/tootbot
Der Weg zu meine Community finden
- Tools für Migration und Kontakte übernehmen
- Volle Adresse in Displayname, als Link, oder Pinned tweet
- Debirdify (Welchen Server nutzen meine Twitterkontakte?)
2. Brainstorming
Regeln, Codex, Massnahmen? (Alle)
Was bedeutet das für Journalismus?
Stärken/Chancen
Gute Quelle für zensurfreie Informationen, verifizierte Quellen, Verifizierungsmöglichkeiten, Berechtigungen auf Beitragslevel möglich
Schwächen/Risiken
Sozialer Dialog verloren, Fakenews Verlorene Inhalten und Behaviors (likes usw.)
Übergeordnete Regeln
Netiquette https://www.rfc-editor.org/rfc/rfc1855
Journalistenkodex (CH) https://presserat.ch/journalistenkodex/erklaerung/
SPJ (USA) https://www.spj.org/ethicscode.asp
https://santaclaraprinciples.org/
Weitere Regeln?
https://github.com/dribdat/docs/wiki/Guidelines
3. Call to Action!
Folgt uns, bitte :) https://fosstodon.org/tags/rejoha22 - Ihr werdet alle zurück gefolgt und boosted!
Trete heute der Alpha Instanz bei und sieh es dir an. Hier können Experimente durchgeführt und ihre Vorschläge implementiert sein.
Wir teilen unsere Erfahrungen und Empfehlungen in einem Präsi und Webseite mit.
4. Nächste Schritte
Beta-Test aaS aufsetzen (Info, Kosten, ..)
Wer macht im Betatest mit? Weitere vor allem journalistische und institutionelle Partner gesucht.
Wir organisieren weitere Workshops, an Hackathons, Winterkongress, usw.
X. Parkplatz/ Links
https://www.avatter.de/wordpress/2022/11/twitter-alternative-mastodon-hitlergruss-nach-feierabend/
Wayback Machine: Beispiel von einem archivierten Tweet https://web.archive.org/web/20220000000000*/https://twitter.com/lrozen/status/1502789856912625666 https://help.twitter.com/en/managing-your-account/how-to-download-your-twitter-archive Twitter Archivist — turn your tweets into a non-linear personal web notebook https://tiddlywiki.com/prerelease/editions/twitter-archivist/ https://debirdify.pruvisto.org/ https://botwiki.org/resource/tutorial/introduction-to-mastodon-bots/ https://blog.joinmastodon.org/2018/06/how-to-implement-a-basic-activitypub-server/ https://federated.press/about https://ungleich.ch/u/products/mastodon-hosting/ https://github.com/loleg/mastodon-ansible https://www.trust-j.org/
Y. Further thoughts
I follow you, you follow me, we are troot troot family 🎶 A small animation to explain ActivityPub Mention open data projects like Hypercore, IPFS, Solid, harvesters, DCAT which federate content at various degrees of formality. A Mastobot to share new data sources, respond to "data tips" from the community. This is not your grandpa's soapbox forum. Fediverse unifies readership responses, allows threads to develop across articles and across publications. Big media, but also traditional business models, fear this loss of control. Do you? We need incentives for community moderation badly. Twitter, Facebook, Mastodon, all sink under the weight of info-spam and hate speech. Let's continue this urgent, critical conversation - and HACK solutions together!
Daten-Cockpit für Klima-journalismus - Klimacockpit Basel
Alle Informationen über regionale Entwicklungen, Ziele, Zahlen und Events rund ums Klima.
Der Klimawandel ist oft abstrakt und weit weg. Das Klimacockpit Basel, soll den Klimawandel in der Heimat erfahrbar, greifbar und lösbar machen. Was sind die Klimaziele der Stadt Basel? Wie hoch war der Stromverbrauch im letzten Monat? Welche Veranstaltungen gibt es heute Abend zum Thema Klima? Was sagen die Medien über den Klimaeandel in Basel? Diese Fragen wollen wir übersichtlich und ansprechend auf einen Blick zur Verfügung stellen. (Challenge Bild)
What we did
- Compile a list of relevant data: https://docs.google.com/spreadsheets/d/17jgiJGsqgzERuI0SKjBU9G4qVDWP7LDgbVG89a-CfCY/edit#gid=0
- load 7 datasets into a postgres database and cleaned some of them
- created a bunch of basic proof of concept visualizations: https://observablehq.com/d/fa0dc118c88f6b19
- The present tables in the DB can be viewed in Observable when clicking on "Databases" on the right and browsing.
- Create a mockup: https://www.figma.com/file/wmepXvbtcSiGvrQFzJWuqB/Untitled?node-id=0%3A1&t=m0U5xnds6qWpOXdi-1
Die ganze Fasnacht in einem Bild
Mit der Open-Source-Software "Timebased Photoraphy" könnte dem Weltkulturerbe ein Denkmal gesetzt werden.
Der Basler Künstler und Schriftsteller Hannes Bajohr experimentiert seit Jahren mit einer Technik, die er "timebased photography" nennt. Die Idee: Ein Video wird, Frame für Frame, zu einem immer breiteren Bild zusammengefügt, wobei pro Frame nur ein 1-Pixel-breiter Streifen verwendet wird. Daraus entstehen verzerrte Aufnahmen wie diese:
Für Bajour stellt sich die Frage: können wir so den Cortège der Basler Fasnacht in einem noch nie dagewesenen Format festhalten? Wie kann das möglichst verzerrungsfrei erstellt werden, wie wird es angezeigt (seitlich scrollbar, aber trotzdem schnell geladen)? Und wäre es möglich, dass Leser*innen sich selbst oder andere Mitlieder ihrer Clique markieren können? Und last but not least: würde sich ein solches Mega-Foto auf einem Drucker mit Endlospapier ausdrucken und ausstellen lassen?
Alle Infos im Github-Repo von Hannes Bajohr, zudem lohnt es sich, ihm bei Twitter zu folgen.
Time-based photography
Installation:
Simply copy both files tbpmain.py and tbplib.py into a folder; open the main file in an editor, add the path info, and change the parameters. I might make a version with flags later, but I like to see the possible options. You will need to install the dependencies numpy and PIL.
Description:
This is a project I have been working on and off for more than a decade (the earliest version I have on my drive is from 2008 and was started in Processing, but I let it rest for quite a while). The basic idea is to conceive of a photograph as a function over the time of a video file. While a photograph is a projection of a point in time onto a static image, time based photography, as I understand it, compresses a temporal sequence into such a static image.
The project works in two ways:
1) Video -> Image(time)
For each frame of a video file, a single vertical strip of a pretermined width is extracted; the sum of these strips is concatenated and returned as an image file.
1.1) Static camera, moving objects
Here is an example of a person walking past my window.
**Input video (recorded in slow motion): **
**Output image: **
The output input is a function of time of the input video; as the video is static, only the differential movements are captured in the image. Notice that this translates to interestingly distortions where some parts are longer in one place than others (the feet), and to a reversal of directions: Even though the car is passing by from right to left in the video, in the image, it appears to drive from left to right. The same with the people, who also walk in different directions but in the image appear to face the same way. The reason for this is that all movements are mapped continuously onto the image. This video helps to understand how it works:
Here, it is best to use slow-motion footage so that ideally each frame of the output image covers the movement of one pixel in the video. The movement mapping and its distortion are especially interesting for moving bodies. This is, for example, how I made my profile image:
Input video:
Output image:
(The video was longer, I turned more than once. Notice how I sometimes stray too far from my axis so that, for instance, my mouth appears twice, hanging in mid-air.)
1.1) Moving camera, static objects
Another approach is to move the camera so as to avoid the background repetition. Here, the effect is similar to the "panorama" feature on many cell phones. Since here we don't have a single vanishing point, this is also the reduction of perspectival space in a static image, in effect producing an isomorphic image (or at least an image with more than one vanishing point).
Here is a video of my old stop at 125th St in New York turned into an image. (This time, the "slices" are wider than one pixel as this was taken in, I think, 2013 before the iPhone allowed slo-mo.)
Input video:
Output video:
Here is another, smoother image from a slo-mo video.
Input video:
Output video:
You can see how objects moving in the foreground move faster and are thus compressed, while those in the background, moving slower, are extended. Notice also how the straight bridge becomes curved due to the differential movement. (Panofsky would have liked this.)
2) Image(time) -> Video(perspective): Operation 1) is repeated for every possible vertical "slice".
For each of the images above, I had to make the decision which pixel on the x axis I chose as the position of the "slice." For instance, for the very first image, I chose the center slice (the vertical line equidistant from each of first and the last row of pixels in the image; you can see this in the composite video well, where I had to cut the video in half to show how it maps onto the image).
But for an image of a width of n pixels, there are also n possible positions for these "slices." The output will be different as time passes between the first and the last, be it the camera or an object; also, especially for videos with a lot of depth, there is a slight difference in perspective between the first and the last "slice."
For example, this is the output for the video from above of the 125th St stop, taken at difference "slice" positions (the video was 1080 pixel wide):
Very first row of pixels (n=0):
Center row of pixels (n=540):
Last row of pixels (n=1080):
This makes intuitive sense of you remember that this is taken from a moving train: The corner of the building in the middle would move in and out of frame, first only as an edge blocking the view into the street, then lining up with the perspective of the street, and finally showing the facades of the street. Since the last row of pixels captures the first phase and the first row (as the camera is moving from left to right) the last phase of that movement (time having passed), the perspectives are different.
Now, since this can be done for all n rows of pixels of a video, one can turn the total of all these slightly different images into a video again. The result is something like a derivative of the video's time function.
Here it is for the 125th St stop (still a bit blocky):
(This was an early attempt; I made a mistake in the script so the last few slices are repeated.)
And here is the "derivative" for the other train video:
I like how the fact that the background in the video moves slower than the foreground translates into the reverse: Now it is the background that moves while the foreground remains static - it is as if the perspective had been flipped in some way I don't quite have a name for yet.
This works also for videos where the camera remains static. Here is a similar shot of my old street as above:
Two things are interesting here: First, the slow black flicker on the bottom half of the screen are the vertical bars of the fence you see in the first video. And second, you can see how the people in the background appear to go backwards - they are still flipped but now move in the correct direction!
And here is a similar shot as before with me rotating:
Combining static and moving approach
Recently, I have been combining the static and the moving approach by mounting my phone on a slow rotating tripod. This way, you get both the background as well as moving objects without either of them blurring. The results can be absolutely freaky, as in this street scene from Berlin:
Input video:
**Output video: **
To me, this looks insane - the combination of both approaches makes them look like they are floating, and the perspectival stretching/compressing makes the jogger smaller than the lamppost he is jogging in front of.
Hacking Robots
🤖 Kann unser Wand-Schreib-Roboter Stimmenzähler sein? 🤖
Um Kosten zu sparen, hat Bajour seit einigen Wochen einen Schreib-Roboter von Scribit. Er kann an Wände und Fenster schreiben und es ist ein bisschen wie Magie:
Wenn man die korrekten Bilder hochlädt (Vektorformat in der genau richtigen Auflösung), dann macht er alles, was man will. Doch wäre es möglich, dass er die Kommandos von der Wepublish-Api zur Frage des Tages erhält und für jede Stimme ein Strichli macht?
Kampagne, um Anzahl NL-Abonnent:innen zu steigern
Wie schafft man es, neue Abonent:innen für den Newsletter zu gewinnen? Die langfristig bleiben. Fette Kampagne mit 0 Budget. 😄
Responsible News Recommender Systems
Wie kann man ein transparentes System bauen, das plattformübergreifend automatisierte und/oder personalisierte Artikel-Empfehlungen macht?
https://speakerdeck.com/sina_jb/hackathon-challenge-pitch-221124
Die digitale Transformation hat sich sowohl auf die Nachfrage und Nutzung von Nachrichten als auch auf die Produktion und Verbreitung von Nachrichten tiefgreifend ausgewirkt: die Nutzer*innen sind mit einer immer größeren Auswahl an Medien und Informationsquellen konfrontiert und konsumieren Nachrichten zunehmend online, z.B. über soziale Medien.
Auf solchen Plattformen werden Inhalte zunehmend über Algorithmen automatisiert und personalisiert vorgeschlagen. Klassische Medienorganisationen spielen zwar immer noch eine zentrale Rolle, gerade auch in der Schweiz. Sie sind aber mit einer sinkenden Zahlungs-Bereitschaft der Nutzer*innen, sinkenden Werbeeinnahmen und einem verschärften Wettbewerb um Aufmerksamkeit konfrontiert. Um mit diesen Veränderungen mithalten zu können, experimentieren auch klassische News-Medien u.a. zunehmend mit algorithmischen Nachrichtenempfehlungssystemen.
Allerdings ist die Entwicklung guter Empfehlungssysteme teuer, aufwendig und kompliziert. Deshalb wir heute häufig auf Topic Similarity und vor allem auf Popularität gesetzt. Was bleibt auf der Strecke, wenn wir uns auf popularitätsbasierte Empfehlungssysteme konzentrieren? Welche Kategorien, z. B. Themen, Regionen, Akteure, Formate usw., sind über- oder unterrepräsentiert? Was müsste in einem diversitätsmaximierenden Recommender gepusht werden? z.B. welche Kategorien, z.B. Themen, Regionen, Akteure, Formate etc. Und kann dies auf transparente Weise geschehen, z..B. indem man aufzeigt, warum etwas empfohlen wird?
tsueri stats
Using a csv file downloaded from the tsueri.ch backend to plot some essentials about members
tsueri stats
Was brauchen Schweizer Lokalmedien für die digitale Wiedergeburt?
Was sind die stärksten Bedürfnisse an Infrastruktur? Was braucht es für die Arbeit auf Gemeinde-Ebene? Wo muss We.Publish ergänzt werden?
https://youtu.be/_yrcSgAgMkI?t=3052
Ich stehe im Zentrum. Ich gebe meine Adresse an und will Service.
Was passiert heute in meinem Umkreis. Service. Service. Service. Wetter wo ich bin wo ich hingehe auf dem Weg (ggf) Luftqualität Agenda Abfuhrtermine Baueingaben Ausserordentliche Events: Tigermückenprävention Strassensperren
Was suche ich immer in meinem Umkreis? Sammelstellen Einkaufen nächste öV-Haltestelle mit Abfahrten Carpooling (Mobility), E-Scooter (TIER) Bio-Klappen für Kompost Ladestation E-Auto Anschlagbrett “Volg”
Was suche ich an bestimmten Orten? Parkplätze
Grundsätzlicher Service: freie Wohnungen / Immobilienmarktplatz Badetemperaturen politische Vorstösse Covid Politik Abstimmungen grosser Rat Jobs Kleinanzeigen
Weil schön, lustig oder sonst was: Geburten Scheidungen Wilde Abfallsammlungen Index Konsumentenpreis: Ist Basel schon wieder teurer? steile Velostrecken Tagesmenü der Restaurants in der Nähe
Herausforderungen: Lokalisierung: PLZ, Koordinaten, Umkreis Definition “Was ist nah?” > auch eine Frage der Dichte (Stadt / Land: 1km Umkreis auf dem Land hat kaum Resultate, 1km Umkreis in der Stadt sehr viele) Lokale Erweiterungen / Erfassungstool: z.B. Bajour will Restaurantführer machen