Huey
October 23, 2024

Hugo Peixoto's blog

Status update, January to March 2024

If you enjoy my work, consider sponsoring me so I can keep on doing this full time: https://github.com/sponsors/hugopeixoto ANSOL We’ve started writing articles for a paper publication, PCGuia. I personally wrote two opinion columns, one about Router Freedom and one with a few suggestions for the new goverment (a shorter version of ANSOL’s article on the same topic). FOSDEM happened, and travelled there on ANSOL’s behalf. We had a few meetings with Portuguese Members of the European Parliament, joined the...

7 months ago

Hugo Peixoto's blog

Status update, January to March 2024

Published on March 24, 2024 Table of contents ANSOL Porto Codes Cyberscore If you enjoy my work, consider sponsoring me so I can keep on doing this full time: https://github.com/sponsors/hugopeixoto ANSOL We’ve started writing articles for a paper publication, PCGuia. I personally wrote two opinion columns, one about Router Freedom and one with a few suggestions for the new goverment (a shorter version of ANSOL’s article on the same topic). FOSDEM happened, and travelled there on ANSOL’s behalf. We had...

7 months ago

Hugo Peixoto's blog

Reflections on 2023

If you enjoy my work, consider sponsoring me so I can keep on doing this full time: https://github.com/sponsors/hugopeixoto It’s 04:00 and I can’t sleep, so here’s an update. I stopped writing monthly updates a year ago, so this is an attempt at making up for it. ANSOL Most of my time was split on ANSOL tasks. I won’t get into details on all of the tasks, but did a bunch of things: met with Portuguese Members of the European Parliament...

10 months ago

Hugo Peixoto's blog

More Fresh shenanigans

If you enjoy my work, consider sponsoring me so I can keep on doing this full time: https://github.com/sponsors/hugopeixoto Pokéclicker is one of those incremental games where you mostly idle and barely play. I’ve started playing this thanks to Cyberscore. There are thousands of charts in the game, and I don’t like to work to submit things manually, so I started automating it. Usually I’d implement it in the OCR system we have in place, but taking 7k screenshots manually didn’t...

over 1 year ago

Hugo Peixoto's blog

Status update, January and February 2023

If you enjoy my work, consider sponsoring me so I can keep on doing this full time: https://github.com/sponsors/hugopeixoto For the second half of January, I focused on getting ready for ANSOL meetings with the Portuguese Members of the European Parliament (MEPs). During the first week of February, I was in Brussels having meetings and attending FOSDEM. This week, I attended the Mini Debconf in Lisbon. FOSDEM / Brussels My visit to Brussels was mostly as a representative of ANSOL. We...

over 1 year ago

Hugo Peixoto's blog

Printer certificate shenanigans

If you enjoy my work, consider sponsoring me so I can keep on doing this full time: https://github.com/sponsors/hugopeixoto After moving, my computer and printer stopped talking to each other. Obviously, I only noticed the issue when I was in a hurry to print something. Today I finally stopped to fix it. CUPS would detect the printer, and I was able to queue the job, but as soon as the job started processing, it would fail and the printer would enter...

over 1 year ago

Hugo Peixoto's blog

Status update, November and December 2022

If you enjoy my work, consider sponsoring me so I can keep on doing this full time: https://github.com/sponsors/hugopeixoto After moving and unpacking, I was away from the computer for a couple of weeks. Advent of code I didn’t have much time to participate in Advent of Code this year, but I managed to solve most of them by now: https://github.com/hugopeixoto/aoc2022. I was having trouble solving day 19 part 2, so I’d like to give it another try soon. Cyberscore Cyberscore...

almost 2 years ago

Hugo Peixoto's blog

Status update, October 2022

If you enjoy my work, consider sponsoring me so I can keep on doing this full time: https://github.com/sponsors/hugopeixoto Another late update — I was busy with stuff during the first half of October. I’m moving places again, so until December I’ll probably be busy packing and moving things around. Oh, and I’m on the fediverse now: @hugopeixoto@ciberlandia.pt. Porto Codes During this year’s hacktoberfest we organized contributing session on Significa’s office. We had around a dozen folks show up, with some...

almost 2 years ago

Hugo Peixoto's blog

Status update, September 2022

If you enjoy my work, consider sponsoring me so I can keep on doing this full time: https://github.com/sponsors/hugopeixoto This month I was mostly focused on organizing events. I was the AV team for a conference in Lisbon and the organizer of another one in Porto. ANSOL I organized an event celebrating Software Freedom Day 2022. This included finding speakers, designing the poster, finding and booking a dining place, spreading the word, and recording and editing the videos. The presentations are...

about 2 years ago

Hugo Peixoto's blog

My conference livestreaming setup at GambiConf

If you enjoy my work, consider sponsoring me so I can keep on doing this full time: https://github.com/sponsors/hugopeixoto I volunteered to be the AV team at GambiConf, an in-person conference in Lisbon. Some things didn’t go exactly as planned, so here’s a summary of how things went. The original plan We wanted to capture the speaker’s voice, computer screen, and have a camera pointed at the stage. We also wanted to livestream the whole thing. The organizers told me the...

about 2 years ago

Hugo Peixoto's blog

