Showing posts with label technical. Show all posts
Showing posts with label technical. Show all posts

Thursday, June 26, 2025

Recovering from Missing Beyond Compare 5 UI

Just a quick note on how to resolve an oddity.

I used Beyond Compare 5 to compare two 2.8 GB files, and when I was done, I closed the application.

Then later on, when I tried opening the application again, it ran due to the process being seen in Task Manager, but the UI was nowhere to be found.

I tried rebooting Windows 11, didn't fix it.

I tried uninstalling and then reinstalling Beyond Compare 5, didn't fix it.

What helped with the recovery was this:
  1. Pull up a command line prompt from within where Beyond Compare 5 was installed.
  2. Execute:
    BCompare.exe /solo /edit
    This pulls up the text edit window of Beyond Compare 5.
  3. From the opened window, pull up a new session.
  4. Save the workspace (name it anything), and then close the application.
Subsequently, activating Beyond Compare 5 was like normal.

Why this happened in the first place? No idea---might be a corrupted state of the UI when it was dealing with the difference of two rather large files [in binary].

Why this could fix? No idea too---but most likely the built-in text editor is a different code path that bypasses that corrupted state processing that stopped the loading of the UI, which allowed the corrupted state to be fixed through the series of arcane steps.

Hopefully this is useful, but I doubt it. Unlike the era of the Neverwinter Nights 2 Texture Bug, modern incarnations of search engines are more like ad-generating machines with additional AI slop (gasp!).

In other words, this is likely to be buried.

And that's the quick note.

Saturday, May 31, 2025

Big Badda Bang of Words

Ah... end of the week. Final-fucking-ly. The week has been long, for a variety of reasons that I will not go into, because it is (1) boring for most people; and (2) involves too any ``other people'' that it really isn't about me any more.

Instead, let's talk about some accumulated things that I had done.

Not too long ago, I learnt about some new HTTP headers needed for security, along with an online tool to test them. The idea behind these ``security headers'' is to provide server-centric instructions to the client browser to ``know'' what kinds of content (static or executable) are to be considered legitimate from the perspective of the server that the client is connecting to. This is the missing information link that is needed to prevent the class of exploits that starts with a man-in-the-middle (MITM) attack, which includes drive-by malware downloads, page hijacking to siphon off user input (and therefore information). It is an explicit white-list to the client on what the server knows as resources/actions that it needs that the client should pay attention to, ignoring/stopping any that do not follow that whitelist.

Intrigued, I tried setting it up on my personal domain. The HTTP headers were created in a no-brainer way, but the behaviours that they created... broke lots of things.

For starters, there is now a strict segregation of the presentation layer (i.e. the HTML and CSS stuff) from the controller layer (i.e. any executable code, often in the form of JavaScript). One can no longer use the on* family of attributes within the HTML tags to create callbacks for specific actions (notably in my case, the onClick, onChange, and onLoad actions).

That broke enough stuff that I had to rewrite my website to do that, and boy did that take a while.

Also, even in the presentation layer, there was a strict enforcement of splitting out the semi-structured layer from the styling layer (i.e. HTML files cannot have embedded CSS styles, no matter how small, nor when they were inserted (like in original HTML file, or as part of some DOM-tree shenanigans)). It wasn't difficult; it was more annoying than anything else.

But after all that effort, my website works well now, and you can verify the Security Headers with the link.

The eagle-eyed will notice that the new pages no longer have referrals to the CSS/HTML validation links. That's because one of the security headers basically blocks the passing of the forwarding page's URL to the forwarded to URL, which made such validation links impossible to operate in the client browser.

My chief constraint is that I have very little control over how to configure the website server program, so I had to do what I had to do just to keep the 'net gatekeepers happy. Like how I ended up creating a damn sitemap, and having to do up an entire toolchain that minifies and GZips individual pages, all because the damn gatekeeprs of the 'net these days state that all websites are clearly meant for machine-to-machine communication, so the sources of the pages themselves should be mangled for efficient machine-to-machine communication, as opposed to something that is human readable (and therefore learnable from).

Man, the ways of the 'net have changed drastically over the past 25 years.

------

I have the ESV Study Bible in hard copy for a few years now, and have wanted to grind through it slowly but surely as part of my own education on my faith. It's not my first time through the Bible (according to my own loose tracking, I've covered the Bible end-to-end two full times by now). But one of the biggest problems was that the book was an inch thick, and has terrible portability, despite it being the ``personal edition'' and having the general dimensions (not counting the thickness) of an A5 sheet of paper.

An e-book version would work wonders on the portability front.

Crossway has it. Unfortunately, it is terrible to use.

You see, unlike the deadtree version where the ESV text sits in the upper half of the page, and the extensive study notes sit as end notes in the bottom half, the official e-book version treats it like a hypertext document with oversized text, where the footnotes are replaced with links that jump to a completely different part of the binary file, and after a few such jumps, being lost becomes the regular state of things, made worse by being on an e-reader like the Kindle [Colorsoft].

In short, the official e-book sucks.

I had been patiently looking to see if there was a version of the ESV Study Bible that was just a straightforward digitisation of the printed version, with all the information where they are, without having to jump all over the place like a punch drunk monkey.

Let's just say my patience paid off and I got ahold of such a version. There was a problem with the images that made up each scanned page---there was a very strong unsaturated red tinge that made the text contrast terrible.

Ignoring lots of [necessary] intermediate steps, I managed to fix the contrast problem at the image level with the following ImageMagick miniscript/command:
find -type f -iname '*.jpg' \
  -exec magick {} -separate -contrast-stretch 0.5%x66% \
  -combine {}_out.jpg \;
So what this does is that it uses the find command to locate all the image files, and then apply the ``auto-leveller'' on each channel separately, allowing up to 0.5% of the pixels to go ``black'', and up to 66% of the pixels to go ``white''. The 66% is empirically determined through checking the output---the idea is that we want the ``background'' colour of the page to have its unsaturated red plus bleedthrough from the other side's text to ``go away'' (the actual paper is thin enough that there is some bleedthrough in real-life, which of course meant that the scan would yield the same problem, decreasing legibility).

I had tried ImageMagick's -auto-level option before, but it did nothing to the contrast. Using the alternative of
magick {} -colorspace Lab -channel 0 \
  -auto-level +channel -colorspace sRGB {}_out.jpg
brightened the contrast, but did not remove the unsaturated red tinge much. It was only after applying the final incantation I specified in the beginning that I saw results.

