Thursday, May 13, 2021

More IE11 Support Shenanigans

Eh, it's a Thursday, and a public holiday.

I said before that I knew how to fix that <ol> issue on IE11, but may not want to do so do due to effort. Well, I did it in spite of effort.

And promptly unearthed a new issue, this time regarding the XMLHttpRequest that I was using to query and parse certain existing pages. It seems that IE11, for some reason, does not understand the use of responseType property to auto-parse the text into a suitable DOM. It seems like I would need to make use of DOMParser to do that, with an extra code path to do that on detection that it is IE11 that is at play.

This takes up way more effort than force setting the value attribute of the <li> tags to support the reversed boolean attribute of <ol>.

I could have done that today, but the heart really isn't in it. Maybe tomorrow.

------

Reading is a bit slow today, completing page 947/1321 of Handbook of Data Structures and Applications, and page 72/99 of Animorphs Series: Megamorphs #1: The Andalite's Gift as at time of writing. The weather is odd, and I am feeling a little under the weather myself, nursing some kind of weird headache and mild nausea.

I really hope that I'm not down with something. It is a terrible time to fall sick, especially with the rise in so-called local community cases for COVID-19, and the potential clusterfuck that stems from mass congregations due to the public holiday today (Hari Raya Puasa).

Anyway, it's a short entry today, super barebones, and nothing pretentious. Till the next update.

Wednesday, May 12, 2021

Good Bye Night City (and Screw You [Again] IE11)

Urgh... what a head case.

I accidentally messed with IE11 for my personal domain, and rue the day that I did so. There was one outstanding issue that I raised in that post that I didn't solve, and it was that the fuzzified update times were failing out on IE11 after the first time it was successful.

Well, I resolved it today. May I turn your attention to ISO-8601's time zone designators. Observe that both +0800 and +08:00 are valid time offsets from UTC. Firefox and Chrome can handle both.

Guess which browser believes that only +08:00 is the valid format. Yep, it's I-friggin'-E11.

🤦‍♂️

I fixed that pronto and it worked. Sort of.

It turns out that IE11, in addition to not supporting the reversed keyword in <ol>, also doesn't support the CSS property of text-decoration-style.

``But why would that matter?''

Remember how I talked about the issue with the fuzzified update times? I was using <abbr> tags to store the original timestamp to allow the precise version to be shown when the mouse is hovered above it, like the way an abbreviation is presented. IE11 supports the <abbr> tag, but it's hidden away since it doesn't render something to the effect of text-decoration-style: dotted like Firefox and Chrome.

What's the point of having a defined <abbr> tagged information when the reader cannot see that it exists?

I fixed that with a hack, and surprisingly, the hack did more than just enable that dotted line demarcation in IE11---it also solved the side problem that I was having from the way I was doing digit grouping in SI style.

So that's most of the problems solved. I know of a way to solve the non-support of the reversed keyword in <ol>, but it requires additional effort for small gains---like most solutions, it involves implementing the behaviour using JavaScript. I'm just not sure if it is really something I would want to do.

------

As predicted, I completed Cyberpunk 2077 today, taking my femme V to leave Night City with the Aldecados and Judy, my in-game belle. It's an emotional end to a nice game with decent story-telling. I clocked more than 100 hours of play-time on it, and I don't regret it. It really gave Eileen-II a good work out with all that ray-tracing goodness (and Deep Learning Super Sampling (DLSS)), but the trade-off is one of the most gorgeous graphics I have seen in a long while.

Rain and its aftermath brings out the best that the graphics engine can offer, with luscious reflective elements and shadows that look more realistic than the usual shadow maps that are pre-built into the set pieces.

There are more endings that I can theoretically go back and get, but I think I will stop my gameplay on this ending that I chose. It ends the game in a way that I want, and that's good enough for me. The final set of missions were marred only by the weird bug where my Overwatch sniper rifle was removed---actually it was not just my Overwatch sniper rifle, but all my sniper rifles [in my inventory] that were removed. It was a [small] problem because there was one segment that could be better done through sniping from far away, but my build was around using assault rifles anyway, so it was at best a minor inconvenience---the specific assault rifle I was using fired in 3-round bursts anyway, and so armed with a decent scope, it could double as a half-ass sniper rifle without the penalties of low reload speed and ``only bloody far distance'' aiming.

As for reading, I've done page 925/1321 for Handbook of Data Structures and Applications. The going is tough, but I think I miiight be able to complete it by the middle of next week. I'm now nearing the end of part 6/7 (Data Structures in Languages and Libraries) and am about to hit the final part.

Looking at my list of games to play, I think I'll head back to Halo 2 next. I have abandoned Feudal Alloy, as well as Divinity: Original Sin. First person shooters and games that use mouse and keyboard really appeal to me more than controller stuff.

I do hope to at least complete one playthrough of Bayonetta though. Mmmm... leggy glasses-wearing long-haired sassy time witch...

A-hem.

I've also completed the first Futurama film, and hopefully I can finish it all by uhh... the week after. Then I can probably start on something else, like maybe Avatar or something. Who knows? Or perhaps a rewatch of the Hellsing OVA. Mmmm Integra Hellsing...

A-hem.

That's about it for now. Till the next update.

Tuesday, May 11, 2021

6 More Pints of Guinness Down the Hatch

I went to my favourite bar again today, and drank 6 pints of Guinness while having a salmon sandwich (totally counts as part of the burger+beer deal on Tue and Thu), luncheon chips, and eventually a rib-eye steak, before topping it all off with some Anderson's ice-cream.

Then a thought came to me: do I have a drinking problem?

I mean, I'm not exactly drinking every day, but I do drink moderately every week. That's not a drinking problem... right?

Well I'm no expert. According to this FAQ though, the warning signs of a drinking problem include (numbered for ease of reference):
  1. Spending a lot of time obtaining, using, and recovering from the effects of alcohol.
  2. Being unable to cut down on alcohol use despite a desire to do so.
  3. Cravings, or a strong desire to use alcohol.
  4. Having a tolerance (i.e. needing to drink increasingly large or more frequent amounts of alcohol to achieve desired effect).
  5. Developing symptoms of withdrawal when efforts are made to stop using alcohol.
  6. Using alcohol in higher amounts or for a longer time than originally intended.
  7. Giving up previously enjoyed social, occupational, or recreational activities because of alcohol use.
  8. Being unable to fulfill major obligations at home, work, or school because of alcohol use.
  9. Continuing to abuse alcohol despite negative interpersonal or social problems that are likely due to alcohol use.
  10. Using alcohol in physically dangerous situations (such as driving or operating machinery).
  11. Continuing to abuse alcohol despite the presence of a psychological or physical problem that is probably due to alcohol use.
Hmm... based on that list, I think the answer is an emphatic... no.

I don't have a drinking problem. That's good to know. Phew.

------

In other news, I've completed page 804/1321 of Handbook of Data Structures and Applications, the whole of Animorphs Series: The Stranger and Guerilla Warfare by Ernesto ``Che'' Guevara, and page 25/99 of Animorphs Series: Megamorphs #1: The Andalite's Gift. I've also completed all possible side quests for Cyberpunk 2077, and am about to start on the quest ``Nocturne Op55N1'', which is the penultimate main story mission, and the so-called point of no return, where the ending of the game is locked depending on the choices made during ``Nocturne Op55N1''.

As I said before, I suck at doing endings, so it won't be done tonight---I still want to sleep [relatively] peacefully. It'll be tomorrow, and from the looks of it, I will conclude my foray into Night City, after which I will promptly uninstall the game, reclaiming some 64+ GB of space while recollecting the experience that was the game.

I have also come up with the broad concept for this year's entry for NaNoWriMo. Tentatively titled 50 Ways To Die, it will feature... umm... yes, fifty ways to die. It will give me the right excuse to do the necessary research to ensure that I can actually come up with the fifty ways.

Is that a cry for help? No no no no... I already said that if I were to die by my own hand, it would be after both my parents have passed on, and even so, only if there are no more responsibilities left for me. I'd like to consider this exercise as a way of confronting the random suicide ideation issue more directly and thus remove its power over me through massive amounts of thinking.

