Benutzer-Werkzeuge

Webseiten-Werkzeuge


programming

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Nächste ÜberarbeitungBeide Seiten der Revision
programming [2020/03/12 12:11] – [JavaScript] gpipperrprogramming [2020/05/25 08:50] – [Versions Kontrolle und Build Tools + Diff Software] gpipperr
Zeile 1: Zeile 1:
 +===== 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
 +  * 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]]
 +
 +
 +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
 +
 +----
 +
 +
 +==== 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]]
 +
 +
 +----
 +
 +
 +====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
 +  * 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:
 +<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/
 +
 +
 +
 +----
 +
  
programming.txt · Zuletzt geändert: 2024/04/15 16:38 von gpipperr