Änderungen

Zur Navigation springen Zur Suche springen
4.838 Bytes hinzugefügt ,  17:28, 7. Dez. 2025
Zeile 1: Zeile 1:  
== Aktuelles ==
 
== Aktuelles ==
   −
* Siehe  
+
Siehe  
** [http://www.heise.de/developer heise.de]
+
* [http://www.heise.de/developer heise.de]
** [http://www.golem.de golem.de]
+
* [http://www.golem.de golem.de]
 
* [http://www.heise.de/developer/podcast/ Heise.de - Podcast für Entwickler]
 
* [http://www.heise.de/developer/podcast/ Heise.de - Podcast für Entwickler]
 +
* [https://open.hpi.de/courses Kurse zu IT des Hasso-Plattner-Instituts]
    
== Programmiertechniken ==
 
== Programmiertechniken ==
Zeile 143: Zeile 144:  
* [http://www.eclipse.org/jubula/ Eclipse Jubula] kann u.a. [[Java Swing]]-Anwendungen testen.
 
* [http://www.eclipse.org/jubula/ Eclipse Jubula] kann u.a. [[Java Swing]]-Anwendungen testen.
 
* [https://www.qfs.de/de/index.html QF-Test], eine proprietäre Testsuite u.a. für [[Java]]-Desktopanwendungen z.B. mit [[Swing]]
 
* [https://www.qfs.de/de/index.html QF-Test], eine proprietäre Testsuite u.a. für [[Java]]-Desktopanwendungen z.B. mit [[Swing]]
 +
 +
=== Low Code ===
 +
 +
Low Code oder [https://de.wikipedia.org/wiki/No-Code-Plattform No Code] sind Entwicklungsumgebungen, die mit verhältnismäßig mächtigen Elementen arbeiten, um rasch Anwendungen entwickeln zu können.
 +
 +
Beispiele:
 +
 +
* [https://www.airtable.com/pricing Airtable]
 +
* [https://www.make.com/ Make], früher als Integromat bezeichnet
    
== Reguläre Ausdrücke ==
 
== Reguläre Ausdrücke ==
Zeile 151: Zeile 161:  
== Künstliche Intelligenz ==
 
== Künstliche Intelligenz ==
    +
 +
=== Allgemeines ===
 
Siehe [[Neuronale Netze]]
 
Siehe [[Neuronale Netze]]
 +
 +
=== ChatGPT ===
 +
 +
ChatGPT ist eine künstliche Intelligenz, mit der man Dialoge im WhatsApp-Stil führen kann. Es kann nach Anmeldung auf openai kostenlos genutzt werden.
 +
 +
Eine lustige Anwendung ist [https://www.ricoshet.com/ ricoshet.com]; dort spricht - nach Vorgabe eines Themas - ChatGPT mit sich selbst.
 +
 +
Siehe
 +
* https://www.golem.de/news/kuenstliche-intelligenz-so-funktioniert-chatgpt-2302-171644-3.html
 +
 +
=== Sprachmodelle ===
 +
 +
Viele andere Sprachmodelle kann man auch lokal (und kostenlos) testen. 32GB sind aber mindestens erforderlich, 64GB machen die Nutzung rascher.
 +
 +
Als Tool bieten sich an:
 +
* [https://msty.ai/ Msty] an.
 +
* GPT4all
    
== Datenbanken ==
 
== Datenbanken ==
Zeile 205: Zeile 234:     
HSQLDB ist eine kleine Java-Datenbank, die auch In-Memory-Tabellen bietet. Zusammen mit Hibernate kann sie auch als Persistenzschicht für POJOs genutzt werden.
 
HSQLDB ist eine kleine Java-Datenbank, die auch In-Memory-Tabellen bietet. Zusammen mit Hibernate kann sie auch als Persistenzschicht für POJOs genutzt werden.
 +
 +
==== AlaSQL ====
 +
[https://github.com/AlaSQL/alasql/wiki/Sql AlaSQL] ist eine SQL-Abfragesprache für JSON-Daten. AlaSQL kann auch Excel-Tabellen lesen.
    
=== NoSQL ===
 
=== NoSQL ===
Zeile 210: Zeile 242:  
Siehe
 
Siehe
    +
* [[SurrealDB]]
 +
* [https://github.com/nocodb/nocodb NocoDB]
 
* [https://www.openxava.org/ate/matrify-alternative OpenXava] erlaubt mit einfachen [[Java]]-Klassen recht schnell Web-Datenbankanwendungen zu erstellen.
 
* [https://www.openxava.org/ate/matrify-alternative OpenXava] erlaubt mit einfachen [[Java]]-Klassen recht schnell Web-Datenbankanwendungen zu erstellen.
 +
* [https://www.edgedb.com/docs/intro/quickstart#ref-quickstart EdgeDB]
 +
* LowDB - kann nicht als wirkliche Datenbank bezeichnet werden, aber möglicherweise sinnvoll für Persistenz von wenigen Daten.
 +
 +
==== Convex ====
 +
 +
[https://www.convex.dev/ Convex]
 +
 +
* TypeScript im Server und im Client
 +
* Authentication
 +
* Authorization (sehr flexibel)
 +
* Nutzt generierten Code im Client - Projektstruktur wird von Convex grundsätzlich vorgegeben.
 +
* hat derzeit (Dezember 2025) [https://stack.convex.dev/object-sync-engine keine vollständige Offline-Funktionalität]. Aber angeblich schaut sich das Convex-Team das näher an.
    
==== CouchDB ====
 
==== CouchDB ====
Zeile 218: Zeile 264:  
==== Echtzeit-Datenbanken ====
 
==== Echtzeit-Datenbanken ====
    +
* [[AceBase]]
 
* https://rethinkdb.com/
 
* https://rethinkdb.com/
 
* Die in Google Firebase integrierte Echtzeitdatenbank
 
* Die in Google Firebase integrierte Echtzeitdatenbank
 
** https://levelup.gitconnected.com/todo-app-using-firebase-react-typescript-ea0a34bd417d
 
** https://levelup.gitconnected.com/todo-app-using-firebase-react-typescript-ea0a34bd417d
 +
* [[SurrealDB]]
 +
* [[Supabase]]
    
=== Datenbanken als Service ===
 
=== Datenbanken als Service ===
Zeile 238: Zeile 287:  
* [[IndexedDB]]
 
* [[IndexedDB]]
 
** kann in [[Node.js]] z.B. zum Testen imitiert werden, siehe [https://www.npmjs.com/package/fake-indexeddb fake-indexeddb]
 
** kann in [[Node.js]] z.B. zum Testen imitiert werden, siehe [https://www.npmjs.com/package/fake-indexeddb fake-indexeddb]
 +
* [https://github.com/julienetie/db64 db64] ist ein kleiner Wrapper um [[IndexedDB]]
 +
* [https://github.com/jakearchibald/idb idb] ist wohl der häufigst genutzte Wrapper [[IndexedDB]]
 
* [https://dexie.org/ Dexie.js], unterstützt auch [[TypeScript]]
 
* [https://dexie.org/ Dexie.js], unterstützt auch [[TypeScript]]
 
* [https://nanosql.io/ NanoSQL]
 
* [https://nanosql.io/ NanoSQL]
Zeile 255: Zeile 306:     
* https://restdb.io/features/
 
* https://restdb.io/features/
 +
 +
=== Append-only Datenbanken ===
 +
 +
Unveränderliche Datenbanken, also Datenbanken, die die gesamte Historie bis zum Erreichen des aktuellen Status behalten, (Insert-only- bzw. Append-only-Datenbanken) gibt es in unterschiedlicher Ausprägung.
 +
 +
Z.B.
 +
* Oracle Immutable Tables (oder Blockchain-Tables)
 +
* temporale Tabellen mit "as of <timestamp>"-Operator
 +
** [https://mariadb.com/kb/en/system-versioned-tables/ MariaDB]
 +
* Datenbanken mit Versionskontrolle
 +
** [https://www.dolthub.com/ Dolt]
 +
** [https://terminusdb.com/ TerminusDB]
 +
* [https://immudb.io/ ImmuDb]
 +
* [[BigchainDB]] - blockchain-basiert
 +
 +
 +
Siehe auch
 +
* https://www.dolthub.com/blog/2022-03-21-immutable-database/
 +
* https://en.wikipedia.org/wiki/Merkle_tree
    
== Webbrowser steuern ==
 
== Webbrowser steuern ==
Zeile 340: Zeile 410:  
* [http://www.htmlgoodies.com/html5/client/the-complete-guide-to-building-html5-games-with-canvas-svg.html#fbid=1sCuPBXjCgS Anleitung zum Bau von HTML5-Spielen auf Basis des Canvas-
 
* [http://www.htmlgoodies.com/html5/client/the-complete-guide-to-building-html5-games-with-canvas-svg.html#fbid=1sCuPBXjCgS Anleitung zum Bau von HTML5-Spielen auf Basis des Canvas-
 
Elements]
 
Elements]
 +
 +
==== HTML5 Web Share API und Web Share Target API ====
 +
 +
Auf Mobil-Browsern wird die Web Share API, mit der Webapplikationen Inhalte mit nativen Apps "teilen" können, bereits weitverbreitet.
 +
 +
Eher suchen muss man noch die [https://w3c.github.io/web-share-target/level-2/ Web Share Target API], mit der Webapplikationen im nativen "Teilen"-Dialog der Smartphones bzw. im "Öffnen mit ..."-Dialog der Desktops erscheinen können. In [[Chrome]] scheint es sich noch hinter einer Einstellung zu verstecken. Zu den Einstellungen kommt man mit chrome://flags.
 +
 +
Siehe
 +
* https://mconverter.eu/blog/web_share_target_api/
 +
* https://web.dev/web-share-target/
 +
    
==== HTML5 Frameworks ====
 
==== HTML5 Frameworks ====
 +
===== React =====
 +
Siehe [[React]]
 
===== Ember.js =====
 
===== Ember.js =====
   Zeile 490: Zeile 573:  
Siehe
 
Siehe
 
* https://pouchdb.com/2015/05/18/we-have-a-problem-with-promises.html
 
* https://pouchdb.com/2015/05/18/we-have-a-problem-with-promises.html
 +
 +
==== Module ====
 +
 +
In JavaScript haben sich verschiedene Formate für Module etabliert.
 +
 +
Allerdings scheint zumindest in ES6 nicht mehr sicher zu sein, dass beim Import eines
 +
Moduls von mehreren verschiedenen Modulen dieses eine Modul als Singleton importiert
 +
wird. Siehe Kommentare zur [https://stackoverflow.com/questions/69896862/javascript-imports-do-they-duplicate Stackoverflow-Frage].
    
=== Coding Style ===
 
=== Coding Style ===
Zeile 576: Zeile 667:  
* [https://www.npmjs.com/package/word-extractor?activeTab=readme word-extractor] - liest nur Text
 
* [https://www.npmjs.com/package/word-extractor?activeTab=readme word-extractor] - liest nur Text
 
* [https://github.com/mwilliamson/mammoth.js mammoth.js] erzeugt simples HTML aus Word.  
 
* [https://github.com/mwilliamson/mammoth.js mammoth.js] erzeugt simples HTML aus Word.  
 +
** [https://jstool.gitlab.io/demo/preview-ms-word-docx-document-in-browser/ Mammoth-Online-Demo]
 
* [https://www.npmjs.com/package/any-text any-text] ermöglicht, den Text eines Docx-Dokuments auszulesen.
 
* [https://www.npmjs.com/package/any-text any-text] ermöglicht, den Text eines Docx-Dokuments auszulesen.
 
* [https://github.com/dkiyatkin/node-office node-office] nutzt unoconv zur Extrahierung von Text
 
* [https://github.com/dkiyatkin/node-office node-office] nutzt unoconv zur Extrahierung von Text
 
** [https://wiki.ubuntuusers.de/unoconv/ unoconv] ist ein Kommandozeilentool zur Konvertierung von Office-Dokumenten, das ein installiertes OpenOffice oder LibreOffice nutzt.
 
** [https://wiki.ubuntuusers.de/unoconv/ unoconv] ist ein Kommandozeilentool zur Konvertierung von Office-Dokumenten, das ein installiertes OpenOffice oder LibreOffice nutzt.
 +
 +
=== Scannen mit JavaScript ===
 +
 +
Dokumente scannen kann man wohl auch aus dem Browser: Siehe
 +
* https://www.npmjs.com/package/scanner-js
 +
 +
Aber auch das übliche Client-Server-Modell wird in JavaScript verwirklicht:
 +
* https://github.com/sbs20/scanservjs
    
=== Google Apps Script ===
 
=== Google Apps Script ===
Zeile 629: Zeile 729:  
** https://medium.com/@gajus/parsing-absolutely-anything-in-javascript-using-earley-algorithm-886edcc31e5e
 
** https://medium.com/@gajus/parsing-absolutely-anything-in-javascript-using-earley-algorithm-886edcc31e5e
 
* PEG.js kann mit Hilfe eines Plugins auch TypeScript-Parser bauen.
 
* PEG.js kann mit Hilfe eines Plugins auch TypeScript-Parser bauen.
 +
 +
=== Diagramme darstellen in Javascript ===
 +
==== Darstellung von Kuchen- und Balkendiagrammen ====
 +
 +
* https://plotly.com/javascript/
 +
 +
==== Darstellung von Graphen ====
 +
 +
Siehe
 +
* [https://js.cytoscape.org/ Cytoscape] (MIT-Lizenz)
 +
* [https://mermaid.js.org/ mermaid.js] - Darstellung von in Text-Notation beschriebenen Graphen
 +
** https://blog.ordix.de/flowcharts-as-code-mit-mermaid-js
 +
* https://github.com/jpb12/react-tree-graph
 +
* [https://kroki.io/ Kroki] ist ein freier HTTP-Dienst, der Diagramme erzeugt. Er basiert auf Open Source.
    
=== Test JavaScript ===
 
=== Test JavaScript ===
Zeile 675: Zeile 789:  
[[Category:Informationstechnik]]
 
[[Category:Informationstechnik]]
 
[[Category:Softwareentwicklung]]
 
[[Category:Softwareentwicklung]]
 +
[[Category:Datenbank]]
 
[[Category:Java-Tipps]]
 
[[Category:Java-Tipps]]
 
[[Category:Podcast]]
 
[[Category:Podcast]]

Navigationsmenü