Status update, July and August 2022

If you enjoy my work, consider sponsoring me so I can keep on doing this full time: https://github.com/sponsors/hugopeixoto I’m grouping together July and August, since July was mostly hyper-focusing on a new silly project. Cyberscore Big news: Cyberscore is now Free Software! During August, I finally took the final steps to open source the project’s codebase: resetting all the passwords and hardening the server a bit. We have some passwords in the git history, so instead of messing with git-filter-branch,...

about 2 years ago

Hugo Peixoto's blog

Upgrading my backup server's hard drive

If you enjoy my work, consider sponsoring me so I can keep on doing this full time: https://github.com/sponsors/hugopeixoto Earlier this year, I setup a server to host offsite backups for a bunch of projects. The hardware is a donated Acer AspireRevo, which comes with a 320GB 2.5″ hard drive. This was good enough for 6 months, but in June it hit 75% capacity, so it was time to upgrade it. I got a 4TB hard drive and delayed making the...

about 2 years ago

Hugo Peixoto's blog

Status update, June 2022

If you enjoy my work, consider sponsoring me so I can keep on doing this full time: https://github.com/sponsors/hugopeixoto Personal Infrastructure My backup server (which stores backups for cyberscore.me.uk and other websites) is at 73% of disk capacity. It’s has a single HDD of 300GB, so I’m replacing it with a 4TB HDD. The server only has one disk bay, so replacing it will be a bit troublesome, but I’ll need to get it done soon. Cyberscore I had to fix...

over 2 years ago

Hugo Peixoto's blog

Status update, May 2022

If you enjoy my work, consider sponsoring me so I can keep on doing this full time: https://github.com/sponsors/hugopeixoto Personal infrastructure I started the month by moving away from PTISP to a slightly cheaper host with IPv6 support. That particular server was hosting a bunch of dokku web applications, most of which could be shut down. The only one that survived was my Miniflux installation. Instead of serving it through dokku, I’m now using podman. I’ve also decided, for some reason...

over 2 years ago

Hugo Peixoto's blog

Status update, April 2022

If you enjoy my work, consider sponsoring me so I can keep on doing this full time: https://github.com/sponsors/hugopeixoto ANSOL I wrote the quarterly newsletter describing our activities during Q1. This week I also helped with translating and publishing an open letter on the universal right to install any software on any device. You can read the full letter on FSFE’s website, and check ANSOL’s statement on our website. Pokémon things I restarted the idea of tracking my Pokémon TCG collection....

over 2 years ago

Hugo Peixoto's blog

Status update, March 2022

If you enjoy my work, consider sponsoring me so I can keep on doing this full time: https://github.com/sponsors/hugopeixoto ANSOL I have joined the board of ANSOL for the next two years. For the first few months I’ll be trying to improve/simplify some of our processes to speed up new memberships and free up some of our time to work on actual issues. One of our infrastructure servers is setup using ansible and LXD containers, so I’ve been re-learning the former...

over 2 years ago

Hugo Peixoto's blog

Rust WebAssembly OCR experiments

If you enjoy my work, consider sponsoring me so I can keep on doing this full time: https://github.com/sponsors/hugopeixoto Introduction After rewriting Cyberscore, I wanted to actually submit some scores to the website. The latest game I’ve been playing is Pokémon Legends: Arceus, which has around 3000 score charts on Cyberscore. I didn’t feel like submitting that many records manually, so I started working on a tool to automate it instead. Most of these scores come from the pokédex. Each pokémon...

over 2 years ago

Hugo Peixoto's blog

Status update, February 2022

If you enjoy my work, consider sponsoring me so I can keep on doing this full time: https://github.com/sponsors/hugopeixoto Time for another monthly update. I’m moving these to the middle of the month. ANSOL This was a busy month for ANSOL. I took the lead in writing an analysis of the parties’ programmes for the 2022 Portuguese legislative election, focusing on free software and digital rights issues. This got some attention and media coverage (SAPO Tek, PCGuia, and TSF). I also...

over 2 years ago

Hugo Peixoto's blog

Status update for January 2022 (and the last two months)

If you enjoy my work, consider sponsoring me so I can keep on doing this full time: https://github.com/sponsors/hugopeixoto Happy new year everyone! I skipped a couple of monthly updates, so this one will be a bit longer than usual. I couldn’t find the motivation to keep writing these updates since I felt like I had nothing to show, and I also felt like I had the responsibility to spend more time working on the freelancing gig I had taken. After...

almost 3 years ago

Hugo Peixoto's blog

Status update, October 2021

If you enjoy my work, consider sponsoring me so I can keep on doing this full time: https://github.com/sponsors/hugopeixoto I spent most of October focused on ANSOL projects. I also found some time to play around with PeerTube and setup an instance focused on portuguese content: https://viste.pt October accomplishments I edited and published four episodes of Conversas em Código this month (one per week). Let’s see if I can keep up the pace during November. The D3 project was put on...

almost 3 years ago

Hugo Peixoto's blog

Conversas em Código Episode #36 released

