Listening to Sean Taylor – "The Path into Blue"

Uau! Listening to Sean Taylor – “The Path into Blue”. The first track, titled “This is England”, manages to sing about Spotify, “Brexit” and algorithms in a sensible way! Amazing. Rich lyrics, sometimes even poetic. I am enjoying it via a 1024 kbps stream and, as I write, a guitar screams in superb definition, on track 3, titled “Grenfell”.

You cannot get 1024 kbps via Spotify, but this is the only way I know to share it:

PHPStorm fails refactors in symlinked files

Yesterday, while programming a solution that will automatically build some of my videos, I faced an unexpected problem with JetBrains PHPStorm v19.2.

The issue was (and is) that doing a “refactor > rename” of any method’s parameter would not work. The IDE’s “preview” would correctly show the changes that should happen, but upon confirmation, by pressing the ENTER key, while the parameter name would change, its usages would not, so the code would not work, because of the new unknown identifiers.

This would only happen with identifiers corresponding to method parameters, which are “signature” elements, together with the method’s name and its return type.
After some head scratching, I understood what is the issue: the file corresponding to the class of the method being edited, is available to the project not in a “real” directory, but via a “symbolic link”, which a Microsoft Windows file system’s feature that allows, among other possibilities, to make the same single folder seemingly available at many different points. It happens that PHPStorm will NOT change signatures for methods in files, which are not directly available to projects. If the file is available to the project as a real direct, then “refactor > rename” works; if the file is in a symlink, it does NOT.

Problem understood. This is annoying, but now understandable.

I cannot say for sure that is new in the latest version of PHPStorm (v19.2, in August 2019), but I don’t remember having faced the issue in the past, and I’ve used symlinks before.

I tweeted about the mysterious issue here:

“@JetBrains I think you created a bug in PHPStorm 19.2
Try to refactor > rename any param in a method’s param list. You will see a CORRECT preview in the body, but when ENTER is pressed, the param is renamed yet the body keeps the old identifiers.”

Then, when I understood the problem, I replied to myself here:

“Replying to my own problem: I found the issue is due to symbolic links (file system symlinks) in Windows. The project in question uses a folder which is a symlink to a real directory. Refactor of signature elements (such as params) in files at that location will fail.”

URLs "p1" 20190818 – 79 VHQ resources

I am an avid WWW surfer, with hundreds of websites visited each month, sometimes daily. I bookmark them all, at least for logging purposes. These posts having the "urls" category, capture what was on my browser on a specific date. I hope you enjoy some of these shared resources.

URLs "p1" 20190813 – 76 VHQ resources

I am an avid WWW surfer, with hundreds of websites visited each month, sometimes daily. I bookmark them all, at least for logging purposes. These posts having the "urls" category, capture what was on my browser on a specific date. I hope you enjoy some of these shared resources.

One video of mine was blocked by YouTube

For the first time, one video of mine was “Blocked” by YouTube.

It was my first video from the game “Formula 1 2019”, where I race a lap in a Formula 2 car. The video has two parts: in the first part, I captured game footage from the game’s “TV” camera; in the second part, the footage is from an in-car camera that gives the “halo” perspective. It is the second part of the video that YouTube’s automated “Content ID” system flags and blocks.

My pragmatic solution: I edited the video without the second part (except for the first few seconds, for those interested in understanding what that second part was).

More here:

F1 2019 : racing the Formula 2 car @Spain (01:31:919 lap / top #400)

I decided to try the game “F1 2019” (it was 30% off on Steam), and the experience evolved from terrible to interesting. It is amazing how bad the game defaults are: unrealistic handling and audio stuttering are the top issues. These issues seem to affect many players, considering the frequency they appear in support forums, yet – and this is quite a mystery – the big review sites seem immune to such annoyances, not referring how they configured the game to bypass all issues and apparently enjoy a turn-key 9/10 game.

I always perceived the “F1 20xx” game series as “racing fun” for “kids”, i.e., for those just wanting to have a nice looking arcade experience with F1 cars in it. For those who appreciate a “simulation” approach, these games feel ridiculous, sand-to-eyes (look good, drive awful), and unfair to other games on the market, which are so much more “real”, and better handling out-of-the-box.

In my first minutes with it, F1 2019 greatly exceed my WORST expectations. It was unbelievably bad, with video synchrony drama (sometimes, as if driving in slow motion), audio stuttering (interrupts in the audio stream), and a feel of disconnect (not exactly lag, but rather disrespect to what I was asking from the virtual car) between inputs from my wheel + pedals (Logitech G29) and their effective result. I literally could not believe the game was that bad, so I endured in many configuration experiments (hardware and software), until I achieved something enjoyable and worthy of my “simulation” label. It took me three days (more like three attempts in three different days) and I nearly dropped the towel on day 2, but this afternoon was rewarding. Now, in my book, “F1 2019” is the best of all the games in the “F1 20xx” series, which would not mean much (its siblings are not good), if it wasn’t for the “simulator” label.

So, what did I do?

  • I am running a graphics configuration much below what the video-card can allegedly do. In my case, the game suggests “Ultra High” settings for every graphical setting, but I cut back on several options, the most relevant being the shadows to “medium”, “motion blur” to disabled (why do people play with that on?!), the cars’ mirrors to just “high quality”, and decreased texture filtering. In theory, these options result in a less good-looking experience, but in practice, it is hardly noticeable at the resolution I play (2560×1600), and greatly rewarding in freeing up computer resources.
  • To help with the audio stuttering, reduce the frequency of the audio process to “low” and combine that with VSync ON, at 60 fps, or the exact refresh rate your monitor supports. It you have one of those 120 Hz or 240 Hz monitors, then you should also increase the audio process to “medium” or even “high”, but good luck with no audio hick ups.
  • For credible steering + pedals inputs, do NOT use the game’s defaults. Define a custom configuration for the controller you will be using, including manually setting the throttle + brake controls, even when they seem to be already configured. With the Logitech G29, I “saturate” the steering and the brake inputs. I also noticed that increasing the “linearity” for an input, seems to cost inferior accuracy. The controls feel more authentic if not subject to changes in “linearity”.

Having achieved a drivable “F1 2019” game configuration, I hit the track. In a matter of 2+ hours of game play, I progressed up to the top #400 spot in the fastest laps table, racing a Formula 2 in Spain. I still did not try the F1 cars.

Here is a video replay of a 01:31:919 lap. The game tells me that this lap is top #400 material.