Sunday, 27 October 2024

Awesome AI Art

Musing

AI in art is a contentious subject.

Does art require human inspiration or can AI reasonably be expected to produce quality pieces to rival human artists?
Certainly AI can produce some art which is indistinguishable from human efforts.  AI art isn't inspired.

Do we need to understand the artists motivation, thoughts or inspiration to appreciate art?
Often the answer is yes, artworks are considered good because of the message they are designed to communicate: highlighting injustice, portraying emotions, recording history, showcasing beauty etc.
AI can only do this incidently.

What about art which doesn't have a higher purpose, a flower, a landscape, a portrait?
AI can do this very well.

If you cannot tell if an artist is human or AI, is there any difference?
Probably not.  You don't need a back story to like art.

AI animates art

I think AI bringing art works to life is wonderful.
Various tools which create videos from a users specification providing amazing results are already available.  Sora and invideo allow you to create videos based on ideas you specify, there are some stunning videos produced by them.

Invideo in particular seems to be able to "bring artworks to life".
However, as I look there don't actually seem to be many examples out there.  I expect it is actually very difficult to get them to produce something good with a "wow" factor to be worth sharing widely.

Examples

Examples are generally shared on TikTok, Insta, Facebook or Youtube.  There are often many different copies floating around in different media.   I have included some from Youtube, as it is easiest for me to provide links.
























Tuesday, 22 October 2024

My (Computer) History 4

1979

During university summer "long vacation" I worked at BAC in Stevenage.  One summer I spent working on a computer ground system for Rapier ground-to-air missiles.



I found that the first system control programs were stored in patterns of little magnets stored in grids - perhaps the most primitive storage imaginable.

We were writing an Operating System for a more advanced version of a ground station which the company had built.  I believe I wrote some parts of the disk operating system, for instance a command to copy files.  I dont remember if it was written in assembler but I expect so as a compiler or cross-compiler was probably not available.

1980

IBM System/370 : APL : PERT

When I returned to work full-time at BAe in Stevenage after Univeristy, the project I spent most time on was a project scheduling package.
At the time project scheduling was traditionally a manual procedure.  An approach called PERT (Project Evaluation and Review Technique) allowed you to specify projects as a connected network of tasks and allowed you to identify the "critical path" and work out scheduled dates for project tasks.


A talented Electronics Engineer called Geoff Hoyle, had developed (or acquired) a program to do this analysis for his team and the company wanted to expand it for other departments and link the projects together into a company program.  It was a very forward-thinking but hopelessly over-ambitious scheme as most departments didn't have anyone who could use a computer, but I was unlucky enough to be allocated to it.

A big technical drawback was the program was written in an esoteric language called APL (A Programming Language!).  APL is a wonderful but completely incomprehensible very high level language which works on vectors and matrices. Here is an example program which works out the determinant of a matrix.

It uses a lot of pwerful single character opoerators and a special typewriter keyboard is required to write programs. It was available to use from terminals on an IBM mainframe.


I was able to make the system functionality work technically.  As network analysis was already working I had to add a user interface, suitable for non-computer people to use, allowing them to enter tasks, carry out critical path analysis and provide a report suite.
We had "donors" and "receivers" to link tasks to other projects and these needed careful maintenance.
The system actually needed a Program Office to manage the overall picture but the expectation was that the computer could manage the big picture and the users would just see what effect other projects had on them.
The system was rolled out to one engineering group but failed to make a major improvement to overall scheduling.

IBM 5100 : APL : Laplace Transform

The benefit of working for the defense industry was the amount of leading edge technology available.  One such device was the original IBM 5100 PC.



The 5100 could be programmed in Basic or APL.  I believe I actually used a 5110 which was released a couple of years later and could have floppy disk drives attached.  In fact it was a portable computer, with a self-contained screen, keyboard and tape drive.  It weighed about 25Kg so one strong person could carry it around.  Our model had a dual floppy disk unit which was the size of a cupboard and took two people to carry.  It could store a massive total of 4.8MB.  I had this all to myself for a number of months, as no-one else knew how to work it or what to do with it.
My task was to write a program to calculate Laplace transforms, which are a version of Fourier transforms.  APL was ideally suited to this work and my programs were very useful.  I could tell the PC how accurate I wanted the results to be and set it off to calculate the answers.  If I wanted very accurate results, I could let it run for hours, doing more detailed calculations.

