Wednesday, March 31, 2021

It's a Hot Ass Day

Woah, early [relatively speaking] rant!

It's a hot day. I've been avoiding getting into Night City due to the thermals likely going to be an issue, but eventually, I'm just going to head in anyway, just because.

The built-in Intel GPU of Eileen-II is starting to demonstrate instability, where the display was just flickering ever so often. It even ended up with an actual BSOD crash with VIDEO_TDR_FAILURE from igdkmd64.sys. The flickering comes about nearer the evening time, when I watch YouTube videos either off of WaterFox or even Google Chrome. There were also some flickering issues when I was doing other things that did not involve video playback, but those were the most likely to trigger the effect.

For a while, I was confounded, thinking that it was something to do with the device driver.

I tried to update it, and found that the situation did not change. Hence, I brought the device driver version back to the original on.

There was a suspicion that f.lux was at fault, and I tweaked the settings a little last night, turning off the option of using the GPU for better quality, and forcing the use of the Windows internal colour table---only time will tell if this is the solution.

Since I undervolted the CPU also, and faced some of these weird flickering before, another possibility was that the CPU voltage had transiently dropped low enough to trigger a flickering. So I tweaked the offset to −90.8 mV instead of −92.8 mV.

Ideally, I would only do one of the two changes to better isolate the problem, but I was just getting tired of having to deal with randomness, and just wanted to maximise the chances of stopping the issue. I can do the proper isolation process when I found that the solutions have arrested the issue, and only if I have the time and the wherewithal.

Today's the last day of March, and I am eagerly awaiting for tomorrow to come so that I can disburse the next spending money to myself again.

That's all I have for today. Till the next update.

Tuesday, March 30, 2021

Patch 1.2 Came Out

Patch 1.2 for Cyberpunk 2077 has finally been released, and I had gone ahead to play with it. Honestly, I was getting a little tired in trying to tweak the graphics settings to ensure minimal suckage, but with patch 1.2 in place, I said heck it and just set the graphics settings to ``Ultra'', turned off the more irritating post-processing effects, and turned on all the ray-tracing effects that were implemented in game.

Eileen-II still ran things at a respectable 60 fps on average with DLSS on, which is alright.

I mean, Cyberpunk 2077 is no optimised beast like Doom Eternal, but it is adequate.

