Back at my apartment, and most of my (very large) complex is up and running, though some buildings are still having problems with power and/or water. Austin is under a boil notice, so our complex has an empty apartment where you can pick up water, but fortunately my mom sent over bottled water for me and Child so I don't have to take away from those really in need.

(Personally I think those without power and/or water entirely should be sent giant care baskets complete with whiskey as needed because holy shit.)

School

School was canceled all last week and up to Wednesday, so first week assignments aren't due until next Monday (March 1st). Last Tuesday, before they made the announcement killing first week, I desperately did and turned in both first week assignments and started second week for Intro to Computing as quickly as possible. However, of the two distance learning classes, it's the most self-paced so it probably isn't affected which is a shame; it's kind of sometimes--boring.

Intro to Computing - the Drama
Okay, so here's the problem: it's a required class for the AAS or BAS, and it's important in that it hits that vast array of knowledge of computing in the 21st Century just in case you don't know some of it. I get this is important and is going to go into details I don't know, and I need it.

But.

I have the privilege of having been inducted into fandom in 1998, and for those of you in fandom in 1998, everyone wasn't just computer literate; it was like eeevverryyone but me had PhD's in Computer Shit and the Internet Thing. So to do what I really wanted--write porn about Tom Paris and B'Elanna Torres like anyone sane--I had to learn things like 'webpages' and 'mailing lists' and how to post to usenet and 'search engines'. And as fandom is always two steps ahead of the general population, I had to learn backward as well as forward at the same time. So a lot of the class so far is very much like a technical re-reading of my literal internet history, so much so that I keep glazing over when reading and missing the technical terms I actually don't know and need to that are basically defined by 'your life circa 1998 to 2003 as we talk about the Early Web'.

The thing is, I was twenty-one when I got online; I don't actually remember how things worked before I had the universe at the click of a keyboard. I mean, if you had a gun to my head and told me to relive my childhood RIGHT NOW I remember 'pen pals' and 'encyclopedias' and 'microfiche searches of multiple libraries to find this book I really wanted when I was in my teens'. I remember it as a thing that happened, but I don't remember entirely what it was like to live in. Now I think of it in horror--the frustration! the annoyance! the hellscape! the SLOWNESS!--but in my teens I didn't have any other context so best guess it was those things but like, in the context of 'normal life' not 'how did I survive?' My digital citizenship may not be from birth, but my entire adult life has been here; I've gone native.

The Office modules are an entirely different story. They're all about the basics of Excel, Word, Powerpoint, and Access and how to use them effectively.

I use Office very much--I have folder named Spreadsheets that is stuffed with the beauty of Things I Like to Turn Into Spreadsheets; I write my own VBA for Excel and Word. I have personalized settings saved into Normal.dotm to set my Normal style and in it are modules with an array of functions and subs I use commonly so they're available to any document I open and assure all my documents are saved in the exact same template. In Word and Excel, when I upgrade computers here or at work, I have a list of settings I immediately change in Options, on the ribbon, in the Quick Access Toolbar, registry edits I make, changes I make in accessibility...I barely even think about it.

However, I also skipped over Vast Tracts of Basic Shit I Never Cared About Because I Didn't Ever Use That. Which has more than once been a problem but not enough for me to learn more than just enough to make a note to "Do this thing whatever it is when that happens, no idea". There are quite a few of those, by the way. For a surprising number of what most people would call basic tasks, I know nothing.

Not anymore.

The Create a Flyer Project was a trip; I found things like Borders and Glow and on the ribbon there's a single button that changes everything to All Caps or All Lower or All Something Else, did y'all know about that? So the Office Modules are incredibly exciting because they're--for me--Brand New Information as taught to probably first graders these days. There's Themes and Colors and basically I'm having a super good time; for the first Word Module I did all the optional exercises just to see what else you could do to a flyer (beveling pictures with round edges and shadows at Blue Accent 2 25% Darker!!!!); it was great. Next Word Module is How to Make a Research Paper and the third is Enhancing Documents (?!?!!?!): I am at the edge of my seat. The three spreadsheet modules I'm almost slavering for; what magic will I learn there??????

And while Access I sort of have used (years ago), it and Powerpoint are effectively Here Be Dragons on my mental map of Office and just--can't wait. At all.

It's the non-Office stuff that's getting to me.

I am learning technical terms and concepts and also there is stuff I don't think I knew, and I missed two questions--TWO--on my first test and got a 23/25 instead of a perfect score so obviously I need to study much harder (when I wanted to retake it--you get at least one retake, highest score is selected--Child told I had lost my mind, but I am not entirely reconciled to this stain on my grade).

Just. Brain-glaze. Ugh.

Fundamentals of Programming - Less Drama

This class is actually on a regular weekly schedule, which means I can't jump ahead (Project 2 hasn't been posted), which means I am going out of my mind. I want to do everything and reading ahead just doesn't cut it or doing the practice exercises to entertain myself until the next project comes out, and if you're baffled on why, I'll tell you.

Coding is probably the highest form of entertainment to me, second only to writing and not by much. This can be a problem.

I already write in Python, and probably I could read straight through doing exercises and learning it without need for Projects to guide me (I just go back and complete the projects as assigned). But: I need to learn it right.

The same problem I have in Office above comes up for me in computer languages; at least in coding, my pattern recognition works extremely fast. Variables, functions, structure: once I've identified each, I start editing immediately, and once I hit a certain edit point (when I rewrite an entire script into something else entirely and realize hey) I start writing from scratch. I learn the advanced level coding--to do something new, you kind of have to--but there vast, vast tracts of basic stuff that if I use it, I just copy paste or memorize without actually understanding it; if I don't use it, I don't know it exists. Which means I am far too often surprised by behavior I didn't predict because I have no idea of a basic principle. And much like Word, I google, correct it, add a paragraph comment explaining it and where I found it, and go on.

