Posts on techy stuff

Subscribe with RSS to keep up with the latest news.

Posts Archive


Mobile AI and Cloud Context: Connecting Joey iOS to FastMCP on Render


mobileai

End-to-End Blueprint: Connecting Intervals.icu MCP to Joey iOS via Render and OpenRouter

The Model Context Protocol (MCP) allows LLMs to interact with remote tools and data sources. While desktop clients typically rely on persistent local connections, mobile setups require an architecture optimized for short-lived, atomic network requests.

This guide outlines how to configure and link four distinct systems—Intervals.icu, Render, OpenRouter, and Joey iOS—into a stateless, single-endpoint engine to query fitness metrics and training load insights natively from your phone.

read more

Using Local AI Agents to Analyze Personal Fitness Data


terminalai

💻 Using Local AI Agents to Analyze Personal Fitness Data

Model Context Protocol (MCP) and AI agents are frequently discussed in the context of enterprise software development. However, these tools are also highly effective for personal hobbies and data analysis.

I wanted a way to query my cycling and recovery metrics securely without relying on premium AI subscriptions. By combining open-source tools and custom inference endpoints, I built a local training assistant for free.

read more

Install WhatsApp on Mac with Nativefier


macnativefier

WhatsApp has an official Mac app, but it can be heavy on resources and sometimes lacks flexibility. An alternative is to wrap WhatsApp Web into a standalone desktop app using Nativefier.

read more

Warp - Shell with an AI attitute


aiwarp
  • Do you like using shells: sh, cmd, ps
  • Do you feel forgetting how to do things, like what's the command to remove all directories and sub and force and and recursive and all?
  • Do you like AI or talking to AI, or just want to say you are AI aware?

Then, my very serious recomendation:

Go Warp a very neat, cool, easy-to-use, and powerful command line (shell) tool, with AI built-in

https://www.warp.dev/terminal


Setting up GitHub Pages


githubgithub

GitHub allows you to host pages directly from your repo Here are the steps I did: For GitHub:

  • Create a repository for your project (you can name it anything).
  • Add your HTML file (e.g., index.html) to the repository.
  • Go to the repository’s Settings > Pages.
  • In the Source section, select the branch where your HTML file is located, and choose the root folder.
  • GitHub will provide you with a link to access your hosted HTML page.

Fedora Server on Minix NEO Z64W


linux

The Minix NEO Z64-W is intended to run Windows, but, since it has an Intel chipset, it runs Linux Server pretty well. Until a few days ago, I had a stable version of Ubuntu Server 20 LTS running there. A failed attempt to upgrade to Ubuntu LTS 22 brings me here.

read more

Moving from Android to iPhone


mobile

After several years on Android, I moved recently to iPhone. Here are my takes on the process

Android history: Galaxy 2, Galaxy 4, Galaxy 6, Pocofone, Pixel 4 XL Moving to: iPhone 14 Max

read more

Calling AWS Lambda functions from LINQPad


csharp
  • Open LINQPad
  • Add reference to JSON.NET
  • Use this C# statement to call a Lambda function in AWS:
 var lambdaUrl = "https://<base>.amazonaws.com/default/<api>";

var message = "some message";
var data = new { message };
var payloadJson = JsonConvert.SerializeObject(data);

var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, lambdaUrl);
request.Content = new StringContent(payloadJson, Encoding.UTF8, "application/json");
var response = await client.SendAsync(request);

Console.WriteLine(await response.Content.ReadAsStringAsync());

In order to create/configure the lambda function, follow these steps:

  • Login to AWS
  • Search for Lambda
  • Create new function
    • Select existing permission lambda_execution
  • Go to Configuration
    • Create New trigger of type API Gateway
    • Set Security to None

Grep - Powershell style


grep

Use this powershell command to find text in files, grep style:

 gci -r | sls 'some text'

or

 Get-ChildItem -Recurse | Select-String 'some text'

Fix apt upgrade error when connecting to fr.archive.ubuntu.com


apt-get

Recently, when trying to upgrade my tiny Ubuntu Server, got this error:

Failed to fetch http://fr.archive.ubuntu.com/ubuntu/dists/focal-updates/InRelease  Cannot initiate the connection to fr.archive.ubuntu.com:80 (2001:bc8:1600:4:63f:72ff:feaf:a2de). - connect (101: Network is unreachable)

I thought that the issue was related to IPv6, so I disabled it:

nano /etc/sysctl.conf1

Add:

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

Run sysctl -p

Confirm cat /proc/sys/net/ipv6/conf/all/disable_ipv6 It should return 1 (disabled)

This didn’t help (also got error with IPv4)

W: Failed to fetch http://fr.archive.ubuntu.com/ubuntu/dists/focal/InRelease  Could not connect to fr.archive.ubuntu.com:80 (51.158.154.169), connection timed out

So, after doing a ping to fr.archive.ubuntu.com and confirming it’s down, just replaced it with us.archive.ubuntu.com:

nano /etc/apt/sources.list

Finally packages upgrade is running

apt-get update
apt upgrade

Want to see more? See the Posts Archive.