| 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]] |