44 Panda Express meals – three duplicate fortune cookies

I like Panda Express; particularly their “Super Greens” instead of the carbohydrates of rice or noodles. I also like fortune cookies.

I suppose when I say 44 Panda Express meals, that is incorrect: I know that at least once, perhaps twice, I’ve gotten two fortune cookies for my one meal. Whatever: it’s close enough.

Anyway, for some time now, I’ve been throwing the fortune cookies in a pile, and today I was cleaning up. Time to throw them all away … but why not read them again, first?

The three duplicates are:

  • An Admirer Is Concealing Affection For You
  • You Can Always Trust Your Friends
  • Avoid Unchallenging Occupations – They Waste Your Talents

My reaction to that first one is: “Nice!”

That second one simply says that I’m reasonably good at judging character and don’t make friends with people who aren’t trustworthy.

That third one is a problem for me. Ever since my job changed, I definitely feel unchallenged. I used to be the sole email administrator for a 5,000 person organization. We farmed that out to Microsoft, so all that is left for me to do is e-discovery. This is rarely interesting. I am so looking forward to retiring from work so I can take up exercise, programming, and community service. June 2026, I hope.

As far as the rest of the fortune cookies go, my favorites are:

  • Seek Out A Service Project That Uplifts Your Community
  • Only Your Expectations Can Slow You Down
  • Work Hard – Be Nice

Dystopian Future

Dear FutureMe,

Just saw this new video of a dystopian future: ROSE | Short Film by Omid Pakbin

It is well done. Omid says he got the entire film done for $8,000.

I’d like to post it in the politics channel of some of the Discord servers I’m on, where my Circle-Of-Friends-On-The-Internet hang out. Well, I’d like to, but being on OpenSuSE, the Discord app is broken because the publisher has a new version out, and they don’t publish to the OpenSuSE repositories. I have to wait until a community member packages it for me. I have a running list of when Discord is working versus not working here: Discord app update – hooray! 🙂

As of this writing, Discord has been down since the 12th, and today is the 17th.

Anyway, if I’m still alive in 2028, how close did Omid nail it?

We already know that China is implementing the social credit score system today.

Seven days after Biden was elected, a guy, Douglass Mackey, was charged and found guilty of a tweet in the 2016 Presidential Race. Yes, in 2023 he was sentenced to 7 months in prison for a 2016 joke tweet. “Social Media Influencer Douglass Mackey Sentenced after Conviction for Election Interference in 2016 Presidential Race

Recently there was a hearing on weaponizations of the government, where testimony was provided that after the 2016 election, federal officials said “something had to be done”. In their view, an outsider presidential candidate was such a threat that they needed to implement some censorship regimes: and they did so. Both Facebook and Twitter (pre- Elon) censored the Hunter Biden laptop story so that it wouldn’t spread and change the 2020 election.

There have been several hearings about weaponizations of the federal government to implement a censorship industrial complex. The censorship industrial complex was proposed in 2018, and was in force at Facebook and Twitter for the 2020 election. We wouldn’t know about Google unless a whistleblower comes forward; but their deplatforming of certain people on YouTube is obvious censorship.

Google, for weeks, was scrubbing news about the biggest denier of Pizzagate being found to be a producer of child porn. Today, they no longer say “this story is developing therefore it is too new to report on”, but they don’t link to much that makes Slade Sohmer look bad. They (mostly) only link to news that it’s all conspiracy theory.

So Google is on board with the censorship industrial complex. Facebook is too. Twitter / X under Elon appears to be the only social media company against it. Rumble will gladly host people against it, but they aren’t gaining much traction.

Bruce Schneier also points out that spying on people will only get worse with AI.

So the question is: just how close to truth is Omid Pakbin’s video going to get? It’s a great movie short: less than twelve minutes long. Very high quality, and amazing that it was pulled together which such a low budget.

Portion of an email I sent my congressmen

The EFF pointed out that H.R.6611 is going for a vote, and it does nothing to fix the abuses of power exposed by the Snowden revelations. I wrote the following and sent it in my email to my congressman.

As your constituent, I request you to vote “no” on the FISA Reform and Reauthorization Act of 2023 (H.R.6611) which was introduced by the House Permanent Select Committee on Intelligence (HPSCI).

HPSCI was established as an oversight committee, a response to uncovering unsupervised wrongdoings against helpless victims. Oversight committees don’t emerge when everything is going well; they arise when abuses of power are exposed. Unfortunately, HPSCI seems to have forgotten its purpose, allowing itself to be swayed by those who justify their actions, portraying themselves as heroes. Instead of being watchdogs protecting us from Big Brother’s abuses, HPSCI has become their lapdogs, aiding in the pursuit of more victims.

