Interesting, I managed to screw up my blog. Logging in is impossible through a web browser, I get the message:

502 Bad Gateway

nginx

This happened after messing around with the WP Reset plugin, apparently I deleted some custom table I shouldn’t have… Funnily enough I am still able to use the android app to create posts so not all hope is gone.

Weird things happen….

Edit: Turns out I couldn’t access the login screen for my site but could access the comments section (you know the one where you can approve new comments, then from there Dashboard was broken but I could access the menu Tools -> WP Reset). I had the foresight of creating a snapshot before messing around with the plugin, I just couldn’t find a way to restore it, the more you know

Day 21 of

Let’s face it, part of the joy of Linux is solving unexpected problems you wouldn’t have with proprietary Operating Systems like Windows and MacOS. That being said this is my latest adventure:

I turned on m computer and after the grub screen came up and I chose to boot into Manjaro (yes, the horror, I know dual booting Windows is not ideal but a necessary evil in my case). Something like this came up instead of the usual GUI login prompt:

[FAILED] Failed to start File System <random UUID for my home partition>
[FAILED] Failed to mount /home.
[DEPEND] Dependency failed for Local File Systems.
You are in emergency mode. After logging in, type “journalctl -xb” to view
system logs, “systemctl reboot” to reboot, “systemctl default” or “exit”
to boot into default mode.

After the usual “Well, crap” moment I decided to search the forums and my initial approach was to boot from a live usb and then to follow this thread but manjaro-chroot -a didn’t seem to work, the terminal propmted to mount Manjaro as option 0 but that didn’t help (more like I didn’t really know how to use this). So I attempted something else I found in this other thread:

fsck /dev/sda8 (my home partition lives in sda8)

and after following the prompts to repair errors and optimize (said yes to all):

~ >>> sudo fsck /dev/sda8                                                                          [32]
fsck from util-linux 2.36
e2fsck 1.45.6 (20-Mar-2020)
/dev/sda8 contains a file system with errors, check forced.
Pass 1: Checking inodes, blocks, and sizes
Inode 1179940 extent tree (at level 1) could be shorter.  Optimize<y>? yes
Inodes that were part of a corrupted orphan linked list found.  Fix<y>? yes
Inode 1180329 was part of the orphaned inode list.  FIXED.
Deleted inode 1185883 has zero dtime.  Fix<y>? yes
Inode 1194474 was part of the orphaned inode list.  FIXED.
Inode 1197451 was part of the orphaned inode list.  FIXED.
Inode 1214730 was part of the orphaned inode list.  FIXED.
Inode 1214937 was part of the orphaned inode list.  FIXED.
Inode 1245329 was part of the orphaned inode list.  FIXED.
Inode 1443168 extent tree (at level 1) could be shorter.  Optimize<y>? yes
Inode 2101262 extent tree (at level 1) could be shorter.  Optimize<y>? yes
Pass 1E: Optimizing extent trees
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Block bitmap differences:  -4728365 -(5252576--5252593) -(5252832--5252840) -(7281205--7281213) -(28186624--28187647) -(28435982--28435990)
Fix<y>? yes
Free blocks count wrong for group #144 (280, counted=281).
Fix<y>? yes
Free blocks count wrong for group #160 (7611, counted=7638).
Fix<y>? yes
Free blocks count wrong for group #222 (16898, counted=16907).
Fix<y>? yes
Free blocks count wrong for group #860 (5047, counted=6071).
Fix ('a' enables 'yes' to all) <y>? yes to all
Free blocks count wrong for group #867 (6842, counted=6851).
Fix? yes
Free blocks count wrong (1960760, counted=1961830).
Fix? yes
Inode bitmap differences:  -1180329 -1185883 -1194474 -1197451 -1214730 -1214937 -1245329
Fix? yes
Free inodes count wrong for group #144 (0, counted=2).
Fix? yes
Free inodes count wrong for group #145 (0, counted=1).
Fix? yes
Free inodes count wrong for group #146 (8, counted=9).
Fix? yes
Free inodes count wrong for group #148 (1750, counted=1752).
Fix? yes
Free inodes count wrong for group #152 (6483, counted=6484).
Fix? yes
Directories count wrong for group #152 (1042, counted=1041).
Fix? yes
Free inodes count wrong (6279928, counted=6279935).
Fix? yes
/dev/sda8: *** FILE SYSTEM WAS MODIFIED ***
/dev/sda8: 1936641/8216576 files (0.4% non-contiguous), 30896794/32858624 blocks
~ >>>                                                                                               [1]

Then after turning off and on my laptop everything went back to normal. In hindsight maybe I could’ve done that from the terminal I was booting into but it doesn’t matter now.

Useful reference for fsck:

 lopeztel@lopeztel-inspiron137359  ~  fsck --help

Usage:
 fsck [options] -- [fs-options] [<filesystem> ...]

Check and repair a Linux filesystem.

