Showing posts with label YouTube. Show all posts
Showing posts with label YouTube. Show all posts

Monday, 5 October 2026

TeochewThunder: Year Twelve (Part 1/2)

It's time for my annual blogging break! Let's look at what 2026 brought us - lots of tech news (mostly about Artificial Intelligence), quite a bit of jQuery and even a bit of NodeJS.

Happy 12th blogiversary!

Twelve years to the day I got off my ass and started this blog. Seems unbelievable. In that time, I've bought my own place, gotten married, quit smoking and learned maybe five different languages - not all of them programming ones.

Those familiar with the TeochewThunder tradition will know that October is the month I take a break and gear up for the end of the year.

Tone

I'll begin the year-end retrospective by conceding that I've been making rather inflammatory posts recently. Specifically towards small biz owners.

The small business owner and I have a complicated relationship. On one hand, I realize that it isn't easy to run a business, and it's far more pleasurable to be working for a small outfit than a huge one with tons of stifling rules. On the other hand, I hate it when small potatoes give themselves airs... and some of these are tiny spuds acting like they're the shit. When in all likelihood, they're just shit.

Tiny spuds.

Suffice to say, if even one of these fellas reads my stuff and ends up going "fuck this guy", I'd pat myself on the back. Really, what are they gonna do? I'm practically retired.

That said, I've managed to keep the profanity somewhat minimal. Not as minimal as last year, obviously, but I'm proud of myself for the effort. That's not to say I can't be provocative and offensive if I don't swear, because I absolutely fucking can. I just don't want to end up pigeonholing myself.

Speaking of Artificial Intelligence...

Not that anyone asked, but all this content has continued to be written by me. None of this was written by AI. That distinction is important. On Social Media, I've noticed a whole slew of long-winded posts that scream "LLM Vomit".

Imperfect as my writing is, it's not that. Sure, I do consult an LLM on content. I run my writing through Claude and ChatGPT and even Gemini. AI checks for typos and unverifiable facts, and cautions me on possible inflammatory speech, and tells me that some people may get their precious feelings hurt. In the final case, I may even smile, and ramp up the offensiveness.

You're offended? I'll
show you offended.

All of that is a far cry from letting an LLM generate text for me while I tweak the wording. You may get a lot of crap from me, but you'll never get that kind of crap.

I don't want to give you that stuff, but the fact of the matter is, I couldn't even if I wanted to. Even after feeding the LLMs my writing and asking them to reproduce it, I've yet to find one that even comes close. That's largely because LLMs try to be as correct and inoffensive as possible. And as longtime readers know, these aren't always top on my list of priorities.

Morever, using an LLM for output generation is just superfluous. I'm not in a position where I need those productivity gains. This blog is not for profit; if I can't even be authentic in this situation, that's just sad.

I don't feel quite the same way about AI image generation, though. Because none of you have ever been under any kind of impression that I took those stock photos myself, and generating images gives me what I want without having to hunt endlessly for it. The only difference is that some photographers won't be receiving my paltry monetary thanks, but it isn't as if they would starve otherwise.

Web Tutorials

As mentioned earlier, there was quite a bit of jQuery this year. That's for good reason.

There's increasingly little value in using vanilla JavaScript to demonstrate stuff. I have to jump through too many hoops and explain too much. And in this day and age, using getElementById() feels positively primitive. Shit, in this day and age, jQuery isn't particularly cutting edge either.

Getting primitive.

jQuery gets me there faster with less fuss, and sometimes that matters more. After years of using vanilla JavaScript, it's what I cut my teeth on and I'll always have a soft spot for it, but at some point pragmatism needs to win out.

There's also some NodeJS and a bit of VueJS. I'm not an ideologue where code is concerned; whatever works best in the given context gets the nod. But above all, I don't want to be a one-trick pony. That's almost tantamount to career suicide in my industry. Not that I have a long fruitful career to look forward to at the age of 49, but it's the principle of the thing.

Other content

The dry technical content (outside of Web Tutorials) is still present in the blog, but it's been drying up a bit. Not to say I don't still enjoy writing those even though nobody seems to enjoy reading them, if the views are any indication, but I realize that AI could do a far better job than me of explaining that stuff.

Still, features like Spot The Bug are still going fairly consistently even though I seem to be doing JavaScript almost exclusively (yes, different frameworks and libraries, but still JavaScript).

One thing I've been doing more of, is lifestyle stuff. Things I've been doing outside of work. It used to be I'd do this a couple times a year by vacationing out of the country, but lately I've found that Singapore can be just as interesting without having to break out my trusty old passport.

Wheels, baby, wheels!

And part of it is just me discovering, after having quit smoking, that I like being allowed in non-smoking areas like parks and nature reserves. Huh. Go figure. Funny the directions life takes us. As it is, I'm discovering a whole new side of Singapore on bicycle. And somehow, part of me just can't stop comparing all this shit to software architecture. It could be that being a software dev has allowed me to appreciate the art of building all this, within the constraints of a tiny island.

Back to Artificial Intelligence

The reason why I've been writing so much about AI is because, love it or hate it, it's hard to simply dismiss it. It's permeating code, Social Media, employment and technology - four subjects this blog tackles regularly.

I can't seem to get by a day on YouTube without listening to some take on AI. How LLMs are good, how they're bad, how the AI Bubble is about to burst...

Code bubble.

Also, I have opinions. Shocking, right?

As a software developer, I also have to deal with colleagues and bosses who range from wildly enthusiastic, to cautiously optimistic, to staunchly negative, and none of these positions is inherently wrong, which makes things a lot more interesting than your typical flat earth debate. The situation changes by the day, and that's genuinely intriguing.

For example, right now there's an ongoing Doomsday discussion as to whether AI will bring about the end of humankind by the end of the decade. By the time I publish my two cents on this, it will be November and my perspective will be stale. But whatevs, it's not like the Earth has stopped spinning on its axis waiting for me to release my opinion to the world, eh?

Next

Hits and misses of Year 12.

Wednesday, 8 April 2026

In defense of small steps

