Beide Seiten der vorigen RevisionVorhergehende Überarbeitung | Nächste ÜberarbeitungBeide Seiten der Revision |
programming [2019/12/30 22:29] – [Online Bildbearbeitung] gpipperr | programming [2020/01/15 19:09] – [Online Bildbearbeitung] gpipperr |
---|
===== 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 }} | |
| |
| |
| |
<fc #008080>**Am Ende wird alles gut. Wenn es nicht gut wird, ist es noch nicht das Ende.**</fc> | |
| |
| |
//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/ | |
| |
| |
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 | |
| |
| |
---- | |
| |
==== 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]] | |
| |
| |
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 | |
| |
---- | |
| |
| |
==== 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]] | |
| |
| |
---- | |
| |
| |
====SQL==== | |
| |
Datenmodellierung Online => https://www.vertabelo.com/ | |
| |
| |
* [[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_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_pattern_matching|SQL Pattern Matching 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]] | |
| |
| |
* [[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]] | |
| |
| |
* [[prog:sql_xml_xpath_oracle|Mit XML und xpath in einer Oracle SQL Query arbeiten]] | |
| |
| |
* [[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. | |
| |
| |
**Parallel SQL** | |
| |
* https://support.oracle.com/epmos/main/downloadattachmentprocessor?attachid=1329441.1%3APX_12C_FUNDAMENTALS | |
| |
**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 .-) | |
| |
---- | |
====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 ]] | |
| |
| |
| |
==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_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]] | |
| |
| |
ORDS REST API | |
| |
* [[prog:ords_rest_service|Oracle ORDS 3.0 REST API nativ verwenden]] | |
| |
| |
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]] | |
| |
| |
| |
**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 | |
| |
---- | |
| |
| |
| |
===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: | |
<code bash> | |
CLASSPATH=$CLASSPATH:$(echo "$MY_CLIENT_LIB"*.jar | tr ' ' ':') | |
</code> | |
| |
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: | |
<code> | |
echo $CLASSPATH > ~/myClassPath.txt | |
java -classpath @~/myClassPath.txt | |
| |
</code> | |
| |
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: | |
<code powershell> | |
java -jar C:\entwicklung\cfr\cfr_0_119.jar .\jline.jar --outputdir .\output\ --caseinsensitivefs true | |
</code> | |
| |
| |
Online: | |
| |
* http://www.javadecompilers.com | |
| |
| |
Jars auspacken mit procyon | |
<code powershell> | |
$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 | |
| |
</code> | |
=> 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]] | |
| |
| |
| |
| |
---- | |
| |
| |
| |
====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/ | |
| |
| |
| |
---- | |
| |
| |
==== 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/ | |
| |
| |
| |
---- | |
| |
| |