The proposed bill, H.R.6611, the FISA Reform and Reauthorization Act of 2023, is just another act in the theater of governance – doing nothing to rectify past harm and avoiding crucial reforms that would shield the U.S.A. from further damage.

The Fourth Amendment to the Constitution, a sound idea in 1792, remains relevant today. I urge you to vote against H.R.6611 and demand that HPSCI revisits the drawing board with a new bill that puts an end to warrantless surveillance.

I appreciate your time and attention to my request.

Me

Ogg > MP3 (thanks, Apple) (not)

I have several CDs (Compact Discs, not Certificates of Deposit) of music that I like. When I popped them into my PC, I got several folders of files I could copy from. I chose to copy the .ogg files because I liked the idea of using an encoding format without weird licensing issues.

Apple has foiled that plan. If I try to play a playlist on an Apple device, the .ogg files get skipped because (apparently) Apple doesn’t feel like playing nice with the Open Source community. They may have more money than God, but adding another codec – that doesn’t have license issues – to their devices isn’t something they are going to spend money on.

When I work on-premises in the office, my co-workers are often noisy and annoying. I want to pop in my Airpods and play background music to drown out their inane chatter. I don’t want to carry the music files on my device; but I do have a Nextcloud server at home that can stream the audio from the Music app web page. I can log in on my iPhone and play the playlist.

But because it’s an iPhone, it auto-skips the Ogg Vorbis files. This doesn’t happen when I’m at home playing the same playlists on Linux or Windows.

So now I get to re-copy the files from the physical media to my NAS (network attached storage) which in this case is a Synology.

First, I get to delete the files with the .ogg file extension. Two steps (for example):

exiftool -p '$filename' -if '$album =~ /WOW Worship: Yellow \(disc 1\)/' *.ogg > wow_worship_ogg_file_list
This generates a file, wow_worship_ogg_file_list, which has the file names in a list.

then to delete them:

xargs -I{} rm -r "{}" < /path/wow_worship_ogg_file_list

Second, after having cleared out the disk space, I can copy from my physical CD to my NAS. That takes a while; and, after it is done, the file names aren’t wonderful. Rename music files to their title to the rescue.

Except, of course, for a duplicate file name. I have an MP3 file I bought from Amazon (published by Monstercat) with the same title as one of the files from the WOW Worship CD. I would prefer to rename the Monstercat file, but really if I’m going to be running the rename music files to their title command often, I need to change the Title inside the .mp3 file. If I don’t, the next time I run it, it will attempt to rename the file to a duplicate name that is already in use.

Exiftool doesn’t really write new Titles, apparently. I think it can, depending on the file type. I wonder if the weird license problems of MP3 are at the root of the problem. Whatever: the answer was to add the id3v2 program and use it instead.

id3v2 -t 'Title by Artist' file.mp3

Now the rename music files to their title script moves the one file to the new file name, and the other file to its simpler file name than what came off the CD.

Discord app update – hooray! :-)

In my last post I whined that it takes a while before OpenSuSE gets the updated Discord app. I checked today, and the update was there. I only have three days to catch up on: nice!

Thank you to Wojciech Kazubski for updating the app in the repository.

I think instead of creating a new post of when Discord goes broken (does an update) and when the new version shows up fixed, I’ll just make a list here.

  • 2023-12-27 Discord client update came through, and this time it matches the server version 🙂 I was down fifteen days, but I’ve been out of town for six days.
  • 2023-12-19 Discord update came through, but maybe it’s too late? Yep, still down. OpenSuSE updated to version .38-1.1 but the Discord app wants to install version .39
  • 2023-12-12 Discord stops working until an update can be applied. Shucks. Three days. I have a group of friends for whom with-alex-jones-returning-journalists-worried-theyll-no-longer-be-only-source-of-misinformation would be a fun topic; but they will have to wait.
  • 2023-12-09 Discord works again, yay! Only four days downtime.
  • 2023-12-05 Discord stops working until an update can be applied. Shucks. Four days was nice while it lasted.
  • 2023-12-01 Discord works again, yay! Only three days downtime.
  • 2023-11-28 Discord stops working until an update can be applied. Shucks. But it was a nice long run.
  • 2023-11-18 Discord works again, yay!
  • 2023-11-10 Discord stops working until an update can be applied. Shucks.

