I’m not finding Rimworld to be very fun

It got an “Overwhelmingly Positive” score on the Steam store, and I bet for younger players it is great. But I’m old, so my brain does not move as fast as young peoples’ do.

This means I lose a lot. Half of the time I have two of my four man crew in the hospital (the room I set up to be my hospital). Pretty much as soon as people are healthy, the AI throws another rabid schnauser / deer / antelope at my crew.

The AI in this game is supposed to be really good (by reputation I have read). But for me, it never lets up and there aren’t any easier / lower settings I can set. It is simply unrelenting and oppressive.

I want to like this game; I’ve never played The Sims but I imagine this is like The Spacefaring Sims On Another Planet. It has goals and objectives – and it applies pressure to get there. So it’s not bad at all. I also really like that it has a Linux native version. The soundtrack is really good.

There are supposed to be quests in this game, where I send off people to accomplish whatever goal. I lose (or nearly lose) so many rabid animal fights (or malevolent humans) that I cannot afford to send people on the quest. So then I’m told I failed yet another quest.

But if the only thing that ever happens in this game is that my pawns* die often, then I’m going to be sad I spent the money on it.

I’ll try some more; but I hope fun shows up soon.

*that’s what the game calls them.

How to highlight text using The GIMP

This is ridiculously awful.

Think of buying a yellow highlighter and then using it. That’s all I wanted to do, but digitally. There are features in other programs where you can highlight text or an area; my freaking email client has this feature, with drag-and-paint, too.

But in The GIMP, it is a simple six step task with at least one “gotcha”.

Google offers gobs of YouTube videos about The GIMP, but trying to find this simple “how do I put a yellow highlight on an image using gimp” shows me pretty much anything but. There is one result new the top, but it is about using the text tool, typing text in, and “selecting” the text within it. I have an image I need to highlight some text on; but the image and text are pixels within the graphic image.

Enough blather!

  1. Open the original image and convert to RGB mode.
    1. Image –> Mode –> RGB
    2. This was the “gotcha”: What I had done was converted a PDF to PNG, and the PDF was generated in grayscale. When I was trying to do color fills (yellow is a color) with the Bucket Fill tool, the color picker had these weird corners in pink or magenta. Nothing on screen gave me any indication why those weird corners were there. Whenever I did actually do a fill, it was filling with white (apparently grayscale yellow is white) which was what the background was – so it looked like every click was useless. FML
  2. Create a new blank layer
    1. Ctrl-Shift-N is the keystroke for doing this, although I use Ctrl-L to open the Layer dialog box and click the button at the bottom to add a new layer.
  3. Use the selection tool of your choice to create the area you are going to fill with the highlight color.
    1. I do like the fact that the rectangle select tool lets me specify rounded corners.
  4. Change the foreground color to what you want. BTW, HTML yellow is ffff00#
  5. Use the Bucket Fill tool to click inside the area selection.
    1. Note that at this point, your highlight has obliterated the image underneath. Proceed to the next step.
  6. Change the layer to show the image underneath.
    1. For me, the best was to change the layer from mode “Normal” to mode “Darken only”.
      1. I suppose if your background was black instead of white, the mode would be “Lighten only”.
    1. I’ve seen a suggestion to change opacity on the layer to 30%, but that put the black text in yellow too.

Amazon Music fails gapless playback

Not that long ago, my desktop install of Amazon Music Player (which is really their web app inside a Windows .exe wrapper) asked if I wanted to update to the latest version. I did, and that was a mistake. The new program turned on “gapless playback”. This would be nice if Amazon hadn’t fouled up the implementation. I’m not against gapless playback; I’m against gapless playback done badly.

The two problems are:

  1. Gapless playback cannot be disabled.
  2. The gapless settings are per-song, and are sometimes wrong.

Problem Number One is annoying, but can result from an immature developer, or someone on the design team who deep down inside is fearful that people don’t respect them. Because people do not do what he or she wants, he or she becomes a bully. Either way, the implementation of a new feature without the ability for the end-user to turn it off is arrogant.

One of the Tenets of IT is “Have the user show you the problem, often it is the user doing something in an unusual way.” Weird things happen. So to implement a new feature without giving the user the option to turn it off is the assumption that the developer is smarter than God, and things could never be imperfect, so no, plebeian, you don’t get a choice in the matter.

In this case, it isn’t the user doing something in an unusual way; it is Amazon’s algorithm for tagging the end of the song for gapless playback that fouled up.

I know that mistakes happen; this is normal. This is not a surprise. Therefore robust programming behavior is: make new features optional. Or at least have a back-out plan, for when things break instead of getting better. Amazon did not do that here.

Like I said, arrogance.

Problem Number Two wouldn’t be a problem if Problem Number One weren’t present.

Problem Number Two means I get a better music experience from YouTube than from Amazon Music Player. I paid you money for this song, Amazon. You should be ashamed of yourselves.