My best example of this phenomenon is regex and related concepts.

It's ridiculous, but I have to google the base principles every time and actually have at this point a copy/paste library. And I have, actually, used it enough (dear God enough) to have at least by accident learned it, but my brain, for reasons unclear, does not consider it coding but a really annoying convenience.

a illustrative bash script and explanation )

Explanation
So this script searches my media directories for all movie files, removes the path, then takes apart the file name. My name template is [movie name].[movie year]-[resolution].[extra information].extension.

Example:
spider-man.into.the.spiderverse.2018-4K.extended.edition.mkv

It's a variation of the standard naming scheme for Plex, but I use periods in the place of spaces in movie name and extra information and to separate the movie name from the year (instead of using () around the year) This is because I generally only access my media files using command line and didn't want to mess with strings so simplified into something I could type without hitting shift or remember to use " ". Plex recognizes it for sorting and metadata retrieval, so I'm keeping it.

The code breaks down the file name for a text file and a csv file into Movie Name, Movie Year, Resolution, Extra Information (that I don't need in the spreadsheet so gets deleted), extension (that gives me the specific container), and then some extra code at the end to get date added and file size. The csv file I import into excel, where it's sorted into a master list of all movie files.

(One movie can have up to I think six files for multiple resolutions and added AAC versions. If 4K, a 2160 file that's a sane size if I really want to stream it remotely and also includes AAC versions of all non-Dolby audio streams if it's DTS; a 1080 bluray also needs an AAC compliant version because a lot are DTS only, etc.)

If you're wondering what the problem is, scroll down to first do statement and note all the #comments. Specifically the text of them. Specifically, how many are explanations of what a single small piece of code assigned to a variable does. The same piece of code, in multiple variations.

Example:

# remove everything before the last period
fileExt=${xfile##*.}



There's only four variations of this. Before first, before last, after first, after last. The only things that change between these functions are which of these (#, %), how many (1 or 2), and the location of the * (before or after the dividing character).

Again: there are only four variations of this. Four.

Variations:

# remove everything before the first /
mRoot=${aPath#*/}

# remove everything before the last period
fileExt=${xfile##*.}

# remove everything after the first dash
aname=${afile%%-*}

# remove everything after the last period
afile=${xfile%.*}



I cannot remember them for love or money. That's why every single one not only says 'what specifically I'm removing' but also 'exactly what this tiny piece of is doing to make that happen'. I just checked and some of my comments are wrong (again) because I cannot identify which is which just by looking and have to read the definitions (again) to remember.

This is an example of something I first memorized because it was basic, I only needed it for this one thing once, and now cannot make pattern recognition add it to knowledge base. I can see the goddamn pattern--this is not rocket science--but I can't internalize it enough to recognize one of those four in isolation (or which is which of those four when seen together without notes). Except the *, which is because it matches before (it's before the split character if splitting before, after if splitting after) but I have to think about it to make it happen and keep double checking. It's not that I can't see how it relates to each other; my brain simply will not do it. I can memorize it, and that will work for the discrete session I am writing or editing the script; it will be gone the next day or after I sleep.

I will learn it--eventually--but for reasons unclear to me, frequent usage won't help (this script has been refactored and updated multiple times over two to three years and items moved around quite a bit). One day, for no reason, I'll open this one and suddenly have no problem reading those pieces of code the same way I read the rest, or read a book; that day, however, is not today.

That first printf statement? I know what it does--it's printing to file in columns of x spaces--but I can't take it apart without referring to my notes. If I want to do this with other data, I'd copy paste and very carefully change the numbers. It simply doesn't stick.

This problem happens a lot.


Yeah, that was long.

Anyway, with this Python class, I have an opportunity to be force-paced by the instructor and the lessons to learn first principles instead of jumping ahead to 'Thing I Want to Design' and cheerfully write sixteen nested loops with random if/elif/else or switches. So I'm carefully reading every word of every lesson and examining the examples and using the class structure to avoid jumping ahead and indicating to my brain to discard something as 'unimportant details'. It is interesting, this works for my brain; if i jump ahead too much, however, my brain can and will start deciding what is 'just details' and I am screwed again.

Will this way work? It should: that's how I learned C++. Granted, that was an entirely new language to me at the time, but I'd been writing Javascript enough that it was less unfamiliar territory than a new dialect with a compiling chaser. I can still read all my C++ programs perfectly; all I need to refresh myself is checking my notes, and back then, my notes weren't exactly illustrative.

Other News

Nothing really. Work today should have most of us back, so we'll find out the damage to this sprint. I can't even judge what the decision will be or if they even have one yet; last week was--would have been--Week Two of a four week sprint for a March release. They might decide to scrap it and start everything over at Week One starting this week; they may scrap some items and leave other that didn't require a lot of code changes or already had the code changes done in Week One; they may scrap nothing and just do four weeks of work in a badly interrupted three weeks for everyone. I don't even know if all our data centers are up, if they stayed up, if they went down and came up and error checking found them fine, if they're still error checking....

For that matter, production will take precedence; it's possible they'll scrap the sprint and send us all back to All Regression Testing All the Time to make sure everything in production works which is like if boredom was an Olympic Event.

Oh yeah, can't wait for that.
Due to so much current stress I've been skipping out on my posting here. I really am not feeling doing an update on life at this time, but I want to spread this far and wide.

I talked about starting to use open source Home Assistant for my home automation needs with a Raspberry Pi. since then I updated to an 8 GB Pi and added booting from an SSD.

Now there's something a thousand times better: Home Assistant Blue - $150

This is Home Assistant's own Automation Hub built by them. You do not need to build anything, like a Pi; it's a single board computer with 4 USB hubs, 1 ethernet, 1 HDMI, with a 128 eMMC hard drive and 4G RAM with Home Assistant pre-installed and a very cool blue case.

It's plug and play. Literally, you plug it in and turn it on; that's it.

Below the cut is a copy of my tumblr post on a reblog about open source that breaks down everything you need to know

home assistant for everyone )

Home Assistant also has addons for running your own DNS server, DHCP server, database, Samba, HDMI CEC scanner, SSH, code editors, ABD server, Tor, encryptors, Plex, and I think the equivalent of pi hole (either official or community) and that's just to start. It can do kind of everything.

Official Stuff
Official Integrations
Official Add-Ons

Community Supported (non-official):
HACS

The number of community integrations you can get in HACS are an order of magnitude more than the official and then there's the UI stuff. And then there's the ones not even in HACS yet which you can find if you just google "Home assistant" and "Your Thing" which are like--well, a lot lot lot.

If I can get enough people interested in trying, I want to start a DW comm where people can ask questions, post tutorials, code, or just get support and help. It can be intimidating to start something like this, but help and support make everything easier and fun, and I'd love love love to work with/help/talk/support and/or be main venting person to anyone who jumps in.
I'd been back and forth about trying Home Assistant for my home automation needs, mostly due to a.) inertia and b.) SmartThings pretty much covered what I needed.

Then: SmartThings has been transitioning to a new platform and app for two years, and they managed to break a lot of my custom code and other people's--basically, half of why I loved it. Worse, you could not longer choose what devices to expose to Alexa through it.

This is probably where I should go into a little more detail before I start.

the home automation wars: zigbee, z-wave, and wifi )
example: my home and my home automation, a breakdown )
the home automation wars: this is where it got complicated )