Discord App update again (sigh)

In my previous post, I explained that every time Discord publishes an app update, I’m locked out* until someone fixes it in the OpenSuSE repositories. Four days ago, it showed up in my list of updates, and hooray! I was back in Discord after eight days of being locked out.

Today, another update is published. Sigh.

*“Locked out” is a poor term: I am voluntarily opting-out. I boycott Flatpak and Snap Apps because I dislike those technologies.

OpenSuSE updates this morning: 1,671 (but Discord isn’t one of them)

Every time Discord updates their app, I don’t use Discord for many days. This is a bummer because I have a circle of friends on the Internet I’ve known for 20+ years, and Discord is where we have settled (so far). So when Discord does an update, I go through a dry spell of not being in contact with them.

The OpenSuSE folk tell me I should install the Flatpak version of Discord or the Discord Snap app. I’m not a fan of either Flatpak or Snap. Snap fouled up a machine months ago (and it’s still broken to this day) when I installed it. Flatpak seems like a (no better) replacement for my RPM repositories. Worse, it duplicates storage and doesn’t integrate unless I convert everything over; so that just creates more points for stuff to break. But at least the single developer doing the Flatpak doesn’t have to integrate, so that’s not his problem.

I can use the web version of the Discord app. It has keystroke conflicts with the web browser, though, and because I use temporary containers for everything, it treats me like a new user who didn’t see that sticky post from five years ago….

So, I wait until someone asks the Discord people to update the RPM in the OpenSuSE repository. Eventually it happens. Time before last, it was eleven days.

Home Assistant media folder – connect to SMB share

Ooof. This one kicked my ass for a really long time. The question is “How to connect the Home Assistant Media folder to an SMB share?” There’s a wizard, but what to enter for the Remote share entry is murky.

A part of this is pretty obvious, but the other part is not. Of course, I tried the wizard first, but I didn’t enter the Remote share entry correctly. I tried reading the documentation, but it wasn’t much more than “For the Remote share entry, put in the remote share.” Home Assistant would always fail to mount the share, and the error message was (essentially) “It didn’t work”. Sigh.

I had previously created an SMB share on my Synology NAS, and could map to it just fine from my main Linux desktop, from my Nextcloud instance, and from Windows machines I have here on my home network. I knew from my Nextcloud install (adding it to /etc/fstab) that the vers=3.0 option was important.

Doing a search found a Youtube video about editing the /config/configuration.yaml file and running a shell command. It mentioned that the vers=3.0 was important. Maybe this is what I need? This turned out to be a rabbit hole (but no rodent with a mean streak a mile wide at the end 1).

Since the system-launched shell command wasn’t working, I tried the next logical step: try it from an actual command line. It didn’t work. I think that is because of Docker and the impermanence of the terminal shell and sandbox for security.

I installed a terminal app in Home Assistant, but whenever I tried the same mount command that worked on Linux, it would fail on Home Assistant with “permission denied”. Not really helpful. In fact, it seems unhelpful, because if I read between the lines 2 I see “your password is wrong” – which it wasn’t. “Permission denied” is the error message you get when your password expires, and the credentials file has the old password. Of course, I knew my password was correct: but if I were someone brand new to this, I would have been mislead by my own thinking.

Here is the mount command that does work in Linux but not in Home Assistant:

mount -t cifs -o vers=3.0,credentials=/config/.smbcredentials //mysynology.domain.tld/sharename_smb/data /media/nasfiles 3 4

The problem that I was running into was that the Home Assistant documentation never tells you what it wants for “Remote share”. The dialog box says “This is the name of the share on your storage server” – but that doesn’t help, because it doesn’t specify what to put in. That’s why I’m writing this post: if you have a mount command that does work elsewhere, the pieces you need are here.

Over on the Synology, it told me the share name was smb://mysynology.domain.tld/sharename_smb/data

That does not work here in Home Assistant.

Here are the settings that do work:

So, from the mount command above, the Server entry is mysynology.domain.tld and the Remote share entry is sharename_smb/data

Phew. This was a long time in figuring out, as I tried all sorts of stuff for the Remote share entry:

  • /sharename_smb/data 5
  • mysynology.domain.tld/sharename_smb/data
  • //mysynology.domain.tld/sharename_smb/data
  • mysynology/sharename_smb/data
  • smb://mysynology.domain.tld/sharename_smb/data
  • \\mysynology.domain.tld\sharename_smb\data
  • \\sharename_smb\data
  • \\\\sharename_smb\\data
  • sharename_smb
  • data ( with the Server being mysynology.domain.tld/sharename_smb )