I’ve published a new episode of Conversas em Código (in Portuguese): Episode 36: Rails, Rust e Hacktoberfest Neste episódio falamos de desenvolver APIs em Rails e ferramentas da linha de comandos em Rust. Tocamos ainda em C++ no âmbito do Hacktoberfest e algures pelo meio um dos anfitriões partilha a dor de copiar cartões microSD no macOS. See the full episode list here: https://conversas.porto.codes

almost 3 years ago

Hugo Peixoto's blog

Conversas em Código Episode #35 released

I’ve published a new episode of Conversas em Código (in Portuguese): Episode 35: HedgeDoc HedgeDoc é um editor colaborativo de documentos em markdown. Discutimos a sua história confusa, algumas contribuições feitas e qual o futuro do projecto. Também falamos sobre as mudanças no TravisCI que levaram toda a gente a mudar para GitHub Actions. See the full episode list here: https://conversas.porto.codes

about 3 years ago

Hugo Peixoto's blog

Conversas em Código Episode #34 released

I’ve published a new episode of Conversas em Código (in Portuguese): Episode 34: Pôr as contas em dia Esta semana pomos as contas em dia: gestão de contas no Percy e como mitigar ataques de enumeração de contas. Falamos também da ferramenta de lançamento de novas versões de Ember.js. See the full episode list here: https://conversas.porto.codes

about 3 years ago

Hugo Peixoto's blog

Conversas em Código Episode #33 released

I’ve published a new episode of Conversas em Código (in Portuguese): Episode 33: Trabalhos com Sites Estáticos Conversão de Drupal para Hugo, problemas com o Netlify, e uma visita bastidores do lançamento de versões de Ember. Também falamos de algumas novidades do Hacktoberfest e do processo de edição do podcast. See the full episode list here: https://conversas.porto.codes

about 3 years ago

Hugo Peixoto's blog

Status update, September 2021

If you enjoy my work, consider sponsoring me so I can keep on doing this full time: https://github.com/sponsors/hugopeixoto September has been productive. I finished all but one of the tasks I had planned for this month and did some extra stuff. September accomplishments Speak at RustConf 2021. The video, slides, and code are already available. I fixed the cyberscore bugs I mentioned last month. When using the old layout, users change their own profile information, so I migrated everyone to...

about 3 years ago

Hugo Peixoto's blog

Conversas em Código Episode #32 released

I’ve published a new episode of Conversas em Código (in Portuguese): Episode 32: Outubro e Software Livre Outubro está a chegar, e é mês de Software Livre. Neste episódio falamos do Hacktoberfest e de alguns eventos e projectos da ANSOL. See the full episode list here: https://conversas.porto.codes

about 3 years ago

Hugo Peixoto's blog

Conversas em Código Episode #31 released

I’ve published a new episode of Conversas em Código (in Portuguese): Episode 31: Participação na RustConf 2021 Neste episódio falamos sobre a experiência do Peixoto em fazer uma apresentação na RustConf 2021. See the full episode list here: https://conversas.porto.codes

about 3 years ago

Hugo Peixoto's blog

My talk at RustConf 2021 is now available

It’s 14 minutes long, and you can check it out on youtube: Identifying Pokémon Cards Here are some related resources: slides.pdf demo (no sound) source code If you enjoy my work, consider sponsoring me so I can keep on doing this full time: https://github.com/sponsors/hugopeixoto

about 3 years ago

Hugo Peixoto's blog

Status update, August 2021

If you enjoy my work, consider sponsoring me so I can keep on doing this full time: https://github.com/sponsors/hugopeixoto This month I took a break from Cyberscore to work on other projects. I was all in on Pokémon stuff. I also took a week of vacations, which is why this update is a bit late. August accomplishments I worked on extracting the pokédex flavor texts from the 3DS game ROMs (https://github.com/hugopeixoto/ctr-rs) and wrote a blog post of the process. Before working...

about 3 years ago

Hugo Peixoto's blog

Data-mining 3DS Pokémon games

If you enjoy my work, consider sponsoring me so I can keep on doing this full time: https://github.com/sponsors/hugopeixoto I’ve spent the last couple of weeks learning how to data mine Nintendo 3DS Pokémon games (data-mine as in “extract information from”, not “discover patterns from large amounts of data”). I’m not even sure how to explain how I got here, so I guess I’ll start from the beginning. Pkmncards and OCR Last month I worked on detecting pokémon TCG cards using...

about 3 years ago

Hugo Peixoto's blog

Status update, July 2021

If you enjoy my work, consider sponsoring me so I can keep on doing this full time: https://github.com/sponsors/hugopeixoto I spent most of July playing with computer vision stuff in rust, but also managed to get some work done on Cyberscore. I didn’t touch F-Zero Central this month. Cyberscore The biggest change this month on cyberscore is that we’re now email-capable again! It took a while to get AWS SES to grant us production access, but it’s working. It also meant...

about 3 years ago

Hugo Peixoto's blog

Status update, June 2021

If you enjoy my work, consider sponsoring me so I can keep on doing this full time: https://github.com/sponsors/hugopeixoto F-Zero Central After bringing the website back up, I worked on making it possible for existing players to reset their passwords, logging in, and submitting new times. Time submission took a bit longer than I expected because we have a bunch of tables that cache several scores and rankings that needed to be recalculated. This used to be done as a cron...

over 3 years ago