Back to Now

With that perspective, the changes to SmartThings--the loss of a lot of functionality--have been disappointing and frustrtaing. Until now, I used it as a central Hub of Everything with Alexa for voice; now, I couldn't, especially when it became impossible to selectively decide what devices in SmartThings were exposed to Alexa.

Example: my Philips Hue lightbulbs were already compatible with Alexa, so they were directly connected to Alexa. To use them in SmartThings, though, I had to direct connect them there as well. So when I connected SmartThings to Alexa, my Hue lightbulbs would connect again to Alexa through SmartThings and I'd have two of everything.

(In some horrific cases, I had three copies of everything in Alexa, all with the same name, the only difference if I opened properties and could see where the device came from. Worse, some had slightly different names, and Alexa would get confused.

Can't lie, it also bothered me on an anal retentive level; everything was messy.)

My two choices were to
a.) remove everything from Alexa, add it to SmartThings, then let everything go through SmartThings to Alexa. That wasn't feasible; some of the wifi stuff wasn't compatible with SmartThings, and I'd never bothered to test the wifi workarounds available because I'd never needed to.
b.) remove everything from SmartThings that was already in Alexa. As it turned out, that was everything but my z-wave and zigbee devices.

I depressingly chose number two, which was only marginally better than one. This, as a result, mae Alexa my central smart home hub, not just my central Voice Stuff.

Alexa is a terrible central hub; there's limited access when not on a mobile device (the web interface is--horrific). Worse, all connections to Alexa were in, not out. With SmartThings, I could connect them into Alexa, see them and use them in Alexa, but anything connected to Alexa did not connect back to SmartThings. Worse, the automations (routines) you can create in alexa are functional but integration with devices isn't perfect. Alexa's routines simply didn't connect well with zigbee and z-wave devices even when they said they worked. There was delay, a pause, or most likely, not work at all.

In other words, my bathroom lights stopped coming on when I came in the room and that meant war.

(I seriously don't remember how to turn on and off bathroom lights when I enter a room; this is not going to change. I live Star Trek; I'm not going back.)

When I got the NVIDIA Shield TV to take over Plex, I had a Pi with nothing to do with it. So last weekend, I sat down and started the process of learning about Home Assistant.

Home Assistant is a program that makes your Raspberry Pi into a home automation hub. It can connect to any almost existing hub you have with their integrations, bringing them all together. Much like SmartThings but even more so, Home Assistant depends on community integrations, so there's even more made by the community, mostly for devices/ecosystems that don't have an open API.

Basically, it's what SmartThings was doing for me before: I connected all my devices to it and it controlled them, I can create automations for lights or whatever. Better, it allows me to connect to Alexa only things that I want to, so I can connect my Hue Lights to Home Assistant and they won't travel over to Alexa and show up twice or five times or whatever.

There are a billion awesome differences between Home Automation Pi and SmartThings (and other home automation hubs) but there's one big one: the Raspberry Pi does not come with z-wave and zigbee functionality. You either have to buy the parts--a z-wave stick and zigbee board--and make the connections yourself (not hard), or use an existing z-wave/zigbee hub that can be connected to Home Assistant.

In my case, I had my SmartThings Hub, so that is my z-wave/zigbee device. And while SmartThings has made itself more annoying, it does still possess the ability to connect to almost any z-wave or zigbee device in existence one way or another, and much to some ecosystem's despair, even when the break the zigbee or z-wave standard so you can't

(Apparently it took about a day? for users to work out how to connect Aqara devices to SmartThings, even though they deliberately tried to use non-standard zigbee so you'd have to buy their overpriced hub. Good try, Aqara.)

home assistant, an introduction, finally, with pics! )

