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.

Putting an image on a Raspberry Pi

  1. Download a .raw.xz file
    1. In this case, it was https://download.opensuse.org/distribution/leap/15.4/appliances/openSUSE-Leap-15.4-ARM-KDE-raspberrypi.aarch64.raw.xz
    2. Yes, I also downloaded the .sha256 file and ran sha256sum against the downloaded image to make sure the image file was not damaged during transfer.
  2. Open a terminal session and become root
  3. Determine which device the SD card is
    1. In this case, it was /dev/sdc
  4. Copy the image file to the SD card
 xzcat /home/david/Downloads/openSUSE-Leap-15.4-ARM-KDE-raspberrypi.aarch64.raw.xz | dd bs=4M of=/dev/sdc iflag=fullblock oflag=direct status=progress; sync

Amazon Transcribe gotcha

I needed to transcribe some minutes from a meeting, and only one person was speaking during a particular three minute piece. So I copied that segement out to it’s own MP3 file.

I uploaded the file to s3:// and ran a default transcription job. Whoops.

By default, I mean that, mostly I clicked Next, Next, Next. I supplied a job name, an input file, and an output file. (That I used an output file location other than default means it wasn’t exactly default settings).

After the transcription job was done, because I had not specified the quantity of speakers, it left out the 'speaker_labels' data from the JSON file.

I have been using https://github.com/trhr/aws-transcribe-transcript/transcript.py to simplify the JSON into text, but it does not handle files with missing speaker labels.

Sigh. Now I have to re-do the transcription, which will incur another charge. Those speaker_labels are all over the file when present.

For what it is worth, the tasks were essentially:

  1. Upload the file to S3
    1. aws s3 cp /home/david/Documents/some_path/review_of_previous_board_meeting.mp3 s3://some_s3_bucket/
  2. Log in to Amazon Transcribe and create a job
    1. Job name was review_of_previous_board_meeting
    2. Input file was s3://some_s3_bucket/review_of_previous_board_meeting.mp3
    3. Output file was s3://some_s3_bucket/review_of_previous_board_meeting.json
      1. This did require clicking the button “Customer specified S3 bucket”
      2. I used the AWS CLI commands to copy between my local machine and the S3 bucket, so it is easier if I name the bucket I want the files in.
    4. Click Next
    5. THE IMPORTANT PIECE: Audio Identification = On, and audio identification type = speaker identification
      1. Stupidly, you have to define the count of speakers, and 1 single speaker is an invalid minimum. So I have to tell it there were two speakers, when I had clipped the MP3 file to only contain one.
  3. Download the file from S3
    1. aws s3 cp s3://some-s3-bucket/review_of_previous_board_meeting.json /home/david/Documents/some_path/
  4. Clean up the transcription
    1. transcript.py /home/david/Documents/some_path/review_of_previous_board_meeting.json
    2. And then transcript.py runs without errors. The result is file review_of_previous_board_meeting.json.text

Amazon Echo as an alarm clock with playlists

Don’t bother.

It can be done, but man, what a pain in the ass.

First, create your play lists in the Amazon Music App. I prefer to have the Amazon Music App in offline mode, but for this step it must be in online mode. This makes sense, because the Echo devices are online devices.

Creating a playlist

  • Click on Library, then Playlists, then +NewPlaylist
  • Give your playlist a name. I’ll use Friday Morning Playlist
  • Hit Save
  • Hit Done
    • This is because, immediately after creating a new playlist, the only songs available to me are Recently Played with no option to pick a different list. From my point of view, this is a UI failure.
    • I was doing this on my smartphone. The process may suck less on a desktop.
  • You will be on the name of the playlist with a message that you have not added any songs yet. Click the three vertical dots button for more options.
  • Click the +AddMoreSongs button
  • Now you have your choice of Artists, Albums, or Songs
    • What songs do you want to wake up to, in what order? You decide. 😍
    • I should probably point out that I had previously gone into the Amazon Music App and fully populated “My Songs” in my library. If you haven’t done this, well it is one more step to do. The only good thing about this is that you can get the Amazon Music App on your desktop computer, and (while in online mode) it syncs up to AWS.
  • Click Done

At this point, you want to exit the Amazon Music App on your smartphone. It wouldn’t hurt to give it a few seconds to sync up to AWS before exiting. The reason you need to exit the app on your smartphone is because it is listening, and you are about to give a voice command to your Amazon Echo. If you don’t exit the app on your smartphone, it will respond instead of your Echo.

Implementing an alarm with playlist

  • Speak at your Amazon Echo “Alexa, set alarm for every Friday to play Friday Morning Playlist”
  • Your Echo will respond with “Alarm set for what time?” Say your alarm time.
  • Your Echo will respond that it has set an alarm.