Tektronix 4014 Graphics

One of the expensive toys our department had available was a Tektronix 4010 series graphics terminal.  I believe the one we used was a 4014 model which had a beautiful 19" screen.




Steve Cussens, who was a friend / colleague, had a friend in the movie business (perhaps an intern).  Steve wrote a program which simulated a space craft (well a simple cuboid shape) coming in to land, approaching the viewer.  I think I helped write the program, which required matrix manipulation for 3D graphics calculations.  This was soon after Star Wars came out and we were using a computer rather than models to draw the space ship.

1982

Computer Networking

The last project I worked on was to design and build a local area network, linking heterogeneous British Aerospace engineering systems.  There were a large number of different computers from a variety of manufacturers in use on site and obvious benefits in linking them together.  I believe DECnet would have been available for PDP-11 and Vax machines, but we wanted others to be linked in.  We were working with Logica VTS on the project and I remember a trip to their office by Oxford Street to look at at a "grey" market IBM PC.  The IBM PC was on sale in America from August 1981 but not introduced in the UK until January 1983.
My recollection of my objective was a little vague.  I think I came up with a potential set of user commands for operating over the network, largely based  on my knowledge of DEC Digital command language but I am not sure that networking  hardware had been agreed so I could only do some superficial programming.

Footnote

I moved on from BAe in August 1982 having worked for them for a total of about four years between 1976 and 1982, whilst studying for my degree.  In retrospect I was fortunate to work in a wide variety of environments on some innovative and forward looking systems, which I can look back on fondly.  The Undergraduate Apprenticeship was a great programme, it was a shame that recogition and remuneration did not keep pace with our value to the company and marketability.


Tuesday, 15 October 2024

My (Computer) History 3

1977

PDP11/34 : Coral66 : Edge Tracker

One of my favorite projects.
A new anti-tank missile was planned, which would use image processing to home in on its target.  The hardware circuit design included am2900 bit slice microprocessor chips and some expensive specialist chips.  Our teams job was to provide a software emulator for the missile guidance system so that another team could test their guidance algorithms and code by running it on our emulator.

I wrote the code for the ALU and some other system components.  It was vital that the emulator behaved exactly like the proposed hardware and I provided an exhaustive test suite to make sure results match the circuit specification.  We wrote our programs on a DEC PDP-11/34.  The PDP had an Operating System RSX and display terminals.  This provided an incredibly productive environment, allowing us to write our programs quickly directly in the computer, compile them in a few seconds and then test them immediately.
Coral66 was a good "sceintific" language to use, like Algol60 but slanted towards the defence industry somehow.






The project was a great success and allowed the guidance team to test their software on real digital video data, provided by the army, of tanks moving in various scenarios.  By analysing the edges of objects in a the image they were usually able to pinpoint the tank from the heat signature of its exhaust fumes.
I recall that one dataset proved troublesome; it contained a tank in a field of cows, and the missile guidance usually aimed at a cow's "exhaust" instead of the tank!

As a follow-up we started to build an emulator for guidance system based on 6502 processors for an air-to-surface missile.  I wrote most of the code before the project was cancelled.  It may have been because the actual hardware board became available to use for testing and an emulator was no longer required.

1978

Siemens 330 : Assembler : ATE

I spent some time in the Automated Test Equipment lab.  The idea was to use computer programs to test whether equipment / weapons were working properly; at the time it was quite an advanced concept.  For some reason, probably political, we were using Siemens 3003 computers which we had to program in German assembly language.


  Not being able to understand German this slowed me, and others. down considerably.  I dont remember what equipment we were supposed to test.  I do recall that the programs and data shared the same address space so we could try out dynamic programming.  For example, if you wanted a loop to execute 50 times you would write the integer value 50 into the appropriate place in the program.  It was all a bit of a come down from sexy PDP-11s.

Pixette SlideShow + Webdav

 Aim

My Art Gallery picture slideshow web application works very well, allowing me to look at pictures together with their descriptions and my comments.  Occasionally, I would prefer to see an iPad slideshow of the pictures full screen, with the minimum of borders / distractions.

The pictures are held on an RPI Samba shared folder and it would be easy enough to copy them across to my iPad and view them in Apple Photo or LiveFrame which I currently use.  However it doesn't seem right to do this when I already have the photos available, both on a shared folder and available as web URLs.