I'll do a second post about configuring Home Assistant as time permits, but hopefully, this made you curious. As I want friends in my journey and will get them any way I can.
I am taking a month off social media--by that I mean tumblr and twitter--to see if that helps calm me down. I'm officially bored with anxiety; I didn't know it was possible to experience both together, but here we are.

In the last few weeks;
1.) learned new exercises for PT.
2.) installed Home Assistant on my Pi, which is something like SmartThings hub but like, so fucking much cooler and better and more awesome.

After problems with SmartThings meant I de-integrated everything that wasn't z-wave or zigbee. SmartThings went to a new standard and also new app and lost functionality, so it was no longer fun; all my scripts were being killed and all the ones from the community were dying. However, it's still an exemplary z-wave and zigbee hub, so it could be used for that (a z-wave stick is about the same price as a SmartThings hub and that's without zigbee), so I finally sat down with my Pi and installed Home Assistant.

It's about a thousand times better than SmartThings. For one, it's web based, not app based, so the web components are both not an afterthought and also exist; for another it uses Javascript but mostly Python and YAML, and I've really been wanting to learn those two.

I will do an entry on this eventually because holy shit, this is fun.

Related....

3.) Did my first fork and pull on github to bug fix a python script. Yes, I'm finally using github as intended.
4.) Am finally learning python (and yaml). I learn by doing, which generally means I need a project to work on, specifically one that does something I really want to do and can't make work in any language I already know. Making my Sengled Color Bulbs work, as it turns out, was the trick.

When doing the integration for my Sengled bulbs into Home Assistant, the Sengled script had some problems and since python is Javacript With Indents, I went to read the script then read the developer's notes. He didn't have some of the bulbs I did, so I sent him my logs and then made some corrections to the scripts since it would be harder for him to do that part without the right bulbs to test (Sengled doesn't have a public API so he was doing it all with the app, a Sengled Hub, and watching traffic and jsons). Anyway, he invited me to submit a pull instead of sending him script bits, so I learned github while python to do the corrections. It was fun.

adventures in scripting )

Adventure indeed.
Like most people living Life in a Time of Coronavirus (and Trump Adminstration Year Four), I am forever searching for new ways to stave off anxiety attacks, panic attacks, a full nervous breakdown, and extreme boredom while leaving my home as little as possible.

Masks For All Occasions

Sometimes, I buy new masks and now I buy just from here: Bizzy Bates Creations

So far, these are bar none the best masks I have found anywhere. I talked about it on twitter but forgot here so: why I love these.

1.) They fold out to fit your nose and your chin without gapping.

This is my favorite part. The designer was an LPN and obviously got what faces are like in three dimensions and what masks need to do. It fits to the contours of your face amazingly.

2.) Fits under your glasses so no fogging!!!!!

3.) Adjustable straps to fit me and Child, whose head is bigger than mine.

4.) A lot of options for fabric that changes frequently and excellent design work. These are pretty and the fabric is excellent. We have five so far and I just made my July order.

5.) Preinstalled cotton filter and totally washable.

I cannot emphasize enough; I've bought many masks from different places and people, but hers are the best and most comfortable I've tried. The fit is incredibly good, and it fits close but not too close; the fold out means you can fit it to your face. Like, the only way I could get a better fit would be hire a seamstress to custom design one to my head.

Also! She also now sells silk-lined bonnets for textured hair that are gorgeous.

Note: Sherry is amazing; she's warm, kind, friendly, and responds to email promptly. I've emailed her a few times, including today today about the bonnet since I want to surprise a friend with one but since I'm not black and don't have textured hair (and I wanted to surprise her so couldn't ask her), I wasn't sure about maximum hair length or type, as friend does many kinds of updos and braids as well as extensions and Marley braids. She wrote back very quickly to assure me it would fit. I just ordered two--one adult, one child--for a friend and coworker whose been very stay at home since she has a five year old with asthma.

Hobbies in the Time of Coronavirus

I feel like my Shelter At Home learned skill is Ripping with MakeMKV and Encoding With Handbrake Every Movie I Own in All Possible Formats to Play on Anything Then Buying More Movies to Do It More.

And I am well on my way. Currently, my media server is technically 22 TB, because I had to add another 8TB hard drive. Yeah.

After getting NVIDIA Shield TV Pro--RECOMMENDED HOLY SHIT--I hooked up the four bay hard drive enclosure directly to my router via USB 3.0, which works gangbusters. And so.

Drives:
Video
- Size: 3TB (actual 2.68TiB)
- Used: 354 GB
Television:
- Size: 3TB (actual 2.68TiB)
- Used: 1.56 TiB
Movies:
- Size: 8TB (actual 7.22TiB)
- Used: 3.34 TiB
- Movies without a 4K version
Movies2: - NEW!
- Size: 8TB (actual 7.22TiB)
- Used: 4.14
- Movies with a 4K version

The reason for having to get a second 8TB hard drive is my Shelter in Place hobby.
video encoding is a drug )

I Blame Spreadsheets

My Ubuntu Server Spreadsheet is the reason this happened, by the way. I wanted to get a full list of all my movies, and I thought, why not organize it? Then I thought, why not pull all vital statistics on a video file? Then I thought, why not create multiple sheets to break down the raw stats into readable information?

This was a process, is what I'm saying. A terrible escalating process. But what, I ask you, is more soothing to someone with ADHD, anxiety, and depression than finding new and amazingly anal organization schemes?

