Showing posts with label profanity alert. Show all posts
Showing posts with label profanity alert. 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.

Monday, 14 September 2026

Artificial Intelligence and Its Effect on Entry-level Hiring

Artificial Intelligence, despite not being fully-formed, is no longer merely threatening to shake up the labor market. By most accounts, it has already happened. Even if one takes "AI-washing" (where companies use AI disruption as a convenient scapegoat rather than a genuine reason for layoffs) into account, the fact of the matter is that two classes of tech workers are currently facing extinction.

The first are the leetcoders or hackathoners, who have spent their entire careers training to be the fastest code typers and problem-solvers possible. Entire movies have been made about these rockstars... and now they're finding out that they'll never produce code faster than a machine. I'm trying to find it in my heart to produce some sympathy, but honestly they should have seen this coming. This industry automates so many things; why not coding?

Very screwed.

And if your entire value proposition has been speed, I don't know what to tell ya, son, you're more screwed than a plank at a carpenter's convention.

The second class, of course, are entry-level tech workers.

Entry-level tech workers

The moment LLMs started being capable of churning out subpar code at light speed, at a fraction of the cost of hiring cheap slave labor fresh-faced geeks, the position of these tech workers was in jeopardy. And the LLMs aren't even all that subpar at the time of this writing. I have significantly more sympathy for this demographic than for the leetcoders, due to the simple fact that they never asked for any of this. They didn't make the conscious career mistake of maximizing for typing speed. They learned the fundamentals and did the work, but their careers look dead in the water before even being given a chance to pay their dues.

The bigger concern - one that's already been repeated ad nauseam, but bears repeating nonetheless - is that if entry-level workers aren't even given the opportunity to level up, they aren't going to grow into senior-level workers. And the senior-level workers won't be around forever.

Space to grow.

Entry-level workers should be given the space to make mistakes and grow. Already, "civilians" with LLMs are finding out that being able to build "working software" isn't quite the same thing as a qualified software developer producing something with a baseline level of engineering rigor. For example, I've come across civilian-produced apps that lack Cross-site Request Forgery protection or even expose database ids right in the URL. To provide non-technical readers the proper context, CSRF hasn't been in the OWASP Top Ten for years, but that doesn't mean it's no longer a threat - it just means that enough people have guarded against it that it's no longer a popular successful attack vector. Thus, this represents a step back. Civilians and entry-level workers alike, make mistakes; but unlike civilians, entry-level workers are professionally interested in improving.

Think about it - why is someone like me occupying this niche in the food chain? Because I'm so damn special? There is nothing special about me. I started life as a stupid kid like most of you schmucks reading this, and figured my way out over time. I spent years making mistakes and learning from them, and learning the right questions to ask. I have the scars that neither the entry-level tech worker or the non-tech worker do. More importantly, I was allowed to make those mistakes, in addition to performing the countless (entry-level, often repetitive) tasks that LLMs can now do... but precisely due to having developed that muscle memory, I'm now qualified to validate the LLM's output. If entry-level workers don't have even these tasks, how else will they grow?

Employers will say that it's not their responsibility to train the next generation of developers. Their primary responsibility is to their organizations. That's completely fair.

Who's the bad guy in this story, then?

Well, it's not AI. AI exists, but AI is not the one making the decision not to hire young developers. AI merely makes that decision more of a no-brainer.

It would be easy to paint employers as the bad guys here. Lazy too, and that's why I'm not going to do it.

Sure, they're the ones opting to adopt AI at the expense of entry-level (and even more senior) workers... but it's mostly in response to what their competitors are doing. Some of these employers don't have the luxury of thinking ten years into the future and investing in youth now. They're in the position where they know it's a bad idea, and they have to go ahead anyway. Shit, even some giants in Silicon Valley have to make moves that mirror the competition; what chance do the rest have, really?

The bad guy.

No one is the bad guy. It's just evolution. Insisting there has to be a bad guy is like calling the meteor that deleted all the dinosaurs way back then, the villain.

From where I sit, LLMs are the latest in a long line of evolutions in tech history. Significant? Of course. World-shattering? Whose world, exactly? People like me are on our way out. We don't exactly have much skin in the game.

Crap advice

In these times of uncertainty, the only certainty there's to be found seems to be from the voices of older workers, with a great deal of confidence as to how these new treacherous waters should be navigated. Toughen up. Pivot. Find your spine. Work hard and grow your network.

Excuse the fuck out of me. Toughen up? That's like telling people to learn to swim when a tsunami is crashing onto the beach. Sound advice under most circumstances, but useless for immediate survival.

Learn to swim!

One of the things I really can't stand about older tech workers like myself, or even just older workers my age in general, is that they seem to think that their age makes them intrinsically superior to the younger generation. Don't get me wrong; older and experienced workers come with a good deal of advantages, but it doesn't make us automatically qualified to advise the next generation on how to conduct their careers.

I mean, do you have experience as a young adult trying to find work? Sure. Do you have experience as an older worker trying to find work in 2026? Maybe. Do you know what it's like to be a young adult, trying to find work in 2026? No, pal, you don't fucking know. Obviously, you can't have firsthand experience. And unless you shut your mouth and listen more, you're not likely to have secondhand experience either.

Also, consider this: whatever know-how you may have accumulated over your years of experience has now been commoditized with a correctly-worded prompt. Knowing the right questions to ask is a whole other matter, of course. In fact, that is possibly the only thing separating you from the tech cosplayers with their LLMs pretending that they're the equivalent of fully-trained engineers (some of whom might actually even believe it, poor bastards). But at some point, these young tech workers are going to figure out the right questions to ask. They'll have your know-how, but they have youthful energy and enthusiasm. You have high cholesterol levels and creaking knees. Do the math.

