Sunday, June 14, 2026

AI: The new digital Cookie-cutter

  I am a database and application developer.  At my age I suspect part of the reason why I was included among the estimated 40K employees that were terminated, in the year Larry Ellision decided to burn his house down for AI, is that the assumption would be that I might be resistant to AI, or not capable of learning new skills that would make me successful with AI.

  I’m not going lie and say that this is false; because I have a healthy skepticism of what impact AI can represent on the world today, some of which the world is now seeing and many of us who were replaced so that ai can be provided for over our past contributions.

My skepticism is as follows:

1.      The termination of ( a whole lot of) highly skilled workers in favor of what essentially becomes a modern cookie-cutter solution

2.      The AI cookie cutter is not necessarily a cost savings as

a.      Massive Data Centers consume physical Assets, Electricity on a “by powerplant scale”

b.     are being trained by lower wages, lower skilled workers, resulting in incomplete, insecure, and some flat-out wrong results

c.      In order to use the AI cookie cutter the “developer”, or more likely their organization, must also pay for the privilege.

d.     Debugging is often required, which requires some of those highly-skilled worker you just put back into the job market.

3.      The AI cookie cutter also stifles innovation. Sure you can tell it what you want but it is going to produce its “solution” based on a lower-skilled knowledge base and therefore you lose the true power of code innovation in the form of organization, performance optimization, security-minded constructs, and sheer confidence that what you produce will pass a regulatory review.

  That being said, I consider myself partially (time will tell how bad it can get) correct in these cases.  Now I also have a powerful need to make my mortgage payments and feed my family, and since I am not a billionaire that can buy and sell the media using the same dividends that could have bought a good AI foundation while still respecting his employees and the needs, I have begun updating my skillset to include AI concepts and specifics for projects both personal and production related.  My initial assessment is as follows…

You have to know what you want.

  In great detail.  I have been seeing all these training programs that tout a code assistant without needing to know code.  Please reference my above points.  This is the path to literally paying for production code that, if you are ignorant enough to publish without meaningful review, will create the largest amount of expensive technical debt we will ever see in the field.  If you as an AI user don’t understand the term technical debt, then you are the current and future problem in this space.  If you want to be a developer or an IT professional, you need to do the work and learn your trade.

You have to know how to describe what you want.

  Again, in great detail.  Of course, this also comes with the idea that you have to be knowledgeable in the end result, how it look, how it behaves, and especially how it fits the needs of the problem you are solving.  See my previous assertion that like the blacksmith apprentice of old,  learn your trade.

  I have had some interesting test interactions with AI, that I will bring out in a future post but the things I have leaned in them are “educational” it presents an opportunity of sorts that might just make the disillusioned, highly-skilled, and by necessity “petty” developer and IT professionals even more valuable in the destopian AI future that we find ourselves pursuing like Alice heading down the rabbit-hole.

EOL


Monday, March 23, 2020

Call to Action : Project Listing


With willing hearts and skillful hands, the difficult we do immediately; the impossible takes a bit longer” -Ben Moreell, Rear Admiral, US Navy, (Founder of the Naval Construction Force)

  On March 18, 2020, Joel Kallman sent out a plea to the community Seek where you can help. Now.
Recognizing that we are data scientists, we specialize in collection and presentation of this data through our apps.  We also have a powerful arsenal of tools, with Oracle Application Express at it core, to do this work quickly.  In these times of CoVID-19 with quarantines, self-distancing and the like, we might have some bandwidth to help the cause. 

  If you are like me you have a number of family and friends that are working on the front lines of this pandemic to stem the flow of this virus, or you have people that are in a high risk group for the virus.

  I agree with Joel, and we should be looking for ways to get information to the front that is timely, and useful, most of all quick. 
  To this end I have started two apps one I think will help with the virus mitigation the other is for us, or really any developer looking to coordinate efforts.  This effort is important not just for now but for the next pandemic, hurricane, or any other event where emergency management becomes critical. 
  
  PVP is just a simple registry app that should give us an idea of the projects that are suggested or are in progress.  Find PVP HERE.  Add projects, give suggestions, or look for a team that needs resources.  It’s a fairly simplistic app but it should suffice for now.

  I have recorded my other App "EMMA" as both a functional and example record.

  read Joel's original post for background on the effort.
    Joel’s Oracle Profile: https://blogs.oracle.com/author/joel-kallman

