diff --git a/config/_default/config.toml b/config/_default/config.toml index ca6bba9..7099107 100644 --- a/config/_default/config.toml +++ b/config/_default/config.toml @@ -9,6 +9,7 @@ defaultContentLanguage = "en" enableRobotsTXT = true paginate = 10 summaryLength = 0 +timeZone = "Asia/Bangkok" [outputs] home = ["HTML", "RSS", "JSON"] diff --git a/content/archives/2023-07-01.md b/content/archives/2023-07-01.md index a23f852..990aa87 100644 --- a/content/archives/2023-07-01.md +++ b/content/archives/2023-07-01.md @@ -10,9 +10,9 @@ I arrived at the gym a few weeks ago to notice they were removing the key locks To be fair with the management, the new technology did solve the perennial problem caused by whatever sequential (FIFO?) system they were using to distribute keys to people as they walked in, and which caused congestion at specific areas of the locker room while leaving the rest of the space completely unused. The digital bracelets can lock any locker, allowing members to choose for themselves. I can think of simpler ways of fixing that problem. -A week or so later, I walked into the lobby and noticed they were changing the check-in system, consisting of an RFID enabled member card scanned on entry, to what appeared to be fingerprint scanners. Bad news, I thought. Sure enough, within a few days the new system was up, and I was asked to scan my finger and get a new membership card to continue using the facilities. I informed them I would not provide my biometrics to enter a gym (or any place for that matter). The only exception being entering and leaving countries and other mandatory government initiatives where I have no choice. +A week or so later, I walked into the lobby and noticed they were changing the check-in system, which consisted of an RFID enabled member card scanned on entry, to what appeared to be fingerprint scanners. Bad news, I thought. Sure enough, within a few days the new system was up, and I was asked to scan my finger and get a new membership card to continue using the facilities. I informed them I would not provide my biometrics to enter a gym (or any place for that matter). The only exception being entering and leaving countries and other mandatory government initiatives where I have no choice. -Why do I have a problem with biometrics enabled doors? I makes me feel we’re ushering in a dystopian future we will regret. I see a future where, cheaply and on a massive scale, every door will open (or not) based on each individual: "Sorry citizen, this a "Class A" facility. Based on your socioeconomic profile and psychometric tests (or social credit score?) you are ranked "Class B-". Please step aside." +Why do I have a problem with biometrics enabled doors? It makes me feel we’re ushering in a dystopian future we will regret. I see a future where, cheaply and on a massive scale, every door will open (or not) based on each individual: "Sorry citizen, this a ‘Class A‘ facility. Based on your socioeconomic profile and psychometric tests (or social credit score?) you are ranked ‘Class B-’. Please step aside." I have a problem with the data collection itself. Will this database be sold to third parties? Where are the servers located? What kind of firewall is used? This gym is one of the fanciest in town. Who would like to access member data? For what purposes? diff --git a/content/archives/2023-07-02/2023-07-02.md b/content/archives/2023-07-02/2023-07-02.md new file mode 100644 index 0000000..5d50d1d --- /dev/null +++ b/content/archives/2023-07-02/2023-07-02.md @@ -0,0 +1,29 @@ +--- +title: "A life-changing conversation" +date: 2023-07-02 +description: "A short rant on veganism followed by a vegan restaurant review." +summary: "One of the reasons I became vegan, and dinner at a new vegan restaurant in town." +tags: ["technology", "dystopia"] +categories: ["Technology"] +--- +![Sign at parking lot translated from Khmer to English as Exist](../love-and-compassion.jpg) + +I bought the domain that I’m using —vegancambodia.com— a while ago, thinking it made sense, living in Cambodia and wanting to do something with veganism. I usually buy `.org` names, but thought I'd go for a `.com` in case we decided to make a business out of it. Well, it must be close to a year later and nothing has happened with the domain or with veganism (aside from the practice it, of course). So, let me say something about veganism then, in honor of the domain name and the unfortunate souls that may land here searching for information on veganism in Cambodia in the future. + +When my wife was pregnant, I had a conversation with a friend in Penang. To explain to me how unnatural it is to eat animals, she told me how shocking it had been for her three children when they each discovered that the food they ate came from living animals that had been killed so that they could eat them. We only come to see this as natural as part of a long process of normalization. + +For months, I couldn’t stop thinking about our conversation, and I kept trying to think how I would explain our eating habits to my daughter in a logical and ethical way when the time came. No matter how much I thought about it, I couldn’t come up with a satisfactory explanation for why we enslave, torture and kill other species so that we can eat them and their secretions. + +Eventually, I had to accept that I had grown up with illogical belief system, and the only way to escape the cognitive dissonance was to ignore it or to align my actions with my ethics. This was likely the single biggest realization I had toward becoming vegan. I thank my friend Esther and my daughter for this wonderful awakening. + +--- + +Talking of veganism, there's a new vegan restaurant in town. This is big news, as the count currently stands at three (including the new place), and we don't eat at one of the three anymore for reasons I will not go into on this post. + +The place is called Sundays (yeah, we went on a Saturday, I know) and is run by Darren and Tam, a charming Aussie-Khmer and British couple. It has a beautiful loft style interior with Japanese and Thai accents and a skateboarder ethos. Colorful lithographs by various Thai and Chinese artists line the walls, with some skateboard wall art. A spiral staircase leads to a mezzanine lounge featuring bespoke wooden lounge furniture and a neon sign at the back that reads ‘Take It Easy.’ The design showcases a spacious and inviting open kitchen and high ceilings and large windows, which let in a ton of light and make the place feel airy. + +Forgive me for starting with dessert, but I've never been one for rules. They have vegan waffles! I hadn't had a waffle for a while. In fact, I've had two waffles in the almost four years since I became vegan (largely because we were stuck in Cambodia for three of those years, without Sundays). I had a waffle once at Wai Nam Beach resort in Koh Pha Ngan last year and another at [Veganerie](https://www.veganerie.co.th), in Bangkok, a few months ago. It sounds silly, I know. I could go out and buy a waffle machine, but then I'd have to own a specialized device that I would only use sporadically, and I'd rather not add another clunky machine to the kitchen storage. So, we shared a tasty pandan coconut waffle with homemade, hand-churned, coconut ice cream, and it was perfect. + +For dinner, we had some sort of sticky cauliflower chunks, a Khmer fusion somlor korko noodle dish and a spicy tom yum club sandwich. For drinks, we had Thai bubble tea and water. + +We liked the place so much we're going back for breakfast today (on a Sunday, of course). diff --git a/content/archives/2023-07-02/love-and-compassion.jpg b/content/archives/2023-07-02/love-and-compassion.jpg new file mode 100644 index 0000000..b544d8f Binary files /dev/null and b/content/archives/2023-07-02/love-and-compassion.jpg differ diff --git a/public/archives/2023-06-30/2023-06-30/index.html b/public/archives/2023-06-30/2023-06-30/index.html index d6226af..677ee9d 100644 --- a/public/archives/2023-06-30/2023-06-30/index.html +++ b/public/archives/2023-06-30/2023-06-30/index.html @@ -78,8 +78,8 @@ - - + + @@ -102,10 +102,10 @@ "name": "Marcel Ventosa" }, "copyrightYear": "2023", - "dateCreated": "2023-06-30T00:00:00\u002b00:00", - "datePublished": "2023-06-30T00:00:00\u002b00:00", + "dateCreated": "2023-06-30T00:00:00\u002b07:00", + "datePublished": "2023-06-30T00:00:00\u002b07:00", - "dateModified": "2023-06-30T00:00:00\u002b00:00", + "dateModified": "2023-06-30T00:00:00\u002b07:00", @@ -314,7 +314,7 @@
- ·80 words·1 min + ·80 words·1 min @@ -394,7 +394,7 @@ > - + diff --git a/public/archives/2023-07-01/index.html b/public/archives/2023-07-01/index.html index ae93944..81a9669 100644 --- a/public/archives/2023-07-01/index.html +++ b/public/archives/2023-07-01/index.html @@ -78,8 +78,8 @@ - - + + @@ -102,15 +102,15 @@ "name": "Marcel Ventosa" }, "copyrightYear": "2023", - "dateCreated": "2023-07-01T00:00:00\u002b00:00", - "datePublished": "2023-07-01T00:00:00\u002b00:00", + "dateCreated": "2023-07-01T00:00:00\u002b07:00", + "datePublished": "2023-07-01T00:00:00\u002b07:00", - "dateModified": "2023-07-01T00:00:00\u002b00:00", + "dateModified": "2023-07-01T00:00:00\u002b07:00", "keywords": ["technology","dystopia"], "mainEntityOfPage": "true", - "wordCount": "736" + "wordCount": "737" }] @@ -314,7 +314,7 @@
- ·736 words·4 mins + ·737 words·4 mins @@ -333,8 +333,8 @@

I arrived at the gym a few weeks ago to notice they were removing the key locks from the lockers and replacing them with some sort of RFID bracelet technology. I chuckled, because this is exactly what I feel is wrong with technolgoy: They replaced a low maintenance time-tested technology (lock and key), with a high-maintenance untested fad consisting of many more moving parts. For starters, each locker now requires a regular battery change. I didn’t open the battery compartment, but it looks like it takes triple A’s.

To be fair with the management, the new technology did solve the perennial problem caused by whatever sequential (FIFO?) system they were using to distribute keys to people as they walked in, and which caused congestion at specific areas of the locker room while leaving the rest of the space completely unused. The digital bracelets can lock any locker, allowing members to choose for themselves. I can think of simpler ways of fixing that problem.

-

A week or so later, I walked into the lobby and noticed they were changing the check-in system, consisting of an RFID enabled member card scanned on entry, to what appeared to be fingerprint scanners. Bad news, I thought. Sure enough, within a few days the new system was up, and I was asked to scan my finger and get a new membership card to continue using the facilities. I informed them I would not provide my biometrics to enter a gym (or any place for that matter). The only exception being entering and leaving countries and other mandatory government initiatives where I have no choice.

-

Why do I have a problem with biometrics enabled doors? I makes me feel we’re ushering in a dystopian future we will regret. I see a future where, cheaply and on a massive scale, every door will open (or not) based on each individual: “Sorry citizen, this a “Class A” facility. Based on your socioeconomic profile and psychometric tests (or social credit score?) you are ranked “Class B-”. Please step aside.”

+

A week or so later, I walked into the lobby and noticed they were changing the check-in system, which consisted of an RFID enabled member card scanned on entry, to what appeared to be fingerprint scanners. Bad news, I thought. Sure enough, within a few days the new system was up, and I was asked to scan my finger and get a new membership card to continue using the facilities. I informed them I would not provide my biometrics to enter a gym (or any place for that matter). The only exception being entering and leaving countries and other mandatory government initiatives where I have no choice.

+

Why do I have a problem with biometrics enabled doors? It makes me feel we’re ushering in a dystopian future we will regret. I see a future where, cheaply and on a massive scale, every door will open (or not) based on each individual: “Sorry citizen, this a ‘Class A‘ facility. Based on your socioeconomic profile and psychometric tests (or social credit score?) you are ranked ‘Class B-’. Please step aside.”

I have a problem with the data collection itself. Will this database be sold to third parties? Where are the servers located? What kind of firewall is used? This gym is one of the fanciest in town. Who would like to access member data? For what purposes?

I asked politely why they required my fingerprint in addition to the RFID enabled card (which now need not be scanned, but must be deposited at reception to receive towels and locker opening bracelet). They informed me members were sharing their cards with third parties and the owner wanted to fix the problem.

I told them my wife and I use the gym almost every day, and had no desire to share the card with anyone else. I also reminded them of the large TV hanging over the entrance gate and displaying each member’s private information as they scan the card, including a photo (the same photo printed on the card itself), and number of times the door has been accessed since the membership became active. They said they would raise the issue with “The Big Boss.”

@@ -371,7 +371,7 @@ > - + @@ -380,6 +380,25 @@ + + + A life-changing conversation + + + + + + + + +
diff --git a/public/archives/2023-07-02/2023-07-02/index.html b/public/archives/2023-07-02/2023-07-02/index.html new file mode 100644 index 0000000..a921de4 --- /dev/null +++ b/public/archives/2023-07-02/2023-07-02/index.html @@ -0,0 +1,506 @@ + + + + + + + + + + + + + + + + A life-changing conversation · >mv_ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Skip to main content +
+ + +
+ +
+ + +
+
+ +
+
+ +

+ A life-changing conversation +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + ·655 words·4 mins + + + + +
+ + + + + +
+ +
+
+ +
+

+ + + + + + + +

+ Sign at parking lot translated from Khmer to English as Exist + +
+ + +

+

I bought the domain that I’m using —vegancambodia.com— a while ago, thinking it made sense, living in Cambodia and wanting to do something with veganism. I usually buy .org names, but thought I’d go for a .com in case we decided to make a business out of it. Well, it must be close to a year later and nothing has happened with the domain or with veganism (aside from the practice it, of course). So, let me say something about veganism then, in honor of the domain name and the unfortunate souls that may land here searching for information on veganism in Cambodia in the future.

+

When my wife was pregnant, I had a conversation with a friend in Penang. To explain to me how unnatural it is to eat animals, she told me how shocking it had been for her three children when they each discovered that the food they ate came from living animals that had been killed so that they could eat them. We only come to see this as natural as part of a long process of normalization.

+

For months, I couldn’t stop thinking about our conversation, and I kept trying to think how I would explain our eating habits to my daughter in a logical and ethical way when the time came. No matter how much I thought about it, I couldn’t come up with a satisfactory explanation for why we enslave, torture and kill other species so that we can eat them and their secretions.

+

Eventually, I had to accept that I had grown up with illogical belief system, and the only way to escape the cognitive dissonance was to ignore it or to align my actions with my ethics. This was likely the single biggest realization I had toward becoming vegan. I thank my friend Esther and my daughter for this wonderful awakening.

+
+

Talking of veganism, there’s a new vegan restaurant in town. This is big news, as the count currently stands at three (including the new place), and we don’t eat at one of the three anymore for reasons I will not go into on this post.

+

The place is called Sundays (yeah, we went on a Saturday, I know) and is run by Darren and Tam, a charming Aussie-Khmer and British couple. It has a beautiful loft style interior with Japanese and Thai accents and a skateboarder ethos. Colorful lithographs by various Thai and Chinese artists line the walls, with some skateboard wall art. A spiral staircase leads to a mezzanine lounge featuring bespoke wooden lounge furniture and a neon sign at the back that reads ‘Take It Easy.’ The design showcases a spacious and inviting open kitchen and high ceilings and large windows, which let in a ton of light and make the place feel airy.

+

Forgive me for starting with dessert, but I’ve never been one for rules. They have vegan waffles! I hadn’t had a waffle for a while. In fact, I’ve had two waffles in the almost four years since I became vegan (largely because we were stuck in Cambodia for three of those years, without Sundays). I had a waffle once at Wai Nam Beach resort in Koh Pha Ngan last year and another at Veganerie, in Bangkok, a few months ago. It sounds silly, I know. I could go out and buy a waffle machine, but then I’d have to own a specialized device that I would only use sporadically, and I’d rather not add another clunky machine to the kitchen storage. So, we shared a tasty pandan coconut waffle with homemade, hand-churned, coconut ice cream, and it was perfect.

+

For dinner, we had some sort of sticky cauliflower chunks, a Khmer fusion somlor korko noodle dish and a spicy tom yum club sandwich. For drinks, we had Thai bubble tea and water.

+

We liked the place so much we’re going back for breakfast today (on a Sunday, of course).

+ +
+
+ +
+ + + + +
+ + +
+
+ + +

+ Attribution 4.0 International (CC BY 4.0) +

+ + + +

+ + + Powered by Hugo & Congo +

+ +
+ + +
+ + +

+ Source code +

+ + +
+ + +
+ + diff --git a/public/archives/2023-07-02/love-and-compassion.jpg b/public/archives/2023-07-02/love-and-compassion.jpg new file mode 100644 index 0000000..b544d8f Binary files /dev/null and b/public/archives/2023-07-02/love-and-compassion.jpg differ diff --git a/public/archives/index.html b/public/archives/index.html index d973d3c..06b716c 100644 --- a/public/archives/index.html +++ b/public/archives/index.html @@ -271,6 +271,72 @@

+ A life-changing conversation + + + +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + ·655 words·4 mins + + + + +
+ + + + + +
+ +
+ One of the reasons I became vegan, and dinner at a new vegan restaurant in town. +
+ +
+ + + +
+
+