Alright, that's it for today. I'm going to munch on some Tao Kae Noi hot and spicy seaweed snacks while chilling in front of some video---probably a couple of Futurama episodes since the recent HoloEN stuff is a bit on the long side (3+ hours, even with 2× pace we are still looking at 1.5 hours---ain't nobody got time for that tonight).

Till the next update.

Monday, May 10, 2021

Fun of Emergence, and ``Fun'' of IE11

Deterministic
[Statistics] of or relating to a process or model in which the output is determined solely by the input and initial conditions, thereby always reutrning the same results (opposed to stochastic).
Stochastic
[Statistics] of or relating to a process involving a randomly determined sequence of observations each of which is considered as a sample of one element from a probability distribution.
Emergence
When an entity is observed to have properties its parts do not have on their own, properties or behaviours which emeerge only when the parts interact in a wider whole.
Why these literal dictionary definitions?

Because I think I am seeing why people do the things they do, and like the things they like, and more importantly, dislike the things they do not like. It is not a philosophical triumph by any regard, but a personal epiphany.

Generally, we think that determinism is a great thing---know the initial conditions, know the rules, and the outcome is perfectly predictable. That's the guiding philosophy for early natural philosophy, which explains the formulation of the so-called classical laws [of Physics/Chemistry] and the development of axiomatic Mathematics.

Then we realise that not everything is deterministic in nature, but there exists some good statistical bulk behaviour that can be characterised by stochastic processes, where the outcome of any individual member is not known, but the overall ``average'' behaviour of the system can be characterised by some probability distribution and set of rules. This, of course, leads to the theories of temperature, deeper quantum-related explanations of particle/wave behaviour, probability/statistics, and of course, the fabled statistical machine learning/data mining.

Despite the power that stochastic reasoning has, there is still the problem of the time horizon, where the predictive power of the stochastic reasoning gets increasingly unreliable the longer the time horizon we look at. That is because of emergence, or how the interactions of the parts that comprise the system introduce an exponential increase in the state space to the point that we currently do not have any good language to describe them. This is why the less bio-chemistry forms of biology, psychology, sociology, and even economics remain mostly intractable. A possible issue is that our language is very sequence heavy while such emergent-behaviour centric systems necessitate a certain level of parallelism and concurrent interaction that we have no way of characterising with our current reasoning machinery.

I hypothesise that if we become good at understanding emergence, then we are one step closer to claiming powers that only the gods themselves are said to wield. But I doubt that emergence is the final frontier for knowledge---it is likely that there is some even larger and more complex mechanism that is outside of our ken. I think that... supremum method is likely to be the minimal level of a technical description of God that one can muster, if one truly dares to step that far.

But let's bring everything back to the current reality and put things into perspective.

For most people, whether they are willing to admit it out loud or not, a life that is couched in determinism is boring. There is no fun in doing something whose outcome is already known before one has done it. This explains a lot of the push of automating so-called low value menial work (highly repetitive and simple actions in a controlled environment), and the slow movement towards automating the soon-to-be-called low value forms of intellectual work (highly repetitive and simple actions in a controlled environment). This is also why jobs that are effectively determinism in nature are paid lowly---there is little to no un-understandable risks involved.

Life that is in a stochastic setting is a bit more exciting than determinism, but can be boring for those who can calculate. Quality control processes come to mind, as do gambling in the form of a lottery, or any other games of chance at the casino. To those who don't know the underlying stochastic process (and bounding distributions) well, stochastic processes are always exciting, and their ignorance often causes them to be potentially taken advantage of by someone who has the appropriate knowledge and wherewithal to exploit it. So insurance companies, armed with reams of actuarial data, as well as casinos, armed with complete analysis of the expected values from the games of chance they offer, have a field day plying their trade to the ignorant.

Life in emergence, that's the true and real life. There are many rules that guide our behaviour in society (for different subsets of society), but there are even more interactions and multi-level relationships among the people. As a result, nothing is truly predictable with high confidence as the time horizon increases. War is a brutal example---the different sides in a conflict have their material, their manpower, their training. Often there is some strategic and tactical analysis to estimate the chances of success for a particular war plan. But nothing is really predictable in the deterministic nor the stochastic way, and the only way to find out if one is successful is to actually fight the war.

A less gruesome version of that is that of team sports. I had been wondering for many years why people were so into team sports like football, rugby, American football, baseball and the like. Or why someone would want to grow potted plants, or rear fish in an aquarium. None of these things seem to be ``useful''.

And then I examined myself in terms of watching speedruns. Why do I enjoy watching speedrun videos? Or why do I find those recent YouTube videos that I was talking about over my many posts interesting?

The answer surprised me. Because in all these cases, we are drawn to emergence. Yes, there are fixed rules (game rules for sports, the programming and hardware for the video game being speedrun, laws of Physics for the building videos, social rules for those that involve interaction). But despite these fixed rules, none of the fun stuff that occurs could have been predicted, and that's what make things fun. Because good surprises are fun, and the definition of a surprise is something that was unexpected (good just means that there isn't any danger real or perceived).

In short, the me who likes watching speedrun videos and/or Let's Play/live-stream videos is no different from the football fanatic. We are all junkies for the unexpected that happens from emergence---our only difference is the choice of the system that we want to observe.

It's the same for the potted plant grower and aquarium afficionado as well---they are managing some systems and derive part of their fun from observing emergence, looking for surprises that pique their interest.

I think it's also the same reason why people go on hikes, or develop wanderlust. It's the idea of seeing something unexpected [in a safe way] that provides a type of recreation which makes life less scary than the steady march to death.

Actually, it's also the same reason why people are drawn to religion. The scripture and doctrine are fixed rules, but their application and applicability to one's life is the identification of which rules needed to be applied for a specific [personal] observation of an emergent behaviour.

I never thought that emergence could be a contender for a super-set interpretation over stochastic, my previous favourite paradigm of viewing the world. I think I might want to ponder on this more.

------

In other news, I rearranged my room a little today. One problem I was facing was that I wasn't playing any instrument as often as I should, of which part of the reason was the severe blocking of access to my sheet music due to the original arrangement. In my previous arrangement, the music stands needed to have the two tenor saxophones and a few other instrument stands moved out of the way first before accessing the stands. That was non-trivial because I had to move the obstructions somewhere to retrieve said stands, and then move them out of the way again to have place to play whatever instruments I wanted.

All that contributed to inertia.

So I switched things around, arranging my instrument cases that don't sit on my 笛子 shelf so that they line the space in an `L' configuration, and have the main music stand sit immediately behind me, where I used to squirrel away one soprano saxophone, one alto saxophone, and one bass flute. The rest of the instrument stands now sit in front of the instrument cases that are in the `L' configuration. I think this reduces the inertia, and it is a good thing because I want to start doing more hard stuff for 笛子 and flute again soon.

After doing more stupid tweaks at stupid o'clock, I finally had a chance to test out the updated fonts (and their TrueType fallbacks) on Eirian-IV. It crashed the experimental browser. After some very lazy investigation, it turns out that the experimental browser did download the TrueType fallback fonts, but had trouble rendering the page using them, possibly due to the memory limitations of the device and/or operating system.

On a whim, I tried it on IE11, and promptly regretted it. The bloody thing does not handle any of the special whitespace characters that I use to adjust the formatting---everything gets turned into some oversized quad-space monstrosity. Oh, thank goodness for the TrueType fallback fonts---IE11 does not understand WOFF2. So viewing this blog in IE11 will use the dreaded `Il1|' nonsense that Arial provides (it's not worth it to embed the Base64 encoded version of the TrueType fonts due to the size and the number of browsers that actually need it).

Well, that's IE11 for you. 🤦‍♂️

I fixed the prettyprinter to not use such characters if it detects that it is running in IE11, and that's about it. There are also problems with the way the fuzzified update times are failing on IE11 on the time-out based auto-update, but I'm less concerned about it because even without the auto-update, the demonstrated contents on the first load is still technically correct.

The more astute should suddenly ask this question: ``Why the heck are you dealing with IE11? Isn't it supposed to go the way of the dodo thanks to the existence of Edge?''

If one reads the IE11 Wikipedia article, one should realise that there doesn't seem to be an end-date for IE11's support in Windows 10. Also, I made the mistake of testing my personal domain on IE11, and since it looked much fuglier than I could stand, I just felt this compulsion to fix it.