Which means there are the following separate sheets:
DATARO - this is a text file created by a bash script on my server that gets a list of all movies and formats it using information from the file name and location and imported into Excel.
DATAROM - this is a text file created by a bash script that run mediainfo on every single movie file and gives me vital statistics like: number of audio streams, number of subtitle streams, video encoder, source, and the name of each and every audio stream. Yes, this is where everything went wrong.

SPOILER: DATAROM is where eeeeeverything went to hell.

MoviesAll - created by VBA from DATARO. This is a straight list of all movies with the following fields: Title, Size, Unit, Resolution, Format, Date Added, Subdirectory, File Name, and Bytes, which is how I get Size and Unit.

That sounds great, right? No, it's not nearly anal enough. I now had DATAROM.

MovieType - created by VBA from DATAROM. This consolidates all movie files by title and resolutions, so I can see on a glance how many resolutions a movie has and its format(s).

SPOILER: this is how the 'create 720p for everything' began.

MovieInfo - created by VBA from DATAROM. This goes movie file by movie file, pulls the name of each audio stream, and categorizes it in a easy to reference table under one of four audio stream types and twenty-three subtypes: Dolby (8 subtypes), DTS (7 subtypes) , AAC LC (5 subtypes), and Other (mpeg, pcm, and other).

The last one is my beloved because it took me for fucking ever. This is where I learned all about how names have no meaning, all the meaning, multiple names for the same thing, and sometimes, astrology, I have no idea.

Behind the cut is a (very guesswork) breakdown of categorization of audio streams. I cannot emphasize enough how much google and guesswork went into this. If anyone sees this--and bold of me to assume anyone read this far, I don't think anyone is that bored--and wants to correct my interpretation of audio stream types, feel free please God I may canonize you when I get my new religion off the ground.
VBA Select Case Table for Audio )

Anyway, that visual breakdown is what alerted me to the DTS-only problem and how I ended up here today. I have no regrets, and that may be worrying.
I completely forgot Monday is a holiday. This is what WFH does to you; you forget holidays.

MediaInfo - Everything You Didn't Know About Your Movies and Videos

So I think I mentioned it before, but anyone with a media collection they want to analyze or vidders who want an easy way to document all their source super thoroughly might like to try Mediainfo, which does a full analysis of your media to get literally all the information about it--audio streams, video streams, all the encoders, bitrate, a billion more things than that, etc. It works on any platform. If you have a large media collection, this is for you.

Here is a mediainfo file on The Martian. This doesn't show all the possible options, btw, just like a lot of them.

About Templates

However, that's pretty slow to do one movie/video at a time; instead, use command line to do in batches. Better, to get specific information you want instead of All Of It My God, you can create a template for mediainfo to read.

I have written several templates; my latest is one that will get everything in a movie that I want and place it in a csv file in a single line, so when it's done, I can see all my movies and info in a single spreadsheet. All you'd need is a script or program to loop through your movies to add them to the file if you use Windows; if you use Linux, I have a bash script you can use as a template or I can tell you how to adapt it to your file locations. The limitations are how wide you want your spreadsheet as each movie has about five billion or so characteristics and a lot lot lot of redundancy.

How The Template Works
If you look at the xml or text of a mediainfo file for a movie (see above), it's split into groups: General, Video, Audio, Text, and Menu. In the template, each group gets its own line; you cannot mix them up. You don't have to use all the groups, but no matter what order you have them in on the template, it will still write them into the file in the order above (General, Video, Audio, Text, Menu).

To Create a Template
Open notepad or something plain text.

You start with the group you want, semicolon, then a list of all the properties you want from that group, each one surrounded by '%'. You can use any delimiter.

This is the command:
mediainfo --Inform=$template $movie 1>>$file

Here's my template that is stored in a plain text file:
General;%FileName%,%FileSize%,%Duration%,%AudioCount%,%TextCount%,
Video;%Format%,%InternetMediaType%,%OriginalSourceMedium%,
Audio;%Format/String%,%Format_Commercial%,%Title%,

Note: I put a comma at the end of the line for the future csv file to import into a spreadsheet. If you plan to import into a spreadsheet, make sure you put your delimeter at the end of the line.

This give me:
General--> movie name, size, duration, how many audio streams, how many text streams (subtitles)
Video-->The format (HEVC, AVC, MPEG), internet media type (encoder sometimes) and the original source (bluray, DVD, or if blank, that means I did the encoding myself)
Audio--the string name (MLP FBA 16-ch, DTS, AC-3), the commercial name (Dolby TrueHD with Dolby Atmos, Dolby Digital, DTS), and title which is specific type (7.1 surround sound, 5.1, etc).

Here's what my spreadsheet looks like using this template: Media Spreadsheet

That Spreadsheet Is Kinda Big
Yeah, all this on one line--especially with nine to seventeen audio streams--gets big (see sheet above). You can also do multiple templates, one for general, one for video, one for audio, etc, and run them one after the other.

mediainfo --Inform=$genTemplate $movie 1>>$generalFile
mediainfo --Inform=$vidTemplate $movie 1>>$videoFile
mediainfo --Inform=$audTemplate $movie 1>>$audioFile

The only problem with that is with the video only and audio only template, you'll also need to have General as well so you can get the movie name, since General is the only place the name property appears. so for a Video only, you'd do something like this.

General;%FileName%,
Video;%Format%,%InternetMediaType%,%OriginalSourceMedium%,

Mediainfo - All Properties List

For reference, here is a complete list of all properties available, separated by group (General, Video, Audio, Text, Menu).

