Oracle APEX with Python

For a long time I was looking to run Python code together with my Oracle APEX application. Just for a PoC. As far as I know offers the MLE from Oracle only JavaScript at the moment. But a few days ago a saw a post from Stanley writing about „PyScript„.

On a high level, „PyScript“ brings Python to the Browser, to use a lot of existing modules in your own web applications. For more details go to the „PyScript“ page.

I will not go into detail how to implement „PyScript“ in your web applications. The post from Stanley is a good start for doing this. But I will show how to implement „PyScript“ in an APEX application and to show a matplotlib chart.

For that I created a small APEX application with only one page to present the result. You will see 2 page items (P1_PRICE, P1_DATE) holding the price and date values. This page items are filled via SQL Query on page load. The Python code read the value of this items via DOM and transfer it in NumPy arrays to plot the chart.

First, we have to load the pyscript.js via „File URLs“ in the JavaScript section on the page:

As a second step on the page we have to load the pyscript.css via „File URLs“ in the CSS section:

There are different ways to implement the Python code in the page. A clean way would an external .py file loaded via Static Application Files in the Shared Components. But for my PoC and because of a lot of re-writing/testing the code in the beginning I put it directly in the „HTML Code“ in the Source section:

    - numpy
    - matplotlib
import numpy as np
import matplotlib.pyplot as plt

# get Page Item P1_PRICE
ul_element = Element("P1_PRICE")

# transfer value from Page Item to numpy array
arr_price = np.fromstring(ul_element.value, dtype=float, sep=',')

# get Page Item P1_Date
ul_date = Element("P1_DATE")

# get Page Item value
date_list = ul_date.value

# transfer value from Page Item to array
arr_date = date_list.split(",")

# prepare the plot
fig, ax = plt.subplots(figsize=(15, 8))

# add the arrays to the plot
ax.plot(arr_date, arr_price)

# format the plot

# display the plot

After running the page it takes a few seconds to load the „PyScript“ environment and as a result, Python is rendering a line chart of data from the Oracle database via APEX.

PyScritp is loading
PyScript is loading
Python chart in an APEX page

The import of „PyScript“ offers an APEX application the Python world with a lot of modules to work with data and other usefull things. At the time of writing, PyScript is in an alpha state and is actively being developed, so breaking changes and newer features are to be expected since it hasn’t been stably released yet. And to be honest loading/showing a chart via APEX is much faster then via the Python code, because of starting the whole „PyScript“ backend with each page load.

Veröffentlicht unter APEX, JavaScript, Python | Verschlagwortet mit , , | Schreib einen Kommentar

Connect Flutter with Oracle Database via OAuth2 authorized JSON-API

A few month ago I started with coding in Dart/Flutter. One of my first „projects“ was to create a mobile app for my pantry inventory. To have the data available on different devices synchronized it was needed to save it somewhere in the cloud.

Pantry mobile app
Pantry Mobile App

Of course, there a several options available to save data in the cloud. Some of them are not for free, some will not follow my point of view with GDPR regulations. The good thing was, that Oracle offers an always free database in the cloud. And since I’m working with Oracle APEX the whole setup was available for me without starting from scratch.

In this always free database, Oracle offers an autonomous database with a REST interface and you can decide in which location it should running. There are a lot more options available (Oracle APEX, VM’s, …) but these are not needed for this post. For more information, please take a look.

Reflected in this post:

  • Dependencies in Dart/Flutter
  • Code to authorize with the REST API
  • Code to get JSON data from the REST API

Not reflected in this post:

  • How to work with REST in the database (Please take a look on the posts from Jeff and here and here and here)
  • How to setup OAuth2 in the Oracle environment (Please take a look on these post and here)
  • How to create JSON data model in Flutter (Andrea offers a great post about that)
  • How to display the received JSON data in a Flutter widget

Before we start: On a high level you need Dart/Flutter installed and working on your client. Oracle database with the REST API available and Client_Id and Client_Secret created.

First we need 2 dependencies in our „pubspec.yaml„: „oauth2_client“ and „oauth2„.

# Dependencies specify other packages that your package needs in order to work.
# To automatically upgrade your package dependencies to the latest versions
# consider running `flutter pub upgrade --major-versions`. Alternatively,
# dependencies can be manually updated by changing the version numbers below to
# the latest version available on To see which dependencies have newer
# versions available, run `flutter pub outdated`.
    sdk: flutter
  intl: ^0.17.0
  http: ^0.13.4
  provider: ^6.0.1
  oauth2_client: ^2.3.1
  oauth2: ^2.0.0

Next we have to create our „MyOAuth2Client“ class extends from „OAuth2Client“ where we have to describe our „authorizeURL“ and our „tokenURL„. To connect and authorize with our REST API we use an „OAuth2Helper“ and add our „Client_Id“ and „Client_Secret„. In the code below named with „MyClientID“ and „MyClientSecret„. In „OAuth2Helper“ set „grantType:“ to „OAuth2Helper.CLIENT_CREDENTIALS„.