Hugo Peixoto's blog

Status update, May 2021

If you enjoy my work, consider sponsoring me so I can keep on doing this full time: https://github.com/sponsors/hugopeixoto Having finished moving, I was able to focus on my tech things again. I worked a lot on cyberscore, and I think I accidentally became part of the development team of F-Zero Central. F-Zero Central After last month’s hack, I started rewriting the website, decoupling the scoreboards from the phpbb codebase. I wrote a blog post on the differences between Cyberscore and...

over 3 years ago

Hugo Peixoto's blog

Tale of two sites

If you enjoy my work, consider sponsoring me so I can keep on doing this full time: https://github.com/sponsors/hugopeixoto Last month, two video game related websites, Cyberscore and F-Zero Central, were breached. I wrote about it in last month’s report. I’ve been helping out Cyberscore for a while now, and I started helping the F-Zero Central staff since the hack. These two sites are kind of similar in functionality, but my approach when I started working on them was quite different....

over 3 years ago

Hugo Peixoto's blog

Status update, April 2021

If you enjoy my work, consider sponsoring me so I can keep on doing this full time: https://github.com/sponsors/hugopeixoto Most of my month was spent packing things and moving them to the new place. Unfortunately, this was also the month where two websites that I help maintain were hacked, so I had to deal with that. ink! upgradeability gig During the review process, it came up that the testing process should be automated. I spent a couple of days working on...

over 3 years ago

Hugo Peixoto's blog

Status update, March 2021

If you enjoy my work, consider sponsoring me so I can keep on doing this full time: https://github.com/sponsors/hugopeixoto During March I finished and submitted the ink upgradeability project for review, struggled with linux to play pokémon TCG online, and spent some time looking for a new apartment. ink! upgradeability gig I’ve submitted the project for evaluation, and already got some requests for change: https://github.com/w3f/Grant-Milestone-Delivery/pull/126. I’ll be working to close this during April. Pokémon TCG I casually returned to the pokémon...

over 3 years ago

Hugo Peixoto's blog

Playing Pokémon TCG online using wine, docker, and wayland

If you enjoy my work, consider sponsoring me so I can keep on doing this full time: https://github.com/sponsors/hugopeixoto Back in the early 2000s, I used to play Pokémon TCG (Base to Neo? I don’t think there was any competitive play back then). I remember using a deck built around a neo discovery Kabutops that was wasn’t very good but managed to win some games at the local league. I didn’t touch the TCG again until Sun & Moon came out...

over 3 years ago

Hugo Peixoto's blog

Status update, February 2021

If you enjoy my work, consider sponsoring me so I can keep on doing this full time: https://github.com/sponsors/hugopeixoto Oof, this status update is a bit late. Not sure why I’ve been postponing writing it, but it’s probably because I spent most of the month doing consulting work instead of open source stuff. Cyberscore Some of the issues on our gitlab project mentioned the notifications page: missing pagination, overlapping buttons on mobile, notifications not firing on certain conditions. I started tackling...

over 3 years ago

Hugo Peixoto's blog

Setting up an ink! development environment

This is a [journal] entry. It is longer than usual and more exploratory. It may have no proper conclusion. If you enjoy my work, consider sponsoring me so I can keep on doing this full time: https://github.com/sponsors/hugopeixoto I’m currently working on bringing upgradeability to ink! smart contracts, as part of this grant proposal. This post will contain the steps it took me to get things up and running. The first thing I did was to stop using asdf for rust....

over 3 years ago

Hugo Peixoto's blog

Status update, January 2021

If you enjoy my work, consider sponsoring me so I can keep on doing this full time: https://github.com/sponsors/hugopeixoto I spent the first half of the month deep in Cyberscore’s codebase. I also started working on a couple of consulting gigs. Cyberscore Last month I started rewriting the pages that seem more problematic, either code- or layout-wise. This month I split the user settings page from the user profile page, changed both of their layouts to remove all those scrollbars, and...

over 3 years ago

Hugo Peixoto's blog

More PHP and MySQL findings

If you enjoy my work, consider sponsoring me so I can keep on doing this full time: https://github.com/sponsors/hugopeixoto As I continue to work on Cyberscore, I keep finding new quirks / features in PHP and MySQL. All of the tests below are being run on mysql 5.7, unless otherwise noted. This is the version that’s currently being used by Cyberscore. Maybe one day I’ll be able to migrate this to a recent MariaDB version. Alternative INSERT syntax Apparently, mysql supports...

almost 4 years ago

Hugo Peixoto's blog

Status update, December 2020

If you enjoy my work, consider sponsoring me so I can keep on doing this full time: https://github.com/sponsors/hugopeixoto 2020 is over! It was a different year in many aspects. I started doing these monthly updates when I stopped working full time, inspired by Drew DeVault’s status updates. It’s been a useful way of tracking the passing of time, it keeps me aware that I should at least try to accomplish something each month, even if it’s working on a useless...

almost 4 years ago

Hugo Peixoto's blog

Advent of code 2020, week 3 and 4

