RSSAmplifier

Blog

Ahmad Hamze Homepage

Recent content on Ahmad Hamze Homepage

ahmadhamze.github.ioRSS feed ↗20 posts

Latest posts

Image manipulation with convolution using Julia

In the past month, I started learning the Julia programming language, it was created by mathematicians for mathematicians. It is mostly used for scientific research and teaching purposes. I was always drawn to it, but for some reason I kept procrastinating learning it until recently. In this blog, I will share what I learned from the amazing Introduction to Computational Thinking course taught by…

AWS ALB and Render.com Deployment

In the previous blog RAG Chatbot: AWS Deployment, we walked through deploying a RAG chatbot using AWS ECS Fargate. This time, we’ll take it a step further by setting an Application Load Balancer (ALB) for a stable, production-ready endpoint, and we’ll also look at a simpler alternative on Render.com. Application Load Balancer (ALB) The app is currently deployed with an IP address…

RAG Chatbot: AWS Deployment

In a previous blog, we created a RAG chatbot using Qdrant, and FastAPI. In this blog, we will deploy the chatbot as an API using Docker and AWS. What does it mean to deploy an application? Deployment is the process of making an application available for use, this does not necessarily mean that the application is in production. Deployment can be done in different environments, such as development,…

RAG Chatbot: Vector Database Approach

In a previous blog, I wrote about a RAG chatbot that I created using a dataset of medical questions and answers. The RAG chatbot embedded the user’s question and retrieved the most relevant answers from an embedding file. Then, using the retrieved answers, GPT-4o-mini generated the final answer. In this blog, we will get rid of the embedding file and use a vector database instead, the code will be…

RAG Medical Chatbot

A few years ago, when I started delving deeper into programming, AI was one of the main topics that captivated my interest. It was only natural for me to stumble upon this subject since I was drawn to scientific programming and Python. Back in the day, AI wasn’t the hype as it is today. Most importantly, when it was discussed, it was associated with different domains, not just LLMs as it is…

Reflections on Changing Jobs

After a long pause, here I am writing a blog post once again. Recently, I got distracted by many things, and I fell into a cycle of procrastination, but arriving late is better than never. I am now working with a new team and using a new tech stack. While writing this post, I had been working with them for about eight months. This gave me more than enough time to reflect on the changes happening…

With due apology to front-end developers

Dear front-end developers, I owe you all an apology! Let me start by introducing myself a bit. I studied mathematics at university, and during that time I did some scientific programming, mostly solving differential equations, linear algebra, statistics, and optimization problems. This was done using Python and Matlab. After graduation, I delved more into “serious programming” and…

From random walk to diffusion

Randomness is an interesting concept, we have seen in previous blogs how it can be harnessed to compute mathematical constants, and even create a universal computer. In this blog we will see how randomness can be used to model diffusion. Diffusion can be defined as the movement of particles from a region of higher concentration to a region of lower concentration. This is a common phenomenon and…

Cellular Automata

In the 1940s, John Von Neumann and Stanislaw Ulam wanted to design a computer able to self-repair. In the real world an object can be produced only from a more complex object. Consider replicating a piece of paper. To create one, we need to have a more complex object, a printer, the printer is a much more complex system than paper, and to create a printer, we need a lot of smaller components which…

Enhancing Recursion with Memoization

In this blog, we will go over an example of recursion and how we can use something called memoization to increase the speed of the code. The Fibonacci Sequence If you’ve never heard of it, it’s quite simple, just start with two numbers 0 and 1, and add them together to get the next number in the sequence (yeah, that’ll be 1 once again). Now add the new number with the one just…

Puppeteer vs Selenium

This blog is for learning purposes only, you can find the complete code on my Github go there to find the instructions necessary to run the code. Introduction In a previous blogI created a selenium bot that performs the 10fastfingers typing speed, it scored 960 WPM. This code was far from perfect, I did it quickly without taking into consideration the best performance that could be achieved.

Selenium Speed Test

This blog is for learning purposes only, you can find the complete code on my Github go there to find the instructions necessary to run the code. Background The first time I ever used Selenium, I had to type a string into a search bar. Doing so, I couldn't see if a string was typed at all, to the point where I thought maybe it doesn't actually type words.

Storybook with React

In this blog, I will be showing how to use Storybook with React and talk a bit about its benefits. I have used Storybook during my first job as a frontend developer, and I enjoyed every moment of it. What is Storybook Here’s a description from the official website Storybook is an open source tool for building UI components and pages in isolation. It streamlines UI development, testing, and…

A React Typescript Trivia Quiz

This is a simple React + TypeScript + Storybook application, it’s a trivia quiz where the user answers a question and when all the questions are finished, they can see their score and the correct answers. In this blog, I will go over the most important parts of the code, which you can find here. Handling the data received from the API The code is in api/quizz-api.ts. The first thing to do is…

Mapping Earthquakes Locations on a Map

Introduction This is a data visualization program made using processing.py, I made it a few years ago, however, I think it’s a great program that deserves recognition. You can find the code and the data used here. Data The program uses a csv file containing 2000 locations of earthquakes (longitude and latitude), the magnitude of the earthquakes, and the name of the place where they occurred…

A live pictionary using websockets

Introduction This is a project that uses websockets to create a drawing on a page and copy this drawing to another page instantly. If you’ve never heard of websockets before, here’s the main idea: You send data from your browser to a server using a “socket” which is a real-time connection that can send data back and forth. There is another computer that is connected to the…

My first C++ console application

Matrix calculator for two by two and three by three real matrices This is a project that I did around three years ago, just after I finished taking my very first comprehensive programming course, it was about the C++ language. Back then I knew that there are many better options to do matrix calculation, mostly using the Python Numpy library. I also knew that there are many C++ libraries that…

Lessons Learned From My First Web Dev Job

Recently I started a web development job as a front-end developer, here are a few things I learned so far. 1. Make sure to have the correct working environment As you might know, preparing the development environment is an essential step when you start a new project. In my case, the team decided to use Nix for package management (it’s awesome). The first problem I faced is that I am using…

Advice to my past self

Advice to my past self regarding programming In this blog, I talk about a few things that I wish somebody told me back when I started learning to program by myself, I hope you can benefit from this if you’re also new to programming. 1. Talk to real programmers who know what they’re doing Getting into the world of programming is quite easy, all you have to do is own a laptop, watch…

Estimating pi

Using the Monte-Carlo simulation to estimate the value of π First of all, let's talk briefly about what is a Monte-Carlo simulation. Simply put, it is a computational method that uses a large number of random samples to obtain a result. It is used in a wide range of disciplines like mathematics, computer graphics, and physical sciences. In this blog, we will see how we can use this method…