Thoughts on Star Trek: Strange New Worlds and "Nu Trek" in general

Sat 01 April 2023

I haven't surprisingly written about Star Trek before on this blog despite being an ardent Trekkie since childhood. I complained previously about my disappointment with the new Star Wars Films but I was never as committed to its universe compared to Trek. I grew up on TNG and then moved on DS9 and Voyager (and also the TNG films). The Utopian ideals that were embedded in these shows greatly influenced my own political views on how society should be constructed and behave.

The 90s were the golden age of Trek for me. The beginning of the decline started with Enterprise. It didn't feel like Trek to me (some say the blame lies with the TNG films). The later rebooted films were fun popcorn fares but felt even less close to the spirit of Trek.

I had huge hopes for Discovery when it was announced in the early 2010s but was gravely disappointed with what came out. It was just a mess. I appreciated the talented and diverse caste but the story and the world development was a fiasco. Season 2 in particular was atrocious. The quite, polite and introspective nature of 90s Trek was absent. You could excuse that in the flashy blockbuster films but not here. The whole invention of an intergalactic fungal highway to facilitate FTL was so stupid it was funny. I kept watching because that was the only Trek available at the time.

When I heard about Picard I was ecstatic. The character of Picard was an inspiration to me and I didn't foresee they would proceed to ruin this too. I envisaged Picard living a quite, retired life in his rural chateau, helping inspire youth in his community to also reach for the stars, provide expert guidance on local issues/disputes and maybe solve small local mysteries/crime here and there. The early trailers certainly hinted at this. Like Discovery, what came next was just bad. Season 2 started out strong but quickly devolved into hilarity. The plot arcs were nonsensical and ill-thought. Seeing iconic characters and lore get trashed like this has been very disappointing.

Some comments on the recent cartoons... Lower Decks has been so-so, it's main problem is that it tries far too hard to be funny rather than sci-fi. Prodigy was better and has more potential but still doesn't fully feel like Trek and its clear it is aimed at a much younger audience. What has been missing on all these Nu-Trek iterations has been the absence of the optimistic and utopian ideals of Classic and TNG-era Trek. It's mostly dark, gritty, violent and nihilistic but not in any sort of smart way. Paradoxically there also a lot of cheap, contrived sentimentality and emotional instability among the crew which was jarring compared to the professional demeanor and standards of earlier Trek crews. Great comparison on this from the Red Letter Media folks.

So I didn't have much hope for Strange New Worlds when it was announced. I was expecting more of the same in line with Discovery and Picard. But I have been greatly and pleasantly surprised. This is a show that feels like 90s Trek. The first episode was maybe a bit too preachy but it fully endorsed the classic utopian vision of humanity and intergalactic cooperation envisioned in Classic and TNG-era Trek. The story didn't revolve around a single protagonist but the entire crew working together to solve a crisis. The classic ethical dilemma of whether to break the "Prime Directive" was satisfactorily explored in both episode 1 and 2. The rest of the season generally didn't disappoint and continued in the same vein interspersed with some nice action oriented episodes.