And the results were dramatic (I'm not showing them here for obvious reasons), and after running the images through an older version of KCC (I used 7.2.0 instead of whatever is there now because the 7.3.x series broke many things), I had something that worked wonderfully on Eirian-VI, my Kindle Colorsoft. In this case, I needed the colour ability of Eirian-VI since colour is used quite extensively as highlights, and for specific diagrams/illustrations within the ESV Study Bible to explain core concepts.

I said that I left out some necessary intermediate steps. They weren't the focus of this discovery, but were needed because magick could not work on the source file directly to generate the type of output needed. I used an updated version of pypdf that needed pillow, which demanded that one does not update one's Cygwin Python3 installation to 3.12, because it messes the hell out of the dependency availability from the mish-mash of libraries under the default 3.9 and newer 3.12.

------

The stupid thing I bought finally showed up yesterday. It was, as they say in Chinese, 又贵又重. Shipping was a bitch, and product delivery took a while.

But it finally arrived.

First impressions: yep, it is as it says on the box---a fucking heavy cup. To ensure that it could have the 10 kg mass, the cup's diameter was large enough to quality as a mug, but its depth was shallow enough that the total volume was still cup-sized. In essence, it was like a bowl with a really extended and heavy-af bassbase. I currently cannot lift it one-handed, and am not expected to do this any time soon. I can also see a litany of overuse injuries in the near future as my deltoids and parts of my pectorals get continually hurt from moving this even as they are healing from their own weakness.

It was as stupid as it gets, and I love it.

I also got the 0.5 lb stainless steel shotglasses (are they still considered shotglasses despite being made of not-glass?), originally three (one for me, two for CP/Elain), but they upped it to four when my order was delayed enough that they graciously upgraded it to their 4-for-3 promotion.

That shotglass(?) felt nice to hold and drink from. There was no ``metallic'' flavour that one might think something like this would have, but then again, after having eaten out of stainless steel plates and cutlery, there was never a real ``metallic'' flavour to begin with.

For both, I would suggest scrubbing the interior a little more thoroughly before using them as a matter of course.

------

I watch lots of VTubers, so many to the point that 8 regular hours a day cannot be enough. So I watch them at 2.5× speed, which is a speed that the observant will realise to be impossible from both the network bandwidth, and web-client viewer perspective.

The answer is yt-dlp. That's all I'll say about this part.

The other parts start with the statement that for the sake of my network, I don't usually need to watch things at 1080+p, for the reason that the video often runs on the vertically aligned screen.

This means that the maximum width of the video that I will be watching, tends to be limited by 1080 px horizontally.

Mathing it with the usual 16:9 ratio of today, this works out to something like 608 px vertically.

YouTube doesn't have anything at 608p, but they do have 480p, which is the resolution that I often watch my videos in. Automatically upscaling it in VLC media player has some blurriness, but throwing in small amount of sharpen filter, it works well enough.

That is, until the game that the VTuber is playing has lots of words (not a secret: am referring to Blue Prince). The encoding at 480p from YouTube tends not to do well with text, and it was getting a little... more frustrating to follow.

The magic is to recode it to 480p using better settings than whatever was used when YouTube was transcoding the source to the different bitrates.

The incantation used looks like:
ffmpeg -i inputfile \
  -vf "scale=-1:480" -c:v h264_nvenc -crf 23 \
  -c:a copy \
  outputfile_480p.mp4
The only reason why I thought this was viable was that the encoder could make use of the NVIDIA graphics card that Eileen-III had (RTX 4090). I didn't try to encode without the h264_nvenc option, seeing that using it meant that it still took time to re-encode the video part.

``Why not just use the source resolution/bit rate and downsample?''

Well... it's slow and doesn't do as good a job as re-encoding. There's also the side issue of avoiding the integrated graphics card [doing the decoding when I'm watching it] from grinding through too many pixels only to discard more than two thirds of them to fit into 1080×608, and end up with a blurry mess due to the lack of access to the kinds of advanced filters that re-encoding can provide.

------

The last thing to bitchtalk about is the trend of ``oh if you see em-dashes in a text, it is 100% AI generated''. Related to that is ``if the AI detector detects that a paragraph of text is AI generated, it is 100% correct''.

On item 1, that's just a lazy way of looking at things. I mean, come on---if you look at this blog, almost all my posts have em-dashes rendered in. I use them extensively, though to be fair, I don't actually type the emdash as is---I type it out LaTeX style as ---, and rely on my pretty-printer to render it as an em-dash.

Which segues into item 2. It seems that ``AI detectors'' these days seem better at estimating the quality of a piece of writing with respect to grammar and diction than to truly ``detect'' the use of [generative] AI.

What I am trying to get at is, just because ``you'' suck at writing doesn't mean that any piece of writing that doesn't suck is ``generative AI'' just because ``you'' cannot write well enough. And if life in the modern world is anything to live by, is that anyone who points fingers and claims that someone else is displaying the qualities consistent with some thing of meta-variable-X, it is more likely than not a projection of the accuser who actually is the thing of meta-variable-X.

And that's about it for this update. Till the next one.

Friday, April 04, 2025

Musician Earplugs

Response to a post on Flute Forum about visiting an ENT for hearing test & exam, and asking about suggestions/thoughts on earplugs:
Since you are going to the ENT, I suggest getting a referral to an audiologist to do a proper mould of your ear canal for your earplugs. At least in my part of the world, the person making those moulds for earplugs and the doctor are not the same people.

Consider getting one where you can change the flat-frequency response filters. I use the -25dB ones when playing piccolo and high dizi, and they work well. I think there's also -10dB and -15dB as well, but I've not used them personally.

Usually only the right ear needs the heavier protection, and that changeable filter set up means that you can tweak what you use on your left ear if you are finding it tough to hear through it with the same -25dB filters.

Speech is always a little harder to understand when people speak normally, because you are attenuating them by at least 10dB, roughly the same difference between whispering and talking normally (apparent loudness).

Hope these help!
That last part is something that I only realised recently, when Elicia (who plays the sheng) was trying to talk to me in a whisper when I had both ears shoved in with my -25dB musician ear plugs---I couldn't hear shit. Because a 25dB difference is akin to the difference between a whisper and a shouting match, and so when she was whispering, I definitely couldn't hear shit.

Interesting how it sometimes takes a little real-world experience and thinking in order to realise something.

Saturday, February 22, 2025

Science... Again?

In response to Acoustics Research is Insufficient by Jeff Dening on the flute forums:
My day job is tangential to research, and I appreciate the effort you've gone into trying to explain this so that it is easier to understand/appreciate by the community here. Thank you!

I think the central thesis can be summarised as "confusing the map for the territory".

Science provides a guide into the natural world, but as all guides go, they have specific assumptions (implicit and explicit), and are particularly narrow in what they test, and the definitions they use for certain things.

Science never delivers "truth" with the kind of absolute certainty that people yearn, yet they keep trying to make science say something it really doesn't.

Here was where I wanted to say that people with a wrong map will just shrug and then adapt to the territory they observe, but we've heard of people who just blindly follow their GPSr and drive off half-finished bridges, so... 🤷

That said, the stakes are a tad lower in music (bruised egos and busted wallets notwithstanding), but this phenomenon of misinterpretation of what science does and does not say is a real problem elsewhere in society.

The other thing that I would add is that I am certain that there are definitely very good, well-controlled science going on fo the acoustics of flute. However, it is the makers themselves who have that -- after all, to know the behaviour of a change in one of their parameters for their flute means that they can fine-tune and control the quality of their instruments (part of R&D). But good luck trying to get hold of that information -- it _is_ a trade secret after all.

Maybe having an article written by a respected member of the community might make it more palatable for folks to grok things.
To me, this is an actual problem. Science education back in my day had the following progression (from primary all the way to junior college):
  1. List of ``scientific'' facts;
  2. List of equations primarily centred around Netwonian Physics;
  3. Baby's first quantum mechanics theory equations (photoelectric effect);
  4. Special relativity (Lorentz factor corrections)(?).
Now, to be fair, I have a strong physics slant because after secondary school, I didn't touch chemistry nor biology as a whole. But even then, the kind of ``science'' that we learnt was still focused on remembering what was the orthodox (or ``right'') model/equation to use to solve the often classical physics-based problems.

Inequalities hardly play a role. Not as ``certain'' as the way regular equations can yield numbers (first time that an infinite number of solutions can appear). Field equations are a no-no---matrix and tensor math was not part of the syllabus.

But more importantly, to keep within what can be effectively ``taught'', the developmental process from one model to the next was not as heavily emphasised as the ability to read a story problem, pick the right set of equations, and run the algebra to the end.

While it looks like this is a sign of ``good'' education (everyone can cite the four kinematics equations [of classical physics]; huzzah!), I think that it is a central reason why we have this misinformation crisis that is still ongoing.

When science does not have the ``and a new model came up because they found that the existing one couldn't explain everything'' part emphasised, there is a tendency for people to doggedly believe that science is infallible, or more precisely, the scientific ``facts'' that they learnt back in school some twenty or more years ago was the most correct, while being unsystematically suspicious of all the ``new'' science that is showing up that contradicted their previous assumptions.

Spoiler alert: almost all new science must contradict some aspect of the previous assumptions as that is how the old models (and facts derived from said models) are shown to be incomplete (i.e. wrong outside of the original circumstances, but are starting to become important), or downright wrong (i.e. replication attempts failed, or when data fraud is detected).

Math education is a little less susceptible to that, because at the junior college level, proofs are introduced into the picture. And I don't mean the ``trigonometric proof'' style of pattern matching and transformation in between equations---I mean using an actual proof technique, like mathematical induction. But it still fails in some way because these things came about really late in the math pedagogy---most people operating in society are probably stuck with secondary school math (i.e. differential calculus) at the very most.

Tangents aside, all that unwavering faith that the science [``fact''] that one knows is troubling---that's not the mentality of someone who understands that science is merely the current best known approximation of reality, and is not the final word the way the Bible is for spiritual matters.

And that's the battlecry: ``Defund the ${scientific-foundation-of-the-week} because ${pet-peeve-of-the-week} contradicts ${older-scientific-"facts"} and is therefore wrong!''

Frankly, this is just one of those days where maybe having a benevolent dictator instead of giving people the voice is felt as the right thing to do.