Get to Work!” - Jason D. Aughenbaugh, Builder Second Class (BU2), US Navy (1993-2001)

Thursday, March 12, 2020

Relay Released... "and may the odds be ever in your favor"


  So that's it; the work is done, and everything is perfect.  Just kidding, its serviceable working and should be a good place to start.

  So if you were a fan of my previous post then you are anticipating this one.  Today I have finished an initial cleanup pass on the open-source code for Relay and have uploaded to github at the following location

https://github.com/jaughenbaugh/RelayWorkflow

  Now there is a lot here but some of what I allued to in the previous post is not.  Mainly documentation.  I am starting a basic install doc now and will post updates as I go.  For now, if you are brave enough to start digging into my madness here are a few points to consider.

  1. Relay is a PL/SQL and Oracle APEX system, Oracle XE is the minimum requirement.  It also works on the cloud services
  2. The bulk of development was done in Oracle XE 11g, but some was done on XE 18c.  Plan accordingly
  3. The initial repository is the direct reset and extract of working code on my cloud DB.  I had done a lot of in-line comments to document much of it.  Please excuse and vulgarity I may have missed removing,it a process afterall.
  4. What documentation there is in included in the repository
  5. Send any questions, comments, complaints, snide remarks, good jokes, bad jokes, and dad jokes to THIS EMAIL
  6. Finally, enjoy! 
BE ADVISED:  There is still work to be done so expect some issue along the way.

More to Come....


cheers!

Friday, February 28, 2020

RELAY Workflow: Open-Source Announcement




  After much thought, I have decided that the best possible future for the Relay Workflow software that I have developed, is to release it open-source. 

  That being said, over the near term I am moving the code from my closed-source drives to my online repository and attempting to pair down any dead items.  Now, the code will be there but not a whole world of documentation.  I will be adding more of that as time permits.

  Additionally, it can be said that there is a lot of dead code in this set, since I have been the sole developer to this point I made a point of never truly abandoning an idea just being content to comment it out and make direct notes in the code for future reference.  So bear with me, nothing is exactly perfect but hopefully this will be a good place to start.

  Additionally, if you wish to see my original basic product page you can find it here: 

  In the future I will post some blog entries on Relay and its inner workings just because there is a bunch of fun things under the hood of this one.

  Feel free to reach out on Relay to tk-relay@outlook.com 

Enjoy!
Jason Aughenbaugh

Monday, November 04, 2019

PL/ZPL: Printing to Zebra Printers from PL/SQL




  This requires a little background.  For a while now I have been interested in getting APEX to print directly to a Zebra Printer.  Now there are a few printing solutions available to APEX and I dare not compare to those but in my primary field of Asset Management we always have a need for direct printing to a very specialized set of devices; namely Zebra Printers.
  A year ago I found my first solution, and it’s pretty ugly for me and I wasn’t really secure in publishing it since it has its own issues.  In the last few days I had occasion to revisit the solution and try again.  Time has the benefit of perspective and so I have another solution as well, yet not the one I was looking for.
  Those who know me, know that APEX is not my primary skillset.  I’m passionate about it but in my daily life IBM Maximo pays the bills.  Within this system in recent version came an ability to script some components via Javascript and or Python (in the form of the Jython library).  So I was looking originally for a way to print these labels from Maximo using this type of scripting and have mostly found the solution, and might have a final once IBM finishes troubleshooting a python issue I keep running up against. 
  To compensate for this I set up a VM with Oracle XE and created a patch solution using PL/SQL triggered Python to send ZPL2 code to the printers to get results.  Now I dislike using more disparate tech than required to get the job done but at the time this was it.  I came back to this solution and had a minute to do some thinking and had an idea.  Research showed me that Oracle had a package that did similar work to the Python “socket” module, which is my current issue in Maximo.  What this knowledge did do is provide a super simple solution to my complex problem for Oracle and APEX.  I ran with it and today had a stunningly fast printing of my example tags. 
  This solution takes a lot from other’s work and twists it to my goal and I will try to give credit where credit is due. 
  The first task is to get the ZPL code for the label to be able to print it.  I have always preferred to not write my own ZPL since it 1500 page reference should speak for itself on how complex it can get.  Instead I use the Zebra Designer and then print the design to a file and then just grabbing the ZPL code to be used.  The gif below shows that export.
 Now that you have the ZPL, you have to get it to the printer.