What lies in store? Damn if I know.

I wouldn't want to be a young tech worker in 2026. Not only is the ground shaky, you've got people with the sheer audacity to tell you what you should be doing, in an arena they haven't fought in before. An unenviable position.

I have no answers, not even bad ones. If I did, people would be paying me for my opinion, not reading it for free on this blog.

Have an AI-dealistic day!
T___T

Monday, 13 July 2026

Hiring remote foreigners? Slow your roll, hotshot

"If I allow remote work, I'd be better off hiring programmers in Vietnam."

Sound familiar? Because that is the sound of millions of employers all over the world repeating the same old tired line. If I had a penny every time I heard some small-time Towkay-wannabe mouth off about how they'd save so much money by hiring foreign workers remotely rather than letting local talent work from home, I'd be absolutely rolling in it.

If I had a penny...

If you think this makes me sound dismissive, that's because I am. I am dismissing this line as nothing but bluster and hot air. And sit tight; I'm also about to explain why... in the Singapore context, naturally.

When it makes sense

If it's a huge MNC like, say, IBM, whose head office is in the USA and opening a regional office in Singapore, then yes, it makes total sense. Because they're already doing it. Their hiring and legal infrastructures are made for this. Even if the company is not at the scale of a large corporation, but still a respectable size, it might still make sense. It has to; plenty of these companies are doing it. The alternative is that all of them went nuts at exactly the same time... which is scarily plausible in these crazy times.

A game of expansion.

When hiring is done by the book, the host country (in this case, Singapore) and the remote country (in this case, Vietnam), both have agencies that will handle the legalities. I know because I've worked as an Agency Contractor before. These are absolutely a thing.

And of course, these agencies aren't doing it out of the goodness of their hearts. They're a business; they expect to get paid. This will eat into whatever employers think they're saving by hiring foreign workers, remote or otherwise. But that's OK - even if these tech companies don't save that much per foreign worker they hire, at scale, it tends to add up. Enormously.

When it makes less sense

A tiny tech startup trying to follow in the footsteps of a large corporation without understanding basic realities of scale, is on what I would charitably refer to as a "fool's errand". How many would such a company hire? Five programmers? Maybe ten? Whatever the company saves in wages, is nowhere what a larger company saves when hiring hundreds of these people. And if that pittance actually counts as a win, I would be deeply concerned about the finances of said company.

You sure you can
follow in those
footsteps?

I remember a time when Steve Jobs was considered the man to emulate. He was known to be a bit of an asshole, but he had undeniable talent, and thus he succeeded in spite of being hard to work for, or with. People took it to mean that in order to be as successful as Steve Jobs, one had to be an asshole. The end result was that we had quite a few Jobs-wannabes - basically talentless assholes with big dreams and even bigger mouths.

My point is, imitation may be the highest form of flattery; but for those ill-equipped to carry out said imitation, it becomes a liability quickly.

Also, consider this: any employer who isn't comfortable with employees working remotely on an island as small as Singapore, will be significantly less comfortable with employees working remotely out of Singapore.

If your employer is threatening to stop all this WFH nonsense by hiring more WFH programmers from beyond Singapore's shores, it doesn't take a genius to understand that the math does not quite add up.

When it starts being stupid

And it's at this point, where some employers will go, "Well, I'll just skip the red tape and hire direct from Vietnam, then."

Really? You're going to bypass all the legal and pertinent protections that hiring through the proper channels brings you?

How well do you know your own local employees, much less ones you hire from overseas? Do you know their residential address? And even assuming it's a verifiable genuine address, have you ever tried to navigate Vietnam using just a residential address without any understanding of the local language and conventions?

Pray tell, if the foreign software developer whom you don't know from Adam (or Minh, or Rajasamy) decides to sell your IP to the highest bidder, introduce malware into your code base or do any manner of damaging and illegal acts for profit or simply for amusement, how well do you expect to enforce your legal rights? Remember, they're not operating in Singapore, your home turf. Unlike local employees, these are foreign developers under a different jurisdiction where legal enforcement is already significantly harder - now made even more difficult because, y'know, you so cleverly bypassed the proper channels.

That's just the most extreme cases. Let's consider some less extreme but still very real considerations.

Time zones aren't that big an issue. This being Southeast Asia, assuming the employer is not adventurous (or foolhardy) enough to hire from further abroad, the time differences are off by a couple hours at most - an hour tops in the case of Vietnam. It'll need work, but it can work.

What's arguably a bigger issue, is culture. Just because you are all presumably communicating in English does not mean you speak the same language. Nuance gets lost in translation, especially if you're speaking through a computer screen. Honestly, colleagues have enough problems just communicating face-to-face, in the same culture, in the same language.

Don't cut through
this red tape.

And the most relevant question of all: Why, in the name of all that's right and holy, would anyone put themselves in this position just to save a few thousand bucks a month? Does a company that needs to save that kind of chump change so badly, really inspire confidence in you as an employee?

Anyone old enough to run a business, is too old to be this fucking dumb.

Hiring foreigners isn't foolish inherently. Hiring foreigners remotely isn't either, though significantly riskier. Hiring foreigners remotely without going through the proper channels? Reckless, and potentially illegal. Don't do it.

Conclusion and disclaimer

