I bought the game for 3€ in a Steam sale, and for that money it is well worth the time.
The game runs very smooth on a 16GB machine with an RTX 1080 card.
The Good
Story
Story is serviceable. The Bad Guy is Really Evil. You are the son of a resistance fighter in some random tibetan/nepalese/whatever country. Your mother
left for the US with you as a child, but for some reason still trained you to be a fighter. At least, nobody mentions or wonders why you are handy with all
those weapons that are lying around. Also, nobody asks
where you were or how your life was, but accepts you as the son of the former leader. The story sets you up in the game and is motivation for some of
the missions, and that's it. It is by lengths better than in Assassins Creed: Origins (the "Egypt" episode).
Gameplay
The gameplay is good. It is a typical UbiSoft game, with lots and lots of collectibles, but at least you can buy maps that list the collectible locations. The
fighting is good, despite the occasional QuickTime event.
The Bad
The intro is unskippable, which is highly inconvenient if the game crashes juuust before the end of the intro. Otherwise I haven't encountered
any bad bugs. The convenience of playing old games is that you get to play the best version there is. At least for offline games, where they
don't patch out songs from the soundtrack and so on.
The Ugly
The game is connected to the UbiSoft launcher, even when you buy it through Steam. That launcher updates itself every time you launch it through Steam. It also requires a (burner) email address for launching the game.
I should maybe start looking for a crack/patch that allows to remove the UbiSoft launcher by replacing it with a small program that mimics it but uses fewer resources.
At least Far Cry 4 does not have microtransactions.
Continuing my quest to using my Google Pixel 9 Pro Android phone as thin client in a docking station, with GrapheneOS build 2026062801, Android 17, previously Android 16.
Experience
With the 2026062801 build, you plug the phone into the docking station, select the display mode to extend the screen to the external display, and it just works. The mouse and keyboard input work anyway, and the phone asks you whether to connect the screen as a secondary display or to mirror the phone screen to the external display.
Improvements
The task bar on the external screen now works without alignment and mouse detection issues.
Opening an app to the big screen or moving it to the big screen now works by launching it from the big screen instead of mobile screen.
Opening the settings from the top pulldown menu on the external screen opens the settings on the small screen. Launching the settings app from the menu launches it on the external screen as it should.
Screen dimensions can now be selected. Weirdly, on a 2560x1600 display, selecting
2560x1600 gave a crisp picture which still was constrained to a 1600x980 like
screen with black bars to the left and right. I assume that the external DP alt
mode has a limitation to 1600px width in data transfer. On my local 11" 4k
display, the different resolutions top out at 2048x1152. This is acceptable for
the size of the display, but I would still like to use a larger resolution.
Bluetooth audio output works, but the microphone remains mute.
Initially external cameras did not work inside the $work Citrix workspace app. They get shown by the app but don't show up in Teams. There was a permissions pop-up on the phone screen to allow the app access to the USB-connected external camera, after selecting the external
camera in the Citrix app menu. Allowing that permission via the phone screen made the camera usable within MS Teams on the remote end. The camera resolution seemed to be degraded, but that's maybe due to the Logitech 920c camera having a subpar UVC implementation?
USB and Thunderbolt cables
The orders for the various USB-C / USB-C cables arrived since the last
experiment, and the results vary, as seems to be expected with the new world
of basically indistinguishable cabling we live in.
The SUMPK cable has the mildly annoying disfeature that the display connection
is not necessarily detected as 1600x900 , but sometimes only as 1280x720. I
attribute this to the connection quality.
With the two Thunderbolt 5 "certified" cables, the display resolution gets
up to 2048x1152 , but the external display still retains the DPI scaling, so
the improvement in fidelity does not result in more information getting shown
on the screen.
At least I now have a set of cables that are known good cables for the phone
connection and I will bring such a cable with me for when I need to hook up
the phone to a docking station.
In the end, the phone is now a workable brain to use as a remote desktop client with Android 17.
I'm not really happy with using Claude Code as my coding harness. Not that I have spent much time in the last three months using the slopmachines, but as the GLM subscription is already paid for and GLM 5.2 just came out, I'm revisiting coding harnesses other than Claude Code, and here is my setup for running pi.dev in a Podman container.
Plugins
The agent now supports subagents and task lists via plugins. Obra's superpowers is indispensable to me.
Like all coding harnesses, pi.dev also uses a lot of blinking lights to keep the user entertained while they wait for tokens. I removed the background colors by editing ~/.pi/agent/settings.json:
{
"theme": "transparent"
}
And adding transparent.json to ~/.pi/agent/themes/transparent.json:
Quite good and entertaining. A space opera that follows a being that cannot be killed from a society of libertarian hyper-capitalism
through other societies. The corporate-run society is shown quite imaginatively, with the protagonist trapped in its value system.
Some Desperate Glory
I really disliked the protagonist, so props to the author for writing some really unlikeable, trapped protagonist. Content-wise, the
story follows the protagonist from a fascist rebel cell through several timelines until they find a timeline that they are happy with.
The book is actually very good, I finished it despite disliking the protagonist on every page in the first act.
The afterword lists interesting (non-fiction) book references the author used. Very interesting, ranging from how Fascism works,
over how Scientology works, to the North Korean internal structure.
Steel Beach (John Varley)
John Varley died this year and I read some
recommendations of his books. The most memorable quote about John Varley is by Isaac Asimov:
Long, long ago, when I was yet unpublished, I found myself talking with Isaac Asimov at I forget which convention, when John Varley cruised by, trailed by enthusiastic fans.
Asimov gazed sadly after him and said, "Look at him. A decade ago, everybody was asking, 'Who is John Varley?' A decade from now, everybody will be asking, 'Who is Isaac Asimov?'"
And that was John Varley's moment.
Steel Beach is set on a colonized moon after the destruction of the earth. It follows a reporter that
is tasked by the de-facto ruling moon AI with finding out why the AI and the reporter are suicidal.
The book is quite entertaining and wittily written.
A quite interesting throwback to 1984 and the computers back then. The novella is about
an investigation into a mysterious killing of what turns out to be a computer hacker.
The names of the persons are names of (then current) home computers. Otherwise, the novella isn't all that remarkable in retrospect
but for 1984, it was quite prophetic.
On the flip side of the "Press Enter" book, there was another short story of a prison set back in the Cambrian where political dissidents
(and mostly, economists) get exiled to. Not really remarkable.
Starter Villain (John Scalzi)
Not as much science fiction. The novella revolves around a substitute teacher
suddenly becoming head of a shadowy worldwide enterprise that provides services
to governments that would otherwise be featured in James Bond movies. He and his
intelligent cats need to outmaneuver rockets, dolphin unions and hired killers.
Entertaining as most of the John Scalzi books are.
Sometimes I want to select a markdown note from the shell
for further work. Maybe I want to launch an LLM with the note
or I want to edit the note from within a terminal to fix some bug.
Since I've discovered fzf and its preview
feature I find more and more uses for it. The following shell script shows all
notes that contain a given label and offers them for selection:
Having not only a selection but also a custom preview makes things convenient.
Perl was useful for properly escaping the filenames. fzf has the --read0
option, but it still passes the item to the shell without escapes. Using
double quotes around the {} does not work.