PL/SQL-Batch-Python-ZPL Printing
  Ugh!  Just looking at that string is hard.
  From Oracle it is possible to trigger a python script from pl/sql through DBMS_SCHEDULER.  From there the job triggers a .CMD, .BAT, .SH (for unix) which triggers the python script to do the work.  There is less explanation here than there code I am releasing on gitlab to let you see how it’s done.
  Essentially the package has a set of DBMS_SCHEDULER creation procedures that use some metadata tables to send parameters to the python script that does the printer communication.  It’s ugly but effective.
PL/SQL-ZPL Printing
  This solution came down to a single line in the python documentation here: https://docs.python.org/3/library/socket.html “module provides access to the BSD socket interface”
  From there I searched for BSD Oracle and came to the ‘Pavan’ archive article on UTL_TCP. 
  The solution presented here takes this example directly and twists it slightly to do what I was doing in the Python script.  
  At the end of all this I found a better solution than I originally had and this one really looks like it can help.  If you are interested grab it, add it to your toolset and get back to work. 

  As a final note this blog is titled "Precision Guesswork".  If what you see here isn't pretty that's why.

Cheers!

Resources:
Labelary (great place to see ZPL results and to tweak your labels)

Zebra Designer (demo Licenses can be acquired here)

ZPLII (The great big book of everything)


python Docs (socket) (Where this tangent started)

utl_tcp (credit where it is due)

Tuesday, August 20, 2019

The fate of Relay Workflow...making decisions


There comes a point when you have to make a decision. 
For more than a couple of years I have been working on a workflow engine.  Finding all the ins and outs of process automation and making it all fit together.  It started out as a passion project. I never really entertained adding anyone else to the work because I didn’t know where it was going to go or even if it would ultimately be offered on a commercial basis.  In short, I kept it close, kept moving, and building.  At one time I offered it to my employer thinking to raise the money my wife and I thought to use to move out of Arizona, East.  That didn’t pan out.  So I kept building and trying to will it into being to work for me in some way.   
As of today I have come to a point where the demands of daily life and other concerns are out-weighing any ability to work on a project that really does not contribute to paying the bills. 
I had thought that it would make an interesting opportunity to hang out my own site and sell as a subscription service with on-prem options, mainly to see if I could build a business.  I had also thought about just selling it off to an established company allowing someone else to commercialize it and carry it forward.  I had also thought about just putting it on github and let it grow wild in the open-source realm.  Now I have to come to a decision. 
In my mind I know how much work it took to get from there to here.  I can calculate the hours spent in my own time, being cognizant of the difference between this project and what I am paid to do.  Stopping when an employer had rights to my work and only starting again when I had either a right or permission to do so.  It hasn’t been easy, I certainly learned most of my Oracle and APEX skills in the process.  Blog posts, whitepaper, books (both digital and dead tree format), and the occasional call to a friend with an answer I needed have all helped to accomplish this.
I hate to say that I have been arguing with myself on this topic but the post you are reading now is proof of that fact.  I have at this time decided to offer this work, a node-based pl/sql workflow engine, with an APEX designer application and the entire copyright to any company that finds they have sufficient interest in the topic to make me an offer.  In the short term I am packing up my code for just this purpose.  If any professional reading this posting feels that their organization might have an interest or knows of one, please reach out to tk-relay@outlook.com.
For more information on Relay go here: https://www.tribal-knowledge.co/apex/f?p=102:2::::::