This is not meant to be any kind of statement against Vietnam. Vietnam absolutely does have a wealth of tech talent at affordable prices. I've worked with quite a few. I was only using Vietnam as a convenient example. I could easily have said Myanmar or India.

My point isn't that employers shouldn't hire foreigners remotely. My point is that it's not something that can just be hand-waved. Employers who have the experience and capability to carry this out, won't be talking about it because they are already - as Nike likes to say - just doing it. Or at the very least, taking cautious first steps. And the ones who are bringing it up casually as leverage during a discussion about remote work, will in all probability continue to just talk.

Your employer is not stupid. But if he's using hiring remote foreigners as a threat, he probably really hopes you are.

Tạm biệt hẹn gặp lại,
T___T

Sunday, 7 June 2026

Film Review: Black Mirror Series Seven, Redux (Part 1/3)

Welcome back! We're going to continue the review of Black Mirror Series Seven. I promise you, it doesn't let up!

The next episode is Plaything, and it's quite the mindfuck.

The Premise

Mentally disturbed Cameron Walker is hauled into a police station where he is interviewed by the police for a possible murder. What follows is Walker's telling of a bizzarre story that has a terrifying conclusion in the present day.

The Characters

Peter Capaldi provides a gripping portrayal of Cameron Walker, a computer nerd who gets sucked into the world of the Throng. And boy, does he deliver. When we first see him, he's a friendly but awfully goofy character who talks silly. By the end of the episode, he's become full-blown deranged and the twist in that master plan is served with such maniacal glee it almost hurts to watch.

Lewis Gribben is a younger Cameron Walker. Had a physical resemblance to Paul Bettany. We get to see him slowly unravel from a shy nerd to murderous lunatic. Gribben brings across the shitload of anxiety this role probably requires, really well.

James Nelson-Joyce as DCI Kano. Stern, cold, uncompromising. Chomping at the bit to prosecute Walker. I had fun watching this guy grind his teeth and try to curb his impulse to beat Cameron Walker to a pulp.

Michele Austin as Jen Minter. She's in the interview for psychological evaluation. We see glimpses of a sense of humor. She's the reasonable authority figure in the room.

Darryl Foster as PC Mo Raiker. Kind of fades into the background if not for that afro, if I'm being honest.

Ami Tredrea as WPC Yvonne Best. She looks constantly serious and focused. Of her and her partner, she's the one that gets most of the dialogue.

Will Poulter reprises his role as Colin Ritman from Bandersnatch. Poulter brings his intense stare back into the Black Mirror universe, and I am here for it! When Colin Ritman emphasizes that the Throng are living and sentient, his deadly earnest delivery really sells it. Poulter has limited screen time in this one, but he makes the absolute most of it.

Asim Chaudhry, too, reprises his role as Mohan Thakur from Bandersnatch. Part manic, part affable, all boss. "My name's Mo but you can call me God."

Josh Finan plays Lump the drug dealer with much goofiness and gusto, complete with annoying shit-eating grin and wild-eyed stare. He was hugely entertaining.

Jay Simpson is Gordon, Walker's boss at PC Zone. At first I thought I was looking at John Cusack. There's a very unsettling air of menace about him as he's on the phone pressuring Cameron to meet a deadline. This actor should have been off playing a mob boss or something, instead of this. Wasted here.

Special mention to Kave Niku as the shopkeeper in the beginning sequence. That look of exasperation was golden.

The Mood

The subdued colors, smoke and debris suggests a dystopian future at the start. In the first few minutes, the mood shifts to a police procedural vibe, with all the trappings of modern-day police drama. Halfway through, flashbacks take us in a new direction - it's a tech thriller both creepy and uncanny. Other than that, once the episode goes into the interview room, the action doesn't leave it, other than through the narrative supplied by Cameron Walker.

What I liked

The game itself looks pretty damn awesome. It's available to download on Google Play. You need a Netflix account to play it. My plate's a little full at the moment, but dammit I want to play this game.


Another thing I loved were the tie-ins to Bandersnatch. Thronglets is a game, and Bandersnatch features a gaming company. So yes, the link to Tuckersoft was genius. Bonus points for that poster of Bandersnatch II!


That twist at the end with the sharpie and how it was used. It was a deliciously horrific end.


Did I mention the sound effects from the game? The squeals, the shrilling, and the ominous hum. It all totally got me.

What I didn't

I have mixed feelings on this. On one hand, that whole surgically inserting a port into the back of his head sequence was suitably gross for a series like Black Mirror.


And on the other hand, I've always liked Black Mirror for tech that is fantastic, but at least plausible. This is just... not. It is pretty bizarre and creepy though, I'll give them that.

Conclusion

What an episode. What. An. Episode!

Plaything is probably one of the creepiest things Black Mirror has produced ever, and has one of the darkest ever endings. I don't know what the writer of this epsiode had been smoking while creating this, but whatever it was, it worked!

My Rating

9 / 10

Next

Eulogy

Monday, 27 April 2026

JavaScript's non-existent relationship to Java

Despite the fact that I can no longer, by any stretch of the imagination, be referred to as a "beginner" where my career is concerned, I sometimes do like to read beginner books on tech. It's oddly soothing. There's also plenty I can learn in terms of how to communicate tech concepts and ideas, from the authors of such books, if not the actual tech itself.

And this is one such book that I picked up from the neighborhood library recently - How to be a Web Developer, by Radu Nicoara.

This book.

Now, this isn't one of my Reference Reviews - I didn't finish reading the book and this would be dishonest. Radu Nicorara probably knows his way around the building blocks of the World Wide Web and has, again, probably done a whole lot more than I have. After all, he published a book. And I give him all the credit in the world for even attempting it.

