About this Page
This is a log of software I’ve written and things I’ve learned through programming.
If you want to get straight to it, here’s my repo https://github.com/Apollonius14 and I try to learn the basics of things like this:
Design and hardware are great, but unless you intend to carry your products around it helps to instruct them to do something automatically. Since the theme of this website is mobility, I will be reviewing learning resources that help us control robots to sense the world, decide what to do, and control their bodies to carry out the required actions.
The main programming language I use for prototyping, simulation and learning is python. Python’s syntax is designed to be intuitive and it has several good built-in libraries for numerical methods, statistics, machine learning and visualization. Python’s great for creating bespoke applications that run on your machine or server, and for prototyping ideas quickly. Its main drawback is that it is an interpreted language – this means it runs fairly slowly as there is a second programme that needs to run and interpret each line of code to pass binary instructions to your processor and memory. So python isn’t good for integrated circuits and controllers that require near-real time performance – in this case it’s good to use C++ where your written code gets compiled into binary to run immediately on your processor.
Learning any programming language helps you understand some basic principles like the sequence of steps, objects (with their attributes and methods) and importantly data structures.
My first full web app – March 2021
This Arabic application has a consumer facing version and a vendor facing sub-application. The consumer facing one takes basic parameters about your house, energy consumption and market data and suggests some Solar power system configurations for you with an economic lifecycle calculator and a list of local vendors. The vendor-facing version is a tool that shows vendors prospective customers (who’ve used the consumer-facing version) their expression of interest, contact details and engineering parameters – helping them manage their customer pipeline and sales much more efficiently.