Jason Aughenbaugh


Saturday, July 21, 2018

Five Minute Drills

  At KScope there is an APEX event.  "Open mic night"  if you have something to show you get up to 5 minutes to show it.  That isn't the only rule but it is an interesting challenge. 
  When I posted my last video on Relay Workflow I got a lot of really good feedback and a couple pieces of advice.  First, try to limit video time to 5 minutes.  Second, show us how it works not the extra details yet.
  So I ditched the slides and took the challenge to show off Relay in 5-minute Drills.  The first of which are up on youtube now.  This was less than easy.  The initial steps required to register, connect and integrate are pretty easy but still could not be contained to 5 minutes.  It was a good exercise though and really makes you think about process and delivery in more detail.


  I had to break it up into two Drills and the second ran over, but I wanted to complete the thought.  The new videos are located at the following links:
  So, the next installment is in, and I am one more step closer to releasing Relay for those that want to try it out on apex.oracle.com

  Til then, Cheers!


Sunday, July 01, 2018

It was a Labor of .... well it took a bit of work.

It has been a while. For a lot of things and for a lot of reasons.  Today I want to extend a greeting to all those serving in uniform no matter your country.  As the US celebrates its Independence Day, I recognize that those in uniform bear the brunt of diplomacy and its failings but the service you provide is invaluable to those that you serve.  I wish you all Peace now and in the future.

This latest post is to commemorate the first real showcase of a project that I have been working on for a while. It's origins go back as far as when I first began to use Application Express.  I had worked with several other systems that included a workflow component and almost immediately felt the absence of one in the APEX offerings. 
  I began with the idea, it matured into a design, then to code, and finally it got a name "Relay".   I originally thought that Domino might be better but IBM already had a product with that name, and I was uncomfortable with the idea that the perception of the name included a lot of work with one good show at the end.
  Over the years I worked, here, there; whenever I had some time in my life with my wife, (her patience with this should be notably appreciated), my two sons, and a full-time career.  Now, I have come to a point where I'd really like to show some of what it means to have workflow in your applications.  Today I uploaded a short (25min) video to youtube.com.  You can find the video here (https://youtu.be/N56G9VYbmtg) or by clicking the logo.
I am hoping that Relay will fill the gap I have seen for far too long in APEX and allow us to redefine some of how we create our applications in the future. 

There will be questions, I know this.  There will be comments, I know that too.  There will also be more videos and posts from me as I show more of what this has become.  Please tell me what you think.  As for release and a decision on commercial availability, I am leaving that as an open-ended topic for the moment but I am open to thoughts here as well.

Enjoy!

Wednesday, December 06, 2017

APEX on udoo x86 (TEST 1)

Not much to add from the previous post except that over the evening I finished the first test that merges all this into one example. The code is simple turn on a light when it shows that oracle says it should be on. try it for yourself : https://github.com/jaughenbaugh/precision-guesswork

Tuesday, December 05, 2017

APEX IoT recipe

So, This happened.

The History:
  Over a year ago (while with Insum) there was an announcement brought to us by Danny Boivin (@DannyBoivin), detailing a new kickstarter program for a maker board that promised a lot.  The main promise was an x86 based maker-board, similar to Arduino or RPi but better.  Well, they delivered.  This year Udoo released their x86 line of single board computers.  I say it is a line because there are options, and more options, but four main boards with a lot of extras. 
  What I saw in this and a reason to buy is a solution to an interesting problem (or at least a good opportunity).  How do we get Application Express, and an Oracle database to interact with an IoT project. It also expands the Arduino maker side of the board with additional pinouts from the x86 core.
  This is why I bought in.