However...

...once I got to Page 60 (or thereabouts), I encountered a statement that was so egregious that it took me out of reading the book entirely. Not that I ever found the book all that engaging in the first place.

This passage shocked me.



JavaScript is a scripting language (meaning the code is not precompiled) that's derived from the Java programming language, hence the name.
I was in complete disbelief when I saw this. Just to be sure, I sent a photograph of the page to Meta AI, and Meta AI being the nice little bot it was, it described the passage as "a bit misleading".

A bit misleading?! Try "completely false".

The error

For anyone who might be tempted to repeat this, JavaScript is not derived from Java. Aside from the fact that they may both be described as programming languages (coding pedants may insist that in JavaScript's case, it's a loose description) they don't actually have anything to do with each other.

JavaScript began life as a loosely-typed client-side language meant for browsers to interpret. Java was (and still is) a strongly-typed compiled programming language. The names are similar, and the syntaxes are similar. But that's where the similarities end, and even these similarities can't be used as evidence for JavaScript's relationship to Java.

In fact, JavaScript's original name was Mocha. Yes, as in the coffee. It was changed to "JavaScript" as some kind of marketing ploy to mislead people into thinking it was a child of Java. Well, guess it worked!

Fancy a cuppa Mocha, luv?

This reminds me of an encounter on the Clubhouse app where I heard some American woman make the ridiculous claim that in the Chinese language, "the words for danger and opportunity are the same".  John F Kennedy, the 35th President of the USA, was the first to say this back in 1960, and he was wrong. In Chinese, danger is "危机" and opportunity is "机会". Both words contain the word "机", but "机" is also a suffix commonly used to describe machines such as "飞机" (flying machine, a.k.a aeroplane), "手机" (hand machine, a.k.a mobile phone) and "耳机" (ear machine, a.k.a earphones). At the risk of stating the painfully obvious - aeroplanes, mobile phones and earphones have fuck-all to do with danger or opportunity, just as JavaScript has no relation to Java.

Which tells us a couple things - just because two words sound the same or contain subsets of each other, does not make the things they are describing, related. Thus, just because Java and JavaScript both contain the words "Java", it doesn't follow that they're related in any way. The second thing this tells us is, if you don't speak a language, maybe keep the witty quotes to a minimum unless looking stupid brings you deep emotional satisfaction.

As for syntax, both Java and JavaScript's syntax is based on C. Curly brackets, semi-colons, function declarations and so on. But this similarity is not confined to Java and JavaScript. Several other languages such as PHP and C# also have great syntax similarities with Java. In terms of similarity, C# is even closer to Java than JavaScript is.

All in all...

It's not my intention to jump on Nicoara for this error. Whomever his editor was, shares the blame for this. And this glaring factual error aside, what little I read of his book seemed sensible. Therefore, I didn't contact Nicoara and inform him of this boo-boo. What good would it do? It's not like one can un-publish this book.

Besides, I'm not exactly perfect. Early in my blogging days, I probably made my fair share of factual errors. Though, in all fairness, it's not like I'm profiting off my blog, or asking people to pay for it.

All that aside, I used this as a teachable moment. Even if that little piece of programming history I taught was dryer than a nun's coochie.

Java nice day!
T___T

Friday, 17 April 2026

Film Review: Black Mirror Series Seven (Part 3/3)

Up next, we have Hotel Reverie.

The Premise

Brandy Friday signs up for the lead role in a movie reboot which is a computer-generated simulation of the original. This involves transporting her consciousness to a computer-generated environment.

The Characters

Issa Rae has an enjoyable outing as Brandy Friday. This is probably an unpopular opinion, but I think she absolutely nailed this role, especially when her character is playing the role of Dr Alex Palmer. There's an easy charm about that smile, that just looks so effortless. And her portrayal of an actress who wants to break out of gender stereotypes, is pretty compelling.


Emma Corrin plays Dorothy Chambers with a certain wistful sweetness that fits the story to a tee. A closeted lesbian who put herself into her roles on-screen. When I found out she also played Cassandra Nova in Deadpool & Wolverine, and Anna Harding (the pregnant wife) in Nosferatu, I was knocked for a loop. Corrin is so versatile, I didn't even recognize her!

Awkwafina as Kimmy. A fun role, though I feel like Awkwafina could have done so much more. Kimmy is basically the desperate and harried film exec who wants to get a movie made. I don't ever recall -not- enjoying watching Awkwafina on screen, but let's be honest, she was criminally underused here.

Harriet Walter brings a certain dry wit to the role of Judith Keyworth, owner of Keyworth Productions. She's occasionally snarky and delivers reality checks in straightforward, unvarnished style. I really dug her delivery of the line "NFI - not fucking interested".

Stanley Weber as Dorothy's onscreen husband Claude. Mustache-twirling villain.

Farid Larbi as Inspector Lavigne. Another one-note role.

Elaine Claxton as dog owner Madame Roban. Played this Karen in a black-and-white movie. She was fun to watch, in small doses at least.

Elliot Barnes-Worrell is in this episode for a few minutes Brandy's agent Quarterman. He's played as cavalier, snarky and dismissive... and he looked like he would be a nice addition to the cast. Except, after his first few minutes, we never see him again.

Charlie Hiscock as bumbling techie Jack. Hiscock plays him as a competent but complacent techie who gets whiny when he's stressed, and delivers some tech exposition.