Oh, and IE11 doesn't handle the reversed ordered lists at all, so it's like I went back to the stone ages, to the time before I updated the entire site to use HTML5.

As for the reading, I've completed page 743/1321 for Handbook of Data Structures and Applications, and Animorphs Series: The Capture.

I think I'm going to head out to my favourite bar to do more reading, beer, and burgers tomorrow.

Till the next update.

(And this time, for God's sake, I should sleep waaaaaaaaaaay before stupid o'clock. Having only about 4 hours of sleep on a sabbatical is downright stupid, not to mention a great way of setting myself up for falling sick in a time period where any form of fever-related illness is looked at with great suspicion of being a case of the COVID-19.)

How Many More Such Stupid O'Clock Technical Crap Am I Going To Do?

So much for not sleeping at stupid o'clock... I wrote about updating the fonts and what not. Well, it turns out that the new version of Inconsolata has different characteristics from old Inconsolata as well, which meant re-tuning all the ``magic'' numbers. That was done.

I also adjusted the behaviour for <textarea> so that it doesn't overflow rightwards if the pixel real-estate is on the low side.

I then discovered a bug in the radix tree implementation when it was doing a split---it was generating phantom nodes that shouldn't exist. That was quickly resolved of course, with the updated generated regex plonked into the pretty-printer and pushed out into production.

Okay, that's a wrap. Need. Sleep.

Sunday, May 09, 2021

Hololive: Modern Day Paper Doll Play

Sunday night, some hours before the fabled stupid o'clock. I really hope that I do not end up at stupid o'clock still being awake---it really is a bad habit to develop, all things considered.

I didn't go out of the apartment today, not even to get junk food. There has been a steady non-zero amount of so-called ``community transmission'' cases of COVID-19 out in SIN city, and already the government has increased restrictions. In fact, the more astute readers of a previous entry of mine would find out that among the list of new restrictions published includes the suspension of congressional singing. I'm highlighting these specifically to point out that the government has assessed the situation to be of a sufficiently credible threat before they would implement such restrictions (especially after only recently having further relaxing them), and thus it would be a little foolish to not take a more conservative approach.

So okay, I stayed at home. I am probably going to stay at home also tomorrow, unless the wanderlust kicks in, at which point it's time to hit some random [small-ish] nature park again. That walk around Windsor Nature Park? I really enjoyed that.

I spent much of my time reading and watching a different type of YouTube video. Let's first talk about the reading. I reached page 705/1321 of Handbook of Data Structures and Applications. The going is tough, since each chapter is basically like an academic paper, similar to the structure of Harrison's Principles of Internal Medicine (20th Edition) that I am also working through, or even The Dinosauria (2nd Edition) edited by David B. Weishampel, Peter Dodson, & Halszka Osmólska that I had finished reading last year. But I'll get there in the end.

As for the type of YouTube video, I learnt about Hololive Production, or more specifically, the Hololive English (HoloEN) crew. VLogging aside, the main gimmick of the Hololive set up is the use of digital avatars that are rigged to essentially be marionettes that are voiced and puppeted by the talent who exist in a type of kayfabe as the avatar/character does things on stream that are vlog-friendly. The HoloEN team recently got new outfits for their characters, and they are cute.