Generally, to work out what is what, run mediainfo on a few movies (a bluray rip, a DVD rip, one you encoded yourself, one with DTS and one with Dolby, a vid you downloaded, etc), get the XML document for each, and contrast/compare what information is given. It's not always clear what does what--or if it does anything--until you check it in multiple formats. Some properties are very specific to the video type, audio type, or subtitle type.

I highly recommend this program. I'm currently adapting a script and template to use on my vid collection to find old formats/bad formats/redundancy/etc.

If you have any problem accessing the linked files, tell me; I set it to everyone but well, google is gonna google.
As literally everything seems to be on its way to hell or trying to lodge itself in my spine, I needed some kind of triumph. Like, one I could actually see and use.

In general, this mood requires me to build something or code something; as I can't bend my back at all, I went to coding and tried to think of something code-related that I really needed in a language I knew or could learn quickly. The project needed to be large enough to require all my attention but small enough I could finish it in a day or two because I need a hit of triumph like whoa.

...and while reading tumblr, PgDn once again jumped straight to the bottom instead of scrolling and my momentarily dramatic rage was replaced by the realization I had a Project: a bookmarklet to go to the top of any webpage. Yes, you'd think my Project would be something to fix the problem of PgDn (only happens in tumblr), but no; it reminded me when I'm on AO3 sometimes a fic is very long and I want to jump back to the top instantly while in the middle. Go with it, okay?

So for Project ScrollToTop, I would need Javascript DOM and I girded myself for some intensive searching, which actually took roughly five minutes to find and ten minutes to write because fuck my life, the one time I want a challenge, I don't get one. There's a command for this. Just--right there ready to go.

In case anyone wants them:


/**
 * Scrolls to top of any webpage
 * Compatible with Safari, Chrome, Firefox, Opera
*/
javascript:void function(){var body=document.body;var html=document.documentElement;body.scrollIntoView();html.scrollIntoView();}();





/**
 * Scrolls to bottom of any webpage
 * Compatible with Safari, Chrome, Firefox, Opera
*/
javascript:void function(){var body=document.body;var html=document.documentElement;body.scrollIntoView(false);html.scrollIntoView(false);}();



So that was anticlimactic and required nothing more than the ability to cut and paste basic commands into the template. Triumph? I'll take it.
personal stuff )

I think I picked up a mild cold, which ick. But whatever.

Now, more about Plex! Specifically some useful tools once your server is up and running.

quick review of command line from earlier tutorial )
ssh )
ssh continued: optional configuration for port )
RDP, an alternate method of remote access with GUI )

Now, on to Plex itself.

Plex client apps--like the Plex app in FireTV, or the one in your SmartTV, or in Roku, or your browser, etc--are the ones that actually play the media locally and remotely. For reasons, they sometimes have problems with some kinds of files, some resolutions, and some audio streams. Your TV or sound system may also only be able to play certain resolutions and audio. Especially for remote access, you're going to want multiple resolutions. Why?

Transcoding, the thing we must avoid. I'll explain.

Plex and Multiple Versions )

Happy plexing!
Not much is going on, but I'm here, so why not?

Health
So actually surprising here: the Vitamin D thing is working.

It took about six weeks--probably because of those ten days sick--but this week, I notice the following:
1.) I can get up in the morning like, on time.
2.) I can get up earlier. This is very new.
3.) I no longer want to sleep at lunch.
4.) I am getting sleep decent sleep--at least, I think--and so don't need the same amount. I'll get back to that.
5.) The constant tiredness is receding; now I feel 'sleepy' when I want to sleep, not just general issue tired that ebbs and flows. It's great.

As of this last week, I take a capsule on Sunday night/Monday morning and it starts to wear off by Fridayish--the pee test is useful here--but like, the difference between even then and before is noticeable.

Sleep--mostly I would variate between six and nine hours. I'm not sure why. One sleep trick I really love is come home, nap for a couple of hours, get up and make dinner refreshed, do shit, then go to bed again for about four-five hours. It's just not feasible to do it often, but man....

Anyway, with the blessings of my doctor, I started back on a multivitamin with Vitamin D as well and started buying Tang, which unhealthy whatever, I love that shit and as it has Vitamin C, I have a good excuse to get a lot of it. Interestingly, I'm not the only person at work on a Vitamin D script; we share notes.

It's possible the Adavair inhaler is helping as well, and definitely helping is less cedar fever. So, well lived, life.

Plex

I updated my Plex guide with formatting changes for readability and some corrections; I'll continue to do so as needed.

I'm thinking about writing a basic Ubuntu command line primer--since Pi uses a version of Ubuntu--that I would have loved when I first started out in Ubuntu command line. Especially the obvious stuff and the stuff that makes command line fun and interesting. And a list of useful programs to start off with.

I originally went without a GUI to learn command line, but I honestly didn't realize how much easier a lot of things are to do that way, not to mention scripting. Some programs definitely benefit from a good GUI, so I make sure I always have one in my servers to login to, but some functionality is so much easier if you can just pop off a command or have a script that does exactly what you want. And faster, God.

It's actually spoiled me; I get super annoyed with Windows because I can't just open a terminal to do something with Windows' lockdown on functionality.

TV

While sick, I finally sat down and burned through all of Psyche.

My thoughts:
a.) It is much better than I thought.
b.) It didn't hit my embarrassment squick almost ever, which genuinely surprises me.
c.) Gus is a gift. I am still rooting for a West Wing 2 where the actor plays President Charlie please God.
d.) I do not think it was an accident that Shawn's marriage proposal to Juliet was on behalf of him and Gus. I think he corrected himself when he realized he actually hadn't married Gus yet and probably needed to propose to him separately to make that happen.
e.) It will totally happen, and Gus and Juliet are so going to cosplay at Comic-Con while Shawn marvels how he's married to two giant goddamn geeks. They'll make him dress up. It'll be hilarious.