Hopefully, if you found this post, it helps:

Server entry is mysynology.domain.tld

Remote share entry is sharename_smb/data

  1. Thank goodness it wasn’t the Rabbit of Caerbannog ↩︎
  2. which is a bad idea. ↩︎
  3. host name and share name changed to protect the innocent. Not that any of this is on the public Internet, but why tempt the random bored teenager? They can be pretty clever and persistent. ↩︎
  4. Yes, I had to create a directory named config off the root of my Linux box and copy the .smbcredentials file to it for the mount command to be an exact replica of what would have gone in the shell command in /config/configuration.yaml ↩︎
  5. so close. ↩︎

Coffee, again: inflation + energy drinks = change

I’ve given up energy drinks due to inflation. They were overpriced to begin with; but now inflation has gone too far, and I’m out.

Coffee is good, but the Keurig company is bad, so what to do?

Turns out Costco carries a Ninja Dual Brew coffee maker that fills the bill.

(longer version):

Way back when, I was a fan of Keurig. I bought an early Keurig brewer and loved it. But, foolishly, I didn’t do the de-scaling thing that one needs to do. It’s never really been a task I had to grow up with, so I don’t have a practice of doing it. (I’m still looking for To-Do list software that will do recurring tasks. Ideally it would be in Nextcloud).

Anyway, I eventually ruined my Keurig. It did last a really long time. But between the time I bought it and the time I needed a replacement, the company came out with a new line of machines that tried to implement (essentially) DRM (digital rights management). In other words, if you tried to put in non-Keurig coffee pods, the machine refused to work.

There’s a Nietzsche quote: “Mistrust all in whom the impulse to punish is powerful.”

When the Keurig company announced this scheme, I was done with them. I’ll never buy another Keurig branded item, ever.

It was also a stupid implementation of DRM, because it pointed a camera at the top of the coffee pod and looked for a QR code which identified the pod as authentic. So … buy one authentic pod, slice the top off of it, and glue it to the camera. Now every coffee pod is authorized.

Okay, so there is a work-around; but, what we have is a company that is willing to bully its customers. No-way am I going to reward that sort of company with any new sales.

So, what to do?

Well, turns out that Monster Energy has a line of energy drinks that are low (or zero) calories. Also, they keep working on different flavors. I started buying them. A lot of them. I was buying them by the case; usually drinking two a day. Over the course of two months, I’d go through five cases. Each case was 24 cans of 16 ounces each.

In the beginning, I was paying about $28 per case. That’s about $1.17 per can. Then the price creeped up to around $32 per case, or $1.33 per can.

But, some of the more popular flavors jumped up to $38 per case, then $43, then $48, and now over $50 per case.

In fact, to combat the perception that the prices are so bad, they’ve stopped selling them by the 24 pack case. Sure, the price per case is back down to $28, but the case is now eight cans instead of 24.

That’s the equivalent of $84 per case, for what I used to pay $28 – $32.

I’m out.

But man my ass was dragging without the caffeine boost.

Back to coffee is the answer; so I bought a normal coffee brewer.

There’s a reason the Keurig line of brewers was popular. The nightly mess of having to empty the grounds, and wash the filter basket and coffee pot definitely lowers my quality of life. It also boosts my home energy costs: I didn’t used to have to run the dishwasher every single night. I have the reusable filter with a micro fine mesh, and it’s fine; but I don’t want to reuse it without putting it through the dishwasher. I suppose that’s a choice I’m making that is picky. But that’s the way I am, so if I want coffee tomorrow morning, I need to run the dishwasher tonight.

Previously, I’d put dirty dishes and cups and tableware in the dishwasher and wait until the machine was full enough to warrant running a load. Dishwashers burn a lot of energy. I’m fine with that, because I get that “sanitize” work out of them. But running it every night for a coffee pot, filter, and coffee cup seems wasteful to me. The machine was practically empty.

Thankfully, I was in Costco a few days ago, and saw that they carry the Ninja Dual Brew coffee maker.

I don’t know much about Ninja, except that one of the podcasts I listen to is about the stock market, and one of the guys mentioned that Ninja as a company has excellent customer loyalty. Cool.

And indeed, this machine does coffee pods. I’m sold.

I’m back to 60 seconds for a cup of coffee, and no mess after. Heck, with the inflation costs of the Monster Energy drinks, this purchase has a positive ROI.

Thank you, Ninja, for making this machine. Thank you, Costco, for carrying it.