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 107: |
Zeile 108: |
| Außerdem muss man als dependencies zum Projekt die Plugins maven-jar-plugin und maven-dependency-plugin hinzufügen. | | Außerdem muss man als dependencies zum Projekt die Plugins maven-jar-plugin und maven-dependency-plugin hinzufügen. |
| Die erzeugte JAR findet sich im Ordner <code>target/</code> des Projekts, nachdem man mit Rechtsklick auf das Projekt und "Build with Dependencies" den Bauprozess gestartet hat. | | Die erzeugte JAR findet sich im Ordner <code>target/</code> des Projekts, nachdem man mit Rechtsklick auf das Projekt und "Build with Dependencies" den Bauprozess gestartet hat. |
| + | |
| + | ===== JAR mit allen Abhängigkeiten ===== |
| + | |
| + | Um ein einziges JAR mit allen Abhängigkeiten (fat JAR oder uber-jar) zu erzeugen, kann man das maven-assembly-plugin, das onejar-maven-plugin oder wohl auch das maven-shade-plugin nutzen. |
| + | |
| + | Siehe |
| + | * https://stackoverflow.com/questions/574594/how-can-i-create-an-executable-jar-with-dependencies-using-maven |
| + | * http://tutorials.jenkov.com/maven/maven-build-fat-jar.html |
| | | |
| ==== Projektmanagement allgemein ==== | | ==== Projektmanagement allgemein ==== |
Zeile 135: |
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 143: |
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 |
| | | |
| == Datenbanken == | | == Datenbanken == |
Zeile 197: |
Zeile 226: |
| | | |
| 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 202: |
Zeile 234: |
| 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. |
| | | |
| ==== CouchDB ==== | | ==== CouchDB ==== |
Zeile 213: |
Zeile 249: |
| * 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 230: |
Zeile 268: |
| * [[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 247: |
Zeile 287: |
| | | |
| * 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 332: |
Zeile 391: |
| * [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 564: |
Zeile 636: |
| ** basiert auf [https://github.com/mwilliamson/mammoth.js mammoth.js] | | ** basiert auf [https://github.com/mwilliamson/mammoth.js mammoth.js] |
| * https://stackoverflow.com/questions/44698896/javascript-library-to-read-doc-and-docx-on-client | | * https://stackoverflow.com/questions/44698896/javascript-library-to-read-doc-and-docx-on-client |
| + | |
| + | Lesen von Word-Docx-Dokumenten |
| + | * [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://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://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 587: |
Zeile 674: |
| ** Siehe aus dem [[Java]]-Bereich dazu auch [[JOOQ]] | | ** Siehe aus dem [[Java]]-Bereich dazu auch [[JOOQ]] |
| * [https://www.npmjs.com/package/bookshelf Bookshelf.js] ist eine "leichte" ORM-Ebene, die sich [[Knex]] bedient. Für spezielle Abfragen kann auf Knex zurückgegriffen werden. | | * [https://www.npmjs.com/package/bookshelf Bookshelf.js] ist eine "leichte" ORM-Ebene, die sich [[Knex]] bedient. Für spezielle Abfragen kann auf Knex zurückgegriffen werden. |
| + | |
| + | ===== JavaScript for PostgresSQL NOTIFY/LISTEN ===== |
| + | |
| + | |
| + | * https://github.com/andywer/pg-listen |
| + | * https://www.npmjs.com/package/pg-pubsub |
| + | * https://github.com/emilbayes/pg-ipc |
| | | |
| === JavaScript UI Frameworks === | | === JavaScript UI Frameworks === |
Zeile 608: |
Zeile 702: |
| ** 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 654: |
Zeile 762: |
| [[Category:Informationstechnik]] | | [[Category:Informationstechnik]] |
| [[Category:Softwareentwicklung]] | | [[Category:Softwareentwicklung]] |
| + | [[Category:Datenbank]] |
| [[Category:Java-Tipps]] | | [[Category:Java-Tipps]] |
| [[Category:Podcast]] | | [[Category:Podcast]] |