I really need fic for Shawn/Gus. Must look.
Saturday, February 15th, 2020 05:15 pm

pi plex server

Thanks to my birthday, I finally got to experiment with creating a Raspberry Pi Plex Server. I've only been dreaming of this for two years, so here we are.

If you don't know what Plex Media Server is, I wrote about it before, but it's pretty much the standard for home media servers. It's out of box easy to use with any operating system; it's all point and click; it can run on anything at all. It's free. Right now, it's the best option right now for usability, ease of access, and features, and honestly, it doesn't have a lot of rivals that match it on any of these and none on all fronts. Kodi's comes second, but by quite a bit; I tried it, I liked it, but it needs more seasoning and some understanding on how people use media servers.

This is, right now, the best place to put your movies, tv shows, and fanvids. Though with fanvids, some work will definitely be involved, it's worth it for the sheer organization and tagging and linking you can do to associated shows and movies.

It runs on literally anything, but as I got the pi up, if you don't have an old computer and want to do some comparison shopping, I thought I'd break down the price point on building an economy Home Media Server that can play anything--even 4K, I'm doing it now--and won't break your budget and how to install and run it.

Pi Plex Media Server: Hardware


We'll start with what you need for your new Pi Plex Media Server.
Raspberry Pi )
Raspberry Pi: Required Components )
Raspberry Pi: Installing NOOBS on a microSD Card )
Your Media: Hard Drives and Storage )
Pi Media Server: My Configuration )
Pi Media Server: Alternate Configuration Examples For Your Budget )

Pi Plex Media Server: Software


Now, installing Plex: I read three tutorials to put this together. Here are the two most useful to me.

Links:
How to Setup a Raspberry Pi Plex Server
How to Turn a Raspbery Pi into a Plex Server

These will work fine, but I did run into some differences. At first, I was going to just write here my changes, but making you jump between if you don't want to may be confusing, so I'm reproducing the instructions they gave--or both if they differ--and adding my changes for Pi 4 and the latest OS update.

Note: This will all be in command line; don't be afraid. This will be very exact and I'll be telling you not only what to do but why and what it means. You cannot do this wrong, I promise; I'll be with you the entire time.

This will be in four parts.
Before You Install Plex )
Install Plex Media Server )
Configure Plex Media Server Run Options )
Now, To Make Your Plex Life Easier: A Bash Script )

Now, enjoy your new media server.

ETA: Edited for readability.

[personal profile] astolat posted: SignalBoost bookmarklet update! Now boosts HTML

I've now updated the bookmarklet so that it preserves the HTML encoding in the selected text, so for instance if you select a chunk of text that includes an image or links to an AO3 story or to another DW post, the links will be preserved. It does NOT work on embedded video, sorry. :(



AstoMarklet V.1.2
- added autofill of tags; used "reblog"

This version style includes:
- border:1px solid
- padding:10px
- box-shadow: 5px 10px

Other:
- Fixed subject with "AstoMark Testing" prefix so as not to confuse people.

I have been away from CSS too long for it has become more awesome. There is box shadowing. I have seen it before on pages but knew not how the magic happened. Truly we live in an age of wonders.

[personal profile] astolat posted: SignalBoost bookmarklet update! Now boosts HTML

I've now updated the bookmarklet so that it preserves the HTML encoding in the selected text, so for instance if you select a chunk of text that includes an image or links to an AO3 story or to another DW post, the links will be preserved. It does NOT work on embedded video, sorry. :(




AstoMarklet V.1.1
- added new div for style control of entire reblog text (p and blockquote)
- open window in new tab

This version style includes:
- border:.1em solid #1a6f00
- padding:1em

That border just will not get thinner.

[personal profile] astolat posted: SignalBoost bookmarklet update! Now boosts HTML

I've now updated the bookmarklet so that it preserves the HTML encoding in the selected text, so for instance if you select a chunk of text that includes an image or links to an AO3 story or to another DW post, the links will be preserved. It does NOT work on embedded video, sorry. :(



Uh, don't mind me, I'm playing with the reblogger bookmarklet because this is--seriously--how I have fun. Look, I've been sick so it's this or redesigning my network (again). Also, I never bothered to learn DOM so something new!

AstoMarklet V.1.1
- added new div for style control of entire reblog text (p and blockquote)
-- div style: background:#ecf7ec
-- div style: padding:1em
- open window in new tab
Okay, I used this one and these are possibly the best and clearest instructions I've seen for using pretty much anything. Like, I cannot possibly think of a way to improve on these instructions, it's that well-written.

Backing up your tumblr with Python

My notes:
- For Step 2, #4:

C:\Users\Unmutual\Downloads\bbolli-tumblr-utils-3a37fe6\bbolli-tumblr-utils-3a37fe6

The number sequence at the end of the filename is going to be different; yesterday, for me, it was f234953 and today it's c63cdb8 when I downloaded. So make sure you check your file name or better, just go to it and copy the path from the folder path.

- For Step 2, #5-6 - Windows 10

You're going to go to Control Panel/System and Security/System and click on Advanced System Settings on the left. The Advanced Tab displays; click on Environmental Variables. You'll see two boxes--teh lower one, select Path and click Edit. Now you can see, line by beautiful separate line, everything that is using Path. Click New and paste in the url into where your cursor went and then OK. You won't need the semi-colon, or at least I didn't.

(I am genuinely shocked Windows improved something.)