Enzo Cilenti as Ralph Redwell. He's mostly seen in flashbacks, the typical beefy suave protagonist of black-and-white film. Cheesy, but effective.

Tessa Wong as Asian girl writer, Crystal. She plays a comedic role, at one point seeming more concerned with getting writing credit than saving Brandy's life. That was cute.

Magnus Brunn as Dieter. He's the guy who reads the romance meter. Kind of useless, to be honest.

Danielle Vitalis as black girl tech, Mika. Maybe it's just me, but it felt like she was making up the numbers. This is her second bit part in the Black Mirror series. The first was in Joan Is Awful, and this time round the role feels even less relevant.

Natalia Kostrzewa as nnamed delivery girl. It was an entertaining few seconds as she went all fangirl on Brandy only to reveal that she was actually more interested in her male co-star.

The Mood

It's a little humdrum at first, but soon we enter the black-and-white environment of the movie and ironically, things get pretty colorful from here as we switch rapidly between that environment and the "real world".



The narrative tension is raised towards the end, because this is Black Mirror and we're never completely sure who survives the episode.

What I liked

The interracial lesbian relationship between brandy Friday and Dorothy Chambers. Yes, I know, I've complained in the past that Black Mirror seems to insist on shoving interracial relationships down our throats, especially of the black-white variety. And this isn't even the first black-white interracial lesbian coupling, the first being San Juniperio. But this one was different. The lesbian part was actually an integral part of the story. Brandy Friday's identity as a black woman was actually acknowledged by the plot. It didn't feel like yet another box-checking exercise and giving us an interracial lesbian couple just for the sake of it. If anything, it felt like this episode was taking shots at Hollywood for its overeagerness in race and gender swapping in its reboots.

The concept of ReDream. It is pretty neat, and fits into the concept of generative AI as we know it today. Not exactly, but pretty damn close! What with the main character's consciousness being implanted into a computer-generated simulation and all.



This was one of those shows where the women had the most to do, and the men were either relegated to useless minor roles, or portrayed as incompetent buffoons. I should be annoyed, but in truth, I barely noticed it, even after watching the episode twice. It only just occurred to me, when writing this review. I mean, if any movie or show wants to go this route, they should absolutely take a leaf from this episode's book. It was done so masterfully, so subtly, as to be almost unnoticeable. Or maybe I'm just oblivious.

What I didn't

Dropping the USB device was relevant to the plot, because it resulted in Kimmy explaining things to Brandy (and to the audience) what ReDream does. But really, why bother when they could have Kimmy do that anyway, without that little plot device?


If ReDream could do all that, why would they even need an actual actor? Or actress? This part was never made clear.

Conclusion

This was actually pretty good. There was the risk of the whole virtual reality angle being played out in the Black Mirror series, but they somehow managed to make it feel refreshing. Never have I found a black-and-white setting so utterly compelling.

My Rating

9 / 10

Thoughts on Black Mirror Series Seven so far

I was blown away. I haven't felt this much optimism since Series Four. This feels like a return to form. Each episode so far, has been classic Black Mirror stuff. It started with the gut punch that was Common People, took a slight dip with Bête Noire, then came back strong with Hotel Reverie. The first three episodes of this series have so far trumped the entirety of Series Five and Six!

I'm TFI! Totally Fucking Interested!
T___T

Friday, 10 October 2025

TeochewThunder: Year Eleven (Part 1/2)

Well, look who turns 11 this year! It's not me (I wish), but it's this blog, of course. This thing here might just be a substitute for the children I'm never planning to have.

Dear God, please no.

In all seriousness though, it occurs to me that the effort taken to maintain this blog and the website has pretty much kept me sane all these years. I read somewhere about journalling with regard to mental health, and it seems that this blog is a great example of journalling. Why's it different from venting on Facebook or X, you might ask?

Well, for one, Social Media posts tend to be a lot shorter and more unfiltered. Which can be a good thing, don't get me wrong, but not necessarily so if you want a more thorough internal audit. Blog posts go through several revisions, as we examine what's going on in our heads, and why, and maybe even how it pertains to the tech space. The final result is a more measured, more self-examined output into the stratosphere. As such, I consider my blogposts of higher quality than a simple vomiting of my initial reactions on Social Media platforms.

That isn't to say I haven't said stupid shit in the past. I absolutely have. But the beauty of time is that as the years go by, I can evolve into less of s shit-talker and more of a shit-thinker. Yikes, that didn't sound better, did it?

Dedication

Also, this is a blog I'm dedicated to.

Dedication is a measure of how consistent you're willing to be in your efforts even without applause or acknowledgement. It's a measure of how much of a shit I give. And I give a lot.

Think about it. In previous years, I could at least justify the effort by the way prospective employers would look at my entire online portfolio. These days, they don't do that anymore (also, I haven't been looking in a while) because even the demos I put out are kids' stuff. I like to think some of it is really well-done, but well-done or not, it's still kids' stuff. Those are just not the things people hire senior developers for, especially not in the age of Artificial Intelligence and Vibe Coding.

So no... there are no longer practical reasons for maintaining this effort. I do these things because I like doing these things.

That's not to say I don't occasionally benefit from a break. And October is my assigned month for that break. Other than this blogpost, there will be no other visible activity. Emphasis on the word visible.

Invisible hands, invisible effort.

You see, as in most software development, the value is largely in the stuff that users don't see. The optimizations. The security fixes. The fine-tuning in the back. That's not to say there's no value in the stuff that's visible, but sometimes I feel like a lot of that is just to placate laypersons who don't know any better.