The problem showed up immediately after I did the suggested “upgrade” of the new version of Amazon Music Player on Windows. A quick search indicated that yes, gapless playback is a new feature that was added, and, no end users do not get a choice for this breakage to be enabled or disabled. It is enabled, end of story, go kick rocks if you don’t like it.

I should spell the problem out fully.

Context: I have playlists defined, and I start a playlist while working from home. It’s a particular set of songs with no vocals. It’s also a long playlist, since I don’t want to hear a song too many times. Sometimes I click the “randomize” button instead of the “play” button. Five or six hours later, I need to start the playlist over again.

Problem: After the “upgrade” some of the songs in the playlist are truncated by a large number of seconds, as the playlist advances to the next song early. Instead of a zero second gap between the next song and the current one, it’s a negative number of seconds. 30 seconds? 45 seconds? 60 seconds? I don’t know. It’s not like five (or less).

This did not happen prior to the “upgrade”. It does affect particular songs, whether the playlist is in order versus random play mode. I notice it in two or three songs (of 105 in the playlist I play); but with the one song, it is extremely noticeable because the song is great, and it has a nice ending – which I never get to any more! This song comes on, I’m rocking out, and pow – next song without warning. Man I hate this.

The version prior to the upgrade was better, because every song ended after it fully played. There wasn’t gapless playback, though. There was about a one second pause between songs. I understand that for some music, gapless playback is super; I just don’t happen to have any of those albums. My gapped playback was fine for me.

I also have this same song in another playlist, and it gets truncated there too. This is why I think the end-of-song tagging is connected to the particular track.

This does not happen if I play the song on my iPhone (not in a playlist). It does not happen if I play the song from my Amazon Echo. It only happens in the Amazon Music Player on Windows.

I did open a few enhancement requests / feedback comments (and even put a request in Amazon’s public forum), but it’s been almost two months and nothing has happened.

So here we are; me whining on the Internet. Yay (not).

Overall, I really like Amazon Music. I like that I can buy an MP3 file and download it. I can copy it to a USB stick and plug that into my car. I can wrangle a snippet of an MP3 into an iPhone ringtone. The playlists are not terrible to manage (although they must be managed on my iPhone) (which isn’t a great interface because the screen is too small to make things easy).

Anyway, if you want to hear a song with a great beat (without getting cut off early), here it is on YouTube: Timmy Trumpet and Scndl – Bleed It’s in the category of EDM (Electronic Dance Music) so it might not be to everyone’s taste; but I love it.

I can’t link to it on Amazon because you’d have to sign up with Amazon’s Spotify clone to hear it. I bought the single from Amazon, so that’s how I have it in my playlist.

This also happens on Harold Faltermeyer – Axel F

Another song it happened on was Old Skool. I watched the Amazon Music Player, and it cuts over to the next song with 25 seconds to go. In other words, Amazon Music Player knows the song should be 3 minutes 44 seconds long, but at the 3:19 mark, it skips to the next song.

Another song that fails is Crab Rave by Noisestorm. This one is truncated 12 seconds from the end.

It is information that Amazon Music Player playback failures (truncation time) differ per song.

Dear Mozilla, please stop copying Google Chrome UI changes into Firefox

I don’t know why Firefox dislikes Bookmarks. Perhaps they are a pain in the ass, and the Mozilla people hope they will go away? I understand why Google would dislike them; if you use a bookmark, you are not using the Google Search Engine. Google’s primary source of revenue is advertising, ergo, search is good and bookmarks are bad. But Firefox? What excuse do you have for making your user’s lives worse?

UPDATE: there is a fix; add in about:config an item “browser.toolbars.bookmarks.2h2020” set as boolean False.

The beef I have at the moment is that I wrote a script to take screenshots. It’s the old adage “A picture is worth a thousand words”.

But the bookmarks toolbar is noise/clutter in this situation. So the simple solution is a keystroke that toggles the bookmarks toolbar on and off. Trivially easy to do, and doesn’t distract the tech support person I’m going to sending the screenshots to. Doesn’t leak information to their tech support about which web sites I log in to often.

This keystroke to toggle the Bookmarks Toolbar used to work. Now, the keystroke is still mapped, but not to the toggle function.

Firefox has now copied Google Chrome to turn the bookmarks toolbar off with that keystroke, and you have to use the freaking right-click mouse menu to turn it back on. Or there is a three menu deep regular mouse click path to get there.

What was wrong with having a toggle?

Mozilla Firefox Team: you did not make my life better by copying Google Chrome; you made it worse. I’m using Firefox because I think it is better than Chrome. Please stop downgrading it into being a clone of Chrome.

I can’t imaging anyone in the Firefox world thinking to themselves You know what I need? I need the Toggle Bookmark function to stop working, because being able to get to my bookmarks toolbar should become a pain in the ass.

The Bookmarks Toolbar was always about ease of use. It doesn’t get easier than having a button on the top of the page to click on, to instantly transfer to that site. But apparently ease of use is bad now?

Sigh.