But that aside, as I was watching some of their new outfit reveal videos (specifically for Gawr Gura, Amelia Watson, and Ninomae Ina'nis), I cannot help but associate the whole Hololive phenomenon with playing of paper dolls from the days of old. With the technology currently deployed for the HoloEN team, the association is more valid than one might think, since the character and their clothes/accessories are still 2D in nature, despite the 2.5D trickery that comes from clever rigging of the character art model. Now I don't mean to highlight this to cast shade on what is done here but rather to express admiration that what is old is now made new again because of the accessibility of technology.

Paper dolls of old could only do very limited articulation if at all, and all the ``conversations'' that one could have with it are fully in the domain of the player's imagination, not to mention the severely limited ``audience'' (usually it's the poor mum who ends up listening in on the tea party---most dads just disappear from the scene, but there are some who don't mind experiencing a different slice of childhood that they might not have experienced while they were still children). Now, the modern paper dolls have better articulation while retaining the aesthetics of the cute art style, changing clothing and accessories are less cumbersome than the old paper dolls, and more importantly, with modern audio-visual recording, streaming, and communication technologies, can have what is effectively an imagination driven play shared with the rest of the world among the like-minded, generating a collective fan-base over the same kayfabe globally.

So wondrous.

What is old truly is remade anew!

------

In other more technical news, I took the opportunity to update all the fonts that I was using on my personal domain, including the adding of some fall-back font formats that I would have omitted before due to file sizes (and general stinginess in storing those files that are not used 99% of the time). The motivation for that is the ``experimental'' browser's behaviour for my Eirian-IV. It wasn't doing well with the fonts that didn't exist in the system, and I was wondering if it was because the WOFF2 font format was too new for it to handle.

I still haven't tested it on that browser though. Maybe it will work, probably it won't. It's not that big a deal though, since I don't really use that experimental browser much, if at all.

It was just an excuse to tinker. That's as sufficient a statement as it gets.

Anyway, that's about it for today. Till the next update.

Saturday, May 08, 2021

Abusing Time

Let's be a little more... philosophical today. I think I've been putting in borderline zero days that would embarrass the whole rationale for this sabbatical.

Time is the single most important resource that anyone has. It's not money, heck, it's not even health. It's time. With time, one can recover some health, one can make money. One can achieve many things, when there is enough time to do so.

Time is the mightiest of levellers---everyone is credited the same rate of time, no matter how rich, poor, famous, infamous, mundane, saintly, or asshole-y they are. It's always ``one second per second'', even under relativistic conditions. Time cannot be banked---one cannot simply ``store'' the seconds now to be expended at a future date instead. Time always carries on, whether one is ready or not.

The cornerstone of capital is the intellectual breakthrough of creating a shared mythology of how time may be banked. It sets up the consensus of an accounting mechanism that permits us to do the impossible, that is, to bank time in the form of so-called capital. It does so by first equating time to value through the transmutation process called labour. From this shared starting point, more and more complex accounting mechanisms that attempt to refine the quantification of time as capital builds upon it, which includes theories of accounting like banking, interest rates, lending, and the difference between money and economic value as expressed as capital.

Capital is basically the shared fantasy of people in the same way that the US dollar is valuable---they only have value only because enough people believe that they have value. This is, of course, in sharp contrast to the use-value of anything, which is not exactly related to time at all, and should be considered a somewhat orthogonal concept. Use-values does not occupy a high proportion of what we commonly understand as the capital of world, surprisingly enough.

But I'm not here to argue about capital---go look at Marx's Capital for an introduction. I'm here to argue about how we should look at time, and how we should use time. Capital is only relevant here in the form of the man-made fantasy that time can be stored away for future use.

I say nay. Don't get fooled by that fantasy. That ten minutes spent in childhood is vastly different from the ten minutes spent as a working adult in terms of their perceived value, and the context in which they are drawn from, for instance, as a relative proportion of the total time of being alive at the point of use.

Since time is the mightiest of levellers, and is the only un-renewable (what is renewable in the face of the Second Law of Thermodynamics anyway?) resource, it also means that only activities that are scheduled or done are considered valuable. This means that if something is worth doing, time should always be made to do it; ``busy-ness'' is never an acceptable excuse. Paradoxically, this includes activities/events that do not seem to contribute to the fantasy of banked time in the form of capital, like rest, and recreational activities like hobbies, or just play, that do not directly contribute to the generation and storing of capital.

To me, if someone keeps complaining about being busy, I need to first ask myself if this person has control over his/her time scheduling. If no, it means whoever is doing the scheduling is basically a slave-driver by some other name, since the schedule owner is clearly more interested in contributing to the fantasy of ``banking'' time for the future via some other person's efforts than respecting the boundaries of the other person. If yes, it means that the person has a poor concept of what truly matters in life, and has probably over-allocated too much of his/her time on things that probably need not happen at that time.

Now, that is a very strong assertion no matter how one looks at it, and I agree; it sounds like something that only a person of privilege can say. But this early conclusion is drawn only because one assumes that I am making the strong assumption that everyone has agency of choice within the society to decide how they want to use their time. For some people, this is not possible, and to me, it is not necessarily a case where the reason is that these people are lazy or lousy; it could very well be that the society on a whole has believed too much of the shared fantasy, giving it way too much importance than it should.

I am not advocating a purely socialistic approach towards this. I am also not advocating a head-in-sand approach towards this neither. What I am saying is that part of the so-called degeneration of society that people like to complain about comes from the steady stripping away of humanity from human activities. Yes, I get it---if one lives in an urban society, the ``cost of living'' is high, and there is a need to work hard enough to make enough money to ``live'', and that everyone wants to have a good [material] life.

But that's a fantasy bet, isn't it? Spending all the time that one has working for a soul-less legal fiction that is the corporation to chase after imaginary fantasies of value that pretend that they can store time for future expenditure, for a future that they don't even know they can arrive in one piece and in good shape.

Isn't it better to spend some time fulfilling the cost that society demands of us, and then spending the other time doing things that keep us human, like relating to God, relating to other people, and also relating to ourselves? What's the point of being a human in a human society when one treats oneself like a cog in a machine through overwork?

I mean, I didn't make this shit up. Just go search for ``biggest regrets'' using your favourite search engine and start reading. Despite all the differences in the wording of the various top n lists, the fundamental principle is the same: ``I wish I had used my time on things that made being a human... a human''.

Time is the mightiest of levellers---there is no easy way of working with it, just because there will always be things that demand time from us. But are we not humans with free will? Shouldn't we treat ourselves a little nicer instead of working ourselves to death in the pursuit of a shared fantasy? Shouldn't we learn to be more human, before it becomes impossible to do so?

This COVID-19 pandemic nonsense is a blessing, not even in disguise, to those who survive it. It provides a pretext for one to really examine the world around them, where the lies that are put forth get tested (and shown to be lies), the truth is proven to be truth, and the real helpers start shining once again to remind us that it is important to not lose our humanity.

Some might think that my sabbatical is a waste of time, a blemish to my employment record since it shows a gap year that seemingly does nothing to my career. But I say, if a hiring manager/boss cannot understand why such a gap year is necessary, then it is likely to not be a place that I want to work at. I suppose I'd rather take the so-called indignity of doing an honest job at sustainable but low levels of pay over a high-paying job that requires me to sacrifice my humanity.

Life's too short to be chasing imaginary delusional ``awards'' that we give to ourselves to make it seem like we are doing the right thing spending our time totally on work and not anything else. That's why I generally refuse to take things that I do as a hobby to make them into so-called side-hustles---they are hobbies because they keep me human, and if I start to taint them with Mammon's grasp, in what way are they going to keep me human still?

Anyway, that's enough for now. Till the next update.

More Stupid O'Clock Website Fixes

Urgh. I really should stop tweaking my personal domain at stupid o'clock. Ah well.

Quickly, these were done:
  1. Fixed the non-updating of the timestamp bug that was introduced from the SI-style digit-grouping mechanism;
  2. Re-matched the font sizes for the monotype fonts (Inconsolata, Unifont) against the ``normal'' font (Atkinson Hyperlegible);
  3. Kept the <pre> tag with Unifont to use pixel-perfect scaling of 16 px;
  4. Actually ensured that Unifont is using 13.0.04 (was still 13.0.03... I think I forgot to promulgate the change after the re-split);
  5. Fixed the HTML5 minifier to not eat spaces indiscriminately (it was causing weird alignment issues);
  6. Tweaked the way the winner's logos are displayed in NaNoWriMo page.
Okay, that's about it. I need to go sleep. It's waaaaay past regular levels of stupid o'clock.

Till the next update.

Friday, May 07, 2021

A Bit on Reading

Today's a Friday, and the end of the first week of May.

The time passed on by pretty quickly as I indulged in more reading, this time of a less structured sort---I mean that I was just reading things that were linked on reddit. I also watched some Futurama, and played a bit of Cyberpunk 2077.

I think I'll not play Feudal Alloy, and had it uninstalled from my Steam. I mean, a game is supposed to be fun, if it is not fun any more, perhaps it is not a good idea to sink even more time into it.

I ought to say the same about books, but the reality is a little different there. Even if the book is not ``fun'', as long as it is a work of non-fiction, I tend to want to read it through, the chief reason being I never know when the information that is contained within can prove useful. After all, all the so-called different disciplines that are defined for human knowledge are really just artificial partitions to ensure that a certain amount of structure can be instituted to ensure that sufficient amount of specialisation and depth from the specialisation can be achieved by a single person within a life-time. It is a stop-gap measure to manage the vast amount of knowledge that exists, since the days where a single person can be a high-performing polymath is over thanks to the massive knowledge increase from exponential growth.

Fiction though... the more I read them, the more I tend to want to be a bit more careful with my choices. There are some fiction that are purely for entertainment---see the Animorphs series that I am chewing through. There are also some fiction that are really social commentaries in disguise---see the award-winning ones for examples. I believe that we have reached the point where most stories follow some established narrative pattern, and thus if one's goal of reading a work of fiction is to discover ``new'' narrative patterns, it might not actually be worth it if the story itself is unappealing.

That is why I am still ``slogging'' through the really long works of Harrison's Principles of Internal Medicine (20th Edition).

Well, back to Act 3 of Cyberpunk 2077. I think I won't be greedy---just achieving a single ending would be good enough for me, sort of like how I completed The Witcher series of games. I might want to try out more of the first-person shooters that I have lying around in my game library, or some of the role-playing ones. It seems that I am still actively avoiding anything that uses controllers.

Till the next update then.

Thursday, May 06, 2021

Nothing Revelationary Today

Nothing revelationary today. It's just some reading (Handbook of Data Structures and Applications completed to page 649/1321; Harrison's Principles of Internal Medicine (20th Edition) completed to page 384/3790; completing Animorphs Series: The Encounter), and some light Cyberpunk 2077 (in the start of Act 3 now).

Oh, and the realisation that there exists an RTX enabled version of Quake II on Steam. I mean, I have Quake II in CD (and subsequently, on Steam) for quite a while, and having RTX for it seems to be an interesting spin to a venerable game/engine. I ran a quick run through it, and I think that the graphical update is good, though the sound scape leaves much to be desired.

Hmm... is there anything else to talk about today?

I... made popcorn and drank two cans of Guinness Extra Foreign Stout? And watched some more Futurama?

Oh, and I'm down to the last 2 days for Bible in One Year 2020 With Nicky Gumbel (reached day 363/365 today).

Frankly, I could've written more, but I think I want to keep it easy this week. I think I'm out of spoons with the sudden burst of human interactivity over the earlier part of this week.

So, till the next update then.

Digit Grouping, SI-Style @ Stupid O'Clock

Yes, I'm well-aware that it is stupid o'clock.

No, there isn't an incoming rant. However, there is a quick technical update.

I tweaked my personal domain a bit more to better handle large numbers by following the SI style (English version) of grouping digits. I decided to follow the Wikipedia example and use CSS magic to attain the needed grouping/spacing without adding extraneous space characters that would foul up the search (this search issue is a problem for the pretty-printer that uses many different kinds of hidden spaces to achieve the specific requirements). However, Wikipedia chose to use a regular space as the separator (0.25 em), while I preferred the thin-space instead (0.15 em). Part of the reason for that preference (other than the stronger grouping characteristic of the digits to form a single number) is that the thinner space fouled up the dotted underline that comes with the <abbr> tag much less.

That last sentence may not make much sense until the easter egg is found.

Anyway, going back to the main reason for wanting to do this: the summary page of my NaNoWriMo attempts/wins. The five-digit word counts looked a little annoying without the digit grouping, and thus needed to be rectified.

As a small bonus, I could quickly script up a life-time word count for all my NaNoWriMo entries and present that up front as well. In this case, the grouping of digits was even more important since as at this point in time, I have written about 650k words across the 12 years of NaNoWriMo.

Okay, itch scratched.

Bed-time it is for me. Till the next update.

Wednesday, May 05, 2021

Teeth Cleaning

