Empty shells

I have been playing video games recently and are struck on how good games has progressed since the days I played Lemmings and Doom.

What struck me was mainly how good the graphics look like, how life-like it has become; especially when the game protagonists are humans. Their faces are pretty and handsome, their bodies are perfectly proportional and toned, their movements are graceful.

No doubt, this is due to the talented artists that created meticulously them, from draft drawings, 3D modelling, skinning and texturing, and motion capture; it is also the attestation of the immense computing power of modern GPUs. When combined with talented voice actors, the imagery is complete - we are, definitely, in the uncanny valley.

However, no matter how real these characters look like, I cannot drown a tiny voice in my head that keeps saying that what I see is all there is. There is no depth. There is no substance. All I see is literally skin-deep. Underneath the skin of that pretty girl or handsome man, there is nothing. They are hollow. Literally. They are just million of triangles covered by textures; voiced by someone else with stories which aren't their own. They are just empty shells.

But sadly, there are people - real-life people - who are real-life versions of these empty shells. They do have flesh and bone, and will bleed if hurt; but otherwise, what you see of them, is all there is. There is no depth. There is no soul. They speak with with other people's voices and their life are other people's stories. There is nothing else beyond what the eyes can see or the ears can hear or the hands can touch.

Beware that you don't fall for these empty shells. For beneath their skin, there is only nothingness that awaits you.

Even more important, is to beware that you don't become empty shells yourself. Focusing on the outside, but forgetting the most important part of yourself - what's inside.

For when that happens, you become nothing.

Posted on 9 Mar 2021, 23:55 - Categories: General
Comments - Edit - Delete


Ants in a terrarium

Imagine ants in a terrarium.

They are born there, they grow up there, they go about their daily life, and they die there too.

Lets say that there are multiple queens, each commanding multiple her own colonies of ants. Every ant will scavenge for food for its colonies, but they also fight for territories, and sometimes attempt dominion over other colonies. Generations of ants are born, alive, and die over time.

The ants think their problems are important, their possessions are important. Their territories are important, their dominion of other colonies are important. They think that they are important.

But they are just ants living in a terrarium.

---

(Originally contemplated on Feb 2006)

Posted on 10 Jan 2021, 01:58 - Categories: General
Comments - Edit - Delete


Christmas wishes 2020

Any bad things I did, I did it because of my own failings, so please forgive me.
Any good things I did, I could only do it because God has helped me, so to God all the glory.

Merry Christmas everyone.

Posted on 26 Dec 2020, 00:31 - Categories: General
Comments - Edit - Delete


RetroPie

I've always enjoyed retro gaming. In Fatdog we have always had dosbox (emulator for DOS games) for as long as I can remember, and scummvm (for Sierra games) came a little bit later. I've recently added a few more emulators: mednafen (multi-emulators for GBA, SNES and others), desmume (NDS), duckstation and pcsxr (PS1) as well as pcsx2 (PS2). I threw ZX-Tune as well, to play the music from those old games.

But very recently I've been introduced to RetroPie, a distro for Raspberry Pi (raspi) which is dedicated to turning your raspi to a retro gaming machine. Since I have a dusty Pi3 laying around doing nothing (which I was supposed to use for testing Mick's Raspbian Buster but never got my lazy bum off to actually do it - sorry Mick!), I reckon, why not give it a try. If it doesn't work all I wasted is a couple of minutes downloading ~800MB image and couple of minutes "dd"-ing it.

As it turned out, it worked the first time around. Once the SD card as prepared, I put it inside the raspi, hooked the raspi to my TV, and then turned the raspi on. I was instantly asked to configure my controller (I didn't have one, but no problem, retropie accepts keyboard too). I configured the optional wifi setup (I didn't have to do it, but I wanted to try its samba feature). Then all I needed to do was to install the games (which I can install via USB, SFTP, or Samba). No stupid questions, no hassle, no config file. It's all ready to use. Most of the popular emulators were already included, and those that don't, are literally available for installation, a few clicks away.

With retropie on it, the raspi has been magically turned into a retro gaming machine. In the beginning I didn't believe that the raspi had enough muster to pull up a decent emulation, but I was pleasantly proven wrong. Most emulators worked well. Some had a few stutters every once a while but it was nothing to fret about.