Checking your work

  • Open the Amazon Alexa App
  • Find your way to Alarms & Reminders
  • The things I have had to look for was if the alarm was set for every week versus do-not-repeat, and if it was actually set for the playlist I want. It seems to me that the programmers at Amazon don’t want to play me what I want, they want to play me what their algorithm comes up with. I suspect that they think that by forcing new songs down my throat, they will entice me into signing up for their monthly service for even more variety.

Follow up commentary

I am happy sad that I can now no longer wake up to exactly the songs I want to, in order. All is not perfect, however. My life is happiest when I have a particular routine, and that routine starts with waking up. What I would like to do is:

  1. Alarm clock plays Song Number 1. I wake up and (mentally) sing along with the song.
  2. I hit the snooze, climb out of bed, and start the shower on hot water, at a trickle.
  3. Climb back into bed, and start praying. Thanks first, grattitude list second, and people on my prayer list third.
  4. Snooze timer expires, and more music plays. Maybe I sing along, maybe I hit snooze again and go back to praying.
  5. Repeat step 4 until it is time to climb out of bed and hit the shower. I also have some Alexa routines which turn on the lights and brighten them as time passes.

So the problem is the “snooze” function. If I speak at the Echo device “Alexa, snooze” then it does so; but, when the snooze timer expires, the Echo starts back on Song Number 1 of the playlist.

Kind of makes the playlist work pointless.

Not entirely, however. “Friday Morning Playlist” is not likely to be mistaken by Alexa for some random song, and, is short and sweet and understandible. If I were to say “Alexa, set alarm for every Friday to play Timbuk3 The Future’s So Bright, I Gotta Wear Shades” I can almost guarantee you that Alexa would not get it. Yes, I have tried. Wow did it take a lot of tries to get Alexa to finally figure out which song I was referring to. In retrospect, it would have been a lot easier to create a playlist of one song with a short sweet name and use that.

I did try “Alexa, pause playlist for six minutes” That was interpreted as “Alexa, stop” 😒

So a good snooze function still eludes me.

Also, I would like an Echo device with a snooze button, and the LCD display like the Echo Dot with Clock except with the good speaker of the six inch Echo with premium sound.

Saturday Night Live should just give up

In today’s climate, and with the concessions Lorne Michaels has had to make over the years, it will never be as funny as this: U.S. Ministry of Truth Interrogates Man Who Shared Misinformation

I remember watching SNL as a kid, back in the 1970’s. It was truly hilarious. 1970’s SNL would have done this skit, exactly, this coming Saturday.

Today’s SNL is likely getting pressured to let Nina Jankowicz host the show instead of (correctly) being mocked on it.

Lorne Michaeals probably sees that SNL is in hospice care. His beloved baby has grown ill, and it’s terminal.

He should do the right thing and pull the plug. Let it die with at least a little dignity left.

I doubt that his corporate owners will let him do that, however.

Microsoft is not good at software

“No shit, Sherlock”

All I’m going to complain about at the moment is Task Scheduler, and how I can run a PowerShell script if the script is on the local C: drive, but if the script is on my H: drive (which is on the network) then it’s no longer PowerShell, it must be ImpotentShell and should thus fail.

Apparently networks scare Microsoft?

Task Scheduler will attempt to launch it, with the target being powershell -File H:\blah\foo.ps1

But that run of the task will fail with the result code 0xFFFD0000

The only change I made to the Task Scheduler was to change the target path from -File H:\blah\foo.ps1 to C:\blah\foo.ps1. Now the script runs, where it failed before.

I find the whole attitude of “well, the network is so fragile that we are going to fail when we to try” moronic. The freaking machine this script on is a VM (a file) loading across the network you dolts.

But no…. We can’t have a PowerShell script on a network share. Network shares were invented 39 years ago – there’s no way that Windows can rely on tech that bleeding edge and unstable. So now I have to build stupid shit file synchronizing routines to keep changes made in the official repository up to date with the stupid copy on the stupid C: drive.

Please, Microsoft, keep working on Windows 11. Moving the start menu to the center of the screen is so important.

Also: why on the Lord’s Green Earth is the Task Scheduler All Running Tasks dialog box a fixed width? Wasn’t Windows 3 like, twenty years ago?

Man, I wish I could retire from this job.

More Factorio notes

I tried one belt each, of what I need to get to purple science. But I goofed, and didn’t extend the Stone belt where the Stone Bricks belt went, so I had to squeeze it in. D’oh!

