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 ÜberarbeitungBeide Seiten der Revision
programming [2020/03/12 12:11] – [JavaScript] gpipperrprogramming [2020/03/30 15:14] – [JavaScript] 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
 +
 +----
 +
 +
 +==== 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