Änderungen

Zur Navigation springen Zur Suche springen
Zeile 12: Zeile 12:  
* Umsetzung: z.B. als Plugin für Thunderbird
 
* Umsetzung: z.B. als Plugin für Thunderbird
   −
== PDF-Maschine ==
+
== PDF ==
 +
 
 +
=== Mini-Dokumentenmanagementsystem ===
 +
 
 +
* Status: Idee
 +
* Ziel: Einfache Volltextsuche auch gescannter Dokumente
 +
* Unterziele:
 +
** Keine Bindung an das Projekt, leichter Umstieg auf ein anderes (richtiges) [[DMS]]
 +
** Nutzung bisheriger Ordnerstruktur
 +
* Umsetzung
 +
** Es wird ein Erfassungs-Workflow geschaffen
 +
*** Schritt 1: Sofern das Dokument in Papier vorliegt, muss es
 +
**** gescannt
 +
***** z.B. mit Scanimage ([https://jvns.ca/blog/2020/07/11/scanimage--scan-from-the-command-line/ kann über Umweg auch PDF erzeugen])
 +
**** und per OCR erfasst werden
 +
**** Es wird ein PDF in der bestehenden Ordnerstruktur erzeugt, das einen Textlayer hat.
 +
*** Im Schritt 2 wird eine Text-Datei erzeugt,
 +
**** die den kompletten Textinhalt der Datei enthält und
 +
**** die im selben Ordner wie die Originaldatei liegt und
 +
**** die als Dateinamen den Namen der ursprünglichen Datei einschließlich Endung mit der zusätzlichen Endung ".mdms.txt" erhält
 +
** Es gibt ein Suchskript über die .mdms.txt-Dateien
 +
*** Basis wahrscheinlich [https://svij.org/blog/2017/03/08/suchen-und-finden-mit-ag-statt-ack-statt-grep/ ag] statt ack oder grep (in Kombination mit find)
 +
*** dies kann optional die gefundenen Dateien öffnen
 +
**** xdg-open in Verbindung mit dem Dateinamen der mdms.txt-Datei, jedoch ohne .mdms.txt
 +
* Erweiterungen
 +
** Es werden nicht nur Scanns erfasst, sondern auch bestehende Dokumente, z.B.
 +
*** mittels pdftotext bei PDFs, die aus einer Textverarbeitung stammen (also kein OCR benötigen)
 +
*** DOC, DOCX, ODS, ODT-Dateien
 +
** Es braucht ein Erfassungsskript, das die mdms.txt-Dateien anlegt.
 +
** Bei in Textform bereits vorliegenden Formaten, braucht es keine mdms.txt-Dateien. Insoweit muss das Suchskript lediglich erweitert werden. Beispiele
 +
*** Programmcode wie .js, .ts, .c , .cpp, .rs, .html
 +
*** Markup wie Markdown .md, .markdown und Asciidoc .adoc
 +
* Alternativen
 +
** openpaper PaperWorks
 +
*** unterstützt leider die bisherige Ordnerstruktur nicht.
 +
** https://github.com/darrenldl/docfd
 +
*** docfd arbeitet in einem Terminalfenster und stellt eine Art halbgrafisches [[grep]] für unterschiedliche Dokumentenformate (u.a. PDF, DOCX) dar.
 +
 
 +
=== Füge PDF in Word-Dokument ein ===
 +
* Status: Idee
 +
* Ziel: PDF-Datei in Word-Datei so einfügen, dass Kopf- und Fußzeilen in Word erhalten bleiben. Ggf. sollten die PDF-Seiten zugeschnitten oder skaliert werden können.
 +
* Umsetzung
 +
** Extrahieren der PDF-Seiten in PNG/JPEG-Bilder
 +
*** https://www.npmjs.com/package/pdf-img-convert
 +
** Einfügen der Bilder in Word an einem Platzhalter
 +
** [[Nodejs]]-Packages
 +
*** [https://github.com/dolanmiu/docx DOCX]-package zum Erzeugen von Word-Dateien.
 +
**** [https://dev.to/iainfreestone/how-to-create-a-word-document-with-javascript-24oi Einführung in DOCX und file-saver]
 +
*** https://www.npmjs.com/package/docx-templates
 +
*** https://github.com/alonrbar/easy-template-x
 +
*** Dagegen hat [https://www.npmjs.com/package/docxtemplater docxtemplater] nur ein kommerzielles [https://docxtemplater.com/modules/image/ Bilder-Modul].
 +
*** Bei https://www.npmjs.com/package/docx-template fehlt Dokumentation.
 +
*** [https://www.npmjs.com/package/nodeoffice NodeOffice] kann Docx-Dateien parsen, aber nicht schreiben (scheint nicht weiterentwickelt zu werden)
 +
*** https://www.npmjs.com/package/@microsoft/office-js
 +
** Weitere mögliche Hilfen
 +
*** [https://pandoc.org/demos.html pandoc] kann auch docx-Dokumente nach [[HTML]] und [[CSS]] konvertieren
 +
 
 +
=== Erzeuge PDF im Browser ===
 +
* Status: Idee
 +
* Ziel: Editor, der nach dem WYSIWG-Prinzip zumindest einfache Formatierungen des Texts erlaubt, die [[PDF]]s in einer Vorschau anzeigt, die PDFs zum Download anbietet, im Browser mit [[JavaScript]] und [[CSS]] arbeitet und in andere Anwendungen integriert werden kann.
 +
* Umsetzung
 +
** Darstellung mit drei Feldern:
 +
*** Eingabe/Editor-Feld (in HTML/JavaScript bzw. [[TypeScript]] implementiert)
 +
*** JSON-Feld, das den Text samt Formatierung ähnlich dem [http://pdfmake.org/#/ pdfmake.org]-Format anzeigt
 +
*** PDF-Feld,  in dem das mit [http://pdfmake.org/#/ pdfmake.org] erzeugte PDF mittels [[PDF.js]] in einem IFrame angezeigt wird
 +
** Features
 +
*** Markieren, Löschen, Formatieren
 +
*** Cut & Paste mit dem Systemclipboard
 +
 
 +
=== PDF-Maschine ===
    
* Status: Idee
 
* Status: Idee
 
* Ziel: Zurverfügungstellung eines virtuellen Netzwerkdruckers auf dem lokalen PC, der die Druckausgaben in [[PDF]]s umwandelt.
 
* Ziel: Zurverfügungstellung eines virtuellen Netzwerkdruckers auf dem lokalen PC, der die Druckausgaben in [[PDF]]s umwandelt.
 
* Umsetzung: Linux-Server mit [[CUPS]], PDF-Druckertreiber und [[Samba]]. Der PDF-Drucker sollte die PDFs in ein öffentliches Verzeichnis des [[Linux]]-Servers ablegen, auf das ([[Windows]])-Clients zugreifen können. Der Linux-Server wird in einer (kleinen) virtuellen Maschine mittels [[Virtual Box]] aufgesetzt. Diese Virtuelle Maschine sollte beim Booten automatisch gestartet werden.
 
* Umsetzung: Linux-Server mit [[CUPS]], PDF-Druckertreiber und [[Samba]]. Der PDF-Drucker sollte die PDFs in ein öffentliches Verzeichnis des [[Linux]]-Servers ablegen, auf das ([[Windows]])-Clients zugreifen können. Der Linux-Server wird in einer (kleinen) virtuellen Maschine mittels [[Virtual Box]] aufgesetzt. Diese Virtuelle Maschine sollte beim Booten automatisch gestartet werden.
 +
 +
=== PDF-Anmalen ===
 +
 +
* Status: Idee
 +
* Ziel: User soll PDF-Dateien im Browser eines Tablets (wie z.B. Microsoft Surface) öffnen und mit handschriftlichen Anmerkungen versehen können.
 +
 +
Das Ziel wird bereits durch Desktop-Programme erreicht:
 +
 +
* [http://xournal.sourceforge.net/ Xournal] (für Linux, Windows, Android)
 +
* [https://github.com/xournalpp/xournalpp Xournal++]
 +
* [http://www.dklevine.com/general/software/tc1000/jarnal.htm Jarnal] (Java-basiert, für Windows oder für Linux)
 +
 +
 +
Siehe auch für die Zeichenschicht:
 +
* [https://stackoverflow.com/questions/22891827/how-do-i-hand-draw-on-canvas-with-javascript# Stackoverflow: JavaScript-Freihandzeichnung]
 +
* [http://www.williammalone.com/articles/create-html5-canvas-javascript-drawing-app/ Tutorial Javascript Canvas]
 +
* [https://zipso.net/a-simple-touchscreen-sketchpad-using-javascript-and-html5/ Tutorial Javascript Freihand-Dots]
 +
* [https://gojs.net/latest/extensions/FreehandDrawing.html GoJS FreehandDrawing]
 +
* [https://www.drawerjs.com/ DrawerJS]
 +
* [https://developers.google.com/web/updates/2019/05/desynchronized Google Chrome hat eine Verbesserung bei der Latenz für Stylus-Anwendungen]: den <code>desynchronized</code> Hinweis für <code>canvas.getContext()</code>
 +
 +
Siehe auch für die PDF-Anzeigeschicht:
 +
* https://pspdfkit.com/blog/2018/render-pdfs-in-the-browser-with-pdf-js/
 +
* https://pdf-lib.js.org/
 +
 +
Siehe auch für die PDF-Modifikation:
 +
* https://pdf-lib.js.org/
 +
* https://github.com/DevelopingMagic/pdfassembler
    
== Farbname-App ==
 
== Farbname-App ==
Zeile 39: Zeile 136:  
* Ziel: Auf einer Website werden Inhalte anderer Webseiten vereinigt. Diese kann der Nutzer frei vorgeben, z.B. indem er eine URL samt XPATH zum abzubildenden Element mitgibt. Das könnte noch durch [[OpenData]]-Bestände erweiter werden, z.B.  
 
* Ziel: Auf einer Website werden Inhalte anderer Webseiten vereinigt. Diese kann der Nutzer frei vorgeben, z.B. indem er eine URL samt XPATH zum abzubildenden Element mitgibt. Das könnte noch durch [[OpenData]]-Bestände erweiter werden, z.B.  
 
** [https://opendata.dwd.de/ Wetterdaten des DWD] (siehe [http://www.dwd.de/DE/leistungen/opendata/help/inhalt_allgemein/opendata_content_de_en_xls.xls?__blob=publicationFile&v=7 Leistungsübersicht des DWD] <ref>vgl. https://www.golem.de/news/deutscher-wetterdienst-wetterdaten-sind-jetzt-open-data-1708-129258.html</ref>
 
** [https://opendata.dwd.de/ Wetterdaten des DWD] (siehe [http://www.dwd.de/DE/leistungen/opendata/help/inhalt_allgemein/opendata_content_de_en_xls.xls?__blob=publicationFile&v=7 Leistungsübersicht des DWD] <ref>vgl. https://www.golem.de/news/deutscher-wetterdienst-wetterdaten-sind-jetzt-open-data-1708-129258.html</ref>
 +
** [https://opendata.dwd.de/climate_environment/health/alerts/ Pollendaten für Deutschland in JSON-Form]
 
* Umsetzung: Zu verwenden wäre wohl die [[IFRAME]]-Technik. Als Alternative kann der Portalserver die entsprechenden Elemente laden und weitergeben.
 
* Umsetzung: Zu verwenden wäre wohl die [[IFRAME]]-Technik. Als Alternative kann der Portalserver die entsprechenden Elemente laden und weitergeben.
 
** Zur Auswahl des abzubildenden Elements kann man evtl. die Technik, die bei [[Zoho]] für die Einbindung fremder Inhalte in Tabellen verwendet wird, nutzen.
 
** Zur Auswahl des abzubildenden Elements kann man evtl. die Technik, die bei [[Zoho]] für die Einbindung fremder Inhalte in Tabellen verwendet wird, nutzen.
 +
 +
 +
=== Verkehr ===
 +
 +
Sinnvoll wären auch Abfahrtstafeln nahe gelegener Bahnhöfe / Stationen.
 +
 +
Siehe auch
 +
 +
* https://github.com/derhuerst/db-stations - Liste mit allen DB-Stationen
 +
* https://dbf.finalrewind.org/ - Abfahrtstafeln, über [[iframe]] integrierbar
 +
**  https://github.com/derf/db-fakedisplay/blob/main/README.md
 +
 +
* DB API Marketplace - meist kostenpflichtig
 +
** DB Timetables API - [https://developers.deutschebahn.com/db-api-marketplace/apis/node/26497 kostenfrei]
 +
*** https://pypi.org/project/deutsche-bahn-api/
 +
**** https://github.com/Tutorialwork/deutsche_bahn_api
 +
** https://github.com/ArduinoHannover/DBAPI
 +
** Railway Station Pictures - [https://developers.deutschebahn.com/db-api-marketplace/apis/product/118510 kostenfrei]
 +
*** Benutzt auf https://map.railway-stations.org/
 +
** [https://forums.livecode.com/viewtopic.php?t=35235 ältere Diskussion zu einem DB Departure Board]
 +
 +
 +
=== Bibliothek ===
 +
 +
* https://info.opacapp.net/androidconfigs/
 +
* https://github.com/opacapp/opacclient/blob/master/opacclient/libopac/README.md
    
== MediaWiki-Sync ==
 
== MediaWiki-Sync ==
Zeile 98: Zeile 222:  
* Lokaler Rechner übermittelt RESTORE Befehl an Remote Rechner, obiger Backup-Vorgang wird umgekehrt
 
* Lokaler Rechner übermittelt RESTORE Befehl an Remote Rechner, obiger Backup-Vorgang wird umgekehrt
    +
 +
== Mobiler Peer 2 Peer Dateiaustausch ==
 +
 +
* Status: Idee
 +
* Ziel: Große Dateien sollten direkt von Smartphone zu Smartphone übertragen werden können.
 +
* Lösungsansätze:
 +
** Mittels Teilen eines [[QR-Code]]s von Smartphone A kann das Smartphone B eine WLAN-Verbindung herstellen und die Dateien von Smartphone B herunterladen oder zu ihm hochladen.
 +
** Mittels WiFi-Direct müsste nur Smartphone A eine Android-App haben, auf Smartphone B reicht ein Browser.
 +
** Smartphone A - App müsste
 +
*** eine WiFi-Direct-Verbindung anbieten (ggf. einen QR-Code für die WLAN-Verbindung anzeigen)
 +
*** einen Mini-Web-Server zur Verfügung stellen, um eine Webseite für Smartphone B anzubieten
 +
*** einen QR-Code für den Zugriff des Smartphone B auf die Webseite anzeigen.
 +
** QRCode wird auf Smartphone A angezeigt, dieser von Smartphone B gescannt, die codierte URL verweist auf einen WebServer, der die Verbindungslogik enthält.
 +
*** Verbindungslogik
 +
**** Ein Websocket-Server dient als Datenaustauchbriefkasten
 +
**** Es wird eine direkte Verbindung mittels WebRTC hergestellt, nur hilfsweise auf den Websocket-Austausch zurückgefallen .
 +
***** https://stackoverflow.com/questions/29032884/why-is-a-signaling-server-needed-for-webrtc/29056385#29056385
 +
***** https://mac-blog.org.ua/webrtc-one-to-one-without-signaling-server/
 +
***** https://peerjs.com/docs/#start
 +
****** https://github.com/peers/peerjs/issues/103
 +
***** https://www.npmjs.com/package/node-datachannel
 +
***** https://shinyoshiaki.github.io/werift-webrtc/website/build/
 +
 +
*** Auslösen der Dateiübertragung entweder durch
 +
**** FilePicker im Browser oder
 +
**** [[Web Share Target API]] - Teilen-Knopf
 +
***** https://mconverter.eu/blog/web_share_target_api/ zeigt die Web Share Target API mit ein oder mehreren Dateien.
 +
**** [https://github.com/WICG/file-handling/blob/main/explainer.md File Handling API] - "Öffnen mit..."-Menü auf dem Desktop
 +
 +
** Cli app auf Basis von nodejs
 +
*** https://www.npmjs.com/package/qrcode
 +
 +
 +
Siehe auch
 +
** https://ostechnix.com/easy-fast-way-share-files-internet-command-line/
 +
* [https://ostechnix.com/transfer-files-between-computers-and-mobile-devices-by-scanning-qr-codes/ Qrcp]
 +
* https://www.mobileprocessing.org/p2p.html
 +
* https://developer.android.com/guide/topics/connectivity/wifip2p
 +
**https://developer.android.com/training/connect-devices-wirelessly/wifi-direct
 +
* https://wiki.gnome.org/NetworkManager/WifiDirect
 +
* https://unix.stackexchange.com/questions/370123/wifi-direct-between-linux-android
 +
* [https://www.qrdrop.de qrdrop.de] -
 +
** positiv: einfaches User Interface, Passwortschutz, guter Name
 +
** negativ: Beschränkung auf 10 MB, Hochladen auf einen Server statt P2P-Austausch, bisher wohl keine Nutzung der [[Web Share Target API]]
 +
 +
=== Vorhandene Alternativen ===
 +
 +
* https://webdrop.space/#/
 +
** wohl nur Weboberfläche, keine CLI
 +
* [https://transfer.sh/ transfer.sh]
 +
* [https://www.qrdrop.de qrdrop.de] -
 +
** positiv: einfaches User Interface, Passwortschutz, guter Name
 +
** negativ: Beschränkung auf 10 MB, Hochladen auf einen Server statt P2P-Austausch, bisher wohl keine Nutzung der [[Web Share Target API]]
    
== BGH-Leitsätze ==
 
== BGH-Leitsätze ==
Zeile 191: Zeile 368:  
* [http://www.miewa.de miewa.de]
 
* [http://www.miewa.de miewa.de]
 
* [http://blog.programmableweb.com/2011/06/21/lots-of-opportunities-to-dive-into-travel-apis/ Das ProgrammableWeb] bietet viele Infos rund um Web-APIs.
 
* [http://blog.programmableweb.com/2011/06/21/lots-of-opportunities-to-dive-into-travel-apis/ Das ProgrammableWeb] bietet viele Infos rund um Web-APIs.
 +
 +
== Sicherer Chat ==
 +
 +
=== Ziel ===
 +
 +
Es soll ein sicherer Messenger geschaffen werden mit Hilfe von [[Open Source]], Identifizierung an Hand von privaten / öffentlichen Schlüsseln (siehe auch [[Kryptographie]]) und dezentralen Chat-Servern, die ihrerseits die Namen der Teilnehmer nicht kennen, sondern lediglich die öffentlichen Schlüssel.
 +
 +
=== Anforderungen ===
 +
 +
Die Anforderungen orientieren sich ungefähr an einem einfachen Whatsapp-Dienst.
 +
 +
Whatsapp bietet
 +
* sofortige Kommunikation
 +
* leichtes Finden von Teilnehmern (über Telefonnummer aus Adressbuch)
 +
* niedrige Hürde der Kommunikation (keine Anrede, kein Betreff)
 +
* einfaches Nutzen von Gruppen
 +
** einfaches Hinzufügen
 +
** einfaches Austreten
 +
* so gut wie kein Spam (wahrscheinlich durch Identifikation der Absender mittels Telefonnummer und zentraler Kontrolle durch Whatsapp/Facebook)
 +
* Spaß durch Emoticons und sonstige Icons
 +
* Versenden von Bildern (zur Bandbreitenersparnis auch in niedrigerer Auflösung)
 +
* sichere Kommunikation (angeblich Ende-zu-Ende-Verschlüsselung)
 +
 +
 +
 +
=== Umsetzung ===
 +
 +
==== Use Cases ====
 +
* Ablauf des Versendens einer Nachricht
 +
** Nachricht wird auf Client A erstellt
 +
** Nachricht wird auf Client A mit privatem Schlüssel des A verschlüsselt
 +
** Nachricht wird auf Client A mit öffentlichem Schlüssel des B verschlüsselt
 +
** Nachricht wird an Server (oder Servercluster) mit Ziel (öffentlicher Schlüssel des) B übermittelt
 +
 +
* Ablauf des Empfangens einer Nachricht
 +
** Mittels [[HTTP-Long-Poll]] oder [[Server-Push]] wird die an (den öffentlichen Schlüssel des) B adressierte Nachricht vom Server (oder Servercluster) heruntergeladen.
 +
** Nachricht wird auf Client B mit privatem Schlüssel des B entschlüsselt.
 +
** Nachricht wird auf Client B mit öffentlichem Schlüssel des A entschlüsselt
 +
** Nachricht wird auf Client B gelesen.
 +
 +
* Senden an eine Gruppe
 +
** wohl Senden mehrerer Nachrichten durch Client????
 +
** oder Gruppenserver mit privatem/öffentlichem Schlüsselpaar???
 +
 +
* Hinzufügen eines Gruppenteilnehmers
 +
** ???
 +
 +
* Austreten aus einer Gruppe
 +
** ???
 +
 +
* Ausschließen aus einer Gruppe
 +
** durch Gruppeneigentümer - gibt es so etwas??
 +
 +
* Ausschließen des Empfangs von bestimmten Gruppenteilnehmern
 +
 +
* Ausschließen von Spam
 +
** Nur durch Geheimhaltung öffentlicher Schlüssel zur Identifikation der Teilnehmer ????
 +
 +
 +
* Hinterlegung der öffentlichen Schlüssel der Gesprächspartner in lokalen Kontakten des Smartphones
 +
 +
=== Weiteres aus dem Umfeld ===
 +
 +
* Möglicherweise ist [[XMPP]] ein Standard, auf den ein solcher sicherer Client aufgebaut werden kann.
 +
* Für [[Android]] hat G Data [https://www.securechat.com/ mit Secure Chat] bereits einen [[Open Source]]-Client und -Server entwickelt (aber wohl noch nicht dezentrale Serverstruktur).
 +
 +
 +
== Luigis Smart Home ==
 +
 +
Luigi möchte die Heizung seines Appartements selbst steuern und vielleicht irgendwann weitere [[Smart Home]]-Funktionen nutzen. Siehe [[Luigis Smart Home]].
 +
 +
== Halbautomatische Buchhaltung ==
 +
 +
* Idee: Kontoauszüge werden automatisch - aufgrund bestimmter Regeln oder Muster - bestimmten Kategorien und Unterkategorien zugeordnet.
 +
** Eine Zahlung (bzw. Teilzahlung) kann auch mehreren Kategorien zugeordnet sein.
 +
** Manche Kategorienarten (Sammlung von Kategorien) müssen der Zahlung zugeordnet sein (d.h. die Zahlung muss mindestens/genau einer der Kategorien der Kategorienart zugeordnet sein).
 +
* Umsetzung
 +
** Für die Konvertierung in ein gemeinsames Datenformat kann [https://daffodil.apache.org/ Apache Daffodil] eingesetzt werden.
    
--------
 
--------

Navigationsmenü