Monthly Archives: August 2015

25 years ago today – The start of an interesting career

A quarter of a century ago I started my first full time job at IBM. August 13th 1990. I had a sandwich year there doing the same job but this had more permanence about it. Indeed it was pretty permanent as I stayed at that same company for 19 years.
The tech world was very different back then. It was much simpler to just be a programmer or just be a systems administrator etc.
We worked on green screen terminals like this.
IBM 3277 Display
They were dub terminals, no storage, just a command line CRT display. Everything was run and compiled remotely on the main machines. That doesn’t seem strange now as we have the cloud as a concept, but when you had cut your teeth as I had on home computers it was a strange experience. Scheduling batch jobs to compile code over night, coming in int he morning to find out if you had typed the thing correctly.
We had intercompany messaging, in a sort of intranet email system, but it was certainly not connected to the outside world and neither were we. We did have access to some usenet style forums internally and they were great sources of information and communal discovery. There were a few grumpy pedants but it was not a massive trollfest
As a programmer you had very little distraction or need to deal with things that were above your pay grade. The database admin and structure for instance, well that someone else’s role. Managing the storage, archiving, backup etc all different specialist roles.
The systems we built were huge, lots of lines of code but in reality we were just building stock control systems. They were mission critical though.
After writing some code, a module to meet a specific requirement we had code inspections. Groups of more experience people sat and read printed out listing of the code, checking it for consistency and formatting even before a compile job was run. It was also a time to dry run the code but, sitting with a pen and paper working out hat a piece of code did and how to make it better or catch more errors.
we wrote in PL/1 a heavily typed non fancy language. It changed over time but there were not many trick to learn, not funny pointers and reflection of variables. No pubs messaging or hierarchy problems. It was a great way to learn the trade.
Very rapidly though this rigidity of operation changed. As we moved over the next few years to building client server applications where the newly arriving PC’s had things they could do themselves, drag and drop interfaces like OS/2 (IBM’s version go windows). I generally ended up in the new stuff as, well, that’s what I do!
We had an explosion of languages to choose from and to work with, lots of OO smalltalk was all the rage but we were busy also doing C and then C++ as well. Then before you knew it, or before I knew it too, we had the web to play with. From 1997 on everything changed. It started with a bit of email access but very soon we had projects with proper access to the full inter web.
Building and creating in this environment was almost the polar opposite of the early years of small units of work and code inspections. We all did everything, everywhere on every platform. Scripting languages, web server configs, multiple types of content management, e-commerce products, app server products, portal products. We had Java on the backend and front end but also lots of other things to write with, rules based languages and lots and lots of standards that were not yet standards. Browsers that worked with some things, corporate clients dictating a random platform over another which we then built to.
It was a very anarchic yet incredibly interesting time.
The DotCom bubble burst happened quite naturally, but that did more to destroy a lot of business models and over eager investment. For the tech industry it actually helped slow down some of the mad expansion so we could all get to grips with what we had, it led ultimately to people started to connect with one another and the power of the web for communication.
Of course now we are gathering momentum again, lots of things are developing really quickly. The exciting buzz of things that are nearly mass market, but not quite, or competing platforms and open source implementations all competing to be the best pre-requisite for your project.
Everyone who does any of this need to be Full Stack now. For those of us who grew with this and survived the roller coaster it is a bit easier I think. Though not having those simpler times to reflect on high actually be a blessing for this generation. Not think they are not supposed to be messing around with the database because that’s not their job might be good for them.
One thing is certain, despite some nice cross platform systems like Unity3d the rest of the tech has not got any easier. Doing any new development involves sparking up a terminal emulator working just like those green screens back in the 90’s. Some interesting but ultimately arcane incantations to change a path variable or attempt to install the correct pre-req packages still flourish under the covers. If thats what you came from then it just feel like home.
Doing these things, as I did today installing some node.js as a server side scripting and a maven web server and then some variants of a java SDK followed by some security key generation it certainly felt like this is still an engineering subject. You can follow the instructions but you do need to know why. The things we do are the same, input process output with a bit of validation and security wrapped around. There are just so many more ways to explore and express the technical solution now.
If I was me now, at 18 entering the workforce I wonder what I would be doing. I hope that I would have tinkered with all this stuff as much as ever, just had more access to more resources, more help on the web and probably known a lot more. I would have been a junior Full Stack developer rather than junior programmer. Oh and I wouldn’t have to wear a suit, shirt and tie to sit at the desk either 🙂

Pepper’s IGhost

A few days ago on Facebook I saw a post about build of a visual trick that makes a smartphone look like it has a hologram floating above it (props to Ann Cudworth for sharing it). It is of course not really a hologram but a version of Pepper’s Ghost using a trick of light passing through an angled piece of transparent material. This allows the eye to see an object floating or looking transparent and ethereal.
The video shows how this all work and how to build one.

I did have a go with an old CD case but I found the plastic shattered way too much so instead I used a slight more cut-able acetate sheet. I made a quick prototype that was a little bit wonky, but it worked still.
"Holographic" acetate
There are lots of these types of video out on youtube
There are some commercially available version of the such as the Dreamoc which works in a similar way but the pyramid is the other way up.

There are lots of other examples where a visual trick fools our brains into thinking something is truly 3D and floating in space. It’s all done with mirrors 🙂
Some of you may remember the time traveller game

This used a projection onto a bowl shaped mirror. This effect is also used in the visual trick you sometimes see in gadget and joke shops. Such as this one from optigone

There are some fascinating tricks and of course Microsoft Hololens, and Magic Leap will be using “near eye light fields”, which are slightly more complex arrangements than a bit of acetate on an iPhone, but we can appreciate some of the magical impact may have by looking at these simpler optical illusions.
Our ability to do more more light, and not just deal with the flat 2d plane of a TV screen or of a single photo is definitely advancing. The recent camera’s such as the Lytro which is a light-field camera treat multiple layers of light as important. Just as the Near Eye light fields bounce the light through multiple screens of colour and different angles to create their effect.
Whilst sometimes the use of the Hologram word is over used I think that what matters is how it makes us feel as a human when we look at something. The mental leap, or the trick of our brain that causes us to think something is really there is fascinating. If we think it is, well… it is.
At the moment we are still focussed (no pun intended) on altering the images that travel into our eyes and the way the eye works with its lenses and optic nerve to the brain. It is only a matter of time before we go deeper. Straight to the brain. Already there are significant advances being made in helping those with no eyesight or restricted eyesight to have a digital view of the world directed and detected in different ways. So it may be that our true blended and augmented reality is to further augment ourselves. Quite a few ethical issues and trust issues to consider there.
Anyway, back to amazing the predlets with Pepper’s IGhost, time to build a bigger one for the ipad!
**Update Just after posting I made a larger one for the ipad. The predlets enjoyed watching the videos in a darkened corner.
Predlets enjoying holographic effect on ipad
Then maybe an interactive unity3d live version.