Today---it is an off day. I was daydreaming of what are good suicide missions to go on to make the best use of this meat-armoured carbonated hydroxyapatite endo-skeleton body. Thankfully, I couldn't come up with any, because there was nothing really impactful that one death can do.

Viewed positively, it means that this intrusive thought can go take a hike. Viewed negatively, this world is so fucked that even if one is willing to die, there is literally nothing that ``ultimate sacrifice'' can do.

Anyway, on to less depressing matters.

I went to get my teeth cleaned and treated with high concentration fluoride at Bukit Timah Nam Seng Dental Surgery Pte Ltd over at 144 Upper Bukit Timah Rd, #01-16 Beauty World Centre, Singapore 588177. I missed my annual trip there last year thanks to the greater uncertainty that came from the pandemic, and in many ways, I thank God that I had the appointment made for today, since there is a return to more restrictions thanks to the recent ``spike'' of so-called community cases.

After the dental appointment, I walked about Beauty World Centre for a bit, just to lay down new memories and contexts to put the older ones further out of the way. The foodcourt on the top floor still exists, and I even had some beef-ball kway teow from Penang Home Made Beef Ball once the 30+ minutes of waiting time after the fluoride treatment has passed. The shophouse/room that was originally an archery specialty shop that became a dance studio is now yet another handy-man store, seemingly competing with the venerable Lucky Departmental Centre at #04-09.

The more astute might wonder. How is going for a dental appointment remotely related to an old memory that I want to recontextualise? It's about Oishii Bakery at #04-02---I remembered buying some bread from there on a Saturday after lounging about from after yet another dental appointment to feed her before she was going to scramble from her work place to an event that she was working on after work. The timing was tight enough that I was worried about her not getting dinner, and so I did what I did.

Memories... so silly huh. Talked with YT about this recently, and we sort of disagreed on what happens to them. She says she overwrites old memories with new, while I say I bury them with new. I think we can both agree that the final outcome is that the new memory gets preferentially retrieved, and hopefully through that preferential retrieval the old memory does not re-surface.

Anyway, I headed to Shen & Co. after that at 140 Upper Bukit Timah Rd, #01-01, Singapore 588176 (basically in the building next door) and chilled for a bit with some Long Black coffee and fries with garlic [cloves] and truffles.
I did a little bit of dead-tree journal writing as well, and did a little reading.

The route home was interesting. I didn't take the Downtown Line (DTL) all the way to Little India station for the transfer, but instead got off at Tan Kah Kee station to switch over to bus service 74. It has been a long while since I took that bus, and I was just curious to see what has happened to the roads that it plied, especially since the construction of the North-South Corridor (NSC) has messed up Marymount Rd and Ang Mo Kio Ave 6, with massive diversions and other unsightly crap that was akin to the phase 2 construction of the Thomson East-Coast Line (TEL) that I talked about before.

Conclusion after riding through? Yep, it's quite messed up. The diverted roads are a whole 3-lane carriageway displaced, with lots of big dug up work-areas that are cordoned of, where Singapore's most common bird (the construction crane) roosts.

Anyway, I think that's about it for now. Till the next update.

Tuesday, May 04, 2021

中日韩字符の粗言

哇……前回以中文书写博客的时候,就是公元二零一二年的二月。不知今天发什么疯,突然间觉得因该以一个已经很久都没有用的语言来表达今天的趋向于感情。

但话先说在前头:如果这博客条目中出现了错别字,那么就是微软的简体 IME 的疏忽,而绝对不是因为我的华文性能欠佳的问题。😅

好的,五月已经降临了。前几天的条目中已经提过了休假的新阶段,所以就不会再提起它了。那么,这里又有什么好谈的呢?

竟然用了 Unicode 中的简体中文字母,就谈一谈电子中文文体的问题吧。

Unicode 利用了所谓“中日韩字符”来把中文,韩文,与日文的字体统一起来以便浓缩所需要的字符码基数。这表面上不是什么大问题,但这是完全以我身为一个只识中文字母的角度而言。中、日、韩的字体上有些微分的区别,不过在日常见到的数码文件上,是很难分辨出来的。

这问题出在于数码文件字形的大小问题。中日韩字符的字形往往比拉丁字符来得复杂,但两者的字形高度大多数都已拉丁字符的高度为标准。也就是说,大部分的数码文件会有一种不平衡的去向--若要中日韩字符显得明确,就需要把字形大小调大,但是这个举动会造成普通的拉丁文字的字形偏向“巨”,造成整个文件出现极不平衡又显得很随便,就像海报格式是的,不雅观。

我对这个问题没有什么好推荐。在我的个人网络域中完全没有对这个问题提做出任何缓解方案。唯一我所做的就是在CSS中利用 GNU Unifont 为后被字体。GNU Unifont 的好处在于它的等宽设计--所有的拉丁字形都是中日韩字符字形宽度的一半,而它们的高度统一。换句话说,两种字形都是一样的“奇怪”。就因为这样,才是后被字体嘛…… 😅

回到中日韩字符字体,我总觉得“方块字”的最小像素形状不应该小于 32 px×32 px。现在大部分的屏幕都以 1920×1080 为主,如果用 32 px×32 px 的字形大小来计算的话,就是说屏幕上可有 60×33 格。平时所使用的 A4 稿纸大多以 20×20 格,也就是说这个 32 px×32 px 的大小在 20+" 屏幕上的具体尺寸就和普通手写字的大小相同。这起码会时中日韩字符的字形显得比较容易读,甚至可以让中、日、韩的字体上的微小区别显露出来。GNU Unifont 现在的“方块字”格以 16 px×16 px,但是他们可能会利用 32 px×32 px 来拼出新的 Unicode 字母,就不知道他们会不会回头从新以这个比较大型的像素点格来拼出所谓的“高清中日韩字符字体”。

字形大小之外,我也觉得屏幕上的 font face 不应该出现衬线 (serif)。衬线的使用需要更多的像素点来画出来,而大部分的中日韩字符字体的复杂性已经高过与先在普用的字形大小,所以这些衬线是不助于提高字体的可识别性。这个结果恰好是拉丁文体的相反,也就因为这样,要找一个两者都可通的字形就是难上加难。衬线之外,我也觉得楷体式也很不贴切与数码文件使用。楷体中的笔画宽度不一,所以在较小的屏幕字形大小中会显得格外的模糊。

或许在中国的朋友会不赞同我这些评论与想法。或许他们在国内的电脑操作系统都不会有我所提到的问题。也或许他们见到在同一个数码文件中同时出现大量的中日韩字符与拉丁字母的机率比我来得更少,所以我所说的他们没有理由去思考过。

好了,我看这长篇大论也写的差不多了。下回的条目再见。

Monday, May 03, 2021

Windsor

I'm not sure if I have mentioned this before, but I like walks, particularly those that involve walking through places with more greenery, and less of the tell-tale signs of urbanisation. One of the many reasons why I delight in travelling to the US back in the day was to go on such walks with my friends who have similar inclinations as well, and man, those places in the US for such walks really puts most of what Singapore has to offer to shame.

Notice that I call them ``walks'' instead of ``hikes''. Mostly because I'm not hard-core enough---I've been resigned to the fact that I'm just a city-dwelling hermit who escapes into a curated ``natural'' place for a short amount of low-ish intensity exercise in the form of a walk, unlike say Brian who is hard-core enough to do things like multi-day treks while camping out in those US National Parks that are larger than my friggin' neighbourhood.

Anyway, today's walk was to Windsor Nature Park, canonically located at 30 Venus Drive, Singapore 573858, with YT who is, as always, a great walking companion. Getting there from home via the Android Google Maps app revealed a new bug---if all notifications were disabled, the map application would automatically self-terminate the current ``journey'' when it loses focus either through locking the screen via the single tap of the power button, or switching context to another app.

The original behaviour was such that whatever ``journey'' that one was on, the routing information and tracking would continue despite whichever of the two actions were taken. So having such a major anti-pattern appearing was frustration inducing, to say the least. The notifications were turned off by me in the first place because there prior to the latest update that introduced this new behaviour, there was no fine-grained control over what kind of nonsense they would show in the notification bar. So things like advertisements of various places along the way would show up, as is location-based ``recommendations''.

