It's simple really.
An inert piece of equipment that can entertain, inform and educate like never before.
What is vibe coding? The ability to code by the use of artificial intelligence, or a large language model. Rather than entering the code by hand.
You create a prompt and the artificial intelligence or large language model does the coding for you. You can then modify the code if it doesn't function as you expect.
Example on this website : Mìosachan Mlos (Calendar Months)
If you were to look at the number of characters required to create the example it was 11,632 characters. The number of words were 882. So it could be done in around 5 - 10 minutes by an experienced coder. However, it is a lot simpler to just use an LLM as if you know what you are doing there should be fewer errors.
The code once created by the LLM can also be modified. Tweeked if it does not work 100% the way you like it.
Hope to give a few more examples in the coming months and years (làithean, seachdainean, mìosan agus bliadhnaichean).
This has really only been possible within the last year as large language models have improved. So the ability to code with the help of a large language model has become possible.
Before this and since the very first computer. Programming has been a manual process. Using a keyboard a manual and a computer programmer to create everything you see and hear. Allowing you to interact with, store and retrieve information by various means.
This is a topic that is trending at the moment. It is slowly revolutionising the way we interact with computers.
For the last twenty five years we search has dominated. We enter a query and the browser will search lots of websites and try to find a website with the information that you are looking for.
Mainly due to the advances in Natural Language Processing that have taken place of late. As illustrated by X's Grok , OpenAi's ChatGpt,Google's Gemini, Anthropics Claude and Microsoft's Copilot. With more new ai tools being created every month or so. These new tools are allowing us to explore a data repository and provide more useful answers to your query.
Hugging Face is currently a great place to go to keep up to date in this fast moving field.
Governments around the world are looking at how best to implement such technologies to empower people. A good example of this is in my neck of the woods. The Scottish Ai Alliance, Targeted towards the young but AI should become useful to all.
It is changing how to code, making the ability to create simple programs easier and quicker. Experiments.
One innovation that is particularly of note is in the ability to process and translate information from one language into another language.
It is a new area of computer science opening up data and information to all.
One thing that is often overlooked when talking about these large language models is their machine learning capabilities. That is the fact that their responses to queries or prompts should improve over time. As the quality of the training data provided to the models improves so the responses to the asked for data should improve becoming less error prone.
This is a topic that has expanded over the last couple of decades. This is where the data-collecting powers of the devices we use today. Help to make our lives better in everyday scenarios.
A few examples are. Providing more accurate weather information so that you can plan your day or event. Road traffic incidents to avoid so you can travel from a to b more safely. The scenarios are continuing to expand. Making the real world safer by use of digital technologies.
People born in the last decade have little knowledge of what went before and the transformation in the speed and amount of information that can be transferred around the world has expanded immensely.
In the 1990's when the internet began speeds were measured in kbp/s. Now they are measured in megabits/s and continue to grow and expand. Video calls and multi-player online video games were unthinkable in the 1980's and 90's. It could take hours to download or transfer a 3 minute video. So the transformation is quite profound.
The hardware refers to the physical machine. Referring to the keyboard, screen, mouse, cables, microprocessors, input and output ports that take in data and output data. Which we then interact with. Taking care of these parts enables the machine to work smoothly and efficiently.
Processors have gotten more and more compressed over time. Where once they took up a whole warehouse sized building. Can you believe one processor taking up the space of a whole warehouse. Now the same space is taken up by millions of tiny ones.
The processors operate in a tinier and tinier world in order to work faster and faster. Remember the equation: Speed = distance divided by time. Reduce the distance and thus you increase the speed at which the processor operates. There are scientific advancements being worked on as I type. That explores the world of Quantum computing. Here's a video lecture I found on YouTube that explains the concept. This is as small as it gets as I type.
These processors are encased in silicon on a hardened non conductive plastic. With transistors and various delicate components designed to control the supply of electricity from the battery and or socket to the various components. They will have large degree of protection from the outside world. They can withstand a lot of ware and tare but there are limits and it is always good to keep such ware and tare to a minimum. If this is done the components can run for centuries. As NASA's Voyager 1 and 2 probes can testify. Probes that took off from Earth over 45 years ago are still operating. The more they are looked after the longer the components will last and the less maintenance is required.
It is always useful to have a list of faults ready for any maintenance engineers that may visit. A clear and concise list, with clarity being the key word. The clearer the issue is described, the easier and quicker it is for the engineer to fix the fault. The engineer will always be happy to give feedback in reducing such faults so feel free to discuss any mitigation measures that can be taken.
The software refers to how the machine interacts and controls these components. Most emphasis is given to the screen but software can be used to control other components such as electric motors and other types of motorised components such as printers. The software is the brains of the machine and controls how it interacts with these various components. A software engineer codes the electronic circuit into various pathways. It involves rigorous testing and retesting to keep to a minimum any errors that may occur. As well as making improvements where necessary.
The information required to run the software is also stored on microprocessors. A microprocessor is an electric or electronic circuit protected by a layer of silicon to keep to a minimum any alterations that may occur due to external forces including your fundamental particles such as gamma rays, muons, photons etc. It can be affected by dust as well as extreme radiation. Being a low powered magnet it does attract dust so regular cleaning of the components are required from time to time to prevent short circuits from occurring or resisters being blown. Usually there will be internal checks that can be run to ensure the integrity of the system. As well as mitigations in place if any components fail.
One of the most distant and as I type still operating computers ever flown is the Voyager 1 and 2 space probes by NASA. They are still operating despite being just under 24 billion kilometers away. Launched just over 45 years ago.
There can always be unexpected errors that occur in the software as well as the hardware. A constant monitoring and correcting of such errors as they occur is required. In order to keep things running smoothly.
You should always be aware of the risk from hackers keen to exploit any loopholes in security. Security firms usually host conferences to test the latest security features. Launching satellites into space with the latest and greatest security and then allowing hackers free reign to see if they can outwit the security firms security. From these, security firms can improve their countermeasures. To keep security exploits to a minimum one should always keep up to date and stay alert to any potential exploits.
It's not all security in the software world. There are lots of fun stuff too such as game development, data analysis, improving the interface between the data processing machine and its human cyborg ;-). Humans have silicon in the form of silicates which also create a neurocircuit which allow brains and muscles to function.
Improvements are always being made to improve this functionality and the ability to improve the interaction between the silicon box and its programmers, engineers and users of the technology. Adjustments can be made as required, to minimise the effect of the changing environments that can both affect both the software as well as the hardware. Extra functionality and complexity can be added as required as well. However with such increase in complexity so the requirements on maintaining of such complexity increases.
One of the interactions between machine and human that always makes me smile is when a human says something along the lines of 'I didn't do anything wrong' but the machine says 'No', 'You did'. It is in the end an inanimate object with a pre-programmed procedure with a pre-programmed limited methods of interaction. If the human does not follow the pre-programmed set of responses the program will produce an error and stop. Waiting for the human to do it again but this time hopefully do it correctly. Or for the procedure to be reset, for the error to be confirmed, recorded and skipped. If the human repeats the same error guess what the same error will occur. This often confuses the human as the human does not know what they did wrong and will often repeat the same error time and again unless they either work out what the expected procedure is and correct their mistake. Give up in frustration. Or have someone who understands the possible mistakes that were made and point out what may have happened and make recommendations to correct the mistake that may have occurred. Depending on the complexity of the interaction any corrections can also be quite complicated. So time and patience is required from both the problem solver and especially the one who did not understand what they did wrong.
Electronic circuit boards are extremely sensitive and to ensure it works even more efficiently are often housed in temperature controlled air conditioned rooms. With extensive backups and archives to ensure if an error does occur that systems can be restored to a working state with the minimum amount of disruption.
Banging, screaming and throwing a tantrum never works for inanimate objects. They don't work for animate objects either mind you :-). 'Hitting a machine with a hammer' syndrome wears the parts out. For inanimate objects it can only work if there is some kind of spring loaded electro magnetic mechanism that has jammed in the wrong position. Any banging may work temporarily but it is not a solution that works long term as eventually the components will need replaced with new un-bashed mechanisms.
Bashing things is never a solution. What works is to treat the machine with courtesy and respect. Respecting that the engineer(s) who built the machine did a lot of extensive work to ensure it would work under most conditions if operated as intended, If this is done then it should be able to last a lifetime, with a minimum amount of maintenance.
Fixing issues with computers is more akin to a surgeon in an operating theatre.
There are many issues that can go wrong with the components of a computer. All components can normally be replaced. Though Apple products uniquely have a condition of sale that if any components have been replaced will refuse to fix or give any support. This does not happen in other ecosystems such as PC's, Chromebooks or business server systems. The latter will have trained engineers tasked with the maintenance of systems.
It is one of the differences between a machine's response to human error and a human's response to a humans error. Machines will just stop and await a restart. Human's response to an error can be quite extreme.
This human response to human errors is an interesting topic in itself.
Humans are after all designed to fail. With a maximum life estimated to be around 150 years, though the longest reached so far was Jean Calment of France who lived 122 years and 164 days. Many die much younger. Of varying illnesses, accidents and deliberate acts of brutality. Looking after such precious life is a subject of interest for me.
Is making money from human errors and failings healthy? I don't think so.
We are all emotional fallible humans. The most destructive of these emotions is of course anger and jealousy. Peace, forgiveness and understanding of these emotions is an important aspect of being human. Understanding these things can hopefully build healthy and positive relationships with others.
This is probably one of the more frustrating situations that one can encounter when dealing with computers. Occasionally an error can occur that the programmer in their haste accidentally creates a never ending loop within the program. This creates a processing error where the program keeps running and there is no way to cancel it. This is why one of the first phrase you will hear from an IT specialist is to turn the machine of and on. To clear all registers and if it happens again to call them. The reason for the call back is so that the IT specialist can track down where in the code the error is and correct it There will be a unique set of circumstances that created the error.
Don't forget despite the programmers best efforts they all run on a circuit board which can be affected by the environment. It uses microscopic switches that can fail in some way. However this error happens very rarely.
The reset will clear the error. The machine will start again and hopefully the error will not occur. or if it does occur again then an understanding will have been gained as to what caused the error.
Another thing that can create these endless loops is an update that had not been tested thoroughly. In this case the programmer would need to restore the system to a previous version of the software. Then they would need to work on correcting the error in the update.
With the internet there are various DNS (Denial of Service attacks) and various other security loopholes and constant updates that can cause errors.
The main task for this section of the page is for me to articulate into words my thoughts as to the advances as well as the things that have remained the same since the 1980's and 1990's. Hopefully create some useful content both educational, thoughtful and entertaining. To show what is possible in 2023 and beyond. As well as giving a grounding and context for other things you may be interested in.
The tools available to a computer scientist or software engineer these days have expanded. Though still revolve around ones ability to type. Though with voice recognition improving of late the voice can be used, however typing is always the more precise tool. One of the things that is of course different between a typist and software engineer/scientist is the precision required. Computers use a lot of computer language specific words to carry out specific tasks or functions. The computer language will use such specific words to execute specific commands. Depending on the language these can be descriptive and largely intelligible or can be closer to what the computer can understand. This is where computer languages are described as high-level which are largely intelligible languages or low-level closer to how a computer will actually execute the code. The reason for low-level languages is largely down to speed and precision of execution. Where as high-level languages are often easier to code. Low-level languages are quicker at executing. Due to their far less wasteful use of memory and CPU. As well as being much smaller in size. So instead of pages of text. The code is compressed into bits and bytes so it can be executed instantly.
The number of computer languages have grown exponentially over the last decade. Specific languages have been created to make use of the web. As well as interacting with electronic components. To allow developers to code online as well as at home or in an office. This growth in the number of software tools available has enabled computers to become ever more useful and accessible in our lives. However fundamentally, under the hood as it were, the technology remains the same.
Where once it was difficult to fit a computer into a room. Where programs were punched onto bits of card which would be read by a machine and then executed. Now we carry around far more sophisticated computers in our pockets every day, and the age of programs written on punched cards are long gone and can only be found in museums now.
One of the great advances in computing since the 1990's of late, is the opening up of resources in learning. There are still closed systems of learning and open systems of learning. In the past only closed and heavily controlled systems of learning was available. Where once you would have to go to an institution to learn a topic. Which may or may not be useful in future years. Which may become obsolete or you may just no longer enjoy. Now you can learn both in a closed setting as well as an open setting and enjoy the learning experience as you please.
I just want to add a little health and safety caveat to this page. Always be aware of various frailties of being a human. In that staring at a screen for long periods of time is not recommended. Getting up and moving around and staying hydrated is very important. As the light radiates your eyeballs and can be damaging over time. Compared to the cathode ray tubes used in previous decades, modern screens have made great advances. It is still recommended however to limit screen time to around 4 hours. That is 240 minutes or 14400 seconds ;-).
Some might not take heed of such health and safety warnings but you should not allow others to override such health concerns.
One of the main advances in the past decade is the use of machine learning, neural networks and artificial intelligence. This is where programming is less about writing code, but about training an algorithm to process vast amounts of data. This is usually through images at the moment. However large language models are also being developed. It involves training the machine to make sense of vast amounts of texts or images. Making an ever improving educated guess in categorising what an image contains or what reply to give to a given query. Testing it continuously to find exceptions to its guess and retraining it if required. Then once it understands the image or text, make use of this understanding. To help for example a car and driver or person navigate traffic or an unfamiliar landscape.
As a species we humans are very gullible. Tell us something and we would prefer to believe it than not. It is a strange fact of life that fiction stories. Whether that be in the form of books, TV serials or movies. Are consumed far more by humans than factual ones. This allows us to expand our minds beyond the stars and create wonderful worlds in our heads.
We like order in our lives. We like to get up and plan our day and make best use of the time that has been provided. Whether that be socialising, making connections, educating ourselves or earning a living.
The world however, has a way of throwing lots of information at us. Then asking questions that are never exactly the answer to questions that we have been taught. We are left to scramble an answer from the knowledge we have learned. That will answer the question in your own words that are never exactly the words the examiner is looking for. Who learns more from this process, the student or the examiner? Who has more frustration from the process, the student or the examiner?
This is 2023 when I write this. I do hope the passing of information from one generation to the next improves over coming decades. Every child within a generation has the potential to transform their own, others and their communities lives for the better.
Fear of making a wrong step can sometimes overwhelm us and the fear wells up. I can do it on my own without your help that is what is the words that are often proclaimed.
The stars are within our grasp. Our solar system is ready for exploration. Room for all, resources for all.
Computers are inherently complex. To large extent this is deliberate but it is also inherent in the increasing complex tasks computers are tasked to do these days. Humans have long puzzled and recorded various aspect of the world. Sometimes hiding meanings or not explaining it fully. Or in many aspects the original meaning has changed or been forgotten. Historians and archeologists have long puzzled over the meanings of items found from long ago. Interpretations can be made that are later found to be false. The classic example was the finding of dinosaur bones and not putting the jigsaw puzzle of bones together correctly. Then following further scientific analyses many centuries later to correctly identify the bones and where they should go.
This tendency to create complications on top of simple repeatable steps. Read, store, interpret task to be performed and run or execute the command occurs a lot when programming a computer.
The foundational concepts of computing were envisioned in the 19th century by pioneers like Charles Babbage, but practical computers only emerged in the mid-20th century when their ability to process large-scale calculations became far more useful.. One of their early roles was the storage and manipulation of complex formulas—tasks once performed manually..
Much like Arthur Conan Doyle’s Sherlock Holmes mysteries, which challenge readers to decipher hidden clues. Computer programming has evolved into a field where complexity is often intentional. Code is not just functional—it can contain obscured logic, encryption, and hidden structures, making it difficult to interpret primarily for security reasons.
The abacus, one of the earliest computing tools, was designed for structured numerical manipulation, allowing civilizations to organize and process data efficiently. This concept—creating structured frameworks for calculations—later evolved into mechanical calculators, cryptographic methods. and layered programming logic.
Today, programming contains elements that require decoding, whether through analyzing encrypted data, debugging complex systems, or reverse-engineering algorithms. Computers began as a way of storing ones and zeros and performing a calculation upon it. Logic was added to allow it to do simple tasks efficiently, accurately and able to do to be repeated with the same accuracy. The tasks it was asked to perform became ever more complex and efficient ...
(Written in conjunction with Microsoft's : Copilot)
To be continued ...