That's a controversial statement which we should reserve for another day.

To my original point, there is going to be work done. Just not visible work. Mostly prep for year-end, and 2026.

Content

As with last year, I've been making an effort to use less profanities in my writing. Not because I necessarily think the odd (or even frequent) vulgarity is a bad thing, mind you. More because I don't want to develop an over-reliance on anything, not even swearing. I don't want to have to use foul language as a crutch to express myself. It's just poor form. To that end, I am limiting myself to using it only a few times a year in this blog, usually whenever I review a Black Mirror episode. I certainly won't be using them with the same frequency during, say, 2019 to 2022, around the COVID-19 pandemic.

Speaking of which, as the horrors of the past few years fade behind us, I'll hopefully be speaking less about COVID-19 from this year forth. It was a terrible few years, and my emotion-laden rants during that period are evidence of that, but it's time to move on.

You may have noticed that the posts are getting even shorter than they used to. This is not an accident; rather it is the natural evolution of this blog. I wasn't verbally verbose before (at least I hope not) but reading other blogposts and tuning out halfway has made me realize that the lack of attention span on the internet is a very real thing. As a result, I'm going to curb any impulse I may have, to belabor whatever points I may be making.

What else? Yeah I changed the TeochewThunder logo. Talked about that already, didn't I? Hope you like it. If you don't, too fucking bad, baby. It's staying.

Surprise!

This is a tech blog, so I talked a whole lot about tech this year, as always. In particular, I talked about Artificial Intelligence. I suspect that this will be happening with alarming regularity, especially with the frequency with which laypersons feel the need to chime in. Someone's got to show 'em their place! Just kidding... kinda.

As for web tutorials, there's been a nice mix that includes NodeJS and NextJS. and D3. Along with the almost obligatory HTML, CSS, JavaScript sprinkled with the occasional PHP, of course. I started learning NodeJS, as usual, for the heck of it. It increased my understanding of what I was doing with ReactJS and NextJS, so there was value in it.

I've continued to generate images from AI, but the pendulum has swung back somewhat and once again I've begun to see value in using stock photos.

Next

Highs, lows, hits and misses

Monday, 8 September 2025

Five Tech Support Horror Stories

The early years of my career were in tech support. As with any other job, there were good days and there were bad days. After the third year at the job, the bad days started to outnumber the good. It all seems hilarious in hindsight now, but there were some days where things in this list caused me to question my career choices.

Until one day it all came to a head and I decided I'd had enough, and started over in web development.

Sometimes I get together with some friends who are still in tech support, and we trade horror stories of the users we have to help. These are some of the stories that get 'em, every time.

1. Plugging in

This is actually a fairly common one, but let's start small. You get called to a user's desk because the desktop computer refused to turn on no matter how many times they pressed the On/Off button. And they even checked if the main switch was on. And judging from the light, it was.

Not plugged in.

However, upon closer examination, it turned out that the cord wasn't plugged in. Yes, you read that right - the power was on but the plug was just halfway into the socket and needed to penetrate another two inches before the computer could actually benefit from that power source.

Sound stupid? Welcome to my life at that time, buddy.

2. Opening Excel

Another alarmingly commonplace occurence was getting called into the office of some hotshot executive who was encountering an issue opening a MS PowerPoint file in his (or sometimes, her) MS Excel application.

Now, if you're still scratching your head and wondering why that's a problem, reread the preceding sentence. MS PowerPoint file. MS Excel application.

Just a bad fit.

I dunno, that was the early 2000s, and attempting stuff like that smacked of trying to fit a square peg in a round hole. It was amusing the first couple times, and then it got old real fast.

3. Infinite scroll

This was was so cartoonish it was almost amusing. I got a panicked call to a user's desk because her MS Excel spreadsheet was scrolling endlessly downwards on her screen and she couldn't understand why. It conjured up images of getting hacked, a malfunctioning monitor and whatnot.

The truth was even funnier.

Held down the ENTER key.

I got there, and the first thing I did was remove the heavy binder from her keyboard, which had been pressing down on the ENTER key and causing MS Excel to react as though some user was holding down that key.

4. Email Signature

This particular incident did not happen during my years of Desktop Support, but rather during my fledgling years as a web developer. However, the incident in question made me more determined than ever to never get back to Desktop Support.

A user had asked me to help set up her email signature because she had no clue how to use MS Outlook. I obliged, because I know sometimes Microsoft software functionality can be hidden in the darnedest places. But then after I got into the interface, input the standard company email signature template, I asked her to type in her name into the box and click the SAVE button.

Yay! We're now
qualified to type
our own names!

Guess what she told me?
"You should do it. You have an IT Degree."


That level of entitlement was staggering. What was she implying now, that she needed an IT Degree to type in her own goddamn name? What foolishness was this? This wasn't a competence issue. This was an attitude issue. And the less of this I see in the workplace, the better. There's no place for this nonsense in any work environment. Hopefully this woman has since retired. At the very least, she's someone else's problem.

5. Emails

This is also a fairly common complaint among grunts, not just tech grunts - people feeling like they're entitled to your time outside of office hours.

I remember having a dinner appointment with someone, and Human Resources asking me to stay back because they needed me to, wait for it, retrieve some emails from the email server backups between three of the staff. Staff they were planning to terminate, thus they needed evidence of wrongdoing as leverage.

A whole bunch of
DVD backups.

Basically, nothing was on fire. They just needed me to help cover their asses. Hours later, as I was retrieving yet another batch (back then, it was the era where stuff like that was stored on DVDs), when HR asked me: "I'm sorry, did you have something on tonight?"