It's slightly better now in that there are such fine-grained control available, and the notification information displayed now is also useful for public transport taking---it does buzz when one's bus is near the stop that one needs to get off. That is a welcome feature that I had been thinking of before, but am pleasantly surprised to see it implemented decently.

While the bus was going along Ang Mo Kio Ave 1, I realised that the block of flats for low-income households along that road have been deconstructed into empty fields with ``residential developments'' planned. Whether those are to replace the ones that were deconstructed for the lower income households, or to create newer high-end housing solutions will require a bit more study of their billboard, which I didn't seeing that I was on the bus.

Digression aside, Windsor Nature Park features shorter and easier trails compared to the more ``traditional'' central catchment area type trails. A large part of the trails were boardwalk-styled, and were actually pretty boring to walk on. But to be fair, I can see why they chose to set up those boardwalks---the boardwalks themselves were an enhancement to the paths that, for some reason, sit between two water stream flows. Without the boardwalk, it was likely to be a muddy mess no thanks to general water loggedness from the always evolving streams of water.

There were other trails that were more traditional but still man-made---there was an aspalt one, and later on as we got to the peripheries, the gravel ones. Those were definitely fun.

We headed down to Thomson Plaza at 301 Upper Thomson Rd, Singapore 574408 to just enjoy the air-conditioning and scout for lunch. The weather today was simultaneously great for walking (no rain) and terrible for walking (high temperatures of 34 °C), so a respite in an air-conditioned place is always amazing. We found this meme-tastic set of banners that I will just put a picture of and not say more about, other than click on it to see it larger to read the funny text:
Meme-tastic banners aside, lunch was at Omoté, located on #03-24A in Thomson Plaza itself. Despite the weird acute accent, Omoté is actually a Japanese-styled restaurant. The food is undeniably good and has a price level close to a middle-high tier restaurant. Getting seats there is not hard, but it does involve a [short-ish] queue, at least at the time that we had gone there for lunch. I might go back again some time in the future, if only to try some of the other fancier fare that I wasn't ready to stomach today.

After that, we headed to Udders Ice Cream at 246D Upper Thomson Rd, Singapore 574370. It's good.

Sorry man, I'm not writing a food review blog here. 😅

Upper Thomson Road itself has changed quite drastically from just two years ago, when I was still plying parts of it on bicycle to access Lornie Road towards my old work place while avoiding the scary 70 km/h road that is Marymount Rd.
That's mostly because the crazy construction for Stage 2 of the Thomson East-Coast Line (TEL) has completed. I think I might want to dedicate some time to explore it more thoroughly than I had done today.

I mentioned about avoiding the scary 70 km/h road while being on a bicycle. This is something that I had learnt while I was hitting the roads hard in the US on my bicycle there---many roads had a speed limit of around 25--30 mph (about 40--48 km/h) due to being within the city bounds and/or residential bounds. Those were quite comfortable to cycle on. But when I was in the peripheries near the transition point between urban and sub-urban/rural, the speed limits rose to about 30--45 mph (about 48--72 km/h). I only managed to cycle about a quarter of a mile on that higher speed limit road before the sheer fear of the air-wake of the passing vehicles forced me to stop and rethink my route. This was by no means the freeway or anything---it was a legitimate road that a bicycle can go on---there was a bicycle lane in it which I was using. It's terrifying. So when I read about cyclists who are on some not-quite-highway roads that have the speed limit of 70 km/h, I break out into cold sweat.

I mean, even using the Tour de France average speed as reported by this page (just the first one I grabbed---there is no other reason), it is ``only'' 25 mph (or 40 km/h). This means that the sustain speed of a fast-ish cyclist is still slower than a puny goods vehicle that is rated at 60 km/h.

In short, cycling on those types of roads are just asking for trouble, especially since the driving culture in Singapore is less than gracious to begin with..

Anyway, that's all I have for today. Till the next update.

Sunday, May 02, 2021

Futurama Day

A day of Futurama is a day that is well-spent.

I've watched Futurama for years now, doing a re-watch at the average frequency of once per year. While I was working, it acted as the no-bandwidth consumption alternative of a masking background thing that silenced the discomforting feeling of complete silence that was often the case in most of the offices I worked in. It has been a while since I actually sat down to watch Futurama solely, and doing so today has revealed a slightly deeper pattern to it that I have not noticed before.

For example, the pacing of each Futurama episode is actually faster than that of Daria. The leading setting for the episode in the first act quickly evolves to the ``main content'' of the second act, which finally leads to the resolution of that ``main content'' in the final act. Themes in Daria lasts more or less consistently throughout the entire episode, and thus the pacing feels a little slower.

The soundscape choices of Futurama are also subtly contributive to the overall feel, a point that I missed out before because I was usually concentrating on whatever I was working on instead of paying closer attention to what was being said/playing in the background.

I didn't do much of other things today, other than put away the boxes for the components that I had purchased while building my mum's PC, thus freeing up more space. I really need to think about how I am storing my tenor saxophones---they currently sit in front of the various music and instrument stands, and make it a little harder to access them for easy grab-and-play semantics.

I haven't really been playing/practising/composing for the last month, and I think I would like to rectify that soon.

By the way, here's Sangah Noona. She recently started up a new channel for worship songs. I like her playing, and I like her singing voice---it's smokey. For some reason, I find myself enjoying the female voice that has that smokey quality to it, even higher-pitched singers like 何伶/董沁 (real name: 董晓禾). I suppose it really just means sexy, but eh, it's nice.

Anyway, Sangah Noona---she does live streams every Friday/Saturday evening (US Eastern time I think), where she plays stuff from a set list generated from what people request of her master list. I don't usually listen live (it's like stupid morning o'clock in Singapore), but I do reach for them when I'm doing some reading of some sort.

That's about it for now. Till the next update.

Saturday, May 01, 2021

May I

Well, it's May, and this blog entry is going out early relative to when I usually post stuff.

April was full of writings, possibly the most actual writing that I had done over my blogs [that do not involve poems], but I don't expect it to continue that way in this month. As I had mentioned previously, I am in the second phase of my sabbatical now, the phase where the so-called liberation from the confines of whatever system I was in gives way to a realisation by all parties that I am really no longer who I was. I didn't go about trying to define such phases---that would be stupid---but I suppose it is one of those things that can be sensed, if one were actually attuned to one's inner thought processes, as well as the reactions of those around one.

Now that said, let me bring up the old routine that I came up with for reference here:
  1. No zero days---I need to do something each day.
  2. Weekly, attend church services.
  3. Daily devotionals from Bible in One Year 2020 with Nicky Gumbel.
  4. Daily reading from my reading list.
  5. Daily, either play some music, or play some video game.
  6. Daily, try to write something, either a piece of music, a poem, a story, a computer program, or a blog entry.
  7. Weekly, get out of the apartment to do something different, or meet up with someone.
  8. Keep to OMAD for at least five days each seven-day week.
With a new phase comes new adjustments that are sorely needed.

For one, Bible in One Year 2020 with Nicky Gumbel is coming to an end soon (day 358/365 as at today). For two, I think there is a limit on how much tweaking I want to do for my website before completely exhausting all those minor projects. For three, now that I am mentally in phase two, it makes more sense to look into tackling some of the unfinished things that I should complete.

In no order of priority, these things are:
  • Build a new PC for mum.
  • Finish up the missing diagrams for my 笛子 articles.
  • Record that 埙 piece for HY to fulfil the condition she laid for getting me that instrument.
  • Complete the adjustments to the scores for 《山村迎亲人》 that were made back for the performance back in November 2019.
  • Schedule teeth cleaning at the dentist.
I've been procrastinating for quite a while, and I suppose that it is time to stop that. Part of the reason for the procrastination is the lack of proper equipment (the 笛子 diagrams need to be done either through my crappy drawing skills on the tablet, or some stand to hold my phone to take the pictures which I can rotoscope over), or a need to actually talk to someone (like setting up that dental appointment).

Better late than never, I think.

With Cyberpunk 2077 likely to be completed by the end of next week (assuming I actually stick to playing it most of the week), I can head onwards to play some other game. I know I've been harping about completing Feudal Alloy for a while now, but frankly, I think I'll probably abandon the run.

