July 20, 2024Read MoreCultural Bias in LLMsCultural biases in large language models and the implications for AI integration in critical workflows
July 7, 2024Read MoreMapping out the AI Landscape with Topic ModellingTackling information overload by using topic modeling techniques to map out the AI landscape, helping us access valuable AI news and trends!
June 27, 2024Read MoreSustainable Cloud Computing: Carbon-Aware AIWhen selecting a cloud compute region for your ML workloads you will often need to account for latency, cost, services and features, compliance, etc. But in this article I explore how you can also consider your carbon footprint as part of your selection criteria.
June 24, 2024Read MoreDefensive Technology for the Next Decade of AIExploring defensive technologies to mitigate AI risks and ensure safe and secure advancements in the next decade.
June 13, 2024Read MoreSituational Awareness: The Decade AheadAs developers, we often just focus on the technical aspects of AI without ever considering the broader geopolitical implications. From Leopold Aschenbrenner's 'Situational Awareness', I summarise his insights on the rapid development of AI and the path to AGI & ASI, as well as the geopolitical and security challenges we face with AI.
June 7, 2024Read MoreMechanistic Interpretability: A SurveyMechanistic interpretability in AI: unsupervised sparse autoencoders being used to generate interpretable features from LLMs in order to enhance our understanding of, trust in, and safety of AI systems.
May 24, 2024Read MoreWhy I Left UbuntuI recently upgraded to Ubuntu 20.04 LTS, but my experience wasn't as smooth as I'd hoped. Here's why I decided to switch back to Windows and my setup process for an optimal development environment.
May 20, 2024Read MoreAI’s Role in HealthcareAI is making significant strides across various industries, and healthcare is no exception. From improving diagnostic accuracy to easing administrative burdens, AI is ready to transform the way healthcare is delivered and experienced.
April 16, 2024Read MoreAutonomous Agents & Multi-Agent CollaborationExploring Autonomous Agents and multi-agent systems, this post goes into how collaborative autonomous agents can improve complex problem-solving, from behavior simulation and data construction to performance enhancement and software development
March 28, 2024Read MoreEmbeddings and Vector Databases: Enhancing Retrieval SystemsExplore how embedding models and vector databases can enhance retrieval systems in AI, with practical tips and insights for optimizing retrieval-augmented generation (RAG) systems.
February 3, 2024Read MoreBuilding an Automated Newsletter-to-Summary Pipeline with OpenAI: Zapier AI Actions vs AWS SES & LambdaThis post goes through creating an automated system that utilizes Zapier and Telegram (and then AWS SES & Lambda) to transform newsletters landing in our Gmail account into AI-generated Summary threads - a process designed to operate autonomously, 24/7.
December 15, 2023Read MoreLocal AI Image GenerationThe ability to generate stunning AI images has become accessible to everyone. In this post I explore how you can generate AI Images locally using Stable Diffusion XL and checkpoints like Juggernaut.
November 15, 2023Read MoreMLOps: Deploying a Distributed Ray Python Server with Kubernetes, EKS & KubeRayIn this post I go through the end-to-end process of deploying a distributed Python server using Kubernetes, covering both local Kubernetes deployment using Kind, as well as a cloud-based deployment on AWS using EKS
October 24, 2023Read MoreMaking the Switch to Linux for Development: A Developer's ExperienceIn this post, I share why I switched from Windows to Linux for development and how I set up my system for various tasks, including web-dev, machine learning, AI, etc.
October 1, 2023Read MoreScaling Option Pricing with RayRay is a framework that makes it simple to scale Python applications. The Binomial model is a basic technique for option pricing. This post showed how using Ray makes it easy to take your existing Python code that runs sequentially and transform it into a distributed application with minimal code changes.
September 23, 2023Read MoreUsing Async Worker Pool in Python for Efficient Task ExecutionWhen developing applications that require high-concurrency, efficiency, and robust error-handling, the Async Worker Pool pattern in Python can be a valuable pattern.
September 8, 2023Read MoreBrowser Fingerprinting: Introducing My First NPM PackageBrowser fingerprinting with a zero-dependency NPM package that offers a swift, synchronous function for browser fingerprint computation without user permissions or cookies.
August 14, 2023Read MoreMy Favorite GitBash AliasesThis blog article explains the use and customization of the .bashrc file in GitBash. It details how to access the file and create custom aliases, providing examples for simplifying common Git commands and quickly activating an Anaconda environment.
July 6, 2023Read MoreReading Data from @socket.io/redis-emitter without Using a Socket.io ClientIn this article, we explore the challenge of reading data from @socket.io/redis-emitter without a socket.io client and present a clean and effective solution by decoding using the notepack.io.
July 1, 2023Read MoreSocket.io Middleware for Redux Store IntegrationIntegrating Socket.io with Redux through middleware for a robust and elegant solution for handling real-time communication in React. Using a singleton creation pattern and custom middleware provide a structured and scalable approach to managing Socket.io connections and dispatching Redux actions seamlessly.
April 21, 2023Read MoreSharing TypeScript Code Between Microservices: A Guide Using Git SubmodulesShare TypeScript code between microservices using Git submodules, allowing for modular code management and easy updates. Set up path mapping and handle external dependencies for a cleaner, more maintainable codebase.
April 17, 2023Read MoreUsing Objects as Keys in JavaScript Maps: Short Notes on Key EqualityUse objects as keys in JavaScript Maps by understanding how JavaScript compares objects by reference. By using a single object reference as the key, you can avoid unexpected behavior and achieve key equality.
February 3, 2023Read MoreEfficient Dataset Storage: Beyond CSVsOne of the crucial aspects of your work is managing and storing datasets efficiently. How should you be storing your datasets though? CSV's may be common, and are handy when you want to share and read your data, but Binary formats like Pickle and Parquet offer enhanced performance for both reading and compression.
November 8, 2022Read MoreEmbracing Next.js 13: Why I switched from Plain ReactMaking the switch from React to Next.js? This article explores how Next.js 13 revolutionizes the scene with upgraded development, performance, and user experience functionalities.
November 3, 2022Read MoreDeploy & Scale Socket.io Containers in ECS with ElasticacheExplore the process of deploying and scaling a Socket.io server in Amazon Elastic Container Service (ECS) with Redis using Elasticache
September 13, 2022Read MoreImplementing TOTP (Time-Based One-Time Password) Authentication in Python using PyOTPImplement Time-Based One-Time Password (TOTP) authentication in Python using PyOTP, integrate with popular mobile authenticator apps like Google Authenticator,
September 9, 2022Read MoreSimplifying Lambda Layer ARNs and Creating Custom Layers in AWSAWS Lambda deployments using pre-existing Lambda Layers as well as creating custom Lambda Layers from scratch using Flask as an example.
June 23, 2022Read MoreProvisioning Real-Time PostgreSQL with TimeScaleDB: Local Docker Container with Passthrough Mount & Cloud Configuration in an EC2In this article, we'll explore how to provision and configure TimeScaleDB for two different setups: running it within a Docker container locally with a passthrough mount to a local directory as well as setting it up manually on an Amazon EC2 instance as a cloud-based database.
March 13, 2022Read MoreRefactoring Python Packages: Embracing Best PracticesIn this article, as a developer refactoring old Python code, I'll explore adopting industry-standard best practices to improve maintainability, readability, and overall code quality of Python packages.
January 27, 2022Read MoreEfficiently Storing Website Submissions using AWS Lambda and S3A lightweight solution to handle occasional website submissions without the need for a full-fledged database: AWS Lambda and Amazon S3.
December 16, 2021Read MoreHow to SSH into an EC2 Instance Using PuTTYIf you're working with Amazon Web Services (AWS) and need to access your EC2 instances securely, PuTTY can be a valuable tool.
October 22, 2021Read MoreJavaScript Sets: Techniques and Performance TipsJavaScript Sets with methods for finding differences between sets
September 6, 2021Read MorePython Asynchronous Programming BasicsPython asynchronous programming, for more efficient applications, making the most out of concurrent execution for various tasks.
July 20, 2024Read MoreCultural Bias in LLMsCultural biases in large language models and the implications for AI integration in critical workflows
June 24, 2024Read MoreDefensive Technology for the Next Decade of AIExploring defensive technologies to mitigate AI risks and ensure safe and secure advancements in the next decade.
May 24, 2024Read MoreWhy I Left UbuntuI recently upgraded to Ubuntu 20.04 LTS, but my experience wasn't as smooth as I'd hoped. Here's why I decided to switch back to Windows and my setup process for an optimal development environment.
March 28, 2024Read MoreEmbeddings and Vector Databases: Enhancing Retrieval SystemsExplore how embedding models and vector databases can enhance retrieval systems in AI, with practical tips and insights for optimizing retrieval-augmented generation (RAG) systems.
November 15, 2023Read MoreMLOps: Deploying a Distributed Ray Python Server with Kubernetes, EKS & KubeRayIn this post I go through the end-to-end process of deploying a distributed Python server using Kubernetes, covering both local Kubernetes deployment using Kind, as well as a cloud-based deployment on AWS using EKS
September 23, 2023Read MoreUsing Async Worker Pool in Python for Efficient Task ExecutionWhen developing applications that require high-concurrency, efficiency, and robust error-handling, the Async Worker Pool pattern in Python can be a valuable pattern.
July 6, 2023Read MoreReading Data from @socket.io/redis-emitter without Using a Socket.io ClientIn this article, we explore the challenge of reading data from @socket.io/redis-emitter without a socket.io client and present a clean and effective solution by decoding using the notepack.io.
April 17, 2023Read MoreUsing Objects as Keys in JavaScript Maps: Short Notes on Key EqualityUse objects as keys in JavaScript Maps by understanding how JavaScript compares objects by reference. By using a single object reference as the key, you can avoid unexpected behavior and achieve key equality.
November 3, 2022Read MoreDeploy & Scale Socket.io Containers in ECS with ElasticacheExplore the process of deploying and scaling a Socket.io server in Amazon Elastic Container Service (ECS) with Redis using Elasticache
June 23, 2022Read MoreProvisioning Real-Time PostgreSQL with TimeScaleDB: Local Docker Container with Passthrough Mount & Cloud Configuration in an EC2In this article, we'll explore how to provision and configure TimeScaleDB for two different setups: running it within a Docker container locally with a passthrough mount to a local directory as well as setting it up manually on an Amazon EC2 instance as a cloud-based database.
December 16, 2021Read MoreHow to SSH into an EC2 Instance Using PuTTYIf you're working with Amazon Web Services (AWS) and need to access your EC2 instances securely, PuTTY can be a valuable tool.
July 7, 2024Read MoreMapping out the AI Landscape with Topic ModellingTackling information overload by using topic modeling techniques to map out the AI landscape, helping us access valuable AI news and trends!
June 13, 2024Read MoreSituational Awareness: The Decade AheadAs developers, we often just focus on the technical aspects of AI without ever considering the broader geopolitical implications. From Leopold Aschenbrenner's 'Situational Awareness', I summarise his insights on the rapid development of AI and the path to AGI & ASI, as well as the geopolitical and security challenges we face with AI.
May 20, 2024Read MoreAI’s Role in HealthcareAI is making significant strides across various industries, and healthcare is no exception. From improving diagnostic accuracy to easing administrative burdens, AI is ready to transform the way healthcare is delivered and experienced.
February 3, 2024Read MoreBuilding an Automated Newsletter-to-Summary Pipeline with OpenAI: Zapier AI Actions vs AWS SES & LambdaThis post goes through creating an automated system that utilizes Zapier and Telegram (and then AWS SES & Lambda) to transform newsletters landing in our Gmail account into AI-generated Summary threads - a process designed to operate autonomously, 24/7.
October 24, 2023Read MoreMaking the Switch to Linux for Development: A Developer's ExperienceIn this post, I share why I switched from Windows to Linux for development and how I set up my system for various tasks, including web-dev, machine learning, AI, etc.
September 8, 2023Read MoreBrowser Fingerprinting: Introducing My First NPM PackageBrowser fingerprinting with a zero-dependency NPM package that offers a swift, synchronous function for browser fingerprint computation without user permissions or cookies.
July 1, 2023Read MoreSocket.io Middleware for Redux Store IntegrationIntegrating Socket.io with Redux through middleware for a robust and elegant solution for handling real-time communication in React. Using a singleton creation pattern and custom middleware provide a structured and scalable approach to managing Socket.io connections and dispatching Redux actions seamlessly.
February 3, 2023Read MoreEfficient Dataset Storage: Beyond CSVsOne of the crucial aspects of your work is managing and storing datasets efficiently. How should you be storing your datasets though? CSV's may be common, and are handy when you want to share and read your data, but Binary formats like Pickle and Parquet offer enhanced performance for both reading and compression.
September 13, 2022Read MoreImplementing TOTP (Time-Based One-Time Password) Authentication in Python using PyOTPImplement Time-Based One-Time Password (TOTP) authentication in Python using PyOTP, integrate with popular mobile authenticator apps like Google Authenticator,
March 13, 2022Read MoreRefactoring Python Packages: Embracing Best PracticesIn this article, as a developer refactoring old Python code, I'll explore adopting industry-standard best practices to improve maintainability, readability, and overall code quality of Python packages.
October 22, 2021Read MoreJavaScript Sets: Techniques and Performance TipsJavaScript Sets with methods for finding differences between sets
June 27, 2024Read MoreSustainable Cloud Computing: Carbon-Aware AIWhen selecting a cloud compute region for your ML workloads you will often need to account for latency, cost, services and features, compliance, etc. But in this article I explore how you can also consider your carbon footprint as part of your selection criteria.
June 7, 2024Read MoreMechanistic Interpretability: A SurveyMechanistic interpretability in AI: unsupervised sparse autoencoders being used to generate interpretable features from LLMs in order to enhance our understanding of, trust in, and safety of AI systems.
April 16, 2024Read MoreAutonomous Agents & Multi-Agent CollaborationExploring Autonomous Agents and multi-agent systems, this post goes into how collaborative autonomous agents can improve complex problem-solving, from behavior simulation and data construction to performance enhancement and software development
December 15, 2023Read MoreLocal AI Image GenerationThe ability to generate stunning AI images has become accessible to everyone. In this post I explore how you can generate AI Images locally using Stable Diffusion XL and checkpoints like Juggernaut.
October 1, 2023Read MoreScaling Option Pricing with RayRay is a framework that makes it simple to scale Python applications. The Binomial model is a basic technique for option pricing. This post showed how using Ray makes it easy to take your existing Python code that runs sequentially and transform it into a distributed application with minimal code changes.
August 14, 2023Read MoreMy Favorite GitBash AliasesThis blog article explains the use and customization of the .bashrc file in GitBash. It details how to access the file and create custom aliases, providing examples for simplifying common Git commands and quickly activating an Anaconda environment.
April 21, 2023Read MoreSharing TypeScript Code Between Microservices: A Guide Using Git SubmodulesShare TypeScript code between microservices using Git submodules, allowing for modular code management and easy updates. Set up path mapping and handle external dependencies for a cleaner, more maintainable codebase.
November 8, 2022Read MoreEmbracing Next.js 13: Why I switched from Plain ReactMaking the switch from React to Next.js? This article explores how Next.js 13 revolutionizes the scene with upgraded development, performance, and user experience functionalities.
September 9, 2022Read MoreSimplifying Lambda Layer ARNs and Creating Custom Layers in AWSAWS Lambda deployments using pre-existing Lambda Layers as well as creating custom Lambda Layers from scratch using Flask as an example.
January 27, 2022Read MoreEfficiently Storing Website Submissions using AWS Lambda and S3A lightweight solution to handle occasional website submissions without the need for a full-fledged database: AWS Lambda and Amazon S3.
September 6, 2021Read MorePython Asynchronous Programming BasicsPython asynchronous programming, for more efficient applications, making the most out of concurrent execution for various tasks.