Damn. The weekend barely started, and I'm already tired as hell.

Till the next update.

Saturday, February 08, 2025

Unbotched(?)

Ah... okay, let's start with the good news: Ma's machine is finally working. The updated bill of parts:
DescriptionPrice
Gigabyte B760M DS3H AX DDR4 + Core i5-14400 (μATX) bundleSGD 492
Seasonic PRIME GX-650, 650W 80+ GoldSGD 250
Samsung 990 EVO Plus NVMe M.2 SSD 1TBSGD 159
TotalSGD 901
In short, I hardly saved any money compared to what I previously spent to build the previous version. What I didn't save in money, I saved in some time with data migration. And the amount stated here didn't take into account the taxi fare, and the additional thumb drive that I had to get for Xubuntu installation because my old ones were broken.

So, what went wrong?

I think that m.2 slot with the ``thermal guard'' is borked. In a previous post, I talked about how I broke the NVMe drive that held the operating system of the previous machine. This time, I was smart enough to remove the stickers and what not before slotting it in. It all worked, that is, until I assembled it back together and put it into its stand.

In which case it did not work.

That was back in 2025-01-24, the same day I bought the new SSD.

Due to Chinese New Year nonsense, the machine had to be put away during the visitation season, and it is only today that I could bring myself to do something about it. I tried turning it on as is, hoping that it settled long enough to self-fix---no luck. I reopened everything up, and switched out the SSD to the other m.2 slot without the ``thermal guard'', and what do you know, the fucking thing worked.

Hallelujah!

There's one other oddity left though---the machine can handle cold boots. But throw in a reboot, and it gets stuck in POST.

Why is it so, I haven't the foggiest clue, and am honestly tired af to deal with that shit. I'm just happy that Ma's got a machine back where she can use to watch her streaming video, where the whole privacy situation is more controlled than the household ``smart TV''.

------

Grim Dawn has had quite a big mechanics update---there is a new innate ability to dash in the direction of facing via a key press (defaults to the spacebar with the keyboard+mouse control scheme), and the mana/health potions have been replaced with spells that have time-out instead.

Oh, and they have a new expansion planned too.

I just want to point out that Grim Dawn has been around since 2016, and they are probably rivalling Terraria (2011), and Minecraft (2011) for ``labour of love'' status.

The funny thing about Grim Dawn is that each time after the first playthrough that I look at Path of Exile or more recently at the early access of Path of Exile 2 and wonder if I want to get onto that bandwagon, I just turn back to Grim Dawn instead.

Now, prior to this, my guilty pleasure was Torchlight II. According to Steam, the last time I played it was back in 2018. I suppose I did play the crap out of the game, even buying it for folks too. No idea why I stopped---am going to load it up again to give it a go.

------

Well, apart from that, I must add that I have been having fun with Eirian-VI. Some important points that I learnt:
  1. Colour mode works only for native e-book formats (the one I used was .mobi);
  2. Comics purchased from Amazon that refused to be installable on the grayscale Kindles could be downloaded to the Colorsoft;
  3. PDFs, when converted by Calibre directly to .mobi, look like shit unless each page is rasterised;
  4. Use pdfcrop, then use -sDevice=pdfimage24 in Ghostscript before converting to .mobi via Calibre yields the best viewing result (metadata is still shit).
So with all these in mind, do I recommend the Kindle Colorsoft?

Sure, why not? The fast refresh rate, and generally improved responses are always a plus, as is the high resolution that is available. Colour availability is a bonus, and for the most part, shouldn't really be an issue. Most people do not follow my predilection of using PDFs for readables---they tend to use EPUB, and rely heavily on the Kindle ecosystem (i.e. using ``Send to Kindle'' to do the necessary conversions as opposed to man-handling stuff with Calibre). So for them, they are less likely to face the kind of issues that I am.

And that's about it for now. Till the next update.

Edit: So I found out why I stopped playing Torchlight II---I literally ran out of things to do. The gameplay was fun for its time, but eventually the strategic depth was just insufficient to sustain more than the 315+hrs that I had put in across the 4 different classes. Grim Dawn will have nearly 45 different classes that come from pairwise combinations of soon-to-be 10 masteries, and then there's the whole sub-field of Devotion.

Monday, January 20, 2025

Botch Up

Man... I really botched it. So I went to get the parts needed to rebuild Ma's computer, and here was what I got:
DescriptionPrice
Gigabyte B760M DS3H AX DDR4 + Core i5-14400 (μATX) bundleSGD 492
Seasonic PRIME GX-650, 650W 80+ GoldSGD 250
TotalSGD 742
So problem #1 was spending SGD 250 for a new PSU. Granted, this was supposed to last for 12 years compared to the 4 for the original, so it's sort of acceptable (which explains why I bought it).

What I really botched up was the installation of the NVMe drive (the re-used Seagate Barracuda 510 (256GB)).

I installed it into the mobo, and put on the heat spreader, being careful to remove the liner on the cooling pad, but forgot to remove all the bloody stickers on the chips on the drive itself.

So it all booted and worked for a glorious five to ten minutes, before having drive read fails due to the chip being scrambled from the heat.

🤦

Now, that just means that the boot drive is gone. We have a spinny rust left, and that had been mapped to /home in the original machine. So it's just a matter of adjusting the mount-points, and loading a new operating system into it. Easy peasy, right?

Except all my USB thumbdrives are so old that they cannot be reformatted properly by Rufus to create the necessary boot medium. There were write errors, and other bullshit.

🤦🤦