You see, I really don't like playing games that use controllers and not the keyboard/mouse. I don't know exactly why, but I think a possible reason could be my dislike of the heavy reliance on working thumbs to work the controllers. My right thumb-tip skin is particularly shitty for some reason, and thus it makes it annoying to actually control anything with it. Apart from using the interphalangeal joint to hold a pen for writing, I don't actually use my right thumb for anything that involves dexterity---this includes my musical instruments. For most woodwinds, the right thumb does nothing for pitch control; its role is to support the lower half of the instrument body.

The only exceptions (for the instruments I have) are the 口笛, 十孔笛, and the 埙. In all these cases, the right thumb tip is needed to control one of the tone holes. And that is the other reason why I still haven't fulfilled that promise to HY after more than two years. My shitty right thumb-tip skin still sucks.

Well, that's about all I have for now. Till the next update.

Friday, April 30, 2021

On Cyberpunk 2077's Writing

I didn't really want to write this post, but I think I ought to, just so as to capture a moment.

I've more or less cleared all the side quests that are available in Cyberpunk 2077, and am in the last legs of the main quest line. Translated to regular English, it means soon, I would have completed the game.

The story-telling isn't as strong as The Witcher 3 (I suspect it is something about deriving from an existing literary series versus a world-building rule-book), but the romance-able characters (Panam, Judy, and River---these I have seen so far) have very strong stories. I'm not going to spoil them [too much], but I just want to share that each of their story moments through their chain of side quests are very compelling.

V sryg gur cnva va Cnanz jura fur gevrq ure orfg gb qb jung vf tbbq sbe ure Snzvyl, qrfcvgr bccbfvgvba sebz gur ervtavat cngevnepu. Ure riraghny npprcgnapr nf n yrnqre bs gur Snzvyl vf n gbhpuvat zbzrag. V sryg gur fnqarff naq ihyarenovyvgl va Whql nf nyy gur crbcyr jub pnerq sbe ure crevfurq sbe bar ernfba be nabgure, zbfgyl qhr gb pvephzfgnaprf. V sryg gur cebgrpgvir angher bs Evire nf ur gevrq gb fnir uvf snzvyl guebhtu bgure zrnaf jura gur pbeehcg bssvpvny zrgubqf ner cebivat gb or erfvyvrag gb whfgvpr naq gehgu. Gur pne enprf gung V qvq jvgu Pynver jrer punyyratvat, ohg V sryg vg jura fur erirnyrq gur natre fur unq ntnvafg gung bar pbzcrgvgbe jubz fur nggevohgrq gur oynzr bs xvyyvat bss ure uhfonaq (qevire) va gur enpr gur cerivbhf lrne. Naq V pnaabg sbetrg zl byq pubbz Wnpxvr, jub qvrq orpnhfr bs gur obgpurq wbo gung pnhfrq gur znva dhrfg yvar va gur svefg cynpr.

The writing and delivery of the lines for these quests that count are really alluring and help flesh out the characters. At some fundamental level, I think the dialogue of the romance-able characters really touched something in me, a weakness from recent... events? I think that the loss of five years of that safe feeling of someone who has my back is starting to get to me, as the next phase of my sabbatical kicks in, the one where the social isolation gets stronger, as people start to realise that I am actually taking my sabbatical seriously and am not really that ready/interested to start work again.

I don't want to speak ill of people---this is just human nature---but it seems to be the case here. Genesis 2:18 says ``And the LORD God said, `it is not good that the man should be alone; I will make him an help meet for him.' ''. I think I'm feeling the effects of the lack of [most] forms of human intimacy now because of the emotional content that is within the writing for Cyberpunk 2077. A well-written game is at least as strong as a well-written book, the main difference that the delivery of the game can include additional elements to help suggest a particular set of emotional responses, while the book requires the imagination to do most of the heavy lifting.

No, it is not yet a sign that I am ready to date. This is Singapore---to date requires a sort of exchange. I don't have anything valuable to exchange now, considering that I have no job, no wealth, am not exactly attractive, nor am I powerful. More importantly, I'm still not completely comfortable in my skin for the new roles that are upcoming, and trying to be involved with another person is just a bad idea. As it stands, all I really have to give for exchange is my life---this seems to tie back again with the whole ``full-circle theme'' from the SMS Musing earlier today.

It's okay. This too, shall pass. Thankfully I don't exactly have many intrusive thoughts of suicide; I just have general thoughts of being a misfit in the society I am currently embedded in. Whether or not this is a better alternative remains to be seen.

This is no indication that God has failed though. I know my future after my mortal death is secured, so that's not where most of my worries lie; most of them lie within this mortal realm, strangely enough. Now, about what, exactly, is something that me and anyone else who reads all these blog entries need to deduce from what has been written.

Remember, I write here as a cathartic release of things that are in my head that can be publicly consumed---those that cannot be publicly talked about goes into a dead-tree version that does not reside anywhere near the 'net. Once these words leave my metaphorical mouth, they hopefully leave my immediate thought sphere, thus potentially allowing a different perspective to be synthesised from the thesis and anti-thesis.

If ever there is a summary for what I had written, it would just be this: I really don't do well with endings---they always make me sad. And if the endings are sad, they hit me just that much harder as all the sadness multiplies upon themselves. Anyone who still thinks that I'm some emotionless thinking machine... really hasn't known me well enough, and if they are someone I had known for a while, I would just be disappointed in them.

Oh Lord, I cast these sad feelings to You, for it is You who is my anchor point, my cornerstone; for You are my sword and my shield. I pray that you will protect me against the harms of this world according to Your Will, and that the suffering of any sort that I may undergo, no matter their severity, is in accordance with what Your Will is. I pray all these in Jesus' name, amen.

And with that, till the next update.

SMS Musing #12

While lounging at Gochi-So Shokudo waiting for the delivery of my ordered Teriyaki Iberico special set:
As I scour through my contact lists on Telegram and/or Whatsapp, I cannot help but think about how after thirty years, life has seemingly gone full circle. I started my life alone with my parents, then had a sister, then went to school where I made friends, most of whom didn't last, served my national service, left with no lasting friends, studied overseas twice, given the opportunity to start a new life in a place where my kind is not just tolerated but welcomed, decided to forego all that in the name of principles like honouring promises and loyalties, fell in and out of love with different types of futures, and while everyone seemingly has "grown up", here I am, back with staying with my parents alone, practically friendless-ish, jaded with everything thst is happening in the industry that I had once thought I would stay in and make a difference.

Perhaps I'm one of those perpetually bitter dilettanti, always feeling that the society that I was in was always wrong in some way, making myself out to be some kind of outsider.

I'm not really sure about that though. As the days go on, side thoughts about whether I truly belonged to Singapore kept on surfacing in my mind. In some ways, perhaps the "system" has failed me, but perhaps in some other ways, I have failed myself. I believed too much in my ability to control my fate, and even as things got progressively less ideal, I kept on believing that as long as I kept on thinking, I would be able to think my way out of things.

Naturally, nothing ever works that way. Hindsight would reveal the breakdowns over time that aat that point I would bot be able to see.

But of course, it is easy to fall into such thought patterns due to the foibility of being human. It is easy to forget that far above sits the Lord, and He has His great plan from which I am to play a role in. I think I know of at least one point where it would be hard for me to deny myself to pick up my cross to follow Him, but with Him, nothing is impossible. It is always heartening to remember that I am God's adopted child now, and that I can cast my fears and anxieties upon Him.

A sign of delusion from one who has read/studied so hard that one's perspective is warped to the point that any sort of relief would be greeted enthusiastically without reason? No. I think it's just the natural realisation that would come when one objectively observes that one is only a miniscule part of society, let alone the universe, and that one's size is too small to matter in the big picture. God is the big picture, and it does take aa little getting used to the fact that one's life really isn't one's own. It's easy to fall into that complacency because we literally live only in our bodies all day all the time; that proportion of time spent is the reason why most are self-centred. But take a quiet night, and look at the darkened skies, and observe that each star seen is but one of a million more that we cannot see, and that each visible star is as large as or even larger than our sun, and it will be quick (and mind-breaking) to realise just how insignificant we are.

I may have gone full circle, but I don't need to fear the future, for I am safe in my Father's hands. Amen.

Thursday, April 29, 2021

