Posts

S3Mate

Image
When working with AWS S3, I often receive S3 URLs that are not publicly accessible. These links can't be opened directly in a web browser, and they come in many different formats. For example: https://bucket.s3.amazonaws.com/key or https://s3.region.amazonaws.com/bucket/key Each time, I had to manually: 1) Figure out which format it was. 2) Extract the bucket and key. 3) Open the AWS Console. 4) Navigate to the correct object. This routine was repetitive and time-consuming. So I built S3Mate . It's a small desktop gadget that lets me paste any S3 URL, automatically resolves the bucket and key, and quickly shows or operates on the object without switching tools. The application detail, source code and releases can be found at the repository of the gadget at  https://github.com/tekichan/s3mate Even though S3Mate is a small project, I picked up a few useful lessons along the way. 1. Building Native Desktop Apps with jpackage I learned how to use jpackage to turn a Java applicat...

[Event] Accelerate AI with Cloud Run

Image
I was excited to attend the event Accelerate AI with Cloud Run , organised by Google Developer Group (GDG) North West. Unlike the typical seminar-style tech meetups, this event was so different. It wasn't just about listening, it was about building. The combination of an expert talk and hands-on labs felt perfect for a developer audience. The workshop started with a session delivered by Richard Bannister from Google. His talk focused on building AI agents on Google Cloud using the Agent Developer Kit (ADK), which is a framework designed to help developers create, deploy, and scale AI-driven agents efficiently. Key takeaways from the session: A structured architecture for agent development includes: Agent Build:  Capabilities to design, build and test individual AI agents and multi-agent systems Agent Ops: Capabilities to deploy, manage, evolve and optimise AI agents Data Platforms for Agents: Capabilities to acquire, prepare, store and access data for AI agents Security for Agent...

Mathematical Animation Engine

Image
I recently discovered an interesting Python library called Manim . It’s a powerful tool that allows us to create beautiful animations of mathematical concepts and geometric shapes such as polygons, graphs, and functions. What makes Manim even more exciting is that it can be used directly in Jupyter Notebook. This means I can combine code, text, and animation all in one place — perfect for explaining mathematical ideas in a more dynamic and visual way. To try it out, I created a simple example using Manim to illustrate the Fourier Transform , one of my favourite topics from university. With just a few lines of code, Manim can generate smooth, professional-looking animations that show how complex waveforms are built from simple sine components. I’m excited to explore more possibilities with Manim and use it to present other mathematical concepts in a creative and engaging way. 1. Installation !sudo apt update !sudo apt install libcairo2-dev \    texlive texlive-la...

Reichstag building, Berlin

Image
  Reichstag building Berlin, the capital of modern democracy

[Event] JManc 2025

Image
I had the opportunity to attend JManc again this year—and once more, it was fabulous. The sessions were organic, deeply technical, and full of insights shared by developers across different domains. Here's my wrap-up from the day, highlighting a few memorable sessions and conversations. 1 Tony Wilson, Manchester 30 Years of Java — Jim Gough’s Retrospective Jim Gough delivered a fantastic keynote on the evolution of Java over three decades. As a Java Champion, his perspective mixed historical insight with a touch of humor and lived experience. Here are some of the milestones he covered: Applets & Early UI: Java’s original fame came from applets—tiny applications that ran inside web browsers.  AWT & Swing: Early GUI development in Java involved the AWT toolkit, later replaced by the more versatile Swing. JavaFX: The modern Java UI framework that succeeded Swing. It was eventually removed from the JDK and spun out as an open-source project. While less commonly used in modern ...

[Event] Shape The Future with Lloyds

Image
I attended the talk called "Shape The Future with Lloyds". It was exciting to see a legacy bank break out of its monolithic shell and dive into Digital Transformation. The Lloyds Bank team shared insights into their journey of innovation; their commitment and the challenges faced in reshaping such a large institution. It was a great reminder of how iterative progress drives change across any industry. A special thanks to David Underwood for not only posting this event but also for sharing his experience in making daily multiple deployments possible; a true marker of transformation in action! 

Building a Gaming PC: A Personal Journey Through Time

Image
Building a PC for my son recently brought back memories from my first build over two decades ago. I feel fascinated to see how much has changed and how much has stayed the same. The fundamental concept of assembling a PC remains, but the technology has advanced significantly, making this easier. Here is my lesson learnt during this build. CPU: AMD Ryzen 5 5600X  The CPU market is still dominated by Intel and AMD, just as it was two decades ago. Unlike the past, where you could simply install a CPU out of the box, modern processors require an efficient cooling system. The additional CPU fan has become a minimal necessity to cool down these powerful processors. Motherboard: ASUS ROG STRIX B550-F ASUS remains my favourite brand for motherboards. The advancements here are remarkable. Gone are the PS/2 ports, replaced by USB ports. Sound cards, which were once an essential component, are no longer needed as modern motherboards come with integrated sound. Setting jumpers manually is...