With this preparation we can call our „getPantryList“ within our Flutter widget to get a JSON list back from our Oracle database with all pantry entries. All the magic things (authorization, token handling) will happen without any further interaction from the user.

The variable „domain“ is predefined in the „secrets.dart“ and is imported on top of the code. I use this to not push private data into github.

import 'dart:convert';
import 'package:http/http.dart' as http;
import 'package:oauth2_client/oauth2_helper.dart';
import 'package:oauth2_client/oauth2_client.dart';
import 'package:pantry/app/models/pantry.dart';
import 'package:pantry/app/auth/secrets.dart';
import 'package:pantry/app/models/pantryselect.dart';

class MyOAuth2Client extends OAuth2Client {
  MyOAuth2Client({required String redirectUri, required String customUriScheme})
      : super(
            authorizeUrl: domain + 'pantry/list',
            tokenUrl: domain + 'oauth/token',
            redirectUri: redirectUri,
            customUriScheme: customUriScheme);

OAuth2Client client = MyOAuth2Client(redirectUri: '', customUriScheme: '');

OAuth2Helper oAuth2Helper = OAuth2Helper(client,
    clientId: 'MyClientID',
    clientSecret: 'MyClientSecret',
    grantType: OAuth2Helper.CLIENT_CREDENTIALS);

Future<Pantrylist> getPantrylist() async {
  http.Response resp = await oAuth2Helper.get(domain + 'pantry/list');
  var pantrylistModel;
  try {
    if (resp.statusCode == 200) {
      var jsonString = resp.body;
      var jsonMap = json.decode(jsonString);

      pantrylistModel = Pantrylist.fromJson(jsonMap);
  } on Exception {
    return pantrylistModel;
  return pantrylistModel;

With a few more REST endpoints in my database I can add, change and delete entries if needed.

The beauty of using the Oracle free cloud for my data is, that I use the same data in an Oracle APEX application. With that I can create a GUI for the browser and work with the same data.

Veröffentlicht unter Dart, Flutter, Programmierung, REST API | Verschlagwortet mit , , , , | Schreib einen Kommentar

Einstieg in C# mit Visual Studio 2022

In diesem Post beschreibe ich ein Buch, welches die Programmiersprache „C#“ und die dazu passende IDE „Visual Studio“ zum Thema hat. Ihr erfahrt, weshalb es sich gerade für Einsteiger lohnt, dieses Buch zu lesen.

Titel: Einstieg in C# mit Visual Studio 2022 – Ideal für Programmiereinsteiger
Autor: Thomas Theis
Verlag: Rheinwerk Verlag
Erscheinungsdatum: 2022
ISBN: 978-3-8362-8835-4
Seitenzahl: 507

Einstieg in C# mit Visual Studio 2022 – Ideal für ProgrammiereinsteigerFl


Zu Beginn gehört natürlich die Einrichtung und Erklärung der Entwicklungsumgebung (Installationsanleitung im Buch-Anhang). Für die Beispiele im Buch völlig ausreichend wird die frei verfügbare Community Edition verwendet. Um dem Leser/der Leserin einen einfachen Einstieg zu ermöglichen, wird von Anfang an mit anschaulichen Windows Anwendungen gearbeitet. Dazu gehört die Arbeit mit Steuerelementen, Variablen, Verzweigungen und Schleifen. Der wichtigen Fehlerbehandlung ist ein eigenes Kapitel gewidmet.

Bevor es an die objektorientierte Programmierung geht, erfährt der Leser/die Leserin noch was Datenfelder, Methoden und nullbare Datentypen sind. Weiter geht es mit kurzen, aber vom Autor gut erklärten Code-Beispielen. Diese enthalten Erklärungen zur Vererbung, Polymorphie, abstrakten Klassen, Schnittstellen und generischen Datentypen. Um nur ein paar Beispiele aufzuführen. Damit greift der Autor alle wichtigen Themen einer modernen Programmiersprache auf. Mit jedem neuen Code-Beispiel lernt der Leser/die Leserin mehr über die Sprache und bekommt die notwendigen Ausführungen vom Autor, um den Code zu verstehen. Die Materialien können auf der Webseite zum Buch beim Verlag heruntergeladen werden.

Nach dieser ausreichenden „Einleitung“ werden im Buch wichtige .NET Klassen beispielhaft mit Code erklärt. Da es sich bei Windows um ein hauptsächlich grafisch bedientes Betriebssystem handelt, enthält das Buch ein eigenes Kapitel zur Programmierung von verschiedenen Elementen von Windows-Programmen (z.b. unterschiedliche Arten von Menüs, Status- und Symbolleiste, Dialogfelder). Bevor es an kleinere, vollständige Beispielprojekte geht (Tetris, Vokabellernprogramm), wird auf die Arbeit mit Datenbankanwendungen, GDI+ und die Windows Presentation Foundation eingegangen.


Der Titel des Buches verspricht nicht zu viel. Wer sich mit der Sprache C# beschäftigen möchte, dem kann ich dieses Buch uneingeschränkt empfehlen. Die Code-Beispiele sind ausreichend beschrieben und schnell in eigenen Übungen umgesetzt. Und auch bei, für Anfänger, schwierigen Themen wie z.B. Klassen, Vererbung, Schnittstellen sind alle Erklärungen verständlich geschrieben. Wenn ich mir für eine nächste Auflage etwas wünschen dürfte, wäre es ein Kapitel über den Zugriff auf Internet-Ressourcen (z.b. Interaktion mit REST APIs oder Webseiten).

Disclaimer: Das Buch wurde mir vom Rheinwerk Computing Verlag kostenfrei zur Verfügung gestellt.
Veröffentlicht unter .NET, Microsoft, Programmierung, Windows | Verschlagwortet mit , , , , | Schreib einen Kommentar

Flutter und Dart – Das umfassende Handbuch

Auf dieses Buch habe ich mich lange gefreut. Im letzten Jahr hatte ich damit begonnen in Dart und Flutter meine ersten Schritte zu gehen, da kam die Ankündigung für dieses Buch genau richtig. Flutter wurde von Google entwickelt und eignet sich zum Entwickeln von Cross-Plattform-Apps. Gemeinsam mit Dart können auf einer Codebasis und wenigen Anpassungen Anwendungen für iOS, Android, Web oder Windows, Linux, macOS entwickelt werden.

Titel: Flutter und Dart – Das umfassende Handbuch
Autor: Thomas Theis
Verlag: Rheinwerk Verlag
Erscheinungsdatum: 2021
ISBN: 978-3-8362-8146-1
Seitenzahl: 651

Flutter und Dart - Das umfassende Handbuch - Buchcover
Flutter und Dart – Das umfassende Handbuch


Um mein Fazit gleich vorweg zu nehmen, das Buch hat mich enttäuscht. Erwartet habe ich ein Buch, welches einen leichten Einstieg auch für Neulinge dieser Sprachen bietet. Und der Autor weißt gleich am Anfang auf diesen, seinen eigenen, Anspruch mit folgendem Satz hin: „Sie benötigen hierzu keinerlei Vorkenntnisse in anderen Programmiersprachen.„. Schon beim ersten Durchblättern ist mir aufgefallen, dass die Code-Beispiele nicht sehr umfangreich, oder auch dem Platz im Buch geschuldet, nicht vollständig abgedruckt sind (dazu gleich mehr). Es wird auch nicht, wie in anderen Büchern vorgemacht, anhand eines durchgehenden Beispiel-Programms das vermittelte Wissen weiter vertieft.

Der Autor versucht im ersten Teil des Buches alle Aspekte der Sprache Dart zu erklären, mal mehr mal weniger umfangreich. Immer wieder habe ich das Gefühl, dass Wissen aus einer anderen, modernen Programmiersprache, von Vorteil wäre, um alle Einzelheiten zu verstehen. Im zweiten Teil des Buch geht es dann um Flutter und man lernt, dass Flutter komplett aus Widgets besteht. Sei es ein einfache Seite (Homepage), ein Button, eine Tabelle usw. Im Rest des Buches wird auf die Entwicklung eigener Flutter-Plugins, das Debugging und Testen einer App eingegangen. Was ich leider sehr vermisst habe, war ein Kapitel über das Deployen der fertigen App. Was ist erforderlich, um die App in einem der Mobile-App-Stores zu veröffentlichen? Stattdessen wird in kurzen Abschnitten die Veröffentlichung eines Packages beschrieben und ansonsten auf die Online-Dokumentation verwiesen.


Das Buch ist gut zum Nachschlagen geeignet. Dazu sollte man allerdings wissen, wonach man sucht und das setzt voraus, dass man das Konzept von Flutter verstanden hat, oder schon Erfahrung in einer anderen Programmiersprache besitzt. Es gibt erste Beispiele in der Dart-Programmierung an die Hand und erklärt relativ umfangreich die Erstellung von Bedienoberflächen mit verschiedenen Flutter Widgets. Vermisst habe ich einen durchgehenden Faden, der Anhand eines oder mehrer Beispielanwendungen die Anwendung der Sprache erklärt.

Hinzukommt, dass das Buch genau in der Zeit geschrieben wurde, als Google größere Änderungen, was z.B. Code-Sicherheit und Navigation angeht, vorgenommen hat. Deshalb ist es unbedingt erforderlich, sich die Codebespiele von der Buch-Webseite herunterzuladen. Nicht nur hat man hier den kompletten Code, sondern auch schon für Flutter 2.x angepasst vorliegen. Was leider nicht mehr vollständig im Buch untergebracht werden konnte.

Disclaimer: Das Buch wurde mir vom Rheinwerk Computing Verlag kostenfrei zur Verfügung gestellt.
Veröffentlicht unter Allgemein | Verschlagwortet mit , | Schreib einen Kommentar

Einstieg in Unity 2D- und 3D-Spiele entwickeln

Es wird wieder Zeit, über ein Buch zu schreiben. Und in alter Tradition geht es darum, spielerisch seine Programmierkenntnisse zu erweitern. Genauer geht es darum, mit C# und der Unity Engine 2D und 3D Spiele zum laufen zu bringen.

Titel: Einstieg in Unity 2D- und 3D-Spiele entwickeln
Autor: Thomas Theis
Verlag: Rheinwerk Verlag
Erscheinungsdatum: 2021
ISBN: 978-3-8362-8332-8
Seitenzahl: 487

Einstieg in Unity
Einstieg in Unity


Wie die meisten Bücher geht es erst einmal darum, sich die nötigen Programme zu installieren. Dabei ist man flexibel in der Auswahl seines Betriebssystem, alle aktuellen Systeme werden unterstützt und die Installation im Buch beschrieben.

Während es an das erste 2D-Projekt geht, wird die Unity Umgebung und deren Bedienung erklärt. Ausreichend detailiert erklärt der Autor die Verknüpfung von C# Code und der Unity Engine. In den 18 enthaltenen Games erfährt der Leser Projekte, Scenes und Assets zu verwalten. Collider und Trigger zu behandeln und wie Physik simuliert wird. Neben bekannten Arcade-Klassikern sieht man, wie aktuelle 3D-Adventures oder 3D-Autorennen erstellt werden. Mit eigener Fantasie kann man diese Beispiele selbständig erweitern. Das Buch gibt genug Wissen an die Hand. Alle Code-Beispiele und verwendete Assets können von der Webseite des Verlags heruntergeladen werden.

Abgerundet wird das Buch mit einem eigenen Kapitel als C# Programmierkurs und Hinweisen, wie man seine Spiele auf verschiedenen Plattformen veröffentlicht.


Das Buch beschreibt sich selber als „Ideal für Programmieranfänger“, was ich bestätigen kann. Der Autor fängt mit einfach umzusetzenden Beispielen an und steigert die Anforderungen. Zwischendurch geht er näher ins Detail und ergänzt auch nützliche Hinweise an fehlerträchtigen Stellen. In jedem Kapitel wird der Code nach und nach um Funktionen erweitert. Schon durchgeführte Programmierübungen werden nicht wiederholt, um Doppelungen zu vermeiden und das Buch nich unnötig aufzublähen.

Wenn ich einen Kritikpunkt äußern darf, dann hat dieser nichts mit dem Inhalt des Buches, sondern mit dessen Bindung zu tun. Ein solches Buch liegt bei mir neben der Tastatur, um den Code abzutippen. Leider bleibt das Buch nur geöffnet, wenn es auf beiden Seiten entsprechend gehalten/beschwert wird.

Der Autor liefert, was er verspricht. Der Leser bekommt erste Erfahrungen mit C# und Unity an die Hand, inkl. Erfolgserlebnissen mit guten Beispiel-Games. Für tiefergehende Kenntnisse kann man weitere Literatur oder das Internet bemühen.

Disclaimer: Das Buch wurde mir vom Rheinwerk Computing Verlag kostenfrei zur Verfügung gestellt.
Veröffentlicht unter Bücher, Programmierung | Verschlagwortet mit , , , | Schreib einen Kommentar

Programmieren lernen mit JavaScript

Wieder einmal bekam ich die Gelegenheit, ein Buch aus dem Rheinwerk Computing Verlag zu lesen und darüber zu schreiben. Es geht um JavaScript und den spielerischen Einstieg in die Programmierung damit.

Titel: Programmieren lernen mit JavaScript
Autor: Stephan Elter
Verlag: Rheinwerk Verlag
Erscheinungsdatum: 2019
ISBN: 978-3-8362-7369-5
Seitenzahl: 391

Schon beim ersten durchblättern sieht man, dass es sich um ein Buch für Anfänger handelt. Der Autor beschreibt die Grundlagen von HTML und wie Webseiten aufgebaut sind.

Programmieren lernen mit JavaScript


Nachdem der Autor mit ein paar Code-Beispielen den Aufbau einer HTML-Seite beschrieben hat, geht es mit den JavaScript Grundlagen weiter. Dabei erfährt der Leser wie Ein- und Ausgaben, Schleifen, Berechnungen, Entscheidungen und Variablen in JavaScript umgesetzt werden. Die typischen Grundlagen einer jeden Programmiersprache.

Alle weiteren Beispiele im Buch haben einen spielerischen Hintergrund und sind sehr umfangreich beschrieben. Was der persönliche Schreibstil und die grafische Unterstützung (Hinweistextboxen, Erklärung einzelner Codezeilen) der Codebeispiele noch verstärkt. Ausreichend viele Screenshots lockern die Kapitel auf und helfen zur Kontrolle der eigenen Code-Ergebnisse.

Zu den Beispielen im Buch gehört die Programmierung eines Text-Adventures und auch die Freunde von grafischen Spielen kommen mit einem Mondlande- und einem Tetris-Spiel nicht zu kurz.


Dieses Buch ist jedem zu Empfehlen, der noch keine JavaScript Erfahrungen hat. Nicht nur, dass er hier in die ersten Schritte der Programmierung eingeführt wird, es werden auch die wichtigsten HTML-Grundlagen beschrieben. Wer schon Erfahrungen mit JavaScript hat und nun tiefer (z.B. ein JavaScript Framework) einsteigen möchte, dem empfehle ich ein anderes Buch zur Hand zu nehmen.

Die Codebeispiele und auch eine Leseprobe sind wie immer auf der Webseite zum Buch beim Verlag erhältlich.

Kleine Anekdote am Rande: Ich habe das Buch meinem elfjährigen Neffen zum lesen gegeben und es dauert nicht lange, da durfte ich ihm dabei behilflich sein, den Editor auf seinem Laptop zum Laufen zu bringen. Er begann dann damit, die ersten Beispiele abzutippen und ich erinnerte mich an meine Anfänge in den 1980ern und Basic auf meinem Atari.

Disclaimer: Das Buch wurde mir vom Rheinwerk Computing Verlag kostenfrei zur Verfügung gestellt.
Veröffentlicht unter Allgemein | Verschlagwortet mit , , | Ein Kommentar

Swift 5 – Das umfassende Handbuch

Schon der Zeitraum zum letzten hier besprochenen Buch über Swift zeigt, dass ich eine Version ?bersprungen habe. Es ?ndert sich mit jeder Version so viel und ich besch?ftige mich auch gerne noch mit anderen Themen rund um die IT. Aber nun war es an der Zeit, dass ich wissen wollte, was Swift 5 zu bieten hat. Rechtzeitig, bevor SwiftUI ver?ffentlicht wird.

Titel: Swift 5 – Das umfassende Handbuch
Autor: Michael Kofler
Verlag: Rheinwerk Verlag
Erscheinungsdatum: 2019
ISBN: 978-3-8362-6638-3
Seitenzahl: 1328

Nach einem sehr kurzen Vorwort steigt das Buch wie vom Autor gewohnt sofort mit einem ersten Beispiel ein. Das typische „Hello World“ wird im Playground programmiert. Diese Vorgehensweise zieht sich durch das gesamte Buch. Zwischen dem vermitteln der n?tigen Grundlagen und speziellen Themen gibt es immer wieder kleine Programme, die das vermittelte in funktionsf?higen Source Code umwandeln.

Swift 5 – Das umfassende Handbuch

Im Buch behandelt Michael Kofler iOS, Mac OS und tvOS gleicherma?en. In extra Kapiteln geht er auf Themen ein, die f?r alle Plattformen gleich sind und/oder sich nur im Framework unterscheiden. Aber auch darauf wei?t der Autor entsprechend hin. Dabei m?chte Herr Kofler gar kein umfassendes Werk f?r die Programmierung in Swift mitgeben. Im Gegenteil, im Buch wird an verschiedenen Stellen auf Weblinks und eigene Internet-Recherche verwiesen.

Der Source Code kann auf der Seite des Verlags heruntergeladen werden, aber wie immer macht es mehr Sinn, ihn selber in Xcode einzugeben. Dadurch lernt man auch gleich die Bedienung kennen. Hier merkt man, dass es dem Autor um Swift geht. Er geht zwar in einem eigenen Kapitel auf Xcode ein und erkl?rt ein paar Menus und die Arbeitsweise, um dann in den weiteren Kapiteln entsprechendes Verst?ndnis in Xcode vorauszusetzen. Wer also schon l?nger damit arbeitet (?ltere Swift-Versionen, oder Object-C), kommt schnell voran, Neueinsteiger in Xcode suchen evtl. das eine oder andere mal oder m?ssen im Buch zur?ck bl?ttern.


In den Abschnitten f?r die verschiedenen Plattformen, geht der Autor auf spezielle Eigenarten dieser genauer ein. So z.B. auf die Touchbedienung bei iOS, oder mehreren Fenstern und deren Zusammenarbeit in Mac OS. Im Kapitel „Programmier- und Arbeitstechniken“ werden dann diese und weitere Themen genauer beschrieben. Der Leser lernt mit Dateien und dem Netzwerk umzugehen, wie die GPS- und Kompassfunktionen genutzt werden. Weiter geht es mit Grafik, dem SpriteKit, Core Data und SQLite, iCloud oder dem App Store. Um nur ein paar Punkte zu nennen. Wer es genauer wissen m?chte, der Verlag hat das Inhaltsverzeichnis online gestellt.

Abgerundet wird das Buch mit verschiedenen Beispielprojekten, die das im Buch gelernte „spielerisch“ anwenden.


Wer schon Swift Erfahrung hat, f?r den lohnt sich das Buch. Apple ?ndert zwischen den Versionen genug, dass man immer am Ball bleiben sollte. Aber auch, wer schon Erfahrung in anderen Programmiersprachen und Interesse an Swift hat, dem kann ich das Buch empfehlen. Und wer nicht alles im Buch versteht, oder noch mehr Informationen m?chte, dem bietet das Buch ausreichend weitere Links im Text erw?hnt oder dem hilft eine Suchmaschine seiner Wahl weiter. Am besten legt man sich das Buch neben das MacBook und „arbeitet“ mit beidem gleichzeitig.

Disclaimer: Das Buch wurde mir vom Rheinwerk Computing?Verlag kostenfrei zur Verf?gung gestellt.

Veröffentlicht unter Allgemein | Schreib einen Kommentar

Oracle SQL – Das umfassende Handbuch

Meine letzte Buchbesprechung ist schon ein paar Monate zurück. Das liegt aber nur zum Teil am Umfang des mir nun vorliegenden Buches. Schnell mal durchgelesen ist „Oracle SQL – Das umfassende Handbuch“ allerdings nicht. Aber dazu später mehr.

Titel: Oracle SQL – Das umfassende Handbuch
Autor: Jürgen Sieben
Verlag: Rheinwerk-Verlag
Erscheinungsdatum: 2018
ISBN: 978-3-8362-6242-2
Seitenzahl: 1047

Wie auch „Oracle Apex“ ist dieses Buch von Jürgen Sieben verfasst. Dieser zeigt mit seiner Schreibweise, das Fachliteratur nicht trocken sein muss. Er mischt das zu vermittelnde Fachwissen mit Erfahrungen/Projekten aus seinem Berufsleben und erklärt somit, weshalb er bestimmten Code genau so vermittelt, obwohl es auch andere Wege gibt.

Oracle SQL - Das umfassende Handbuch

Oracle SQL – Das umfassende Handbuch

Auf das Inhaltsverzeichnis werde ich hier nicht extra eingehen, dieses findet man auf der Webseite zum Buch, genauso wie die Materialien zum Download. Mit diesen können die Code Beispiele selber ausprobiert werden. Es ist sogar zu empfehlen, die Skripte zu installieren, um die gleichen Daten in der eigenen Datenbank wie der Autor zu haben.

Und da komme ich schon zum ersten Kritikpunkt, der mich beim Durcharbeiten aufgehalten hat. Im Buch auf Seite 51 wird beschrieben, wie man das Beispielschema in seine Oracle Datenbank bekommt. Jürgen Sieben erklärt, wo man das Paket herunterlädt, dass man es entpacken und sich dann in einem Konsolenfenster in das eben entpackte Archiv begeben soll (enthält mksample.sql). Nachdem man sich per sqlplus mit der Datenbank verbunden hat, reicht ein Aufruf von „@mksample.sql“. Und das hat bei mir leider nicht funktioniert. Nach ein wenig Recherche fand ich den Hinweis auf der GitHub-Seite des Pakets unter Punkt 2.3. Dort steht, dass man in allen Skripten den Pfad auf seine Umgebung anpassen muss. Damit lief das Skript durch und legte die gewünschte Umgebung an. Da fällt z.B. der „kleine“ Fehler im Skript auf Seite 378 schon gar nicht mehr ins Gewicht. Wo „emp_dept_20 v“ definiert, aber „s.empno“ referenziert wird. Es sollte also „v.empno“ heißen. Allerdings nehme ich solche Fehler sportlich und als Übung, das Gelernte anzuwenden.

Jürgen Sieben bietet in seinem Buch ein großes Themenfeld für die Arbeit mit Oracle SQL Datenbanken. Der Leser erfährt vom Konzept der relationalen Datenbanken und wie er die Tabellen entsprechend anlegt, abfragt, mit Daten füllt oder Daten verändert. Ein extra Kapitel beschäftigt sich mit dem Aufbau der Oracle Datenbank und den Sicherheitseinstellungen. Für eine nächste Auflage würde ich mir wünschen, dass der Autor noch erklärt, wie die Umgebung einzurichten ist, damit man von einem anderen Computer darauf zugreifen kann. Somit konnte ich die Datenbank in einer virtuellen Maschine auf meinem NAS installieren und bequem mit dem Laptop auf der Couch sitzend, die Code-Beispiele durchgehen.

Auch „moderne“ Techniken, wie z.B. XML, JSON, Pivotabfragen und Objektorientierung in der Oracle Datenbank werden im Buch beschrieben. Abgerundet wird das Buch mit einem Kapitel für Performanzoptimierung und zu guter Letzt geht es um Datenmodellierung.

Zusammenfassend kann ich sagen, dass Jürgen Sieben auch in diesem Buch sein Wissen gut vermittelt. Man merkt ihm die Erfahrung aus der Praxis an. Der Leser sollte die Beispiele selber nachvollziehen, um den Code zu verstehen. Als Nachschlagewerk dient das Buch weniger, da viele Code Beispiele sich über mehrere Seite aufbauen. Allerdings geht der Autor an einigen Stellen im Buch explizit auf die Online Oracle Dokumentation ein, sollte ein Befehl oder dessen Syntax unklar bleiben.

Disclaimer: Das Buch wurde mir vom Rheinwerk Computing Verlag kostenfrei zur Verfügung gestellt.

Veröffentlicht unter Bücher, Oracle, SQL Developer | Verschlagwortet mit , , , | Ein Kommentar

Oracle APEX – Das umfassende Handbuch

Wie habe ich mich gefreut, als ich von diesem Buch erfahren habe. Die Anzahl deutschsprachiger APEX Literatur ist doch sehr überschaubar. Nachdem ich mich die letzten Wochen darin vertieft habe, schreibe ich diesen Blog mit gemischten Gefühlen.

Titel: Oracle APEX – Das umfassende Handbuch
Autor: Jürgen Sieben
Verlag: Rheinwerk-Verlag
Erscheinungsdatum: 2017
ISBN: 978-3-8362-4530-2
Seitenzahl: 895

Mit fast 900 Seiten handelt es sich um ein Schwergewicht und mit einem Preis von knapp 80 Euro gehört es nicht gerade zu der Literatur, die ich so im vorbeigehen mitnehmen würde. Meine Erfahrungen mit APEX kann ich als umfassend bezeichnen, schließlich habe ich in meinem letzten Job mein Geld damit verdient, Anwendungen in APEX zu entwickeln. Leider ist das schon ein paar Jahre her und die Entwicklung von Apex ist nicht stehen geblieben. Ich kann also sagen, dass ich mich sowohl als Umsteiger, als auch als fortgeschrittenen Anwender bezeichnen würde. Laut Autor soll das Buch aber genauso gut für Einsteiger geeignet sein.

Oracle Apex - Das umfassende Handbuch

Oracle APEX – Das umfassende Handbuch

Und da fangen meine Zweifel an. Jemand, der noch nie mit Apex gearbeitet hat, wird den einen oder anderen Screenshot im Text vermissen, um sich orientieren zu können. Stattdessen arbeitet der Autor mit sogenannten „Treffpunkten“. Diese sollen wiederholenden Text im Buch vermeiden und werden am Ende des Buches in einem Überblick zusammengefasst. Das es auch anders und meiner Meinung nach besser geht, zeigen die PDF-Dateien, die der Autor als Download zum Buch bereitstellt. Dort ist jeder Schritt mit einem beschreibenden Screenshot aufgeführt.

Für den Leser, der den Downloadlink zu den Beispielen und den erwähnten PDF-Dateien im Buch vermisst, er ist auf der Buch-Seite des Verlages zu finden (siehe auch das Update unten im Blog). Weshalb nicht prominent im Buch, z.B. auf dem Außencover? Für die nächste Auflage sollte der Autor noch einmal die im Buch und in der Realität verwenden View-Namen vergleichen. Es hat sich so manche Ungleichheit eingeschlichen (z.B. Buch Seite 165: EMP_UI_HOME_EMP_COUNT, Realität: EMP_UI_HOME_COUNT). Oder ein Typo auf Seite 188 (P4_DEP_Filter). Ebenso sollte der Leser ein paar Grundkenntnisse für Oracle Datenbanken mitbringen. Der Autor geht dafür zu wenig auf evtl. auftretende Fehler oder die Einrichtung der Datenbank/Benutzer ein. Um mit dem Buch und den Beispielen arbeiten zu können, liegen im Download-Paket Skripte bereit, die auf der Datenbank ausgeführt, eine fertige Umgebung bereitstellen.

Aber genug der Kritik. Mit dem Buch bekommt der Leser eine Lektüre an die Hand, die dazu einlädt, direkt loszulegen und erste Ergebnisse werden nicht lange auf sich warten lassen. Nebenbei erfährt man ein paar Best Practice (z.B. Namenskonventionen, reichhaltige Verwendung von Views, Code in der Datenbank) vom Autor, die auf eine lange Erfahrung zurückzuführen sind.

Während der erste Teil „Basics“ eine gute Einführung mit einer kleinen Mitarbeiteranwendung startet, der zweite Teile „APEX im Detail“ den Leser Informationen zu „Anwendungsseiten, Regionen, Seitenprozessen, Berichten, Grafiken und Charts, Dynamischen Aktionen“ vermittelt, geht es im dritten Teil „Fortgeschrittene APEX-Konzepte“ mit „Plugins, Webservices, Mobiler Entwicklung, APEX-Administration, Sicherheit“ schon sehr speziell zu.

Zusammenfassend sei gesagt, das Buch liest man nicht mal so nebenbei. Und als Nachschlagewerk dient es eher weniger. Wenn man aber die Beispiele direkt selber ausprobiert und sich durch die Eigenheiten der „Treffpunkte“ gearbeitet hat, wird es mit der Zeit flüssiger.

Update 14.12.2017:

Auf Seite 84 des Buches ist eine Fußnote, in der mit einer URL auf die Materialen zum Buch hingewiesen wird. Somit möchte ich mein oben Geschriebenes korrigieren.

Disclaimer: Das Buch wurde mir vom Rheinwerk Computing Verlag kostenfrei zur Verfügung gestellt.
Veröffentlicht unter Allgemein, APEX, Bücher | Verschlagwortet mit , , | Schreib einen Kommentar

Einstieg in Python – Ein Buch nicht nur für Einsteiger

Der vollständige Titel des vor mir liegenden Buches lautet „Einstieg in Python – Ideal für Programmiereinsteiger“ und damit trifft es genau den Tenor, der überall zu lesen ist, wenn es um Pythonprogrammierung geht. Diese Sprache eignet sich sehr gut für Anfänger, die bisher keine oder nur wenig Erfahrung mit Programmiersprachen besitzen.

Titel: Einstieg in Python – Ideal für Programmiereinsteiger
Autor: Thomas Theis
Verlag: Rheinwerk-Verlag
Erscheinungsdatum: Mitte 2017
ISBN: 978-3-8362-4525-8
Seitenzahl: 495

Das Buch beginnt mit der Installation von Python 3.x auf Windows, Ubuntu Linux und macOS. Ebenso erfährt der Leser wie die Python-Entwicklungsumgebung IDLE installiert und genutzt wird. Ein direkter Einstieg und erste Erfolge sind also gegeben.

Einstieg in Python - Ideal für Programmieranfänger

Einstieg in Python – Ideal für Programmieranfänger

Der Autor bringt dem Leser anhand von kurzen Beispielen die Syntax der Sprache, die Verwendung von Variablen und Operatoren, Schleifen, Funktionen und Modulen und die Behandlung von Fehlern im Programm bei. Diese Kapitel gehören zu einem Buch, welches sich an Programmiereinsteiger richtet und bieten auch erfahrenen Programmieren eine Hilfe, die neue Sprache zu erlernen.

Sind die ersten Beispiele noch dazu da, um Befehle zu erlernen, geht der Autor in den nächsten Kapiteln dazu über ein Rechenspiel zu entwickeln. Dabei holt er die Grundarbeitsweise immer wieder hervor, um weitere Themen in das Programm zu packen. Beginnt das Programm noch als reines Konsolenprogramm, wird es im entsprechenden Kapitel objektorientiert. Als nächstes kommt eine kleine Datenbank zur Speicherung der Spielergebnisse und eine browserfähige Version hinzu. Abgerundet wird das Ganze mit einer GUI-Version. Somit hat der Leser immer das Grundverständnis, was das Programm machen soll und eignet sich nach und nach weiteres Wissen an.

In einem eigenen Kapitel geht der Autor auf die Unterschiede zu Python 2 ein, um Umsteigern ebenfalls eine Hilfe an die Hand zu geben. Persönlich interessiert hat mich das Kapitel über die Pythonprogrammierung eines Raspberry Pi. Man erfährt, wie die GPIO-Ports und daran angeschlossene Hardware per Python gesteuert und abgefragt werden.

Es hat Spaß gemacht, das Buch zu lesen. Der Autor hat einen guten Schreibstil und die Beispiele sind verständlich beschrieben. Für erfahrene Programmierer ist das eine oder andere vielleicht vertraut und kann überflogen werden. Dem Buch liegt eine DVD mit dem Starterpaket Python 3.6 sowie alle Beispielprogramme bei. Ich hätte lieber eine Downloadmöglichkeit gesehen, da ich an meinen Computern keine Möglichkeit für den Zugriff auf DVDs besitze. Über einen im Buch enthaltenen Code und einer Zahlung von 5 Euro kann man sich auch noch die E-Book Version des Buches herunterladen.

Disclaimer: Das Buch wurde mir vom Rheinwerk Computing Verlag kostenfrei zur Verfügung gestellt.
Veröffentlicht unter Bücher, Programmierung | Verschlagwortet mit , , , | Schreib einen Kommentar