For some reason I found it difficult to find an iPad app that would access pictures on a shared folder and allow me to look at them in a slideshow.

Lighttpd web server

After searching Pixette appeared to be popular app, which might allow me to view shared folders collections on "NAS".  I thought that my RPI with shared folders qualified as NAS but apparently proper NAS devices have their own system software (e.g. Synology) - to allow proper file-sharing, multiple users etc.
However Pixette does support Webdav devices and I found that my web server lighttpd can be configured for webdav. I followed a guide fom Haven200 which explains how to setup lighttpd for webdav.
Unsurprisingly you need to install a couple of lighttpd modules and configure lighttpd.conf details.
You also need to make sure you have a password file available (I used htpasswd for simplicity)


After completing these steps it is possible to see my art directory structure

Configure Pixette

It took me a little time to get webdav working but once I had a URL I simply entered the details into Pixette, indexed files and sat back to watch my slideshow



Verdict



Pixette is an excellent tool which gives a proper full-screen slide show experience.  Of course the iPad has a high quality screen so the pictures themselves look great.  Pixette is intended as a digital picture frame and it shows pictures in a random order but that isn't much of an issue.

webdav is actually intended to allow you to make updateable pages, so I could probably experiment with that idea separately.  I recall that when Tim Berners-Lee initially setup his web server he intended web pages to be writeable so webdav is truer to the original idea than most.








Saturday, 12 October 2024

My (computer) history 2

1977

Intro

Having being accepted to study Mathematics at St Catharine's College, Cambridge I started an Undergraduate Apprenticeship with British Aircraft Corporation at their Guided Weapons Division in Stevenage.  The first three months was a mandatory workshop training course, mainly learning metalwork, with the traditional apprentices.  It disabused me of any notion that I had any practical abilities and I admired the skills of the younger, traditional apprentices.

After this difficult period I was sent to work in various departments around the site.  The other undergraduate apprentices were due to study Electronics and were easy to find placements.  They didn't really know what to do with a Maths student and it was natural to send me to work in departments with computers.  As a research and development site, there was a significant investment in computers but very little existing expertise in controlling and programming them.

IBM : Fortran : Statistical Analysis

My first placement was with the Precision Products group working alongside experienced traditional mechanical engineers who were computer illiterate.  BAC made extremely accurate gyroscopic compasses for the military.  Repeated readings gave slight variations and the designers hoped to improve accuracy by looking at a statistical analysis of compass readings.

I taught myself the Fortran IV language and wrote programs to analyse readings, using a 80 character coding sheet to write down the program. 


 I then went to a punched card machine where I typed each line of code onto a Hollerith punched card.  Column 1 was blank unless it was a comment.  Columns 2-7 were used for a line number for goto statements. Fortran commands were entered into columns 8-72.  Columns 73-80 were blank.  At the top of each card in each column, the character was printed, and beneath a sequence of holes indicated what the character was in binary. 

 Compass readings were also typed on cards which were appended to the end of the program.

After checking the cards, they were handed to an Operator who used a Remote Job Entry (RJE) terminal to read in the cards and run them in a batch partition on the mainframe.


I believe the computer was an IBM 360 running OS/VS Operating System.  The operator would add a couple of Job control language (JCL) card at the front of my program deck to tell the mainframe which partition to run and which printer should be used for results.

The engineers and myself could look at the printed results.  I also had access to a Calcomp plotter which was attached to the remote mainframe.  This was a very exotic and expensive device which enabled me to show results on a printed graph.



Analog Computing : Missile Guidance

In the 1950s 1960s and early 1970s analog computers were a useful tool.  Signal sources (Input voltages) would pass  through various components to give results in the form of output voltages. They were particularly useful in modelling systems whose behaviour was based on differential equations.

As shown below there were a variety of operations which could be carried out.  BAC used them to test missile guidance systems.  A missile nose cone would be mounted on gimbals in a test rig allowing it to turn and rotate.  A moving Radio Frequency target would be placed at the other end of a long room.   The nose cone then needed to track the target.  Instead of signals send to control rocket motors, the analog computer interpreted them and adjusted nose cone direction appropriately.

