Tuesday, 18 February 2020

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.




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'd had some work done on her rear end....(photo's to follow)



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'....)



Sunday, 16 February 2020

Saturday, 8 February 2020

New 3D printer

Okay, so I got very excited a few years back and bought myself a 3D printer, loads of PLA and ABS reels and I even mostly build a 3D human head, fitted with servo's and web cams, hooked it up to an RPi and had it as an assistant of sorts....but I really wanted to print it in a more flexible material.

Then I got very frustrated with all the messing around trying to 'level the bed', so much so that after re-trying simple prints over and over and over again, I just moved the 3D printer to the other side of the room to gather dust.

I thought, I'll wait for an automated self-levelling version to come out and be at the right price and I'll get one of those.

Well, guess what?! Yep...that just happened!

I just ordered myself one of these little beauties....it'll arrive tomorrow:

Good thing is, I have a week off (week after next), so I think there will be much 3D printing going on that week!  I've got lots of things that need to be printed.


Wanna learn to build a First person shooter in Unity?

At some point or other, we've all thought about it.....

"This game is so buggy, I could have done better",
"I wonder if I could write this game?",
"If only I had time to sit down and make a game, I'd make it like this, only better",
"Wow, do you remember Doom, I bet that was millions of lines of Assembler - there's no way I could make something like that nowadays".

Well, you may just be in luck.  Here a link to a FREE DOWNLOAD (yes, free, as in beer) to a book that takes you through how to build a First person shooter using Unity.

Those that know, know that I've been a fan of Unity for the past, well, for a long time! I've built 3D digital human assistants, I've build mobile applications using it, I've even written the odd game using it.... but I've never really had the time (or patience, to be fair) to sit down and make a first person shooter.

Well, as I say, click HERE to either download the free version OR get the hardback printed version and contribute to these guys making more of these.

Pretty awesome.  Now, I just have to add it to the end of the queue of : things I need to find time to do....

Sunday, 12 January 2020

2020 - An AI Autumn....

"If we want to scale to more complex behaviour, we need to do better with less data, and we need to generalise more."(*1)

During the 2015-2019 period, it was all about "AI is going to change the world", "AI is awesome, look at the amazing things it can do", "jump on the AI band-wagon".....etc...etc...etc...

I worked on many a project during this time period and I often found myself sitting back (the ability to do that was a rare occasion, I can tell you) and asking, "Where is the AI in this solution?".
Everyone else, the project stakeholders, executives, Data Scientists (I still have beef with that job title, but I'll leave that for another day) were all strutting around dropping the "AI" word and I just couldn't see it.  Yes, we had a few isolated "smart" bits, but they were just algorithms triggered by good old fashioned code on certain events that made life a bit easier / quicker for the end user - no rocket science here, I'm afraid.  If you knew nothing, you'd be amazed.  If however, you knew how things worked, you'd be more "meh", "is that all?"...

One of the mantra's that we've heard over and over again is, "to do AI, you need DATA and a LOT of it".... and that has always been my concern, to be able to do something intelligent you have to have millions of if not billions of bit of structured and unstructured data that you then sort and filter, slice and dice and then hope that some math genius with a PhD can make that data make sense and help your IT system / application.  Sometimes it works, but it's a narrow case usually, if the data becomes contaminated, the results go haywire.

So that brings me to the quote above (*1) - that is where I believe we need to get smarter - do more with less.  It's not about 25TB Data Lakes that we can analyse and try and gain some intelligence from, it's about pre-filtering that data and diluting it (homeopathic style, we keep the essence but lose the quantity), then I believe we'll start to make proper headway into the world of AI.



So, are we going into an AI Winter as this article suggests?  No, I don't believe so.  The "new shiny toy" phase has passed and now we are past the noise, we can start to just focus on how and where we put those "smart" bits into existing IT solutions.... AI will develop and evolve from that, but it's going to take at least another 10 years to get to where the sales people were selling it over the last 10 years.


Friday, 3 January 2020

GardenBot...is real

Unfortunately, it's not my GardenBot, because I've been too frikkin busy doing stupid work for Finance companies instead of revolutionising the Farming industry!!!!

Seriously, if I had the ability to have spent the past 3 years doing what I wanted to do...and that was to basically make a large scale robot that could do gardening and then venture into full scale farming, then it would have been myself going up for the $15m funding to get robots out there doing farming tasks, using AI / ML technologies to help.

Sigh.  okay, I suppose I could have done it, I could have quit IBM, I could have gambled all for the venture, but you know, mortgages and such like get in the way....

https://spectrum.ieee.org/robotics/industrial-robots/your-next-salad-could-be-grown-by-a-robot?fbclid=IwAR3HOyePl5_aA5vZScLavPbIMTBBvxED-4Tm-pARRgnMk_z0COyRK6beNqo


https://spectrum.ieee.org/robotics/industrial-robots/your-next-salad-could-be-grown-by-a-robot?fbclid=IwAR3HOyePl5_aA5vZScLavPbIMTBBvxED-4Tm-pARRgnMk_z0COyRK6beNqo


my plan for 2020 - sod the F---- companies, I'm going to build some things I want to build, let's see if I can get some prototypes made up and then maybe in 2022,  I will be the one getting $15m investments?... we'll see...

Friday, 27 December 2019

Runet

Keep an eye out for how this pans out..... yep, Russia built their own internet. 

Can't blame them really, if you think about how it was originally designed, how/where traffic goes through, how prone to reliance on other servers in other countries, it does make you wonder why they didn't do something like it sooner.

Interesting article here

and here

and here

one quote to keep in mind: 

"It’s hard to object to the idea of a robust “sovereign internet” should such a thing become necessary, but it’s hard not to think of it as preparation for conflict to come rather than simple investment in national infrastructure.

That said, what exactly Runet will grow to be and how it will be used are still a matter of speculation until we receive more specific reports of its capabilities and intended purposes."