If you enjoy my work, consider sponsoring me so I can keep on doing this full time: https://github.com/sponsors/hugopeixoto Advent of code 2020 is over. I solved every problem using rust. I’ve published my solutions with benchmarks: https://github.com/hugopeixoto/aoc2020 Here are my personal stats: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 -------Part 1-------- -------Part 2-------- Day Time Rank Score...

almost 4 years ago

Hugo Peixoto's blog

Advent of code 2020, week 2

If you enjoy my work, consider sponsoring me so I can keep on doing this full time: https://github.com/sponsors/hugopeixoto Advent of code 2020 is ongoing. I’ve been solving the problems daily using rust. So far so good. I have a private leaderboard with a few folks, anyone is free to join, here’s the code: 9779-59e7cb46. I’m publishing my solutions here, with a delay of a day or two: https://github.com/hugopeixoto/aoc2020 Here are my personal stats so far: 1 2 3 4 5...

almost 4 years ago

Hugo Peixoto's blog

Advent of code 2020, week 1

If you enjoy my work, consider sponsoring me so I can keep on doing this full time: https://github.com/sponsors/hugopeixoto Advent of code 2020 is ongoing. I’ve been solving the problems daily using rust. So far so good. I have a private leaderboard with a few folks, anyone is free to join, here’s the code: 9779-59e7cb46. My schedule has been kind of compatible with the time of release, so I’ve been able to start working on them almost immediately. So far I...

almost 4 years ago

Hugo Peixoto's blog

Status update, November 2020

If you enjoy my work, consider sponsoring me so I can keep on doing this full time: https://github.com/sponsors/hugopeixoto No more November. I didn’t blog as much this month, so this status update will be a bit longer than usual. D3 - Defesa dos Direitos Digitais I started the month doing some work for D3. We use HackMD a lot to colaborate on writing articles and researching topics, and there was some downtime. This made us consider self-hosting our own instance...

almost 4 years ago

Hugo Peixoto's blog

Brute forcing my own passphrase

If you enjoy my work, consider sponsoring me so I can keep on doing this full time: https://github.com/sponsors/hugopeixoto Back in May, when I was cleaning up the server that runs git.hugopeixoto.net, I found an ssh key whose passphrase I couldn’t remember. It’s an old key that I created 10 years ago to use in my employer’s laptop. I don’t work there anymore and I don’t actively use this key, so it’s not like I lost access to anything. I have...

almost 4 years ago

Hugo Peixoto's blog

Self-hosting nameservers for my domains

If you enjoy my work, consider sponsoring me so I can keep on doing this full time: https://github.com/sponsors/hugopeixoto Introduction In an attempt to self-host all the things, I decided to try self-hosting nameservers for my domains. When I first bought my domains, I was using the nameservers provided by the registrar. Eventually, I moved them to Route53 so that I could manage the records in a git repository and apply them via terraform. Now I just want to get rid...

almost 4 years ago

Hugo Peixoto's blog

Status update, October 2020

If you enjoy my work, consider sponsoring me so I can keep on doing this full time: https://github.com/sponsors/hugopeixoto October is known for Hacktoberfest. Last year I organized a couple of local events to promote contributions and help folks get motivated. This year, I limited myself to attending a portuguese online event: Interruptor x Hacktoberfest. In the morning I watched some talks, and during the afternoon we worked on a project that displays how cultural facilities are spread throughout the country....

almost 4 years ago

Hugo Peixoto's blog

Fixing a bug in Rocket Chat

If you enjoy my work, consider sponsoring me so I can keep on doing this full time: https://github.com/sponsors/hugopeixoto I’m a member of D3, a portuguese association focused on defending digital rights. We use Rocket Chat as our main communication tool (think Slack, but open source). Recently, Rocket.Chat announced that they’re limiting the number of monthly mobile push notifications for self hosted instances. Their new limit is 5000 notifications per month, and we’re way over that number. September was a particularly...

almost 4 years ago

Hugo Peixoto's blog

Rails template

If you enjoy my work, consider sponsoring me so I can keep on doing this full time: https://github.com/sponsors/hugopeixoto A few months ago, I blogged about my process of setting up a new rails app. Since then, I’ve created three or four rails apps by following those steps. This week I was following those steps manually yet again, so I decided to automate it. I created a new rails app, followed those steps manually, and published the resulting repository: https://github.com/hugopeixoto/rails-template Now...

almost 4 years ago

Hugo Peixoto's blog

Conversas em Código Episode #30 released

I’ve published a new episode of Conversas em Código (in Portuguese): Episode 30: Google Lighthouse Neste episódio falamos sobre o Google Lighthouse, uma ferramenta open source para analisar a qualidade de páginas web. See the full episode list here: https://conversas.porto.codes

about 4 years ago

Hugo Peixoto's blog

Making a website with Rust

This is a [journal] entry. It is longer than usual and more exploratory. It may have no proper conclusion. If you enjoy my work, consider sponsoring me so I can keep on doing this full time: https://github.com/sponsors/hugopeixoto Introduction A couple of days ago, in a random chat, someone mentioned setting up a image host on their servers. This led me to search for self hosted FOSS alternatives to services like imgur. I found a few: linx-server pictshare They both look...

about 4 years ago

Hugo Peixoto's blog

Status update, September 2020