Options:
 -A         check all filesystems
 -C [<fd>]  display progress bar; file descriptor is for GUIs
 -l         lock the device to guarantee exclusive access
 -M         do not check mounted filesystems
 -N         do not execute, just show what would be done
 -P         check filesystems in parallel, including root
 -R         skip root filesystem; useful only with '-A'
 -r [<fd>]  report statistics for each device checked;
            file descriptor is for GUIs
 -s         serialize the checking operations
 -T         do not show the title on startup
 -t <type>  specify filesystem types to be checked;
            <type> is allowed to be a comma-separated list
 -V         explain what is being done

 -?, --help     display this help
     --version  display version

See the specific fsck.* commands for available fs-options.
For more details see fsck(8).

As I said, there are unexpected problems but there’s a sense of achievement when you solve them and learn something in the process.

Day 20 of

Attending ONLINE: Homebrew Website Club Europe/London
Join us... on ✨The Internet!✨ Link to the Zoom video conference will be visible above from 6:45pm (BST) and moderated throughout by the event organizer Calum and Ana. Homebrew Website Club is a meetup for anyone interested in personal websites and a distributed web. Whether you’re a blogger, c...

Just thought I would join more indieweb events in the future, this is one of them.

Context

For a while now I’ve been trying to find ways to convey the risks of social media and the importance of privacy to my non-tech savvy family members, in a previous entry I went over getting away from WhatsApp (Facebook really) and using element connected to my own self hosted synapse server.

The Social Dilemma

Two weeks ago I watched The Social Dilemma on Netflix, which I really enjoyed. To elaborate further these are my main take aways:

  • The people featured in the documentary explain things is easy to follow for non – tech oriented people, because, let’s be honest, sometimes people from technical backgrounds tend to make assumptions or loose patience while explaining (I know I have)
  • Some of the creators of some social media platforms or multiple of their functionalities (such as the like button for Facebook) were involved in the creation of this documentary and even willing to admit that they didn’t think of the negative uses of said functionalities! A couple examples that come to mind are people doing everything (varying degrees of ridiculousness) to go up in this like/views based system on YouTube or live streaming horrible deeds on < insert your video streaming platform of choice here > to spread fear/hate
  • The fact that Center for Humane Technology (featured in the documentary) was started by the same people that created or helped in the creation of diverse social media platforms and the fact that people that work for social media platforms go to great lengths to get their own kids to stay away from their own creations should both be huge red flags for “us, normal users”.
  • The “Brain hacking” algorithms work on you even if you’re highly educated or know how they work

Ongoing efforts

After watching the documentary and recommending it to my folks back home (English is a bit hard for them so I’m thankful for Netflix translations), a search for similar resources began and a pleasant exchange with @humanetech (Mastodon account that represents Humane Tech Community ) turned up some very good sites like Social Cooling – Big Data’s unintended side effect which was nice but I began thinking:

“Hey, most of the resources are in English , it doesn’t make sense to have/share them if most of the vulnerable population isn’t highly educated and speaks the language (at least in my country), maybe translation of such resources is a good idea”

After deciding to be a little proactive I offered this thought to @humanetech which was received with enthusiasm and after being pointed to one of their forum’s threads I discovered someone had already thought about this and even volunteered to translate to Italian, at this point I thought I could help translating to Spanish, so I joined the forum and officially volunteered as tribute well, which began another thread dedicated to gathering resources for possible translation.

So that’s all it took to take some action to help a little bit, a couple of toots and some forum posts, I really hope some translation effort happens, interest seems to be there as at the time of writing there are other people who volunteered to translate to Portuguese, German and Russian (this last one 2 hours before this entry was live).

If my thoughts resonate with you, you can join the forum, volunteer to translate or overall reach out to exchange ideas either on mastodon or on Humane Tech Community forum

Day 19 of

Context

I am writing this entry because today is September 15th, almost Mexican Independence day. Fun fact: The whole thing really started on September 16th, 210 years ago but to this day is celebrated on the night of the 15th because one of our presidents wanted to celebrate his birthday at the same time. See Porfirio Diaz for more details.

This entry is a bit of a rant about living abroad and what everyone calls “Mexican food”

My problem with “Mexican” food

It’s not a secret that my country is known for having the best a very rich cuisine, however I feel that it is very badly represented abroad thanks to our neighbors from the US (I am not trying to start a flame war here).

Since I started living abroad (almost 3 years ago now) I’ve seen many different representations, admittedly good food but not what I would call Mexican, I think the most common misconceptions are:

  • No Mexican uses cheddar cheese, that just doesn’t happen
  • The corn most people know in Mexico is neither sweet nor yellow (there are blue and red varieties but I won’t get into that)
  • No, we don’t really celebrate cinco de Mayo (although it is a very good excuse our friends from the US like to use to eat tons of avocado and drink tequila, but by all means go ahead 🙂 )
  • Chili con carne, most burritos and sweet chili sauce are what would be better described as “Tex-Mex”
  • I’ve seen interesting varieties, anything with corn chips, sliced, jalapeño peppers, tomato or beans slapped on top is called “Mexican” (I’ve seen this in the US and all over Europe)
  • Apparently Norway and Sweden have a long standing tradition of “Taco Friday”: lots of minced meat with cumin and other spices and taco shells