Factorio notes, several hours in

I recently found a new mall blueprint that I like reasonably well. illHam’s Starter Base. It was in the Factorio School’s most recent list instead of the most popular list; but there were things I liked about it. Mostly, I liked that it did all three: red, green, and black science, and, it includes solar panels.

The only thing I don’t really like about illHam’s Starter Base is that the chests are limited by inventory slots and not by inserters controlled by circuits. In other words, each chest has a maximum number of slots enabled, so what limits the count of items produced is the inventory capacity getting full. The problem with this is that sometimes I have too many items in my personal inventory, and stuffing them back into the production chest is denied when the maximum-number-of-slots scheme is in place. So now there are 58 chests that need to be retrofited with red wire to the inserter, and the condition set on the inserter to stop when the count of items in the chest hits the limit. If I have too many items in personal inventory, I can shove them all into the chest with a trivial ctrl-click.

For me, solar panels are too much work / take too long to be done without robots. The quest for robots lead me to Nilaus’ YouTube video Robo Rush; because Robot abuse should not be delayed. Here’s the blueprint string:

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

Next, have the robots build red circuits, so I can build roboports. 😉

Lastly, I fight biters really poorly. I’m old, so my brain does not go as fast as young people’s brains. I’m sure doing combat with biters and eliminating their nests is much easier for brains that think quickly. For me, I just die a lot. It is frustrating. But with illHam’s Starter Base and the production of piercing rounds magazines, I can put a perimeter of turrets up and not have to worry so much about biters.

0eNqVkltugzAQRfcy3yYqDgbKVqKqCjBCIxmD/KiKkPdeOyg0Stym/fJDc++5Hs8KrXQ4a1IWmhWom5SB5rSCoUGdZbyzy4zQAFkcgYE6j/E0OJVZpzVa8AxI9fgJTe7ZU6GZJVmL+kbG/RsDVJYs4Qa/HJZ35cY2VDb5rnZBoQc9hTVrUdrgO08mCCcVicEs42V+EAyWsK2PBxEwPWnstpKSXVNNzs4uhn+g8dQjU5yXK8UnXI67y4g9uTFDGUJo6rJ5kvgkNw+5E57Fv/og6r/0gdQPbRA7jJRBHb/sdwi/h/CEa/k4CCnX6jv6XfA4K5eJam4ml8EHarNB67yoXnklRFGIqvT+C5hh72E=

The problem with this one is that it uses underground belts, which are very expensive.

Wow OpenSuSE is terrible at iPhone photos

At first, it didn’t work. So I did some searching, and found that I needed to add ifuse musmuxd libplist and libimobiledevice. Okay, did that. It still doesn’t work.

I should mention that when I connected the iPhone, Gwenview would recognize a device had been plugged in, but would spit at me that protocol capture:/ was not recognized – both before and after the addition of these packages. This appears to have been a problem seven years ago.

Eventually I find that perhaps digiKam will do what Gwenview will not. Okay, add that.

DigiKam does see the photographs on the iPhone. Great! I should be able to download them now, right?

😝

All attempts to download (backup) the photos result in the question of “to where?” This is very reasonable.

Since this is a new installation of digiKam, there is no Album defined. The download dialog box has a button “New Album” but it does nothing. Probably in a log file somewhere, some programmer wrote out LOL, dumbass.

In the main digiKam window, the Album menu has all items greyed out (including the “New” album choice with Ctrl-N for the shortcut). LOL, dumbass.

Eventually, I learn to do Settings+Configure digiKam, Collections menu and choose Add Collection. Apparently a collection is the same as an album, or not, but it appears I now have a backup copy of one of the iPhone groups of photos. I’m just kind of amazed it was this hard, and by the way, KDE isn’t telling me anything about the progress of files copies (which in the olden days, it would).

Up in the upper right corner, though, is this really cool looking text, digiKam.org which has each letter in the domain name highlighted, from left to right. That’s cool – it’s like a throbber, but for the help button. Other than the Cancel button being lit up on the Apple Inc. iPhone window, I cannot tell if file transfers are happening or not.

And of course, hooray for random crashes while stuff is doing work.

“Free” apps for your smartphone

There has been a long standing piece of knowledge in the computer industry that if you are not the customer, you are the product being sold. That is to say that advertisers are the customer, and the data that the “free” services harvest from you is what is being sold to them.

There’s a reason why you get offers for a free hamburger if you order is from their app (and the like). If you use the app, you collect reward points and get discounts and such.

Oh By The Way

TANSTAAFL

Do be very selective in what apps you install. They are all pretty much data harvesting machines.

Another favorite Factorio blueprint – Automated Artillery Expansion

I did edit it and create a smaller version of my own:

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

The original is here: Automated Artillery Expansion – Factorio Master Class by Nilaus

It does have the snap-to-grid option enabled, which means it would have been nice to have done those on the first city blocks. But still, it works fine.

This came from a Youtube series Factorio Master Class by Nilaus.