+ - ·736 words·4 mins + ·737 words·4 mins @@ -378,7 +444,7 @@
- ·80 words·1 min + ·80 words·1 min diff --git a/public/archives/index.xml b/public/archives/index.xml index 930e8d4..e7f8ff0 100644 --- a/public/archives/index.xml +++ b/public/archives/index.xml @@ -7,11 +7,20 @@ Hugo -- gohugo.io en Attribution 4.0 International (CC BY 4.0) - Sat, 01 Jul 2023 00:00:00 +0000 + Sun, 02 Jul 2023 00:00:00 +0700 + + A life-changing conversation + /archives/2023-07-02/2023-07-02/ + Sun, 02 Jul 2023 00:00:00 +0700 + + /archives/2023-07-02/2023-07-02/ + One of the reasons I became vegan, and dinner at a new vegan restaurant in town. + + On technology /archives/2023-07-01/ - Sat, 01 Jul 2023 00:00:00 +0000 + Sat, 01 Jul 2023 00:00:00 +0700 /archives/2023-07-01/ Fingerprinting as fashion. On enabling useless and potentially harmful technology for the sake of looking cool. @@ -20,7 +29,7 @@ My First Blog Post /archives/2023-06-30/2023-06-30/ - Fri, 30 Jun 2023 00:00:00 +0000 + Fri, 30 Jun 2023 00:00:00 +0700 /archives/2023-06-30/2023-06-30/ Why I am starting this blog. diff --git a/public/blog/404.html b/public/blog/404.html new file mode 100644 index 0000000..109be80 --- /dev/null +++ b/public/blog/404.html @@ -0,0 +1,330 @@ + + + + + + + + + + + + + + + + 404 Page not found · Congo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+ +

Page Not Found 😕

+

+ Error 404 +

+
+

It seems that the page you've requested does not exist.

+
+ + +
+ + +
+
+ + +

+ Attribution 4.0 International (CC BY 4.0) +

+ + + +

+ + + Powered by Hugo & Congo +

+ +
+ + +
+ + +

+ Source code +

+ + +
+ + +
+ + diff --git a/public/blog/about/index.html b/public/blog/about/index.html new file mode 100644 index 0000000..31015e3 --- /dev/null +++ b/public/blog/about/index.html @@ -0,0 +1,350 @@ + + + + + + + + + + + + + + + + · Congo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+ + +
+ +

+
+
+ +
+

About me #

+
+ +

Hi! My name is Marcel. I’m married, have one daughter, and run a construction consultancy and stamped concrete contracting business in Phnom Penh, Cambodia.

+

I like traveling and have previously lived in Mexico, the US, Argentina, and Thailand.

+

I enjoy (think, read about, use or practice) in no particular order: yoga, Emacs, veganism, tinkering, geopolitics, education, and Free Software.

+ +
+
+ +
+

+ There's no articles to list here yet. +

+
+ + + +
+ + +
+
+ + +

+ Attribution 4.0 International (CC BY 4.0) +

+ + + +

+ + + Powered by Hugo & Congo +

+ +
+ + +
+ + +

+ Source code +

+ + +
+ + +
+ + diff --git a/public/blog/about/index.xml b/public/blog/about/index.xml new file mode 100644 index 0000000..cc867b1 --- /dev/null +++ b/public/blog/about/index.xml @@ -0,0 +1,11 @@ + + + + Congo + /about/ + Recent content on Congo + Hugo -- gohugo.io + en + Attribution 4.0 International (CC BY 4.0) + + diff --git a/public/blog/about/marcel.jpg b/public/blog/about/marcel.jpg new file mode 100644 index 0000000..f81bd4e Binary files /dev/null and b/public/blog/about/marcel.jpg differ diff --git a/public/blog/android-chrome-192x192.png b/public/blog/android-chrome-192x192.png new file mode 100644 index 0000000..56bd4ee Binary files /dev/null and b/public/blog/android-chrome-192x192.png differ diff --git a/public/blog/android-chrome-512x512.png b/public/blog/android-chrome-512x512.png new file mode 100644 index 0000000..2d9dd07 Binary files /dev/null and b/public/blog/android-chrome-512x512.png differ diff --git a/public/blog/apple-touch-icon.png b/public/blog/apple-touch-icon.png new file mode 100644 index 0000000..dc8ae42 Binary files /dev/null and b/public/blog/apple-touch-icon.png differ diff --git a/public/blog/archives/2023-06-30/2023-06-30/index.html b/public/blog/archives/2023-06-30/2023-06-30/index.html new file mode 100644 index 0000000..640438b --- /dev/null +++ b/public/blog/archives/2023-06-30/2023-06-30/index.html @@ -0,0 +1,493 @@ + + + + + + + + + + + + + + + + My First Blog Post · Congo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +

+ My First Blog Post +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + ·80 words·1 min + + + + +
+ + + + + +
+ +
+
+ +
+

+ + + + + + + +

+ Sign at parking lot translated from Khmer to English as Exist + +
+ + +

+

A couple of months ago, I stumbled on Jack Baty’s blog, added it to Elfeed, and started reading his daily updates. After a few weeks, I was looking forward to reading them every morning.

+

Being a digital recluse, I’m still a bit skeptical of my capacity to enjoy sharing tidbits of my life openly online, but what the heck, I’ll give it a shot.

+

A shout-out to Jack for unwittingly coaxing me out of the shell.

+

Let the experiment begin!

+ +
+
+ +
+ + +
+ + +
+
+ + +

+ Attribution 4.0 International (CC BY 4.0) +

+ + + +

+ + + Powered by Hugo & Congo +

+ +
+ + +
+ + +

+ Source code +

+ + +
+ + +
+ + diff --git a/public/blog/archives/2023-06-30/exist.jpg b/public/blog/archives/2023-06-30/exist.jpg new file mode 100644 index 0000000..30c3cb5 Binary files /dev/null and b/public/blog/archives/2023-06-30/exist.jpg differ diff --git a/public/blog/archives/2023-07-01/index.html b/public/blog/archives/2023-07-01/index.html new file mode 100644 index 0000000..e00a8f0 --- /dev/null +++ b/public/blog/archives/2023-07-01/index.html @@ -0,0 +1,479 @@ + + + + + + + + + + + + + + + + On technology · Congo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +

+ On technology +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + ·736 words·4 mins + + + + +
+ + + + + +
+ +
+
+ +
+

I arrived at the gym a few weeks ago to notice they were removing the key locks from the lockers and replacing them with some sort of RFID bracelet technology. I chuckled, because this is exactly what I feel is wrong with technolgoy: They replaced a low maintenance time-tested technology (lock and key), with a high-maintenance untested fad consisting of many more moving parts. For starters, each locker now requires a regular battery change. I didn’t open the battery compartment, but it looks like it takes triple A’s.

+

To be fair with the management, the new technology did solve the perennial problem caused by whatever sequential (FIFO?) system they were using to distribute keys to people as they walked in, and which caused congestion at specific areas of the locker room while leaving the rest of the space completely unused. The digital bracelets can lock any locker, allowing members to choose for themselves. I can think of simpler ways of fixing that problem.

+

A week or so later, I walked into the lobby and noticed they were changing the check-in system, consisting of an RFID enabled member card scanned on entry, to what appeared to be fingerprint scanners. Bad news, I thought. Sure enough, within a few days the new system was up, and I was asked to scan my finger and get a new membership card to continue using the facilities. I informed them I would not provide my biometrics to enter a gym (or any place for that matter). The only exception being entering and leaving countries and other mandatory government initiatives where I have no choice.

+

Why do I have a problem with biometrics enabled doors? I makes me feel we’re ushering in a dystopian future we will regret. I see a future where, cheaply and on a massive scale, every door will open (or not) based on each individual: “Sorry citizen, this a “Class A” facility. Based on your socioeconomic profile and psychometric tests (or social credit score?) you are ranked “Class B-”. Please step aside.”

+

I have a problem with the data collection itself. Will this database be sold to third parties? Where are the servers located? What kind of firewall is used? This gym is one of the fanciest in town. Who would like to access member data? For what purposes?

+

I asked politely why they required my fingerprint in addition to the RFID enabled card (which now need not be scanned, but must be deposited at reception to receive towels and locker opening bracelet). They informed me members were sharing their cards with third parties and the owner wanted to fix the problem.

+

I told them my wife and I use the gym almost every day, and had no desire to share the card with anyone else. I also reminded them of the large TV hanging over the entrance gate and displaying each member’s private information as they scan the card, including a photo (the same photo printed on the card itself), and number of times the door has been accessed since the membership became active. They said they would raise the issue with “The Big Boss.”

+

A few weeks of silence ensued; The Big Boss was out of the country, I was informed. Finally, last week I went to ask again and was told The Big Boss understands and respects my dilemma. There are four of us refuseniks in the entire gym. We will be allowed to finish our yearly membership, but will not be allowed to renew it. I mentioned this drama to an acquaintance who lives in a suburb recently and he laughed and told me his gym has no need for cards or fingerprints: a facial recognition system automatically opens the door.

+

Meanwhile, at my gym, a security guard scans an RFID enabled card to let me in every time after I show him my old RFID membership card, which I then deposit with the reception to receive a silicon bracelet and two towels, and scans the card again after I exchange the towels and bracelet for the card. I asked them why they wouldn’t make an exception and allow me to have an RFID card that opens the gate, like the guard’s. Not possible, they said, but would I reconsider my position maybe? I told them there’s only one finger I’m going to give them, and it will not be used for biometric scanning.

+ +
+
+ +
+ + + + +
+ + +
+
+ + +

+ Attribution 4.0 International (CC BY 4.0) +

+ + + +

+ + + Powered by Hugo & Congo +

+ +
+ + +
+ + +

+ Source code +

+ + +
+ + +
+ + diff --git a/public/blog/archives/index.html b/public/blog/archives/index.html new file mode 100644 index 0000000..ecab25d --- /dev/null +++ b/public/blog/archives/index.html @@ -0,0 +1,484 @@ + + + + + + + + + + + + + + + + Archives · Congo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+ + +
+ +

Archives

+
+
+ +
+ +
+
+ +
+ + +

+ 2023 +

+
+ +
+
+

+ + On technology + + + +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + ·736 words·4 mins + + + + +
+ + + + + +
+ +
+ Fingerprinting as fashion. On enabling useless and potentially harmful technology for the sake of looking cool. +
+ +
+
+ + +
+
+

+ + My First Blog Post + + + +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + ·80 words·1 min + + + + +
+ + + + + +
+ +
+ Why I am starting this blog. +
+ +
+
+ + + + +
+ + + + + +
+ + +
+
+ + +

+ Attribution 4.0 International (CC BY 4.0) +

+ + + +

+ + + Powered by Hugo & Congo +

+ +
+ + +
+ + +

+ Source code +

+ + +
+ + +
+ + diff --git a/public/blog/archives/index.xml b/public/blog/archives/index.xml new file mode 100644 index 0000000..6210ced --- /dev/null +++ b/public/blog/archives/index.xml @@ -0,0 +1,30 @@ + + + + Archives on Congo + /archives/ + Recent content in Archives on Congo + Hugo -- gohugo.io + en + Attribution 4.0 International (CC BY 4.0) + Sat, 01 Jul 2023 00:00:00 +0000 + + On technology + /archives/2023-07-01/ + Sat, 01 Jul 2023 00:00:00 +0000 + + /archives/2023-07-01/ + Fingerprinting as fashion. On enabling useless and potentially harmful technology for the sake of looking cool. + + + + My First Blog Post + /archives/2023-06-30/2023-06-30/ + Fri, 30 Jun 2023 00:00:00 +0000 + + /archives/2023-06-30/2023-06-30/ + Why I am starting this blog. + + + + diff --git a/public/blog/archives/page/1/index.html b/public/blog/archives/page/1/index.html new file mode 100644 index 0000000..0fea066 --- /dev/null +++ b/public/blog/archives/page/1/index.html @@ -0,0 +1,10 @@ + + + + /archives/ + + + + + + diff --git a/public/blog/categories/index.html b/public/blog/categories/index.html new file mode 100644 index 0000000..09fa0ed --- /dev/null +++ b/public/blog/categories/index.html @@ -0,0 +1,348 @@ + + + + + + + + + + + + + + + + Categories · Congo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+ +

Categories

+
+ +
+ + + +
+ + +
+ + +
+
+ + +

+ Attribution 4.0 International (CC BY 4.0) +

+ + + +

+ + + Powered by Hugo & Congo +

+ +
+ + +
+ + +

+ Source code +

+ + +
+ + +
+ + diff --git a/public/blog/categories/index.xml b/public/blog/categories/index.xml new file mode 100644 index 0000000..d278c17 --- /dev/null +++ b/public/blog/categories/index.xml @@ -0,0 +1,21 @@ + + + + Categories on Congo + /categories/ + Recent content in Categories on Congo + Hugo -- gohugo.io + en + Attribution 4.0 International (CC BY 4.0) + Sat, 01 Jul 2023 00:00:00 +0000 + + Technology + /categories/technology/ + Sat, 01 Jul 2023 00:00:00 +0000 + + /categories/technology/ + + + + + diff --git a/public/blog/categories/technology/index.html b/public/blog/categories/technology/index.html new file mode 100644 index 0000000..c904340 --- /dev/null +++ b/public/blog/categories/technology/index.html @@ -0,0 +1,412 @@ + + + + + + + + + + + + + + + + Technology · Congo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+ +

Technology

+
+ +
+ +
+ + +

+ 2023 +

+
+ +
+
+

+ + On technology + + + +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + ·736 words·4 mins + + + + +
+ + + + + +
+ +
+ Fingerprinting as fashion. On enabling useless and potentially harmful technology for the sake of looking cool. +
+ +
+
+ + + + +
+ + + +
+ + +
+ + +
+
+ + +

+ Attribution 4.0 International (CC BY 4.0) +

+ + + +

+ + + Powered by Hugo & Congo +

+ +
+ + +
+ + +

+ Source code +