So there you go, weird moments whenever I hear “Oh, you’re Mexican? I love Mexican food!”, which is why I always ask if the person has ever been to Mexico (Come on, at least Cancun is a popular destination isn’t it?)

Hope this information is useful, at least it lets me blow off some steam and think about the food I love so much but can’t have on this day.

Day 18 of

A brief summary: I’ve been looking into privacy friendly alternatives to software most of us use or used in our everyday lives. To be more precise, an alternative to WhatsApp for communication within my family. Long story short: I lost this one…

A while back I switched from WhatsApp to Signal and kind of forced my family to switch as well, however:

Signal requires a phone number and depends on centralized servers. I know there are ways to have your own server but as far as I know the process can be difficult, there is no one-to-one video calls on desktop (yet) and there is no support for federation out of the box (If you, the reader, have more info on this point I’d love to know since I have only researched on the surface of the topic)

My current solution is a synapse installation and element client app on desktop, iOS and android device, which seems to meet all the requirements I had plus the installation process is fast and easy on a yunohost server

On the technical side of things everything is fine and works, we are able to communicate securely through a home server I own and manage but the thing is: My family only uses element to communicate with me and they keep relying on WhatsApp to communicate between them and others. It is a bit frustrating but at least our video calls are private so there is a silver lining here.

The arguments to use it have been many: “there are no customizable stickers”, “What do you have to hide? don’t be so paranoid”, “I don’t care if I am spied on, I’m not that interesting”, “all my friends are on WhatsApp and I like to have a single app for all my conversations”

I have been trying to explain the risks of thinking like this and after being frustrated for a while I realized that most people concerned with privacy have an electronic or computer engineering (or similar) backgrounds, we sometimes are a bit big-headed (at least I have been at times) and forget how it is to have no understanding of how apps and communication work.

I’d like to use this entry post to encourage people to be more understanding and patient while trying to explain privacy risks or persuading non-tech oriented people, after all, even when we’re right, no one likes an arrogant smart-ass and forcing everyone to be more privacy oriented is impossible.

Let’s keep it up, do and take what you can.

Day 17 of

Let me start by saying that the purpose of this entry is not to say “Look at how selfless I am for donating money to FOSS organizations or projects” so, with that in mind, I will not list any specific quantities because that is not the point I am trying to make. Having written the proper disclaimer, let’s get to it:

My preferences

In the past month I have written about my projects and experiences with FOSS, self hosting and even digital art. Here’s the list of organizations/projects I support and why I chose them:

  • Krita: I just loved how they’re working hard to include amazing brushes and textures by default. I didn’t try digital before because I’m used to traditional media (in particular watercolor).
  • Yunohost: Easy self-hosting solution, very nice people in the forums and even this blog runs on a Yunohost server!
  • ManjaroARM: I just love what they’re doing for the Pinebook, Pinephone and Raspberry Pi
  • Fosstodon.org: My mastodon instance and what started the whole “better/safer digital life” train I’m on
  • Matrix.org: I’m using my own Synapse server for encrypted communication with my family, thanks to Yunohost.

(there are many more I’d like to support but, you know, adulting and paying the bills…)

Why donate?

Aside from sharing my preferences I’d like to encourage you (my surely millions of readers that is 😛 ) to support any FOSS project you’ve found useful or interesting, either by donating a small amount of money or (even better) by contributing with time and coding expertise.

Day 16 of

After my last update about my blog migration, basically all I did was install LiteSpeed Cache plugin and mess around with it.

For reference, lots of documentation goodness here

The most important part to note is that I kept getting bugged by both Google’s PageSpeed Insights and GTmetrix to enable text compression.

After some time reading about compression and Marco Saric’s post, I tried to enable compression by adding some lines of code at the bottom of the .htaccess file (accessible by the plugin through: LiteSpeed Cache->Toolbox->Edit .htaccess ):

<ifModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>

This didn’t work and realized that gzip doesn’t come enabled by default (most things were commented out) in yunohost’s nginx installation. So I referred to this link and edited the file /etc/nginx/nginx.conf :

gzip on;

add_header Content-Encoding "gzip2";
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript

The line

add_header Content-Encoding "gzip2";

is the most important, after that my blog was tested for compression using: https://www.giftofspeed.com/gzip-test/ and https://varvy.com/tools/gzip/ , both test websites see compression enabled.

I’m still not sure about Google’s PageSpeed Insights but GTmetrix sees it as well. Here are my results (for now):

Google’s PageSpeed Insights
GTmetrix

Just for fun (haven’t looked too much into this yet) I am adding the score for Website carbon as well:

So far I am more or less happy with the results and there is room for improvement. Some settings seem to break my Indieweb and ActivityPub plugins.

Day 15 of