The sensitivity adjustment for the driving for the keyboard was unnecessary once I started to just use the first person perspective to drive instead of using the third-person 45 ° camera angle. I think the initial discomfort and confusion that I had with driving in Cyberpunk 2077 is how utterly unused the mouse is, as compared to say Halo or maybe even Duke Nukem Forever (don't quote me on that last bit---it has been years since I played that game, and cannot exactly remember how the driving was done). That and the general feathering of the accelerator made driving in Cyberpunk 2077 that much easier to handle.

That's about all I wanted to write about. Going to turn in earlier. Till the next update.

Monday, March 29, 2021

Chemistry Videos are Fun

No freak outs today---I think the Bad Feeling And Thoughts are gone for now.

It's really strange how the smallest of things can just trigger off a maladaptive reaction.

Anyway, I spent some time chilling in Night City in Cyberpunk 2077. Earlier in the morning [technically], I found out about NileRed, a YouTuber who does complex chemistry experiments.

That's right, chemistry experiments. It is kind of similar to ElectroBOOM's videos, except that instead of electrical/electronics, it is chemistry. The style of presentation is necessarily different due to the more cerebral nature of chemistry, and it went about as well as I thought it would. There is definitely something more physical to observe than pure thought-centric topics in computer science/mathematics, but a lot of the video was just ``I then poured X into the flask and applied heat carefully''. It's not boring as there are many physically visible things in addition to the analytical aspects of chemistry (e.g. colour changes in the pH strip, cloudiness of the mixtures going clear, floating magnets on super-conductors)---the cerebral bits of the reasoning from the chemical equations are tastefully presented in the form of overlays on the video itself.

But I think it attracts a certain type of viewer, of which I think I am a fan of.

I finally made some progress for Harrison's Principles of Internal Medicine (20th Edition), reaching page 321/3790, or about 2--3 chapters since the last time I read it (chapter 44/477 if we want to book-keep that way). It's a long book---maybe I should target the completion of part 2 (i.e. completing 62/477 chapters) as the next goal before I continue on with Tools of Titans. I love the book to bits---I've always had an interest in medicine---but it is really long, and is quite dense [in terms of text per page], probably more so than The Dinosauria (2nd Edition) that I completed way back in 2020 (wait, was it really just last year?!).

------

I took a little time to write the framework code for tokenising the KJV text for my Bible text mining project, in preparation for some network mining of the verses. It's all exploratory for me, and is a way to get back to some of my old roots. The process did bring me back to an old friend, NLTK, and I am glad that it has finally been updated to run in Python3 with little to no hiccups. I don't need much of the power of NLTK, though the [English] word tokeniser seems to use the Punkt models. There seems to be some segmenters for Chinese, which will be useful when I am ready to work with the CUV Bible, and perhaps set up some kind of parallel text concordance thing against KJV, and even bringing in the older Masoretic and Koine-Greek text at some point.

Yeah, at that point, I'm basically turning into some kind of weird one-man computational linguistics hack in search of the computational equivalent of truth that the Saints have been doing for a couple of thousand years without the use of over-powerful computational devices. But that is for the future, since I have no idea how to interpret Hebrew, and old school Greek. And that there are other slightly more pressing things to handle than to replicate the work of the academics for my own edification.

This week is likely to be spent quietly at home, since my budget for this month has been spent, and the next disbursal of payment to myself from myself is happening only on Thursday. At some point this week, I will be watching The Passion of the Christ, and then Paul, Apostle of Christ, in commemoration of Good Friday and Easter Sunday. No, it's not a tradition or a ritual, just something that had been on my list of things to do that seems most appropriate at this time, that's all.

I don't have anything else to say for now other than time for a quick shower, and then perhaps heading back into Night City for another jaunt. Till the next update then.

Sunday, March 28, 2021

Heat Fogs Everything

Today's not been a good day.

I have a strange throbbing headache in the left hemisphere of my brain---I think it could be a result of sleeping at 0200hrs this morning instead of a more sane hour. The reason for sleeping that late was the ``wind down'' I did venturing into Night City, after having spent the morning of yesterday helping a friend move house, and the afternoon just hanging out.

But the headache aside, it is not a good day because of an unspeakable anger that has been brewing within me since yesterday. The anger stems from the apparent shade that was being cast on me by those whom I have supposed to cut out of my life. The anger is likely to be coming from an understanding of impotence, that understanding that yes, I am no longer there and therefore whatever is being said has no effect on me, but at the same time, there is this burning injustice that I feel that needs to be righted, except it is not I who can do it.

Gotta trust God on this one. He will handle it. But old instincts die hard, and it will take me a little bit more time to reframe and excise the thought from my mind.

I wanted to wait a while before I wrote about this, but after 9 weeks, I don't think I can wait any more and need to vent. My hiking boots are out of commission thanks to the breaking of the lacing hook, and I had sent it in for repairs. The repair person did not have the part, but had ordered it from the supplier, who is bringing it from China, and till date the bloody part hasn't come in just yet. This is frustrating because the lack of my hiking boots has significantly limited my mobility---I want to go for super long walks over all kinds of terrain in all places, but am limited by the footwear that I have.

My old huaraches are starting to fall apart from wear and tear (they've been with me since 2011/2012), and I don't want to drive them too hard because I'm afraid of losing them forever (the company that sold them seems to be re-pivoting to selling more conventional shoes instead). My combat boots are in semi-storage, and I don't want to pull them out because I don't actually have good working long socks to go with them (I don't want to pull out the stuff in my packed up duffel bag of military equipment in the very long odds chance of being called back). I have a pair of Teva sandals, but my ankle skin is raw and garbage, making it actually physically uncomfortable to wear them (which is why I haven't been cycling also)---however, I did run an experiment for two days where I wore socks with them; those worked out well in the comfort department, but for goodness sake, it is still socks in sandals levels of badness.

And I'm down to my two dress shoes that I alternate, which I use most of the time when I head out to places that are farther than just the neighbourhood. They aren't bad---I deliberately chose dress shoes that I can, in theory, run about in---but they do limit the amount of walking and the places where I can walk about in. The dress shoes have a slight elevation in the heel, and it does make it rather uncomfortable on the foot for long enough (think ten to twenty kilometres) distances of walking.

I really wish that my boots can be fixed soon. All this lack of ``hard core'' walking is making me feel down, perhaps more down than usual.

------

I have been thinking about life and relationships over the past couple of months in an on/off fashion, and there are some truths that I am starting to think to hold for me.

Before I go into them though, I need to add some qualifiers. I am not so well attuned to God's will like some people around me to the point where I can immediately sacrifice everyone and everything to follow Him. Call me a sinner, call me a loser, call me whatever you want---the judgement is of your folly to make, but it is what it is. In other words, what I say here in terms of what I think is my current so-called level of understanding is not at a high enough confidence interval that I will exclusively work towards these goals.

Because I'm a coward and refuse to commit so hard to thoughts that are happening in the echo chamber of my head during a period of time where everything is, for lack of a better description, fucked six ways to Sunday.

Okay, with that out of the way, let me write down some things.

I don't think I will have children. I cannot fully rationalise why I can/should have children. The society I live in is exploitive in more ways than I can count, and bringing in a new life to contribute as the exploited is not as just as I think it ought to be. Moreover, thanks to things that happen in the generation before mine, I am also a person without a real root, which makes bringing in a descendent even harder to justify---there is no true heritage to bring this so-called descendent to anyway. All these are not even about how children can ``cramp my style''---having my so-called style cramped is a minor issue compared to the larger picture of just contributing to an ever-more-fucked world.

If I cannot even contribute to solving the world's problems, why would bringing in a completely different person that needs twenty years of careful guidance, teaching, and nurturing be of any use? It's just another case of kicking the problem down to the next generation, something that every other fucking generation has been doing.

I can't claim to be a problem solver if I am a contributor of the problem, right?

Now, that said, I want to emphasise that this is my personal perspective on my personal decision---I do not look at those who choose otherwise in disdain, nor will I judge them. Maybe they know better than I because God inspires them better due to their sensitivity---good for them, I suppose.

I think that's enough of venting for now. At this point after I have said all these, it is still not that great a day. I think I'll scrounge up some whiskey that I have lying around and continue touring Night City in Cyberpunk 2077 for a while more. Playing Cyberpunk 2077 on Eileen-II in the afternoon of a place that is of high ambient humidity and temperature is challenging---despite all the counter-measures that I have taken to keep temperatures low, I was getting CPU temperatures hitting nearly 90 °C---it's bad enough that I decided to just use the keyboard from Elysie-II (currently sitting quietly in a corner not plugged in) just so that I don't burn my finger tips.

Such is life of one who lives in the tropics.

Sometimes I just wonder, why am I still alive now? Yes, a non-sequitor type of segue... whatever. It's not been a good day.

Till the next update.

Saturday, March 27, 2021

To Keep The Momentum

This will be a very short entry.

I spent the day helping my friend move house. It was alright.

I'm going to visit Night City for a bit before turning in for the night.

Till the next update.

Friday, March 26, 2021

HATTEFJÄLL

Man, how many levels of procrastination can one person go?

So I was self-aware before about wanting to complete Feudal Alloy and Halo 2 from the Master Chief Collection. Then I am now side tracked to Cyberpunk 2077, and mentioned yesterday about wanting to spend today playing Cyberpunk 2077 something fierce.

Well, I procrastinated against that today and watched more YouTube videos, before deciding to replace my really old (circa 1995(?)) folding chair with something that had better lumbar support [over the current zero lumbar support]. At the location where one would expect something to provide support is nothing but a big gap, and man does it hurt something awful.

There had been some days where I did a lot of reading, then at the end of the day, when I turned in for the night, I found myself having all kinds of weird lower back pain. It turns out that sitting upright and ``leaning'' into the middle-back support region of the folding chair screwed up enough of the angle that it caused me some lower back pain.

Long story short, I spent time searching on IKEA to find a comfortable chair, and ended up selecting the HATTEFJÄLL Office Chair in Gunnared Medium Grey. No arm rests because they get in the way of everything anyway. I was rather worried about the height of the seat from the floor, because I actually sit at a desk that is at the bottom of a loft bed structure from 1995. No, I do not sleep on top of the loft bed---the central metal ``stud'' has sagged over time from all the tension, and even though it is rated for 80 kg, I am a little bit too close to that (76-ish kg---I have put on some weight due to less discipline in controlling junk food consumption this month) to safely sleep on it. So I just use the bed section as a storage for my futon-esque thin mattress that I lay out on the floor to sleep each night.

Anyway, back to the chair. The HATTEFJÄLL chair was quickly purchased (and picked up) at the IKEA Tampines store, because it was simply the closest, and was quickly assembled after I brought it home.

I am sitting on it as I am typing this, and I must say, I like it. It reminds me of the old typist chair that I used in my National Service Full-time days. I never really liked the high-backed chairs---I don't usually like to lean my head on to things if I am sitting upright. I know many people love their high-backed chairs to bits, but unfortunately, that isn't me.

But a good solidly built low-backed typist chair? Bliss to me. There are some of the more plastic-y typist chairs that are out there, relying on plastic struts for support. I don't like those for the simple reason that the plastic is more likely to crack and break on stress, as opposed to being compressively strong (like wood), or deform to adapt to the forces (like metal).

There is still time for a soirée in Night City after dinner---and I think I will do so.

I consider today's IKEA outing as a warm up to help my friend move house [again] tomorrow.

Till the next update then.

Thursday, March 25, 2021

Wafu Beef Wazen

Today was a sort of reading day, though it did involve me going out to a different place to do my reading as opposed to doing it at home.

I deliberately eschewed lunch just so that I could have the Wafu Beef Wazen at Ichiban Sushi, or more specifically, the branch that was at Hougang Mall. It's a cosy place, and thanks to the time I chose to reach there (at around three o'clock), there was no line to speak of. I like the Wafu Beef Wazen set meal there---the beef atop the cheesy tofu on a hot wok with tempura and other goodies is just a delightful mix of Japanese-styled cooking.

Usually when I get to Ichiban Sushi at Hougang Mall [during this sabbatical], I would just pull up Eirian-IV and do some reading, usually one of the two periodicals that I often read (The Economist or 2600: The Hacker Quarterly). Naturally, today was no exception.

After the meal and just hanging around reading the periodical of choice for the day (it was last Saturday's issue of The Economist), I just did some window shopping.

Actually, that last bit is not completely correct. I had a few things that I wanted to get, namely:
  1. Lubricating eye drops for the next month;
  2. Beard trimmer for shaping moustache.
I managed to get them without much effort. The beard trimmer I got was the ER2405 by Panasonic. I liked the design because it was cordless, and had a rather extensive guard that doubled as the comb. Compared to the M90 by Braun that I own, that guard is a plus.

The M90 that I have is mostly for stashing away in the office for those weird last minute ``big meetings'' situation that may require a quick touch up on the shave. It's a good product, but it is not that great a daily driver when I want to use the beard trimmer to tweak my moustache.

And yes, I am intending to grow my moustache back. I know I reported in a previous post that I had taken it away as an experiment in tackling the skin dryness. Part of the other reason was the difficulty in keeping it relatively tame since I had to rely on eyeballing with a pair of short scissors, as compared to using the beard trimmer, or as my barber calls it, ``machining the moustache''.

Now that I have upgraded gear (and a nice tub of non-greasy moisturiser), it's time to try it out again.

The only other interesting thing that I wanted to add was a conversation that I overheard while at one of the shops in Hougang Mall.
FEMALE EMPLOYEE
So she wanted to buy that to surprise her boyfriend, and I know how she feels about it.
MALE EMPLOYEE
How would you know how she feels about it, you don't even have a boyfriend!
FEMALE EMPLOYEE
Hey! I don't have a boyfriend now, but I had boyfriends in the past, okay? So I know how she feels.
MALE EMPLOYEE
Uh huh, if you say so... I mean, it's not like I can verify it, right?
I think that for tomorrow I would just spend time enjoying Cyberpunk 2077, sojourning in Night City.

On one final note, the reason why the game is called the way it is comes from source material of Cyberpunk the pen-and-paper role playing game. That was part of the reason why the hype was so real (the other was all the tentalising trailers and promises that were made but not necessarily kept [yet]).

That's all I have for today. Till the next update then.

Wednesday, March 24, 2021

``Kitty''

No visit to Night City today---it is mostly a reading sort of day.

I finally finished OpenStax College: Organisational Behaviour, and have started on Tools of Titans: The Tactics, Routines, and Habits of Billionaires, Icons, and World-Class Performers. Tools of Titans weighs in at 872 pages, but the going seems to be quite fast---I think I will actually leverage on my large reading screen at home to make some progress on Harrison's Principles of Internal Medicine (20th Edition) and leave Tools of Titans to be handled on Eirian-IV.

I think I will head out tomorrow for a change of scenery to do some reading on Eirian-IV instead of sitting at home.

------

I am not a follower of The Masked Singer (Wikipedia link in case the project site dies years from now), but Season 3 had caught my eye. It was a (or should it be ``the''?) season that was also broadcast in Singapore as it was unfolding. What caught my eye was ``Kitty''. She had bounce in the trailers, her costume looked so lush and fabulous, and I was intrigued.

Mind you, I never followed the show at all.

It was near the start of this year that I went back to find out more about who ``Kitty'' was. I found a couple of video compilations of all her singing at the show, and oh my, how pleasantly surprised I was at it all! Her voice is amazing! The costume was, of course, captivating, but her pantomiming skills were also on par to bring the mask/costume to live as well.



And yes, I learnt that she was Jackie Evancho. This line in her post-reveal video is the most touching to me.



I agree with her, it's not stupid... I think sometimes we just need to have the chance to shed away the baggages/identities of the past so that whoever/whatever it is within us can be looked at independently of any prior contexts/biases.

That is perhaps what I am seeking out of my sabbatical.

Till the next update.

Tuesday, March 23, 2021

Promised Experiment Results

Okay, I mentioned in the last post of running an experiment, and I have completed it to the level that I care about. Before I continue, here are the results:
Now the thing to observe here is that as the number of processes increases to 1 less than the total number of logical processors, the run-time for the page counting script steadily decreases. The run-time is estimated from the average of the list of readings while ignoring the two outliers (the maximum, and the minimum, highlighted in red). The ratio of the [sample] standard deviation to the [arithmetic] mean is the coefficient of variation, and can be thought of as a type of ``normalised'' measure to hint at the accuracy of the estimated reading.

The total number of raw bytes to be read numbers in the 3.1G range, and compared to the 18.6k bytes of the script and about one or two megabytes of support libraries/interpreters, completely dominates them. This means that the overhead of CPython's implementation of process-based data parallelisation is, in comparison, nothing as compared to the gains from the parallelism.

So the only tuning I did here was just to assign the larger files for processing first to better improve the pipeline.

Finally, I just want to add that I am now done with page 505/704 of OpenStax College: Organisational Behaviour. I feel like I need yet another shower before I turn in for the night.

Till the next update.

Monday, March 22, 2021

Further Tweaking of Other Python3 Scripts

What a day!

I spent much of the morning watching more Linus Tech Tips and other videos from my YouTube playlist. Subsequently, it was more Cyberpunk 2077 again.

Remember the off-comment from a previous post about getting bored waiting 22 s for the minification process? Well, before my meet up with a friend out at Casuarina Curry, I decided to sit down and do the refactoring of the script to make use of multiprocessing. It wasn't hard, but it did take a little bit of time. I think the refactored code is a little bit cleaner than before, and after tuning the number of processes to spawn in a pool (it is 3, for some reason, with a pre-sorted decreasing file size order), I managed to get the run-time for this segment down to around 12.102 s from the original 28.455 s (this means that my number of 22 s in the original post is quite off).

I had enough time after converting the minifier to use multiprocessing that I decided to do the same for the sitemap generator as well. This is a little bit overkill because the run-time was already 1.835 s, which is as fast as it gets. Turns out, I could still gain some wins through multiprocessing and tuning (3 is the magic pool size again), leading to a run-time of 1.144 s.

Roughly, the final runtime is like 12.617 s against 30.092 s, or about 42% of the original run-time. Put in another way, the processing is now 2.4× faster than before. That was rather surprising.

The timings include overhead from the bash shell that orchestrates the whole execution. For reference, without the bash overhead, the tuned version of the sitemap generator was at around 0.8 s.

Considering that Eileen-II has 6 physical cores and 12 logical cores, it is a little bit surprising that the best number of processes to spawn is not at either of those two numbers for this particular work load. Upon a little more reflection, it makes sense in that each time we spawn a new process in Python3 using the pool workers, it effectively reloads the module, possibly in another instance of the interpreter. We are processing a moderate list of small files, so this spawning process may end up dominating the run-time. Thus a more controlled (and smaller) number of processes would work better.

The more astute might ask why I am using process for [data] parallelisation instead of threads. Well, for CPython (the Python3 interpreter I am using), there exists a global interpreter lock that basically only allows a single thread to execute the Python byte-code. This limitation may not be applicable, but using multiprocessing is a quick and dirty way to get the ``embarassingly dumb`` data parallelisation to work, as compared to threading. I cannot guarantee that the workloads are completely I/O-bound since both the minification and sitemap generation process does include some in-memory based parsing/compression.

For now, I am happy with the results.

------

I met up with a friend I made when she was working at my favourite bar (last featured at this entry). She's in between jobs as well, though her domain of interest/expertise is vastly different from mine. We went to Casuarina Curry, located at 136, 138 Casuarina Road (Off Upper Thomson), Singapore 579524. I like Casuarina Curry because of the consistency of their prata, and that I have been there relatively recently to confirm the quality.

Back in the old days, I used to eat rather regularly at Thasevi Food out in Jalan Kayu. But I've not been there for a very, very long time, especially since the road to Jalan Kayu has been tweaked when the whole Seletar Aerospace Park became a thing.

Before Seletar Aerospace Park, it was a nice quiet quasi-abandoned version of the old Seletar Base. I used to serve my national service there, enjoying many a cycle about in the evenings after work and before nightfall. I don't think it is possible to cycle there safely now, because of the rather wide high-speed roads that are built there.

Anyway, we caught up and had a chat. It was nice to meet a familiar face that was not of my old crowd, not because I dislike my old crowd, but that it is important to start developing newer memories through newer and different social connections.

This is, of course, another attempt at helping with the re-alignment process. I can't get ready for the future if my mind is always full of information about the past.

I am running some experiments to extend a point that I raised earlier in this post, but I will just put this up first and put up a separate post when the results of the experiments are ready.

Stay tuned.

Sunday, March 21, 2021

Sojourning in Night City

It has been a rather quiet Sunday. As mentioned yesterday, I have gotten ahold of Cyberpunk 2077 and have been playing it for the most of today, after of course my daily reading from Bible in One Year 2020 with Nicky Gumbel (am on day 317/365).

The gameplay of Cyberpunk 2077 is closer to CD PROJEKT RED's previous offering of The Witcher III. It's quasi-open world, and is really amenable to just exploration, which is fun.

It's like leaving the apartment without actually leaving the apartment. Heheh...

Anyway, this is a deliberately short entry. I'm likely to be doing other things tomorrow instead of continuing my visit to Night City, but I wouldn't hold my breath too hard.

Till the next [hopefully less short] update.

Saturday, March 20, 2021

Visiting Night City

This is going to be a quick update because I got my hands on Cyberpunk 2077 at a 20% discount from GOG.com. Even using US Dollars, I ended up paying 0.78× the Steam price.

I had my eye on Cyberpunk 2077 for quite a while, but have been put off from actually getting it because of the many bugs that had been reported for the game on/around launch. What made me decide that I would really get the game was the Cyberpunk 2077 speed run at ESA 2021 Winter, which showed the gameplay more extensively, and with glowing commendation from the speedrunners themselves, praising the game's story.

As I get older, I find that I actually like a game's story more than just the mechanics alone. Which was why even though I like the mechanics behind games like FTL: Faster Than Light, Into the Breach, or even Jupiter Hell (sorry Kornel), I find myself slowly drifting away from them. Mechanics make a game fun in the way that it makes the associated grinding somewhat enjoyable, that's why survival mode Minecraft is one of the most popular Let's Play type game series for streamers.

So, sometimes I just want to grind some fun game mechanics to relax. Other times I just want a good story as well, like my playing of The Outer Worlds, another AAA-title game.

Incidentally, it seems that usually only the AAA-title games have good stories (and good mechanics) in them---most indie games (like the ones I cited) have great mechanics, but are sometimes lacking in story. Heck, even the Grandfather of First Person Shooters DOOM Eternal has a somewhat passable (but campy) storyline.

The other reason for suddenly buying Cyberpunk 2077 has something to do with my sudden epiphany of how to obtain better performance for Eileen-II without running into stupid thermal limits in this horrifically hot/humid ambient condition.

Now, I have done experiments on controlling thermals by undervolting the CPU in various blog posts before. The control of CPU temperatures from Turbo Boost multiplier control and undervolting are thus well understood.

But I faced two issues. The first was almost no control on the CPU and GPU fans, even though Alienware Command Centre (AWCC) could see them.
But I couldn't control them! And more importantly, my GPU seemed to not be working at full specifications, since Minecraft using Optifine with BSL Shaders was getting like sub-30 fps on modest settings, which was rubbish.

I finally found out why from this Dell article. I've reproduced the relevant part here:
Basically when using AWCC and selecting the various thermal modes, some secret flag gets toggled in the background.

I've been running in ``Cool Mode'' all this while, which meant my GPU was secretly nerfed.

🤦‍♂️

Once I learnt about this, I switched to ``Full speed mode'', put on my QuietComfort 35 wireless headphones, and launched Minecraft with Optifine and BSL Shaders running in lieu of the Project LUMA.

What do you know... darn thing runs at near 60 fps with almost everything on.

This GPU aspect is important for Cyberpunk 2077, and once I knew that Eileen-II's GPU can handle the load, it was a no brainer.

So excuse me while I head on back into Night City. Till the next update.

Friday, March 19, 2021

Python3 Script Tinkering Again

It's a Friday!

I have been spending most of the day attempting to power through OpenStax College: Organisational Behaviour---I am currently at 356/704 pages. It will be a while yet. I'm not sure if this can be considered a type of procrastination, but I did take a short break to read On the Decay of the Art of Lying by Mark Twain as well.

Some time was also spent watching more Linus Tech Tips videos.

But funny enough, I actually ended up spending quite a bit of the afternoon putting about with my Python3-based HTML/JavaScript minifier. I was getting a little bored with waiting for the 22 s it takes to run through all the files sequentially to minify and/or compress, and wanted to do use multiprocessing to handle it, just like what I did the page counting script. But before doing that, I wanted to update the sources yet again, this time to trigger as few pylint complaints, like the recent exercise I did with other Python3 scripts. I got most of the warnings out of the way, and accidentally fixed a bug that I had been observing forever.

The bug was that for some reason, the minified HTML5 files still had extra spaces here and there in between an end-tag and a start-tag. For a long time, I had been looking into it on and off. And today, while going through the code-base again, I realised the problem: I was tagging the #text node equivalent data as Token.DATA instead of Token.TEXT. The significance of this difference lies in how the subsequent re-generator worked with the tokenised output---Token.TEXT nodes would have a more aggressive white-space eater/coalescer, while Token.DATA nodes will be left very much alone.

Such a simple oversight that got fixed because I was procrastinating on my sabbatical. What a joke.

Anyway, after adjusting according to what pylint complained and fixing the bug, I sort of stopped right there---the next step involved some re-factoring and other adjustments, but I was too lazy to work on them since it was ``obvious'' what needs to be done; it was just that it was a little tedious and I wasn't in the mood.

------

Funny enough, instead of stopping the programming for the day, I did even more programming, this time enhancing the same page counting script I was referring to. I added another field to the current quadro of number of pages, average bytes per page, total bytes for file, and file name. This field is ``modified time of the file in days relative to when the script was executed''.

The purpose of this field was to give me more information on when a particular e-book was assembled---the earlier they were assembled, the larger their magnitude, or given the esoteric definition, the ``smaller the negative number''. So, an e-book that was last modified about 14.7 years ago would return as −5.4k days.

As I was tinkering that, I started to think about all the stupid hacks that I was doing to get mobi-python to barely work. The decoding process was clearly problematic for the .mobi files that I had, because the page-count estimate was about twice as large as it should be, using the output of Sumatra PDF as a gauge, not to mention all the weird hackery that I had to do. While I was writing that blog entry then, I soon found that there was another mobi decoding library in Python3---it was aptly named as mobi. Why I did not see this earlier when I was writing the original handler was due to the search engine I used---Duck Duck Go yielded mobi-python as the first entry, while Google yielded mobi as the first entry.

At the time of the blog entry, I didn't have the time/wherewithal to experiment and switch over. But today, I decided to give it a go. It generated a temporary directory as part of its decoding process, which was not ideal, but it did get the job done well. And so, I updated my little script to use this new library instead of the really alpha (and really broken) mobi-python library. I won't cause myself silly problems, but will first bring up the original computation for reference:
Here is the updated version with the replacement mobi module:
So the numbers for e-books that I can archive that I have read are 151.2k pages with 29.3k bytes per page on average. You can also see the new data column, whose units are in days. These numbers are positive because the final computation occurred after the start of the script (the anchor point), and can be seen as a small easter egg of sorts to crudely time the run-time of the script in units of days. Notice that the run-time were between 99.4µ days to 388.7µ days---I will leave you, the reader, to work out how many seconds that is. I could have left it in seconds, but staring at units of millions of seconds were hard to fathom, and so this compromise was created---the output was designed so that sort -k4h would do the right thing.

Also, take my word that the number of pages that I have left to read as at now is 225.2k pages with an average of about 13.9k bytes per page. I think it is much more representative now.

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

Thursday, March 18, 2021

Seeking My 10 Wins a Day

I begin with a quote from An Astronaut's Guide to Life on Earth by Chris Hadfield:
The whole process of becoming an astronaut helped me understand that what really matters is not the value someone else assigns to a task but how I personally feel while performing it. ... If I'd defined success very narrowly, limiting it to peak, high-visibility experiences, I would have felt very unsuccessful and unhappy during those years. Life is just a lot better if you feel you're having 10 wins a day rather than a win every 10 years or so.
I spent today reading this book, quite unintentionally actually. It was a book that was mentioned in this Reddit comment to the original one about a prank in Skylab.

It was an unexpectedly good read. Sorry, OpenStax College: Organisational Behaviour, An Astronaut's Guide to Life on Earth is just more compelling to read.

This isn't a book review post, so I'm just going to say that what Hadfield had written was inspirational, and that particular quote that I cited in the beginning of this post has given me a little more insight on the type of path that I am heading forwards, not so much as being an astronaut (I'm too old and born in the wrong damn place for that), but the type of attitude that I could have that would make whatever is remaining of my current life just that little bit more worthy of living.

Looking back, I think I did experience the type of thing that he was referring to specifically in that quote (and more thematically throughout his memoir). I remembered that the happiest that I had felt was not when folks were applauding me when I successfully executed a difficult [for the time and skill level at that time] performance of 笛子 in concert, but when I had figured something out on my own. These moments were like the times when I figured out how certain paper craft combinations worked when I was in primary school, the many little programming experiments that I was doing (simple games, a pseudo-random number generator based cryptographic tool, a full-featured reverse polish notation math tool complete with numerical integration/differentiation and graphing capabilities, base-10 big ``integer'' mathematics support using strings, all in QBasic) in secondary school, competitive programming related algorithms and steganographic concepts in junior college, and computer science-y odds and ends in undergraduate times.

But after that, it seemed that I somehow ``lost'' all these fun little things where I figure stuff out. There is a light revival as I start to figure out flute-y things while figuring out what professional-level concert flute to get, and the systematisation of 笛子 techniques in English, but they are definitely less fulfilling in comparison only because they are starting to fall in the ``a win every 10 years'' category.

Actually, part of why I absolutely loved working the research institute was that I had many opportunities for small wins that would add up over time. Figuring out how to build the back-end mechanisms to support data management was an interesting exercise of maintaining some manner of portability while being performant, and keeping scalability and security in the background. It stretched me in ways that were pleasant, and I would happily just think, design, and then program for hours at a time. But of course, manglement started getting in the way, with all kinds of policies that made it neigh impossible to tinker---there was a strong wrong-headed approach towards standardisation and centralisation of all personal-level computing. Mind you, we were working on infocomm technology, where our laboratory was literally the workstation that we worked on, and our tools were various software that we had to write and/or install. Something as mundane as spinning up a virtual machine to test a service-based architecture would be prohibitively laced with red-tape to make the cost of testing not worth it.

That was one of the reasons why I left, incidentally. The manglement's obsessive need of control without a good understanding of what it was we were doing made the policies that were created anti-thetical to stay---because they were, put bluntly, making it impossible for me to actually do the work that I was hired to do. Sadly, they were also damn proud of it too, which makes it all the sadder.

Actually, that is also the same reason why I left the last company I worked at too. I'm sick of being some warm body to fill up a spot so that manglement can give itself the self-pat on the back for ``following the best practices in the `industry' '' without necessary knowing what the industry is.

In the terminology of Hadfield, I was prevented from even being a ``zero''. Hadfield classifies the neutral contributor as a ``zero''---the person does not contribute detrimentally to the cause (a ``minus one'') nor is the person a super-star (a ``plus one''). Being a ``zero'' is literally the bare minimum that one should strive to be in a team, and in those places, I was actively prevented from doing so thanks to various managerial behaviours.

And this is also why I needed a sabbatical. To seek joy again in a life that has been ripped to shreds with the multi-whammy of a bad break-up, active hampering of doing what I was trained to/could do, and generally bad prospects for the future in general.

God is in control, but I still need to exercise my free will. But I cannot exercise my free will if I am not in the right state of mind either. Reading His word is one way to gain joy, but unfortunately I'm still stuck with this puny mortal body, and so I need to take some care of it as well---it is probably good for me if I just get called home to the Lord now, but it won't do His plan nor anyone else any favours.

So I just need to grit my teeth, grin, and try to seek the joy and beauty that is in this world to give myself a good enough reason to go on.

I wasn't expecting this blog entry to be this long, but here it is anyway. Till the next update, I suppose.

Wednesday, March 17, 2021

Clarke Quay, Bras Basah Complex, and Back from the Edge

Today's blog entry is a little more flavourful, seeing that I have actually gone out of the apartment.

I resurrected an old tag, sms-musing, that tags posts that were conceived in the field while I was doing something else, which in today's case, was waiting for the bus. I might just keep using this tag if I have such epiphanies each time I'm out in the field, probably as a way of capturing those in-the-moment thoughts that come from doing something more stimulating.

Speaking of stimulating, I went to grab my favourite sushi for lunch today. I have been following them since a long time ago since their first stall in VivoCity, and their aburi nigiri is to die for (get the assorted one---comes in stacks of 10 and is borderline omakase). The rest of the menu items are generally good as well because of Chef Johnson's consistent use of fresh ingredients.

My record was eating 40 pieces of those delicious assorted aburi nigiri sushi. I've stopped doing that for a while now because I wanted to lose weight. Sushi, delicious they may be, still has lots of carbs in the form of the rice after all.

I used to be a little less loud about this place, because the more people realise how tasty their food is, the harder it may be for me to find a place to sit there when I head down to dine in. However, times have changed, maybe I won't live long enough to keep supporting them I mean thanks to COVID-19, the F&B businesses are getting quite badly hit, and I would be sad if JJ.com Fish Mart goes away completely. They are located at 6 Eu Tong Sen Street, The Central #01-68/69, Singapore 059817. If you are reading this blog entry, and are in Singapore, please head on down and support them. =)

------

After my comfort food, I went on for a walk along the river and headed towards Clarke Quay proper. Seeing the tear down of Liang Court brought out some sadness in me. Liang Court was, back in the day, the place to go for anything that is of the Japanese culture. Recently, I had spent some time there prior to its demolition, and loved the Kinokuniya book store that was there. There were also a craft beer place, and it was also the place where I went to for my slim hip flask.

All these have gone down the path of history now, like all things in Singapore. This is in contrast with Melaka---going there with a fifteen-year separation revealed almost no changes whatsoever.

Not sure what to feel there, but it is just a thing I suppose.

The walk was supposed to take me from Clarke Quay Central through Clarke Quay, follow Hill St up north before ending at Peace Centre.

But I got side tracked. A while back, I talked about Seng Yew Book Store, and claimed that it was still alive. But that was based on Internet pictures. So I thought to myself, `hey, since Bras Basah Complex is sort of along the way, why not check out the place to confirm it?'.

And that was why when I was already at the vicinity of the National Museum of Singapore, I decided to switch over and walk towards Bras Basah Complex instead. It took me a while, but I got there...

...and promptly got suck into 书城音乐书局, or more affectionately known as 书城 for short. They have an English name (``Music Book Room''), but I have never heard of anyone calling it by that name. I bought two books, one on 笛子 techniques (and associated training pieces), and one on 箫. I was tempted by the melodica by Suzuki music, as well as two 膜孔-less 笛子 (it was a G-梆笛 and a D-曲笛). The melodicas (``melodions'' using Suzuki Music's branding) were easy to not be too tempted by because they were in the hundreds for price.

But those two 膜孔-less 笛子 were sub-fifty each. So tempting... but I remembered that I have a Grenaditte piccolo and a Grenaditte treble flute that covers the range of the G-梆笛 and D-曲笛 respectively. They were also chromatic in nature, and actually had a wider compass than the two 膜孔-less 笛子. And so the temptation was gently pushed away.

I spent the next couple of hours just walking about Bras Basah Complex, exploring various stores, staying clear of bookstores (and Artfriend) in general. I did enter Swee Lee though, and found that their renovated premises to be more stylish than before.

As I wend my way through, I finally reached the top of the commercial part of Bras Basah Complex, and sat down to this interesting panorama:
It was just this strange juxtaposition of a public housing residential apartment [behind me and atop Bras Basah Complex] while the buildings around were obviously non-residential in nature, with the National Libray clearly within a stone's throw away.

I would've sat there longer had the rain not start to pick up and scatter me away from the open air ``roof-top''.

------

I think that my urge to revisit many places again might be related to the concept of transactive memory. Mumbo-jumbo aside, the premise is that when we remember things, we tend to build strong associations as part of the encoding of the memory. Association is a very strong mechanism in the reinforcement of a memory, it is part of how the method of loci can be used to memorise stupidly long lists of things.

More mundanely, it also means that if one's memory of a place was when one was with someone else doing something, it often is the strongest memory of that place.

This is bad for me because it means that I do not have another way of looking at the [objective] reality, which means that I will keep getting reminded of a reality that is no longer true. This constant reminder from an old memory is a great way to develop more and more ``down'' episodes.

As I mentioned in my earlier SMS-musing, life's experiences (as both mental and physical ones) have hysteresis loops involved---even when we ``go back to a previous state'', we don't actually go back to a previous state verbatim since we have already been conditioned with whatever that has happened in between visits. Memories cannot be erased, but they can be put into a different context, the so-called ``time will heal'' effect. And the fastest way to put memories into a different context (thus dulling the one causing a stronger [negative] affect) is just to build new ones.

So visiting Bras Basah Complex alone today doing similar enough but different things compared to the time that I was here with someone else helps to recontextualise the memory and reduce the pain that it will cause.

Am I just rationalising things to myself, or is there another purpose behind this?

------

In other news, I have a new ear worm.
I first heard it while I was at my favourite bar.

What drew me to the song was the repeated refrain:
Back from the edge
Back from the dead
Back before demons took control of my head
Back to the start
Back to my heart
Back to the boy who would reach for the stars
Oh, back from the edge
Back from the dead
Back from the tears that were too easily shed
Back to the start
Back to my heart
Back to the boy who would reach for the stars
Who would reach for the stars, yeah
(Lyrics sub-texted from Musixmatch.) It's not that the lyrics are particularly deep, but that the delivery of the lines just resonated with me. It's a mix of wistful, anger (especially from the line beginning ``Oh, back from the edge''), and a certain victorious feel to it.

That's about all I have for now. Till the next update.

SMS Musing #8

While waiting for the bus:
Life is one big hysteresis loop. Things happen and affect us, and even though after that we sort of "get back" to where we were before, we never actually do. Because the context has changed, and more importantly, the innate bias encoded in our mind has changed due to the experience. It is yet another agathokakological set up, since the retainment of memories and experiences encompass both the good and the bad -- it is not possible nor is it healthy to keep only one set without the other. Life's experience is the autoencoded sum-total of all experiences.

Tuesday, March 16, 2021

Hougang Green Shopping Mall

I got a head shave again today as the hair was starting to get rather unruly. I went on a short walk about the neighbourhood once more, but headed northwards instead of westwards, ending up somewhere in the Hougang Green Shopping Mall region.

Wait, Hougang Green Shopping Mall?

I swear that at times, I have no idea how to process the different crazy names that we give to our places. The reason for my incredulity is that despite being called a ``shopping mall'', Hougang Green is more like some kind of open-air two-storey commercial building, something that is a little bit more removed from what one might normally consider a shopping mall. But to be fair, the idea of a multi-storey air-conditioned shopping mall is only common from the late nineteen nineties or so, when the regional centres (a concept from the early nineteen eighties) started having these centralised multi-storey air-conditioned buildinds that mimicked the shopping malls that were to be found in the major shopping district that is/was Orchard Road. Many of these regional centres had terrace house-like shopping arcades that were the proto-shopping malls, just about a step above just setting up shop along the road.

And when the regional centres had their upgraded shopping district-esque shopping malls (and the subsequent ``super-scaling'' into multiple such malls within the same region---see Tampines and Paya Lebar for examples), the fringe areas like Hougang and Sengkang started to have smaller scaled versions of such shopping arcades that were multi-storey buildings that were better classified as ``shopping malls''.

Anyway, Hougang Green Shopping Mall had quite a few interesting shops there. My favourite fried chicken place, Arnold's Fried Chicken, has a branch there. I did not eat there though, getting accidentally shanghaied into trying food from Chef's Hats that was also located in the shopping mall. I tried the burger set lunch, the carbonara penne, and escargots. They taste alright, and their price were closer to that of a café pricing, which is also okay I suppose given the slightly more up-scale choice of ingredients and cooking style. I would eat there if I wanted the ambience to do something else in addition to having something more traditionally western in style as opposed to the usual bak chor mee, but if I just wanted to have a tasty ``high class'' burger or escargots, I would probably choose somewhere else, if not for the fact that Chef's Hats was literally within walking distance.

Eh, support local. They have their good points, I suppose. ``Satisficing'' is often a better deal than ``optimising'' anyway, if the recent chapter that I was reading in OpenStax College: Organisational Behaviour is anything to go by. Sometimes I feel that the lengths that some people go to find the ``perfect'' food place is just a bit too excruciating---sure, the ``perfect'' food place probably tastes more amazing than the less-than-perfect one, but when one starts factoring in the effort/time taken to research to find that place, and then the time/effort needed to actually get a spot in the queue to eat there, all that ``perfection'' gets severely marred, with the expectations set so high that when reality strikes, it hits like a truck, and in a bad way.

My rules of thumbs for a lot of things are very simple, really:
  • Is it good enough, objectively?
  • Is it ethical?
  • Is it cost effective enough?
  • Is the effort to get the next better option an opportunity cost that I want to pay?
Bullet point one sometimes does not have an optimisable search space, simply because there are dimensions of the problem that I may not know of, or even if I do know of, have no way of accounting/controlling for them. In short, it is less about full objectivity, but so-called bounded rationality-based objectivity, or ``is it good enough given the information that I know in the time horizon that I need to have the decision made''.

Put in that way, it would seem that I am not exactly an achievement hunter. And anyone who comes to this conclusion is much closer to the truth than they would be expecting. Don't get me wrong, I dislike losing like the next person---I'm not so inhuman that losing causes absolutely no reaction in me. However, I am not one who only seeks to win, which is problematic in this world because the ``need'' to win is the very definition that powers this post-industrial capitalistic world. To many people, this need to ``win'' ensures that they are more likely to make decisions that can go against their conscience and/or put them in a long-term advantage, if their short-term goals can be met.

For a ``win'' cannot be defined without a goal. Long term goals are muddy by definition---for instance, what does ``long term sustainability'' as a goal mean? More importantly, how can that ever compare against the much easier to articulate (and actualise) short term goal of ``maximise shareholder value''?

For the record, I am not demonising the idea of business. Business is an important process to match what people need against what can be created to satisfy this need through the resource allocation process via economics. But the conduct of business can sometimes be rather shady and superficial. Many regulations that are devised as laws govern less over science and technology per se (reality acts as the final arbiter of what can and cannot be done) but govern more over the various ways businesses may be conducted. New laws are often created to patch any loop holes of some previous conduct of business that was either deemed to be detrimental to society by the rabblement, or by the government, either through the government's independent observation of the abuse, or through the various lobbying efforts by other businesses whose existence and success may be negatively affected by the loop holes that were exploited.

Business is one of the few things that take something that modern societies value the most (money) and make more of it (i.e. more money), and thus gains a certain amount of fascination and obsession by many people. Many do it against good ethical/moral behaviour and the ``more noble'' approach of advancing human knowledge, just so that they can gain the type of recognition by being an amasser of large quantities of what modern societies value the most (money).

So my admonition still remains: as crude as it sounds, whenever anyone makes a pronouncement about how something is ``good'' or ``bad'', always look deeper into their motivations, with money being a very important source of motivation for many, or as they say, ``follow the money trail''. If they are believers, the standard of behaviour required is higher, because they are supposed to know God's views on what counts as moral/ethical behaviour, so they have little excuse to do things that are morally sketchy in the pursuit of money. Non-believers have no excuse either---they may not know of God's views on correct morality, but they should at least have enough critical thinking present to really see what it is that they are doing.

In either case, I am not advocating being the vigilante to demand that these pronouncers follow what one believes in---that is stupid and unlikely to work. But at least when one needs to deal with such people, with a better understanding of their motivation and the inherent ethics/morals, one knows the better way of interacting with them to avoid either promoting that which is morally/ethically questionable, or to just walk away.

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

Monday, March 15, 2021

Ides of March

Immediately after π-day is a great day to make a Shakespearean joke.
CAESAR
The Ides of March are come.
SOOTHSAYER
Ay, Caesar; but not gone.
Indeed, at the time of writing, the Ides of March isn't completely gone either, seeing that [in this time zone], we are still on March 15.

Today was mostly focused on reading the Bible. There is the usual daily devotional readings from Bible in One Year 2020 with Nicky Gumbel (I'm on day 311 of 365; once I'm done with this, I will switch over to Through the Bible in One Year by Dr Alan B. Stringfellow). I finished up the last half of Matthew (in NKJV), and worked my way through Exodus again via listening to the reading of the NKJV.

``But wait,'' you might ask, ``didn't you do that just about two weeks ago already?''. Well, yes, technically I've listened through Exodus already, but ah, it was in ESV, not NKJV. There is ``a difference'' only because of my completion stint: like almost everything I do, I keep track of which books of which Bible version I have been reading. And I am ``only a few books'' from completing NKJV, which means that after I completed all 66 books of NKJV, I can add another entry to my read list.

Part of the reason why I maintain such a tracker is to validate this statement that I keep hearing from many people: ``Oh! I have read the whole Bible more than ten times'' (emphasis mine).

I'm just wondering if it is possible to read ``the whole Bible more than ten times''. Maybe there are some books that keep getting revisited so many times due to their importance in doctrine and/or theology that it feels as though they have read the whole Bible more than ten times.

Since I have doubts, I set up some kind of data collection and see what I get.

Notice that some books have fractional distributions. This came about because while I was on the Bible in One Year 2020 with Nicky Gumbel set of readings, there were times that I spent roughly half the book reading using ESV, while I spent roughly the other half using NKJV. So it felt more accurate to just mark the book's coverage as being shared across versions. This also means that the vertical coverage of versions end up not counting such fractional coverage, which is reasonable I think.

------

It's the end of month two of my sabbatical. Frankly, it doesn't feel like anything other than ``natural''. Is a little strange to just wake up, and plan about three big things to do (each thing covering about 2.5--3.0 hours), do them, and then turn in for the night. No need to scramble and panic due to uncooperative people, mind is significantly less foggy due to the relative freedom to just think about things without having to worry about how to sugar-coat things to make excuses instead of actually finding a solution.

Really seductive to keep this going on for as long as it is possible. Again, I don't have apartment/wife/children/care to ``feed'', so monthly expenses can be kept low enough that whatever I have lying around can be made to stretch for a while.

Mmmm.

Funny enough, I haven't been gaming much for the past month. Yes, I played The Outer Worlds, but after that, I kinda just went back to reading, playing some flute/笛子 here and there, and watching YouTube videos of cool people doing cool stuff that I might like to do, had I have more space to run a physical workshop.

Alas, I am stuck with only a mental/virtual one over my computer, in which case is Eileen-II.

I did think about why people are more drawn to things that involve mechanical engineering (think gears, rolling marbles, big builds and the like), and the answer seemed obvious to me: people are drawn to things that involve mechanical engineering because mechanically engineered things can be filmed well. I mean, yes, people like ElectroBOOM and Mark Rober do some cool electronics projects, but the types of electronic projects that they choose (and the way that they present them) are those that can be filmed easily.

Imagine, if you will, a video showing the type of lab that a computer scientist would work in, messing around and building [say] a toy Huffman encoder, a type of compression software.

Most of the things are going on in the computer scientist's head, and wanting to film that would require the said computer scientist to pull up a white board and start to draw things out using technical jargon just to save four more white boards of pre-cursor information.

And unlike the visceral view of someone getting hurt [in a controlled way] (I'm looking at you, ElectroBOOM), watching a computer scientist doing debugging is super boring since it is a lot of sitting in front of the screen and staring at code, writing random-looking state dumping statements to check for various invariants. Unless said computer scientist monologues the thought processes, which may make for either a short video, or a confusing one due to jargon.

I mean, the closest example of the monologuing is from the LockPickingLawyer, who demonstrates how he picks certain locks by sounding off the steps that he is taking, and verbally confirming what his fingers are feeling on the lock pick ``nothing on one; two feels binding, got a nice click out of him; nothing on three; four feels binding, got a click on that, but there is some counter-rotation, so we'll ease up on that a bit; nothing on five; going back to one...''.

Hmm.

Anyway, that's all I have for today. Again, for those who suddenly appear here and read what I am writing, it is not the case that I write here daily---it is just that I am on a sabbatical for now, and I promised myself that I would write something once a day. Most of the time, it would appear that writing a blog entry in this blog is the thing to write, though sometimes I do write some poems, or even stories.

Here's to another fruitful month in my sabbatical. Till the next update then.

Sunday, March 14, 2021

Happy π-day!

Happy π-day everyone!
I love π-day---it is a day where, no matter where I was working at and who I was working with, I would find the time to scour around for a [large] pie to share them.

I love π-day because it is a great day to share my inner (hahaha... ``inner'') geekiness with those whom I spend a lot of time with. It is one of the few geek-oriented festival days that can be easily understood and associated with (try explaining Star Wars Day without explaining the whole story of the Star Wars canon, or the even weirder Mario Day without explaining who Mario is) since most people will have some kind of passing familiarity with π through their interactions with any level of mathematics.

π is one of the first ``strange'' mathematical constants that many would know of when they were learning about circles and their associated areas and diameters. Some would happily remember it as 227 as the first approximation, before the non-repeating decimals of 3.14... are taught. Bigger nerds will remember the next best approximation as 355113, and then fall in the rabbit hole that is continued fractions.

Those who go further than primary school mathematics will learn of all the different fun of π. Firstly in the form of the change of ``natural'' angle units into radians, where a full revolution is 2π rad or just 2π (radians are so natural that they are technically a dimensionless quantity). Then π will start appearing as seemingly ``magical'' constants when various summations and integrals are taken into account, especially in the world of statistics (normal distribution, anyone?).

Those who aren't that mathematically inclined will remember some nerd whose claim to fame is the dubiously useful ability of reciting the digits of π to a thousand places or more, when about 15 decimal places of it is good enough for Jet Propulsion Laboratories (JPL) in their space applications, and also from the article, 40 decimal places of it are good enough to figure out the circumference of the visible universe with an absolute accuracy equal to the diameter of the hydrogen atom. Nowadays, we often hear of how fast a computer computes a certain [large] number of digits of π as a type of benchmark for the computer's computation speed, or as a way of stress-testing the machine.

There are those who pooh-pooh π-day, claiming that π is a usurper of the True Constant of the Circle that is τ (τ=2π), and that we should be celebrating τ-day (June 28) instead. Personally, I don't really care much about that particular line of thought---everyone has their choices of course. However, since τ-day was created almost in defiance to π-day's success, it has a strong Johnny-come-lately vibe to it that makes it just a tad more contemptible, though I would not stoop to making that an active sabotage.

Anyway, this year's π-day is a quiet one. It falls on a Sunday, and I am not working for anyone at the moment. So I will just enjoy this circle (2 pies, i.e. 2π, get it?) my own today.

Oh, this post is deliberately set to go out on March 14, 15:56hrs (SGT). This corresponds to the mixed base number of 3.141592-ish. The minutes is 56 because there isn't such a thing as 92.653589793 minutes, so I just used that to mimic the percentage of the hour.

Saturday, March 13, 2021

``Almost Surely''

I could be writing a file I/O module to support the ghetto Huffman encoder/decoder I wrote this evening, but I think I will save it for tomorrow instead, where I will then think about how to further enhance my understanding of flute/笛子 harmonics for devising a more systematic set of advanced techniques on the much lower flutes/笛子.

I still haven't played a video game. Strange huh?

Anyway, I want to talk a little bit about a thought I have regarding the resolution of the apparent contradiction of the sovereign nature of God against the free will that is apparently available in that of a human. This concept came to me as I was listening to the message as presented by the pastor at church earlier this evening.

When people think about God's will, two fallacies are committed. The first is that God's will is always about doing things that they (i.e. the person thinking about this) will see immediate benefits to whoever is thinking about God's will. This is often a central point of many refutations against those who ask things like ``if God is all-knowing, then why does He not help me now when I need it `the most' ''. Primarily, God's will isn't about furthering any single human's life in the sense that we understand---it is about furthering His overall plan for humanity to drop their sinful nature and then to glorify Him. Secondarily, it is often a problem of what I call ``temporal scale mismatch''---God is the definition of asymptotic time since He exists outside of time and space as we know it. So the time-horizon for the fulfilment of God's will is at least א‎0, i.e. at least countably infinite (the units do not matter if we are talking about infinities, since a unit is just some finite scalar, which is nothing when compared to infinity), while our puny mortal time-horizon is limited to only about 100 years, if we are lucky. The Bible, the source of God's Word, does not hint on anything remotely relating to specific deadlines in terms of prophecies---all it often does is to set up a series of signs that one needs to observe before the main event. But note that even these set of signs only declare their order [sometimes], and not the duration that spans between the signs.

Given that, it is thus very unlikely for the prophecies made of God to happen in any specific person's life-time, which is alluded to with the metaphor of ``...like a thief in the night...'' (Revelation 16:15, 1 Thessalonians 5:2, and 2 Peter 3:10, to name a few).

That segues into the second fallacy: the assumption that God's will is deterministic. I think that a lot of the big arguments about the collision between God's sovereignity over how the universe operates (or more microcosmicly, how people operate) is the assumption that God's will is like a computer program, a formulaic antecedent→outcome ``machine''. With that fallacious assumption, people get understandably uncomfortable when they try to reason about free will, arguing that if God ``is real'' (conflating existence with determinism), then free will is not possible because God's all-knowing nature would render individual thought and decisions impossible.

I don't think that God's will is deterministic. I don't think that the Bible portrays God's will as being deterministic. Don't get me wrong, God has defined rules that are clearly of the form of antecedent→outcome, but the caveat is that very few such rules have a hard deadline. The rules that have some kind of ``hard'' deadline involve those of rituals in the Old Testament, but those are rather cyclical and are largely done/led by the priests of old. There are, however, very little indication of the time duration between antecedent and outcome, and is exemplified within the Bible itself (see the time duration between when King David committed a sin against God and when he was punished (2 Samuel 11:28, then 2 Samuel 12:18)---we only know the order of the events, but not necessarily specifically when).

God's will, based on my current understanding of the Bible, can be understood as the set of ``almost surely'' temporal events. This has several implications: it means that God's will does not contradict the prophecies by virtue of the fact that the prophecies are the temporal events that will occur ``almost surely'', but the actual path through the temporal event space by the universe is still subjected to the statistical effect of combining the multitude of individual free will. Put in another way, our free will can still allow us to make localised decisions that do not affect the overall thematic movement that is characterised as God's will.

Without going through all these mathematical concepts, that is basically what the pastor said at church today. There is no contradiction because God's view of the universe is unfathomably larger (in both space and time) as compared to us, that the free will that exists within us can still be exercised without necessarily screwing up God's will, i.e. in the end, God is still in control, no matter what we believe we can do.

So if a series of action now leads to, for the sake of argument, World War III, it is not because God has forsaken us, but that World War III (while detrimental to those involved in it) itself is a catalyst for yet another ``almost surely'' prophecy of God's will (communicated or otherwise).

I think perhaps part of the reason why the Bible is written in the way it is (and getting the misinterpretation that it probably does not deserve) comes from the limitation inherent in trying to record and communicate the big concept of God within the very primitive and limited media that is the written word in the Bible.

I wonder if things would have been different had Jesus's first coming, crucifixion, and resurrection appeared at an era where it was possible to capture and retransmit more than mere words, maybe as a podcast. Would that have made it less likely to be misinterpreted?

I suppose that there's no way to know. After all, God sent His Son at the time that He did because He had a reason to do so at the time and manner that He did. Perhaps it was time because the sending of His Son was how He could redeem all of humanity, both the Jews and the Gentiles, and sending His Son at any other time would not have as great an impact as compared to when He did it. But there is no way for any of us puny mortals to know about this.

Friday, March 12, 2021

Removing the Lint

I promise this is the last entry for the day.

I didn't play any games, preferring to watch more ESA 2021 Winter VODs, well specifically the Pokémon X one. I've always enjoyed the Pokémon runs in general---they are long relative to most other games that are speedrun, but a lot of thought goes into the routing of which Pokémon to pick up, what statistics to look out for, what items to get, and movement optimisations. Pokémon speedruns are also where the ``X-items'' (X-ATTACK, X-SPEED, specifically) and ``repel items'' are extensively used. And since the runs are usually at least an hour or two, the couch commentary is usually very chill with lots of funny conversations going on as they explain the mechanics for that particular generation of Pokémon and tease each other. It's a very relaxing watch most of the time.

I did spend some time working through pylint results on the recent Huffman code, the sitemap generator code, and the basic database object for my Bible text mining set up.

I've used linters before, but never one for Python3. Let's just say that I've learnt quite a few things from it that may make me reconsider the style that I have been using for Python3 till thus far.

Anyway, it's shower time, then bed time.

Till the next update.

Nostalgia from School Songs

Okay, a post at stupid o'clock is probably not as fun as it might be. So here's something a little bit more nostalgic.

In Singapore, we have schools, and schools have school songs. These are something akin to the national anthems, except at the scale of the schools instead.

The one thing that we don't usually talk about is how we usually sing them every day at the start of the school day---no pop song even survives this level of intensity. With that, of course, comes some serious nostalgic vibes. To me, this nostalgic feeling is really quite agathokakological (my new favourite word after defenestration)---there is the good of something familiar from a time long ago that was a part of my childhood, but there is also the somewhat bad of the levels of conformity that have been ingrained from a very young age by this specific society that I grew up in.

Anyway, I brought this up because I had been digitally remastering the lead sheets of the school songs, because I can.

First up is from my primary school. For reasons of avoiding getting smacked down with automated copyright take downs, I will refrain from naming the school in writing (it is in the image though, so see for yourself and nod your head quietly).
This is circa 1997. The school song is printed behind the front covers of the old A5-sized ruled writing books that had brown covers with the school crest up front. This one was remastered from one of those old [thin] writing books that I found while I was spring cleaning and preparing my shelf to finally reclaim my own space at home.

This next one was only remastered today.
This is circa 2001, and is from the speech day booklet. The original quality was terrible---it seemed like a facsimile of a facsimile of the original handwritten version that was handed down through the ages. The lyrics were hand-written (not a problem), but the staves had poor definition, with note heads, accidentals, and stems a smeary mess. It is the most sophisticatedly set up lead sheet, since it actually has four-part harmony on it. I could have improved on the remaster by combining rests and maybe reducing the fermata to only appearing once per clef, but it feels a little too much effort. I remember that every time we sang this school song, we always ended up about an octave higher, and that the feel of this piece was less rousing and more like some drunken poet reciting his poem, which is probably less far away from the truth than expected (except maybe for the drunken bit).

The final one is from the time I was in junior college.
This had a full concert band backing it ``live'' on Fridays(?) when we would assemble in the school hall for the morning assembly. I think it actually shares the same song as the affliated secondary school with it. I have had lots of interesting and happy times at my junior college, even volunteering to return for nearly two years after that while I was serving out my national service to train up the existing students for competitive programming at the National Olympiads in Informatics, and even the National Software Competition (NSC) held by Singapore Polytechnic, though the format of that competition now is different from the past (and so I'm not linking to them). The old NSC was more like the ACM ICPC, but geared towards secondary school students instead of undergraduates in that one fielded a three-person team and with one computer to program on using languages of the team's choice. In the old days, it was a choice of [Turbo] C, Microsoft QBasic, or [Turbo] Pascal, but it then evolved to also include Java. The competition was very algorithm-heavy, with speed as a major factor as well.

Anyway, nostalgia is just a rose-tinted window to the past. There are lots of good things there to reminisce fondly, but there are also many, many bad things from the past that I would rather not remember, except for the fact that they too have contributed to the me that is today.

It is said that those who forget history are doomed to repeat it, but I think that it is more of a case of how we, both individually and as groups/mobs, have certain thought patterns that keep recurring in an imperfect manner. Some of these thought patterns are beneficial to us, but there are some that are not, either through context or otherwise. In either case, ``knowing/remembering history'' is less about memorising the details of what had happened, but about being made aware of the thought patterns that one had gone through then, together with their consequences.

That last paragraph is important to myself because as I am starting to re-discover who I am, really, it is important to not fall into the traps that un-mindful thinking would lead me to due to the old thought patterns.

As I might have pointed out before, it is really seductive to just hermit up and ignore the world outside; as weakly introverted-dominant thinker, this temptation is real. But it is not beneficial to future-me---mostly because I am not rich nor powerful enough to continue to stay hidden from the world this way. Despite the treachery of the world, it is impossible to stay completely segregated from it, since I live right smack in the middle of an urban city, and have the ``highest skill levels'' [relatively] in things that require working at so-called higher industries.

Unless of course if I off myself. Then all these things are academic in nature and have no other use. =)

But no, suicide is distinctively off the menu.

I just realised that I have not actually played any video games in a while, having defaulted to doing more reading and pursuing other semi-random geeky interests. Maybe I should rectify that.

Just maybe.