The display quality was good, too. Retro games were notorious for displaying low-res pixelated images on today's high-res TV, but the emulators included in retropi had a few tricks up their sleeve to make the images sharper. I'm not surprised about that (after all I compiled some of those for Fatdog64 too) but what surprised me that the little raspi could pull off the enhanced graphics too. Well again not all emulators and not all games, but as I said, nothing to fret about.

Now, I have FatdogArm, Fatdog's variants that runs on ARM machines, the raspi included. If I really want to, I could, in theory, build and package all these myself too, producing a custom FatdogArm build that does what retropie does. All the software used in retropie is FOSS software. The standard release of FatdogArm was built to run as a "desktop-replacement" OS, but of course at its very core it was designed to be modded to produce a build that met specific needs. Making a retro gaming machine would be one of those.

But of course, why bother? The folks who makes retropie does a very good job, and the result is a very polished retro gaming software. Unless you try very very hard, you won't even know that beneath all the pretty faces, it runs Raspian Buster Linux. Rather than spending thankless hours building software on FatdogArm so it can become retropie wannabe, I may as well use retropie as is and start gaming with my kids

Anyway. In case you want to try retropie and don't have raspi, there is no need to fret and there is no need to fork out extra dollars too. While originally designed for raspi (all varians from pi 0/1/2/3/4), today's retropie supports other platforms: Odroid C1/C2, Odroid XU3/XU4, as well as standard PC! Yes, standard PC. You can use your old laptop, old desktop, NUC if you have one, etc basically any PC. The details are all on their website, if you're interested, go ahead and check it out.

Meanwhile, I've got a few games I need to catch up.

Disclaimer: I am not affiliated with retropie or any of its developers. In fact I wasn't aware that it exists until last week. I'm writing this to share with fellow retro gamers who aren't aware of retropie.


Posted on 3 Sep 2020, 02:00 - Categories: Linux General
Comments - Edit - Delete


Goodbye to a friend - John de Murga

John de Murga (aka John Murga) was the owner of the official Puppy Linux forum, formerly located in http://murga-linux.com/puppy/index.php

If you use Fatdog64, you will know that we hosted our support threads on the same forum.

But my involvement with the Puppy Linux forum dates back well before then. I started browsing the forum when I was still a Windows user back in 2006; and joined in 2007 when I was converted into Puppy Linux user - and had been a regular on the forum ever since. Until the forum went down in early July 2020.

---

But in all my years being John's forum, I don't really know John Murga. Not personally. Never met him. Never spoke with him. Not even knowing how he looked like - well, not until a few days before I wrote this. Not through my fault though, I only know bits and pieces that he himself chose to share, for he himself claimed to be 'the man of mystery'.

He and his work, however, left an indelible mark on my life. It was such a simple work. Setting up an online forum. What was so difficult about it? Get a web-hosting site. Click a button, and you've got a forum and up running. Easy. Everyone can do it, right?

No. Not every one can do what John did.

The forum he set up was the forum where I spent lots of my past life on. Where I got help when I started and when I stumbled. Where I, eventually, helped others as I became proficient enough. Where I, unexpectedly, met and became friends with people in the real world.

All of these because he had the tenacity to keep the forum going for 15+ years; and let the forum to govern itself instead of strict policing found in many others. He even had the magnanimity to allow people to post links of competing projects and forums. This was one of the factors why so many people stayed on and the forum grew to become the melting pot of folks from all walks of life, sharing the same interest - Puppy Linux, and Linux in general.

So it was great shock and sadness that I learn of his passing recently in May 2020. I was even more stunned to know that he had left a young family - a daughter and twins who were born shortly after his passing. I have young children myself, I could not even begin to contemplate how it must have felt, to be left so soon, and so suddenly.

Nevertheless, I would like offer a prayer of hope for whom that John's family, that John had left a legacy that not many people could manage to do: to change the life of thousands, if not then ten thousands. John had left many friends that he himself probably didn't know. I was one of them, one among the thousands. For us, he is a hero. In every sense of the word.

Goodbye, John, and all blessings in your next journey.

You will be missed, but not forgotten.

---

Eulogy from 01micko, the current steward of Puppy Linux

Eulogy from Barry Kauler, the creator of Puppy Linux




Posted on 19 Jul 2020, 14:53 - Categories: Fatdog64 Linux PuppyLinux General
Comments - Edit - Delete


Memories

“And this world will stay with you, forever. You will keep it in your heart. We are ephemeral creatures; we always live in the present. We jump from one moment to another; memories are all that we carry within us. Even if you won’t ever visit this place again, it will still be alive in your dreams, every time you recall them.”
---
The Book of the Ten Children, Reunion Part II:Epilogue