If you enjoy my work, consider sponsoring me so I can keep on doing this full time: https://github.com/sponsors/hugopeixoto Another month gone, another status update. My main focus this month was on reporting what I learned during the Games Made Quick gamejam. This resulted in a two-parter: Rust, gamedev, ECS, and bevy - Part 1 Rust, gamedev, ECS, and bevy - Part 2 While working on those articles, I had to write some benchmarking code, available on my tests repository. These...

about 4 years ago

Hugo Peixoto's blog

Rust, gamedev, ECS, and bevy - Part 2

If you enjoy my work, consider sponsoring me so I can keep on doing this full time: https://github.com/sponsors/hugopeixoto Introduction In Part 1 of this series, I talked about what ECS is and what it’s good for. In this post, I’ll translate those concepts to bevy, with some code examples. I’ll finish with the issues I found in bevy and how ECS is kind of the opposite of how I’m used to thinking. Bevy is a very recent ECS game engine:...

about 4 years ago

Hugo Peixoto's blog

Conversas em Código Episode #29 released

I’ve published a new episode of Conversas em Código (in Portuguese): Episode 29: Cyberscore - Reviver um projecto LAMP Neste episódio falamos dos problemas que encontrámos num projecto em PHP/MySQL com quase 20 anos. If you prefer an English written version, I’ve published an article on this topic before: Knee deep in a LAMP project See the full episode list here: https://conversas.porto.codes

about 4 years ago

Hugo Peixoto's blog

Rust, gamedev, ECS, and bevy - Part 1

I am accepting sponsors via github: https://github.com/sponsors/hugopeixoto If you enjoy my work, consider sponsoring me so I can keep on doing this full time. Introduction In mid august, Carter Anderson released bevy, an Entity-Component-System (ECS) game engine built in Rust. One week later, SGDQ - Summer Games Done Quick happened - a bi-yearly speedrunning marathon that lasts for a week, raising funds for Médecins Sans Frontières. To avoid spending 168 hours watching a twitch stream, eevee started a game jam:...

about 4 years ago

Hugo Peixoto's blog

Status update, August 2020

I am accepting sponsors via github: https://github.com/sponsors/hugopeixoto If you enjoy my work, consider sponsoring me so I can keep on doing this full time. August is over, time for a new monthly update. I started helping out with the Cyberscore project. The current version is not free software, but there are plans to open up version 5. I wrote about some of the issues I found, and recorded a podcast episode on it as well. I’m currently editing the episode...

about 4 years ago

Hugo Peixoto's blog

HTML-XML-utils bug fix

I’ve been working on https://github.com/marado/RNID, a project that monitors failures to comply with the national open standards regulation. It is basically a set of bash scripts that check if there has been any updates to the websites found in breach. One of the command line tools it uses is hxselect, coming from the HTML-XML-utils package. hxselect prints html elements that match a CSS selector. Here’s an example usage (-s specifies the separators between matches): 1 2 3 4 5 6...

about 4 years ago

Hugo Peixoto's blog

Knee deep in a LAMP project

I am accepting sponsors via github: https://github.com/sponsors/hugopeixoto If you enjoy my work, consider sponsoring me so I can keep on doing this full time. I’ve been lending a hand with the development of Cyberscore. It’s a video game records community with almost 20 years of existence. I have a friend that sometimes helps out with maintenance, and they were having some issues so I decided to help out as well. The site history tells us that the current version started...

about 4 years ago

Hugo Peixoto's blog

Status update, July 2020

I am accepting sponsors via github: https://github.com/sponsors/hugopeixoto If you enjoy my work, consider sponsoring me so I can keep on doing this full time. Time for a new monthly update. After some tribulations, I decided on a local VPS provider for the Mentorados project. I used dokku to create a space where the rails application could be easily deployed. I ended up diving into their codebase and making a few contributions: viewdocs: Add tests to the frontmatter support feature dokku:...

about 4 years ago

Hugo Peixoto's blog

Conversas em Código Episode #28 released

I’ve published a new episode of Conversas em Código (in portuguese): Episode 28: Enferrujados Projectos aleatórios em Rust? Temos muitos. Neste episódio falamos um bocado de ferramentas que fizemos nesta linguagem que mal conhecemos. See the full episode list here: https://conversas.porto.codes

about 4 years ago

Hugo Peixoto's blog

Recompiling firefox to change some keyboard shortcuts

I’m trying to migrate from Chromium to Firefox. One of the things that caught me by surprise is that the keyboard shortcuts to select the n-th tab are different. In chromium, they’re Ctrl+1 through Ctrl+9, while in firefox they’re Alt+1 through Alt+9. These shortcuts conflict with the ones I’m using in sway, where they’re used to navigate between workspaces. This is not fixable via a setting change, so I decided to build a custom version of firefox. Since I’m using...

over 4 years ago

Hugo Peixoto's blog

Analysis paralysis, yak shaving, and all that

This is a [journal] entry. It is longer than usual and more exploratory. It may have no proper conclusion. I’m working on deploying https://mentor.alumniei.pt, and I decided to host it on a national VPS. It took me around a month from deciding to look for portuguese providers to actually pressing the “buy” button. Now that I have access to the VPS, I need to configure it to host a rails application. I knew that I didn’t want to configure a...