+ + +
+ + +
+ + diff --git a/public/blog/categories/technology/index.xml b/public/blog/categories/technology/index.xml new file mode 100644 index 0000000..bcb14e2 --- /dev/null +++ b/public/blog/categories/technology/index.xml @@ -0,0 +1,21 @@ + + + + Technology on Congo + /categories/technology/ + Recent content in Technology on Congo + Hugo -- gohugo.io + en + Attribution 4.0 International (CC BY 4.0) + Sat, 01 Jul 2023 00:00:00 +0000 + + On technology + /archives/2023-07-01/ + Sat, 01 Jul 2023 00:00:00 +0000 + + /archives/2023-07-01/ + Fingerprinting as fashion. On enabling useless and potentially harmful technology for the sake of looking cool. + + + + diff --git a/public/blog/categories/technology/page/1/index.html b/public/blog/categories/technology/page/1/index.html new file mode 100644 index 0000000..c29c528 --- /dev/null +++ b/public/blog/categories/technology/page/1/index.html @@ -0,0 +1,10 @@ + + + + /categories/technology/ + + + + + + diff --git a/public/blog/css/custom.css b/public/blog/css/custom.css new file mode 100644 index 0000000..d77f654 --- /dev/null +++ b/public/blog/css/custom.css @@ -0,0 +1,15 @@ +img[src$='#floatleft'] +{ + float:left; + //etc. etc/ +} + + +} + +floatleft { + max-width: 30%; + width: auto\9*0.3; /* ie8 */ + height: auto; + float: left; +} diff --git a/public/blog/css/main.bundle.min.17fc506b1c26b1bbc9a782ffffc510d9ecbfef39adb801fd6c673c614f713ffe.css b/public/blog/css/main.bundle.min.17fc506b1c26b1bbc9a782ffffc510d9ecbfef39adb801fd6c673c614f713ffe.css new file mode 100644 index 0000000..ecb9a50 --- /dev/null +++ b/public/blog/css/main.bundle.min.17fc506b1c26b1bbc9a782ffffc510d9ecbfef39adb801fd6c673c614f713ffe.css @@ -0,0 +1 @@ +:root{--color-neutral:255, 255, 255;--color-neutral-50:248, 250, 252;--color-neutral-100:241, 245, 249;--color-neutral-200:226, 232, 240;--color-neutral-300:203, 213, 225;--color-neutral-400:148, 163, 184;--color-neutral-500:100, 116, 139;--color-neutral-600:71, 85, 105;--color-neutral-700:51, 65, 85;--color-neutral-800:30, 41, 59;--color-neutral-900:15, 23, 42;--color-primary-50:239, 246, 255;--color-primary-100:219, 234, 254;--color-primary-200:191, 219, 254;--color-primary-300:147, 197, 253;--color-primary-400:96, 165, 250;--color-primary-500:59, 130, 246;--color-primary-600:37, 99, 235;--color-primary-700:29, 78, 216;--color-primary-800:30, 64, 175;--color-primary-900:30, 58, 138;--color-secondary-50:236, 254, 255;--color-secondary-100:207, 250, 254;--color-secondary-200:165, 243, 252;--color-secondary-300:103, 232, 249;--color-secondary-400:34, 211, 238;--color-secondary-500:6, 182, 212;--color-secondary-600:8, 145, 178;--color-secondary-700:14, 116, 144;--color-secondary-800:21, 94, 117;--color-secondary-900:22, 78, 99}/*!Congo v2.6.1 | MIT License | https://github.com/jpanther/congo*//*!tailwindcss v3.3.2 | MIT License | https://tailwindcss.com*/*,::before,::after{box-sizing:border-box;border-width:0;border-style:solid;border-color:initial}::before,::after{--tw-content:''}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,segoe ui,Roboto,helvetica neue,Arial,noto sans,sans-serif,apple color emoji,segoe ui emoji,segoe ui symbol,noto color emoji;font-feature-settings:normal;font-variation-settings:normal}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,liberation mono,courier new,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,::before,::after{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.prose :where(a):not(:where([class~=not-prose] *)){color:var(--tw-prose-links);text-decoration:underline;font-weight:500;text-decoration-color:rgba(var(--color-primary-300),1)}.prose :where(a):not(:where([class~=not-prose] *)):hover{color:rgba(var(--color-neutral),1);text-decoration:none;background-color:rgba(var(--color-primary-600),1);border-radius:.09rem}.prose :where(strong):not(:where([class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose] *)){color:inherit}.prose :where(blockquote strong):not(:where([class~=not-prose] *)){color:inherit}.prose :where(thead th strong):not(:where([class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose] *)){list-style-type:decimal;margin-top:1.25em;margin-bottom:1.25em;padding-left:1.625em}.prose :where(ol[type=A]):not(:where([class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=As]):not(:where([class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=as]):not(:where([class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=Is]):not(:where([class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=is]):not(:where([class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose] *)){list-style-type:disc;margin-top:1.25em;margin-bottom:1.25em;padding-left:1.625em}.prose :where(ol>li):not(:where([class~=not-prose] *))::marker{font-weight:400;color:var(--tw-prose-counters)}.prose :where(ul>li):not(:where([class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(hr):not(:where([class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose] *)){font-weight:500;font-style:italic;color:var(--tw-prose-quotes);border-left-width:.25rem;border-left-color:var(--tw-prose-quote-borders);quotes:"\201C""\201D""\2018""\2019";margin-top:1.6em;margin-bottom:1.6em;padding-left:1em}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose] *))::before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose] *))::after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.prose :where(h1 strong):not(:where([class~=not-prose] *)){font-weight:900;color:inherit}.prose :where(h2):not(:where([class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:700;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.prose :where(h2 strong):not(:where([class~=not-prose] *)){font-weight:800;color:inherit}.prose :where(h3):not(:where([class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(h4):not(:where([class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(img):not(:where([class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(figure>*):not(:where([class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose :where(code):not(:where([class~=not-prose] *)){color:var(--tw-prose-code);font-weight:600;font-size:.875em}.prose :where(code):not(:where([class~=not-prose] *))::before{content:"`"}.prose :where(code):not(:where([class~=not-prose] *))::after{content:"`"}.prose :where(a code):not(:where([class~=not-prose] *)){color:var(--tw-prose-code)}.prose :where(h1 code):not(:where([class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose] *)){color:inherit}.prose :where(blockquote code):not(:where([class~=not-prose] *)){color:inherit}.prose :where(thead th code):not(:where([class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);overflow-x:auto;font-weight:400;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding-top:.8571429em;padding-right:1.1428571em;padding-bottom:.8571429em;padding-left:1.1428571em}.prose :where(pre code):not(:where([class~=not-prose] *)){background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.prose :where(pre code):not(:where([class~=not-prose] *))::before{content:none}.prose :where(pre code):not(:where([class~=not-prose] *))::after{content:none}.prose :where(table):not(:where([class~=not-prose] *)){width:100%;table-layout:auto;text-align:left;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.prose :where(thead):not(:where([class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;vertical-align:bottom;padding-right:.5714286em;padding-bottom:.5714286em;padding-left:.5714286em}.prose :where(tbody tr):not(:where([class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose] *)){vertical-align:top}.prose{--tw-prose-body:rgba(var(--color-neutral-700), 1);--tw-prose-headings:rgba(var(--color-neutral-800), 1);--tw-prose-lead:rgba(var(--color-neutral-500), 1);--tw-prose-links:rgba(var(--color-primary-700), 1);--tw-prose-bold:rgba(var(--color-neutral-900), 1);--tw-prose-counters:rgba(var(--color-neutral-800), 1);--tw-prose-bullets:rgba(var(--color-neutral-500), 1);--tw-prose-hr:rgba(var(--color-neutral-200), 1);--tw-prose-quotes:rgba(var(--color-neutral-700), 1);--tw-prose-quote-borders:rgba(var(--color-primary-200), 1);--tw-prose-captions:rgba(var(--color-neutral-500), 1);--tw-prose-code:rgba(var(--color-secondary-700), 1);--tw-prose-pre-code:rgba(var(--color-neutral-700), 1);--tw-prose-pre-bg:rgba(var(--color-neutral-50), 1);--tw-prose-th-borders:rgba(var(--color-neutral-500), 1);--tw-prose-td-borders:rgba(var(--color-neutral-300), 1);--tw-prose-invert-body:rgba(var(--color-neutral-300), 1);--tw-prose-invert-headings:rgba(var(--color-neutral-50), 1);--tw-prose-invert-lead:rgba(var(--color-neutral-500), 1);--tw-prose-invert-links:rgba(var(--color-primary-400), 1);--tw-prose-invert-bold:rgba(var(--color-neutral), 1);--tw-prose-invert-counters:rgba(var(--color-neutral-400), 1);--tw-prose-invert-bullets:rgba(var(--color-neutral-600), 1);--tw-prose-invert-hr:rgba(var(--color-neutral-500), 1);--tw-prose-invert-quotes:rgba(var(--color-neutral-200), 1);--tw-prose-invert-quote-borders:rgba(var(--color-primary-900), 1);--tw-prose-invert-captions:rgba(var(--color-neutral-400), 1);--tw-prose-invert-code:rgba(var(--color-secondary-400), 1);--tw-prose-invert-pre-code:rgba(var(--color-neutral-200), 1);--tw-prose-invert-pre-bg:rgba(var(--color-neutral-700), 1);--tw-prose-invert-th-borders:rgba(var(--color-neutral-500), 1);--tw-prose-invert-td-borders:rgba(var(--color-neutral-700), 1);font-size:1rem;line-height:1.75}.prose :where(video):not(:where([class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(figure):not(:where([class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(li):not(:where([class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose] *)){padding-left:.375em}.prose :where(ul>li):not(:where([class~=not-prose] *)){padding-left:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>*:first-child):not(:where([class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>*:last-child):not(:where([class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>*:first-child):not(:where([class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>*:last-child):not(:where([class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(hr+*):not(:where([class~=not-prose] *)){margin-top:0}.prose :where(h2+*):not(:where([class~=not-prose] *)){margin-top:0}.prose :where(h3+*):not(:where([class~=not-prose] *)){margin-top:0}.prose :where(h4+*):not(:where([class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose] *)){padding-left:0}.prose :where(thead th:last-child):not(:where([class~=not-prose] *)){padding-right:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose] *)){padding-top:.5714286em;padding-right:.5714286em;padding-bottom:.5714286em;padding-left:.5714286em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose] *)){padding-left:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose] *)){padding-right:0}.prose :where(.prose>:first-child):not(:where([class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose] *)){margin-bottom:0}.prose :where(kbd):not(:where([class~=not-prose] *)){background-color:rgba(var(--color-neutral-200),1);padding:.1rem .4rem;border-radius:.25rem;font-size:.9rem;font-weight:600}.prose :where(mark):not(:where([class~=not-prose] *)){color:rgba(var(--color-neutral-800),1);background-color:rgba(var(--color-secondary-200),1);padding:.1rem .2rem;border-radius:.12rem}body a,body button{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:150ms}.icon svg{height:1em;width:1em}#search-query::-webkit-search-cancel-button,#search-query::-webkit-search-decoration,#search-query::-webkit-search-results-button,#search-query::-webkit-search-results-decoration{display:none}body:has(#menu-controller:checked){height:100vh;overflow:hidden}#menu-button:has(#menu-controller:checked){visibility:hidden}#menu-controller:checked~#menu-wrapper{visibility:visible;opacity:1}:is([dir=rtl] .prose blockquote){border-left-width:0;border-right-width:4px;padding-right:1rem}:is([dir=rtl] .prose ul>li),:is([dir=rtl] .prose ol>li){margin-right:1.75rem;padding-left:0;padding-right:.5rem}:is([dir=rtl] .prose ol>li):before,:is([dir=rtl] .prose ul>li):before{left:auto;right:.25rem}:is([dir=rtl] .prose thead td:first-child),:is([dir=rtl] .prose thead th:first-child){padding-right:0}:is([dir=rtl] .prose thead td:last-child),:is([dir=rtl] .prose thead th:last-child){padding-left:0}.prose div.min-w-0.max-w-prose>*:first-child{margin-top:.75rem}.toc ul,.toc li{list-style-type:none;padding-left:0;padding-right:0;line-height:1.375}.toc ul ul{-webkit-padding-start:1rem;padding-inline-start:1rem}.toc a{font-weight:400;--tw-text-opacity:1;color:rgba(var(--color-neutral-700),var(--tw-text-opacity))}:is(.dark .toc a){--tw-text-opacity:1;color:rgba(var(--color-neutral-400),var(--tw-text-opacity))}:is([dir=rtl] .toc ul>li){margin-right:0}.highlight-wrapper{display:block}.highlight{position:relative;z-index:0}.highlight:hover>.copy-button{visibility:visible}.copy-button{visibility:hidden;position:absolute;right:0;top:0;z-index:10;width:5rem;cursor:pointer;white-space:nowrap;border-bottom-left-radius:.375rem;border-top-right-radius:.375rem;--tw-bg-opacity:1;background-color:rgba(var(--color-neutral-200),var(--tw-bg-opacity));padding-top:.25rem;padding-bottom:.25rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,liberation mono,courier new,monospace;font-size:.875rem;line-height:1.25rem;--tw-text-opacity:1;color:rgba(var(--color-neutral-700),var(--tw-text-opacity));opacity:.9}:is(.dark .copy-button){--tw-bg-opacity:1;background-color:rgba(var(--color-neutral-600),var(--tw-bg-opacity));--tw-text-opacity:1;color:rgba(var(--color-neutral-200),var(--tw-text-opacity))}.copy-button:hover,.copy-button:focus,.copy-button:active,.copy-button:active:hover{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-100),var(--tw-bg-opacity))}:is(.dark .copy-button:hover),:is(.dark .copy-button:focus),:is(.dark .copy-button:active),:is(.dark .copy-button:active:hover){--tw-bg-opacity:1;background-color:rgba(var(--color-primary-600),var(--tw-bg-opacity))}.copy-textarea{position:absolute;z-index:-10;opacity:.05}.chroma{border-radius:.375rem;--tw-bg-opacity:1;background-color:rgba(var(--color-neutral-50),var(--tw-bg-opacity));padding-top:.75rem;padding-bottom:.75rem;--tw-text-opacity:1;color:rgba(var(--color-neutral-700),var(--tw-text-opacity))}:is(.dark .chroma){--tw-bg-opacity:1;background-color:rgba(var(--color-neutral-700),var(--tw-bg-opacity));--tw-text-opacity:1;color:rgba(var(--color-neutral-200),var(--tw-text-opacity))}.chroma pre{margin:0;padding:0}.chroma .lntable{margin:0;display:block;width:auto;overflow:auto;font-size:1rem;line-height:1.5rem}.chroma .lnt,.chroma .ln{margin-right:.5rem;padding-left:.5rem;padding-right:.5rem;--tw-text-opacity:1;color:rgba(var(--color-neutral-600),var(--tw-text-opacity))}:is(.dark .chroma .lnt),:is(.dark .chroma .ln){--tw-text-opacity:1;color:rgba(var(--color-neutral-300),var(--tw-text-opacity))}.chroma .lntd{padding:0;vertical-align:top}.chroma .lntd:last-of-type{width:100%}.chroma .hl{display:block;width:100%;--tw-bg-opacity:1;background-color:rgba(var(--color-primary-100),var(--tw-bg-opacity))}:is(.dark .chroma .hl){--tw-bg-opacity:1;background-color:rgba(var(--color-primary-900),var(--tw-bg-opacity))}.chroma .k,.chroma .kd,.chroma .kn,.chroma .kp,.chroma .kr,.chroma .nc,.chroma .fm,.chroma .nn,.chroma .vc,.chroma .o{--tw-text-opacity:1;color:rgba(var(--color-primary-600),var(--tw-text-opacity))}:is(.dark .chroma .k),:is(.dark .chroma .kd),:is(.dark .chroma .kn),:is(.dark .chroma .kp),:is(.dark .chroma .kr),:is(.dark .chroma .nc),:is(.dark .chroma .fm),:is(.dark .chroma .nn),:is(.dark .chroma .vc),:is(.dark .chroma .o){--tw-text-opacity:1;color:rgba(var(--color-primary-300),var(--tw-text-opacity))}.chroma .kc{font-weight:600;--tw-text-opacity:1;color:rgba(var(--color-secondary-400),var(--tw-text-opacity))}:is(.dark .chroma .kc){--tw-text-opacity:1;color:rgba(var(--color-secondary-500),var(--tw-text-opacity))}.chroma .kt,.chroma .nv,.chroma .vi,.chroma .vm,.chroma .m,.chroma .mb,.chroma .mf,.chroma .mh,.chroma .mi,.chroma .il,.chroma .mo{--tw-text-opacity:1;color:rgba(var(--color-secondary-400),var(--tw-text-opacity))}:is(.dark .chroma .kt),:is(.dark .chroma .nv),:is(.dark .chroma .vi),:is(.dark .chroma .vm),:is(.dark .chroma .m),:is(.dark .chroma .mb),:is(.dark .chroma .mf),:is(.dark .chroma .mh),:is(.dark .chroma .mi),:is(.dark .chroma .il),:is(.dark .chroma .mo){--tw-text-opacity:1;color:rgba(var(--color-secondary-600),var(--tw-text-opacity))}.chroma .n,.chroma .nd,.chroma .ni,.chroma .nl{--tw-text-opacity:1;color:rgba(var(--color-secondary-900),var(--tw-text-opacity))}:is(.dark .chroma .n),:is(.dark .chroma .nd),:is(.dark .chroma .ni),:is(.dark .chroma .nl){--tw-text-opacity:1;color:rgba(var(--color-secondary-200),var(--tw-text-opacity))}.chroma .na,.chroma .nb,.chroma .bp,.chroma .nx,.chroma .py,.chroma .nt{--tw-text-opacity:1;color:rgba(var(--color-secondary-800),var(--tw-text-opacity))}:is(.dark .chroma .na),:is(.dark .chroma .nb),:is(.dark .chroma .bp),:is(.dark .chroma .nx),:is(.dark .chroma .py),:is(.dark .chroma .nt){--tw-text-opacity:1;color:rgba(var(--color-secondary-300),var(--tw-text-opacity))}.chroma .no,.chroma .ne,.chroma .vg{font-weight:600;--tw-text-opacity:1;color:rgba(var(--color-secondary-400),var(--tw-text-opacity))}:is(.dark .chroma .no),:is(.dark .chroma .ne),:is(.dark .chroma .vg){--tw-text-opacity:1;color:rgba(var(--color-secondary-500),var(--tw-text-opacity))}.chroma .nf{--tw-text-opacity:1;color:rgba(var(--color-secondary-600),var(--tw-text-opacity))}:is(.dark .chroma .nf){--tw-text-opacity:1;color:rgba(var(--color-secondary-500),var(--tw-text-opacity))}.chroma .l,.chroma .ld,.chroma .s,.chroma .sa,.chroma .sb,.chroma .sc,.chroma .dl,.chroma .sd,.chroma .s2,.chroma .sh,.chroma .si,.chroma .sx,.chroma .s1,.chroma .gi,.chroma .go,.chroma .gp{--tw-text-opacity:1;color:rgba(var(--color-primary-800),var(--tw-text-opacity))}:is(.dark .chroma .l),:is(.dark .chroma .ld),:is(.dark .chroma .s),:is(.dark .chroma .sa),:is(.dark .chroma .sb),:is(.dark .chroma .sc),:is(.dark .chroma .dl),:is(.dark .chroma .sd),:is(.dark .chroma .s2),:is(.dark .chroma .sh),:is(.dark .chroma .si),:is(.dark .chroma .sx),:is(.dark .chroma .s1),:is(.dark .chroma .gi),:is(.dark .chroma .go),:is(.dark .chroma .gp){--tw-text-opacity:1;color:rgba(var(--color-primary-400),var(--tw-text-opacity))}.chroma .se{font-weight:600;--tw-text-opacity:1;color:rgba(var(--color-secondary-400),var(--tw-text-opacity))}:is(.dark .chroma .se){--tw-text-opacity:1;color:rgba(var(--color-secondary-500),var(--tw-text-opacity))}.chroma .sr,.chroma .ss{font-weight:600;--tw-text-opacity:1;color:rgba(var(--color-primary-800),var(--tw-text-opacity))}:is(.dark .chroma .sr),:is(.dark .chroma .ss){--tw-text-opacity:1;color:rgba(var(--color-primary-400),var(--tw-text-opacity))}.chroma .ow{font-weight:600;--tw-text-opacity:1;color:rgba(var(--color-primary-400),var(--tw-text-opacity))}:is(.dark .chroma .ow){--tw-text-opacity:1;color:rgba(var(--color-primary-600),var(--tw-text-opacity))}.chroma .c,.chroma .cm,.chroma .c1,.chroma .cs,.chroma .cp,.chroma .cpf{font-style:italic;--tw-text-opacity:1;color:rgba(var(--color-neutral-500),var(--tw-text-opacity))}:is(.dark .chroma .c),:is(.dark .chroma .cm),:is(.dark .chroma .c1),:is(.dark .chroma .cs),:is(.dark .chroma .cp),:is(.dark .chroma .cpf){--tw-text-opacity:1;color:rgba(var(--color-neutral-400),var(--tw-text-opacity))}.chroma .ch{font-weight:600;font-style:italic;--tw-text-opacity:1;color:rgba(var(--color-neutral-500),var(--tw-text-opacity))}:is(.dark .chroma .ch){--tw-text-opacity:1;color:rgba(var(--color-neutral-400),var(--tw-text-opacity))}.chroma .ge{font-style:italic}.chroma .gh{font-weight:600;--tw-text-opacity:1;color:rgba(var(--color-neutral-500),var(--tw-text-opacity))}.chroma .gs{font-weight:600}.chroma .gu,.chroma .gt{--tw-text-opacity:1;color:rgba(var(--color-neutral-500),var(--tw-text-opacity))}.chroma .gl{text-decoration-line:underline}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.invisible{visibility:hidden}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.-start-6{inset-inline-start:-1.5rem}.bottom-0{bottom:0}.end-0{inset-inline-end:0}.top-0{top:0}.top-20{top:5rem}.top-\[100vh\]{top:100vh}.top-\[calc\(100vh-5\.5rem\)\]{top:calc(100vh - 5.5rem)}.z-10{z-index:10}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.order-first{order:-9999}.m-1{margin:.25rem}.m-auto{margin:auto}.-mx-2{margin-left:-.5rem;margin-right:-.5rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0{margin-top:0;margin-bottom:0}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-3{margin-top:.75rem;margin-bottom:.75rem}.\!mb-0{margin-bottom:0!important}.\!mb-9{margin-bottom:2.25rem!important}.\!mt-0{margin-top:0!important}.-mb-1{margin-bottom:-.25rem}.-ms-5{-webkit-margin-start:-1.25rem;margin-inline-start:-1.25rem}.-mt-3{margin-top:-.75rem}.-mt-4{margin-top:-1rem}.mb-1{margin-bottom:.25rem}.mb-12{margin-bottom:3rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-6{margin-bottom:1.5rem}.mb-\[2px\]{margin-bottom:2px}.me-14{-webkit-margin-end:3.5rem;margin-inline-end:3.5rem}.me-2{-webkit-margin-end:.5rem;margin-inline-end:.5rem}.me-4{-webkit-margin-end:1rem;margin-inline-end:1rem}.ml-2{margin-left:.5rem}.mr-2{margin-right:.5rem}.ms-1{-webkit-margin-start:.25rem;margin-inline-start:.25rem}.ms-2{-webkit-margin-start:.5rem;margin-inline-start:.5rem}.mt-0{margin-top:0}.mt-1{margin-top:.25rem}.mt-10{margin-top:2.5rem}.mt-12{margin-top:3rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-\[0\.1rem\]{margin-top:.1rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.hidden{display:none}.h-12{height:3rem}.h-24{height:6rem}.h-36{height:9rem}.h-8{height:2rem}.h-full{height:100%}.h-screen{height:100vh}.max-h-\[10rem\]{max-height:10rem}.max-h-\[4\.5rem\]{max-height:4.5rem}.min-h-0{min-height:0}.w-12{width:3rem}.w-24{width:6rem}.w-36{width:9rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-full{width:100%}.w-screen{width:100vw}.min-w-0{min-width:0}.min-w-\[1\.8rem\]{min-width:1.8rem}.min-w-\[2\.4rem\]{min-width:2.4rem}.max-w-3xl{max-width:48rem}.max-w-7xl{max-width:80rem}.max-w-\[10rem\]{max-width:10rem}.max-w-\[6rem\]{max-width:6rem}.max-w-full{max-width:100%}.max-w-prose{max-width:65ch}.flex-auto{flex:auto}.flex-none{flex:none}.grow{flex-grow:1}.-translate-y-8{--tw-translate-y:-2rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.list-none{list-style-type:none}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.place-self-center{place-self:center}.self-center{align-self:center}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.scroll-smooth{scroll-behavior:smooth}.\!rounded-md{border-radius:.375rem!important}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-b-lg{border-bottom-right-radius:.5rem;border-bottom-left-radius:.5rem}.border{border-width:1px}.border-s{border-inline-start-width:1px}.border-t{border-top-width:1px}.border-dotted{border-style:dotted}.border-neutral-200{--tw-border-opacity:1;border-color:rgba(var(--color-neutral-200),var(--tw-border-opacity))}.border-neutral-300{--tw-border-opacity:1;border-color:rgba(var(--color-neutral-300),var(--tw-border-opacity))}.border-neutral-400{--tw-border-opacity:1;border-color:rgba(var(--color-neutral-400),var(--tw-border-opacity))}.border-primary-400{--tw-border-opacity:1;border-color:rgba(var(--color-primary-400),var(--tw-border-opacity))}.bg-neutral{--tw-bg-opacity:1;background-color:rgba(var(--color-neutral),var(--tw-bg-opacity))}.bg-neutral-100{--tw-bg-opacity:1;background-color:rgba(var(--color-neutral-100),var(--tw-bg-opacity))}.bg-neutral-100\/50{background-color:rgba(var(--color-neutral-100),.5)}.bg-neutral-300{--tw-bg-opacity:1;background-color:rgba(var(--color-neutral-300),var(--tw-bg-opacity))}.bg-neutral-500\/50{background-color:rgba(var(--color-neutral-500),.5)}.bg-neutral\/50{background-color:rgba(var(--color-neutral),.5)}.bg-primary-100{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-100),var(--tw-bg-opacity))}.bg-primary-200{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-200),var(--tw-bg-opacity))}.bg-primary-600{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-600),var(--tw-bg-opacity))}.bg-transparent{background-color:transparent}.object-scale-down{-o-object-fit:scale-down;object-fit:scale-down}.object-left{-o-object-position:left;object-position:left}.p-1{padding:.25rem}.p-4{padding:1rem}.px-0{padding-left:0;padding-right:0}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.py-\[1px\]{padding-top:1px;padding-bottom:1px}.pb-4{padding-bottom:1rem}.pe-2{-webkit-padding-end:.5rem;padding-inline-end:.5rem}.pe-3{-webkit-padding-end:.75rem;padding-inline-end:.75rem}.pe-4{-webkit-padding-end:1rem;padding-inline-end:1rem}.pe-5{-webkit-padding-end:1.25rem;padding-inline-end:1.25rem}.ps-2{-webkit-padding-start:.5rem;padding-inline-start:.5rem}.ps-5{-webkit-padding-start:1.25rem;padding-inline-start:1.25rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-8{padding-top:2rem}.text-center{text-align:center}.text-right{text-align:right}.align-top{vertical-align:top}.align-text-bottom{vertical-align:text-bottom}.text-2xl{font-size:1.5rem;line-height:2rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-\[0\.6rem\]{font-size:.6rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.leading-3{line-height:.75rem}.leading-6{line-height:1.5rem}.leading-7{line-height:1.75rem}.leading-relaxed{line-height:1.625}.\!text-neutral{--tw-text-opacity:1 !important;color:rgba(var(--color-neutral),var(--tw-text-opacity))!important}.text-neutral-400{--tw-text-opacity:1;color:rgba(var(--color-neutral-400),var(--tw-text-opacity))}.text-neutral-500{--tw-text-opacity:1;color:rgba(var(--color-neutral-500),var(--tw-text-opacity))}.text-neutral-700{--tw-text-opacity:1;color:rgba(var(--color-neutral-700),var(--tw-text-opacity))}.text-neutral-800{--tw-text-opacity:1;color:rgba(var(--color-neutral-800),var(--tw-text-opacity))}.text-neutral-900{--tw-text-opacity:1;color:rgba(var(--color-neutral-900),var(--tw-text-opacity))}.text-primary-400{--tw-text-opacity:1;color:rgba(var(--color-primary-400),var(--tw-text-opacity))}.text-primary-500{--tw-text-opacity:1;color:rgba(var(--color-primary-500),var(--tw-text-opacity))}.text-primary-600{--tw-text-opacity:1;color:rgba(var(--color-primary-600),var(--tw-text-opacity))}.text-primary-700{--tw-text-opacity:1;color:rgba(var(--color-primary-700),var(--tw-text-opacity))}.\!no-underline{text-decoration-line:none!important}.decoration-neutral-300{text-decoration-color:rgba(var(--color-neutral-300),1)}.decoration-primary-500{text-decoration-color:rgba(var(--color-primary-500),1)}.opacity-0{opacity:0}.shadow-lg{--tw-shadow:0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur)var(--tw-backdrop-brightness)var(--tw-backdrop-contrast)var(--tw-backdrop-grayscale)var(--tw-backdrop-hue-rotate)var(--tw-backdrop-invert)var(--tw-backdrop-opacity)var(--tw-backdrop-saturate)var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur)var(--tw-backdrop-brightness)var(--tw-backdrop-contrast)var(--tw-backdrop-grayscale)var(--tw-backdrop-hue-rotate)var(--tw-backdrop-invert)var(--tw-backdrop-opacity)var(--tw-backdrop-saturate)var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur:blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur)var(--tw-backdrop-brightness)var(--tw-backdrop-contrast)var(--tw-backdrop-grayscale)var(--tw-backdrop-hue-rotate)var(--tw-backdrop-invert)var(--tw-backdrop-opacity)var(--tw-backdrop-saturate)var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur)var(--tw-backdrop-brightness)var(--tw-backdrop-contrast)var(--tw-backdrop-grayscale)var(--tw-backdrop-hue-rotate)var(--tw-backdrop-invert)var(--tw-backdrop-opacity)var(--tw-backdrop-saturate)var(--tw-backdrop-sepia)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:150ms}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:150ms}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:150ms}:is(.dark .dark\:prose-invert){--tw-prose-body:var(--tw-prose-invert-body);--tw-prose-headings:var(--tw-prose-invert-headings);--tw-prose-lead:var(--tw-prose-invert-lead);--tw-prose-links:var(--tw-prose-invert-links);--tw-prose-bold:var(--tw-prose-invert-bold);--tw-prose-counters:var(--tw-prose-invert-counters);--tw-prose-bullets:var(--tw-prose-invert-bullets);--tw-prose-hr:var(--tw-prose-invert-hr);--tw-prose-quotes:var(--tw-prose-invert-quotes);--tw-prose-quote-borders:var(--tw-prose-invert-quote-borders);--tw-prose-captions:var(--tw-prose-invert-captions);--tw-prose-code:var(--tw-prose-invert-code);--tw-prose-pre-code:var(--tw-prose-invert-pre-code);--tw-prose-pre-bg:var(--tw-prose-invert-pre-bg);--tw-prose-th-borders:var(--tw-prose-invert-th-borders);--tw-prose-td-borders:var(--tw-prose-invert-td-borders)}:is(.dark .dark\:prose-invert) :where(a):not(:where([class~=not-prose] *)){text-decoration-color:rgba(var(--color-neutral-600),1)}:is(.dark .dark\:prose-invert) :where(kbd):not(:where([class~=not-prose] *)){color:rgba(var(--color-neutral-200),1);background-color:rgba(var(--color-neutral-700),1)}:is(.dark .dark\:prose-invert) :where(mark):not(:where([class~=not-prose] *)){background-color:rgba(var(--color-secondary-400),1)}.first\:mt-8:first-child{margin-top:2rem}.hover\:scale-125:hover{--tw-scale-x:1.25;--tw-scale-y:1.25;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.hover\:border-primary-300:hover{--tw-border-opacity:1;border-color:rgba(var(--color-primary-300),var(--tw-border-opacity))}.hover\:\!bg-primary-500:hover{--tw-bg-opacity:1 !important;background-color:rgba(var(--color-primary-500),var(--tw-bg-opacity))!important}.hover\:bg-primary-100:hover{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-100),var(--tw-bg-opacity))}.hover\:bg-primary-500:hover{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-500),var(--tw-bg-opacity))}.hover\:bg-primary-600:hover{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-600),var(--tw-bg-opacity))}.hover\:text-neutral:hover{--tw-text-opacity:1;color:rgba(var(--color-neutral),var(--tw-text-opacity))}.hover\:text-primary-500:hover{--tw-text-opacity:1;color:rgba(var(--color-primary-500),var(--tw-text-opacity))}.hover\:text-primary-600:hover{--tw-text-opacity:1;color:rgba(var(--color-primary-600),var(--tw-text-opacity))}.hover\:text-primary-700:hover{--tw-text-opacity:1;color:rgba(var(--color-primary-700),var(--tw-text-opacity))}.hover\:underline:hover{text-decoration-line:underline}.hover\:decoration-primary-400:hover{text-decoration-color:rgba(var(--color-primary-400),1)}.hover\:decoration-2:hover{text-decoration-thickness:2px}.hover\:underline-offset-2:hover{text-underline-offset:2px}.focus\:translate-y-0:focus{--tw-translate-y:0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.focus\:bg-primary-100:focus{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-100),var(--tw-bg-opacity))}.focus\:outline-dotted:focus{outline-style:dotted}.focus\:outline-2:focus{outline-width:2px}.focus\:outline-transparent:focus{outline-color:transparent}.group:hover .group-hover\:-translate-x-\[2px\]{--tw-translate-x:-2px;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.group:hover .group-hover\:text-primary-300{--tw-text-opacity:1;color:rgba(var(--color-primary-300),var(--tw-text-opacity))}.group:hover .group-hover\:text-primary-600{--tw-text-opacity:1;color:rgba(var(--color-primary-600),var(--tw-text-opacity))}.group:hover .group-hover\:underline{text-decoration-line:underline}.group:hover .group-hover\:decoration-primary-500{text-decoration-color:rgba(var(--color-primary-500),1)}.group:hover .group-hover\:decoration-2{text-decoration-thickness:2px}.group:hover .group-hover\:underline-offset-2{text-underline-offset:2px}.group:hover .group-hover\:opacity-100{opacity:1}:is([dir=ltr] .ltr\:block){display:block}:is([dir=ltr] .ltr\:inline){display:inline}:is([dir=ltr] .ltr\:hidden){display:none}:is([dir=ltr] .ltr\:text-right){text-align:right}:is([dir=rtl] .rtl\:block){display:block}:is([dir=rtl] .rtl\:inline){display:inline}:is([dir=rtl] .rtl\:hidden){display:none}:is([dir=rtl] .rtl\:text-left){text-align:left}:is(.dark .dark\:inline){display:inline}:is(.dark .dark\:flex){display:flex}:is(.dark .dark\:hidden){display:none}:is(.dark .dark\:border-neutral-600){--tw-border-opacity:1;border-color:rgba(var(--color-neutral-600),var(--tw-border-opacity))}:is(.dark .dark\:border-neutral-700){--tw-border-opacity:1;border-color:rgba(var(--color-neutral-700),var(--tw-border-opacity))}:is(.dark .dark\:border-primary-600){--tw-border-opacity:1;border-color:rgba(var(--color-primary-600),var(--tw-border-opacity))}:is(.dark .dark\:bg-neutral-600){--tw-bg-opacity:1;background-color:rgba(var(--color-neutral-600),var(--tw-bg-opacity))}:is(.dark .dark\:bg-neutral-700){--tw-bg-opacity:1;background-color:rgba(var(--color-neutral-700),var(--tw-bg-opacity))}:is(.dark .dark\:bg-neutral-800){--tw-bg-opacity:1;background-color:rgba(var(--color-neutral-800),var(--tw-bg-opacity))}:is(.dark .dark\:bg-neutral-800\/50){background-color:rgba(var(--color-neutral-800),.5)}:is(.dark .dark\:bg-neutral-900\/50){background-color:rgba(var(--color-neutral-900),.5)}:is(.dark .dark\:bg-primary-400){--tw-bg-opacity:1;background-color:rgba(var(--color-primary-400),var(--tw-bg-opacity))}:is(.dark .dark\:bg-primary-800){--tw-bg-opacity:1;background-color:rgba(var(--color-primary-800),var(--tw-bg-opacity))}:is(.dark .dark\:bg-primary-900){--tw-bg-opacity:1;background-color:rgba(var(--color-primary-900),var(--tw-bg-opacity))}:is(.dark .dark\:text-neutral){--tw-text-opacity:1;color:rgba(var(--color-neutral),var(--tw-text-opacity))}:is(.dark .dark\:text-neutral-100){--tw-text-opacity:1;color:rgba(var(--color-neutral-100),var(--tw-text-opacity))}:is(.dark .dark\:text-neutral-300){--tw-text-opacity:1;color:rgba(var(--color-neutral-300),var(--tw-text-opacity))}:is(.dark .dark\:text-neutral-400){--tw-text-opacity:1;color:rgba(var(--color-neutral-400),var(--tw-text-opacity))}:is(.dark .dark\:text-neutral-500){--tw-text-opacity:1;color:rgba(var(--color-neutral-500),var(--tw-text-opacity))}:is(.dark .dark\:text-neutral-800){--tw-text-opacity:1;color:rgba(var(--color-neutral-800),var(--tw-text-opacity))}:is(.dark .dark\:text-primary-400){--tw-text-opacity:1;color:rgba(var(--color-primary-400),var(--tw-text-opacity))}:is(.dark .dark\:hover\:border-primary-600:hover){--tw-border-opacity:1;border-color:rgba(var(--color-primary-600),var(--tw-border-opacity))}:is(.dark .dark\:hover\:\!bg-primary-700:hover){--tw-bg-opacity:1 !important;background-color:rgba(var(--color-primary-700),var(--tw-bg-opacity))!important}:is(.dark .dark\:hover\:bg-primary-400:hover){--tw-bg-opacity:1;background-color:rgba(var(--color-primary-400),var(--tw-bg-opacity))}:is(.dark .dark\:hover\:bg-primary-900:hover){--tw-bg-opacity:1;background-color:rgba(var(--color-primary-900),var(--tw-bg-opacity))}:is(.dark .dark\:hover\:text-neutral-800:hover){--tw-text-opacity:1;color:rgba(var(--color-neutral-800),var(--tw-text-opacity))}:is(.dark .dark\:hover\:text-primary-400:hover){--tw-text-opacity:1;color:rgba(var(--color-primary-400),var(--tw-text-opacity))}:is(.dark .dark\:focus\:bg-primary-900:focus){--tw-bg-opacity:1;background-color:rgba(var(--color-primary-900),var(--tw-bg-opacity))}:is(.dark .group:hover .dark\:group-hover\:text-neutral-700){--tw-text-opacity:1;color:rgba(var(--color-neutral-700),var(--tw-text-opacity))}:is(.dark .group:hover .dark\:group-hover\:text-primary-400){--tw-text-opacity:1;color:rgba(var(--color-primary-400),var(--tw-text-opacity))}@media print{.print\:hidden{display:none}}@media(min-width:640px){.sm\:mb-0{margin-bottom:0}.sm\:me-7{-webkit-margin-end:1.75rem;margin-inline-end:1.75rem}.sm\:flex{display:flex}.sm\:hidden{display:none}.sm\:max-h-\[7\.5rem\]{max-height:7.5rem}.sm\:w-1\/2{width:50%}.sm\:w-40{width:10rem}.sm\:max-w-\[10rem\]{max-width:10rem}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:p-6{padding:1.5rem}.sm\:px-14{padding-left:3.5rem;padding-right:3.5rem}.sm\:py-10{padding-top:2.5rem;padding-bottom:2.5rem}.sm\:pe-6{-webkit-padding-end:1.5rem;padding-inline-end:1.5rem}.sm\:pt-10{padding-top:2.5rem}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}.sm\:last\:me-0:last-child{-webkit-margin-end:0;margin-inline-end:0}.sm\:last\:me-0\.5:last-child{-webkit-margin-end:.125rem;margin-inline-end:.125rem}}@media(min-width:768px){.md\:w-1\/3{width:33.333333%}.md\:p-\[10vh\]{padding:10vh}.md\:px-24{padding-left:6rem;padding-right:6rem}}@media(min-width:1024px){.lg\:sticky{position:sticky}.lg\:top-10{top:2.5rem}.lg\:order-last{order:9999}.lg\:hidden{display:none}.lg\:w-1\/4{width:25%}.lg\:max-w-xs{max-width:20rem}.lg\:flex-row{flex-direction:row}.lg\:p-\[12vh\]{padding:12vh}.lg\:px-32{padding-left:8rem;padding-right:8rem}.lg\:ps-8{-webkit-padding-start:2rem;padding-inline-start:2rem}}@media(min-width:1280px){.xl\:w-1\/5{width:20%}} \ No newline at end of file diff --git a/public/blog/favicon-16x16.png b/public/blog/favicon-16x16.png new file mode 100644 index 0000000..1cefd1f Binary files /dev/null and b/public/blog/favicon-16x16.png differ diff --git a/public/blog/favicon-32x32.png b/public/blog/favicon-32x32.png new file mode 100644 index 0000000..07cf9e6 Binary files /dev/null and b/public/blog/favicon-32x32.png differ diff --git a/public/blog/favicon.ico b/public/blog/favicon.ico new file mode 100644 index 0000000..cf58c60 Binary files /dev/null and b/public/blog/favicon.ico differ diff --git a/public/blog/img/mv-logo.png b/public/blog/img/mv-logo.png new file mode 100644 index 0000000..ef383d9 Binary files /dev/null and b/public/blog/img/mv-logo.png differ diff --git a/public/blog/index.html b/public/blog/index.html new file mode 100644 index 0000000..73a959d --- /dev/null +++ b/public/blog/index.html @@ -0,0 +1,490 @@ + + + + + + + + + + + + + + + + + >mv_ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+ + + +
+ +

A space for thoughts. #

+
+
+
+ +

Recent

+ +
+
+

+ + On technology + + + +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + ·736 words·4 mins + + + + +
+ + + + + +
+ +
+ Fingerprinting as fashion. On enabling useless and potentially harmful technology for the sake of looking cool. +
+ +
+
+ + +
+
+

+ + My First Blog Post + + + +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + ·80 words·1 min + + + + +
+ + + + + +
+ +
+ Why I am starting this blog. +
+ +
+
+ + + + +
+ + + + +
+ + +
+
+ + +

+ Attribution 4.0 International (CC BY 4.0) +

+ + + +

+ + + Powered by Hugo & Congo +

+ +
+ + +
+ + +

+ Source code +

+ + +
+ + +
+ + diff --git a/public/blog/index.json b/public/blog/index.json new file mode 100644 index 0000000..384ac7a --- /dev/null +++ b/public/blog/index.json @@ -0,0 +1 @@ +[{"content":"A space for thoughts. # ","date":null,"permalink":"/","section":"","summary":"A space for thoughts.","title":""},{"content":"","date":null,"permalink":"/archives/","section":"Archives","summary":"","title":"Archives"},{"content":"","date":null,"permalink":"/categories/","section":"Categories","summary":"","title":"Categories"},{"content":"","date":null,"permalink":"/tags/dystopia/","section":"Tags","summary":"","title":"dystopia"},{"content":"I arrived at the gym a few weeks ago to notice they were removing the key locks from the lockers and replacing them with some sort of RFID bracelet technology. I chuckled, because this is exactly what I feel is wrong with technolgoy: They replaced a low maintenance time-tested technology (lock and key), with a high-maintenance untested fad consisting of many more moving parts. For starters, each locker now requires a regular battery change. I didn’t open the battery compartment, but it looks like it takes triple A’s.\nTo be fair with the management, the new technology did solve the perennial problem caused by whatever sequential (FIFO?) system they were using to distribute keys to people as they walked in, and which caused congestion at specific areas of the locker room while leaving the rest of the space completely unused. The digital bracelets can lock any locker, allowing members to choose for themselves. I can think of simpler ways of fixing that problem.\nA week or so later, I walked into the lobby and noticed they were changing the check-in system, consisting of an RFID enabled member card scanned on entry, to what appeared to be fingerprint scanners. Bad news, I thought. Sure enough, within a few days the new system was up, and I was asked to scan my finger and get a new membership card to continue using the facilities. I informed them I would not provide my biometrics to enter a gym (or any place for that matter). The only exception being entering and leaving countries and other mandatory government initiatives where I have no choice.\nWhy do I have a problem with biometrics enabled doors? I makes me feel we’re ushering in a dystopian future we will regret. I see a future where, cheaply and on a massive scale, every door will open (or not) based on each individual: \u0026ldquo;Sorry citizen, this a \u0026ldquo;Class A\u0026rdquo; facility. Based on your socioeconomic profile and psychometric tests (or social credit score?) you are ranked \u0026ldquo;Class B-\u0026rdquo;. Please step aside.\u0026rdquo;\nI have a problem with the data collection itself. Will this database be sold to third parties? Where are the servers located? What kind of firewall is used? This gym is one of the fanciest in town. Who would like to access member data? For what purposes?\nI asked politely why they required my fingerprint in addition to the RFID enabled card (which now need not be scanned, but must be deposited at reception to receive towels and locker opening bracelet). They informed me members were sharing their cards with third parties and the owner wanted to fix the problem.\nI told them my wife and I use the gym almost every day, and had no desire to share the card with anyone else. I also reminded them of the large TV hanging over the entrance gate and displaying each member’s private information as they scan the card, including a photo (the same photo printed on the card itself), and number of times the door has been accessed since the membership became active. They said they would raise the issue with \u0026ldquo;The Big Boss.\u0026rdquo;\nA few weeks of silence ensued; The Big Boss was out of the country, I was informed. Finally, last week I went to ask again and was told The Big Boss understands and respects my dilemma. There are four of us refuseniks in the entire gym. We will be allowed to finish our yearly membership, but will not be allowed to renew it. I mentioned this drama to an acquaintance who lives in a suburb recently and he laughed and told me his gym has no need for cards or fingerprints: a facial recognition system automatically opens the door.\nMeanwhile, at my gym, a security guard scans an RFID enabled card to let me in every time after I show him my old RFID membership card, which I then deposit with the reception to receive a silicon bracelet and two towels, and scans the card again after I exchange the towels and bracelet for the card. I asked them why they wouldn’t make an exception and allow me to have an RFID card that opens the gate, like the guard’s. Not possible, they said, but would I reconsider my position maybe? I told them there’s only one finger I’m going to give them, and it will not be used for biometric scanning.\n","date":"1 July 2023","permalink":"/archives/2023-07-01/","section":"Archives","summary":"Fingerprinting as fashion. On enabling useless and potentially harmful technology for the sake of looking cool.","title":"On technology"},{"content":"","date":null,"permalink":"/tags/","section":"Tags","summary":"","title":"Tags"},{"content":"","date":null,"permalink":"/tags/technology/","section":"Tags","summary":"","title":"technology"},{"content":"","date":null,"permalink":"/categories/technology/","section":"Categories","summary":"","title":"Technology"},{"content":" A couple of months ago, I stumbled on Jack Baty\u0026rsquo;s blog, added it to Elfeed, and started reading his daily updates. After a few weeks, I was looking forward to reading them every morning.\nBeing a digital recluse, I\u0026rsquo;m still a bit skeptical of my capacity to enjoy sharing tidbits of my life openly online, but what the heck, I\u0026rsquo;ll give it a shot.\nA shout-out to Jack for unwittingly coaxing me out of the shell.\nLet the experiment begin!\n","date":"30 June 2023","permalink":"/archives/2023-06-30/2023-06-30/","section":"Archives","summary":"Why I am starting this blog.","title":"My First Blog Post"},{"content":"About me # Hi! My name is Marcel. I’m married, have one daughter, and run a construction consultancy and stamped concrete contracting business in Phnom Penh, Cambodia.\nI like traveling and have previously lived in Mexico, the US, Argentina, and Thailand.\nI enjoy (think, read about, use or practice) in no particular order: yoga, Emacs, veganism, tinkering, geopolitics, education, and Free Software.\n","date":null,"permalink":"/about/","section":"","summary":"About me # Hi!","title":""}] \ No newline at end of file diff --git a/public/blog/index.xml b/public/blog/index.xml new file mode 100644 index 0000000..1011582 --- /dev/null +++ b/public/blog/index.xml @@ -0,0 +1,30 @@ + + + + >mv_ + / + Recent content on >mv_ + Hugo -- gohugo.io + en + Attribution 4.0 International (CC BY 4.0) + Sat, 01 Jul 2023 00:00:00 +0000 + + On technology + /archives/2023-07-01/ + Sat, 01 Jul 2023 00:00:00 +0000 + + /archives/2023-07-01/ + Fingerprinting as fashion. On enabling useless and potentially harmful technology for the sake of looking cool. + + + + My First Blog Post + /archives/2023-06-30/2023-06-30/ + Fri, 30 Jun 2023 00:00:00 +0000 + + /archives/2023-06-30/2023-06-30/ + Why I am starting this blog. + + + + diff --git a/public/blog/js/appearance.min.022d0ebc3b46a335eb1c7ef79b7f2de143d7cd5156d433638592ef1ce5f8554e.js b/public/blog/js/appearance.min.022d0ebc3b46a335eb1c7ef79b7f2de143d7cd5156d433638592ef1ce5f8554e.js new file mode 100644 index 0000000..7a04c3f --- /dev/null +++ b/public/blog/js/appearance.min.022d0ebc3b46a335eb1c7ef79b7f2de143d7cd5156d433638592ef1ce5f8554e.js @@ -0,0 +1 @@ +const sitePreference=document.documentElement.getAttribute("data-default-appearance"),userPreference=localStorage.getItem("appearance");function getCSSValue(e){var t=window.getComputedStyle(document.documentElement).getPropertyValue(e);return"rgb("+t.replace(/\s+/g,"")+")"}function setThemeColor(){var e=document.querySelector("meta[name=theme-color]");return document.documentElement.classList.contains("dark")?e.setAttribute("content",getCSSValue("--color-neutral-800")):e.setAttribute("content",getCSSValue("--color-neutral")),!0}(sitePreference==="dark"&&userPreference===null||userPreference==="dark")&&(document.documentElement.classList.add("dark"),setThemeColor()),document.documentElement.getAttribute("data-auto-appearance")==="true"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches&&userPreference!=="light"&&(document.documentElement.classList.add("dark"),setThemeColor()),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",e=>{e.matches?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark"),setThemeColor()})),window.addEventListener("DOMContentLoaded",e=>{var t=document.querySelectorAll("[id^='appearance-switcher']");t.forEach(e=>{e.addEventListener("click",()=>{document.documentElement.classList.toggle("dark"),setThemeColor(),localStorage.setItem("appearance",document.documentElement.classList.contains("dark")?"dark":"light")}),e.addEventListener("contextmenu",e=>{e.preventDefault(),localStorage.removeItem("appearance")})})}) \ No newline at end of file diff --git a/public/blog/js/main.bundle.min.75206d23ef83f4908b2bdd2317bf6ddff399e9173a16fff5451c40b8e857cfa8.js b/public/blog/js/main.bundle.min.75206d23ef83f4908b2bdd2317bf6ddff399e9173a16fff5451c40b8e857cfa8.js new file mode 100644 index 0000000..df357fa --- /dev/null +++ b/public/blog/js/main.bundle.min.75206d23ef83f4908b2bdd2317bf6ddff399e9173a16fff5451c40b8e857cfa8.js @@ -0,0 +1,12 @@ +e=this,t=function(){"use strict";function P(e,t){var n,s=Object.keys(e);return Object.getOwnPropertySymbols&&(n=Object.getOwnPropertySymbols(e),t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,n)),s}function u(e){for(var t,n=1;ne.length)&&(t=e.length);for(var n=0,s=new Array(t);n0&&void 0!==arguments[0]?arguments[0]:1,s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:3,e=new Map,t=Math.pow(10,s);return{get:function(s){if(o=s.match(ge).length,e.has(o))return e.get(o);var o,a=1/Math.pow(o,.5*n),i=parseFloat(Math.round(a*t)/t);return e.set(o,i),i},clear:function(){e.clear()}}}f=function(){function a(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},s=n.getFn,i=void 0===s?e.getFn:s,o=n.fieldNormWeight,r=void 0===o?e.fieldNormWeight:o;t(this,a),this.norm=ue(r,3),this.getFn=i,this.isCreated=!1,this.setIndexRecords()}return n(a,[{key:"setSources",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.docs=e}},{key:"setIndexRecords",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.records=e}},{key:"setKeys",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.keys=e,this._keysMap={},e.forEach(function(e,n){t._keysMap[e.id]=n})}},{key:"create",value:function(){var e=this;!this.isCreated&&this.docs.length&&(this.isCreated=!0,o(this.docs[0])?this.docs.forEach(function(t,n){e._addString(t,n)}):this.docs.forEach(function(t,n){e._addObject(t,n)}),this.norm.clear())}},{key:"add",value:function(e){var t=this.size();o(e)?this._addString(e,t):this._addObject(e,t)}},{key:"removeAt",value:function(e){this.records.splice(e,1);for(var t=e,n=this.size();t2&&void 0!==arguments[2]?arguments[2]:{},i=o.getFn,r=void 0===i?e.getFn:i,a=o.fieldNormWeight,c=void 0===a?e.fieldNormWeight:a,s=new f({getFn:r,fieldNormWeight:c});return s.setKeys(t.map(z)),s.setSources(n),s.create(),s}function g(t){var s,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},d=n.errors,f=void 0===d?0:d,l=n.currentLocation,u=void 0===l?0:l,a=n.expectedLocation,h=void 0===a?0:a,r=n.distance,c=void 0===r?e.distance:r,i=n.ignoreLocation,m=void 0===i?e.ignoreLocation:i,o=f/t.length;return m?o:(s=Math.abs(h-u),c?o+s/c:s?1:o)}function oe(){for(var i,s=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e.minMatchCharLength,o=[],t=-1,r=-1,n=0,c=s.length;n=a&&o.push([t,r]),t=-1);return s[n-1]&&n-t>=a&&o.push([t,n-1]),o}l=32;function W(e){for(var s,n={},t=0,o=e.length;t1&&void 0!==arguments[1]?arguments[1]:{},h=o.location,C=void 0===h?e.location:h,g=o.threshold,O=void 0===g?e.threshold:g,d=o.distance,A=void 0===d?e.distance:d,m=o.includeMatches,E=void 0===m?e.includeMatches:m,p=o.findAllMatches,x=void 0===p?e.findAllMatches:p,v=o.minMatchCharLength,_=void 0===v?e.minMatchCharLength:v,u=o.isCaseSensitive,j=void 0===u?e.isCaseSensitive:u,b=o.ignoreLocation,w=void 0===b?e.ignoreLocation:b;if(t(this,s),this.options={location:C,threshold:O,distance:A,includeMatches:E,findAllMatches:x,minMatchCharLength:_,isCaseSensitive:j,ignoreLocation:w},this.pattern=j?n:n.toLowerCase(),this.chunks=[],this.pattern.length)if(a=function(e,t){y.chunks.push({pattern:e,alphabet:W(e),startIndex:t})},i=this.pattern.length,i>l){for(var r=0,f=i%l,k=i-f;r3&&void 0!==arguments[3]?arguments[3]:{},B=r.location,V=void 0===B?e.location:B,R=r.distance,C=void 0===R?e.distance:R,N=r.threshold,K=void 0===N?e.threshold:N,F=r.findAllMatches,W=void 0===F?e.findAllMatches:F,D=r.minMatchCharLength,z=void 0===D?e.minMatchCharLength:D,I=r.includeMatches,H=void 0===I?e.includeMatches:I,L=r.ignoreLocation,j=void 0===L?e.ignoreLocation:L;if(n.length>l)throw new Error($(l));for(var y,d=n.length,p=t.length,i=Math.max(0,Math.min(V,p)),m=K,h=i,x=z>1||H,S=x?Array(p):[];(y=t.indexOf(n,h))>-1;)if(P=g(n,{currentLocation:y,expectedLocation:i,distance:C,ignoreLocation:j}),m=Math.min(P,m),h=y+d,x)for(b=0;b=T;o-=1)if(v=o-1,E=s[t.charAt(v)],x&&(S[v]=+!!E),u[o]=(u[o+1]<<1|1)&E,c&&(u[o]|=(w[o+1]|w[o])<<1|1|w[o+1]),u[o]&U&&(A=g(n,{errors:c,currentLocation:v,expectedLocation:i,distance:C,ignoreLocation:j}))<=m){if(m=A,(h=v)<=i)break;T=Math.max(1,2*i-h)}if(g(n,{errors:c+1,currentLocation:i,expectedLocation:i,distance:C,ignoreLocation:j})>m)break;w=u}return _={isMatch:h>=0,score:Math.max(.001,A)},x&&(M=oe(S,z),M.length?H&&(_.indices=M):_.isMatch=!1),_}(t,j,y,{location:b+_,distance:h,threshold:v,findAllMatches:p,minMatchCharLength:m,includeMatches:a,ignoreLocation:f}),r=i.isMatch,w=i.score,c=i.indices;r&&(s=!0),u+=w,r&&c&&(o=[].concat(d(o),d(c)))}),i={isMatch:s,score:s?u/this.chunks.length:1},s&&a&&(i.indices=o),i}}]),s}(),a=function(){function e(n){t(this,e),this.pattern=n}return n(e,[{key:"search",value:function(){}}],[{key:"isMultiMatch",value:function(e){return B(e,this.multiRegex)}},{key:"isSingleMatch",value:function(e){return B(e,this.singleRegex)}}]),e}();function B(e,t){var n=e.match(t);return n?n[1]:null}var a,l,h,f,O,G=function(e){r(s,e);var o=c(s);function s(e){return t(this,s),o.call(this,e)}return n(s,[{key:"search",value:function(e){var t=e===this.pattern;return{isMatch:t,score:t?0:1,indices:[0,this.pattern.length-1]}}}],[{key:"type",get:function(){return"exact"}},{key:"multiRegex",get:function(){return/^="(.*)"$/}},{key:"singleRegex",get:function(){return/^=(.*)$/}}]),s}(a),Y=function(e){r(s,e);var o=c(s);function s(e){return t(this,s),o.call(this,e)}return n(s,[{key:"search",value:function(e){var t=-1===e.indexOf(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,e.length-1]}}}],[{key:"type",get:function(){return"inverse-exact"}},{key:"multiRegex",get:function(){return/^!"(.*)"$/}},{key:"singleRegex",get:function(){return/^!(.*)$/}}]),s}(a),ne=function(e){r(s,e);var o=c(s);function s(e){return t(this,s),o.call(this,e)}return n(s,[{key:"search",value:function(e){var t=e.startsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,this.pattern.length-1]}}}],[{key:"type",get:function(){return"prefix-exact"}},{key:"multiRegex",get:function(){return/^\^"(.*)"$/}},{key:"singleRegex",get:function(){return/^\^(.*)$/}}]),s}(a),U=function(e){r(s,e);var o=c(s);function s(e){return t(this,s),o.call(this,e)}return n(s,[{key:"search",value:function(e){var t=!e.startsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,e.length-1]}}}],[{key:"type",get:function(){return"inverse-prefix-exact"}},{key:"multiRegex",get:function(){return/^!\^"(.*)"$/}},{key:"singleRegex",get:function(){return/^!\^(.*)$/}}]),s}(a),K=function(e){r(s,e);var o=c(s);function s(e){return t(this,s),o.call(this,e)}return n(s,[{key:"search",value:function(e){var t=e.endsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[e.length-this.pattern.length,e.length-1]}}}],[{key:"type",get:function(){return"suffix-exact"}},{key:"multiRegex",get:function(){return/^"(.*)"\$$/}},{key:"singleRegex",get:function(){return/^(.*)\$$/}}]),s}(a),q=function(e){r(s,e);var o=c(s);function s(e){return t(this,s),o.call(this,e)}return n(s,[{key:"search",value:function(e){var t=!e.endsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,e.length-1]}}}],[{key:"type",get:function(){return"inverse-suffix-exact"}},{key:"multiRegex",get:function(){return/^!"(.*)"\$$/}},{key:"singleRegex",get:function(){return/^!(.*)\$$/}}]),s}(a),S=function(s){r(o,s);var i=c(o);function o(n){var f,s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},h=s.location,g=void 0===h?e.location:h,l=s.threshold,p=void 0===l?e.threshold:l,u=s.distance,j=void 0===u?e.distance:u,a=s.includeMatches,_=void 0===a?e.includeMatches:a,d=s.findAllMatches,v=void 0===d?e.findAllMatches:d,m=s.minMatchCharLength,b=void 0===m?e.minMatchCharLength:m,r=s.isCaseSensitive,y=void 0===r?e.isCaseSensitive:r,c=s.ignoreLocation,w=void 0===c?e.ignoreLocation:c;return t(this,o),(f=i.call(this,n))._bitapSearch=new O(n,{location:g,threshold:p,distance:j,includeMatches:_,findAllMatches:v,minMatchCharLength:b,isCaseSensitive:y,ignoreLocation:w}),f}return n(o,[{key:"search",value:function(e){return this._bitapSearch.searchIn(e)}}],[{key:"type",get:function(){return"fuzzy"}},{key:"multiRegex",get:function(){return/^"(.*)"$/}},{key:"singleRegex",get:function(){return/^(.*)$/}}]),o}(a),V=function(e){r(s,e);var o=c(s);function s(e){return t(this,s),o.call(this,e)}return n(s,[{key:"search",value:function(e){for(var t,o,n=0,s=[],i=this.pattern.length;(t=e.indexOf(this.pattern,n))>-1;)n=t+i,s.push([t,n-1]);return o=!!s.length,{isMatch:o,score:o?0:1,indices:s}}}],[{key:"type",get:function(){return"include"}},{key:"multiRegex",get:function(){return/^'"(.*)"$/}},{key:"singleRegex",get:function(){return/^'(.*)$/}}]),s}(a),_=[G,V,ne,U,q,K,Y,S],H=_.length,Z=/ +(?=(?:[^"]*"[^"]*")*[^"]*$)/;function J(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.split("|").map(function(e){for(var a,r,c,l,d=e.trim().split(Z).filter(function(e){return e&&!!e.trim()}),s=[],o=0,h=d.length;o1&&void 0!==arguments[1]?arguments[1]:{},a=o.isCaseSensitive,r=void 0===a?e.isCaseSensitive:a,c=o.includeMatches,j=void 0===c?e.includeMatches:c,d=o.minMatchCharLength,v=void 0===d?e.minMatchCharLength:d,h=o.ignoreLocation,f=void 0===h?e.ignoreLocation:h,m=o.findAllMatches,p=void 0===m?e.findAllMatches:m,i=o.location,g=void 0===i?e.location:i,u=o.threshold,b=void 0===u?e.threshold:u,l=o.distance,y=void 0===l?e.distance:l;t(this,s),this.query=null,this.options={isCaseSensitive:r,includeMatches:j,minMatchCharLength:v,findAllMatches:p,ignoreLocation:f,location:g,threshold:b,distance:y},this.pattern=r?n:n.toLowerCase(),this.query=J(this.pattern,this.options)}return n(s,[{key:"searchIn",value:function(e){if(o=this.query,!o)return{isMatch:!1,score:1};u=this.options,l=u.includeMatches,e=u.isCaseSensitive?e:e.toLowerCase();for(var s,o,i,c,l,u,f,g,n=0,t=[],a=0,r=0,j=o.length;r-1&&(n.refIndex=e.idx),t.matches.push(n)}})}function fe(e,t){t.score=e.score}function pe(t,n){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=o.includeMatches,r=void 0===i?e.includeMatches:i,a=o.includeScore,c=void 0===a?e.includeScore:a,s=[];return r&&s.push(me),c&&s.push(fe),t.map(function(e){var t=e.idx,o={item:n[t],refIndex:t};return s.length&&s.forEach(function(t){t(e,o)}),o})}return h=function(){function a(n){var s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=arguments.length>2?arguments[2]:void 0;t(this,a),this.options=u(u({},e),s),this.options.useExtendedSearch,this._keyStore=new ae(this.options.keys),this.setCollection(n,o)}return n(a,[{key:"setCollection",value:function(e,t){if(this._docs=e,t&&!(t instanceof f))throw new Error("Incorrect 'index' type");this._myIndex=t||D(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}},{key:"add",value:function(e){s(e)&&(this._docs.push(e),this._myIndex.add(e))}},{key:"remove",value:function(){for(var t,o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){return!1},n=[],e=0,s=this._docs.length;e1&&void 0!==arguments[1]?arguments[1]:{},i=a.limit,s=void 0===i?-1:i,t=this.options,r=t.includeMatches,c=t.includeScore,l=t.shouldSort,d=t.sortFn,u=t.ignoreFieldNorm,n=o(e)?o(this._docs[0])?this._searchStringList(e):this._searchObjectList(e):this._searchLogical(e);return he(n,{ignoreFieldNorm:u}),l&&n.sort(d),L(s)&&s>-1&&(n=n.slice(0,s)),pe(n,this._docs,{includeMatches:r,includeScore:c})}},{key:"_searchStringList",value:function(e){var n=b(e,this.options),o=this._myIndex.records,t=[];return o.forEach(function(e){var o=e.v,a=e.i,r=e.n;if(s(o)){var i=n.searchIn(o),c=i.isMatch,l=i.score,d=i.indices;c&&t.push({item:o,idx:a,matches:[{score:l,value:o,norm:r,indices:d}]})}}),t}},{key:"_searchLogical",value:function(e){var n=this,r=function(e,t){var n=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).auto,s=void 0===n||n,a=function e(n){var r,c,d,u,a=Object.keys(n),l=le(n);if(!l&&a.length>1&&!E(n))return e(T(n));if(de(n)){if(r=l?n[N]:a[0],c=l?n[re]:n[r],!o(c))throw new Error(X(r));return d={keyId:C(r),pattern:c},s&&(d.searcher=b(c,t)),d}return u={children:[],operator:a[0]},a.forEach(function(t){var s=n[t];i(s)&&s.forEach(function(t){u.children.push(e(t))})}),u};return E(e)||(e=T(e)),a(e)}(e,this.options),c=function e(t,s,o){if(!t.children){var c,l=t.keyId,u=t.searcher,i=n._findMatches({key:n._keyStore.get(l),value:n._myIndex.getValueForItemAtKeyId(s,l),searcher:u});return i&&i.length?[{idx:o,item:s,matches:i}]:[]}for(var a=[],r=0,h=t.children.length;r1&&void 0!==arguments[1]?arguments[1]:{},o=s.getFn,a=void 0===o?e.getFn:o,i=s.fieldNormWeight,r=void 0===i?e.fieldNormWeight:i,c=t.keys,l=t.records,n=new f({getFn:a,fieldNormWeight:r});return n.setKeys(c),n.setIndexRecords(l),n},h.config=e,function(){m.push.apply(m,arguments)}(te),h},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).Fuse=t();var e,t,fuse,showButtons=document.querySelectorAll("[id^='search-button']"),scriptBundle,copyText,copiedText,hideButton=document.getElementById("close-search-button"),wrapper=document.getElementById("search-wrapper"),modal=document.getElementById("search-modal"),input=document.getElementById("search-query"),output=document.getElementById("search-results"),first=output.firstChild,last=output.lastChild,searchVisible=!1,indexed=!1,hasResults=!1;showButtons.forEach(e=>{e.addEventListener("click",displaySearch)}),hideButton.addEventListener("click",hideSearch),wrapper.addEventListener("click",hideSearch),modal.addEventListener("click",function(e){return e.stopPropagation(),e.stopImmediatePropagation(),!1}),document.addEventListener("keydown",function(e){e.key=="/"&&(searchVisible||(e.preventDefault(),displaySearch())),e.key=="Escape"&&hideSearch(),e.key=="ArrowDown"&&searchVisible&&hasResults&&(e.preventDefault(),document.activeElement==input?first.focus():document.activeElement==last?last.focus():document.activeElement.parentElement.nextSibling.firstElementChild.focus()),e.key=="ArrowUp"&&searchVisible&&hasResults&&(e.preventDefault(),document.activeElement==input?input.focus():document.activeElement==first?input.focus():document.activeElement.parentElement.previousSibling.firstElementChild.focus())}),input.onkeyup=function(){executeQuery(this.value)};function displaySearch(){indexed||buildIndex(),searchVisible||(document.body.style.overflow="hidden",wrapper.style.visibility="visible",input.focus(),searchVisible=!0)}function hideSearch(){searchVisible&&(document.body.style.overflow="visible",wrapper.style.visibility="hidden",input.value="",output.innerHTML="",document.activeElement.blur(),searchVisible=!1)}function fetchJSON(e,t){var n=new XMLHttpRequest;n.onreadystatechange=function(){if(n.readyState===4&&n.status===200){var e=JSON.parse(n.responseText);t&&t(e)}},n.open("GET",e),n.send()}function buildIndex(){var e=wrapper.getAttribute("data-url"),e=e.replace(/\/?$/,"/");fetchJSON(e+"index.json",function(e){var t={shouldSort:!0,ignoreLocation:!0,threshold:0,includeMatches:!0,keys:[{name:"title",weight:.8},{name:"section",weight:.2},{name:"summary",weight:.6},{name:"content",weight:.4}]};fuse=new Fuse(e,t),indexed=!0})}function executeQuery(e){let n=fuse.search(e),t="";n.length>0?(n.forEach(function(e){t=t+`
  • + +
    +
    ${e.item.title}
    +
    ${e.item.section}${e.item.date==null?"":`·${e.item.date}`}
    +
    ${e.item.summary}
    +
    +
    +
    +
    +
  • `}),hasResults=!0):(t="",hasResults=!1),output.innerHTML=t,n.length>0&&(first=output.firstChild.firstElementChild,last=output.lastChild.firstElementChild)}scriptBundle=document.getElementById("script-bundle"),copyText=scriptBundle?scriptBundle.getAttribute("data-copy"):"Copy",copiedText=scriptBundle?scriptBundle.getAttribute("data-copied"):"Copied";function createCopyButton(e){const t=document.createElement("button");t.className="copy-button",t.type="button",t.ariaLabel=copyText,t.innerText=copyText,t.addEventListener("click",()=>copyCodeToClipboard(t,e)),addCopyButtonToDom(t,e)}async function copyCodeToClipboard(e,t){const n=t.querySelector(":last-child > .chroma > code").innerText;try{result=await navigator.permissions.query({name:"clipboard-write"}),result.state=="granted"||result.state=="prompt"?await navigator.clipboard.writeText(n):copyCodeBlockExecCommand(n,t)}catch{copyCodeBlockExecCommand(n,t)}finally{codeWasCopied(e)}}function copyCodeBlockExecCommand(e,t){const n=document.createElement("textArea");n.contentEditable="true",n.readOnly="false",n.className="copy-textarea",n.value=e,t.insertBefore(n,t.firstChild);const s=document.createRange();s.selectNodeContents(n);const o=window.getSelection();o.removeAllRanges(),o.addRange(s),n.setSelectionRange(0,999999),document.execCommand("copy"),t.removeChild(n)}function codeWasCopied(e){e.blur(),e.innerText=copiedText,setTimeout(function(){e.innerText=copyText},2e3)}function addCopyButtonToDom(e,t){t.insertBefore(e,t.firstChild);const n=document.createElement("div");n.className="highlight-wrapper",t.parentNode.insertBefore(n,t),n.appendChild(t)}window.addEventListener("DOMContentLoaded",e=>{document.querySelectorAll(".highlight").forEach(e=>createCopyButton(e))}) \ No newline at end of file diff --git a/public/blog/page/1/index.html b/public/blog/page/1/index.html new file mode 100644 index 0000000..3f15334 --- /dev/null +++ b/public/blog/page/1/index.html @@ -0,0 +1,10 @@ + + + + / + + + + + + diff --git a/public/blog/robots.txt b/public/blog/robots.txt new file mode 100644 index 0000000..457a45d --- /dev/null +++ b/public/blog/robots.txt @@ -0,0 +1,3 @@ +User-agent: * +Allow: / +Sitemap: sitemap.xml diff --git a/public/blog/site.webmanifest b/public/blog/site.webmanifest new file mode 100644 index 0000000..45dc8a2 --- /dev/null +++ b/public/blog/site.webmanifest @@ -0,0 +1 @@ +{"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"} \ No newline at end of file diff --git a/public/blog/sitemap.xml b/public/blog/sitemap.xml new file mode 100644 index 0000000..8f755f0 --- /dev/null +++ b/public/blog/sitemap.xml @@ -0,0 +1,49 @@ + + + + + + / + 2023-07-01T00:00:00+00:00 + + + + + + /archives/ + 2023-07-01T00:00:00+00:00 + + + + + + + + + + /archives/2023-07-01/ + 2023-07-01T00:00:00+00:00 + + + + + + + + + + + + /archives/2023-06-30/2023-06-30/ + 2023-06-30T00:00:00+00:00 + + + + + + /about/ + + + + diff --git a/public/blog/tags/dystopia/index.html b/public/blog/tags/dystopia/index.html new file mode 100644 index 0000000..0a09a34 --- /dev/null +++ b/public/blog/tags/dystopia/index.html @@ -0,0 +1,412 @@ + + + + + + + + + + + + + + + + dystopia · Congo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + +
    +
    + +
    + +

    dystopia

    +
    + +
    + +
    + + +

    + 2023 +

    +
    + +
    +
    +

    + + On technology + + + +

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + ·736 words·4 mins + + + + +
    + + + + + +
    + +
    + Fingerprinting as fashion. On enabling useless and potentially harmful technology for the sake of looking cool. +
    + +
    +
    + + + + +
    + + + +
    + + +
    + + +
    +
    + + +

    + Attribution 4.0 International (CC BY 4.0) +

    + + + +

    + + + Powered by Hugo & Congo +

    + +
    + + +
    + + +

    + Source code +

    + + +
    + + +
    + + diff --git a/public/blog/tags/dystopia/index.xml b/public/blog/tags/dystopia/index.xml new file mode 100644 index 0000000..de9df68 --- /dev/null +++ b/public/blog/tags/dystopia/index.xml @@ -0,0 +1,21 @@ + + + + dystopia on Congo + /tags/dystopia/ + Recent content in dystopia on Congo + Hugo -- gohugo.io + en + Attribution 4.0 International (CC BY 4.0) + Sat, 01 Jul 2023 00:00:00 +0000 + + On technology + /archives/2023-07-01/ + Sat, 01 Jul 2023 00:00:00 +0000 + + /archives/2023-07-01/ + Fingerprinting as fashion. On enabling useless and potentially harmful technology for the sake of looking cool. + + + + diff --git a/public/blog/tags/dystopia/page/1/index.html b/public/blog/tags/dystopia/page/1/index.html new file mode 100644 index 0000000..2de2aff --- /dev/null +++ b/public/blog/tags/dystopia/page/1/index.html @@ -0,0 +1,10 @@ + + + + /tags/dystopia/ + + + + + + diff --git a/public/blog/tags/index.html b/public/blog/tags/index.html new file mode 100644 index 0000000..ed794c4 --- /dev/null +++ b/public/blog/tags/index.html @@ -0,0 +1,364 @@ + + + + + + + + + + + + + + + + Tags · Congo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + +
    +
    + +
    + +

    Tags

    +
    + +
    + + + + + +
    + + +
    + + +
    +
    + + +

    + Attribution 4.0 International (CC BY 4.0) +

    + + + +

    + + + Powered by Hugo & Congo +

    + +
    + + +
    + + +

    + Source code +

    + + +
    + + +
    + + diff --git a/public/blog/tags/index.xml b/public/blog/tags/index.xml new file mode 100644 index 0000000..fee351e --- /dev/null +++ b/public/blog/tags/index.xml @@ -0,0 +1,30 @@ + + + + Tags on Congo + /tags/ + Recent content in Tags on Congo + Hugo -- gohugo.io + en + Attribution 4.0 International (CC BY 4.0) + Sat, 01 Jul 2023 00:00:00 +0000 + + dystopia + /tags/dystopia/ + Sat, 01 Jul 2023 00:00:00 +0000 + + /tags/dystopia/ + + + + + technology + /tags/technology/ + Sat, 01 Jul 2023 00:00:00 +0000 + + /tags/technology/ + + + + + diff --git a/public/blog/tags/technology/index.html b/public/blog/tags/technology/index.html new file mode 100644 index 0000000..017d72e --- /dev/null +++ b/public/blog/tags/technology/index.html @@ -0,0 +1,412 @@ + + + + + + + + + + + + + + + + technology · Congo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + +
    +
    + +
    + +

    technology

    +
    + +
    + +
    + + +

    + 2023 +

    +
    + +
    +
    +

    + + On technology + + + +

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + ·736 words·4 mins + + + + +
    + + + + + +
    + +
    + Fingerprinting as fashion. On enabling useless and potentially harmful technology for the sake of looking cool. +
    + +
    +
    + + + + +
    + + + +
    + + +
    + + +
    +
    + + +

    + Attribution 4.0 International (CC BY 4.0) +

    + + + +

    + + + Powered by Hugo & Congo +

    + +
    + + +
    + + +

    + Source code +

    + + +
    + + +
    + + diff --git a/public/blog/tags/technology/index.xml b/public/blog/tags/technology/index.xml new file mode 100644 index 0000000..09c1c89 --- /dev/null +++ b/public/blog/tags/technology/index.xml @@ -0,0 +1,21 @@ + + + + technology on Congo + /tags/technology/ + Recent content in technology on Congo + Hugo -- gohugo.io + en + Attribution 4.0 International (CC BY 4.0) + Sat, 01 Jul 2023 00:00:00 +0000 + + On technology + /archives/2023-07-01/ + Sat, 01 Jul 2023 00:00:00 +0000 + + /archives/2023-07-01/ + Fingerprinting as fashion. On enabling useless and potentially harmful technology for the sake of looking cool. + + + + diff --git a/public/blog/tags/technology/page/1/index.html b/public/blog/tags/technology/page/1/index.html new file mode 100644 index 0000000..2cc3c7b --- /dev/null +++ b/public/blog/tags/technology/page/1/index.html @@ -0,0 +1,10 @@ + + + + /tags/technology/ + + + + + + diff --git a/public/categories/index.html b/public/categories/index.html index 19beb71..400b793 100644 --- a/public/categories/index.html +++ b/public/categories/index.html @@ -262,7 +262,7 @@ · - 1 + 2

    diff --git a/public/categories/index.xml b/public/categories/index.xml index 2f17984..91b4ce9 100644 --- a/public/categories/index.xml +++ b/public/categories/index.xml @@ -7,11 +7,11 @@ Hugo -- gohugo.io en Attribution 4.0 International (CC BY 4.0) - Sat, 01 Jul 2023 00:00:00 +0000 + Sun, 02 Jul 2023 00:00:00 +0700 Technology /categories/technology/ - Sat, 01 Jul 2023 00:00:00 +0000 + Sun, 02 Jul 2023 00:00:00 +0700 /categories/technology/ diff --git a/public/categories/technology/index.html b/public/categories/technology/index.html index c9b1c88..c22bb60 100644 --- a/public/categories/technology/index.html +++ b/public/categories/technology/index.html @@ -264,6 +264,72 @@

    + A life-changing conversation + + + +

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + ·655 words·4 mins + + + + +
    + + + + + +
    + +
    + One of the reasons I became vegan, and dinner at a new vegan restaurant in town. +
    + +
    +
    + + +
    +
    +

    + - ·736 words·4 mins + ·737 words·4 mins diff --git a/public/categories/technology/index.xml b/public/categories/technology/index.xml index e5329ec..1d32706 100644 --- a/public/categories/technology/index.xml +++ b/public/categories/technology/index.xml @@ -7,11 +7,20 @@ Hugo -- gohugo.io en Attribution 4.0 International (CC BY 4.0) - Sat, 01 Jul 2023 00:00:00 +0000 + Sun, 02 Jul 2023 00:00:00 +0700 + + A life-changing conversation + /archives/2023-07-02/2023-07-02/ + Sun, 02 Jul 2023 00:00:00 +0700 + + /archives/2023-07-02/2023-07-02/ + One of the reasons I became vegan, and dinner at a new vegan restaurant in town. + + On technology /archives/2023-07-01/ - Sat, 01 Jul 2023 00:00:00 +0000 + Sat, 01 Jul 2023 00:00:00 +0700 /archives/2023-07-01/ Fingerprinting as fashion. On enabling useless and potentially harmful technology for the sake of looking cool. diff --git a/public/index.html b/public/index.html index 73a959d..62ad789 100644 --- a/public/index.html +++ b/public/index.html @@ -274,6 +274,72 @@

    Recent

    +
    +
    +

    + + A life-changing conversation + + + +

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + ·655 words·4 mins + + + + +
    + + + + + +
    + +
    + One of the reasons I became vegan, and dinner at a new vegan restaurant in town. +
    + +
    +
    + +

    @@ -319,7 +385,7 @@
    - ·736 words·4 mins + ·737 words·4 mins @@ -385,7 +451,7 @@
    - ·80 words·1 min + ·80 words·1 min diff --git a/public/index.json b/public/index.json index 384ac7a..6350676 100644 --- a/public/index.json +++ b/public/index.json @@ -1 +1 @@ -[{"content":"A space for thoughts. # ","date":null,"permalink":"/","section":"","summary":"A space for thoughts.","title":""},{"content":"","date":null,"permalink":"/archives/","section":"Archives","summary":"","title":"Archives"},{"content":"","date":null,"permalink":"/categories/","section":"Categories","summary":"","title":"Categories"},{"content":"","date":null,"permalink":"/tags/dystopia/","section":"Tags","summary":"","title":"dystopia"},{"content":"I arrived at the gym a few weeks ago to notice they were removing the key locks from the lockers and replacing them with some sort of RFID bracelet technology. I chuckled, because this is exactly what I feel is wrong with technolgoy: They replaced a low maintenance time-tested technology (lock and key), with a high-maintenance untested fad consisting of many more moving parts. For starters, each locker now requires a regular battery change. I didn’t open the battery compartment, but it looks like it takes triple A’s.\nTo be fair with the management, the new technology did solve the perennial problem caused by whatever sequential (FIFO?) system they were using to distribute keys to people as they walked in, and which caused congestion at specific areas of the locker room while leaving the rest of the space completely unused. The digital bracelets can lock any locker, allowing members to choose for themselves. I can think of simpler ways of fixing that problem.\nA week or so later, I walked into the lobby and noticed they were changing the check-in system, consisting of an RFID enabled member card scanned on entry, to what appeared to be fingerprint scanners. Bad news, I thought. Sure enough, within a few days the new system was up, and I was asked to scan my finger and get a new membership card to continue using the facilities. I informed them I would not provide my biometrics to enter a gym (or any place for that matter). The only exception being entering and leaving countries and other mandatory government initiatives where I have no choice.\nWhy do I have a problem with biometrics enabled doors? I makes me feel we’re ushering in a dystopian future we will regret. I see a future where, cheaply and on a massive scale, every door will open (or not) based on each individual: \u0026ldquo;Sorry citizen, this a \u0026ldquo;Class A\u0026rdquo; facility. Based on your socioeconomic profile and psychometric tests (or social credit score?) you are ranked \u0026ldquo;Class B-\u0026rdquo;. Please step aside.\u0026rdquo;\nI have a problem with the data collection itself. Will this database be sold to third parties? Where are the servers located? What kind of firewall is used? This gym is one of the fanciest in town. Who would like to access member data? For what purposes?\nI asked politely why they required my fingerprint in addition to the RFID enabled card (which now need not be scanned, but must be deposited at reception to receive towels and locker opening bracelet). They informed me members were sharing their cards with third parties and the owner wanted to fix the problem.\nI told them my wife and I use the gym almost every day, and had no desire to share the card with anyone else. I also reminded them of the large TV hanging over the entrance gate and displaying each member’s private information as they scan the card, including a photo (the same photo printed on the card itself), and number of times the door has been accessed since the membership became active. They said they would raise the issue with \u0026ldquo;The Big Boss.\u0026rdquo;\nA few weeks of silence ensued; The Big Boss was out of the country, I was informed. Finally, last week I went to ask again and was told The Big Boss understands and respects my dilemma. There are four of us refuseniks in the entire gym. We will be allowed to finish our yearly membership, but will not be allowed to renew it. I mentioned this drama to an acquaintance who lives in a suburb recently and he laughed and told me his gym has no need for cards or fingerprints: a facial recognition system automatically opens the door.\nMeanwhile, at my gym, a security guard scans an RFID enabled card to let me in every time after I show him my old RFID membership card, which I then deposit with the reception to receive a silicon bracelet and two towels, and scans the card again after I exchange the towels and bracelet for the card. I asked them why they wouldn’t make an exception and allow me to have an RFID card that opens the gate, like the guard’s. Not possible, they said, but would I reconsider my position maybe? I told them there’s only one finger I’m going to give them, and it will not be used for biometric scanning.\n","date":"1 July 2023","permalink":"/archives/2023-07-01/","section":"Archives","summary":"Fingerprinting as fashion. On enabling useless and potentially harmful technology for the sake of looking cool.","title":"On technology"},{"content":"","date":null,"permalink":"/tags/","section":"Tags","summary":"","title":"Tags"},{"content":"","date":null,"permalink":"/tags/technology/","section":"Tags","summary":"","title":"technology"},{"content":"","date":null,"permalink":"/categories/technology/","section":"Categories","summary":"","title":"Technology"},{"content":" A couple of months ago, I stumbled on Jack Baty\u0026rsquo;s blog, added it to Elfeed, and started reading his daily updates. After a few weeks, I was looking forward to reading them every morning.\nBeing a digital recluse, I\u0026rsquo;m still a bit skeptical of my capacity to enjoy sharing tidbits of my life openly online, but what the heck, I\u0026rsquo;ll give it a shot.\nA shout-out to Jack for unwittingly coaxing me out of the shell.\nLet the experiment begin!\n","date":"30 June 2023","permalink":"/archives/2023-06-30/2023-06-30/","section":"Archives","summary":"Why I am starting this blog.","title":"My First Blog Post"},{"content":"About me # Hi! My name is Marcel. I’m married, have one daughter, and run a construction consultancy and stamped concrete contracting business in Phnom Penh, Cambodia.\nI like traveling and have previously lived in Mexico, the US, Argentina, and Thailand.\nI enjoy (think, read about, use or practice) in no particular order: yoga, Emacs, veganism, tinkering, geopolitics, education, and Free Software.\n","date":null,"permalink":"/about/","section":"","summary":"About me # Hi!","title":""}] \ No newline at end of file +[{"content":"A space for thoughts. # ","date":null,"permalink":"/","section":"","summary":"A space for thoughts.","title":""},{"content":" I bought the domain that I’m using —vegancambodia.com— a while ago, thinking it made sense, living in Cambodia and wanting to do something with veganism. I usually buy .org names, but thought I\u0026rsquo;d go for a .com in case we decided to make a business out of it. Well, it must be close to a year later and nothing has happened with the domain or with veganism (aside from the practice it, of course). So, let me say something about veganism then, in honor of the domain name and the unfortunate souls that may land here searching for information on veganism in Cambodia in the future.\nWhen my wife was pregnant, I had a conversation with a friend in Penang. To explain to me how unnatural it is to eat animals, she told me how shocking it had been for her three children when they each discovered that the food they ate came from living animals that had been killed so that they could eat them. We only come to see this as natural as part of a long process of normalization.\nFor months, I couldn’t stop thinking about our conversation, and I kept trying to think how I would explain our eating habits to my daughter in a logical and ethical way when the time came. No matter how much I thought about it, I couldn’t come up with a satisfactory explanation for why we enslave, torture and kill other species so that we can eat them and their secretions.\nEventually, I had to accept that I had grown up with illogical belief system, and the only way to escape the cognitive dissonance was to ignore it or to align my actions with my ethics. This was likely the single biggest realization I had toward becoming vegan. I thank my friend Esther and my daughter for this wonderful awakening.\nTalking of veganism, there\u0026rsquo;s a new vegan restaurant in town. This is big news, as the count currently stands at three (including the new place), and we don\u0026rsquo;t eat at one of the three anymore for reasons I will not go into on this post.\nThe place is called Sundays (yeah, we went on a Saturday, I know) and is run by Darren and Tam, a charming Aussie-Khmer and British couple. It has a beautiful loft style interior with Japanese and Thai accents and a skateboarder ethos. Colorful lithographs by various Thai and Chinese artists line the walls, with some skateboard wall art. A spiral staircase leads to a mezzanine lounge featuring bespoke wooden lounge furniture and a neon sign at the back that reads ‘Take It Easy.’ The design showcases a spacious and inviting open kitchen and high ceilings and large windows, which let in a ton of light and make the place feel airy.\nForgive me for starting with dessert, but I\u0026rsquo;ve never been one for rules. They have vegan waffles! I hadn\u0026rsquo;t had a waffle for a while. In fact, I\u0026rsquo;ve had two waffles in the almost four years since I became vegan (largely because we were stuck in Cambodia for three of those years, without Sundays). I had a waffle once at Wai Nam Beach resort in Koh Pha Ngan last year and another at Veganerie, in Bangkok, a few months ago. It sounds silly, I know. I could go out and buy a waffle machine, but then I\u0026rsquo;d have to own a specialized device that I would only use sporadically, and I\u0026rsquo;d rather not add another clunky machine to the kitchen storage. So, we shared a tasty pandan coconut waffle with homemade, hand-churned, coconut ice cream, and it was perfect.\nFor dinner, we had some sort of sticky cauliflower chunks, a Khmer fusion somlor korko noodle dish and a spicy tom yum club sandwich. For drinks, we had Thai bubble tea and water.\nWe liked the place so much we\u0026rsquo;re going back for breakfast today (on a Sunday, of course).\n","date":"2 July 2023","permalink":"/archives/2023-07-02/2023-07-02/","section":"Archives","summary":"One of the reasons I became vegan, and dinner at a new vegan restaurant in town.","title":"A life-changing conversation"},{"content":"","date":null,"permalink":"/archives/","section":"Archives","summary":"","title":"Archives"},{"content":"","date":null,"permalink":"/categories/","section":"Categories","summary":"","title":"Categories"},{"content":"","date":null,"permalink":"/tags/dystopia/","section":"Tags","summary":"","title":"dystopia"},{"content":"","date":null,"permalink":"/tags/","section":"Tags","summary":"","title":"Tags"},{"content":"","date":null,"permalink":"/tags/technology/","section":"Tags","summary":"","title":"technology"},{"content":"","date":null,"permalink":"/categories/technology/","section":"Categories","summary":"","title":"Technology"},{"content":"I arrived at the gym a few weeks ago to notice they were removing the key locks from the lockers and replacing them with some sort of RFID bracelet technology. I chuckled, because this is exactly what I feel is wrong with technolgoy: They replaced a low maintenance time-tested technology (lock and key), with a high-maintenance untested fad consisting of many more moving parts. For starters, each locker now requires a regular battery change. I didn’t open the battery compartment, but it looks like it takes triple A’s.\nTo be fair with the management, the new technology did solve the perennial problem caused by whatever sequential (FIFO?) system they were using to distribute keys to people as they walked in, and which caused congestion at specific areas of the locker room while leaving the rest of the space completely unused. The digital bracelets can lock any locker, allowing members to choose for themselves. I can think of simpler ways of fixing that problem.\nA week or so later, I walked into the lobby and noticed they were changing the check-in system, which consisted of an RFID enabled member card scanned on entry, to what appeared to be fingerprint scanners. Bad news, I thought. Sure enough, within a few days the new system was up, and I was asked to scan my finger and get a new membership card to continue using the facilities. I informed them I would not provide my biometrics to enter a gym (or any place for that matter). The only exception being entering and leaving countries and other mandatory government initiatives where I have no choice.\nWhy do I have a problem with biometrics enabled doors? It makes me feel we’re ushering in a dystopian future we will regret. I see a future where, cheaply and on a massive scale, every door will open (or not) based on each individual: \u0026ldquo;Sorry citizen, this a ‘Class A‘ facility. Based on your socioeconomic profile and psychometric tests (or social credit score?) you are ranked ‘Class B-’. Please step aside.\u0026rdquo;\nI have a problem with the data collection itself. Will this database be sold to third parties? Where are the servers located? What kind of firewall is used? This gym is one of the fanciest in town. Who would like to access member data? For what purposes?\nI asked politely why they required my fingerprint in addition to the RFID enabled card (which now need not be scanned, but must be deposited at reception to receive towels and locker opening bracelet). They informed me members were sharing their cards with third parties and the owner wanted to fix the problem.\nI told them my wife and I use the gym almost every day, and had no desire to share the card with anyone else. I also reminded them of the large TV hanging over the entrance gate and displaying each member’s private information as they scan the card, including a photo (the same photo printed on the card itself), and number of times the door has been accessed since the membership became active. They said they would raise the issue with \u0026ldquo;The Big Boss.\u0026rdquo;\nA few weeks of silence ensued; The Big Boss was out of the country, I was informed. Finally, last week I went to ask again and was told The Big Boss understands and respects my dilemma. There are four of us refuseniks in the entire gym. We will be allowed to finish our yearly membership, but will not be allowed to renew it. I mentioned this drama to an acquaintance who lives in a suburb recently and he laughed and told me his gym has no need for cards or fingerprints: a facial recognition system automatically opens the door.\nMeanwhile, at my gym, a security guard scans an RFID enabled card to let me in every time after I show him my old RFID membership card, which I then deposit with the reception to receive a silicon bracelet and two towels, and scans the card again after I exchange the towels and bracelet for the card. I asked them why they wouldn’t make an exception and allow me to have an RFID card that opens the gate, like the guard’s. Not possible, they said, but would I reconsider my position maybe? I told them there’s only one finger I’m going to give them, and it will not be used for biometric scanning.\n","date":"1 July 2023","permalink":"/archives/2023-07-01/","section":"Archives","summary":"Fingerprinting as fashion. On enabling useless and potentially harmful technology for the sake of looking cool.","title":"On technology"},{"content":" A couple of months ago, I stumbled on Jack Baty\u0026rsquo;s blog, added it to Elfeed, and started reading his daily updates. After a few weeks, I was looking forward to reading them every morning.\nBeing a digital recluse, I\u0026rsquo;m still a bit skeptical of my capacity to enjoy sharing tidbits of my life openly online, but what the heck, I\u0026rsquo;ll give it a shot.\nA shout-out to Jack for unwittingly coaxing me out of the shell.\nLet the experiment begin!\n","date":"30 June 2023","permalink":"/archives/2023-06-30/2023-06-30/","section":"Archives","summary":"Why I am starting this blog.","title":"My First Blog Post"},{"content":"About me # Hi! My name is Marcel. I’m married, have one daughter, and run a construction consultancy and stamped concrete contracting business in Phnom Penh, Cambodia.\nI like traveling and have previously lived in Mexico, the US, Argentina, and Thailand.\nI enjoy (think, read about, use or practice) in no particular order: yoga, Emacs, veganism, tinkering, geopolitics, education, and Free Software.\n","date":null,"permalink":"/about/","section":"","summary":"About me # Hi!","title":""}] \ No newline at end of file diff --git a/public/index.xml b/public/index.xml index 1011582..bf0a70e 100644 --- a/public/index.xml +++ b/public/index.xml @@ -7,11 +7,20 @@ Hugo -- gohugo.io en Attribution 4.0 International (CC BY 4.0) - Sat, 01 Jul 2023 00:00:00 +0000 + Sun, 02 Jul 2023 00:00:00 +0700 + + A life-changing conversation + /archives/2023-07-02/2023-07-02/ + Sun, 02 Jul 2023 00:00:00 +0700 + + /archives/2023-07-02/2023-07-02/ + One of the reasons I became vegan, and dinner at a new vegan restaurant in town. + + On technology /archives/2023-07-01/ - Sat, 01 Jul 2023 00:00:00 +0000 + Sat, 01 Jul 2023 00:00:00 +0700 /archives/2023-07-01/ Fingerprinting as fashion. On enabling useless and potentially harmful technology for the sake of looking cool. @@ -20,7 +29,7 @@ My First Blog Post /archives/2023-06-30/2023-06-30/ - Fri, 30 Jun 2023 00:00:00 +0000 + Fri, 30 Jun 2023 00:00:00 +0700 /archives/2023-06-30/2023-06-30/ Why I am starting this blog. diff --git a/public/sitemap.xml b/public/sitemap.xml index 8f755f0..612e118 100644 --- a/public/sitemap.xml +++ b/public/sitemap.xml @@ -5,14 +5,21 @@ / - 2023-07-01T00:00:00+00:00 + 2023-07-02T00:00:00+07:00 + + + + + + /archives/2023-07-02/2023-07-02/ + 2023-07-02T00:00:00+07:00 /archives/ - 2023-07-01T00:00:00+00:00 + 2023-07-02T00:00:00+07:00 @@ -21,22 +28,22 @@ + + + + + + /archives/2023-07-01/ - 2023-07-01T00:00:00+00:00 + 2023-07-01T00:00:00+07:00 - - - - - - /archives/2023-06-30/2023-06-30/ - 2023-06-30T00:00:00+00:00 + 2023-06-30T00:00:00+07:00 diff --git a/public/tags/dystopia/index.html b/public/tags/dystopia/index.html index 3abeef2..59916ea 100644 --- a/public/tags/dystopia/index.html +++ b/public/tags/dystopia/index.html @@ -264,6 +264,72 @@

    + A life-changing conversation + + + +

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + ·655 words·4 mins + + + + +
    + + + + + +
    + +
    + One of the reasons I became vegan, and dinner at a new vegan restaurant in town. +
    + +
    +

    + + +
    +
    +

    + - ·736 words·4 mins + ·737 words·4 mins diff --git a/public/tags/dystopia/index.xml b/public/tags/dystopia/index.xml index fef66c5..9d66050 100644 --- a/public/tags/dystopia/index.xml +++ b/public/tags/dystopia/index.xml @@ -7,11 +7,20 @@ Hugo -- gohugo.io en Attribution 4.0 International (CC BY 4.0) - Sat, 01 Jul 2023 00:00:00 +0000 + Sun, 02 Jul 2023 00:00:00 +0700 + + A life-changing conversation + /archives/2023-07-02/2023-07-02/ + Sun, 02 Jul 2023 00:00:00 +0700 + + /archives/2023-07-02/2023-07-02/ + One of the reasons I became vegan, and dinner at a new vegan restaurant in town. + + On technology /archives/2023-07-01/ - Sat, 01 Jul 2023 00:00:00 +0000 + Sat, 01 Jul 2023 00:00:00 +0700 /archives/2023-07-01/ Fingerprinting as fashion. On enabling useless and potentially harmful technology for the sake of looking cool. diff --git a/public/tags/index.html b/public/tags/index.html index 08d844d..e8921eb 100644 --- a/public/tags/index.html +++ b/public/tags/index.html @@ -262,7 +262,7 @@ · - 1 + 2

    @@ -278,7 +278,7 @@ · - 1 + 2

    diff --git a/public/tags/index.xml b/public/tags/index.xml index f198134..bf9ebbc 100644 --- a/public/tags/index.xml +++ b/public/tags/index.xml @@ -7,11 +7,11 @@ Hugo -- gohugo.io en Attribution 4.0 International (CC BY 4.0) - Sat, 01 Jul 2023 00:00:00 +0000 + Sun, 02 Jul 2023 00:00:00 +0700 dystopia /tags/dystopia/ - Sat, 01 Jul 2023 00:00:00 +0000 + Sun, 02 Jul 2023 00:00:00 +0700 /tags/dystopia/ @@ -20,7 +20,7 @@ technology /tags/technology/ - Sat, 01 Jul 2023 00:00:00 +0000 + Sun, 02 Jul 2023 00:00:00 +0700 /tags/technology/ diff --git a/public/tags/technology/index.html b/public/tags/technology/index.html index 793b940..4a7e17a 100644 --- a/public/tags/technology/index.html +++ b/public/tags/technology/index.html @@ -264,6 +264,72 @@

    + A life-changing conversation + + + +

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + ·655 words·4 mins + + + + +
    + + + + + +
    + +
    + One of the reasons I became vegan, and dinner at a new vegan restaurant in town. +
    + +
    +
    + + +
    +
    +

    + - ·736 words·4 mins + ·737 words·4 mins diff --git a/public/tags/technology/index.xml b/public/tags/technology/index.xml index 9963b9d..ebcf92a 100644 --- a/public/tags/technology/index.xml +++ b/public/tags/technology/index.xml @@ -7,11 +7,20 @@ Hugo -- gohugo.io en Attribution 4.0 International (CC BY 4.0) - Sat, 01 Jul 2023 00:00:00 +0000 + Sun, 02 Jul 2023 00:00:00 +0700 + + A life-changing conversation + /archives/2023-07-02/2023-07-02/ + Sun, 02 Jul 2023 00:00:00 +0700 + + /archives/2023-07-02/2023-07-02/ + One of the reasons I became vegan, and dinner at a new vegan restaurant in town. + + On technology /archives/2023-07-01/ - Sat, 01 Jul 2023 00:00:00 +0000 + Sat, 01 Jul 2023 00:00:00 +0700 /archives/2023-07-01/ Fingerprinting as fashion. On enabling useless and potentially harmful technology for the sake of looking cool.