So, at this stage of the game, I have (from left to right):

  • Low Density Structures
  • Blue Circuits
  • Batteries
  • Sulfur
  • Iron Plates (this belt should probably be four belts wide)
  • Copper Plates (this belt should probably be four belts wide, or perhaps two)
  • Green Circuits
  • Steel Plates (this belt should probably be two belts wide)
  • Stone Bricks
  • Stone Ore
  • Coal
  • Plastic
  • Red Circuits

So, in order of appearance, they went like this:

I should note that as I laid down my template of which resources would be in which belt lane, (when the research let let) I created Constant Combinators with the item to go on the belt. Factorio did not display which item, until I went to Settings –> Interface –> Show Combinator Settings in alt-mode

  1. Iron Plates
    1. Feeds green circuits
    2. Feeds red and green science
  2. Copper Plates
    1. Feeds green circuits
    2. Feeds red and green science
  3. Green Circuits
    1. Feeds red and green science
  4. Steel Plates
    1. Feeds Big Mall by SwaggoFlamingo – although I think I would like a more complete mall
  5. Coal
    1. Turns out Big Mall by SwaggoFlamingo needs stone bricks, so I built a smelter nearby, which needed coal
    2. Next up was black science, which needed coal and stone bricks, too
    3. Later, Plastic will need coal
  6. Stone Bricks
    1. Feeds black science
  7. Plastic
    1. Feeds red circuits
  8. Red Circuits
    1. Feeds blue science
  9. Sulfur
    1. Feeds sulfuric acid, which is needed for batteries
  10. Batteries
    1. Feeds yellow science
  11. Blue Circuits
    1. Feeds yellow science
  12. Low Density Structures
    1. Feeds yellow science
  13. Stone Ore
    1. Feeds purple science

Build order

  1. starter Iron mining and smelting
  2. starter Copper mining and smelting
  3. starter Stone drilling
  4. Starter base with red science, yellow belts and green circuits
  5. Electricity generation
    1. Boiler
    2. Offshore pump
    3. Steam engines
    4. Burner inserter
    5. Wooden box to store coal in, until a belt of coal can be delivered
    6. Small electric poles
  6. Iron mining (electric miners)
  7. Copper mining (electric miners)
  8. Coal mining (electric miners)
  9. Iron smelting
  10. Copper smelting
  11. Steel smelting
  12. Lay out main bus
  13. Green circuits
  14. Red and Green science
    1. Research Electric Energy distribution 1 to get steel towers
    2. Science labs
  15. Bolster electric mining and attach output to main bus
  16. Black Science
  17. Do not us Mike’s Mall – Yellow – I started with this, only to find that the factory that builds Medium Electric Pole and Big Electric Pole was missing the iron stick ingredient, and there was not a good space to add a factory which reached the iron plates belt line.
    1. Now I’m going to try Kitch’s Totally Practical Strip Mall – 3.0 (0.17 Update)

The other thing I did was combine the Unload 4 red train station by Nilaus with a medium buffer by Shaderon (which I doubled to do four lanes). The blueprint is here:

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

Man, Imprivata sucks

I need the administration manual for Imprivata (they do hardware based single-sign on). If I search for Imprivata onesign administrator guide I get a document on the Imprivata web site which is a marketing fluff piece.

Really, Imprivata? This is how you want to “help” me?

Turns out to get the actual administration manual, I have to go to manualzz.com

That doesn’t look sketchy at all.

Seriously Imprivata: how can you be that stupid?

And, by the way, the documentation my co-worker wrote says that their administration web sites don’t work with anything other than IE (Microsoft Internet Explorer, which is in hospice care, and has been since last summer).

I get it, software is hard, and upgrades can be tricky. It takes time to not break things.

But hiding your user and administrator manuals is downright customer hostile.

Sigh. Everything would be fine if only Imprivata would do as I say. (But seriously, I wouldn’t be the only person helped if they didn’t try to make it difficult for me to figure out how it broke this time).

Everything would be fine if you would just do everything I say

This is, in essence, a form of bullying.

Lately, I see it everywhere.

I don’t know if it’s always been this way; but I think not. I think that as legacy media is in it’s death throes, they have amped up the noise something terrible. Or maybe they are just in servitude to their masters, who want to bully the planet into greater servitude.

Anyway, people feel a need to push their idea of nirvana onto other people. They wouldn’t call themselves bullies, but if you don’t want to be called a bully, you need to not be a bullly.

Latest bully: Mozilla Firefox, with a push of a fucking tab that starts with “Why am I seeing this adorable red panda?”

You assholes. Stop it! I don’t care and am completely annoyed that you idiots think my time and attention are your playthings. Fuck you and the horse you rode in on.

Actually, I kind of feel bad for the horse, because the poor horse didn’t ask for you to ride in on it.

If you’d asked the horse, it would have said “I don’t want to be ridden by bullies.”