Expose Docker Container services on the Internet using the ngrok docker image

The challenge: you are running a service, API or web application in a Docker container, locally on your laptop or in a cloud based VM or container platform. You would like to provide access to external consumers – yourself on your smart phone, a piece of code running in a cloud environment, a colleague on your local network or on the other side of the world. The question is: how to get requests from these (more...)

LEAP#446 RGB Joule Thief Night Light

I recently got hold of some 5mm RGB Flashing LEDs from a seller on aliexpress - some slow and fast flashing varieties just out of curiosity. Here I’ve put one the slow-flash kind in a “night light” circuit.

I decided to power from a little 1.5V CR1216 coin cell. To boost the voltage sufficient to power the LED, I’ve attached a toroidal joule thief circuit. The oscillating voltage produced by the joule thief is (more...)

Why Automation Matters : Consistent Test Environments

I’ve already made this point in a previous post, but I thought it was worth mentioning in a little more detail.

One of the neat things about automation is it gives you the ability to quickly build/replace test environments, so you know you have a consistent starting point. This is especially important for automated testing (unit, integration etc.), but it also applies to your learning experience.

I’m currently learning about a bunch of (more...)

Women in Tech Book and Upcoming SQL Saturday Events

Its been a busy holiday for me. Tim and I spent the days traveling since the weekend after Christmas until January 2nd moving the RV from California to Texas. I’m not the biggest fan of the Southwest- I just like green and water too much… 🙂

Crushing IT Bias Book

The evenings and nights were spent finishing up my book on Women in Technology, called “Crushing the IT Gender Bias” with Apress. I’ve been working on (more...)

Creating a local kubectl config file for the proxy to your Kubernetes API server

On my Mac accessing the CONFIG file of kubectl exist in a painful location as follows


When using the command "kubectl proxy" and invoking the UI requires you to browse to the CONFIG file which finder doesn't expose easily. One way around this is as follows

1. Save a copy of that config file in your current directory as follows

papicella@papicella:~/temp$ cat ~/.kube/config > kubeconfig

2. Invoke "kubectl (more...)

Data Guard Unexpected Lag

facepalmWhen configuring a physical standby database for Oracle using Data Guard, you need to create Standby Redo logs to allow the redo to be applied in (near) real time to the Standby. Without standby redo logs, Oracle will wait for an entire Archive Log to be filled and copied across to the standby before it will apply changes, which could take quite a while.

Which leads me to the problem I encountered a while ago, (more...)

Splitting strings when they are CLOBs

Like many of you, I have enjoyed using SQL to make data processing go hundreds of times faster. My new record is: 7000 times faster :-)

connection manager – what happens at startup & shutdown

Oracle Connection Manager (cman) is a great tool to create a gateway between networks which can not be connected, or filter those who can access to a service.
Most of the time, it's a very robust implementation and doesn't need a lot of attention. But if it's required to dig into it, a basic knowledge about it's components can be useful.

In this post I'll show what happens in a simple startup (& (more...)

Last Week in Stream Processing & Analytics – 3.1.2018

Happy New Year!

This is the 138th edition of my blog series blog series around Stream Processing and Analytics!

As every week I was also updating the following two lists with the presentations/videos of the current week:

As usual, find below the new blog articles, presentations, videos and software releases from last week:

News and Blog Posts


Upgrade pip Utility

You should always have the most current version of pip installed when working with Python. You can upgrade the pip utility with the following command:

sudo pip install --upgrade pip

It should print the following to the console:

Collecting pip
  Downloading https://files.pythonhosted.org/packages/c2/d7/90f34cb0d83a6c5631cf71dfe64cc1054598c843a92b400e55675cc2ac37/pip-18.1-py2.py3-none-any.whl (1.3MB)
    100% |████████████████████████████████| 1.3MB 971kB/s 
Installing collected packages: pip
  Found existing installation: pip 9.0.3
    Uninstalling pip-9.0.3:
      Successfully uninstalled pip-9.0.3