Recipe for APEX IoT:


  • 1+ udoo x86 SBC ( I am using the Advanced Plus board for experimentation)
    • + is cool because apparently you can cluster these things for more fun
  • Connect your stuff (not all required but I am testing after all)
    • M.2 Wireless / BT4
    • M.2 SSD
    • SATA SSD
    • 32GB eMMC (integrated on 2 of the base boards)
    • 64GB micro SD
  • Choose your OS
    • Ubuntu 16 LTS and Windows 10 are recommended but not the only options by far
    • I'm using a hard drive for each but primarily Win 10 Pro
  • Install Software
    • Oracle Database 11g Express Edition 64bit
    • Oracle Application Express v5.1.3
    • Arduino IDE
      • The maker side of this board uses an Intel Curie processor (Arduino 101)
    • Python 2.x.x (64bit)
      • pyserial
      • cx_oracle
      • pyfirmata
    • Any other stuff you need (SQL Developer, Atom, etc)
  That's it for the environment the next thing is the theory of operations.  If you are already doing IoT with a regular Computer (with Apex) and an Arduino UNO then you are way ahead of me and please pipe up on what you've accomplished.

  Also if you are a newbie like me to using a lot of this stuff you can check out this book on getting started with Python for Arduino.
  For me the approach I have is two-fold.
  • Using a python script to reference Oracle data to make the Arduino do work 
    • This is my first set of test cases
  • Oracle Initiated function : Running Python from Scheduler
    • Maybe generating the python code prior to running it
    • This is the ultimate goal
  So there you have it, the first maker-board that has the ability to run Oracle and APEX in the same hardware. Even if it is just consolidating the hardware side of it, it works. 



  More to come as I have it to give. 
 
Cheers!


Wednesday, June 07, 2017

Rally Point



More than a decade ago I got hold of one of the earlier versions of Oracle Application Express (APEX / HTML-DB), and I was immediately hooked.  Over the years the one thing that APEX did not have was a component I’d seen in larger more expensive systems that had less flexibility than APEX ever will.  Workflow.  

So more than a few years ago I began an attempt to create such an engine for the Oracle database and for Oracle Application Express.  The key goals were to produce a solution that was full-featured, yet easy to use, powerful, yet inexpensive. (should I decide to market it)

Enter Relay Workflow.  You can see my posting for the First Look at https://goo.gl/8Sma5y . Obviously, there is still more to do but I feel it is close enough to start showing and talking about it. 

Why Relay Workflow?  First, at times, I am an electronics hobbyist and the relay is a perfect concept of a logic component.  Second, in my younger days I was a competitive runner and the relay race was one of my favorite since it took an individual sport and with the simple addition of a baton having to change hands elevated it to a team sport requiring a bit of skill.

Why did it take so long?  I’m human; I have a family, a full-time job, dogs, and other real-life things that take up time. I would not have had it any other way to be truthful.

But now it has a name, enough function and presence to become real for me, and I aim to make it real for others too.

Stay Tuned.

Wednesday, November 30, 2016

How'd You Do That

  A while back my employer (www.insum.ca) had an internal competition (a hackathon) and I gathered a two others to a team where we called ourselves The Good (Monty), The Bad (Me), and The Ugly (Adrian).  I personally though I was more appropriate to the final credit due to Adrian's unusually youthful appearance, but he won the gun fight for the role and we'll speak no more of my humiliation.

  During the event I proposed that we attempt to integrate a javascript library into APEX. It's been done before but this one was special.  Draw2D (www.draw2d.org) is a canvas-based library that brings a lot to the table including the visualization of process data into a visio-like charts that can be stored in, and retrieved from, the oracle database.

  Since that day we have shown it off to a few groups and now I am releasing this into the wilds of apex.oracle.com for those that have asked me when they could play with it a bit more than just looking.

  MapIt can be found here https://goo.gl/v0wTq4 and anyone can play with it.  Though, I will need to clean out the tables on occasion.

   This is not merely and end result but a precursor to a personal project of mine to bring a more useful workflow engine to the Application Express community.  We'll have more on that project in the future.