over 4 years ago

Hugo Peixoto's blog

An encounter with portuguese VPS providers

I’m working on a few portuguese projects (Mentorados, Make or Break, Porto Codes, Conversas em Código). Most of these require some sort of web hosting. I wondered if I could find a portuguese VPS provider to host all of these. This way, data would be kept in national datacenters. Also, I kind of wanted to see what national offers exist. I asked around and decided to try dominios.pt and PTisp. I initially wanted to go with PTisp, but they are...

over 4 years ago

Hugo Peixoto's blog

Status update, June 2020

It’s now been one month since I left my job. I decided to start doing status updates, at least once a month. I brought my personal email inbox down to zero. While at it, I wrote a rust cli tool to back up all of the messages I received. The next step is to add an incremental backup option. I played around with email parsing to get some statistics out of it. I would like to get this to a...

over 4 years ago

Hugo Peixoto's blog

Rewriting a small rails & react application

Introduction In 2017, Life on Mars helped build http://mentor.alumniei.pt/. It’s a portal where college students can contact alumni (mentors) when they’re facing career, academic, or personal issues. We built the platform, contacted some alumni members, but never got around to publish it. There’s some talk of reviving the project, so I decided to spend some time refreshing the code base and improving things that, in retrospective, are off. Here are some of the things that I think we should fix,...

over 4 years ago

Hugo Peixoto's blog

Backing up my gmail account with rust

I have been using a gmail account as my primary email address since 2004. I don’t usually delete things, so I have thousands of emails in there. Depending on google to maintain this for me, without any backups, is kind of scary, but I have been putting off backing these up for a while now. I’m aware that there’s a data export functionality. You should probably use that. A few years ago, that didn’t work that great. It failed creating...

over 4 years ago

Hugo Peixoto's blog

Next steps

I’m no longer working for Fractal. Life on Mars is also on its way out. This means that I am, excluding some administration/cleanup tasks, free. My plan for June (and probably July) is to have little to no plan. No failure conditions. I want to relax for a bit, do some cleanup, focus on some on other things that were lower priority. Here are some digital related things I’d like to do, in no particular order. Clean up my email...

over 4 years ago

Hugo Peixoto's blog

Fixing someone else's elixir project

This is a [journal] entry. It is longer than usual and more exploratory. It may have no proper conclusion. Make or break’s website is powered by an API server written in Elixir, using Phoenix. The technology choice here was probably based on “let’s try something new”, so it’s understandable if the project structure feels awkward. I barely touched this code, but I remember that deploying it has always been kind of messy. It took ~15 minutes to build and deploy...

over 4 years ago

Hugo Peixoto's blog

Video presentation on asdf

I did a lighting presentation on asdf, at Porto Codes. The recording is now available on youtube (in portuguese): https://www.youtube.com/watch?v=RaMRU4MVm5g asdf-vm is a CLI tool that can manage multiple language runtime versions on a per-project basis. It is like gvm, nvm, rbenv & pyenv (and more) all in one! Simply install your language’s plugin! You should also check out the other talks published by Porto codes: https://twitter.com/portocodes

over 4 years ago

Hugo Peixoto's blog

Fixing ruby 2.7 warnings in third party gems

This is a [journal] entry. It is longer than usual and more exploratory. It may have no proper conclusion. I’m working on a Make or Break project, and it depends on some gems: 1 2 3 4 5 6 7 8 9 10 11 12 gem "activesupport" gem "aws-sdk-s3" gem "aws-sdk-sqs" gem "dotenv" gem "foreman" gem "httparty" gem "minitest" gem "rack-test" gem "rake" gem "rlua", git: "https://github.com/whitequark/rlua", branch: "master" gem "sinatra" gem "zeitwerk" I was using ruby 2.6 at the...

over 4 years ago

Hugo Peixoto's blog

Building an android app with free software only

This is a [journal] entry. It is longer than usual and more exploratory. It may have no proper conclusion. I built a couple of personal android applications a few years ago. One of them is an overlay thing for pokemon go and the other one is an image uploader for dl.hugopeixoto.net, my personal image hosting service. I would like to be able to build them without having to accept EULAs. Current state I have a half-uncommited private repository for my...

over 4 years ago

Hugo Peixoto's blog

File sizes and disk usage

This is a [journal] entry. It is longer than usual and more exploratory. It may have no proper conclusion. I was backing up my old phone, running android, so I could flash a new OS. I deleted most of the stuff via the phone itself, but then I wanted to back up some files. MTP, FUSE, and filesystem syscalls I connected it via usb to the laptop, and use jmtpfs to mount the thing: 1 2 3 4 5 6...

over 4 years ago

Hugo Peixoto's blog

Fixing hugopeixoto.net

This is a [journal] entry. It is longer than usual and more exploratory. It may have no proper conclusion. Today’s goal is to automate everything that’s running on the server hosting hugopeixoto.net. I forgot to update the credit card number on my digital ocean account and almost lost the server. This is not the first time something like this happens, so I want to work towards reducing the anxiety from not having the servers under control. Overview I know I...

over 4 years ago

Hugo Peixoto's blog

Bash presentation

