A week off work....sort of.....Project 'O'

So, I've had Project 'O' on the back burner now for well over a year, I even started making headway around August 2019 (for a week, during a vacation)....and well, yep, the usual happened.  I let myself get drawn into doing way too much stuff in the work/work environment and I have to sacrifice all my own inventions or innovations for the sake of the day job.  (One day, I'll maybe get that changed, but I'm not holding out much hope, but we'll see)


Well, it's another vacation week, where I'm not actually vacationing (again), I'm going through a list of things that I wanted to do in 'my time'.  That means:

1) I've purchased a new 3D printer, I've built said 3D printer.


I've had 4 failed attempts at printing with the ABS that I purchased 2-3 years ago (?cannot recall when was, but they've been sitting all sealed up in a box along with about 50 servo's that I was going to use for my robot)...spent a few long nights fighting with my Mac to get the software working for the 3D printer...gave up, dug out my old Dell 1501 laptop running a nice clean and fresh Windows 7 (I knew that would come in handy at some point in the future), installed the required software and was able to start fiddling with the nitty-gritty settings within Slice3r to get progressively less-worse (yes, that's a word in my vocabulary) printout of the "box with a cylinder" on top of it.


Then, I crack it....for ABS you need heat, a lot of heat and no fans, absolutely NO FANS! otherwise the layering splits apart.  I'll insert a photo below of the progression, as you can see from version 1 through to version 4, I was getting the settings closer and closer to correct.


Hang on, you say, but you already have a 3D printer? (well, my missus said that), that is true, but I couldn't for the life of me get the b*st*rd things to bed level for an ABS print.  PLA was fine, but not for ABS.  So I got annoyed with it and left it in the corner.  The new 3D printer has auto-bed-levelling (yes, yes, it cost me to get it, but it is really worth it - you set it up once and then set the G29 gcode command at the start of every print) and it seems to be working out okay so far.


I gave up on the ABS and am trying out some PETG instead.....let's see how that works out!