Til then, Enjoy!

Friday, July 08, 2016

Breaking Rules and Telling Stories



  Anyone who reads this space, or follows we via Twitter and other media outlets generally get the point that I rarely get political where I present a professional line of thought, but I do tend to tell personal stories. 
  “The only difference between a sea-story and a fairy-tale is that the Fairy-tale starts out ‘Once upon a time…’, and the sea-story starts out with ‘No Shit man, this really happened….’”  -- call it a Sailor’s proverb
  At age 19, I was assigned to the US Naval Mobile Construction Battalion Forty (NMCB-40).  And I left to join them in Rota, Spain for a seven-month deployment.  When I got there I was already restless and decided to volunteer for a detachment known as AIRDET.  It was only after that people told me that you don’t volunteer for that one.  I was added as an alternate, and the night before they deployed I was told to grab my gear because one of our guys had his appendix burst.  The next morning, I was on a C130 with 80 other Seabees, headed for Tunisia.
  The North Detachment, was tasked with assisting in the building up road drainage infrastructure nead Tunis, while the Southern crew, my group, were sent to the desert near Gabes.  During this time, we added a number of things to the Tunisian landscape.  One I believe I can still see on Google Earth. 
  We worked and trained with the Tunisian marines during this time and helped them to understand how some of the construction operations worked and could be improved.  While working one of these days I was sitting down and splicing some cable and came face to face with an African Horned Viper.  This thing literally came out from under the tire I was sitting, between my legs, and didn’t seem pleased at all.  Two young Tunisians saw this too and sprang into action faster than I could have imagined and sliced the viper up with their shovels before either the snake or I could react.  Afterwards their Lieutenant ‘Mohammad’ explained to me that the viper was deadly, and I told him that I fully approved of the action taken. 
  Later in this mission I was injured in a gasoline explosion that left me hospitalized for three weeks.  That’s another story but the take away here is that when it happened two people reached me first.  One of our guys Eric Peterson, and a Tunisian Marine, one of the young men that save my life before.  They helped me away from the fire and then onto an Ambulance back to camp.  In the next 30-45 minutes a helicopter from a Tunisian airbase in Gabes arrived to take me to their hospital for triage treatment.  A remarkable feat since they had only seven of these vehicles and they were all down for maintenance awaiting parts when the call went out.  The mechanics at the airbase made one working helo from seven broken ones fully knowing that an American soldier was injured.  A pair of Tunisian pilots with a cobbled-together aircraft risked their lives flying this machine, to save my own. 
  At the age of 41 this whole incident is now decades old, I have been through lots of counseling and still today suffer from PTSD from the fire itself.  But this is a relevant story for me.  I owe my life to two men that I can still recall their faces but not their names, and countless others that worked in concert and at the risk of death to save the life of an American Soldier.   Without that I would never have met my wife, had my sons or enjoyed the next 22 years in safety and health.
  My point in this story is to highlight a fault in our current political environment.  I owe my life to countless Muslim men and women that I would trust it with them again if I had to.  The rhetoric in the US had come to a point where the actions of radical elements are being used as a prod to hurt and alienate an entire group of people, even our own citizens.  We have a candidate for the US Presidency that advocates a blanket abuse of civil rights.  Rights that I gave 8 years of my life and almost my life in service to protect.  All of us in this democratic society are given one voice, one vote, to show the World what matters to us.  I will never tell another citizen how to vote but I will say this, even if you have grasped my leaning, I consider this ‘Right’ an obligation.  If you do not vote and use your voice at every opportunity, then why call yourself a citizen.  The obligation of every citizen in the US (or any other democratic society) is to be informed in the issues at hand and cast your vote every time.  When no best, or even good, choice presents itself; then your obligation is to choose the lesser of two evils and strive toward the best path possible.