I did a presentation on Bash and Linux process related topics for an company internal thing. There’s no A/V recording, but I went a bit text heavy on the slides, so I’m making them available here: https://hugopeixoto.net/talks/bash/presentation.html Use tab to navigate (I’m using tabindex shenanigans to make that work), or just scroll down.

over 4 years ago

Hugo Peixoto's blog

Advent of code 2019

Advent of Code is an anual programming contest made of 25 programming puzzles, unlocked from the 1st to the 25th of December. It started in 2015, and I try to participate each year. My history with this contest When it first came out, I was still into programming contests, and I managed to finish 22 puzzles. I used C++, because that’s my default language for these type of challenges. 2017 and 2016 were not so great. I managed to solve...

almost 5 years ago

Hugo Peixoto's blog

Blockstack portuguese meetup

I went to a blockstack meetup last week. I heard about it thanks to Tiago Alves, who built a couple of apps on top of it. It has block in the name, uses decentralized a lot in its description, so I binned it under “blockchain” stuff and didn’t pay much attention to it. The meetup started with a brief description of what blockstack is, followed by a showcase of apps using blockstack built by local folks. Envelop, a very simple...

almost 5 years ago

Hugo Peixoto's blog

Rails and PostgreSQL prepared statements leak

At work, we have several services running on rails backed by a postgres database. One day, after a few changes, we noticed that postgresql memory usage kept growing up to the point where the server restarted due to out of memory issues. After a bit of debugging and searching through rails github issues, I noticed that the number of prepared statements created by each rails database connection was increasing with time, until it reached the pool size limit (which defaults...

about 9 years ago

Hugo Peixoto's blog

First impressions of Haskell

I usually enjoy trying out new languages, but it’s not always easy to find an excuse to do so. If I have the time, I usually do a mergesort example. This forces me to go through the setup phase (getting a compiler, creating a hello world) and try some basic things like lists and recursion, but it’s definitely not enough. Fortunately, I’m a fan of programming competitions such as Google Code Jam, Project Euler, and recently HackerRank. A couple of...

over 9 years ago

Hugo Peixoto's blog

Web services in go

I’ve been writing quite a few different web services in my current job. Initially, they were all written in rails. As we shift towards a microservices / services oriented / whatchamacallit architecture, I’ve started experimenting with other languages. Right now we have about 12 services, half of which are ruby (rails or sinatra), with the other half being written in go. I’m going to talk a bit about my experience writing go web services. Configuration In our rails applications, we...

over 9 years ago

Hugo Peixoto's blog

OpenID - The comeback

In the past, I wrote (with a friend of mine) a simple PHP OpenID provider. We used dorm, and no extra framework whatsoever. It is now a messy pile of code. As such, we are rewriting it in a random Ruby web framework. So that we learn something in the process, we’ll be using the following set of technologies: Sinatra as the framework, DataMapper as the ORM and Slim as the templating language.

over 13 years ago

Hugo Peixoto's blog

Ubuntu, rvm and contributing to rails

I wanted to write a couple of patches for the rails gem, so I needed to clone the rails repository and install all the gem dependencies with bundler. Unfortunately, my bundler installation doesn’t work very well, as I screwed something up when installing several versions of ruby. So I decided to create a virtual machine with Ubuntu and install everything with rvm. I’ll describe all the steps I took after the VM installation. I used Ubuntu 10.04.1 LTS, so your...

about 15 years ago

Hugo Peixoto's blog

Rails and RailsBridge BugMash

During the past weekend, the Rails team organized a BugMash with the help of the RailsBridge community. More than 180 tickets from Rails Lighthouse were chosen and targeted during the past 48 hours. They were even able to gather a few prizes to raffle off. The more contributions you made, the higher the chance to win something. About 120 tickets were solved during this joint effort and a few new bugs were discovered, so I’d say that this initiative was...

about 15 years ago

Hugo Peixoto's blog

NEATSqueak @ EPIA'2009

Dear Hugo Peixoto, We have the pleasure to inform you that your contribution entitled NeatSqueak on wheels: Neural networks applied to movement optimization of a simulated robot (paper #131) submitted to EPIA’2009 has been accepted for presentation at the conference in Aveiro, October 12-15, 2009, and publication in the conference proceedings. Somehow, we’re in. Our first NEATSqueak related paper got accepted! This paper is the result of our work done during the Robotics course. It focuses on the application of...

over 15 years ago

Hugo Peixoto's blog

The beginning of OpenID at FEUP

Early this year, a friend of mine at NIFEUP (our local informatics students’ group) developed an application similar to rapidshare (named feupload, although free and limited to our Faculty members. This application used LDAP server as a means to authenticate the users — you just had to insert your campus credentials, and an account would be automatically created. This mechanism, although promoting usability, leads to the usual trust issue: you have to give away your credentials to a third party in...

over 15 years ago

Hugo Peixoto's blog

Hello, world

So, I decided to start a blog. Why? I guess I just want to have a place where I can register my random projects and experiments. Come to think of it, I believe that most developers like talking about what they do — but nobody wants to listen. Hence the great number of developer blogs. With this in mind, I’m planning on writing small and simple posts on what I’m currently working on. An OpenID provider implementation at FEUP, A.I....

over 15 years ago