Improving the Prettyprinter and a Random Rant

Ah Thursday. I want to say that I have done a lot of things, but the reality is often very different. I chilled and stared off into space a lot today. But a little more of that in a bit. Let me quickly summarise the more... concrete things that I have done.

I mentioned nearly a month ago about how I used MutationObserver to re-execute the entire tree-walker to ensure that any newly added nodes were pretty-printed correctly. I also mentioned that to do it correctly would require the careful tracking of what [type] of nodes that needed to be adjusted, and what to ignore. What I didn't mention was that part of the difficulty lay in the hard-to-maintain nature of the tag-pattern checker.

I solved this problem recently, so it seemed like the best time to address the efficiency issues of this more thoroughly this time round. I refactored the code that was to determine if a particular HTML5-node was supposed to be processed or not using the updated tag-name matcher, as well as to bring out the special ``ignore me'' class. This refactoring allowed me to do two more things to make the MutationObserver-based code more efficient:
  1. Check if the tag-name/class of the node is to be processed;
  2. Recursively walk from that tag-node down to its children.
I only faced one issue, which was how to ensure that all descendants of node-trees who had an ancestor marked as ``ignore me'' do not get processed.

My original plan was to walk up the parent nodes until we reached the root of the process tree (body-tag, in this scenario) or a node that said to ``ignore me'', returning an appropriate response. Naturally this was slow since I was doing O(n log(n)), assuming the worst case scenario of adding n nodes with an average tree-height of log(n). Then I tried to memoise the parents, but it was stupid for different reasons.

Then the answer hit me: since I had to walk through the tree anyway on the first load, why not just propagate any such ``ignore me'' class information down to all the children, so that if there are any new nodes to add, I just need to check the parent for such a flag, and if it exists, to propagate it down while doing the right thing. It would be the same as memoisation, except more efficient and significantly less stupid.

And that was what I did. Now that code is more efficient than before, and I am glad.

------

I didn't do any ``real'' reading, having only touched a bit on SCP Foundation Tome 5: SCP2000--2499 (page 952/2863). These SCP Tomes are in Mobi format, and thus they get reflowed all the time. This means that the actual page numbers matter less than the proportion they represent. The only reason why I even managed to read one SCP entry was because I was waiting in line for a snack that I was getting from the nearby food place.

I played more Cyberpunk 2077, clearing more side quests in Night City. It's cathartic to be running about in a ray-tracing enhanced game world. There is that subtle difference that makes it that much better than without any of the ray-tracing. Driving along a road after an in-game rain looks very different; all that subtle reflections and distortions in them. I guess the way graphics programming works over time and increasing graphics cards capabilities isn't about expanding the visible horizon, but to increase the details of things that are much closer. I mean, I play Minecraft too, and I will say that most of the time, one is really just interacting with a sort of ``close'' environment as opposed to the God-eye view of the world that requires large expanses of the land to be brought in to play.

Such technology limitations [of having the appropriate processing bandwidth to bring in information over a larger area for a wider visual horizon of processing] are often carefully camouflaged by the game design---in old school game engines running on old hardware without such capabilities, one would notice that level designs would attempt to draw out the strengths of the game engine while hiding the weaknesses, from the many elevators and corridors that hide the loading times of large area maps, to wide arenas that somehow seem to have just enough obstacles to make it nearly impossible to have a completely unfettered view out to the horizon, or the exact opposite of the Serious Engine by Croteam that eschews fine detail to support big and open areas with many mobs.

In many ways, there is a parallel of game design + technology against music composition/arrangement + skill of players. Good game design (music composition/arrangment) emphasises the strengths of the technology (players) while de-emphasises their weakness, to bias the consumer (audience) towards a more positive impression of the finished work. So in an objective sort of way, there is a decent enough bar to measure the success of a game design + technology combination, as there is a decent objective way of measuring the success of a music composition/arrangement + skill of players.

But these objectivities are then tempered against the preferences of the individual.

This idea of objectivity which is further projected into subjectivity can be seen as the driving concept of a lot of machine learning and data mining.

The big wins are already there---we're talking about the stuff that can already provide 75% precision/recall/F1. We know, objectively, that the big wins are already here because we already have textbooks that describe these techniques as though they are fact (compare with the discussion of Newtonian physics, at least at the early education levels). But large companies that had already been winning on these ``cheap'' but high impact tools want to raise the barrier of entry higher, and that is why the whole spiel on ``personalised machine learning'', or whatever the current marketing buzzword is.

However, the lines really aren't that clear-cut. It may seem to be better to allow machine learning algorithms to seemingly tailor their outcome to a person according to his/her personal data, but that method suffers from the literal lack of good quality data. Or put in another way, a data-driven algorithm that is trained only on [say] your data is not likely to perform well, even for you.

This is because all data-driven methods are necessarily interpolatory in nature. I would go as far as to claim [without proof] that using mathematical formulae alone to extrapolate will never get perfectly bounded variances, because dynamic systems are chaotic in nature.

Thus, the best way to hedge one's bets is to try and increase the sample size, which paradoxically means pooling ``similar'' people's data together so as to train a more strongly predictive model for the ``personalised machine learning''. Part of the black magic then is how such ``similarity'' can be determined. All these are non-trivial, and most require stupid amounts of data to do anything useful.

I mean, if a problem does not require stupid amounts of data to help fit some machine learning model, then it should be straightforward enough to write an old fashioned [sequential] program to solve it. That's the whole study of [classical] algorithms in computer science for anyway. It is because there are problems that we don't know the right representation for that we find that using a data-driven (i.e. data-based reconfiguration of the program skeleton, which represents the expressivity) to be superior.

In human terms, anything that doesn't reduce to a [low Kolmogorov complexity] heuristic that we can tell someone gets lumped into the catch-all of ``intuition''.

I don't know what this all means. But I have been staring randomly into space and mulling about this on and off.

I think I'll head back into Night City after this post goes up. Wanna enjoy more of that sweet-sweet graphics and gaming fun.

I also want to point out that the recent large number of anonymous comments was more amusing to me than alarming, mostly because it was anomalous. They are definitely not troll/spam levels of anomalous, but as someone who was trained in machine learning/data science (urgh I hate that term), observing patterns and anti-patterns is a thing.

Alright, that's all for now. I think I'll go work on the next Bible study session worksheet tomorrow, and maybe watch Futurama. Yes, I have decided to finish that for the umpteenth time instead of Darkwing Duck. But we'll get there... I do have more than half of my sabbatical left to go.

Till the next update.

Wednesday, April 28, 2021

Slow Day With Anon.'s Comments?

Compared to yesterday, today's rather sedate.

Apart from the usual Bible in One Year 2020 With Nicky Gumbel (day 355/365), I didn't do much reading. I didn't even watch many YouTube videos either.

I did spend quite a bit of time in Cyberpunk 2077 clearing out side quests. It has been a while since I last visited Night City, and I think that it is roughly the right time to head back there for a bit, to enjoy the nice scenery and side quest stories. Hotfix 1.22 did just drop in a couple of hours ago as I was watching the last few episodes of The Daria Restoration Project while ekeing some runs on Jupiter Hell (none of them successful), and so I'm probably heading back into Night City after this entry goes out.

There has been a rash of anonymous comments to various entries on this blog, which made me scratch my head a little. It's not normal to have people respond to my blogs, and usually they are from people whom I know. At least these anonymous comments so far are not triggering off my in-head spam/troll flags yet, so I suppose that's a good thing.

That said though, I would advise anyone who takes my blog entries as a common/everyday affair with sage-like wisdom to not believe too hard into that. All these near-daily entries are not really planned to last---they are happening as they are because of the fulfilment of the routine that I set out for myself for this sabbatical. Still want to note that the primary audience for this blog is still myself, and whoever among my friends who are still following vicariously, so expecting a consistent output of a modern ``content creator'' is sheer folly.

That warning is as much for me as it is for the reader.

Anyway, that's really all I have for today. I think at some fundamental level, all that excitement over the past two days in sorting out various weird technical issues have taken up quite a bit of energy, and so I am more likely to just take it easier today.

After this entry is published, I will go address some of the new anonymous comments that came in. I still think of it as strange...

Till the next update then.