Electronic Associates (EAI) were the principal manufacturers of analog computers.  I learnt on one similar to EAI-180 at TNMOC which is shown below. It is programmed by plugging patch cables from inputs, through a sequence of components leading eventually to outputs. Although plugging the cables was easy it was difficult to design/test a working system.  I recall that the production system had a spaghetti-like mass of cables.  Patch boards could be interchanged on the front of the computer to run different "programs".



Saturday, 5 October 2024

My (computer) history

1971

My first recollection of an interest in computers was probably 1971 when I was 14.  The CEGB (Central Electricity Generating Board, now National Grid) had an open day at Roseneath, their local office in Bramhall Park which was about a mile from my home.  A little site called bygone days has gathered together some information and recollections on CEGB.  A recollection from Len Simpson mentions that there were a couple of open days after the new control room was opened.


As an aside my sister was at school with Isobel Plevin, whose father Don was a manager at Roseneath, and Annettes father, Roy, who also worked at the CEGB in the National Control Centre used to go up to visit Don Plevin.  In addition the bygone-days website has articles by Roy Lewis and his colleague Tony Malins.


I remember that we walked around the Control room, which was very impressive.  I don't know whether we saw a computer but there was a board describing  a computer (memory) as having a lot of pigeon holes for information, which sounded strange.

I came away from the visit with a freebie, which was a totally incomprehensible book of flowcharts relating to the computers application.  I used to look at them to try to understand how it might work.

Following the visit I must have expressed an interest in computers.  My fathers company used to receive Computing and Computer Weekly newspapers but I think no-one read them.  My father used to bring them home for me and I regularly read through them and saved old copies even though they didn't mean much.  I read a lot about the mainframe manufacturers of the day, IBM. ICL, Sperry Univac, Burroughs.  I recall lots of discussions on ICL 1906 computers being installed by councils and government bodies.

1974


My first interaction with computers came at school, in 1974 I think.  I attended Kings School, Macclesfield and studied Maths and Physics  in the sixth form.  The local Technical College had a teletype terminal with a remote telephone link to a mainframe at Manchester University.  One afternoon a week, for a term, we went to the college to learn Basic programming and to use the teletype.
I enjoyed the sessions immensely and wrote a few programs.  I recall a program which generated simple poems was great fun and impressed the teachers.



We "wrote" programs at an "offline" teletype terminal and saved them on the attached paper tape machine.  We then  went to the "online" teletype and inserted the tape so that it could be read in.  This loaded the program to the computer in Manchester.  Running the program caused the results, or an error message, to be printed on the teletype.  You would then tear of the paper and handover the terminal to the next person.  If there was an error, you amended your paper tape and waited in the queue to re-run your program.  It seemed wonderful.
 

1975

The school was offered a place on a residential computer course in the 1974/5 Christmas holidays.  As I was interested in computers I was lucky enough to be selected to attend.  The course was held at Eton College which was lucky enough to have its own computer, an Elliot 903
I am not sure what programming language we used, it may have been Algol or Fortran.  It was a small computer with no long-term storage.  Again we wrote programs using a teletype and saved them on paper type.  As the computer didn't have permanent storage or much memory it was necessary to load the compiler into the computer on a tape, then load your program tape and compile.  The output was another paper tape which you loaded into the computer (overwriting the compiler) and ran the program.  Program output was printed on a teletype.
Unfortunately I dont recall details of programs I produced.



Lyrics

Reading lyrics whilst listening to music improves the experience, particularly because I am not very good at decoding unclear words and tend not to listen to songs closely.
Putting a song title and artist into google usually provides lyrics or links to lyrics.  Very occasionally, I make the effort to do this, but it would be really helpful if I could create a Google search within my music application to display song lyrics.

In my music page I already display the title, artist and album so the information so it is a simple matter to work out what needs to go into a Google search. In the example below a google search for "Lyrics Fleetwood Mac - Second Hand News" quickly comes up with the appropriate lyrics.

All I have to do is setup a simple javascript function which takes the available track and artist information and create a suitable google search string.  This is then inserted into the page in a button tag as shown below.


It is a very simple way to add a useful function to the page.  In addition to starting the query with lyrics, I have buttons to start the query with "Images" and "info" which also yield potentially interesting Google search responses.

Google doesn't always come up with the goods, the genius.com lyric site can potentialy give better results but it seems it would entail processing lyrics using their API which would be more work.  I will take the win with a 80% result for 20% of the effort.