tag:blogger.com,1999:blog-293036482024-03-16T02:09:27.651+01:00Johan Louwers - Tech blogThe personal view on the IT world of Johan Louwers, specially focusing on Oracle technology, Linux and UNIX technology, programming languages and all kinds of nice and cool things happening in the IT world.Johan Louwershttp://www.blogger.com/profile/15736509702253963299noreply@blogger.comBlogger1075125tag:blogger.com,1999:blog-29303648.post-27788674679200184312019-11-05T09:54:00.002+01:002019-11-05T09:54:23.884+01:00Cloud Native Event Message Transformation
When designing a cloud native architecture on an enterprise scale it is most likely that you cannot start with a green-field situation. In all reality it is very likely that the enterprise landscape has grown in an organically manner over the years and the “legacy” systems are a given for a longer period of time.
Even though building a strategy and an architecture for a complete green-field Johan Louwershttp://www.blogger.com/profile/15736509702253963299noreply@blogger.com0tag:blogger.com,1999:blog-29303648.post-74787653200836203302019-10-31T10:02:00.002+01:002019-10-31T10:02:21.754+01:00Decomposing the last monolith - The UI-Monolith with web components
Enterprises tend to move away from the monolith based architectures and decompose existing solutions in smaller services. The use of functions and microservices is a common implementation model at this moment. However, a common observation is that enterprises tend to build (maintain) one last monolith even when adopting a modern architecture. In many of the microservice based applications the Johan Louwershttp://www.blogger.com/profile/15736509702253963299noreply@blogger.com0tag:blogger.com,1999:blog-29303648.post-9373830940829061422019-10-30T21:20:00.002+01:002019-10-30T21:20:30.423+01:00Add Oracle Linux 8 Vagrant box
When using Oracle Linux (a lot) for local development you most likely want to use Vagrant to quickly deploy new environments locally. Oracle originally supports the use of vagrant by providing Oracle Linux vagrant boxes. In line with the "traditions" Oracle provides a Vagrant box for the latest version, version Oracle Linux 8. Below are instructions to add the an Oracle Linux 8 box to your Johan Louwershttp://www.blogger.com/profile/15736509702253963299noreply@blogger.com0tag:blogger.com,1999:blog-29303648.post-10132114713877002212019-09-25T14:34:00.003+02:002019-09-25T14:34:31.773+02:00Creating a training set table for machine learning in Oracle Database
When building a machine learning model, you will require a learning / training set of data. To enable you to quickly create a set of training data you can make use of the SQL SAMPLE clause in a select statement. Using the SAMPLE clause you instruct the database to select from a random sample of data from the table, rather than from the entire table. This provides a very simple way of getting Johan Louwershttp://www.blogger.com/profile/15736509702253963299noreply@blogger.com0Utrecht, Netherlands52.090737399999988 5.12142010000002351.934617399999986 4.7986966000000226 52.246857399999989 5.4441436000000234tag:blogger.com,1999:blog-29303648.post-30742582327451681962019-09-24T09:07:00.003+02:002019-09-24T09:07:52.216+02:00Groovy - AST Transformation
Groovy is a powerful language that gives the opportunity to its users to plugin into the compilation process to create what we call AST transformations, ie. the ability to customize the Abstract Syntax Tree representing your programs before the compiler walks this tree to generate Java bytecode.
When writing a lot of Groovy code, especially when you write it as part of a wider team it will beJohan Louwershttp://www.blogger.com/profile/15736509702253963299noreply@blogger.com0tag:blogger.com,1999:blog-29303648.post-11797292215858344192019-09-23T16:17:00.004+02:002019-09-23T16:24:33.079+02:00Google Cloud Function call Oracle ADW Rest end-point
When running an Oracle Autonomous Database, for example an Oracle Autonomous Data Warehouse (ADW for short) it is very likely that multiple applications and solutions do want to have access to the data available in the ADW. A common scenario is that, a department in the enterprise has been developing an application in isolation and at one point in time requires some additional data from Johan Louwershttp://www.blogger.com/profile/15736509702253963299noreply@blogger.com0tag:blogger.com,1999:blog-29303648.post-74217569034988682822019-09-23T13:04:00.001+02:002019-09-23T13:04:04.409+02:00Create REST endpoint in Oracle Autonomous Database
Oracle provides, as part of the Oracle Cloud portfolio an Autonomous Database solution. The Autonomous Database is provided as an OLTP as well as a Data Warehouse deployment model. Without going into the technical details or the technical and operational benefits in this article we will focus on how to build REST interfaces in conjunction with oracle Autonomous Database. In this example we Johan Louwershttp://www.blogger.com/profile/15736509702253963299noreply@blogger.com0tag:blogger.com,1999:blog-29303648.post-73617114618218330612019-05-07T11:09:00.000+02:002019-05-07T11:09:00.671+02:00Fn Project - quick install guide
The Fn project is an open source project originally started within Oracle as part of the drive for more enterprise open source solutions. The Fn project is an open source serverless compute platform. With Fn, you deploy your functions to an Fn server which automatically executes and manages them. Each function is executed in a Docker container enabling the platform to provide broad support forJohan Louwershttp://www.blogger.com/profile/15736509702253963299noreply@blogger.com0tag:blogger.com,1999:blog-29303648.post-54704741778753160232019-03-18T15:42:00.001+01:002019-03-18T15:42:14.890+01:00Oracle Linux & Cloud Automation - clean yum data with ansible
Building infrastructure, configuring servers and deploying software has been a manual task for many years. With the rise of cloud computing, virtual machines, containers and CI/CD processes we see more and more that those manual tasks are being diminished and fully automated. When building your infrastructure in the Oracle Cloud you can make use of a wide set of automation tools to make Johan Louwershttp://www.blogger.com/profile/15736509702253963299noreply@blogger.com0tag:blogger.com,1999:blog-29303648.post-50945310006817325302019-03-15T14:34:00.002+01:002019-03-15T14:35:38.655+01:00dash - changing the favicon
Dash is a Python framework for building analytical web applications. It can be used to very quickly develop small applications capable of running small analytical visualizations. As it is developers in Python you have a natural fit with solutions like Panda and the like.
When getting started with Dash, developed by Plotly, you might run into the following question; how do I change the faviconJohan Louwershttp://www.blogger.com/profile/15736509702253963299noreply@blogger.com0tag:blogger.com,1999:blog-29303648.post-87949711615070832202019-03-05T11:25:00.002+01:002019-03-05T11:25:33.086+01:00Python - machine learning and clustering
Clustering is the task of dividing the population or data points into a number of groups such that data points in the same groups are more similar to other data points in the same group than those in other groups. In simple words, the aim is to segregate groups with similar traits and assign them into clusters.
Within machine learning we place clustering under unsupervised learning, Johan Louwershttp://www.blogger.com/profile/15736509702253963299noreply@blogger.com0tag:blogger.com,1999:blog-29303648.post-78562414663096335862019-02-20T13:46:00.002+01:002019-02-20T13:47:06.203+01:00Kubernetes - Minikube start dashboard for a Web UI
For those developing solutions that should run under Kubernetes, running a local version of Kubernetes leveraging Minikube can make your life much more easy. One of the question some people do have is how to ensure they can make use of the Kubernetes Web UI.
Running the Kubernetes Web UI while working with Minikube is relatively easy and you can start the Web UI with a single command of the Johan Louwershttp://www.blogger.com/profile/15736509702253963299noreply@blogger.com0tag:blogger.com,1999:blog-29303648.post-15040983308176052752019-02-15T16:04:00.000+01:002019-02-15T16:20:55.659+01:00Python Pandas – consume Oracle Rest API data
When working with Pandas the most common know way to get data into a pandas Dataframe is to read a local csv file into the dataframe using a read_csv() operation. In many cases the data which is encapsulated within the csv file originally came from a database. To get from a database to a csv file on a machine where your Python code is running includes running a query, exporting the results to Johan Louwershttp://www.blogger.com/profile/15736509702253963299noreply@blogger.com0tag:blogger.com,1999:blog-29303648.post-31278219406210412182019-02-13T16:23:00.001+01:002019-02-13T16:23:15.086+01:00resolved - cx_Oracle.DatabaseError: ORA-24454: client host name is not set
When developing Python code in combiantion with cx_Oracle on a Mac you might run into some issues, especially when configuring your mac for the first time. One of the strange things I encountered was the ORA-24454 error when trying to connect to an Oracle database from my MacBook. ORA-24454 states that the client host name is not set.
When looking into the issue it turns out that the Johan Louwershttp://www.blogger.com/profile/15736509702253963299noreply@blogger.com0tag:blogger.com,1999:blog-29303648.post-75057504713291618402019-02-12T12:50:00.003+01:002019-02-12T12:52:18.923+01:00Python pandas – merge dataframes
Pandas is an open source, BSD-licensed library providing high-performance, easy-to-use data structures and data analysis tools for the Python programming language. When working with data you can load data (from multiple type of sources) into a designated DataFrame which will hold the data for future actions. A DataFrame is a Two-dimensional size-mutable, potentially heterogeneous tabular data Johan Louwershttp://www.blogger.com/profile/15736509702253963299noreply@blogger.com0tag:blogger.com,1999:blog-29303648.post-68400970122791376902019-02-11T17:29:00.002+01:002019-02-11T17:29:41.277+01:00Secure Software Development - the importance of dependency manifest files
When developing code, in this specific example python code, one thing you want to make sure is that you do not develop vulnerabilites. Vulnerabilities can be introduced primarily in two ways; you create them or you include them. One way of providing an extra check that you do not include vulnerabilties in your application is making sure you handle the dependency manifest files in the Johan Louwershttp://www.blogger.com/profile/15736509702253963299noreply@blogger.com0tag:blogger.com,1999:blog-29303648.post-40349055571972940532019-02-10T14:46:00.002+01:002019-02-10T14:46:49.487+01:00Python Matplotlib - showing or hiding a legend in a plot
When working with Matplotlib of visualize your data there are situations that you want to show the legend and in some cases you want to hide the legend. Showing or hiding the legend is very simple, as long as you know how to do it, the below example showcases both showing and hiding the legend from your plot.
The code used in this example uses pandas and matplotlib to plot the data. The fullJohan Louwershttp://www.blogger.com/profile/15736509702253963299noreply@blogger.com0tag:blogger.com,1999:blog-29303648.post-51285243432407368672019-01-31T16:43:00.003+01:002019-01-31T16:43:39.674+01:00machine learning - matplotlib error in matplotlib.backends import _macosx
When trying to visualize and plot data in Python you might work with Matplotlib. In case you are working on MacOS and you use a venv, in some cases you might run into the below error message:
RuntimeError: Python is not installed as a framework. The Mac OS X backend will not be able to function correctly if Python is not installed as a framework. See the Python documentation for more Johan Louwershttp://www.blogger.com/profile/15736509702253963299noreply@blogger.com0tag:blogger.com,1999:blog-29303648.post-26636923240764147672019-01-29T16:20:00.001+01:002019-01-29T16:20:09.724+01:00Machine learning - Supervised machine learning and decision tree classifiers
When working with machine learning, and especially when you start learning machine learing one of the first things you will encounter is supervised machine learning and writing decision tree based classifiers. A supervised classifier which will leverage a decission tree to classify an object into a group will base itself on provided and already labled data.
The data will (in most cases) Johan Louwershttp://www.blogger.com/profile/15736509702253963299noreply@blogger.com0tag:blogger.com,1999:blog-29303648.post-29469992875329916042019-01-29T09:45:00.005+01:002019-01-29T09:53:43.860+01:00[SOLVED] OSError: [Errno 2] "dot" not found in path.
When trying to visualize data using pydot in Python you might run into an error where it is stated that “dot” is not found in the path. This is after you already ensured you installed Pydot and ensured you did an import of Pydot in your python code. The main reason for this is that your python code is unable to find the dot executable. The dot executable comes from the graphviz project. This Johan Louwershttp://www.blogger.com/profile/15736509702253963299noreply@blogger.com0tag:blogger.com,1999:blog-29303648.post-20436972255841401052019-01-18T11:25:00.000+01:002019-01-18T11:25:02.935+01:00Oracle JET - data-bind as text or html
When using the KnockoutJS data-bind option while developing Oracle JET applications you will have the option to use the data-bind in combination with a text option or a html option. In most cases developers will use the text option to bind a javascript view/model variable in the html view code. In most cases variables will contain a value that needs to be displayed in the context of the html Johan Louwershttp://www.blogger.com/profile/15736509702253963299noreply@blogger.com0tag:blogger.com,1999:blog-29303648.post-32852849875659840802019-01-17T11:57:00.000+01:002019-01-17T11:57:03.048+01:00Oracle JET - Knockout data-bind
When using Oracle JET for building your application you automatically make use of Knockout.js as this is a vital part of how Oracle JET works. Part of Knockout is the data-bind option. Knockout’s declarative binding system provides a concise and powerful way to link data to the UI. It’s generally easy and obvious to bind to simple data properties or to use a single binding. Understanding Johan Louwershttp://www.blogger.com/profile/15736509702253963299noreply@blogger.com0tag:blogger.com,1999:blog-29303648.post-6536797110846764292019-01-15T12:13:00.003+01:002019-01-15T12:15:14.495+01:00UX as part of your Enterprise Architecture
<!--[if gte mso 9]>
96
<![endif]-->
<!--[if gte mso 9]>
Normal
0
false
false
false
EN-GB
X-NONE
X-NONE
<![endif]--><!--[if gte mso 9]>
Johan Louwershttp://www.blogger.com/profile/15736509702253963299noreply@blogger.com0tag:blogger.com,1999:blog-29303648.post-71941255586424426672019-01-07T10:51:00.002+01:002019-01-07T10:51:55.364+01:00The adoption of chatbots in the enterprise market
We have seen the rise of chatbots in the past couple of years, more and more customer facing websites do implement a chatbot as part of the customer experience. Even though most people have had a negative experiences with chatbots the way they work is improving rapidly. Where chatbots used to be clumsy and not really good this is rapidly changing. The AI models behind chatbots is improving Johan Louwershttp://www.blogger.com/profile/15736509702253963299noreply@blogger.com0tag:blogger.com,1999:blog-29303648.post-74479126411404167132018-12-12T10:33:00.002+01:002018-12-12T10:33:23.249+01:00Oracle CX - act upon a negative customer experience
Customer experience is becoming more and more important both in B2B as well as in B2C. When a customer is having a bad experience with your brand and/or the service you are providing the changes that this customer will purchase something or will be a returning customer in the future is becoming very unlikely. Additionally, if the customer is having a good customer experience however is lackingJohan Louwershttp://www.blogger.com/profile/15736509702253963299noreply@blogger.com0