So I was just this close to finishing the build, but thanks to my initial botch up, it is snowballing away. To continue on the plan, I will need to get a new USB thumb drive (I should be doing this anyway), and depending on how I want to play it, maybe another m.2 NVMe SSD drive for boot (this is costing money, and I'm already close to hitting the original SGD 999 amount spent, despite reusing parts).

But I'm likely to do this not over tomorrow through Thursday, because I have plans™.

That's all [that I can write here] for today. Till the next update.

Friday, January 17, 2025

Junker Flute

In response to an anonymous participant on Flute Forum seeking affirmation for using a ``cheap piccolo off Amazon'' for one ensemble class while being a flute major:
Friend, do what you have to specific for your circumstance. I sure as hell won't judge you.

Just because almost everyone condemns "musical instruments off Amazon" here doesn't mean that you cannot buy from there and use it.

``Buy a second hand {insert-flute-brand-here}!'' is also another common call for action.

They aren't wrong, when looked from the perspective of longevity of use of the instrument.

But time is money. Looking for a second hand flute (or piccolo in your case) can take time, and a bit of luck, compared to the guaranteed delivery dates from Amazon. And sometimes, you just need it right now, and you also don't know if it is something you want to spend the extra effort for right in the beginning for commitment.

As long as you are well aware of what you are buying, and the limits of what these instruments can and cannot do, I don't think it matters. Just leave your ego at the door and enjoy the music making process.

If you are playing it often enough that the flaws are more obvious to you, and are hampering you actively, you will know that you definitely need to get a better instrument, and thus should spend that time/effort to get something better.

As some wise person on the 'net once said: ``I'll buy a cheap tool to start with, and if it breaks, it means that I use it often enough that I should get a better one.''

And for the record, I survived two years of marching band in University playing on a 200-dollar Amazon flute. I sat directly in front of the band director, and he has never complained about intonation nor dynamics from me.
Just a little back story---actually true on the bit on playing in the Kiltie Band out in CMU on a 200-dollar Amazon flute. I first bought a C-foot flute, and later on, a B-foot one. The C-foot one went with me to march into the snow and what-not, and it did surprisingly well, given its pedigree.

It's not a good flute in terms of maintenance for sure, with even Chara voicing out when she returned them to me after I loaned it to her to practise flute adjustments as junkers of little consequence (I have Azumi and Aurelia by then, so the Amazon flutes are effectively retired).

But between no flute and cheap ``junker'' flute, sometimes the ``junker'' flute is the better option. I won't say much about dizi, but for concert flutes, the dimensions have been well established for a century by now, and anyone with half a decent manufacturing process who can follow the schema can make a flute that plays... well like a flute.

Not like a good flute for sure, but definitely as a flute.

And I do not disagree with everyone else---junker flutes are not something one wants to hold on to as their ``forever flute'', but they can be a cheaper gamble than tossing three times more plus extra time to get a higher quality starter flute, at a moment in time where either one is desperate to have some flute, or when their commitment to a flute hasn't been confirmed.

That bit of leaving the ego, also true. Musicians are among the most egotistical people on the planet, and that's fine. And sometimes that ego gets in the way of their problem solving abilities. Knowing when to hold that ego, and when to drop it is something that everyone (including musicians) will need to learn at some point.

------

Anyway, now marks the start of ``i'm-forty-bitches'' week. Naturally, it begins with some messed up upper respiratory tract infection.

🥴

Balls.

Till the next update.

Saturday, December 07, 2024

See? This is Why You Should Save Your Work, No Matter How Temporary

See, the one time I didn't save an intermediate copy of my blog entry on Q10, was the one time Q10 decided to crash and take away the five hundred words.

Well anyway, I'll just speedrun the contents and skip the nuance.

I am/was down in the dumps; week's been long with having to deal with too many people; I hate myself but seeing that past-me gave present-me a chance to thrive, I will extend the good deed to future-me and not do anything utterly stupid; I think I'm a problem-solver type, and suspect that am not ``lovable'' since there isn't anything seemingly emotionally/relationally related to being a problem-solver; Love Hina is sad and isn't some taboo erotica that ought to be banned back when it was still in circulation.

Okay, and now on to something that wasn't wiped out in the crash.

I just got a carbon fibre instrument stand for The Big Flute. The difference was... it was 0.6 kg for the new stand versus 3.2 kg for the old one, all without feeling unstable as fuck even as the 4.6 kg mass of The Big Flute was resting on it. And that does not take into account the more compact for factor as well (tubes with some seemingly 3D-printed joint-blocks and neodymium magnets for holding things in place).

I had also sprung for a carbon fibre case for The Big Flute to replace the current wooden one. The mass difference there should be about 2.3 kg versus 5.7 kg. This means that the total mass of things that I need to lug around is now just 6.9 kg, versus 13.5 kg that I am currently doing for instrument + case + stand. It doesn't sound like much, especially considering that the new carbon fibre case + stand costs nearly a quarter of the MSRP of The Big Flute, but when the volume is taken into account, it is just that much more compact that it makes it worth the while.

Because with this new set up, I can move more easily, without ever feeling nor looking clunky. And this can open up new avenues, especially if something else pans out.

But the case isn't coming in till 2025-02 or so, and we'll just have to wait till then.

Meanwhile, I don't really have much else to talk about, so till the next update.

Monday, September 16, 2024

QCUE Pairing Issues Resolved?

That was... harrowing.

tl;dr: If QCUE isn't willing to pair via Bluetooth, even after factory resetting, then the only way out is to drain the batteries of the two earbuds completely, shove them one by one into the case to check for connectivity, before trying to pair again through the ``normal process'' of holding the back button with the case open till the blue-light blinks.

Context: I bought me some Bose QuietComfort Ultra Earbuds (QCUE) a few months back on a whim to replace the now-broken third pair of the Bose QuietComfort 20 noise cancelling in-ear headphones (QC20). The key difference was that the new QCUE were wireless, as compared to the QC20.

The reason why I said ``on a whim'' was because I already lug around a QuietComfort 35 Wireless Headphones II (QC35II) to replace the QC20, which is wireless and does its job well. Except for the fact that in SIN city, the high humidity and high temperature meant that wearing these over-the-ears headphones for long periods of time was... uncomfortable at best. I still use these for all the various teleconferencing meetings due to the excellent sound isolation (we used to call 'em ``Skyping'' back in the day), but very rarely use them for casual music listening on the go.

And thus, the QCUE is a thing now.

I recently switched phones to the Xiaomi 14 from my Xiaomi 12. Had I a choice, I wouldn't even bother, but since the replacement of the non-working screen of my Xiaomi 12 back in late 2024-06 (was it only less than 3 months ago?!), I knew that the days of my Xiaomi 12 was numbered. Thanks to the myriad of 2FA and other ``app-fication'', the stupid ``smartphone'' has become a piece of critical equipment. As for my Xiaomi 12, the rear-backing was starting to show signs of the glue [from the repair] failing, and I did not want to repeat the same scramble for a fix, this time from potentially greater failure.

And so I went to get that replacement.

``MT, you're long-winded--get to the point!''

I'm getting there. I migrated the information and apps from Xiaomi 12 to Xiaomi 14 (bye bye Geocache Calculator and Barcode Scanner, no thanks to Android 14 and beyond auto-blocking apps targeting old-enough versions of Android).

And then I tried to reconnect my QCUE. Which was what prompted the first statement.

I tried everything---clearing all the Bluetooth lists, resetting the QCUE, resetting the phone's network connections, factory resetting the QCUE, re-do all the steps a few more times.

It didn't work.

That is, until I saw this innocuous comment:
I got the same issue and got to fix it by draining the whole battery of the earbuds, waiting about half an hour more and then charging them again

---Tyras25
Well, that's the one thing I hadn't tried, and so I left out my QCUE for a day and change. It took much longer due to not having any existing connection to tap into to drain the power faster.

And when I finally found that both earbuds are completely drained of power (can tell because the welcome ``vrroomsh'' sound was missing when the earbud was applied to the ear), I pencilled the three contact points per earbud, and put each earbud one at a time into the case, to ensure that it was in good contact before putting in the next.

Then I applied the pairing process with my Xiaomi 14.

Whaddaya know. The pairing was successful!

I did the same for Eileen-III, same.

Now, I still need to verify that the QCUE can actually receive the sound signals, but I cannot do that just yet due to the earbuds being completely drained of power.

But having the pairing working is already a great win.

As a side note, there was also an unknown BT 600 device ID that was emitted by my QCUE---I wonder if this is significant in any way about why the pairing was jank.

And apart from the nugget that saved me, here's the rest of the thread which has other useful information. For how long Reddit will be around for such things to be in existence, is something that only time will tell.

Till the next update.

Friday, August 09, 2024

National Day Grab-bag

Okay, it's a public holiday today celebrating SIN city's independence. That's excellent.

Naturally, most denizens in SIN city that are able, have found ways to head out of country to enjoy the ``free'' long weekend. As for me, I have an even longer weekend due to the extra days of leave that I took for yesterday, and the upcoming Monday.

``But MT, aren't you in the middle of a high-key period? Why the sudden long leave?''

The leave... was planned before any of these things went bananas. And it was roughly when I first learnt that Cat Quest III is released on 2024-08-08. Naturally I had to take leave to play it!

So far, Cat Quest III hasn't been disappointing. True, it is no Elden Ring, but notice that I've given up on Elden Ring, whereas I am still having fun with Cat Quest III.

The primary purpose of a game is to be fun, so as to encourage the key reason for its existence---play. Any game that doesn't encourage play isn't really a game anymore, and should be called something else altogether. And what constitutes as fun is highly subjective, which is absolutely fine---everyone's life circumstances are different. Some things that one finds fun (like playing a musical instrument or programming a computer) might be a job/chore for another (think professional musician/music teacher, and software engineer), but that's diversity and freedom of choice right there.

Speaking of games, I finally completed the last two achievements of Faerie Solitaire, which involved:
  1. Raising all 32 pets to adult forms; and
  2. Completing all Challenges.
It only took me ten years to finish up those two, and after that is done, I promptly installed Faerie Solitaire (Remastered) to have this little game with the updated features (graphics and general quality-of-life updates) set up.

Talk about addictive.

And while we are talking about old games, Jupiter Hell Classic was recently announced to be available on Steam soon. It's really DoomRL v0.9.9.8 in disguise, reskinned heavily to avoid the ZeniMedia Doom IP. I stopped caring about ChaosForge after realising the KK was now beholden to his shareholders instead of the fans, and have not looked into the ChaosForge Forum ever since that day back in 2022.

And no, I haven't really gone back there. And I don't think I will head back there. I never wish KK ill, and sincerely hope that he will continue to succeed. It's just that I will no longer play an active part in his endeavours.

Will I get Jupiter Hell Classic when it is released? Maybe... for old time's sake. It'd be nice to see Nyarlaptoptep's Boots once more, as well as the Mother-In-Law, two items that I have had a hand in naming in one way or another.

And while we are on the old stuff, WordStar 7 has seen a release by science-fiction author Robert J. Sawyer, as noted in his blog entry. WordStar is among the OG of word processing---they came at a time just between the typewriter, and the advent of WYSIWYG word processing, roughly when people were looking for more out of their text processing beyond full-screen text editors.

I sadly never had the need to work with WordStar, but I do enjoy me a good text-mode word processor as a concept. I'm part of that ``weird'' group of people who prefer writing in as distraction free a manner as possible, which was why something as arcane as TeX or the much better successor LaTeX appeals more strongly to me than good ol' MSWord (or these days on Eileen-III, LibreOffice Writer). My writing tool of preference these days is either good old vim, or Q10 on Windows.

There's just something about the 80-character wide monospace font form factor that makes the writing feel more fluid than trying to bang something out in a GUI with proportional fonts, and twiddling with formatting every which way, even though almost all word processors actually have semantic styling defined from the get-go.

But back to WordStar. The modern user may be put off by the need to run this old DOS program in one of several DOS emulators (Sawyer's 680MB package has all these sorted out, while I already have a DOSBox-X set up on Eileen-III), but I think they will be really put off by the entire keyboard interface. The semantics are quite foreign to the modern user as the interface was designed for a time where the keyboard standards weren't standard yet.

The ``WordStar Diamond`` is easy enough to get used to---it's like WASD, except it is ESXD, with control held. It is slightly less arcane than vi's hjkl movement, and thus more tolerable.

The problematic part is text selection (``marking blocks'' in WordStar lingo) is persistent. This means that the text can be marked [in a block], and other things can happen, while the marked block remains marked. So, if one wants to replace the selected text, it is important to execute a block-cut or block-delete before typing in the new text, otherwise the outcome is... not as expected.

I've had my fill of this back in the old days of working with the IDE of Turbo Pascal and Turbo C/C++ from Borland International. They followed the WordStar semantics, and it was usually a pain to turn that option off, mostly because of my scenarios of using them at programming competitions where the hardware and environment are provided for by the organiser.

It's not hard to get used to it, but it does get old pretty quickly.

Old software aside, Beyond Compare 5 has been out for about a month now. I love this file comparison tool---it's multiplatform, it's fast, it can compare stuff over the network, and the price is always reasonable for the functionality it has. The big thing for me to upgrade (for free in my case since I bought Beyond Compare 4 within the window for it) is the ability to have word-wrap enabled when doing text comparison. Oh, it can also handle table comparisons better than before---no more single-sheet preparation like before.

There's also the last bit of switching back to Mozilla Firefox from Google Chrome for my ``serious'' web applications (i.e. logged in stuff that companies would love to use tracking on) due to the shitstorm that is Manifest V3 and how it nerfs ad-blocking. The modern web is not usable without ad-blocking---everyone seems to want to load as many advertisements as they can on their puny web sites. On its own, it's not a problem per se, if these advertisements are tastefully done. But that has not been the case for the better part of a decade now. Apart from the technical problems of increasing the attack surface area, these advertisements (full-blown multimedia extravanganza too, for some of them!) consume precious network bandwidth, making that gigabit Internet connection trudge along slower than the bad old days of dial-up.

Do I recommend switching? Sure... it's pretty painless. But it's still up to individual choice whether to do so.

And anyway, I think that's about it for now. Back to Cat Quest III for me.

Till the next update.

Wednesday, May 22, 2024

Cleaning dizi

Damn that was tiring, but fulfilling.

Today's a public holiday, and I spent a few hours in the morning till the early afternoon cleaning my dizi. I used a damp microfibre cloth to clean the exterior, then used damped cotton buds to clean the embouchure, tone, and vent holes. For those dizi that had joints, I took them apart at their joints, and cleaned out the old cork grease that I had put on before, rotated the connecting point repeatedly enough for the joints to grind out their non-round parts, cleaned that out, before replacing with a new thin layer of cork grease [from Yamaha].

``But MT, why did you purposefully made the joint grind itself smooth when we don't even do that for any other joints for concert flutes and the like?''

See, the problem with the dizi is that unlike the concert flute, the tolerances of the joints are not as tight. There is also an innate eccentricity due to these joints being attached completely separately from the boring through of the bamboo. These joints are also well-known for seizing up partly due to the eccentricity, and partly due to the corrosion. So, what I just did was to use the joint against itself to attain a more smooth/rounded outcome.

Of course, the proper way is to have a mandrel and shape things up carefully, but considering how many different sized dizi I was working with (around 27), that would be impractical.

As for the [Yamaha] cork grease, I found that it had the right balance of tack (i.e. stickiness), and lubrication that allowed the metallic parts of the joints to smoothly slide past each other. A smooth joint movement is important because it allows ease of performing fine-tuning at the 0.5 mm resolution.

If the joint sticks, tuning is hard, and there may also be leaks, which is bad.

My older dizi had much cleaner joints, since I had done the first deep clean before, while the newer ones had to undergo quite a bit of that grind-clean-repeat process. But the results are often so much worth it, especially that whole ``joints not seizing and are butter smooth for tuning purposes'' aspect.

After I had packed them away, I realised that I didn't do the same for the two or three xiao that I have lying around. Ah well.

The last thing to add about this is that I found that my latex glove size is apparently an S (85±10 mm). In-teresting. The context for the latex glove was for me to protect the broken skin that my fingers have from the occasions where I needed to use 70% Isopropyl Alcohol while doing the joint cleaning.

------

In other news, I got my head shaved again. It was nice.

I restarted Blasphemous from the beginning again, and was doing much better with the rough guide on the sequence of areas to go through, as opposed to the breadth-first search method that I was using earlier, where I did not commit enough to an area to actually clear it completely and gain the necessary benefits.

Cannot remember what I last talked about for my Minecraft adventures, but I have built up a larger platform for my nether hub. I've figured out where the general places of interest in the overworld should be, and need to lay out the new starting points for the rails to follow that. The walls have been built up, but I haven't capped it with a proper roof, which resulted in many zombie pigmen piglins falling in and causing havoc.

I think that's about it for now. I'll probably play a bit more of Blasphemous before turning in for the night.

After all, tomorrow's a work day.

Thursday, May 16, 2024

...and Before OP Trashes The [Troll] Post

In re a post on Flute Forum about the difference between the concert flute and the Chinese flute (笛子):
Okay, assuming you are not trolling, both concert flutes and the dizi are from the same general family of edge-blown aerophones.

I won't talk about the concert flute because we're in the [Concert] Flute Forum.

The dizi is a member of the simple system flute, where pitch is controlled through tone holes that are covered by the fingers. Unlike most simple system flutes, the dizi stands out with the addition of a membrane hole that is affixed with a membrane derived from the interior of the reed using a water soluble adhesive.

This membrane, when affixed with the right tension, adds a characteristic buzz to the tone that gives the dizi its robust character as compared to other flutes of comparable size.

The dizi's relative tuning with itself by the tone holes have two main families, one being the diatonic scale, and the other being the traditional one, which is differentiated by the position and size of the fifth tone hole as counted from embouchure hole end first (diatonic has it shifted slightly closer embouchure hole-ward, while traditional has a more even spacing).

Dizi are often made of bamboo, and can come in a wide variety of sizes/pitch ranges, from around alto flute range all the way to garklein recorder range.

No matter the size, the dizi's effective range is usually 2 octaves and a second, and sometimes hitting 2 octaves and a sixth.

The most commonly seen dizi are usually nearer the piccolo range, or the alto recorder range. More modern [Chinese orchestral] pieces may use additional dizi nearer the concert flute range.

The function of the dizi is usually quite different from that of the concert flute -- its strident but sweet tone usually means that it is often one of the leading melody lines in musical pieces.

All flute techniques are applicable to the dizi, with chromatic runs being among the harder things to pull off on the dizi.

Some advanced techniques on the dizi are impossible to play on the concert flute -- like 飞指 (rapid sliding of the the fingers up and down along the tone holes), and using the closest tone hole as an embouchure hole for a haunting effect while using the rest of the tone holes for pitching.

Even though the dizi is usually cheaper than a concert flute by monetary value, finding a high quality concert flute is ironically much eaiser than finding a high quality dizi.

That's because a high quality dizi requires bamboo of high density, and that material is getting increasingly harder to get due to increased global temperatures.

Bamboo is a fast-growing grass, and the higher the overall ambient temperature, the faster it grows, leading to decreased density.

Hope this helps!

Monday, February 12, 2024

Slept for 12 Hours...

Ah Monday. Public holiday in lieu of the second Chinese New Year public holiday falling on a Sunday.

A break day. A possibly ``true'' break day.

The special item that was presented yesterday at both the Chinese worship session in the early morning and the English worship session in the late morning was a hit. I listened through the playback for both renditions, and it does sound much better than I thought it would. The G 梆笛 soared without sounding like a dick, and I honestly cannot tell if it's because of my skill (what skill?), or the fact that I'm using some top-grade 笛膜 that keeps the sound clean. Feedback has been pretty positive to me, from those who actually knew me in church, and apparently even those who didn't know me had positive things to say to the music coordinator, who played with me in the item on the piano.

A win perhaps. Glory to God.

Now that that is done and dusted, I'll need to listen carefully to the various recordings to write it down. I'll probably publish it at my compositions page.

One item down, another two or three more to go. 😬

------

Special item aside, I just crashed out for twelve hours straight once eight o'clock came, waking up every three hours just to use the toilet. Woke up at around eight o'clock this morning, give or take an hour, and just chilled out for a bit, pondering about nothing even as I am catching up on stuff on YouTube that I have missed out from the past week.

I discovered a new tool: KLOGG. It's a log explorer, designed apparently to load and search through extremely large files the way computer logs tend to be. I've not really deployed it anywhere yet, but it is definitely something to try. My only complaint is that it runs a GUI, and there's no TUI for it, but that's really minor, considering that I use Beyond Compare from Scooter Software, which is also GUI-centric with no TUI.

I have tried my best to make vim play nice with extremely large files, but it's still a crapshoot after all these years. There are other tricks that allow one to work with extremely large files, but they often involve messing around with less, grep, tail, and head.

Apart from that, I've been roaming about from one game to another on Steam, switching between Boltgun, trying out the Turbo Overkill demo, a bit of Vampire Survivors, and The Great Ace Attorney Chronicles.

I'm also half-tempted to finish up the last bits of math to complete the really really simple LED-1 remake in PICO-8. But... urgh... math when I'm trying to chill the fuck out. Eww... (hahaha)

Aaaaaaaaanyway, I suppose that's all for today. I'll go... do something... I think. Maybe game more...

Till the next update.

Monday, January 22, 2024

Another Trip Round Ol'Sol

Woah, stupid o'clock! Also, damn I'm officially yet another year older! Frankly, apart from having some fancy sushi for lunch, I don't really have any other things planned for the rest of the day. The old standby is, of course, to find some bar/pub to sit at, and read some book.

Maybe I'd just put on a face mask and go for a walk out on Orchard Road. But thanks to the fifth COVID-19 vaccination (Spikevax this time), I'm on a strict ``no physical exertion for two weeks'' edict, which probably includes this walk as part of the prohibition.

I suppose an explanation is [sort of] in order. I had planned to take leave from 2024-01-19 till 2024-01-23 (inclusive) just to chill out and do whatever the hell I wanted as part of my birthday thingamajig. Then MOH was like ``dude, you're due for your fifth vaccination''. I don't know about you, but there has been some spikes of COVID-19 cases here and there over the past few months, and the last time I was hit with COVID-19 was back in September, which was more than three months away from well today. So I was definitely interested in taking the booster shot just as an insurance for both me and my two aged parents, especially since it was ``free''. The only problem was, when?

A long story made short meant that 2024-01-19 was the best available time. I'd do earlier, but there were no free slots on Saturdays (not taking any more ``unnecessary'' leave if I can help it), and doing it later will run into some seriously hard-to-deal with issues (special item in church, Chinese New Year proper, and quite a few work-related events that need my presence).

And so, my Friday morning was burnt.

My Friday afternoon went away as well when the music coordinator in church had to reschedule a work-together session for the special item that was supposed to happen on 2024-01-14. Again, Friday was the only free time, and so went the rest of the day. To be fair, not all of the afternoon was spent on working out the special item---due to the big rain, I ended up staying for another few more hours to chat.

Come Saturday, I was starting to nurse the usual lethargy from the booster jab, while having to consume brain power doing transcription of the recording of the work-together session that happened the previous day. Then there was rehearsals for TGCO in the evening.

Sunday, I was just dead. I had taken paracetamol for Friday and Saturday to sort of control the side effects, and I had been running on pure spite (a.k.a. ``too angry to be sick'') for the two days' worth of events. That led to the crash with me feeling both feverish and too drained of willpower to drag my carcass to do anything. I slept for nearly twelve hours, and felt much better after that.

And that's three out of my five days of break that was spent just pulling through the side effects of the vaccination, while still doing my best to keep up with the obligations and responsibilities. What a fucking mess...

------

Previously, I talked about how I fixed up the tables in my personal website to have ``sticky'' headers. I also mentioned about how I had to sacrifice the borders for the header due to rendering bugs in the browsers (I'm too lazy to find and link to it: I hereby invoke ``trust me bro'').

Well, one of my subordinates found a workable solution for this (we needed to do something similar for a work item). The gist of the solution was to eschew the automatic border rendering and border-collapse: collapse;, and to manually handle the borders, specially drawing only the left and top borders for all cells, except for the bottom-most and the right-most, where they will also draw the bottom border and the right borders respectively.

It worked, in a way. It created the new caveat of not allowing any other border-related CSS styling for tables, to avoid fucking up the manually designated set up.

In my case, I had to change the orientation, drawing only the right and bottom borders instead.

``MT, why so contrary?''

Because my tables have togglable hidden columns. This means that the detection algorithm for the right most column (i.e. the last-child of the <tr> tag) will fail should that column be hidden. I had tried to use some other types of CSS-selectors to pick the last visible column through class exclusion and what-not, but nothing beat the simplicity of just changing the orientation.

And so, now the tables in my personal website have the full border treatment, be it the header cells, or the regular body cells.

Huzzah!

------

AGDQ 2024 came and went. I watched nothing live, but that is to be expected. The VOD list on Reddit was always cool, and with it was a great way to catch up on the coolest speedruns that made it to the Big Stage.

------

Anyway, it's late. I'm going to crash out. Till the next update.

Tuesday, January 02, 2024

First Grab Bag of 2024

(No, I did not write this at the time that this was published. I deliberately delayed the publication to ensure that the quick summary stood alone.)

So the first thing that was on my mind was the realisation and general thankfulness that space is as big as it was. I know that there's a common Internet saying that goes something like:
Born too late for the age of discovery; born too early for the age of space travel.
And to be fair, I used to think like that as well.

Until I actually took the time to sit down and contemplate about the underlying reality.

Space is stupendously large. It's stupendously large to the point that the fastest known object, the photon, still takes a fucking long-ass time to get places. Space is also expanding.

But space has some terrifying as fuck objects that can, as best as we can understand it, obliterate us in as instant as it gets. The only way in which we are safe enough to observe these objects, let alone have the time and wherewithal contemplate about them, is from the sole fact that we are also magnificently far away from them.

Yeah, I'll just be thankful that space is stupid big, and that we don't have a good way of travelling all that distance within a life-time. Considering the amount of stupidity that the average person has given access to technology (see the car, the aeroplane, the computer, the Internet, and the peace engineered from strong international collaboration to actually preserving said peace), I shudder to think what will happen should we ever have such a capability.

------

In other news, Elden Ring was as frustrating as I thought it was, but paradoxically, it was also fairly fun. I suppose the ability to run through most dangers just to do sight-seeing is one of the plus points.

That, and the mindless grinding that one can do to farm enough runes other standard upgrade materials to ensure overwhelming power when going for boss fights. It's a FromSoftware game---I feel no guilt in being over-levelled to take on various big mobs and boss mobs. The world is gorgeous even though it is often quite twisted---there's that sense of forlorness without invoking the weird biomechanical style that is the speciality of H.R. Giger.

I think I have sunk quite a few hours in Elden Ring at this point, and I may switch over to something else just for variety. Maybe a bit of the new DLC for Vampire Survivors, which is still a damn fun game even after so long. HoloCure might be the best in breed, but that is technically a twin-stick auto-shooter, while Vampire Survivors is a single-stick auto-shooter, which means a different kind of fun.

------

I binged-watch the second season of SPY×FAMILY. I liked it. Unlike in the first season, this time the focus is more on Yor's alter-ego than that of Loid's. There was little to no emphasis on Anya's antics in school, which is fine from a pacing perspective. I wonder how the third season (should it come, but let's be real---SPY×FAMILY is too popular to not have a third season, especially when the source materials isn't exhausted yet) will go, and more importantly, I wonder if SPY×FAMILY has an actual ending instead of going on f-o-r-e-v-e-r the way One Piece or DragonBall does.

On another tangent, after delaying for so long, I finally started on Parks and Recreation. I'm still somewhere in the middle of season 2, and while Amy Poehler's character of Leslie Knope can be quite cringeworthy at times, the series sort of started to grow on me. No idea why.

------

In yet another tangent, I spent a couple of hours during stupid o'clock a couple of days ago updating all my Lilypond composition source files to 2.24.3. The astute would realise that Lilypond 2.24.3 has been out since 2023-11-19, so the natural question would be, why the delay?

Well, because the Cygwin version was only available rather recently. While the actual conversion was ``just'' an exercise of loading the relevant files into Frescobaldi and then running the conversion there, I needed the Cygwin version to make it scalable.

It's just much faster to go
find -type f -iname '*.ly' -print0 | xargs -0 convert-ly -e
followed by any manual adjustments needed (like fixing the format function to have #f as the second parameter) than to manually traverse the entire compositions directory and load each file by hand. It is also less error-prone.

Besides, I also have another Python script that allows me to auto-rebuild the output PDF just so that I can update the files available at my compositions page.

------

And I think I'm done with what I want to say for now. Till the next update, and oh, have a happy and blessed 2024.

Monday, December 25, 2023

Getting High in Church, and Elden Ring

Whew... that was something.

So let's start from the beginning. Back in April this year, I got Stella. There were some logistic issues and what-not in getting her, but those were eventually settled. In that same entry, I talked about serving in the Music Ministry. I played a simple hymn in a quick audition on Aurelia, and had a quick chat with the music coordinator, her husband, and the deacon in charge of the music ministry. It was a very casual chat, and they were just trying to see how I could fit in with the current structure of the ensemble, seeing that I was bringing in a flute to a piano-[electric-]organ-violin ensemble. I started playing every other week, then building up towards playing every week. I came in earlier to rehearse with music coordinator to get a better sense of the play style and the repertoire of the hymnals, and that was before we had the usual rehearsal with the playing group before the service itself.

I built up confidence over time with the ``feel'' of the hymns, and got used to the keys that I had not played much of since my Kiltie Band days (hi A♭-major, E♭-major, and D♭-major) on Aurelia. My goal was to play good enough to blend in with the ensemble---the music works with the congregational singing to praise the Lord, and therefore it was not necessary to stand out in any way.

That changed for these couple of days, namely for the Christmas eve service and the Christmas service. I pulled out Stella, and for the carols, just went high as needed, going 15ma as opposed to the usual 8va that I would play with Aurelia (hymns tend to stick within the grand staff, with the main melody staying completely within the treble clef, but largely having middle-C and lower, making it impractical for the concert flute to play as is without the 8va).

Stella was wonderful. I didn't play everything at 15ma---much of the carols were played at the usual 8va, but since Stella is 8va higher than Aurelia, it means playing in the first register. This is where Stella's access to B4 was amazing. I would sneakily play Stella at how I would play Aurelia, before bursting into full technicolour 15ma for that added sparkle and sweetness.

The feedback for the two days' playing this way was positive; the congregation apparently loved it, and had fedback to the music coordinator about it. Even Paul, who is self-declared not musically-inclined, finally made a comment of hearing me play and liking the lilting sparkle that Stella imparted.

Was it vindication? Vindication of what though... that I could control myself and sound sweet at 2 kHz range? That the MINI (not really a piccolo, but I just called it that to avoid a looooooooong discussion point) is the perfect instrument for this range?

Nah... I mean, my personal bar for myself is kinda high. While I have about 12 years of piccolo experience (damn it has been 12 years?!), it is the 31 years of 笛子 playing that is pulling much of the weight. I go ridiculously high all the time with my dizi playing, and I think it has conditioned me to handle the 2 kHz range with greater control than I would normally have without having done that.

But, at the risk of being smug, it is nice to be appreciated.

------

In tangential news, the bag that holds my special music stand finally ripped the seams beyond the 50% mark. I spent part of yesterday afternoon sewing that stitch back, before using fabric glue and some spare fabric salvaged from an old T-shirt to strengthen the seam more. It held out well today, but only time will tell.

Part of the reason why the bag gets ripped at the seam was the way that I'm carrying it. Previously, I would sling it on my right shoulder like normal, but I didn't like it. With the backpack gig-bag, it was always in the way whenever I had to switch the backpack to the front before sitting down at a seat on public transport. So I started to cross sling the music stand bag in the front, with the left shoulder being the higher holding part. And this is where additional stress from the poke-y bits of the folded up stand act on the seam on the bag, which is already supporting the entire mass of the stand (it's heavy) due to the position and design.

Having the bag slung in front allows me to just quickly switch my backpack between the front and back.

------

Aaaaaanyway, I talked about waiting to see if Elden Ring was on sale.

It was.

It had a 40% price drop, which was pretty large. I took the opportunity to get the Deluxe edition just so that I would have the soundtrack as well.

And since I was already buying something, I bought a few more other games from the Steam sale. But you probably don't care about this.

Elden Ring. Oh yes, fucker's hard... but it is actually still fun. There's just so much to see and do, and each fight is like a timed puzzle.

Don't get me wrong, this fucking game is hard, and there were some bullshit moments [when fighting the Tree Sentinel in the beginning area] that I thought was unfair (got trapped in the scenery, for crying out loud). Runes are used for everything, and dying does make one drop it all. Hollow Knight does that as well, but what Elden Ring made better was to allow that dropped runes be persistent between gaming sessions until either one picks up their dropped runes, or when one dies again.

The routing to the Boss that one died to in Elden Ring also tends to be straightforward, allowing resets to happen faster and not overly punishing the player to redo the entire dungeon to get back there.

The levelling up system is slow as molasses, but then I realised that it would be exactly like how I would want to create a game that tried its best to mimic reality while keeping the fantasy moments. The action RPG nature of Elden Ring means that apart from just the numbers, there is still that meta-game of actually being skilled at the mechanics.

And I like it. It scratches the kind of itch that rogue-likes have, but without the perma-death that can frustrate one who is a little more time-sensitive. The use of the numbers to replace the skill meta-game is interesting without taking the fun of mastering a gamme completely, and I like it.

A lot.

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

Wednesday, December 20, 2023

Am Getting Drinks

Another [work] day has ended. And this year, this 2023 CE, is now in its penultimate week.

I finally left last.fm after being there for nearly twenty years. The reason was simple: they were withholding interesting information based on my submitted data... yeah, fuck'em. My only regret was that it took me this many years to finally pull the trigger and leave.

Moving on, I've recently been introduced to the solo hotpot & BBQ concept by YT. The hotpot part, I am used to, while that BBQ bit was something new. I think that calling it a BBQ is a bit of a misnomer---it was much closer to having a hot plate as opposed to a barbeque grill in terms of execution. But that aside, the concept was interesting, and it awakened that latent caveman that had been hiding within me all these while; there was just something that was so satisfying about watching (and smelling) what was originally red raw meat turning into a delicious brown cooked form.

Magnifique.

Recently, I have finally achieved something cool---I have managed to obtain good quality playable representatives for all usable keys of the 笛子. Was that always my intention? Not really... but ever since I discovered a contact who had makers willing to be commissioned to build the so-called odd key 笛子, it was something that did not stray too far from my mind.

``But MT, why do you need so many 笛子 in the first place?''

It's about extending the possibilities of expression. Each and every 笛子 has its own specific timbre, and armed with all the 27 possible representatives as at now, it is possible to tackle anything, including the possibility of ``going rogue'' in the sense of moving away from traditional Chinese music and into band (concert/marching/five-man) and beyond.

And that 倍大 C♯笛子 is a special one too. I won't brag about it (not worth it), but if you know, you know. It also plays beautifully.

So a while back, Peace Centre was sold. The twist was that after the original tenants had moved out, the entire place was given a year of partial anarchy, where graffiti was allowed, and various pop-up stalls appeared. I checked it out with YT that day, and I found it pretty cool. It reminded me a little of the old New Year events in Pittsburgh City back in the day for some reason, even though I might not share the same kind of jive as the much younger folk were.

Hmmm. What else is there to say for today's entry?

Ah, perhaps a little Minecraft news. I continued clearing out the forests nearest to my hill-top base, and replaced the haphazardly placed torches on the ground with the four-iron-bar-one-lantern ``lamp-post'' that I came up with. It looks so much neater. I cleaned up my mob farm a little, removing the original chunk-delimiter ring of blocks, replaced the ground blocks for the sea-level entry-way while adding detailing in the form of cobblestone wall ``pillars'' that drove down to some kind of hard-rock on the sea floor. I also patched up some of the ravine/rifts that were in the land around my hill-top base, using smooth stone as a shovel-resistant stop-block, before laying on stacks of dirt to make the patch look like it was part of the original landscape.

This weekend will see me get involved in quite a few pieces as part of the music ministry. I'll have to practise the pieces beforehand (as always), and am looking forward to it.

I am also waiting for 2023-12-22T02:00+08 to see if Elden Ring would be on sale. Something about the SGD80.00 price point just did not sit right with me, even though I would hardly blink spending that amount at a single meal of just having myself. I suppose if there was no sale, I'd probably just buy it at full price---I had finally convinced myself that it was time to try it.

Ah. What else to say, what else to say?

I suppose that's about it for now. I think I have a rant or two, but I have been drinking like a fish over the weekend for two weekends now, hanging out with different friends. There's one more session coming up this weekend, and I suppose that I can get all my ranting going, thus leaving almost nothing for here.

But then again, why would that ever be a problem?

Thursday, October 19, 2023

position: sticky;

I'm on leave! Yay!

Okay, with that out of the way, let's talk something serious: the need to curb the irrational urge of taking sides in any conflict, be it personal, local, regional, or international.

For some unfathomable reason, it seems that people are compulsively declaring their support for this faction or that faction, rational or otherwise.

My personal [professional] take on things is, if one is not in a position where such a decision is of immediate relevance, just shut the hell up and say absolutely nothing. It is a no-win scenario in most cases, because it is almost always the case that the situation is often more messy than it is expected.

``But MT, the politicians are declaring this and that! So why shouldn't I?''

My reply is simply: are you really involved in international politics? If not, why make any statements at all? In some cases, I would go as far as to say that the politicians who made those declarations could have done better with shutting up instead of trying to virtue signal with some declaration or another.

The thing about making statements/declarations is that each new statement made acts as a partitioning of the people, separating them into at least three cohorts---those who agree with your declaration/statement, those who disagree with your declaration/statement, and those who don't give a damn either way. As a private citizen, there is hardly any advantage to force such a partition---the number of people we end up seeing/working with on a personal basis isn't large enough that allows us a substantial number of people left to work with in the event that our declaration/statement is a polarising minority statement.

Moreover, much of personal declarations/statements are reliant on what the media reports (mainstream or otherwise), and the problem with that is that these media reports aren't always correct at the time of publication. This means that the stance that one declares may seem to be safely in the majority, but may be [quickly] shifted to that of the minority when new information appears.

In short, personal declarations/statements of stances [in any conflict] has a pretty sizable risk of going in the ``wrong'' direction, especially if the purpose is that of virtue signalling.

Thus, it is better to just shut the hell up.

------

In other news, I've discovered about position: sticky; in CSS, in relation to having the header of the table to be floating at the top. The need for this came about when I was messing around with my instrument ambitus experimental tool. The list was too damn long, and it was hard to see what the ambitus us once the header information is scrolled off the screen. Having the thead tag set with position: sticky; meant that the complicated header row that highlights the actual notes selected was visible once more.

There was a catch though: for some reason, combining position: sticky; with border-collapse: collapse; messed up the border information for the cells that make up the header. It is highly likely to be a bug, but it isn't going to be solved any time soon by the major browsers. To mitigate that, I went the whole extreme of defining the entire table to have border: none;, while setting each individual td tag have their own borders. This gave a more consistent looking feel for the header information (borderless) and looks pretty okay.

And I suppose that's it for now. Till the next update then.

Sunday, September 24, 2023

Control and Another Experiment

So I completed the main story of Control. The end-run was a little unexpected---I thought there was going to be a major fight with some end-boss, but it ended up being a gauntlet followed by another gauntlet instead.

Don't get me wrong---the bosses in Control are bullet sponges, but judicious use of a maxed out Launch skill trivialises many (not all!) of them. In many ways, the gauntlet fights of the Hiss are much more aggravating, with each type of Hiss having their own ways of defeating them over and beyond just blasting away at them with Shatter (Control's name for the shotgun). It doesn't matter if the Launch skill is maxed out---some of the mobs have enough dodge that the Launch skill is completely mitigated, requiring some careful gun play to take them out.

But perhaps Control's true end isn't at the end of the main story; I have started on the other DLC, aptly titled Foundation (I've completed the other DLC ``by accident'' as part of the exploration phase before advancing the latter parts of the main story). I'll probably continue that some time later this week as I have other things that I'd like to work on in the meanwhile.

------

Today it was cool and humid, well, cooler than what one might expect from what SIN city has to offer. It rained heavily in the morning as I was making my way to PPCC, and it rained intermittently thereafter. I find that it really isn't the temperature that annoys me, but the humidity.

In other words, cool but humid is still terrible. It took me a good 15 minutes just to cool off enough to stop perspiring all over Aurelia and screwing up my embouchure.

I ran another experiment today---instead of keeping Aurelia fully assembled on the stand and waiting for 45 minutes (or however long it takes for the sermon to complete before the closing hymn is needed), I took the headjoint off when I went to sit among the pews, having it wrapped up on the microfibre cloth and held it close to me to keep the whole headjoint warm. The reason for this odd behaviour was to reduce the amount of condensation that would gather within the headjoint when my humid and warm breath contacts the cold metal walls when playing that last hymn after having Aurelia sitting out in the cold. Condensation within the headjoint near the embouchure hole made controlling the intonation at least twice as hard, and that was something I didn't want to have to deal with.

The experiment was a success---the condensation occurred nearer the C♯ vent hole, and I found that I retained control of the intonation much better than when I didn't do that.

So that's something new that I learnt.

I suppose that's about all for now. Till the next update.

Sunday, September 17, 2023

Experiment: Success!

The scraper that lives on Amazon is back, and there's nothing that I can do about that. I just hope that they aren't using what they scraped for nefarious reasons.

Anyway, I ran an experiment earlier today while playing during worship service. Instead of playing Aurelia, I switched over to the AF-1 Grenser one-key traverso. Three of the hymns we played were ``simple'' keys (C, & F), with the only problematic one being A♭. Since its a one-key flute, the single toughest note on the simple flute system, E♭/D♯, is easily handled with the single key. As for the other chromatic notes (A♭, B♭, and D♭) are ``easily'' handled with cross-fingering patterns similar to the ones I put up for the AF-3 Stanesby Jr.

Note that the word is ``similar'', not the same. Have a look at the PDF of the fingering chart. Due to the different tuning (A440 vs A415) and possibly different geometry (AF-1 is based on the Grenser, hence the name, while AF-3 is based on the Stanesby Jr., hence that name), the cross-fingering patterns for the AF-1 Grenser is much simpler and systematic as compared to the AF-3 Stanesby Jr. I actually derived quite a bit of inspiration from the one-key flute fingering patterns while building my own 12-tone fingering chart for the 笛子.

Now, the reason to raise all that allegedly diversionary tangents is just to point out that I was really in my element when doing all the funny chromatic stuff on my AF-1 Grenser, even for the A♭-key hymn.

The experiment was a success. No one complained about intonation and other issues, and I found that even without the much louder set up that was Aurelia (and other modern concert flutes), I could still play the upper envelope without being drowned out by the four violins, one piano, and one electic organ. I suspect that was due to the other instruments staying out of the upper octave that I was in than how the AF-1 Grenser was ``loud enough''. In fact, the music coordinator remarked that when I was doing my runs for warm-up before the quick group rehearsal sounded much smoother than when I was with Aurelia.

I think that smoothness just came about because the reaction time of a simple system flute was always faster than that of any keyed ones.

I was really afraid of intonation, but thanks to what I have realised to be non-broken ears, that was within control. And therein lies on of the reasons why the one-key flute isn't as well used these days as compared to the concert flute. The music ministry group that is playing at the worship service is sufficiently small that I could still control the intonation carefully, and I can see how it can get progressively harder to do so as the number of players increase.

All in all, this just means that I have other options to bring to the table whenever I'm rostered to play.

Till the next update.