Seriously, lady, if the answer was "yes" would it have made a difference? If not, how about just shutting the fuck up? You know what's worse than people who don't care? People who don't care and try to act (badly) like they do.

Phew!

I wouldn't say any one incident turned me off of Desktop Support. Even on its own, it can be a repetitive grind that wears on the soul. But these were the war stories that I shared with the guys. And their reactions suggested that these occurrences weren't at all unheard of. Some of their stories were even more unbelievable than mine.

No, you don't need an IT Degree to read this,
T___T

Thursday, 21 August 2025

Film Review: Black Mirror Series Six (Part 3/3)

This next one might just be my favorite of the entire bunch. It's called Beyond The Sea.

The Premise

Stanfield and Ross are two astronauts who live on a space station. They are able to visit their families by means of a technology that can transport their consciousness to avatars (called "Replicas") on Earth. Tragedy strikes as the family of one astronaut is murdered...

The Characters

Aaron Paul delivers a surprisingly nuanced performance as Cliff Stanfield, a taciturn and emotionally distant husband and father. My only experience with Paul on-screen is as Jesse Pinkman in Breaking Bad. This is Aaron Paul's second time in Black Mirror, having had a cameo voice-over in the episode USS Callister. Here, he has a dual role, sometimes acting as Cliff, and sometimes acting as David.

Former teen heartthrob Josh Hartnett takes on the role of the charming family man David Ross, Stanfield's colleague. And let me just say that Hartnett is severely underrated as an actor. From his early roles in 40 Days and 40 Nights and Pearl Harbor, I had him pegged as the Pretty Boy. But recently I saw him in Trap. And now this. Hartnett had me liking Ross, feeling sad for Ross, disliking Ross, hating Ross, and finally being utterly fucking terrified of Ross.

Kate Mara as Lana Stanfield, Cliff Stanfield's wife. I've only ever seen Kate Mara in House of Cards and the ill-fated Fantastic Four. At first, the role felt like one anyone could have done, but after Lisa Stanfield reveals the fact that her loyalty to her husband runs far deeper than the audience was led to believe, Kate Mara utterly sold me on her performance. Marvellous stuff.

Auden Thornton as Jessica Ross. This is really a thankless role. Thornton gets groped by Hartnett and then has to look tearful and terrified in another scene, and that's it for her.

Daniel Bell as Cliff's son Henry Stanfield. He's a meek, quiet kid with almost zero personality. The audience is led to believe that Cliff oppressed it out of him, but there are times we do see Cliff doing dad-stuff with his son, so I'm not really sure what they were going for here.

Rory Culkin has a small but memorable role as Kappa. All glowery menace and unhinged dialog.

Marama Corlett, Siân Davis and Ioachim Ciobanu as Theta, Sigma, Epsilon. I'm not sure I can tell them apart, really. They're just there as Kappa's insane sidekicks.

The Mood

It's a serene futuristic setup when in space, but when back on Earth, it's retro-style picket fences. That's because for some reason, this episode takes place in a reimagined past. This episode is long and takes a while to get to the meat of the story from the setup, so for the most part, it's quiet, somewhat sad in places, and interspersed with scenes of horrific violence.

What I liked

The beginning parts where they threw little hints that David and Cliff were... unusual. From the fans at the cinema theater to Cliff saying Grace but not actually eating with his family.

The shot of the spaceship is pretty neat, gotta say.


And also the design of their sleeping quarters.


Whatever it was I was expecting when they cut Ross open... it wasn't this. Honestly, I was expecting a metal skeleton of some kind. Not this... gel?! Mind blown. Points for originality!


That twist at the end... oof. I really thought Ross was going to murder Stanfield or something, but no, I was totally blindsided. In fact, the entire episode subverted my expectations again and again.

The characters and the dialogue are pretty well-done. It wasn't just the work of the actors that made these characters shine; it was the way they were -written-. Cliff and David weren't just good or bad guys, they were relatable, flawed men who loved sincerely and deeply. As they went back-and-forth, my sympathies shifted from David, to Cliff, then to David again. I know none of the characters actually deserved what they eventually got, but at some points they let the worst parts of themselves come through, with tragic results.

Also some of the details were pretty nice. Like when Cliff searches David's quarters and we see all the stuff his kids left for him.




What I didn't

You'd think that with these high stakes, the company would send more than the mimimum headcount out in space. It makes no kind of sense. Two people leaves very little wriggle room for accidents, mishaps and the like. This is an extended trip in space, not a buddy cop patrol beat. What's worse, the two-man thing was actually a major plot point, which drive many of the characters' decisions. Too bad it didn't make sense in the first place.

This episode went on a little long, but it's a minor quibble and one I'm inclined to forgive, all things considered.

Conclusion

Possibly the strongest episode so far, despite its flaws. That twist hit like a gut punch. The story played me like a fiddle from start to finish. And that ending was really the fucked-up finish to end all fucked-up finishes.

My Rating

9 / 10

Thoughts on Black Mirror Series Six so far

As with previous seasons, this one has been a mixed bag. Mostly positive, though. Even the one episode, Loch Henry, that I didn't like that much, was pretty good. And I didn't dislike it, just didn't think it belonged in Black Mirror. But honestly, these first three episodes are a huge improvement over Series Five.

So far, Series Six isn't Awful!
T___T

Sunday, 17 August 2025

Film Review: Black Mirror Series Six (Part 1/3)