2) I've remembered that I have a pile of Raspberry Pi parts sitting on my desk that I need to put together and do something useful with.  Perhaps, they'll go towards the automated greenhouse (that I'm taking a week of vacation in March to setup), but I can make a start for those parts this week.  I'm going to need brackets and things that I can design in TinkerCAD (or similar) and print using the new 3D printer.

I can also house the Raspberry Pi in the Pelican 1300 case (yep, I decided to purchase one anyway as it'll be useful to have a water-proof PC out in the garden or in the garage)



3) I can finally get my mindset back into Project 'O'.  Now that IBM and Red Hat have finally blurred into one, I can get to grips with what that actually means.  The big push is all about OpenShift...."what's that?", yep, that's what I wanted to figure out so off to YouTube I went...and then received mixed messages depending upon how 'old' the videos were.
My take on it is that OpenShift is just a nice / simpler / easier management tool for managing Kubernetes Clusters (that contain your Docker Containers, that within them contain your application execution runtime code).  Lovely.  The K8s part means you can now run your containers anywhere you want to, on whatever Cloud platform you want, or even OnPremise, (y'know like we used to do before all the Cloud hype kicked in).

Wouldn't it be great if you had a really easy, simple way to design and build applications and then deploy them to wherever you need them to be deployed to, without having to faff about learning what and where to stick values inside .yaml files?

Well, that was a tiny part of the original Project 'O' scope.  (I have the specs drawn out on bits of paper someplace in the garage, I think....probably covered in gearbox oil by now).  I was ambitious, as I always am in my vision and scope, but I could see Project 'O' becoming a really useful tool.

I have issues with coding.  I am frustrated by the fact you have to type lines of code.  You can only go as fast as your little fingers can move and press switches on a keyboard.  You also have a lot of typos.  You forget a ; or an incorrectly placed <tab> and kaboom! the code won't run.  This is silly.  Yes, I know you can get umpteen plugins for VS-Code that'll re-type your code as you code, so it's all laid out nice and consistent and there are no silly mistakes, but that still involves typing.  (btw - why do you think M$oft loves you having all that code nice and consistently laid out?  Would it be great if you owned the worlds largest code repository, you could use ML algorithms to learn and extract code from the largest data set on the planet....I digress....but think about it....I know I have, I even found quite a few whitepapers on the subject from M$osft research, interesting ideas)

I originally had a starter demo for Project 'O', where I used a chat-bot to interact with you (think of yourself as a pre-sales engineer or even, shock-horror, a sales person), you go through a conversation of what you want to build as an application (that was quite an extensive conversation design that I had to build out, in the end I hit limitations as I could only have 1 design and I wanted 4+ and that "was still in R&D and not available yet" (sigh) ), and from the information gathered, I would then use my small but efficient repository of templated JavaScript code to output the code that was needed.  I would then wrap it up into a Docker container, then auto-deploy into a K8s cluster and push it out onto a Cloud Platform.  (I chose IBM Cloud as default, for obvious reasons).

This skeleton seemed to work rather well.  It was basic, but from a sales person defining what they wanted via conversation (either typing the requests, or even via Speech...yes, wow! now we're being all very 21st century Star Trek style), you could define what you wanted and within 10 minutes you would have a basic database connected web application up and running and functioning.

I was then looking into adding to the conversation design the concept of 'add an API integration', where you could request to connect out to web based REST APIs and gather data from other sources to add into the web application.

....and sadly, that is where Project 'O' stopped....and started to gather dust.... maybe I should discuss it with more people to see if I can get it kick-started again, I'm sure there is a bigger need for something like this and who knows, it might start to get it into the current IT population that we need LESS COMPLEXITY to achieve great things, NOT MORE.   (nice loopback to OpenShift thinking there)



4) Quite some time back I saw the Scratch IDE on the Raspberry Pi.  Ignoring the python part and the fact it was kids, I liked the concept of the jigsaw pieces to build up code.  I remember thinking to myself, I should look up how that is made.  You guessed it.  Got put to one side.

Today, I noticed the release of edublocks - now that IDE looks familiar!  So, as I'm waiting for my 3D printer to print me a 'wall hanging bracket' for hanging plants around the kitchen window (3hours each one and I need about 8 of them), I decided to go investigate.

Turns out, as I should have guessed, it was a tool made by Google.


"Blockly is a library that adds a visual code editor to web and mobile apps. The Blockly editor uses interlocking, graphical blocks to represent code concepts like variables, logical expressions, loops, and more. It allows users to apply programming principles without having to worry about syntax or the intimidation of a blinking cursor on the command line."


Now, this statement resonates quite well.  (maybe I'm working at the wrong company? Ah well, too old to switch now, besides I'm not a PhD-er, so I wouldn't even get past the Resume/CV ML algorithms!)


"The Blockly library adds an editor to your app that represents coding concepts as interlocking blocks. It outputs syntactically correct code in the programming language of your choice. Custom blocks may be created to connect to your own application."


This isn't quite replacing the capability of having to write code, but it is helping to extract it one step higher.  It's helping to change the mindset of moving away from having to learn and write the specific syntax of a programming language and deal with all the complexities and limitations of the framework or compiler and getting people to think about "what they want to achieve" and then let the system figure out how to write that into code.


UPDATE: in a totally random event, I just stumbled over a news article about the latest SONY AIBO and the ability to tap into it's APIs.  (Some of you may know, I do indeed have an original 1999 SONY AIBO along with the developer kit, hey what can I say? I had money to burn in 1999!)
https://spectrum.ieee.org/automaton/robotics/robotics-software/how-to-program-sony-aibo
Why is this relevant? Well, scroll down the article and see what SONY are using as their GUI IDE of choice... ;-)


That my friends, I believe is the golden nugget.  If we can unshackle ourselves as programmers / engineers from having to write physical lines of code, then we will start to move into the future.  I also firmly believe this is going to be where true A.I. progress is going to be made - once we move away from having to write every line of code.  (and no, I'm not referring to the failed 4GL world that we left to burn in the late 1990s!)



5) Remember to do some work on at least one of my cars!  I took a look at the original 1959 water pipe and decided it was going to split any moment, so I though I'd do 2 jobs in 1 and fit a new thermostat housing on the Austin A35 (that was a pig of a job), I just need to hook it up to the new gauge to see if it works...and that the thermostat housing gasket doesn't leak...I'm suspicious of the fitting.  Worst case, I remove it and use the gel version to super-seal it.





6) Visit the in-laws.  (one full day written off)



7) Pick up Betsie!  She's had some work done finishing off the boot space:



8) Remember to have some down time.....and read some light hearted books.



before I know it, I'll be back at work / work, some trauma of some sort will be happening.  Something will have gone live & some key component would have broken requiring the client to make a statement such as, "why isn't Tony coming up with a solution to solve this problem? What has he been doing?".....(sigh....I so want to clone myself) followed by a different client deciding, "we moved the timeline of the project up by 6 months, we can still get all that stuff done in the same time, can't we?"....(double-sigh....yes, let's onboard more staff, oh wait, you don't want to pay any more money, but you want more done in less time.....if only we had some sort of advanced IT system that could help with that......'O'....)



Comments