Posted on 13 Jul 2020, 01:06 - Categories: General
Comments - Edit - Delete


The road to hell is paved with good intentions

Good intentions, good deeds, now matter how good they are, when carried to its logical conclusion, always lead to destruction.

Because when we go north to reach the most extreme northern point, without knowing what the north pole actually is, we will never reach it.

We need directions. We need sign posts. And fortunately there are sign posts and directions to north pole, if that's all we want to go.

How about sign posts of life?

There is this someone. He called himself as The Way. The Way that will lead you to the Truth. The Truth about Life, and beyond. The Truth that will set you free.

But He, like all sign posts, doesn't demand that He be followed.
It is up to us if we want to.





Posted on 11 Apr 2020, 18:09 - Categories: General
Comments - Edit - Delete


Nothing to Fear, but Fear Itself

Thus said Franklin D. Roosevelt, the 32nd president of the United States, even though I'm sure many wise men before him have said the same, although, perhaps, not in the same exact words.



Fear of something is almost always worse than that something itself.

Posted on 5 Mar 2020, 02:14 - Categories: General
Comments - Edit - Delete


Love at first sight

"Love at first sight often ends at the first quarrel."
---
The Book of Ten Children, 1:2


Posted on 21 Feb 2020, 16:37 - Categories: General
Comments - Edit - Delete


CSVfix patches for regex and exec

CSVfix is a tool for manipulating CSV files. Along with the usual column re-ordering and filtering, CSVfix offers a powerful per-cell data transformation using a simple expression language, as well as regular-expression for string matching and editing. And if this is not enough, CSVfix can execute external process - for every cell that needs to be processed. And oh, it's available for Windows too!

I find this tool to be very handy in what I need to do, so when I encountered a bug in its regex processing (for its "edit" command), I immediately checked if there is any updates to this tool. Unfortunately, its development seems to have ceased in 2015; and no other people seem to have picked up the development (I did find some forks, but they were all older copies from when it was still hosted in google code).

So I set out to figure out about the problem and hopefully rectify it. I found that the problem was in its regex library, which was a home-grown library (apparently adapted from an algorithm book). It is 2020 as of this time of writing, and C++ now comes with its own STL regex library (std::regex). I decided to rip off the custom regex lib and replace it with the STL regex instead, while keeping the rest of the class interface identical, therefore no other part of the code needed to be changed. This instantly fixed the problem, and as a bonus, now we can use ECMAScript-compatible regex instead of just the basic regex.

Later, I found out that the "exec" command also had a bug (the flag "-ix" did not work properly), so I traced this and fixed it too.

Oh, and during the process, I tried to run its testsuite - and while most of them passed, some did fail. Mainly because of CRLF/LF inconsistencies, so I changed those the test data to use LF. It is also a warning that this tool only works with platform "newline" - CRLF in Windows, and LF in Linux - so if files were to be exchanged between platforms, they must be properly translated first before use.

Here are the individual patches.
- regex patch
- exec patch
- test-case patch

They apply on top of the commit 93804d4 from 2015-02, which was the latest when I wrote this. They are licensed in the same way as the original CSVfix is licensed.




If CSVfix is not powerful enough for you, there are other similar tools:

1. miller is a tool in very similar spirit with CSVfix, but it is (much) more sophisticated. Its "data transformation language" looks more expressive than the one in CSVfix. If you have a problem you cannot solve with CSVfix, miller will probably help you. As a bonus, it is still in active development - that means bugs will be squashed. It is written in C, you will need to compile it if it is not in your package repository. (Fatdog, naturally, has it in its repository).

2. csvkit is a collection of tools that more or less perform the same functions as CSVfix. It supports direct conversion to/from Excel files, importing/exporting into databases (sqlite and postgresql as documented, perhaps others too), as well as running direct SQL queries from CSV files (and databases too). It is written in Python3 so you can install it using pip3. Fatdog has this in its repository too (so you can install it using package manager instead of pip3).

3. rbql basically enables you to run SQL-like on CSV files; but its power is its ability to run python (or javascript, depending on which backend you choose) code for every cell. Fatdog has it in its repository too, although you can just use pip to install it, if you don't run Fatdog.

Posted on 23 Jan 2020, 21:53 - Categories: General Linux
Comments - Edit - Delete


Pages: [1] [2] [3] [4] [5] ...