Series Six of Black Mirror is here, and what a ride it's going to be. Mind you, not always for the right reasons. You see, there was just something really underwhelming about this iteration of Black Mirror, even considering its predecessor, Black Mirror Series Five.


But you know what, I'm getting ahead of myself here. Let's give Black Mirror Series Six a fair shake and go through an episode-by-episode review before I sum up my general thoughts, eh?

Warning - many spoilers ahead...

You know the drill by now. Black Mirror is chock-full of shocking scenes and even more shocking language. And I'm going to spoil the ever-loving heck out of this one, so strap in, son!

We'll start with the first episode, Joan is Awful.

The Premise

Joan notices that a new series has premiered on her streaming service, Streamberry. To her horror, it's a series about her everyday life and mirrors everything up to and including the point where she's watching the series. Soon, everyone around her has a view into her private business now that it's available as public TV...

The Characters

Anne Murphy takes on the roles of Joan Tait and herself. Murphy really dials it up to eleven with the panic attack mid-way through the show.

Salma Hayek, similarly, takes on the roles of Joan Tait and herself. I believe that Salma Hayek needs no introduction, having graced the feverish dreams of teenage boys like myself in her 1996 hit From Dusk Till Dawn. Even having last seen her in a comedic role in The Hitman's Bodyguard, I was blown away by how willing Hayek was to ham it up. She looked like she was really having fun here.

Michael Cera as Beppe, the nerdy tech who explains everything to Joan, and by extension, the audience. He did well, I was so engaged.

Avi Nash as Krish. I've only seen this guy in The Walking Dead and I didn't know he could be this dramatic! Hats off!

Himesh Patek as Krish. Looking way more serious than Nash in that role!

Rob Dalney as Mac. Gave off instant douchebag fuckboy vibes. Dalney was effortlessly smarmy in the role.

Ben Barnes as Mac. I remember him as Jigsaw from Punisher. He makes a very limited appearance here and only really needs to look pretty.

Ayo Edebiri as Sandy. What we mostly see of her is at the scene where she gets canned. I thought she did a pretty good job representing the stages of grief with what little time she had. Denial ("I thought we were friends"), anger("You're a coward, Joan!"), bargaining("Please don't do this. Please. Not now!")...

Lolly Adefope as Joan's lawyer. I really liked the dialog here. Adefope delivers the entire "you're screwed" explanation with such creative flair.

Wunmi Mosaku as lawyer. Didn't I see her in Playtest? Well, the role here is basically regurgitating everything that Adefope already said as the lawyer, so it's not all that interesting.

Jared Goldtein as Eric. Dude delivers is lines. I love that he's gay but not over-the-top with it. Didn't even realize the character was gay until that scene with his boyfriend!

Jaboukie Young-White as Eric. I whooped when I saw this. I watch a lot of The Daily Show, that's why.

Kayla Lorette makes a brief appearance as the actual Joan Tait. Would have been hilarious and deeply ironic if they'd used a really big name for this role, but I guess that would have been a really expensive gag.

Leila Farzad plays Streamberry CEO Mona Javadi. She comes across as a massive asshole, which is great. Because this episode really needs something other than a faceless quantum computer to be the villain.

Danielle Vitalis as Fatima Klaas, the journalist who's interviewing Mona Javadi. She plays this role straight, looking both concerned and alarmed at the implications of what Javadi is showing her. In a sense, she's a conduit for the audience.


Luke Beattie is Brutus the security guard. This dude sure didn't look like a "Brutus". Sure, it was a bit part, but musclebound meatheads are everywhere, the show producers really could have done better.


Rich Fulcher as Gainsborough, Salma Hawek's lawyer. He's meek and befuddled, but he can't do shit, so I kind of felt for the character there as he got chewed out by Salma Hayek.

The Mood

The atmosphere is bright and the vibes are light even as disaster after disaster occurs. This episode is more of a comedy adventure than a tragedy, and it shows.

What I liked

The concept of Streamberry (looking uncannily close to Black Mirror's current platform Netflix) is deliciously on the nose. And also, the title design for this episode is so apt!


When Joan and Krish are going through Streamberry's shows for the first time, we're seeing references to other Black Mirror episodes. So cheeky!

The twist at the end gave rise to so many questions. Like, if everything that happens in the series is a mirror of what went on in "real life", did the real Joan Tait actually defecate in a Church?! Holy shit. Literally!

Now, I normally don't like a huge cast, but in this case it was absolutely justified. The big names such as Salma Hayek and Cate Blanchett (in the role and non-speaking cameo respectively) just added layers of context. Plus, it just tickled me.

What I didn't

After Joan's lawyer explains how Streamberry knows everything in real-time due to her phone eavesdropping on her, Joan still goes ahead and has sex with Mac (or attempts to) without taking the proper precautions?! Um...

While I loved having Salma Hayek in the cast, it just didn't make sense that this basically meant that the role of Joan Tait was race-swopped. Which in itself wasn't that big a deal, until I noticed that this was the only role where it happened. Consistency, people!


I was not really buying that quamputer design as this mega-processor. I'm supposed to believe that this is the machine behind those huge virtual worlds, the AI generation and stuff?!

Conclusion

This entire episode is a goofy and sometimes gaudy spectacle. There's never any sense of high stakes - even as horrible things keep happening to our protagonist, they're played more for laughs. And that's not a criticism - it's perfect for this episode. Twists are aplenty. It's a wacky fun time for all, even without the typical Black Mirror tragic ending.

My Rating

8.5 / 10

Next

Loch Henry