In this post, I explore the usefulness of GitHub badges to easily represent the status of a GitHub project. I discuss their importance in attracting people to your project and provide a step-by-step guide on how to add these badges to your Arduino projects using GitHub actions. Lastly, I recommend setting things up so that only successful pull requests can be merged to maintain the integrity of the project.
31 March 2023
Pondered the future of coding with a colleague of mine recently, as one does. Couldn't help feeling a tad underwhelmed by the programming tools like GitHub's Copilot X and ChatGPT. Sure, these AI-powered coding buddies are smart, helpful and do save time, but they more or less tinker around the edges - optimize the existing processes but don't fundamentally alter them. Software development still remains a tedious enterprise - a loop of problem-definition, code-generation, code-validation, and feedback. Not so different from what it was 30 years ago really. We're surrounded by subpar software everywhere - the bugs, the slowness, the...
25 March 2023
After a previous unsuccessful attempt to power my Christmas lights with solar power, I've decided to try run my ultra-energy efficient ePaper weather display on solar energy. This display, already low on power consumption thanks to ESP32's deep sleep mode, is now paired with the BQ25570 energy-harvesting board and lithium cell to test if solar power can keep it running. Despite the limited Scottish winter sun, initial results look promising. With a little more code tinkering, it is my belief that the weather display might just keep running indefinitely and never need charging again.
23 March 2023
In this enlightening blog post, I dive into the tantalizing world of ChatGPT and Large Language Models. Clarifying its operation, I unlock this enigma by comparing its mechanisms to a simple language model. However, Challenges arise due to the explosion of possible token combinations, leading to an inherent 'lossy' compression of our world's vast information. Surprisingly, even with such compression, these models can mimic human language in a compelling manner. I also investigate possible strategies to optimize this amazing technology - including zero-shot learning, one-shot learning, few-shot learning, and fine-tuning. Entering the era of prompt engineering and larger models, we're...
08 March 2023
I've built a successful YouTube channel in the 'maker' niche, with over 100 videos and 27,000 subscribers since I started in 2020. Despite loving the journey of generating and executing ideas and building a community, I've felt the constraints of sticking to the narrow content scope that my subscribers expect and the platform's algorithm reinforces. Though the ideal solution seems to be creating multiple channels for each interest, the realities of channel management and monetization rules make this a challenging prospect.
06 March 2023
In this post, I cover the migration of our cocktail bot to use the newly available ChatGPT API. Prompt engineering is performed to accurately guide the bot's versatility in cocktail recommendations. A Python application is provided via GitHub for testing the chatbot. To ensure appropriateness in user inputs, a moderation system from OpenAI’s API has also been integrated. However, readers are reminded to consume the AI's cocktail suggestions responsibly and remember that it's just a machine- its advice could potentially lead to less than satisfactory results.
05 March 2023
Strap yourselves in, folks, we're in for a wild ride! ChatGPT's new API has reignited my excitement for Large Language Models, just like the start of the dot com boom. With the pricing now 10 times cheaper, a flurry of creative and previously unthinkable use cases is within our grasp. Despite earlier doubts, I now believe we're scaling the peak of inflated expectations. Can't wait to see the innovative applications that will spring from this!
01 March 2023
In this blog post, I embarked on a fun project to create a DIY power bank using two 10,000mAh lithium cells I had lying around, and a charge control board. After some tinkering and tests, I learned that measuring power bank efficiency requires more than looking at amp-hours. With some help from a friend, I found out our power bank was actually over 93% efficient, a pretty fantastic result. Despite some challenges with certain devices not drawing their full potential power from my power bank, I concluded that while it was an enjoyable project, buying a ready-made power bank might...
15 February 2023
As a developer frequently publishing code snippets on GitHub, I'm finding an increasing amount of my time being demanded for support and fixes. The reality is, I don't always have the time or resources to provide the help that each user deserves. 'Cloners beware' has become my motto as I try to remind others that using a public GitHub repo does not come with guarantees or warranties. Please remember, I'm a human with my own responsibilities and projects too.
06 February 2023
In a sea of ChatGPT chatter, we're stirring things up a bit with a cocktail chatbot of our own. From 'prompt engineering' to tailoring your bot for chit-chat about martinis, we've got you covered - the OpenAI playground is our bartender school! It won't just mix up your favorite cocktails, it remembers your preferences too, just like your favourite barman would. Be warned though: my fancy mixologist bot won't be held responsible for any questionable cocktails or spectacular headaches you end up with! So, pull up a barstool and let's dive right in.
15 January 2023
While exploring my old tweets, I noticed one where I exuberantly declared 'I'm getting a drone!', leading me down a rabbit hole that included a forgotten Kickstarter campaign and a $520 pledge. After fearing I'd fallen victim again to a failed Kickstarter project, I discovered in my trove of saved emails that the campaign creators refunded my pledge when they realised the idea wasn't feasible, marking a rare and pleasing end to a Kickstarter adventure.
12 January 2023
Here's a wild ride with ChatGPT and other large language models! They're ace at cooking up plausible-sounding text, but they're not always the best when it comes to spitting out the truth - they've got a funky relationship with facts. One research paper showed they can come out with believable but totally fake answers to seemingly straightforward facts. But when I messed around with various models, there were a few discrepancies. Some got it right or plausibly wrong, but we humans are pretty gullible and tend to believe plausible-sounding info. So when it comes to using ChatGPT, make sure you...
08 January 2023
In this article, I explore the different reactions that folks are having towards this tidal wave of AI in our lives, ranging from 'meh' dismissals to outright existential anxiety. I argue that AI is here to augment our capabilities, not replace us. While we might find AI occasionally stumbling, let's not overlook the amazing gift of efficiency and productivity it brings. Sure, we might be worried about the implications it has on our jobs, but isn't it also thrilling to have an AI companion working along with us 'cause if a computer can do my job better, maybe I should...
01 January 2023
My recent post was featured on Hacker News and rose to the number 2 spot, attracting over 45,000 requests or 29,000 unique IPs in a single day, a phenomenon known as the 'Hacker News Effect'. Since my Jekyll-generated site largely comprises static HTML, CSS and images and is hosted inexpensively on Amazon AWS with CloudFront, it was quite capable of handling this traffic surge. Utilizing CloudFront's traffic logs, I've created several visual representations to track and understand the flow of traffic geographically.
15 December 2022
In the quest to explore the capabilities of ChatGPT, I decided to utilized it as a startup brainstorming partner. From product description to building the product on AWS and GCP, crafting an elevator pitch, highlighting the ideal customer profile, sketching a business plan, and even generating a logo idea, ChatGPT has been surprisingly helpful and creative. We even explored potential team structures that can bring the business to life! Turns out, ChatGPT might just be the co-founder you never thought you needed.
05 December 2022
I've delved deep into the reason why people prefer to use wedge-shaped coils when building PCB motors. After a lot of Googling, a bit of Python scripting, and a ton of visuals, what emerged was a very compelling argument for the humble wedge coil. Turns out, radial lines are the heroes in the story – the more the merrier – because these are what generate the fields in the correct direction to crank up the torque. Don’t get too attached though; there may be alternative, more efficient coil designs yet to discover, but those are topics for another day!
20 November 2022
Recently, I've been dipping my toes into the world of KiCad action plugins, specifically one for generating coils. In this post, I've jotted down some key learnings that would serve as a guide for myself in the future and for anyone else interested in building KiCad action plugins. Here, you'll find insights on getting the current board, adding objects, specifying the start and end points for tracks, creating vias, adding silk screen text, flipping text to the other side, connecting things to your PCB, and more. You'll find code snippets for these and links to additional resources. As my understanding...
24 October 2022
I've been diving deep into the world of PCB (Printed Circuit Board) coils, inspired by Carl Bugeja's incredible PCB motors! After deciding to set up an automated process for creating the coils rather than manually drawing them (can you imagine?), I found our main constraints became track width and spacing, and the number of layers we could use. During the process of creating spirals for our coils, I encountered some interesting problems - spirals are easy, but what about arbitrarily shaped coils? My attempts ultimately lead me to develop more efficient algorithms and KiCad plugins to generate these special coils....
23 October 2022