Successfully installed pip-18.1

Don’t ask what you can do for documentation – ask what documentation can do for you! (a top down perspective on documentation)

Related imageHow much documentation is enough documentation? What are the requirements in the definition of done regarding documentation? Cannot simply all code be self-documenting? These are common questions in DevOps, Scrum and other type of software development teams. Typically bottom up discussions among software developers at the time of developing the software. Not the best time to have this discussion – when all focus is on deliverable or delivered functionality – and not necessarily all the (more...)

New Year, New You

Well maybe not so much a new you. More like getting your personal “play” environments refreshed.

If you are anything like me, you want the latest and greatest in the setup where you play with great tech.

I have always had database, ORDS, APEX, SQLPLUS and so on installed in a VirtualBox VM. It has worked great and while I was hesitant to jump on the Docker train it is clear that not taking advantage (more...)

Finding the shortest path from Country A to Country B – using Neo4J and Node

Graph Databases are good at recording nodes and edges – and even more at performing queries that traverse the edges. Some challenges can be dealt with in Graph Databases far more elegantly and efficiently than for example in relational databases using traditional SQL.

As simple example, this article will create a Neo4J Graph Database instance, populated with the countries of the world (the nodes) and the (land) borders between the countries (the edges). The country (more...)

ORA-01422: exact fetch returns more than requested number of rows

When you’re doing clone of EBS 12.2, you may get below issue

INFO : Rapid Clone completed successfully , but the AutoConfig run recorded some errors.
Please review the AutoConfig section in the logfile. and Re-Run the entire cloning cycle , after fixing the problem.

Checked the logfile :

AutoConfig could not successfully execute the following scripts:
Directory: /u01/LEBEBSDEV/fs2/FMW_Home/webtier/perl/bin/perl -I /u01/LEBEBSDEV/fs2/FMW_Home/webtier/perl/lib/5.10.0 -I /u01/LEBEBSDEV/fs2/FMW_Home/webtier/perl/lib/site_perl/5.10.0 -I /u01/LEBEBSDEV/fs2/EBSapps/appl/au/12.0.0/perl -I (more...)

Oracle Tidbits – December 2018 #oratidbit

“Oracle *daily* TidBits” (#oratidbit) published on  Facebook, Twitter, and Google+ during weekdays in December 2018. The list is short as there were no #oratidbit during the Christmas holidays. Hope you find these helpful to learn something new or to remind you of its existence and use. HAPPY NEW YEAR 2019! #oratidbit #orcldb When you move the online data file using ALTER …

2018 : A Year in Review

What a strange year this has been for me from a technology perspective!

The Good

Lots of good things have happened over the year.

  • I did presentations at 15 separate tech events, as well as a talk to students at a local university. I do some talks at work too, but you can’t really count that. Even though I had some drama at some of the conferences, the presentations went well for the most part.
  • (more...)

Happy New Year 2019

Wish you all a very Happy, Healthy and Successful New Year 2019. Have a blessed year ahead!


Using SQL Translation Framework to access package variables

My last post had code to rewrite SELECT statements that tried to access public package variables. Here I'll integrate the code into the SQL Translation Framework. Use this only in development environments.

Your New Years Resolution

Aligning roughly with the calendar year, based on the Chinese zodiak we’re about to go from the year of the dog to the year of the pig. But for me, in the “Information Technology Zodiak” Smile , 2018 was the year of the hack, just as it was in 2017 and just as it will be for 2019.

I’ve not dedicated much time to keeping a record of all of the high profile breaches this year, (more...)

LEAP#442 Boldport ResPot

As any good electronics hobbyist must have done, I’ve already built a decade programmable resistor box - see LEAP#414 - but this is one with the Boldport twist. Yes, real pots.

A decade box is an old-fashioned bit of test equipment, allowing an arbitrary resistance to be dialed up to order.

As always, all notes, schematics and code are in the Little Electronics & Arduino Projects repo on GitHub