Next

Raspberry PI Based Assistant


I've been working on attempting to create an Alexa-like device mainly for voice activated control of music. Why did I do this? Well although I have been beaten-down by my family and we now have an Alexa, it bothers me that we do. As with all of these things over the years, I like to see if it's possible to create them using open-source tech and see if my family will adopt them over the costly (but working!) alternatives. Suffice to say, it's never happened, with the exception of the operating system of choice...mostly. Both my kids use linux, one because he understands and one because he has no choice :-) - if he wants Windows10 then he can buy it and install it. I want my kids to be computer-literate, so if they want something, it's either my way or learn!

Regardless, my pi-based device now responds to voice and will play any song from my music collection that is stored on my server. A few months ago, I attempted to parse the text (from speech) in order to determine the user's request and whilst this worked fairly well, it wasn't good enough. I need an LLM, so I opted to pay for OpenAI's API. I had it up and running very quickly and was and still am, amazed with the results! But I wanted it to be completely local...could it be possible? Well, it turns out that yes, it's perfectly possible! I have tried out a few methods of running a local LLM and have found that oobagooba's textgenerationwebui to be the best option. The great thing about it, is that they have implemented the OpenAI API, so it was mostly a drop-in replacement for the [paid for] OpenAI option. Of course, I cannot run the LLM on the PI itself (though Microsoft's recent LLM only uses 4GB) so I run on my NVidia GPU (1080, 8Gig vram). It's working well...and I'm temporarily happy/amused by it all.


Not much going on

So yeah, I might have to delete this site. Nobody looks at it, I never post anything and it's just a waste of time.

Three Paragraphs of Seemingly Nonsensical Words That Are Actually Very Meaningful"

Have you ever listened to a foreign language or a technical jargon and found it completely unintelligible? At first glance, the words may seem like a meaningless string of syllables and sounds. However, if you take the time to learn the context and the meaning behind these words, you'll find that they are rich in significance and purpose.

In the same way, some seemingly nonsensical words can hold a wealth of meaning and depth when examined in the right light. For instance, "supercalifragilisticexpialidocious" may sound like a made-up term, but it embodies the idea of extraordinary wonder and excitement. Similarly, "jabberwocky" may seem like gibberish, but it represents the power of creativity and imagination.

The lesson to be learned here is that words are not always what they seem. Sometimes, the meaning behind them goes far beyond their surface level appearance. By exploring the nuances and complexities of language, we can gain a deeper understanding of the world around us and the people who inhabit it.


My Lad's webpage (from years ago!)

Several years when my lad was about 10 I tried to get him into programming. I guess many Dad's want their son's to follow in their footsteps. Maybe I did too, I'm not sure. I mean, I love programming as a career choice and it's a very rewarding job...or can be anyway. Maybe I just wanted him to do something other than watch videos and play Minecraft...though I played a lot with him to, so encouraged that! Anyway, I guess I thought that we would start with simple HTML, then javaScript and assuming he got the programming bug, we would move onto C# or Java or even C. This didn't happen but hr did manage to get some understanding of how HTML worked and made a few pages with links, images and stuff. I helped him with the first page and showed how links worked and apparently he went off and made a few pages. Enjoy here

Lemmings


I loved Lemmings from the moment I first played it. The intricate little sprites that perfectly and mindlessly walked around the screen fascinated and intrigued me. I also always wondered how it all worked and the possibility of writing something similar myself. Well, about a decade or so ago, I did just that and re-wrote the entire thing in C++ but, importantly I made use of SDL to help with the tricky part of getting pixels onto the screen. It's tricky because all computers have different hardware and require different 'bits' shifted around to get it to do specific stuff. SDL makes the act of getting your computer to display graphics and emit sound simple and code written using it will run on all computers that have an associated SDL library. So using SDL saved me a lot of time. Even if I had wanted to write it just for my specific hardware and not care about everyone else's experience then even that would be hard. Basically, libraries saved time.

With all that help (I didn't even mention the OS itself, the compiler, IDE's etc.) the process of coding LemmingsSDL took me about 9 months. Granted, I wasn't working on it full time, only evenings, and even then, only after house jobs were complete, bedtime stories read and free time was found. Now, I have chatGPT at my fingertips, I wonder how long it might take me to achieve the same. Obviously, I am not going to repeat the exorcise as time is too precious but I can compare my recent coding experiences and I would say in the case of LemmingsSDL, I'm not sure how much help it would've been. I think perhaps I could've very quickly knocked up something that had a resemblance to the gameplay but I took great strides in making my version 100% a pixel-perfect equivalent of the Amiga version (my mind is now whirring with what questions and modification I would need to actually do it using chatGPT...) and this took a lot of me understanding how the original worked.

I don't know where I'm going with this and nobody will ever read it...in fact  I'm basically just talking to myself!

Anyway, I just got chatGPT to rejig my LemmingsSDL download page, let's see what's it's like  - click here to download LemmingsSDL (very old, probably won't run anymore!)