All Posts

Advocating for Accessibility at 11: A Story of Limited Means

Advocating for Accessibility at 11: A Story of Limited Means

I was 11 years old when I became an accessibility advocate in software products thanks to Bill Gates. I did not know the term at the time, and it certainly was not planned. My parents bought a second-hand (or maybe third?) computer from a relative (thank you tío Rafa!), a fragrant IBM PS1 that now included screen colors. This was my second computer; the first one had a retina-damaging green monitor (verde chinga-pupila in Mexico), hacker-style, running DOS and Pascal.

Implementing Subscribing to Your Site Feature with Mastodon/Fediverse Accounts

Implementing Subscribing to Your Site Feature with Mastodon/Fediverse Accounts

We will take a break from discussing ActivityPub concepts, and I’ll explain how I implemented a very simple “Subscribe” feature for this blog using Mastodon/Fediverse accounts. You don’t need to have your site/blog ActivityPub enabled for this; you will only need a Fediverse account and basic html/css knowledge. You can also navigate the other parts of this series here. The Motivation The motivation behind this simple feature is quite strong:

Demystifying LLMS From Zero to Raccoon-Hero, with Azure and DotNet, Part 2: Adding the OpenAI magic with Semantic Kernel

Demystifying LLMS From Zero to Raccoon-Hero, with Azure and DotNet, Part 2: Adding the OpenAI magic with Semantic Kernel

There is a video version of this post in my YouTube Channel. So we have our boilerplate app, and we are ready to start adding fun stuff. If you do not have that, check the part 1 of this series. We will start by making sure we have Semantic.Kernel in our usings: using Microsoft.SemanticKernel; Now we will configure the “Kernel”, which as the name says is the heart of SK (Semantic Kernel).

Large Language Models Demystified: Are LLMs Artificial Intelligence? Harnessing Their Power Responsibly

Large Language Models Demystified: Are LLMs Artificial Intelligence? Harnessing Their Power Responsibly

I’ll keep this short and sweet since there’s already gazillions of information about Large Language Models (LLMs) and artificial intelligence (AI), and I doubt I’ll contribute anything novel to the discussion. This post aims to put in words this interlude video about LLMs and AI before adding the magic AI bits into our app. I will argue two things: 1) LLMs are a form of artificial intelligence, 2) They represent a rather limited form of intelligence that requires constant supervision.

Demystifying LLMS From Zero to Raccoon-Hero, with Azure and DotNet, Part 1: Creating a CLI

Demystifying LLMS From Zero to Raccoon-Hero, with Azure and DotNet, Part 1: Creating a CLI

If you prefer video, there is a YouTube version of this blog-post. Since the release of LLMs, I have been extremely enthusiastic about exploring such a fun tool to play with. I won’t delve into discussions about how transformative it is or will be, but rather focus on the enjoyable aspect of using this technology. In the broader context of ML/AI and data science, Python stands out as the most commonly used programming language.

A Guide to Implementing ActivityPub in a Static Site (or Any Website) - Part 4

A Guide to Implementing ActivityPub in a Static Site (or Any Website) - Part 4

In this blog post, we will explain how to generate the outbox and notes, ready to be shared in the Fediverse. You can also navigate the other parts of this series here. Overview In the previous blog post, we created the actor endpoint as a static file. As explained there, this file has a pointer to the outbox, which is a collection of notes. A note in the ActivityPub protocol represents an activity, such as a toot, photo, comment, etc.

The Gendered Lens of AI: Unpacking Bias in Language Models

The Gendered Lens of AI: Unpacking Bias in Language Models

ChatGPT and most AI systems have biases, often manifesting as racism and discrimination, mirroring the biases present in human society and hence in the data we use to train such systems. And look, I am excited about AI, but sometimes we are moving too fast without thinking in the consequences. Last week we had our team monthly lunch, and as in other ocassions we were talked about everything, ranged from topics as cane sugar industry, spicy food levels, skiing, and of course, AI.

A Guide to Implementing ActivityPub in a Static Site (or Any Website) - Part 3

A Guide to Implementing ActivityPub in a Static Site (or Any Website) - Part 3

In this blog post, we will explain how to make your blog discoverable in the Fediverse as an account, and also address some of the annoying pitfalls I encountered. So let’s get started. You can also navigate the other parts of this series here. Overview To enable discovery, we need to implement the webfinger endpoint and the actor file. As shown in the diagram, Mastodon will first reach the webfinger, which points to the actor file.

A guide to implement ActivityPub in a static site (or any website) - Part 2

A guide to implement ActivityPub in a static site (or any website) - Part 2

In Part 2, we will delve into the design of my implementation. If you want to read about why you should bring your site to the Fediverse, check out Part 1. You can also navigate the other parts of this series here. So, you’ve decided to bring your blog to the social web, the Fediverse. That’s cool! This guide might be just what you need. And if you’ve got this or any other method working, shoot me a message on the social web, and I’ll gladly follow.

Bringing your site to the Fediverse: A practical guide for static sites - Part 1

Bringing your site to the Fediverse: A practical guide for static sites - Part 1

You can find the index and other parts of this series here. This blog is on the fediverse! You can discover and follow the blog (@blog@maho.dev) and comment on its posts from your Mastodon app. I spent the last couple of weeks getting this blog onto the social web (aka fediverse), investing an hour here and there (I hope you are reading this from Mastodon, btw). It was fun and a very exciting learning experience, and I want to share not only my reflections but also create a guide so others can do the same, to move the needle a little bit in the right direction.