This took me about ten-fifteen minutes and I have comparatively little content so yes, this may take a while.
If you use Googledocs for fic, you may already know that they've added javascript functionality so you can create your own scripts for stuff that they don't have in the menus or stuff that you want to do that takes several different menu options (or a select all). You can find the manager and editor under the Tools menu.

There are some odd restrictions with their currently available classes, but below are two simple functions you can add to the custom menu dropdown that you can add to your toolbar (which trust me, was the highlight of my googledocs experience). One controls fixing your entire document's font and size (you can add any of the attributes listed here for the style), and the other fixes a selection of text.

This is a work in progress. These do not run very quickly yet, but I timed how long it takes me to do it manually and it is faster. I assume googledocs will eventually speed this up; their excel scripts run extremely fast, but no matter how much I optimize the code here, it's still noticeable in its lag.

javascript for practical use in googledocs )

Slowly but surely, googledocs is adding more classes as they go, so hopefully there will be more flexibility soon. It does recognize the most recent version of javascript that I could find and test with, and I haven't found any that doesn't work.

However, the classes available can be confusing in what they do and don't allow, one, and two, they occasionally have secret methods and properties that don't show up in the API or in the autocomplete. I have no idea why, but it's kind of like an easter egg when it happens. Such as, in the first script, in the last line, editAsText does not actually appear as a potential method on the document object, but as it worked, I used it to add some (very small) speed to execution.

Any suggestions or hey, code of your own! Would love to hear about it.

Profile

seperis: (Default)
seperis

Syndicate

RSS Atom

Tags

Quotes

  • If you don't send me feedback, I will sob uncontrollably for hours on end, until finally, in a fit of depression, I slash my wrists and bleed out on the bathroom floor. My death will be on your heads. Murderers
    . -- Unknown, on feedback
    BTS List
  • That's why he goes bad, you know -- all the good people hit him on the head or try to shoot him and constantly mistrust him, while there's this vast cohort of minions saying, We wouldn't hurt you, Lex, and we'll give you power and greatness and oh so much sex...
    Wow. That was scary. Lex is like Jesus in the desert.
    -- pricklyelf, on why Lex goes bad
    LJ
  • Obi-Wan has a sort of desperate, pathetic patience in this movie. You can just see it in his eyes: "My padawan is a psychopath, and no one will believe me; I'm barely keeping him under control and expect to wake up any night now to find him standing over my bed with a knife!"
    -- Teague, reviewing "Star Wars: Attack of the Clones"
    LJ
  • Beth: god, why do i have so many beads?
    Jenn: Because you are an addict.
    Jenn: There are twelve step programs for this.
    Beth: i dunno they'd work, might have to go straight for the electroshock.
    Jenn: I'm not sure that helps with bead addiction.
    Beth: i was thinking more to demagnitize my credit card.
    -- hwmitzy and seperis, on bead addiction
    AIM, 12/24/2003
  • I could rape a goat and it will DIE PRETTIER than they write.
    -- anonymous, on terrible writing
    AIM, 2/17/2004
  • In medical billing there is a diagnosis code for someone who commits suicide by sea anenemoe.
    -- silverkyst, on wtf
    AIM, 3/25/2004
  • Anonymous: sorry. i just wanted to tell you how much i liked you. i'd like to take this to a higher level if you're willing
    Eleveninches: By higher level I hope you mean email.
    -- eleveninches and anonymous, on things that are disturbing
    LJ, 4/2/2004
  • silverkyst: I need to not be taking molecular genetics.
    silverkyst: though, as a sidenote, I did learn how to eviscerate a fruit fly larvae by pulling it's mouth out by it's mouthparts today.
    silverkyst: I'm just nowhere near competent in the subject material to be taking it.
    Jenn: I'd like to thank you for that image.
    -- silverkyst and seperis, on more wtf
    AIM, 1/25/2005
  • You know, if obi-wan had just disciplined the boy *properly* we wouldn't be having these problems. Can't you just see yoda? "Take him in hand, you must. The true Force, you must show him."
    -- Issaro, on spanking Anakin in his formative years
    LJ, 3/15/2005
  • Aside from the fact that one person should never go near another with a penis, a bottle of body wash, and a hopeful expression...
    -- Summerfling, on shower sex
    LJ, 7/22/2005
  • It's weird, after you get used to the affection you get from a rabbit, it's like any other BDSM relationship. Only without the sex and hot chicks in leather corsets wielding floggers. You'll grow to like it.
    -- revelininsanity, on my relationship with my rabbit
    LJ, 2/7/2006
  • Smudged upon the near horizon, lapine shadows in the mist. Like a doomsday vision from Watership Down, the bunny intervention approaches.
    -- cpt_untouchable, on my addition of The Fourth Bunny
    LJ, 4/13/2006
  • Rule 3. Chemistry is kind of like bondage. Some people like it, some people like reading about or watching other people doing it, and a large number of people's reaction to actually doing the serious stuff is to recoil in horror.
    -- deadlychameleon, on class
    LJ, 9/1/2007
  • If imitation is the sincerest form of flattery, then Fan Fiction is John Cusack standing outside your house with a boombox.
    -- JRDSkinner, on fanfiction
    Twitter
  • I will unashamedly and unapologetically celebrate the joy and the warmth and the creativity of a community of people sharing something positive and beautiful and connective and if you don’t like it you are most welcome to very fuck off.
    -- Michael Sheen, on Good Omens fanfic
    Twitter
    , 6/19/2019
  • Adding for Mastodon.
    -- Jenn, traceback
    Fosstodon
    , 11/6/2022

Credit

November 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 2022
Page generated Jun. 5th, 2025 08:17 am
Powered by Dreamwidth Studios