It was 1997. I was a Temasek Polytechnic student waiting to go into National Service. While hanging out at a running track (imagine, in those days I actually had knees that didn't creak.) I bumped into a schoolmate also waiting for National Service.

He told me he had been preparing for National Service by running three rounds around the running track every day. Three. That was 1.2 kilometers. I was baffled. I laughed in his face and said he might as well not bother. This was a pitifully short distance. What good would it do?

Running in preparation.

I know, I know, I was a jerk. And if I ever see him again, even if he's forgotten all about it, I really should offer him an apology. I'm a kinder, more evolved individual now and all. More importantly, I've spent decades as a web developer and it's not just compassion behind the apology - it's professional clarity.

The lesson behind this

The story here isn't about me saying stupid, needlessly cruel things like some empty-headed moron. I was nineteen, FFS. Saying dumb shit was par for the course.

No, the story is that, in my youthful arrogance, I was blind to the simple fact that everything begins with small steps. Everything. And years later, life would beat that lesson into me over and over. I would attempt a tech career in sunny Singapore. I would stumble repeatedly. Sometimes I would take a few steps forward only to be shunted one step back.

In many ways, life was not kind. It could have been worse, of course. A lot worse. But the fact remains that there were challenges. Challenges that weren't going to be navigated in a single bound. I was dismissed from jobs. Failed probationary periods. Screwed up at work. Joined companies that crashed and burned. Worked for exploitative bosses with the ethics of a swamp leech.

But you know what? It was OK because my failures were due to me actually trying. That was valuable. The thing about freedom, and having agency, is that you own all your success and your failures.

Moving slowly.

The thing is, I wasn't shooting up the corporate ladder. Sometimes I wasn't anywhere near any kind of ladder. It took a few (OK, several) iterations before my career got any kind of traction, and even then, it was a slow grind.

In retrospect, my career was like how software is typically written - iteratively. "Do it once, do it good" is music to the ears. Unfortunately, that's all it often is. The ugly reality is that software evolves. You start off with an MVP that gets fleshed out over time, and requirements are going to change. That's business. That's life, even.

What I know now

A new appreciation for small steps is one of the things I've gained. It's not about how big the step is. It's about the fact that the step is being taken at all. It's a statement of intent, and this can be powerful. Without even a small step in the right direction, you ain't getting anywhere, son.

Pretty much like my ex-schoolmate and his 1.2 kilometer run. A tiny step? Yes. Very tiny. But no less important. Because it was the intention that counted. And later on, whatever success he enjoyed in that area should be attributed to that intention.

It wasn't like he simply went on Social Media and talked about doing it without actually doing it. No, he was doing it when I encountered him. And what did I do? Minimized his efforts like a jackass, that's what.

Wishing for software.

I've come to understand the need to do things in iterations. Small incremental steps if necessary. And it's often necessary. Software isn't simply conjured out of thin air after verbalizing a wish, no matter what the likes of Jensen Huang or Elon Musk would have you believe. It follows a process of repeated refinement. A lot of eventual success is predicated upon simply showing up to do the work, and showing up consistently.

This has also manifested in my reading habits, and even my consumption of media. Before, I always felt the need to watch YouTube videos to the end. Finish the book I borrowed from the library. If I started on a TV series, I would binge it to the end.

No longer.

Now I understand that reading a book to the end, for example, means very little. It doesn't actually mean that I'm finished with it. I can always gain new insights from rereading it. Conversely, if it's not worth my time the first round, I can feel free to cut it loose without wasting any more time on it. Perhaps one day I'll find the motivation to get back to it... and if not, it's not a big deal. Basically, I no longer feel the pressure to finish things I started. Because the "finish" is ultimately artificial.

Just like software. Software is never "finished". It's only ready for shipping, but it will evolve in its lifetime.

Small conclusions

Be comfortable with small beginnings. Showing up is more important than showing up loud. "Go big or go home" is ego and stupidity talking, nothing more.

One small step for man...
T___T

Thursday, 4 December 2025

Film Review: War of the Worlds (2025)

Following in the footsteps of screen marvels like Unfriended, Searching and Missing, comes a new tech thriller in the same vein. Well, "new" might be stretching the truth a wee bit. War of the Worlds was produced back in 2020 during the COVID-19 pandemic, and it must have seemed like a good idea at the time, what with people being made to stay at home and all. A movie that requires very little face-to-face interaction between its actors? Holy guacamole pandemic loopholes, Batman!


Except that sadly, while the idea was decent, execution was found rather wanting. I watched this movie out of sheer obligation rather than because I truly wanted to, and this was made more apparent the more it went on.

This movie is in screenlife format, where the entire story takes place on TV monitors and computer screens. I kept calling it the "found footage format" in the past, but I guess this has kind of evolved into its own sub-genre by this point.

Warning - spoilers, I guess...

I don't even know why I bother telling you this. There are no surprises here (barring how dumb this movie is) that me saying it out here would even count as much of a spoiler. Still, you've been forewarned, if not forearmed.

The Premise

William Radford is a Government tech agent (with high security clearance and all) who is in his office when an alien invasion begins. What ensues is a series of catastrophic events as he shuttles back and forth between his job, helping to repel the invasion and keeping his family safe... all from behind the keyboard and monitor.

The Characters

Ice Cube as William Radford, a techie employed in a Government tech surveillance program. It's almost impossible to overstate how much I love watching Ice Cube on screen. Next to Samuel L Jackson and Denzel Washington, he might just be the coolest black actor ever. I'm biased, of course. From XXX: State of the Union to 22 Jump Street, his gruff angry black man persona is a joy to watch. However, even Ice Cube has his limits and his inclusion in this movie exposed them cruelly. The screenlife format of this movie basically means that for a large part of the show, we're reduced to watching Ice Cube emote close up... basically underreacting and overreacting to everything. Not his best role, that's for sure.

Eva Longoria appears in the movie as Dr Sandra Salas, who seems to be pretty useless, all things considered. She's just here to deliver footage and exposition to Radford (and us, by extension) and does nothing to make us care for her character in the slightest. Honestly, I didn't even remember the character's name, that's how little she mattered to the plot. Eva Longoria has had a long and storied career, and let's just say that this role is not something she will be remembered fondly for, if at all.

Henry Hunter Hall as Radford's son David, who's apparently a game reviewer. Radford thinks his son is a huge disappointment and loser... until he discovers that he's actually the hacker known as The Disruptor. Hall is not very interesting in that role, I gotta say. My reaction to the reveal was an overwhelming "meh".

Iman Benson as daughter Faith. Happens to be a biologist who somehow discovers how to synthesize a virus to kill off the aliens. She's pregnant during the events of this film and mostly spends her time either looking terrified or constipated. I don't know if it's Benson's acting or just the shitty writing (maybe both?) but she just doesn't come across as a particularly competent scientist... at least not at the level that would result in producing a virus that would take down the aliens.

Devon Bostick as son-in-law Mark Goodman, whom Radford might consider an even bigger loser than his son. He's an Amazon delivery guy, but even he has a role to play in defeating the aliens, though it's possibly just to add some product placement since it is being featured on Amazon Prime.

Clark Gregg is the unscrupulous Director Donald Briggs, whose insane plan to spy on every living person on Earth is the cause of all this mess. It's nice to see Gregg again after his stint in the Marvel Cinemetic Universe, but at the same time really sad to see that he's reduced to this.

Michael O'Neill makes a couple appearances as US Secretary of Defense. A very one-note role.

Andrea Savage is FBI Agent Sheila Jeffries, a role so colorless I mistook her for Eva Longoria's character a few times.

The Mood

They try hard to convey the end-of-the-world high-stakes terror of an alien invasion using the screenlife format. And it falls flat a lot. Even when Ice Cube swears right at the screen, it comes across as hilarious rather than scary. The alien robots are meant to inspire dread, but the whole effect is cheesy. I get what they were trying to do, but it just fell flat.

What I liked

The whole bio-mechanical nature of the aliens is kind of cool. Tentacles within tripod-shaped domes? Tiny bugs that are equal parts blood and silicon chips? Corny but also intriguing.

The whole thing about the homeless guy accepting the bribe of an Amazon Gift Card was hysterical. It was so stupid (and shameless) I couldn't help but laugh. Kudos!

The biblical poetry of a hacker named David fighting a Government surveillance program named Goliath, is divine.

What I didn't

In general, the plot is just silly. I'll elaborate why as we go along.

Radford types a lot of textspeak, but his textspeak doesn't make a lick of sense. He types things like "Where are U" which is just weird. I can understand, even though I loathe it, the propensity to substitute "U" for "you". What I don't understand is, if you're going to be lazy enough to do that, why would you make the effort to properly captalize the "w" in "where"? While we're at it, why would you capitalize the "u"? Actually, why not just type "where r u"? Indeed, why not "wru"?

The aliens invade Earth because they want to eat our data. Read that again, until the sheer stupidity of that statement sinks in. Data is basically just 1s and 0s. The image of a cat is data. The recording of a song is data. A hastily-typed text message is also data. A YouTube video that's been corrupted, is still data. A random sequence of 1s and 0s? You guessed it, data. If the aliens had the tech to invade Earth, they definitely had the tech to create whatever data they needed, for consumption, rather than go to the trouble of invading Earth for it. I feel like whoever wrote this story doesn't know a whole lot about tech, and just thinks it's some kind of witchcraft.

The tentacles that make an appearance when the aliens attack, are goofy AF.

Faith was injured due to being stabbed by a piece of debris. Later on, she's seen removing it in order to "stop the bleeding". Wait, what? I could understand that if Faith Radford was supposed to be a clueless layperson. But a professional biologist?! This is some Grade A shit writing right there.

Amazon really got their claws in where product placement was concerned. Not only was one of the characters an Amazon employee, the script also had an extended sequence of Radford placing an order and having it shipped by drone. So cringe, OMG.

Conclusion

Was this movie a huge disappointment? Not really; that would have required that I had sizeable expectations for it. The fact that it disappointed me even a bit considering how forgiving as an audience I am, is testament to how little value it has. This is probably the most useless movie of 2025... and I say that both as an Ice Cube fan and someone who absolutely loves the screenlife format.

My Rating

2.5 / 10

This movie alienated me!
T___T

Saturday, 1 November 2025

The year I finally achieved that JLPT certification

Some say "better late than never". I got a huge dose of that this year as I obtained my Japanese Language Proficiency Test (JLPT) N5 Certificate.

Why was this overdue? Well, you see, because I actually began on this journey at the tender age of 15. I was a Polytechnic student at the time, and this was a supplementary module. At first, things went well. Having received education in Chinese, learning the basic sounds of Japanese was a breeze. Learning the Hiragana and Katakana writing systems wasn't much of a stretch as well; in fact it was significantly easier than reading and writing Chinese characters. Until we got to Kanji, which essentially was Chinese characters.

Ugh, more Chinese.

At which point I lost all interest.

Also, at this time, I had begun an obsession with writing code, and building stuff. Japanese was a pretty language, but it just didn't fit into my world the same way C++, SQL or even QBasic, did.

And the rest, as they say, is history. Even after graduation, not only did I neglect whatever little Japanese I had learned, the next few decades were a disastrous collection of bad career choices, even worse lifestyle choices, and sobering life lessons.

COVID-19 and Clubhouse

Fast-forward to 2021. COVID-19 had the world in its loathsome grip and I, like many others, sought human interaction online. That was when I discovered the Clubhouse app. Through it, I encountered numerous communities, not all of which spoke English, Mandarin, or even Cantonese.

A few of these were Japanese speakers. And some were even offering Japanese lessons. I dove right in, relearning all the basics I had forgotten. Many times, I would simply listen in, try to make sense of the conversation, and Google words that came up. Then I started engaging, hesitantly, in the conversations. I even participated in Mandarin-Japanese exchanges!

Little cultural exchanges.

It was slow going. I wrote an app to facilitate relearning Hiragana and Katakana. I practiced writing every day, religiously. But there was this feeling that I could do more.

That was when someone suggested that I take the JLPT. And from that day forth, I took things up a notch.

Training in earnest

My next step was to install Duolingo on my phone. For the next few years, I faithfully partook of the exercises daily. At the same time, I went onto YouTube to search for JLPT Listening exercises. I didn't really have a sense of how far I had progressed; I just knew I needed to keep going. I've never been brilliant; but what I am good at is being consistent.

One year later, I downloaded the Migii app, and paid the subscription fees for accessing sample JLPT exam questions. With Duolingo, the returns were diminishing. I needed to train a different set of linguistic muscles - the kind used for passing the exam. Duolingo had brought me to a certain point where I could read the Japanese exam questions without too much difficulty... now I had to practice answering them.

The next milestone was hit another year later when, while watching a Japanese TV show, with English subtitles, I noticed something odd. Almost constantly, the subtitles would read "It's OK". Even though "It's OK" was a perfectly reasonable thing to say in the context of the current point of the story, it was a pretty poor translation.

Phrase Literal Meaning English Translation
daijobu It's OK. "It's OK."
dou itashimashite You're welcome. "It's OK."
shinpai suna Don't worry. "It's OK."
anshin shite Relax. "It's OK."
ki ni shinai de Pay it no mind. "It's OK."


At this point, I found myself thinking - wow, these translators are so goddamn lazy! They just use "It's OK" for everything!

And my next thought was - hey, if I know this much, shouldn't I be taking the JLPT already?!

The JLPT Test Voucher

That was when I registered for the JLPT on the Japanese Cultural Society of Singapore website. and paid a hundred Singapore dollars for the privilege. A month later, the JLPT test voucher arrived in the mail. The train was in motion; there was no going back.

Meanwhile, I continued training religiously. With Listening practice, especially. Online chatter had it that the recordings would be played only once, so I trained myself similarly, by not rewinding and replaying.

The JLPT N5 Exam

It was July when the day arrived. I head for the Singapore Management Institute where the exam was held, and stood in line with what looked like mostly Burmese folks. Interesting.

The invigilator who took charge of the exam room I had been assigned to, seemed to be Japanese going by the way she spoke English.

Shading answers with a pencil.

The proceedings were charmingly old-school. We were given question and answer sheets. It was all multiple-choice, and the correct answer had to be shaded with a pencil for feeding into a scanning machine. Despite my numerous certificates, I hadn't done this since... 2015? This was because my last couple certifications were earned from doing the coursework and presentations, rather than standardized tests.

The toughest moment in the exam came from the Choukai, which was the Listening portion. Despite my best efforts, my concentration slipped at various points. It was with considerable relief that I handed in my question and answer sheets, and headed off.

In August, I logged on to the JLPT portal to check my results. I had passed, and my results were more than decent. I actually scored higher on Listening than other sections!

The real value of all this

Last September, I got my actual physical certification through the mail. It was a foregone conclusion by that time, but I still felt that little thrill of pride. Job well done, bro, I told my reflection. Not such a big deal in the larger picture, but we've got to celebrate our wins even if they're small. Especially if said win took thirty-three friggin' years to achieve.

My results.

The JLPT N5 Certification isn't going to change my life. As far as professional cred goes, it's barely a blip. Achieving the JLPT N5 Certification probably puts me on par with the average Japanese toddler where the language is concerned. As for the value of understanding multiple languages? That's not much of a flex. This is Southeast Asia; just about everyone and their dog is multilingual.

No; at my age, the act of learning is arguably more important than what's being learned. It helps stave off dementia.

The real value is knowing and affirming, that with sufficient motivation and putting in the time and effort, I can learn pretty much whatever I choose to learn. And that is powerful stuff. In an age where things are constantly and rapidly evolving, the ability to learn shit has become vital - not just in the tech industry, but for life itself.

In hindsight, I should have realized this. How did I learn ASP? PHP? Ruby? VueJS? D3? All by picking up a book, watching videos, visiting websites, and constant practice. Most of the time, it really is that simple. The methods vary, but at the end of the day, it's about the willingness to put in the hours.

The linguistic journey continues!

I do want to see if I can achieve the next rung, the JLPT N4 Certification. Again, I'm not really sure why. Just for the hell of it, I guess. It's not like I plan to visit Japan. It's not like I realistically have anything to prove to anyone.

On the other hand, Korean does seem pretty interesting.

Decisions, decisions...

Ganbarimashoo!
T___T

Sunday, 14 September 2025

The Silencing of Charlie Kirk, and what this means for Social Media

The term "cancelled" has, in recent years, been taken to mean the same thing as being deplatformed, or demonetized. To remove someone's ability to reach larger audiences. To have someone fired from their jobs.

It took on new horrifying meaning this week when Charlie Kirk was murdered by an assassin's bullet in the middle of a public appearance at Utah Valley University in the USA. Kirk was a Right-wing activist who espoused ideals such as Pro-life, the Right to Bear Arms (the irony, huh?) and other typical Right-wing talking points.

Shot through
the neck.

I recognized Kirk from the news, because this guy had occasionally shown up on my YouTube feed, debating some hopelessly outmatched student or other. I never lingered overlong on those clips, simply because they just weren't very interesting. To be fair, it wasn't him, it was me. On YouTube, I have a below-average attention span unless it's tech-related.

Which in turn, begs the question: why am I even talking about this? The death of a Right-wing activist, while significant on a human level, is hardly a tech matter. On the other hand, I have spoken before about the bizarre Left-versus-Right culture wars in the USA, and the way it's played out on Social Media. I have talked before about how troubling our online discourse has become, even as I acknowledge that it's nowhere as frightening as that of the USA. And human matters are relevant in tech. Who do you think uses tech, robots?

In truth, when I wrote about the Culture Wars two months back, I was really hoping this would be the last time, at least for a bit. No such luck; the death of Charlie Kirk is pretty compelling stuff.

About Charlie Kirk

This entire episode was a tragedy, though not specifically because it was Charlie Kirk who died. According to some of the eulogies I've seen online, Kirk was quite the guy among his peers; and on the other side of the political aisle, a racist, misogynist, fascist and transphobe, among other fancy labels.

You know, I don't think any of that matters. Good guy or bad guy, Charles James Kirk was at least someone's son, someone's husband, and someone's dad. Two kids will grow up not knowing what their father was like except through those lame-ass YouTube videos and online articles, both gushing and brutal. I'm not going to sit here and act like Kirk and I were best pals or I was his biggest fan. The truth is, to me, he was just some rando on the internet whose opinions I sometimes agreed with and sometimes didn't. And he could come off as smug and condescending.

The thing is, being smug and condescending isn't grounds for public execution. Remember, Charlie Kirk was an activist who apparently ran his mouth a lot. And like most of the human race, sometimes he was prone to saying stupid shit. That's not a crime. It wasn't like he was a child molester or a serial killer. Or a Justin Bieber fan. If having an opinion and being a dick about it was reason enough for death, I know of more than a few people who should be joining Kirk in his six-foot grave. And yes, I include myself in that assessment.

If you've ever said stupid
shit, jump in here.

I've seen people use Kirk's position on the Second Amendment as justification to celebrate his death.
I think it's worth it. I think it's worth to have a cost of, unfortunately, some gun deaths every single year so that we can have the Second Amendment to protect our other God-given rights. That is a prudent deal. It is rational.


Those voices are saying that Kirk made the above abhorrent statement, and as a result we shouldn't feel too bad about him dying from a bullet to the neck. Our own Professor Donald Low literally said "Karma's a bitch" on his Facebook post. 

To be honest, that's probably one of the stupidest excuses ever. Look, you can feel morally superior to Kirk if you want. But you can't declare yourself morally superior to him and then in the same breath lower yourself to his level to justify his death. This defies all logic. Stuff like this only reinforces my deeply-held belief that Social Media is full of raving idiots acting all intellectual.

Cancel Culture

People are shocked. Goodness knows why. Maybe people are shocked because Kirk wasn't holding the front line in Ukraine, where getting shot is kind of expected. He was at an educational institute in peacetime. In one moment, Charlie Kirk went from passionate public orator to bloodied corpse. That's probably the most extreme form of Cancel Culture. After all, you can't get any more cancelled than dead, can you?

In the grand scheme of things, though, was this really that unexpected? I would argue that the shooting was merely the latest in a long time of steadily escalating aggression towards people who espouse unpopular views. Except that before this, instead of simply ending their lives, we were content with merely ruining theirs.

Anyone who's ever tried to get someone else cancelled. Fired. Doxxed. Called the cops on them. All because they said something we didn't like. Anyone who's ever engaged in behavior like this, or even just cheered while it happened, has contributed in some small way to the state of affairs today. Because all that provided the stepping stones of acceptable behavior.

Hello, Police? Someone hurt
my feelings on Facebook.

Come on, we had to expect that eventually, the approval of ruining someone's life or doling out of physical violence would lead to this. It was always par for the course. Once you say that it's OK to ruin someone's life because they said something you considered offensive, you make room for that next escalation.

Singapore herself isn't entirely immune to violence of this sort, though thankfully so far none of it has been fatal. Do people still remember Amos Yee? He ran his mouth a whole bunch, and famously got slapped by an outraged citizen. Kirsten Han, an outspoken activist for a whole hosts of causes I can't begin to keep track of, got death threats.

I personally consider Amos Yee a loud and annoying housefly, and Kirsten Han a bit of a wanker, but I condone neither the violence nor the threats. I can't. I like to talk shit on the internet, and don't particularly want to be shot by some putz with a gun. Not that I think I'm next in line. Plenty of people far more famous than me. If you're going to shoot someone at all, you might as well go big, eh? Still, the principle stands. All of us should be able to say what we want to say without the threat of violence hanging over our heads.

Speaking of Cancel Culture, I've seen posts online celebrating the death of Kirk, followed by threats from others to report these posts and have these users outed and punished. Just a lot of ugliness all round.  Has the USA finally stopped pretending that they give a damn about Freedom of Speech?

What's next?

Earlier, I said that this was a tragedy, and now I'm about to elaborate on why. It's not simply that Charlie Kirk was killed. Let's be real, people die every day. This isn't more or less tragic just because it's Kirk who bought the farm.

However, this particular death has stoked what looks like a new escalation in the Culture Wars. It's now no longer just being fought on Social Media. People on the Right are riled up over the murder of one of their own, and people on the Left are afraid of some nutter retaliating. 

What if this was always the plan?

Donald Trump declared Leftist extremists to be responsible for Kirk's death. But this wasn't some pissed off nutjob losing his temper and simply letting loose with a gun. This looked like a carefully planned op with a sniper.

This was planned.

Kirk has been silenced, but perhaps that wasn't the main objective. Perhaps the entire point was to stoke a Civil War. Who really wins in this scenario?

Come on, pretty sure I'm not the only one thinking this. Anyone who isn't dramatically raising their fist to the sky and declaring we will not be silenced or explaining why the world is a better place without Charlie Kirk, watching all this from a distance, is wondering if there's some other motive behind this. If you're not thinking this, you're probably too close to the action. Or you simply belong in a less complicated, less nuanced world.

On the other hand, regardless of the actual motivation behind the killing, one thing remains unchanged. Kirk's murder has opened the floodgates to what was previously unthinkable.

Public discourse is no longer safe. The perception is that Kirk was murdered for his views. This should make anyone with an opinion that they have ever shared, exceedingly nervous. Especially if that opinion was unpopular and exists somewhere on the internet.

In a world filled with AI and deepfakes, where misinformation is more readily available than information, the danger grows exponentially. Imagine a world where one can be killed for airing an unpopular opinion, and where people could be tricked into believing one aired an unpopular opinion. Do the math. The conclusions are chilling.

Finally...

People say America is the Land of the Free, and constantly compare Singapore's perceived lack of freedoms against the USA's. Land of the Free? Free what, exactly? Free Charlie Kirk's soul from his mortal shell?

I'm glad I live in Singapore. Our forefathers realized early on that with excessive freedom, we would either rise to great heights or sink to our basest instincts. As a young nation with no natural resources, no land and not that much manpower, we simply could not afford the risk. Thus, our laws are strict, and as a result, what happened to Charlie Kirk is unlikely to happen here.

If this is the result of America's much vaunted freedoms, she can keep it.

Talk about a loaded situation!
T___T

Thursday, 31 July 2025

Do techies lean Liberal or Conservative? (Part 2/2)

Welcome back!

As promised, we will be diving into the three points I outlined previously, and we'll examine how these positions could actually be Conservative ones rather than Liberal.

How Software Developers are Conservative

Identity does not matter. This principle applies both ways. The same way we wouldn't discriminate on basis of race or gender or what-have-you, we also would not use it as a criteria of preference. You may claim this is contradictory, and you'd be wrong. This is entirely consistent with our worldview. Only the tech matters.

This isn't important, or
even relevant.

Now, sure, I know Silicon Valley has DEI programs in place. I promise you, those are most assuredly implemented by HR, or Management who want to appease some Liberal demographic. The average techie, however, simply does not give a flying fuck.

You ask any techie, and their first question is more likely to be "what's your tech stack?" rather than "what are your pronouns?"

Innovation versus tradition. Now, earlier when I said that techies prefer innovation over tradition, that was true. It may also have given you the impression that techies are risk-taking swashbucklers, which, to be honest, makes us sound more awesome than we probably deserve.

The truth is, techies are boring and consistent to a fault. We like things to be neat and make sense. If we did things a certain way, in the past, we are likely to do so again unless there are good reasons against it. We obey coding styles and naming conventions and follow software patterns because doing so makes it easy to troubleshoot when things go wrong.

Things are done a certain
way, for good reason.

One of our greatest frustrations is when people do things willy-nilly and just "wing it" because this is messy and asking for trouble down the road. We don't do things one way because we suddenly feel like doing so - we do them a certain way because it's worked for us in the past, but we are open to changing it if there's good reason to do so. Again, this is consistent with the previous, seemingly Liberal, position.

The collective versus the individual. This next point is more true now than it was when I first started out.

Developers accomplish things in teams. Software development is a team sport. There is really no way around it in this day and age. Tech has evolved so much that there is zero chance of one person knowing everything - now this knowledge requires a team.

Functioning as a unit.

Remember I said that developers are a diverse lot? It is precisely this diversity that lends itself to building effective multi-disciplinary teams. And in this way, it is often the collective that trumps the individual.

Some parting thoughts on the Culture Wars

Even similar positions can take on a Liberal or Conservative lens depending on how one views it. This shows me that both sides actually have a lot in common, Culture Wars be damned. And this perspective today is perhaps more relevant than ever now that the Culture Wars have arrived at what I can only describe as a very odd place.

Americans on Social Media now squabble over the dumbest shit imaginable. Recently, I had the pleasure of watching Superman, and went on Facebook to check out some reviews and see how other moviegoers found the film. Imagine my surprise when I found people embroiled in intense arguments over whether Superman was an illegal immigrant. I suppose technically, he is, but don't these nerds have better things to talk about?

Apparently not! I soon came to the realization that this was bigger than I initially thought. It had stemmed from the director and producer, James Gunn, making a remark about how Superman was an immigrant. The Liberals began drawing parallels to recent treatment of immigrants in the USA. And then people were in each other's faces about how they didn't understand Superman and weren't real Superman fans if they preferred/didn't prefer this Superman.

I mean, attempting to gatekeep who is and isn't a fan of a fictional superhero character? Tell me you're a loser without telling me you're a loser.

I'd initially thought this argument was basically a bunch of loser nerds obsessing over obscure details. It turned out to be way more ridiculous than that - it was a mob of wankers on the internet all trying desperately to justify feeling morally superior to the other side. Conservatives such as Ben Shapiro started trashing Superman as "woke garbage" and bitching in bizarre fashion about how the character wasn't American enough. One Susan Sarandon went onto Instagram to make it all about Israel and Palestine.


True, being good and kind does not require athleticism or talent. Any idiot is capable of kindness, and I would have it no other way. On the other hand, it just feels like a whole bunch of untalented schmucks just decided to overcompensate for their lack of talent and real-world achievement by blowing their trumpets about "kindness and empathy" just so they could feel accomplished, or something.

And as for people like Shapiro and Sarandon... massive cringe, man. People need to understand when they've taken things far enough and it's getting absurd. It's come to a point where people can't sit down and watch a decent superhero movie without trying to score political points. 

Dysfunction, thy name is America.


Your cultured programmer,
T___T

Thursday, 5 June 2025

The Dark Years of COVID-19: A Software Developer's Perspective (Part 1/3)

Just last month, I made contact with something that had well and truly left behind: COVID-19. It began with a mild burning sensation behind the eyes, feeling chilly and an ache in the bones. A day or so later, the sore throat came, along with the phlegm and snot. It did not even occur to me to test for COVID-19 until the third day, and even then I had to test twice!

Bummer.

It was relatively mild; not like how it had been the first time the world noticed COVID-19's ugly spiked head. Singapore and some parts of Southeast Asia have been experiencing a resurgence of COVID-19 cases. I just happened to get caught up in it.

This little episode inspired me to recall the turmoil back then, and how the world, Singapore in particular, survived the dark years of the pandemic.

How It Began

The tail end of 2019 marked a significant chapter in human history, a period which many of us lived through in trepidation. COVID-19 made its presence felt as governments around the world imposed strict, sometimes draconian, safety measures on their citizens.

Thus, unless one was living on a desert island somewhere in the middle of the ocean, the effects of COVID-19's presence was felt, at least indirectly, if not on a far more lethal level. Singapore was no exception. Even now in 2025, with the traumatic experiences of that chapter behind us, COVID-19 remains a relevant talking point; if not as a real and present danger to life and well-being, as a cautionary tale.

This was a common sight.

How did we survive this? Honestly, the answers vary from person to person. My COVID-19 experience as a Singaporean will differ in places from the rest of the world. My experiences as a software developer may differ from other Singaporeans. Therefore, I can speak only for myself, and perhaps other Singaporean software developers.

2019 to early 2020: COVID-19 creeps up on the world

When the Coronavirus was first announced in China, self-preservation wasn't the first thing on my mind. After all, the world had dealt with SARS and MERS, and Singapore had barely been touched before the fuss died down. 

No, my concern was as a husband. My newly-wedded wife was in China at the time, and she was stuck in a strict lockdown. 

Soon, COVID-19 began making its presence felt in Singapore, which had inevitability written all over it. After all, Singapore is an international hub where foreigners land hourly, even if just for transit purposes. Cases began spreading through the island.

Changi Airport was unusually
quiet.

At first, Government handled it well. Perhaps taking our safety for granted, people were still disregarding Government advisories on group gatherings, and not being altogether truthful when they caught COVID-19 and had to be questioned on their activities.

All I could really do at this point, was watch the news and avoid going out too much. Honestly, as a guy who only really hung out at a very limited number of places, this just didn't represent any great hardship for me. I was perfectly content to stay home and watch YouTube content, write my code, and work on my numerous side-projects.

Up to this point, gantries had been set up at office buildings. We all had to have our temperatures checked, and logged. Mask mandates were on. Groups of larger than five, were discouraged.

There was something in the air (other than the obvious!), a vibe of dread mixed with optimism. Things were at s stage where it could get better, or get a whole lot worse. And even if things got better for Singapore, as connected as we were to the rest of the world, it would not do us much good.

Mid-2020: DORSCONs

Singaporeans watched as the case count crept higher despite the best efforts of the COVID Task Force. And soon, Singapore moved to DORSCON Orange.

Things started escalating further with a work-from-home order for non-sessential personnel. As software developers, this described our jobs perfectly. Our jobs were important, but also perfect for remote work. Furthermore, as we were doing work for the Economic Development Board (i.e, doing work for the Singapore Government) and the Singapore Government needed to lead by example, the software developer team would be relegated to our own homes, with office equipment. Meetings would be held via video call.

Many of my colleagues liked the idea of working from home. My prior experience with it wasn't so great; however, at that time, I had already secured a new job and was counting down the days.

Around this time was when an alarming percentage of the population began to go full retard lose their collective marbles. There were people crowding the supermarkets for one last supply buying spree. The most popular item? Toilet paper. I shit you not. Pun fully intended.

This was really popular in
those days, for some odd
reason.

People were finding all sorts of excuses to go out and hang out, never mind that this was what got us into this mess in the first place. Queues for things like bubble tea and haircuts became the in-thing as businesses were given a deadline to temporarily shut down. Anti-foreigner sentiment was at an all-time high, despite the fact that Singapore was largely built on the backs of foreign worker labor. For real, at this point I was starting to wonder if Singaporeans had only recently become this stupid. Then again, the world had never encountered anything on this scale; perhaps I could have extended a little understanding.

In the larger picture, it wasn't exactly only Singaporeans that were reacting due to panic. Small consolation there, but for a while it did seem like the world had gone mad and there was no going back.

There was no end in sight once the restrictions took hold. Gantries were now a fact of life in all major air-conditioned buildings such as shopping malls, not just office buildings. Contact tracing tokens were issued to everyone on the island, where they were used against scanners built into the gantries. Even individual shops (and taxis!) had QR codes for customers to scan in and out when they were done! This only made me more determined not to go out.

Sporting facilities such as swimming complexes were off-limits. That put a huge crimp in my workout schedule, and now I was forced to actually go out and run instead of swim. Put some stress on these aging knees.

Software development, as an industry, had already been constantly hiring up to then; now it positively erupted as big tech began recruiting with an aggression not previously seen. It appeared that since remote work was now a thing, hiring software developers had just become easier. And with no end in sight of remote work, more software products were being pushed that would ride this wave.

Some thoughts

Some say there are opportunities within a crisis. I've also heard people claim that the Chinese words for "danger" and "opportunity" are the same... and unsurprisingly, the people peddling this garbage don't actually know any Chinese.

But yes, the general principle stands. There were lessons to be learned in the midst of a crisis such as the COVID-19 pandemic.

The necessity of limiting physical contact as much as possible meant that Government agencies had to modernize their services, updating them to match the Internet age. Now instead of having to show up in-person to apply for new passports, the ICA implemented a process where the documents could be mailed to addresses instead. Instead of a similarly clunky process in CPF nomination, for example, where the supplicant had to fill up a paper form and have two people physically present to witness, now applicants and their witnesses can log on to the CPF portal to participate in the processes.

Meetings were
conducted like this.

Companies learned to cope with remote working, once considered unthinkable. Grudgingly, almost certainly, but they did it. And even though many wasted precious little time reverting to in-office work years later, the fact remains that they did it, and it worked.

What I'm trying to say is that COVID-19 forced us to up our game on many levels. We ventured out of our comfort zones. Instead of adopting the good old "if it ain't broke, don't fix it" cop-out, we came to terms with the fact that during COVID-19, a lot of it was, in fact, broken and needed to be fixed. Pronto.

Next

A look at the latter half of 2020 and the aftermath.

Thursday, 6 February 2025

Tech Democratization in the Era of Artificial Intelligence

There's a term that I have been seeing more of late: Tech Democratization. More precisely, I first heard it while watching this speech by Nvidia CEO Jensen Huang.



"And so I think that democratizing, activating every region, activating every country to join the AI advance, is probably one of the more important things, rather than convincing everybody it's too complicated, it's too dangerous, it's too mystical and only two or three people in the world should be allowed to do that."


To be honest, the first time I heard the term, I was perturbed and more than a little offended. Like what, tech needs to be democratized? As opposed to it being a dictatorship right now? However, after researching the term a bit, it's not as acrimonious as one might think.

So, what is Tech Democratization exactly?

Tech Democratization describes a state of tech where creation of software (web portals, applications and such) can be carried out without relying on the expertise of technically qualified people. In short, laypeople would no longer need tech professionals for these things.

At least, that's the promise of Tech Democratization. It brings the power to create, to the masses, instead of keeping it in the hands of the elite few. More importantly, the power to create without needing a technical foundation acquirable only by years of training. As a concept, Tech Democratization is not new. One could even argue that it started all the way back in the 60s where high level languages were created so that people like me wouldn't need to deal with Assembly, thus opening up possibilities for a less hardcore breed of nerd.

Building without the
need for expertise.

How about frameworks? Frameworks were created back in the day (and are still in use now) to reduce repetition in coding, and thus reduce the amount of code developers needed to write for a typical application. Now that code in scaffolding no longer needed to be written from scratch, surely this meant that application programming was now opened to a lot more people.

Web development came up with content management systems and even entire website builders to allow the man in the street to create websites without needing to know any HTML, CSS or JavaScript. Low-Code platforms bring this to a new level, allowing laypeople to create simple applications without knowing having much of a technical foundation at all.

From this point of view, AI is merely the latest in a long line of innovations that outsource the repetitive parts of writing code to the system, so that the human can focus on the creative bits.

The Scariness of Tech Democratization

AI is a tool made by actual software engineers. Even if non-technical people can now use this tool to create software that would previously be out of their reach, this still does not make them engineers. It sounds obvious now the way I say it, but it is human nature to get carried away by the perception of ones own perceived ability.

The danger is that non-technical people using AI as a tool to generate code, will start thinking that they can replace actual developers. It does not matter whether or not this is true. What matters is that these laypersons, having not actually encountered software development in all its glorious and terrible complexity, will create a few working apps and start wondering what the big deal is, precisely because they are unburdened by that knowledge.

How much should
non-techies control?

Imagine a world in which software that runs air traffic routes or maintains banking transactions, is created with the help of AI and people who don't actually understand software development, but are given the ability to act as if they do. Are you afraid yet? No? Perhaps you should be.

Me? I'm at the tail end of my career. Professionally, there's nothing I could lose to AI that I don't already plan on giving up in a few years. I don't fear losing my job to AI. It's a tiny consequence compared to the terrible implications I just outlined. And that's all I'm doing - outlining those implications. In no way do I think Tech Democratization is a bad thing.

Besides, it would be hypocritical of me to start decrying Tech Democratization now. I, too, am a beneficiary of Tech Democratization. Were it not for the significant effort put in by engineers better than myself, I would not have the tools - databases, operating systems and programming languages - I use so readily today. I recognize and acknowledge my privelege, and would never presume to place myself in the same bracket as the tech professionals who made those tools.

There's a stark difference between developers benefitting from such tools, and laypersons doing the same. Developers have (generally) the technical foundation, in some cases to the point where those tools would merely be helping them do things they already know how to do, but faster. Laypersons, on the other hand, would be hapless infants without those tools, at least where accomplishing those specific technical tasks were concerned. That, I think, is an important distinction.

In conclusion

Look, I'm not some sort of tech elitist or wannabe gatekeeper. I'm just not. But it's one thing to allow the general public the power to write software. It's quite another to consider them on the same level as people who have been doing this for years (or, in the case of Jensen Huang, claim that "everyone is now a programmer"), just because there are tools to help them accomplish the same goals. That is laughable.

Faster than Phelps.

It is absurdity on the level of me claiming to be as qualified an athlete as Michael Phelps just because I can outpace him on a jetski. Or claiming to be as qualified as my family doctor just because I can read up on medical symptoms on WebMD.

Tech Democratization has value. Like all things with value, however, one has to know exactly how far to take it. Speeding up the work of developers or automating away routine tasks is a great idea. Giving every schmuck the tools to write simple apps? Also a pretty good idea. Allowing them to think that software development is actually that easy? There are not enough words in the dictionary to describe what a horrible idea that would be.

Democracy now!
T___T

Sunday, 1 September 2024

The Muratori-Martin debate: Clean Code, yay or nay?

What's Clean Code to you, programmers? To some, it's the Holy Grail of programming, a state to strive for at all costs. To others, it's a pain in the butt and an impediment to getting shit done.

Many others, like myself, I suspect, fall in between these two polar extremes - Clean Code is a good-to-have, but should be sacrificed when needs must. Because all programmers have to work within the contexts and envoironments they are given, and not every one has the luxury of making demands. Code exists to add business value, period. Nobody pays programmers to write beautiful, clean code for the sake of it, or take as long as they like writing said beautiful, clean code.

Do you have a moment to talk
about our Lord and Savior
Clean Code?

That's not to say that code shouldn't be beautiful and clean; far from it, but it shouldn't be the primary or overriding goal, at least not in the business context. It certainly shouldn't be treated like some sort of religion.

If you're given the choice of speed of delivery, performance, or Clean Code? what do you choose? If you say "all of the above", chances are you'll get none of the above.

Casey's take

One Casey Muratori falls squarely into the anti Clean Code camp. He recently took to YouTube to rant about Clean Code and how it's ruinous to his profession - that of a games developer.



In the video, he goes through the principles of Clean Code, such as (paraphrased):
  1. Use Polymorphism instead of If blocks or Switch statements.
  2. Hide the internals of a class.
  3. Keep functions small.
  4. Functions should do only one thing.
  5. Don't repeat yourself.
And then he proceeds to eviscerate most of them by example, showing how much Clean Code slows the program down. Also, how breaking those rules could actually improve the code. I have to say, that was educational. And a real eye-opening live example of what I always like to say - there are no blanket solutions. One programmer's Clean Code is another's garbage.

Casey Muratori vs Uncle Bob

Cue the Clean Code fanboy outrage!

And what bigger Clean Code fanboy than "Uncle Bob" Robert C Martin himself, the author of Clean Code (which I regrettably haven't had the pleasure of reading yet)? I was alerted to the debate that had sprung up on GitHub after doing a Google search, and immediately forked that branch so I could catch up at my own leisure.

Crossing swords.

In it, Martin took on Muratori in a vigorous debate, filled with examples and counter-examples, and one amusing aside about GitHub's interface speed.

At the end of it, Muratori had this to say:
So if I had to restate the summary, I would say:
  • We both agree that complete hiding of implementation details can be useful, and that people should know how to do it.
  • We disagree on how often they should be hidden; you think the answer is "most of the time", I think the answer is "only in specific circumstances"
  • We disagree on how important the computer is. I think we need to think about the computer most of the time, whereas you do not.


In Martin's closing statement...
In my work I don't care about nanoseconds. I almost never care about microseconds. I sometimes care about milliseconds. Therefore I make the software engineering tradeoff towards programmer convenience, and long term readability and maintainability. This means that I don't want to think about the hardware. I don't want to know about Ln caches, or pipelining, or SIMD, or even how many cores there are in my processor. I want all that abstracted away from me, and I am willing to spend billions of computer cycles to attain that abstraction and separation. My concern is programmer cycles not machine cycles.


... and this.
I tip my hat, however, to your valid concern that myopically focussing on programmer cycles and utterly ignoring computer cycles can lead to horrifically inefficient systems. None of us want that; just as none of us want to work in a world where we focus solely on computer cycles to the detriment of programmer productivity.


I marvel at how classy and professional this exchange was. I've known people to get outright nasty about their geek credentials, and I've worked for code purists who constantly derided my code for not being clean enough. This debate showed me that people are capable of not making things personal where their work is concerned. That said, Robert C Martin does have a reputation to uphold, and he's probably not dumb enough to tarnish his own legacy with a public hissy fit.

Some will differ as to who won the debate. I don't think there was necessarily a winner in the classic sense - both acknowledged each other's viewpoints but retained their own opinions. If there was a winner, it was probably everyone who was privileged to witness this.

My takeaway from all this...

I hold Robert C Martin in high regard. How could I not? The man's accomplished more than I ever will, in my own industry, at my own game. And reading his work, there's this sense that I will never live up to his standards.

But here's the thing - do I want to? Should I even want to? Uncle Bob and I work in the same industry, yes, but we also work on vastly different things and with vastly different things at stake. It's like comparing a skateboard to a bicycle... not that I would ever seriously compare myself to Uncle Bob, or him to a bicycle.

Clean Code has its place. But as with most things, we should not accord it more importance than it deserves.


Cleanliness is next to Godliness!
T___T