===== Programmierung rund um die Datenbank ===== Die wichtigen Programmiersprache für die Datenbank sind naturgemäß SQL und PL/SQL in der Datenbank, gefolgt von Sprache wie Java, Python und oder auch C. Mit Scriptsprachen wie der Microsoft Powershell lässt sich die Datenbank auch direkt abfragen. Unerlässlich für den Betrieb der Datenbank unter Linux/Unix ist das Bash Scripting. {{ :images:schmetterling_v01.png?direct | Ein Schmetterling - google vermutet das das ein Swallowtail butterfly (Iphiclides podalirius) - (LINNAEUS, 1758) - auf Deutsch ein Segelfalter ist - Italien Pimobino Toskana 2014 }} **Am Ende wird alles gut. Wenn es nicht gut wird, ist es noch nicht das Ende.** //Oscar Wilde// ---- === Newsletter === Sehr interessante Artikel rund um wichtige Themen der Software Entwicklung * http://www.pointer.io/about/ ---- ====SSL Zertifikate prüfen==== * https://www.ssllabs.com/ssltest/analyze.html?d=www.pipperr.de * https://crt.sh/ ==HSTS== siehe => https://www.globalsign.com/en/blog/what-is-hsts-and-how-do-i-use-it/ ==Freie Zertifikate== * https://letsencrypt.org/ ---- ==== Online Bildbearbeitung ==== Images * https://squoosh.app/ Konvertieren * https://convertio.co/de/ Favicon * https://favicon.io/favicon-generator/ Logos * https://logohub.io/ SVG (Viso Clone!) * https://www.draw.io/ 3D * https://www.tinkercad.com/ Farbschemas * https://www.webmart.de/web/harmonische-farben/#004040:c:d:g:d Images * https://www.pikpng.com/ * https://github.com/neutraltone/awesome-stock-resources * ASCII => https://www.asciiart.eu/animals ---- ==== Ablauf Diagramme ==== Nassi-Shneiderman-Diagramme erstellen mit Structorizer: * http://structorizer.fisch.lu/ ---- ==== Versions Kontrolle und Build Tools + Diff Software ==== Git => https://git-scm.com/ * [[prog:git_server|Einen Git Server unter Linux aufsetzen und mit Git arbeiten]] * [[prog:apex_export_source_code_and_git|Oracle Apex Source Code automatisch exportieren und einchecken mit Git unter Windows mit der PowerShell]] * [[prog:git_submodule | Mit Submodule Git Repositories verlinken]] Gradle => https://gradle.org * [[prog:gradle_setup|Ein Projekt mit Gradle]] Diff Software * http://www.araxis.com/merge/index.en GIT Oberfläche * https://gitea.io/en-us/ Doku: Kostenloses E-Book - GitHub Succinctly => https://www.syncfusion.com/resources/techportal/details/ebooks/GitHub_Succinctly ---- ==== Dateitypen erkennen ==== Software TrID - File Identifier => https://mark0.net/soft-trid.html ---- ==== Legal Stuff ==== Was bedeutet welche Lizenz: * Software Lizenz Modell im Detail => https://tldrlegal.com/ ---- ==== JSON ==== Parser für die Command Line => https://stedolan.github.io/jq/ APEX: * [[prog:apex_json_form_enterquerymode|Oracle Apex 18 - Formular Daten mit JSON Apex REST Call aktualisieren, Enter Query Form Verhalten von Oracle Forms simulieren]] DB: * [[dba:oracle12c_json_in_datenbank|JSON in der 12c / 18 cDatenbank verarbeiten]] ---- ==== XML ==== * [[prog:sql_xml_xpath_oracle|Mit XML und xpath in einer Oracle SQL Query arbeiten]] * [[prog:sql_xml_spool_sqlplus|XML per Spoolout aus SQL*Plus schreiben]] ---- ==== YAML ==== YAML Wer mit YAML Konfigurationsdateien arbeitet, wird am Ende irgendwann ganz wirr, besonders in Ansible. Von der Idee ist das bestimmt ganz gut, aber der kleinste Fehler kann oft dazu führen, das sehr lange gesucht werden muss wo denn der Tipp Fehler steckt. Zumal in Ansible ein Syntaktischer und eine Logischer Fehler wie ein falsches Package ähnliche Fehlermeldungen verursachen. * [[prog:yaml_check_syntax|Mit YAML arbeiten ohne Nerven Zusammenbruch]] ---- ====SQL==== Datenmodellierung Online => https://www.vertabelo.com/ * [[prog:oracle_sql_macro|Oracle SQL Macro SQM - SQL Code Fragmente - in SQL verwenden ab 19c / 21c / 23c ]] * [[prog:sql_join_syntax|Oracle ANSI-89 Standard versus dem ANSI-92]] * [[prog:sql_anti_join|Mit einem Left Join Daten filtern - Einen Anti Join in Oracle SQL erzeugen]] * [[prog:sql_update_syntax| Upsert - Oracle Update und Oracle Merge mit Daten aus einer zweiten Tabelle]] * [[prog:sql_merge_upsert_same_table_syntax| Upsert - Oracle Merge auf der gleichen Tabelle]] * [[prog:sql_case_when|Case Ausdruck in SQL verwenden]] * [[prog:sql_nvl_functions|NVL Funktionen in SQL]] * [[prog:sql_greatest_functions|Den größten Wert verschiedener Spalten in SQL ermitteln - GREATEST]] * [[prog:sql_like_escape|Suchen mit dem Like Operator nach Texten, die einen "_" enthalten]] * [[prog:sql_regular_expression|Reguläre Ausdrücke in der Oracle Datenbank in SQL verwenden]] * [[prog:oracle_text_contains|Oracle Text - In Texten suchen]] * [[prog:oracle_string_vergleich|In der Datenbank Strings vergleichen, Ähnlichkeiten in String qualifizieren]] * [[prog:oracle_reverse_function|Einen String in SQL mit reverse umdrehen]] * [[prog:oracle_datatype_number|Besonderheiten bei der Definition des Number Datentypes in Oracle]] * [[prog:oracle_operator|Einen eignen Operator in SQL definieren]] * [[prog:oracle_analytic_functions|Oracle Analytic Functions im praktischen Einsatz]] * [[prog:oracle_analytic_functions_lag|Oracle Analytic Function - Beispiel 1 - Lücken in einem Datenstrom finden]] * [[prog:oracle_analytic_functions_top_n|Oracle Analytic Function - Beispiel 2 - Top N Query]] * [[prog:oracle_analytic_functions_doubletten|Oracle Analytic Function - Beispiel 3 - Doppelte Daten finden und löschen]] * [[prog:oracle_analytic_functions_prozent|Oracle Analytic Function - Beispiel 4 - Prozentsatz anzeigen]] * [[prog:oracle_analytic_functions_window_function|Oracle Analytic Function - Beispiel 5 - gleitende Summen berechnen bzw. kumulative Werte aufsummieren - Fensterfunktion verwenden ]] * [[prog:sql_oracle_pattern_matching|SQL Pattern Matching Funktion]] * [[prog:sql_oracle_pattern_matching_problemes_risks|SQL Pattern Matching Fallstricke und Probleme]] * [[prog:sql_aggregatfunktion_erstellen|Eine eigene Aggregatfunktion erstellen]] * [[prog:sql_piviot|Dynamische Pivot Tabelle verwenden]] * [[prog:sql_oracle_pivot|SQL Pivot Funktion]] * [[prog:sql_oracle_unpivot|SQL UNPivot Funktion]] * [[prog:sql_oracle_model_clause|Die SQL Model Clause verwenden]] * [[prog:orcle_drop_column| Eine Spalte von einer Tabelle entfernen - drop column]] * [[prog:materialized_view|Materialized View verwenden]] * [[dba:read_only_table_11g|Eine Tabelle unter Oracle 11g auf READ ONLY setzen]] * [[dba:oracle_index_organised_table|Eine Oracle Tabelle als IOT - "index organised table" aufbauen und überwachen]] * [[prog:sql_enable_constraints_wiht_errors|Constraint Error ORA-02298 protokolieren]] * [[prog:sql_insert_error_handling| Error Handling bei großen Änderungen]] * [[prog:sql_nls_comp_nls_sort_inguistic_search_sorting|NLS_COMP und NLS_SORT für Linguistische Vergleiche und Case Ignore in der Oracle Datenbank]] * [[dba:oracle_soundex_function|Mit Soundex Wörter in der Datenbank vergleichen]] * [[prog:sysdate_compatiblity|Sysdate mit @! Syntax]] * [[prog:sql_aenderungs_datum_tabellen_eintraege|Wann wurde zuletzt etwas an den Daten verändert?]] * [[prog:sql_liste_erstellen|Ein Liste aus SQL Zeilen erstellen]] * [[prog:oracle_row_sql_generation|Zeilen in SQL erzeugen - Row Generatoren ]] * [[prog:sql_date_oracle_rechnung|Rechnen mit Datums-Formaten]] * [[prog:orcle_datatype_long| Mit dem Datentyp Long umgehen ]] * [[prog:oracle_monitor_hint|Oracle SQL Statements mit dem Tuning Pack überwachen - Überwachung mit dem MONITOR Hint aktivieren]] * [[prog:oracle_extened_statistic|Oracle Extended Statistik verwenden ]] * [[prog:oracle_command_types|Den Oracle Command Type für ein SQL Statement aufschlüsseln]] * [[prog:oracle_sql_id_find|Die SQL_ID meines lezten SQL Statements ermitteln und mit schreiben]] * [[dba:oracle_secure_file_lob|Oracle Secure File verwenden]] * [[prog:oracle_session_info_setzen|In der V$SESSION Informationen über die aktuelle Session hinterlegen]] * [[prog:sql_hex_decimal|Mit Hex Zahlen in SQL rechnen]] * [[dba:oracle_sql_profile|Mit Oracle Profilen arbeiten und Profile zwischen Datenbanken austauschen]] * [[prog:sql_oracle_context_object|Das Oracle CONTEXT Object - Globale Werte in einer Session hinterlegen]] * [[dba:oracle_virtual_column|Oracle - Berechnete Tabellenspalten verwenden - Virtual Columns mit der GENERATED ALWAYS Spalten Definition]] * [[prog:oracle_view_rechte| Über Views Zugriffsrechte steuern ]] * [[prog:oracle_12c_primary_key_sequence_default| Oracle 12c - Primary Key Spalte mit einer default Sequence anlegen]] * [[prog:oracle_rename_alter_table| Ein Tabelle in Oracle umbenennen - Unterschied RENAME und ALTER TABLE - ORA-01765 und ORA-14047 ]] * [[prog:oracle_sqlplus_ora-22835_clob|Einen CLOB gesplittet in SQL*Plus ausgeben um einen - ORA-22835: Buffer too small for CLOB - zu vermeiden]] Rekursiv query 11g r2 * https://blogs.oracle.com/LetTheSunShineIn/entry/sql_replacing_connect_by_with * http://allthingsoracle.com/anatomy-of-a-select-statement-part-3-recursive-subquery-factoring/ **12c** * [[dba:oracle12c_json_in_datenbank|Oracle 12c Datenbank - Json in der 12c verarbeiten]] * [[dba:oracle12c_plsql_in_sql|Oracle 12c Datenbank - PL/SQL in SQL Statements verwenden]] * [[dba:oracle12c_top_n_native_query|Oracle 12c Datenbank - native Top-N Abfragen]] * [[dba:oracle12c_scott_demo_user_nachinstallieren|Oracle 12c Scott Demo User nachinstallieren]] * [[dba:oracle12c_approx_count_distinct|Oracle 12c - Wie viele Eindeutige Werte sind ein einer Tabelle]] * [[prog:oracle12c_r2_ORA-01858_ORA-01722_conversion_functions | In Oracle 12c R2 endlich mit ORA-01858 und ORA-01722 umgehen können - Konvertierungsfehler pro-aktiv behandeln ]] **Erweiterte Technologien** ab 11g R1 Mit [[http://docs.oracle.com/cd/B28359_01/appdev.111/b28424/adfns_cqn.htm|Continuous Query Notification]] auf Veränderungen am Datenbestand reagieren. ** Graph Datenbank Algorithmen umsetzen ** * [[prog:oracle_graph_algorithms_einstieg| Mit Graphen in der Oracle Datenbank arbeiten]] **Parallel SQL** * https://support.oracle.com/epmos/main/downloadattachmentprocessor?attachid=1329441.1%3APX_12C_FUNDAMENTALS * [[prog:sql_parallel_auto_dop_resource_manager|Warum funktioniert in meiner Session Parallel nicht? Was muss geprüft werden?]] **18c** * Polymorphe Tabellenfunktionen => http://blog.sqlora.com/de/polymorphic-table-functions/ * https://docs.oracle.com/en/database/oracle/oracle-database/18/arpls/DBMS_TF.html **SQL Lernen** * Für Einsteiger => https://ohhappy.dev/sql-cards SQL mit Karten .-) * https://modern-sql.com/ ---- ====PL/SQL==== ==Allgemein== * [[prog:plsql_code_pices|PL/SQL Code Snippets]] * [[prog:plsql_debug|PL/SQL Code debuggen]] * [[prog:plsql_md5hash|PL/SQL md5 Hash erzeugen]] * [[prog:plsql_dynamic_in_with_bind_sql|In PL/SQL in einer SQL IN Anweisung mit einer Bind Variable verwenden]] * [[prog:plsql_bulk_collect|PL/SQL BULK COLLECT einsetzen]] * [[prog:plsql_string_tokenizer|Oracle PL/SQL Tokenizer - Strings zerlegen]] * [[prog:plsql_spool_utf_8_file|PL/SQL - Generisch aus einer Tabelle eine CSV Datei erstellen mit UTL_FILE und DBMS_SQL]] * [[prog:plsql_sleep_19c|PL/SQL - Eine DB Session "schlafen" legen - Wie und welche Sleep Funktion einsetzen? ]] * [[prog:plsql_spool_csv_apex|PL/SQL - APEX - CSV Datei aus der DB mit DBMS_XMLGEN.CONVERT erzeugen]] * [[prog:plsql_send_mail_tls|PL/SQL - Mail mit DBMS_SMTP mit einem sicheren Protokoll in Oracle 12c versenden]] * [[prog:plsql_und_rolen|PL/SQL - Rollen in PLSQL verwenden ]] * [[prog:tablen_spalten_zaehlen|Zählen wieviele unterschiedliche Werte in den Tabellen eines Schemas stehen ]] ==Performance== * [[prog:plsql_performance_profiler_dbms_profiler|PL/SQL - Mit dem DBMS_PROFILER Package arbeiten]] ==Tips== * [[prog:sql_identify_cluster_database|Ist die aktuelle DB Umgebung ein Cluster?]] * [[prog:sql_fehler_ORU-10027|Eine PL/SQL Routine wirft den Fehler ORU-10027]] * [[prog:get_db_runtime_enviroment|Laufzeitumgebung des Datenbank Server Prozesse mit PL/SQL abfragen]] * [[prog:which_package_call_this_sql|Name und Zeilennummer eines PL/SQL Package das ein SQL Statement abgesetzt hat in der Datenbank ermittlen]] * [[prog:oracle_dbms_random_12c|Oracle PL/SQL - DBMS_RANDOM für die Generierung von Testdaten einsetzen]] * [[prog:oracle_restore_plsql_code|Oracle PL/SQL - Den Source Code eines überschriebenen Packages mit Flashback wieder herstellen]] == Security == * [[prog:oracle_accessible_by_12c|Oracle PL/SQL - mit "accessible by" Zugriffe in 12c auf PL/SQL einschränken]] ==Oracle Multimedia == * [[prog:oracle_multimedia_12c|Multimedia in der Oracle Datenbank 12c - Bildbearbeitung in PL/SQL]] ==Oracle Text== * Übersicht => [[dba:oracle_text|Oracle Text - Volltext Suche über Text Dokumente]] * [[prog:oracle_text_in_plsql|Oracle Text für die Verarbeitung von Binären Daten in PL/SQL verwenden]] * [[prog:oracle_text_contains|Oracle Text - In Texten suchen]] * [[prog:oracle_text_highlight|Oracle Text - Die Treffer einer Oracle Volltext Abfrage in der Ergebnismenge optisch hervorheben]] * [[dba:oracle_text_thesaurus|Mit einem Thesaurus und Oracle Text arbeiten]] * [[dba:oracle_text_index_themes|Einen Oracle Text Theme Index aufbauen]] * [[prod:oracle_text_ctxrule_index|Oracle Text 12c CTXRULE Indexe - Mit Abfrageregeln Dokumente klassifizieren]] ==Exotische Packages== DBMS_FREQUENT_ITEMSET - Basket Analysis in the Oracle Database * https://docs.oracle.com/database/121/ARPLS/d_frqist.htm#ARPLS007 * https://www.rittmanmead.com/blog/2012/04/basket-analysis-in-the-oracle-database/ DBMS_PIPE und DBMS_ALERT - Interprocess Kommunikation in PL/SQL implementieren * https://docs.oracle.com/database/121/ARPLS/d_pipe.htm#ARPLS038 * https://docs.oracle.com/database/121/ARPLS/d_alert.htm#ARPLS351 * http://extras.springer.com/2005/978-1-59059-525-1/5254appABfinal.pdf ==Anwendung== * [[prog:lun10_plsql_find_cc_in_text|In Textfeldern nach Kreditkarten Nummer suchen]] ==Probleme== * [[prog:sql_lock_library_cache|library cache Locks]] ==Oracle Native Compilation== * http://www.morganslibrary.org/reference/plsql/native_compilation.html ==Mehr== Quiz rund um PL/SQL => [[https://plsqlchallenge.oracle.com/pls/apex/f?p=10000:659:0:&tz=1:00|PLSQL Challenge]] Bücher zum Thema: Zwar etwas älter aber für den PL/SQL Einsteig gut geeignet * https://openlibrary.org/works/OL8221399W/Oracle_10g_Developer Unwrapper => http://www.salvis.com/blog/2015/05/17/introducing-plsql-unwrapper-for-sql-developer/ ---- ==== Oracle Cartridge Konzept==== The Oracle Extensibility Architecture ab Oracle 8i * http://grandpoohbah.net/Sandeepan/ComponentDatabases.pdf Basis für die Umsetzung * [[prog:oracle_operator|Einen Oracle Operator für die Verwendung in SQL definieren]] ---- ====Apex 5==== Allgemein: * [[prog:oracle_apex|Oracle Apex 5 - Anmerkungen]] Installation * [[prog:oracle_apex_20_2_install_windows_19c_linux_8|Oracle Apex 20.2 / ORDS 20.4 / Tomcat 9 / Apache 2.4 / Varnish mit der Oracle Datenbank 19c unter Oracle Linux 8 - Installation]] * [[prog:oracle_apex_install_windows_12c|Oracle Apex 5.1 mit der Oracle Datenbank 12c - Installation]] * [[prog:apex_mail_acl|Oracle Apex 5.0 Mail Versandt mit SSL -Hinterlegen einer ACL's in 11g und 12c und Hinterlegen von SSL Zertifkaten]] * [[prog:oracle_apex_active_directory_integration|Oracle Apex 5 Securtiy und Microsoft Active Directory Integration]] Einsatz: * [[prog:oracle_apex_oracle_text_document_archive|In Oracle APEX 5 mit Oracle Text ein Dokumentenarchive aufbauen]] Entwicklung: * [[prog:apex_modal_page|Oracle Apex 5 - Modale Page auf einer Apex Seite für einen Detail Dialog mit dynamischen Parametern verwenden]] * [[prog:apex_modal_region|Oracle Apex 5 - Modale Region auf einer Apex Seite für einen Detail Dialog verwenden]] * [[prog:apex_classic_report_use_alert_card_layout|Oracle Apex 5 - Mit CSS Alert Layout vom Classic Report anpassen]] * [[prog:apex_jquery_integration|Oracle Apex 5 -Mit JQuery die Logik und Optik einer Apex Page anpassen]] Treffen in München zu APEX : * http://www.meetup.com/de/orclapex-muc/ Treffen in Kassel zu APEX : * https://www.meetup.com/de-DE/Oracle-APEX-Kassel/ Plugins: * https://apex.world/ords/f?p=100:700 Community: * https://blogs.oracle.com/apexcommunity_deutsch/ Dokumentation 5.0 * PDF 1000 Seiten => https://docs.oracle.com/cloud/latest/db121/HTMDB.pdf * HTML => https://docs.oracle.com/database/121/HTMDB/toc.htm ---- ==== ORDS Oracle REST Data Services ===== Oracle RESTful Data Service wurde früher unter dem Name Oracle Application Express Listener vermarktet. APEX wird weiterhin unterstützt, ein Fokus liegt aber auf der Bereitstellung des REST Services. Mit dem [[https://de.wikipedia.org/wiki/Representational_State_Transfer|Representational State Transfer (abgekürzt REST)]] wird ein Programmierparadigma für verteilte Systeme bezeichnet, das insbesondere für Webservices verwendet wird. * http://www.oracle.com/technetwork/developer-tools/rest-data-services/overview/index.html * https://blogs.oracle.com/newgendbaccess/ Einsatz ORDS mit Oracle APEX * [[prog:first_steps_oracle_rest_data_service|Den Oracle ORDS = Oracle REST Data Services mit APEX 5.0 und als REST Interface verwenden ]] * [[prog:oracle_rest_data_service_tomcat|Oracle ORDS 3.0 (Oracle REST Data Services) mit Apache Tomcat als Application Server unter Windows 2012 betreiben]] * [[prog:oracle_ords_performance_tuning|Oracle ORDS Performance Tuning]] * [[prog:oracle_apex_20_2_install_windows_19c_linux_8|Oracle Apex 21.1 / ORDS 21.2 / Tomcat 9 / Apache 2.4 / Varnish mit der Oracle Datenbank 19c unter Oracle Linux 8 - Installation]] ORDS REST API * [[prog:ords_rest_service|Oracle ORDS 3.0 REST API nativ verwenden]] * [[prog:ords_instance_api|Oracle ORDS 22 - Monitoring mit der ORDS Instance API]] REST Service - Wie dokumentiern? Siehe auch https://bocoup.com/blog/documenting-your-api ==Quellen== * Architektur => https://www.ics.uci.edu/~taylor/documents/2002-REST-TOIT.pdf ---- ==== Python ==== **Einführung** Python 2 * http://www.python-kurs.eu/python2_kurs.php * http://www.tutorialspoint.com/execute_python_online.php * Google Einführungsvortrag => https://www.youtube.com/watch?v=E_kZDvwofHY * http://www.lynda.com/Python-tutorials/Up-Running-Python/122467-2.html?autocompleteMovieId=142560 Ebook * http://www.diveintopython.net/ Video Tutorials: * https://www.youtube.com/playlist?list=PL82YdDfxhWsDJTq5f0Ae7M7yGcA26wevJ * https://www.youtube.com/watch?v=9uq3w6JJS00 * https://www.youtube.com/watch?v=RrPZza_vZ3w * https://learn.digilentinc.com/classroom/python/ Code Beispiele für den Einstieg * [[python:python_first_steps|Code Beispiel für den Einstieg in Python]] Weitere Beispiele: * [[python:python_copy_image_files|Code Beispiel für eine Python Script um Bild Dateien zu importieren]] * [[python:python_hash_image_files|Dateien in Python hashen - Performance Überlegungen]] Tricks und Tips: * http://www.pythoncentral.io/category/python-tips-tricks-hacks-idioms/ Programmierumgebungen: * (auch für Arduino) https://codewith.mu/en/ **Datenbank Verwendung** In vielen Beispielen im Netz werden keine Bind Variablen verwendet, davon ist dringend abzuraten! * [[python:python_database|Python und die Oracle Datenbank]] * [[python:python_sqlite_database|Python und die SQLite Datenbank]] **Jython Java Implementierung von Python** * [[python:jython_scripting_database|Jython Scripting für die Oracle Datenbank]] **Hardware Access** Windows: * [[python:python_write_serial_com_port|Windows 7 - Mit Python 2.7 über die COM Port Schnittstelle ein M18ST05A VFD Display ansprechen]] ARM * [[raspberry:dcf77_modul|Eine Raspberry NTP Server mit einem DCF 77 Modul aufbauen]] * [[raspberry:raspberry_gpio_first_steps|Raspberry Pi Model B - GPIO Port einsetzen - erste Schritte]] * [[raspberry:raspberry_gpio_read_adc0831|Einen AD Wandler ADC0831 mit dem Raspberry PI verwenden]] * [[raspberry:dcf77_modul|Mit dem Raspberry ein DCF 77 Modul abfragen]] Raspberry Pico * [[raspberry:raspberry_pico_micropython|Mit dem Raspberry Pi Pico RP2040 mit MicroPython starten]] ESP32 * [[elektronik:nodemcu_esp32_micropython|Erste Schritte mit dem ESP32 und MicroPython]] **GUI Entwicklung** * [[python:python_gui_tk|Python und tk - Benutzer Interface erstellen]] * Alternativ: * https://wiki.python.org/moin/GuiProgramming * http://wiki.wxpython.org/wxPython **Sound** * http://www.csounds.com/ * http://ajaxsoundstudio.com/ **Graphik** Plot * http://matplotlib.org/ * http://matplotlib.org/1.4.3/users/pyplot_tutorial.html#controlling-line-properties OpenGL * http://pyopengl.sourceforge.net/ Pygame * https://skellykiernan.wordpress.com/2015/01/04/python-pygame-install/ **interactive data science** Open source, interactive data science and scientific computing * http://jupyter.org/ ---- ====Julia==== Julia is a high-level, high-performance dynamic programming language for technical computing => http://julialang.org Einführung in die Sprache: * http://julialang.org/learning/ ---- ==== Lua === * http://www.lua.org/ Einführung: * https://www.quora.com/What-are-some-of-the-advantages-of-using-Lua-over-Python-C-or-MATLAB Tutorial: * http://bladehunter.lima-city.de/lua/book/ Als Skript-Sprache für Microkontroller: * http://www.eluaproject.net/ Das erste Projekt: * [[elektronik:nodemcu_esp8266_erste_schritte|Erste Schritte mit dem ESP8266 und dem NodeMCU Board mit Lua]] * [[elektronik:nodemcu_ESP8266_impulse_zählen|Mit dem NodeMCU Board ESP8266 Impulse zählen - Durchfluß messen]] ---- ==== Pony ==== Pony ist: * quelloffene Sprache * statisch typisiert * verwendet Aktoren * verzichtet auf Vererbung * Garbage Collector * gut skalierbare Architektur Erste Schritte: * http://tutorial.ponylang.org/ ---- ==== R ==== R ist eine freie Programmiersprache für statistische Fragestellungen Beispiele im Netz: * http://alstatr.blogspot.de/search/label/R Oracle: * http://www.oracle.com/technetwork/database/database-technologies/r/r-distribution/overview/index.html Hilfreich zum Beispiel für eine "Inverser Normal Verteilung" ---- ---- ==== JavaScript==== Seit Netscape Zeit verwende ich JavaScript, aber ist das noch die richtige Art mit der Sprache umzugehen? * [[prog:modern_javascript|JavaScript in 2019 - Wie JavaScript heute (2019) implementieren und anwenden]] Online Dokumentation * https://github.com/getify/You-Dont-Know-JS Graphik Libraries * http://d3js.org/ * https://plot.ly JavaScript basics tutorial: * 33 Concepts Every JavaScript Developer Should Know Tips => https://github.com/leonardomso/33-js-concepts#1-call-stack * https://learn.grasshopper.app/ * https://www.jshero.net ---- ===Node.js=== https://nodejs.org/en/ Node.js Treiber für die Oracle Datenbank => https://blogs.oracle.com/opal/entry/node_oracledb_1_4_0 Installation Windows: * http://blog.teamtreehouse.com/install-node-js-npm-windows * [[prog:nodejs_oracledb_electron|Erste Erfahrungen mit Electron / NodeJS der Oracle Anbindung]] * [[prog:nodejs_server|Erste Erfahrungen mit Node als Sever für eine REST API ]] ---- === ELECTRON === https://electronjs.org/ https://electronjs.org/docs/tutorial/first-app#trying-this-example Mehr zu Datenbank Anbindung: * https://www.youtube.com/watch?v=c76FTxLRwAw * http://knexjs.org/ ---- ===Oracle JET === Oracle Jet = Client Site JavaScript (Datenzugriff mit Hilfe von REST Calls) * http://www.oracle.com/technetwork/developer-tools/jet/overview/index.html Übersicht: * http://multikoop.blogspot.de/2015/10/oracle-jet-is-here-for-javascript-lovers.html ---- ===GraalVM === Nachfolger der ehemaligen JavaScript-Engine Nashorn => https://www.graalvm.org/ Kann unter Node die V8 GraalVM ersetzen Aber für was kann man das gebrauchen? Beispiele: * Integration von bestehenden Java / R Libraries in JavaScript unter Node.js * JavaScript Code in der Datenbank (Oracle RDBMS, mSQL) ausführen ---- ====CSS==== The CSS Handbook: a handy guide to CSS for developers * https://medium.freecodecamp.org/the-css-handbook-a-handy-guide-to-css-for-developers-b56695917d11 ---- ====Java==== Was nun? Oracle entschließt sich für das kostenpflichtiges Java ... Damit wird wohl aus Oracle Java das neue Pascal .... In neuen Projekten wohl keine gute Idee mehr auf Java zu setzen. => OpenJDK verwenden wo immer es geht => https://openjdk.java.net/install/ Alternativ für den Einsatz unter Windows: * OpenJDK von Oracle => https://jdk.java.net/12/ * OpenJDK von Azul => https://www.azul.com/downloads/zulu/ * OpenJDK von RedHat => https://developers.redhat.com/blog/2016/06/27/openjdk-now-available-for-windows/ * OpenJDK von Amazon => https://aws.amazon.com/corretto/ Nur Linux * OpenJDK von Alibaba => https://github.com/alibaba/dragonwell8 **Links** * https://www.doag.org/de/home/news/oracles-neue-supportpolitik-fuer-java-im-detail-was-aendert-sich/detail/ * https://www.reddit.com/r/sysadmin/comments/8tzjkg/confused_about_java_and_the_new_license/ * https://www.infoq.com/presentations/panel-java-free * https://www.de.logicalis.com/java-support-ist-kostenpflichtig ===Entwicklen mit Java=== Hibernate * [[prog:java_hibernate|Hibernate -Oracle Sequence für den Primary Key in Hibernate verwenden]] * [[prog:java_hibernate_statistik|Hibernate - Statistiken abfragen]] * [[prog:java_hibernate_sql_native |Hibernate - Native SQL Abfragen]] Processing * [[playgrounds:processing|JDBC Zugriff auf die Oracle Datenbank im Java Framework Processing]] * [[playgrounds:fractal_progamming_feigenbaum | Processing - Ein Feigenbaum Diagramm erstellen ]] Allgmein * [[prog:java_commons_cli |Kommando Zeilen Parameter mit der Apache Commons CLI]] * [[prog:java_debug_jdbc_oracle | Oracle JDBC Verbindung debuggen ]] * [[prog:java_universal_connection_pool_oracle | Oracle Universal Connection Pool mit ONS verwenden]] * [[prog:jdeveloper_consolen_app | Im JDeveloper eine Consolen Applikation mit Input entwickeln]] * [[prog:java_links|Java Links]] Das Maven Repostiory für die JDBC Driver => http://mvnrepository.com/artifact/ojdbc/ojdbc/14 enthält leider nur den Download Link auf die orginal Oracle Website http://www.oracle.com/technetwork/database/application-development/index-099369.html, ärgerlich, das funktioniert dann wohl nur mit einem lokalen Repository. In Arbeit: * [[prog:android_java_jedeveloper_hello_world_example| Mit dem Oracle JDeveloper eine erste App für Android entwickeln]] **Der Kampf mit dem Java Klassen Pfad:** Alle Jar's in einem Klassenpfad in Linux mit aufnehmen: CLASSPATH=$CLASSPATH:$(echo "$MY_CLIENT_LIB"*.jar | tr ' ' ':') Klassenpfad als Textdatei übergeben, dazu alle Pfade mit den entsprechenden Seperator des jeweiligen OS (;,:) getrennt in einer Zeile in eine Datei schreiben und die Datei dann mit "-classpath @pathname/filename" referenzieren: echo $CLASSPATH > ~/myClassPath.txt java -classpath @~/myClassPath.txt Sehr hilfreich unter MS Windows, ab 2K wird es eng mit der Längen von Umgebungsvariablen! ==Freie Ebooks== * http://www.oreilly.com/programming/free/java-the-legend.csp === Processing === [[http://processing.org/|Processing]] ist eine sehr clevere Art um einfach in Java graphische Applikationen zu entwickeln. Eine einfache IDE und eine Reduktion auf das Wesentliche ermöglichen schnelle Erfolge. Für die ersten Schritte sind die Tutoriell von [[https://vimeo.com/user4779230|Jose Sanchez]] auf vimeo sehr gut geeignet. Siehe http://processing.org/ Libs: * Vector Rechnen => http://toxiclibs.org/about/ * UI => http://www.sojamo.de/libraries/controlP5/ ==Programming mit Processing: == * [[playgrounds:processing | Processing - Die Oracle Datenbank anbinden]] * [[playgrounds:fractal_progamming_feigenbaum | Processing - Ein Feigenbaum Diagramm erstellen ]] * [[playgrounds:sound_of_data|Sound of Data]] ==Bilder analysieren== sharpmask * https://code.facebook.com/posts/561187904071636/segmenting-and-refining-images-with-sharpmask/ === Commandozeilen Framework === * http://jline.sourceforge.net/ ===Decompiler === Offline: CFR - another java decompiler * http://www.benf.org/other/cfr/ Kann ganze Jars "auspacken" mi: java -jar C:\entwicklung\cfr\cfr_0_119.jar .\jline.jar --outputdir .\output\ --caseinsensitivefs true Online: * http://www.javadecompilers.com Jars auspacken mit procyon $files = Get-ChildItem "c:\temp\WEB-INF\Lib" for ($i=0; $i -lt $files.Count; $i++) { echo $files[$i].FullName java -jar C:\tools\Procyon\procyon-decompiler-0.5.30.jar -jar $files[$i].FullName -o D:\temp\ords\out } #suchen Get-ChildItem -Recurse D:\temp\ords\out\oracle* | Select-String Security => https://bitbucket.org/mstrobel/procyon/wiki/Java%20Decompiler ===XMLDB=== Java Class to export XML DB see https://community.oracle.com/message/1297236 ---- ==== .NET / Powershell ==== === Windows Powershell === Übersicht: * [[windows:powershell_quick_start|Die Windows PowerShell]] Oracle und die Powershel * [[windows:powershell_oracle_db_abfragen|Mit der PowerShell die Oracle Datenbank mit .NET abfragen]] * [[windows:powershell_sqlplus_db_abfragen|Mit der PowerShell SQL*Plus aufrufen um die Oracle Datenbank abfragen]] Allgemein * [[windows:powershell_script_aufrufen|Aufruf von PowerShell Scripten - Signieren von Skripten]] * [[windows:powershell_ls_gci_dir|Der gute alte DIR Befehl in der PowerShell - gci]] * [[windows:powershell_umgebung_einrichten|Das PowerShell Profil einstellen - Administrativen Modus erkennen]] Meine Backup Scripts für die Datenbank unter Windows mit der Powershell * http://orapowershell.codeplex.com/ ===.NET=== * [[prog:windows_dot_net_integration_plsql|Oracle 12c PL/SQL - Verwendung von .Net Libraries in PL/SQL - eine ".NET stored procedures" anlegen und aufrufen]] Abhängigkeiten verstehen => http://www.dependencywalker.com/ Dependency Walker is a free utility that scans any 32-bit or 64-bit Windows module (exe, dll, ocx, sys, etc.) and builds a hierarchical tree diagram of all dependent modules. ---- ==== Flutter ==== Mobile UI Entwicklung Entwickeln mobiler Anwendungen - Cross-Platform-Entwicklung - Entwickelt von Google * https://flutter.io/ * https://medium.com/flutter-io IDE dazu => https://developer.android.com/studio/ ---- ==== C ==== Einführung: * http://openbook.rheinwerk-verlag.de/c_von_a_bis_z/index.htm HexRechner: * http://www.microbuilder.eu/Tutorials/Fundamentals/Hexadecimal/HexConverter.aspx C im Einsatz mit Mikrocontrollern: * [[elektronik:lpc810_experimente|Erste Schritte mit dem LPC810 - MCU 32-bit ARM Cortex M0]] * [[elektronik:arduino_dallas_max72xx_temperature_messung|Arduino - Mit dem Dallas DS18B20 die Temperatur messen und auf einem 7 digit 8 segment digital LED display mit dem MAX7219 darstellen]] * [[elektronik:arduino_kuechenwecker|Ein Projekt für den Haushalt - Ein „Arduino based“ Küchenwecker .-)]] ---- ==== Unix Bash ==== Beispiele: * [[linux:bash_script_snippets|Bash Snippets für Skripting]] * [[linux:bash_sql_plus_error_handling|Error Handling SQL*Plusin Bash Skripten]] ---- ====Datenbank Design==== Da der Oracle Designer leider schon länger nicht mehr weiterentwickelt wird, müssen Alternativen gesucht werden: LiquiBase: * http://www.liquibase.org/tutorial-using-oracle PowerDesigner: * http://www.powerdesigner.de Oracle SQL Developer Data Modeler * http://www.oracle.com/technetwork/developer-tools/datamodeler/overview/index.html Artikelsammlung zu wichtigen Themen rund um das Design: * http://www.heise.de/developer/artikel/Domain-driven-Design-erklaert-3130720.html ---- ====Entwicklungswerkzeuge==== Diese Entwicklungwerkzeug empfehle ich für die echte Projekt Arbeit: **Java:** Oracle JDeveloper (na ja, 2019 wohl nicht mehr ganz so aktuell .-) ) * http://www.oracle.com/technetwork/developer-tools/jdev/overview/index.html IntelliJ IDEA * https://www.jetbrains.com/idea/ **Pyhton** IntelliJ PyCharm * https://www.jetbrains.com/pycharm/ **Datenbank Entwicklung** Oracle SQL developer: * http://www.oracle.com/technetwork/developer-tools/sql-developer/overview/index.html * [[prod:oracle_sql_developer|Oracle SQL Developer - Wie mit diesem Tool arbeiten - Performance Optimierung]] TOAD Zu kostenintensiv, aber einfach immer noch das beste Werkzeug für die PL/SQL Entwicklung * http://software.dell.com/products/toad-for-oracle/ PL/SQL Developer Gutes Preis/Leistungsverhältnis, für reine PL/SQL Entwicklung sehr gut geeignet * https://www.allroundautomations.com/plsqldev.html ---- ==== Schriften/Fonts zum Programmieren ==== Die Lesbarkeit, besonders auf dem Notebook mit hoher Auflösung wird deutlich verbessert: * Hack - TrueType für Programmierung => Download über http://sourcefoundry.org/hack/ ---- ==== Zeichensätze / ASCII Tabellen ==== American Standard Code for Information Interchange (ASCII) Tabellen => https://www.ascii-code.com/ ---- ==== Beispiel Text ==== Zum Testen von Text Funktionen und Webseiten, Fonts gibt den lipsum Text. Hier ein Generator dazu: http://www.lipsum.com/ ---- ==== Online Tutorials ==== Math => https://brilliant.org/ ----