14 Commits

Author SHA1 Message Date
Fundor333
566a323fda Add new syndication JSON files for recent posts
Some checks failed
Cron Github issue / webmentions (push) Successful in 28s
Cron Replay / webmentions (push) Successful in 36s
Build and deploy / Install dependencies (push) Failing after 13s
Build and deploy / Deploy Hugo into GitHub Pages (push) Has been cancelled
Cron Webmentions / webmentions (push) Has been cancelled
Cron Anilist / Anilist (push) Has been cancelled
Cron Appletune / Appletune (push) Has been cancelled
2026-03-30 15:29:47 +02:00
fundor333
655c815934 👾Fetch webmentions
skip-checks: true
2026-03-30 13:24:38 +00:00
Fundor333
aff5d0e55e Enhance formatting of fiber installation description for clarity 2026-03-30 15:23:44 +02:00
Fundor333
cb5ce59d66 Change post date for home automation experiment
Updated the date of the home automation experiment post.
2026-03-30 15:09:34 +02:00
fundor333
f79c0b15f6 Reorganize character image assets
Reorder and rename the character images within `static/Characters/` to update the numerical sequence of the assets.
2026-03-30 14:56:21 +02:00
Fundor333
073eaa8018 Update dependencies and remove unused image assets 2026-03-30 14:56:21 +02:00
Fundor333
b778275e86 Refactor code structure for improved readability and maintainability 2026-03-30 14:56:21 +02:00
Fundor333
f1e4301531 Add images for home automation experiment
- Added 'nope.gif' to illustrate a concept in the home automation project.
- Added 'raspberry.jpg' as a visual reference for the Raspberry Pi setup.
2026-03-30 14:56:21 +02:00
fundor333
e3a3356ef3 Star of the post 2026-03-30 14:56:20 +02:00
fundor333
0d1c1a79e6 👾Generate Weekly
skip-checks: true
2026-03-30 00:02:08 +00:00
Fundor333
0067273831 Merge pull request #120 from fundor333/dependabot/github_actions/actions/cache-5.0.4
Bump actions/cache from 5.0.3 to 5.0.4
2026-03-29 23:36:28 +02:00
Fundor333
2cfe219898 Merge branch 'release/new_fonts' into main 2026-03-29 23:35:36 +02:00
fundor333
38bb41a52a Update character assets and add matplotlib dependency
Re-indexes character image files in the static directory and adds matplotlib to the project dependencies to support font and image processing.
2026-03-29 23:35:17 +02:00
dependabot[bot]
68a6ee1e39 Bump actions/cache from 5.0.3 to 5.0.4
Bumps [actions/cache](https://github.com/actions/cache) from 5.0.3 to 5.0.4.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v5.0.3...v5.0.4)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-version: 5.0.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-23 13:53:02 +00:00
63 changed files with 271 additions and 69 deletions

View File

@@ -49,7 +49,7 @@ jobs:
submodules: recursive
- name: Cache node modules
uses: actions/cache@v5.0.3
uses: actions/cache@v5.0.4
env:
cache-name: cache-node-modules-v1
with:
@@ -81,7 +81,7 @@ jobs:
timezoneMacos: Europe/Rome
- name: Cache built website
uses: actions/cache@v5.0.3
uses: actions/cache@v5.0.4
env:
cache-name: cache-website-v1
with:

View File

@@ -48,3 +48,9 @@ strong {
font-weight: 400;
font-size: 14px;
}
.footnotes {
p {
margin: 0;
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 MiB

View File

@@ -1,37 +0,0 @@
---
title: "And Now I Start Tinkering With Hardware"
date: 2025-06-02T00:21:52+02:00
draft: true
feature_link: "https://www.midjourney.com/home/"
feature_text: "by IA Midjourney"
description: Some idea to start some software-hardware software
isStarred: false
tags:
- hacking
- coding
- micropython
categories:
- tinkering
images:
keywords:
series:
reply:
repost:
like:
rsvp:
bookmark:
comments:
host: mastodon.social
username: fundor333
id:
---
[Programming hardware displays the easy way - using MicroPython and LVGL](https://2025.pycon.it/en/event/programming-hardware-displays-the-easy-way-using-micropython-and-lvgl)
[Buying a Seven Year Old Refurbished Kobo eReader](https://eclecticpassions.net/blog/refurbished-ereader-kobo-aura-one/)
[SSH into KOreader (Kobo eReader) from macOS](https://www.burgeonlab.com/2024/ssh-into-koreader-kobo-ereader-from-macos/)
[Booting DietPi from SSD on a Raspberry Pi 4B 8GB](https://www.burgeonlab.com/2023/booting-dietpi-from-ssd-on-a-raspberry-pi-4b-8gb/)
nh

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 MiB

View File

@@ -1,23 +1,182 @@
---
title: "Starting My Home Automation Experiment"
date: 2026-03-29T20:46:01+02:00
draft: true
feature_link: "https://www.midjourney.com/home/"
feature_text: "by IA Midjourney"
description: "I am starting a Home Automation in my home and this is how I start it"
title: Starting My Home Automation Experiment
date: 2026-03-30 08:46:01+02:00
feature_link: https://www.midjourney.com/home/
feature_text: by IA Midjourney
description: I am starting a Home Automation in my home and this is how I start it
tags:
- home-automation
- hacking
- self-hosting
- raspberry-pi
- home-assistant
categories:
- tinkering
series:
- My Home Automation Lab
syndication:
- https://mastodon.social/@fundor333/116318298830055707
comments:
host: mastodon.social
username: fundor333
id: '116318298830055707'
---
And some time ago I installed the Fiber[^1] in my home and I want to use in the best way, so I start to rework all my local network and I think about adding some home automation.
And some time ago I installed the __*FIBER*__[^1] in my home and I want to use in the best way, so I start to rework all my local network and I think about adding some home automation.
[^1]: I pay a company to install it and clean after.
[^1]: I pay a company to install it and I clean after.
{{< xkcd 1966 >}}
{{< xkcd 1931 >}}
## What do I need?
First I search for understand what I need to have for build my personal home automation. So serching on the web I found I need:
- A brain/core/server for coordinate all the stuffs
- A software for the brain, for the automation and other stuff
- A router for adding the brain to the network for update and other stuff
- Dongle/sensor/tech for connectivity with the sensors and smart stuff (one for protocol)
- The smart stuff (light bulb, sensor, timer, endpoint api...)
So I need to choose which protocol I want in my home... And I don't know...
So I change the point of view:
- I want to use good smart stuff but I don't want to pay too much
- I want something Open Source so I am not bind to a company
- I want something offline or/and on MY HOME SERVER
### The protocols
Searching for the protocols I choose Thread[^thread-standard] and Zigbee[^zigbee].
One reason is because they are the most used protocol for communication and more easy to find online (Amazon) and offline (Ikea and othe local shop).
For starting I will implement only Thread because the more easy tech for me are all Matter over Thread so I start with Thread.
From the infographic I found, I need to implement Matter[^matter-standard] also because Matter is the top stuff for an Home Assistant.
![Matter Thread Infographic ](matter_thread_infographic.png)
[^matter-standard]: [Matter Standard](https://csa-iot.org/all-solutions/matter/)
[^thread-standard]: [Thread Standard](https://threadgroup.org/)
[^zigbee]: [Zigbee Standard](https://csa-iot.org/all-solutions/zigbee/)
### The software
Now I want a software, Open Source, which I can support Thread and Matter (and also Zigbee) and I found a software (Open Source) wich support all I need: Home Assistant[^home-assistant].
It support Matter[^matter-home-assistant], Thread[^thread-home-assistant] and Zigbee[^zigbee-home-automation] and I can put it in a RaspberryPi or other server.
[^home-assistant]: [Home Assistant](https://www.home-assistant.io/)
[^matter-home-assistant]: [Home Assistant Matter](https://www.home-assistant.io/integrations/matter/)
[^thread-home-assistant]: [Home Assistant Thread](https://www.home-assistant.io/integrations/thread/)
[^zigbee-home-automation]: [Zigbee Home Automation](https://www.home-assistant.io/integrations/zha/)
## Hardware
So I start to make a list of what I have and what I need.
Some things I buy online, some things come from some tech market and some come form the shoes box of my old stuff...
I only write about the real things but if I use cable or other "standard stuff" I don't write about it.
So yes I bought some usb extention and some network cable but they aren't important for this post.
### Core/Brain Stuff
First I need the Brain for the project
![Brain](ABnormal_GIF.gif)
From what I read in the Home Assistant[^home-assistant] documentation I need some type of server with some gadget connected to them.
So I search and got a RaspberryPi 4B[^raspberry].
![Raspberry](raspberry.jpg)
[^raspberry]: [RaspberryPi 4B](https://www.raspberrypi.com/products/raspberry-pi-4-model-b/)
I also bought a microSD with 64GB of memory (I am on a budget for this project) as an Hard Disk for the "server".
Searching in my closet and in some shoes boxes I found a case[^case] for RaspberryPi with active cooling system (and LGB light)
[^case]: [Raspberry Pi 4B Case from Owootecc](https://www.amazon.it/dp/B07YJGWPQL)
So I flash the microSD with the Home Assistant software. Thanks to the Raspberry Pi Software[^iso] choosing the right iso and flash it in the SD was a walk in the park.
[^iso]: [Raspberry Pi software](https://www.raspberrypi.com/software/)
After the flashing I set it up and add to my local network and check for update.
So the brain is ready!
### Sensor form Ikea
I went to Ikea for some stuff and some Swedish meatballs and I came back with an Ikea Alpstuga[^ikea].
![Ikea Alpstuga](ikea.jpg)
It is a timer, air sensor with CO2 and PM2.5 sensor and output all of them and an Air Quality value.
[^ikea]: [Ikea Alpstuga](https://www.ikea.com/it/it/p/alpstuga-sensore-della-qualita-dellaria-smart-50604187/)
The only bad thing about it is the color but for the price I don't complain.
So after coming home I found it didn't work.
![Nope](nope.gif)
As is the RaspberryPi 4B do not support Thread or Zigbee without some type of specialized antenna...
I was understanding that the software use the wifi module of the RaspberryPi as a Zigbee/Thread emitter/reciver but no so I search on Amazon for the dongle for Thread.
### Antenna
I bought a Usb dongle[^antenna] for connecting the RaspberryPi and the other gadget in the house (for now only the Ikea one)
[^antenna]: [SONOFF Zigbee 3.0 USB Dongle Plus MG24](https://www.amazon.it/dp/B0FMJD288B)
![Antenna](antenna.jpg)[^antenna]
This antenna is a little special: you can flash it for changing it form Zigbee to Thread and vice versa so I start to config it.
#### Setup the Antenna
First I flash the antenna. I need to port from Zigbee to Thread[^flash_firmware] and with the online tool it was so easy I thought I did something wrong.
[^flash_firmware]: [Sonoff dongle flasher/](https://dongle.sonoff.tech/sonoff-dongle-flasher/)
After this I connect the dongle and start to config the Home Assistant.
First I need to have installed Thread from "Add Integration" and it showed an empty list of device. This is correct because I didn't have a Thread router installed.
So we add a OpenRouter. How? Installing from the officials app of mine Home Assistant.
![Open Thread on a menu](Thread.png)
After this I edit the config in this way (the device was auto-finded) and I set this for my device. [^note]
[^note]: This config work for me, it can not work for you
![Open Thread config](openThread.png)
For checking if all was ok I went and seach in the log for the OpenThread for a specific line.
![Log Antenna](log-antenna.png)
After this I went to check if the Thread integration showed the Ikea sensor and it didn't show... Why? Because I am STUPID.
#### Setup the last little things
Alpstuga (my air sensor) is not Thread, is Matter over Thread, so I need to add the thing with the Matter integration. And with this last integration the system worked!
![Its alive](its-alive.gif)
I am happy of this system? No. Why? I have the wrong time on the Alpstuga.
This thing I don't understand so I search online for understand how can I fix the time on the device.
I find this is a common problem with the Alpstuga device and someone made a Hacs[^hacs] plugin[^matter-time-synk] wich add a cron and a button for sync the Home Assistant's clock. I also add the plugin for integrate my Playstation Network in my Home Assistant[^psnetwork].
[^hacs]: [Home Assistant Hacs](https://www.hacs.xyz/)
[^matter-time-synk]: [Matter time synk](https://github.com/Loweack/Matter-Time-Sync/)
[^psnetwork]: [PlayStation Network Home Assistant](https://www.home-assistant.io/integrations/playstation_network/)
## Conclusion
For now this is what I had done but I want to have automation (for now I don't have any) and some stuff for lower the gas bill so there will be more post about my smart home.

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 326 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 140 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 MiB

View File

@@ -0,0 +1,33 @@
---
title: "Week Note Nº 14/2026"
date: "2026-03-30T09:00:00+01:00"
lastmod: "2026-03-30T09:00:00+01:00"
tags: ["weeknote"]
type : "weeknote"
summary: "Personal notes for week 14 of 2026"
description: "Personal notes for week 14 of 2026"
draft: False
---
## New post from my blog
- [Week Note Nº 13/2026](https://fundor333.com/weeknotes/2026/13/?utm_source=fundor333.com)
## My Links
- [My blog](https://www.fundor333.com)
- [My newsletter](https://newsletter.digitaltearoom.com)
- [Support me](https://ko-fi.com/fundor333)
## Anime and manga's stats
### **Anime**
- Total anime watched: **105**
- Total anime watched time: **706h 22m**
- Total anime watched episodes: **1708**
- Top 5 anime genres: 🏷️ Action, 🏷️ Adventure, 🏷️ Fantasy, 🏷️ Supernatural, 🏷️ Drama
### **Manga**
- Total manga read: **269**
- Total manga read chapters: **27385**
- Total manga read volumes: **612**
- Top 5 manga genres: 🏷️ Fantasy, 🏷️ Action, 🏷️ Adventure, 🏷️ Comedy, 🏷️ Drama

View File

@@ -0,0 +1,7 @@
{
"syndication": [
"https://bsky.app/profile/fundor333.bsky.social/post/3mdgrz4agzg23",
"https://mastodon.social/@fundor333/115969377077180224"
],
"source": "https://fundor333.com/micro/2026/01/making-htmx-stuffs/"
}

View File

@@ -0,0 +1,6 @@
{
"syndication": [
"https://mastodon.social/@fundor333/115963459189684445"
],
"source": "https://fundor333.com/post/2026/why-do-i-disinstall-poetry-and-use-only-uv-/"
}

View File

@@ -0,0 +1,7 @@
{
"syndication": [
"https://mastodon.social/@fundor333/116318298830055707",
"https://news.ycombinator.com/item?id=47573957"
],
"source": "https://fundor333.com/post/2026/starting-my-home-automation-experiment/"
}

9
package-lock.json generated
View File

@@ -147,7 +147,6 @@
}
],
"license": "MIT",
"peer": true,
"dependencies": {
"baseline-browser-mapping": "^2.9.0",
"caniuse-lite": "^1.0.30001759",
@@ -163,9 +162,9 @@
}
},
"node_modules/caniuse-lite": {
"version": "1.0.30001781",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001781.tgz",
"integrity": "sha512-RdwNCyMsNBftLjW6w01z8bKEvT6e/5tpPVEgtn22TiLGlstHOVecsX2KHFkD5e/vRnIE4EGzpuIODb3mtswtkw==",
"version": "1.0.30001782",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001782.tgz",
"integrity": "sha512-dZcaJLJeDMh4rELYFw1tvSn1bhZWYFOt468FcbHHxx/Z/dFidd1I6ciyFdi3iwfQCyOjqo9upF6lGQYtMiJWxw==",
"funding": [
{
"type": "opencollective",
@@ -514,7 +513,6 @@
}
],
"license": "MIT",
"peer": true,
"dependencies": {
"nanoid": "^3.3.11",
"picocolors": "^1.1.1",
@@ -753,7 +751,6 @@
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
"integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
"license": "MIT",
"peer": true,
"engines": {
"node": ">=12"
},

View File

@@ -16,26 +16,48 @@ click==8.3.1
# weeknotebot
colorama==0.4.6 ; sys_platform == 'win32'
# via click
contourpy==1.3.3
# via matplotlib
cycler==0.12.1
# via matplotlib
feedparser==6.0.12
# via
# fundor333-github-io
# weeknotebot
fonttools==4.62.1
# via matplotlib
idna==3.11
# via requests
kiwisolver==1.5.0
# via matplotlib
lxml==6.0.2
# via fundor333-github-io
markdown-it-py==4.0.0
# via rich
marshmallow==3.26.2
# via weeknotebot
matplotlib==3.10.8
# via fundor333-github-io
mdurl==0.1.2
# via markdown-it-py
numpy==2.4.4
# via
# contourpy
# matplotlib
packaging==26.0
# via marshmallow
# via
# marshmallow
# matplotlib
pillow==12.1.1
# via fundor333-github-io
# via
# fundor333-github-io
# matplotlib
pygments==2.20.0
# via rich
pyparsing==3.3.2
# via matplotlib
python-dateutil==2.9.0.post0
# via matplotlib
python-dotenv==1.2.2
# via fundor333-github-io
python-frontmatter==1.1.0
@@ -56,6 +78,8 @@ sgmllib3k==1.0.0
# via feedparser
shellingham==1.5.4
# via typer
six==1.17.0
# via python-dateutil
soupsieve==2.8.3
# via beautifulsoup4
typer==0.24.1

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
{"Target":"add.min.855eeee13cf87b04c5f2dc5d26fbb0ee43b90357d4d210186eebe753d1055101.css","MediaType":"text/css","Data":{"Integrity":"sha256-hV7u4Tz4ewTF8txdJvuw7kO5A1fU0hAYbuvnU9EFUQE="}}
{"Target":"add.min.ccd2b4b9ceb675fabadad53f60dfdfc15f8c9ac2e9f43bdadc77c75132bd005f.css","MediaType":"text/css","Data":{"Integrity":"sha256-zNK0uc62dfq62tU/YN/fwV+MmsLp9Dva3HfHUTK9AF8="}}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 245 KiB

After

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 231 KiB

After

Width:  |  Height:  |  Size: 140 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 165 KiB

After

Width:  |  Height:  |  Size: 258 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 370 KiB

After

Width:  |  Height:  |  Size: 133 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 110 KiB

After

Width:  |  Height:  |  Size: 471 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 301 KiB

After

Width:  |  Height:  |  Size: 231 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 140 KiB

After

Width:  |  Height:  |  Size: 142 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 490 KiB

After

Width:  |  Height:  |  Size: 386 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 158 KiB

After

Width:  |  Height:  |  Size: 305 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 204 KiB

After

Width:  |  Height:  |  Size: 117 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 133 KiB

After

Width:  |  Height:  |  Size: 370 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 199 KiB

After

Width:  |  Height:  |  Size: 244 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 258 KiB

After

Width:  |  Height:  |  Size: 317 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 386 KiB

After

Width:  |  Height:  |  Size: 161 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 140 KiB

After

Width:  |  Height:  |  Size: 245 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 129 KiB

After

Width:  |  Height:  |  Size: 128 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 317 KiB

After

Width:  |  Height:  |  Size: 155 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 128 KiB

After

Width:  |  Height:  |  Size: 500 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 KiB

After

Width:  |  Height:  |  Size: 199 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 298 KiB

After

Width:  |  Height:  |  Size: 301 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 265 KiB

After

Width:  |  Height:  |  Size: 530 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 322 KiB

After

Width:  |  Height:  |  Size: 129 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 471 KiB

After

Width:  |  Height:  |  Size: 204 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 155 KiB

After

Width:  |  Height:  |  Size: 174 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.0 KiB

After

Width:  |  Height:  |  Size: 265 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 500 KiB

After

Width:  |  Height:  |  Size: 140 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 530 KiB

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 305 KiB

After

Width:  |  Height:  |  Size: 298 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 470 KiB

After

Width:  |  Height:  |  Size: 180 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 142 KiB

After

Width:  |  Height:  |  Size: 490 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 174 KiB

After

Width:  |  Height:  |  Size: 470 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 338 KiB

After

Width:  |  Height:  |  Size: 165 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 117 KiB

After

Width:  |  Height:  |  Size: 338 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 180 KiB

After

Width:  |  Height:  |  Size: 322 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 244 KiB

After

Width:  |  Height:  |  Size: 110 KiB

22
uv.lock generated
View File

@@ -367,19 +367,19 @@ wheels = [
[[package]]
name = "fonttools"
version = "4.62.0"
version = "4.62.1"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/5a/96/686339e0fda8142b7ebed39af53f4a5694602a729662f42a6209e3be91d0/fonttools-4.62.0.tar.gz", hash = "sha256:0dc477c12b8076b4eb9af2e440421b0433ffa9e1dcb39e0640a6c94665ed1098", size = 3579521, upload-time = "2026-03-09T16:50:06.217Z" }
sdist = { url = "https://files.pythonhosted.org/packages/9a/08/7012b00a9a5874311b639c3920270c36ee0c445b69d9989a85e5c92ebcb0/fonttools-4.62.1.tar.gz", hash = "sha256:e54c75fd6041f1122476776880f7c3c3295ffa31962dc6ebe2543c00dca58b5d", size = 3580737, upload-time = "2026-03-13T13:54:25.52Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/ab/9d/7ad1ffc080619f67d0b1e0fa6a0578f0be077404f13fd8e448d1616a94a3/fonttools-4.62.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:22bde4dc12a9e09b5ced77f3b5053d96cf10c4976c6ac0dee293418ef289d221", size = 2870004, upload-time = "2026-03-09T16:48:50.837Z" },
{ url = "https://files.pythonhosted.org/packages/4d/8b/ba59069a490f61b737e064c3129453dbd28ee38e81d56af0d04d7e6b4de4/fonttools-4.62.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7199c73b326bad892f1cb53ffdd002128bfd58a89b8f662204fbf1daf8d62e85", size = 2414662, upload-time = "2026-03-09T16:48:53.295Z" },
{ url = "https://files.pythonhosted.org/packages/8c/8c/c52a4310de58deeac7e9ea800892aec09b00bb3eb0c53265b31ec02be115/fonttools-4.62.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d732938633681d6e2324e601b79e93f7f72395ec8681f9cdae5a8c08bc167e72", size = 5032975, upload-time = "2026-03-09T16:48:55.718Z" },
{ url = "https://files.pythonhosted.org/packages/0b/a1/d16318232964d786907b9b3613b8409f74cf0be2da400854509d3a864e43/fonttools-4.62.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:31a804c16d76038cc4e3826e07678efb0a02dc4f15396ea8e07088adbfb2578e", size = 4988544, upload-time = "2026-03-09T16:48:57.715Z" },
{ url = "https://files.pythonhosted.org/packages/b2/8d/7e745ca3e65852adc5e52a83dc213fe1b07d61cb5b394970fcd4b1199d1e/fonttools-4.62.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:090e74ac86e68c20150e665ef8e7e0c20cb9f8b395302c9419fa2e4d332c3b51", size = 4971296, upload-time = "2026-03-09T16:48:59.678Z" },
{ url = "https://files.pythonhosted.org/packages/e6/d4/b717a4874175146029ca1517e85474b1af80c9d9a306fc3161e71485eea5/fonttools-4.62.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:8f086120e8be9e99ca1288aa5ce519833f93fe0ec6ebad2380c1dee18781f0b5", size = 5122503, upload-time = "2026-03-09T16:49:02.464Z" },
{ url = "https://files.pythonhosted.org/packages/cb/4b/92cfcba4bf8373f51c49c5ae4b512ead6fbda7d61a0e8c35a369d0db40a0/fonttools-4.62.0-cp312-cp312-win32.whl", hash = "sha256:37a73e5e38fd05c637daede6ffed5f3496096be7df6e4a3198d32af038f87527", size = 2281060, upload-time = "2026-03-09T16:49:04.385Z" },
{ url = "https://files.pythonhosted.org/packages/cd/06/cc96468781a4dc8ae2f14f16f32b32f69bde18cb9384aad27ccc7adf76f7/fonttools-4.62.0-cp312-cp312-win_amd64.whl", hash = "sha256:658ab837c878c4d2a652fcbb319547ea41693890e6434cf619e66f79387af3b8", size = 2331193, upload-time = "2026-03-09T16:49:06.598Z" },
{ url = "https://files.pythonhosted.org/packages/9c/57/c2487c281dde03abb2dec244fd67059b8d118bd30a653cbf69e94084cb23/fonttools-4.62.0-py3-none-any.whl", hash = "sha256:75064f19a10c50c74b336aa5ebe7b1f89fd0fb5255807bfd4b0c6317098f4af3", size = 1152427, upload-time = "2026-03-09T16:50:04.074Z" },
{ url = "https://files.pythonhosted.org/packages/47/d4/dbacced3953544b9a93088cc10ef2b596d348c983d5c67a404fa41ec51ba/fonttools-4.62.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:90365821debbd7db678809c7491ca4acd1e0779b9624cdc6ddaf1f31992bf974", size = 2870219, upload-time = "2026-03-13T13:52:53.664Z" },
{ url = "https://files.pythonhosted.org/packages/66/9e/a769c8e99b81e5a87ab7e5e7236684de4e96246aae17274e5347d11ebd78/fonttools-4.62.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:12859ff0b47dd20f110804c3e0d0970f7b832f561630cd879969011541a464a9", size = 2414891, upload-time = "2026-03-13T13:52:56.493Z" },
{ url = "https://files.pythonhosted.org/packages/69/64/f19a9e3911968c37e1e620e14dfc5778299e1474f72f4e57c5ec771d9489/fonttools-4.62.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9c125ffa00c3d9003cdaaf7f2c79e6e535628093e14b5de1dccb08859b680936", size = 5033197, upload-time = "2026-03-13T13:52:59.179Z" },
{ url = "https://files.pythonhosted.org/packages/9b/8a/99c8b3c3888c5c474c08dbfd7c8899786de9604b727fcefb055b42c84bba/fonttools-4.62.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:149f7d84afca659d1a97e39a4778794a2f83bf344c5ee5134e09995086cc2392", size = 4988768, upload-time = "2026-03-13T13:53:02.761Z" },
{ url = "https://files.pythonhosted.org/packages/d1/c6/0f904540d3e6ab463c1243a0d803504826a11604c72dd58c2949796a1762/fonttools-4.62.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:0aa72c43a601cfa9273bb1ae0518f1acadc01ee181a6fc60cd758d7fdadffc04", size = 4971512, upload-time = "2026-03-13T13:53:05.678Z" },
{ url = "https://files.pythonhosted.org/packages/29/0b/5cbef6588dc9bd6b5c9ad6a4d5a8ca384d0cea089da31711bbeb4f9654a6/fonttools-4.62.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:19177c8d96c7c36359266e571c5173bcee9157b59cfc8cb0153c5673dc5a3a7d", size = 5122723, upload-time = "2026-03-13T13:53:08.662Z" },
{ url = "https://files.pythonhosted.org/packages/4a/47/b3a5342d381595ef439adec67848bed561ab7fdb1019fa522e82101b7d9c/fonttools-4.62.1-cp312-cp312-win32.whl", hash = "sha256:a24decd24d60744ee8b4679d38e88b8303d86772053afc29b19d23bb8207803c", size = 2281278, upload-time = "2026-03-13T13:53:10.998Z" },
{ url = "https://files.pythonhosted.org/packages/28/b1/0c2ab56a16f409c6c8a68816e6af707827ad5d629634691ff60a52879792/fonttools-4.62.1-cp312-cp312-win_amd64.whl", hash = "sha256:9e7863e10b3de72376280b515d35b14f5eeed639d1aa7824f4cf06779ec65e42", size = 2331414, upload-time = "2026-03-13T13:53:13.992Z" },
{ url = "https://files.pythonhosted.org/packages/fd/ba/56147c165442cc5ba7e82ecf301c9a68353cede498185869e6e02b4c264f/fonttools-4.62.1-py3-none-any.whl", hash = "sha256:7487782e2113861f4ddcc07c3436450659e3caa5e470b27dc2177cade2d8e7fd", size = 1152647, upload-time = "2026-03-13T13:54:22.735Z" },
]
[[package]]