Minor criticism (and spoilers) include needless nostalgia bait (e.g. why make La'an part of the Noonien-Singh tribe?) and the Gorn threat seemed to be clumsily retconned in. But I think I can overlook this. Trek feels like it is back.

PS - I have neglected this blog for a while due to work and family life but aim to get back into regularly writing again.

PPS - I am currently going through Picard Season 3 which is a definite improvement over earlier 2 seasons but I still have the same basic gripes. Maybe I will write on this later.

Running commands in multiple panes in tmux

Fri 29 June 2018

I recently discovered this neat feature in tmux which has changed my life. To repeat the same command in multiple panes in a tmux window, hit your tmux prefix and enter:

:setw synchronize-panes

Run the same command again to toggle off.

Thanks to Jahan Syed for this tip.

Decommissioning my Raspberry Pi

Thu 28 June 2018

A few weeks ago I decided to retire my beloved raspberry Pi (model 1 B) which I have been using as a dedicated home media center and a file/DNS/web/proxy/vpn/torrent/tor server for the past 3 years. I had purchased an Amazon firestick which took over media player duties (I highly recommend it) and this got me thinking whether I could upgrade from the model 1B.

The Pi always got the job done but it was definitely on the slow-ish side. I wanted to know if I could do better. I looked into the latest model which is a much more beefy little machine with 1GB of RAM and a 1.2 GHz CPU. But then I remembered that I had a Dell Mini 10 netbook languishing in the corner of my room. The last time I had used it was a good 2-3 years ago while experimenting with Arch Linux.

So I decided to use that instead. It is equipped with a 1.6GHz Intel Atom processor and 1GB of RAM so would definitely be an upgrade. Power consumption would be low due to the ultra low power nature of the CPU making this an ideal home server. I wiped the disk, installed Debian Stretch on it and copied over my settings and files. Within an hour or two I was up and running

Understandably it is running a lot faster than the Pi and will probably serve me a good few years barring any hardware failures.

I'm not sure what use I can put my little Pi to now though. I bought it just to tinker but it ended up inadvertently becoming a reliable home server. The fact that it was able to reliably carry out all those duties for so long is a testament to its hardiness and also the power of a good stripped down Linux distro.

Film review - Star Wars: Episode VIII - The Last Jedi

Wed 20 December 2017

I had the "pleasure" of watching the latest installment of the Star Wars Saga - The Last Jedi - over the weekend. After reading through some of the glowing reviews online by professional critics, I was really looking forward to it. Taking the reviews at face value I was anticipating a real tour de force of action, adventure, twists, surprises, revelations, emotion, and of course, epic space battles. I only experienced the epic space battles and that was about it.

(Warning: Spoiler below!)

I was bored throughout the film and left the the theatre in a confused daze. It was a poor film by both Star Wars and general standards. Being a bit of a lore buff, I was particularly looking forward to getting to know much more about what happened in the aftermath of the Rebel Victory as was seen in The Return of Jedi, the origins of the First Order and how they came to amass their immense power, the background and motivations of Snoke, how Kylo Ren was turned, Rey's parentage etc.

I didn't get any of that. The Director's intent throughout seemed to be more of a gratuitous "out with the old, in with the new", mirroring Kylo Ren's weird obsession with destroying the old order and creating a new one. Continuity and plot development doesn't matter. I found this disappointing, irritating and even a bit offensive.

It would be one thing to break with the Canon of the original trilogy and the "prequels" - I can somewhat understand that. But there was no attempt to sincerely carry forward the story and answer some of the questions raised in the previous film, The Force Awakens. Instead all we got were a lot of nice special effects, space battles and some nice fight scenes. As if that would be enough to distract us from questions we wanted answered from the previous film and the glaring plot holes, absurdities and inexplicable behaviour of the characters that pervades this one.

Luke's behaviour, for example, was completely bizarre and completely in contrast to the brazen determination and unrelenting optimism he exhibited throughout the original trilogy. The "reasons" given for this radical change in character (namely, his supposed failure in keeping his nephew on the straight and narrow) doesn't really make much sense. This is a guy who refused to give up on his father despite the latter's genocidal crimes.

In terms of the general structure and editing, the film was a long mess. Large sections of the film seemed to comprise of a bunch of cut scenes carelessly put together without much thought for flow and coherence. This was not helped by the multiple nonsensical threads of the film arising from the inexplicable behaviour of some of the main characters. For example the Casino Planet segment was boring, cheesy and totally unnecessary given that the whole charade could have been avoided if Holdo had simply told Dameron that her plan was to evacuate to the salt flat planet all along. The film was also too long given how boredom inducing it was and I was honestly waiting to leave the theatre.

Were there some positive or redeeming areas? Sure, like any film, but not enough to salvage the film as a whole. The fight scenes, special effects and space battles were impressive as can be expected from such a huge franchise. The cast was also diverse and talented, and there was some brilliant acting, particularly from Hamill, who deserves an Oscar for making the most of the poor writing. We also got to see Yoda again so that's definitely a positive.

I don't have much hopes for the Star Wars IX really. This film will inevitably be a huge box office success and that's what really matters to the people at Disney. They have no reason not to produce more of the same. And that's a real shame.

If I had to give this film a score, I'd give it a 5/10.

Warning: Docker does not play well with UFW

Sat 09 December 2017

So I was experimenting with docker a few weeks ago on my VPS (running Debian 9). In particular I was trying to create a memory limited container for running go-ipfs that would function well in the low memory environment (the VPS only has 1GB RAM). As mentioned previously, go-ipfs is quite RAM greedy. Enough to swallow all available memory and send my server into a slow swapping hell for a good few hours until the kernel OOM killer sprang into action.

I ran something like the following to create/start the container:

$ docker run -p4001:4001 -p5001:5001 -p8080:8080 -m 256M --name ipfs-node \
    --restart always my_ipfs_image

which opens and forwards ports 4001, 5001 and 8080 from the host into the container. Technically, only port 4001 (tcp) is supposed to be exposed to the outside world according to the IPFS docs (5001 is the API port and is most definitely not supposed to be accessible from the internets and 8080 is the IPFS gateway).

I wasn't the least bit concerned about running the above command since I had UFW set to deny all incoming connections by default (with exceptions for SSH and some other services I ran). For those not familiar with UFW, it's a simple front-end for iptables (a utility to configure the Linux firewall). It has served me well for almost 10 years.

Little did I know that docker is designed to sidestep tools like UFW and directly make changes to iptables to perform port forwarding and NAT. And worse still UFW was completely oblivious to these changes. By sheer luck I ran an nmap scan on my VPS from home and realized what was happening. Googling "UFW docker" showed that this was a known issue.

I initially just gave up on the container route to handle the go-ipfs memory problems and created a script to restart its daemon every 12 hours. But I came across a simple solution to the problem yesterday via this excellent blog post.

In short, to get docker to work with UFW, the steps are (as root):

$ echo "{
\"iptables\": false
}" > /etc/docker/daemon.json
$ sed -i -e 's/DEFAULT_FORWARD_POLICY="DROP"/DEFAULT_FORWARD_POLICY="ACCEPT"/g' /etc/default/ufw
$ systemctl reboot # reboot your machine 
$ iptables -t nat -A POSTROUTING ! -o docker0 -s 172.17.0.0/16 -j MASQUERADE

And now you can use docker with UFW in peace!