Okay so yes it's been five months since I posted, but in my defense:

1.) Spring Semester got intense (4.0 for two classes!)
2.) Summer Semester was an eight week hellscape (3.5 for two classes, almost learned to hate databases)
3.) Fall Semester is my first semester of three classes (nine hours) and there's been some adjustment.
4.) ...I moved.

Wait, what?

The last time I posted in April, I was really only thinking seriously about it but without commitment. then Child got a tech support job, and he really wanted to move pretty much anywhere else, which--this being Austin--is not cheap; worse, the areas he wanted to move to were really not cheap and stuffed full of new, shiny, very trendy new complexes which were really really not cheap...none of which either of us could possibly afford on our own, which is when he said we'd split the rent down the middle.

That made it surprisingly doable. For those who know Austin, our final area choices (that at least were vaguely possible, was the North Lamar area south of 290 where a lot of new complexes had and still are popping up and south of the River (South Austin). Downtown was not doable without selling some key organs that don't have backups and cant' be replaced. We also checked a few other areas, but North Lamar was our first choice for a.) the center of everything, b.) buses everywhere and access to the train, and c.) it's just super cool, okay?

The total rent we could afford was $2200: go.

Apartment Hunting )
The Two Contenders )
You Would Not Believe How Relieved I Am For This Turn of Event )
My Apartment )

I still live in a Box Jungle but I'm sitting on my porch doing homework at night overlooking the pool right now. I've been imagining being here and doing this for months and honestly? It's even better than I thought.
Wednesday, April 14th, 2021 01:06 am

this has been a week

Home Assistant

WHEE! My Home Assistant Blue arrived! I did the migration a couple of days ago, and so far, I'm impressed.

1.) I did not realize the case was metal. Sweet.
2.) It seems to run more smoothly than Home Assistant ran on the Pi, which I'd expect since the Blue was purpose-designed to run Home Assistant.
3.) The resource usage is much better; process temperature is 25% lower and there's a minor but definite increase in speed. And this despite the fact that my Pi ha 8G of RAM and Blue has only 4.

DIY NAS - A New Thing to Do With a Pi

This means that my Pi is now free. Or was, because since it was available, I decided to experiment with diy NAS (network attached storage). Basically, download OpenMediaVault to the Pi, connect my external four-bay enclosure that holds my media to it, and go to town.

I'm still learning OpenMediaVault, so while I did get it working smoothly (with some early annoying hiccups), I want to do some more experimenting before doing a write-up. I'm not married to it, so I am considering trying a few other OSs.

GUI
The GUI is nothing to write home about, and while it's very organized, the design choices are sometimes redundant so it feels more cluttered than it actually is.

I admit I'm spoiled: Home Assistant has a gorgeous user interface and that's just the default; most of what you do in Home Assistant is make it even better and more responsive and more customized. If you have an imagination and a vague grasp of any programming or web design, you can do anything.

OpenMediaVault's UI, like DD-WRT's UI (if you're playing the home game, DD-WRT is the open source software you can use for routers), is--not any of that. It's functional and I will say you can tell no one there made the mistake of trying to break barriers or disrupt the system or rebel against convention and do weird shit with javascript and too much time on your hands, and that's something.

It's utilitarian, and like I said, the design is both clear and redundant. On the left is the sidebar, which is divided into sections, and each section name can expand or collapse all items within. On the right is the main screen, and in a narrow header above it, it has an icon of a house (Home). All items in each section are clickable, taking you to their individual pages. Fine so far.

If you click on Home, the main page shows all the sections in rows, and beneath each section name are all the items in that section and their icons. Everything is clickable: section name on the Home Page takes you to the section page, where all the items are listed; item icon on the Home Page takes you to the item page. A bit redundant, but okay; maybe someone fears sidebars and you can minimize it.

Back to the sidebar; same thing. The section name isn't just a name; it's also a link to the section page with all the items, all clickable to their own pages.

On the header just above this, it shows Home in a button, then the Section Name in a second button. If you click an item--either on the sidebar or on the section page--that appear as a third button. Those buttons are also clickable so you can move forward and back, though you never--so far--get more than three deep and if you have the sidebar open, it doesn't matter, but okay.

It's not easy to explain why I find this weird, except I can't work out why you need three (four?) ways on the same screen at the same time to go to the same place. Basically, this design means you are always at most one click deep anywhere, which would be good but you are only one click deep in three separate ways. It's confusing if you don't expect so much redundancy but it's pretty much impossible to get lost.

I can't tell who it was designed for; DD-WRT was made for intermediate to advanced network and programming people (and it shows in the documentation like whoa), while OpenMediaVault seems to be for everyone and anyone, at least as far as GUI You Will Never Get Lost In Really (so far, there's nothing hidden in nooks or crannies or only appears if you know the right places to check on another random page or tucked somewhere random because fucking with users' heads is fun).

But there's some things I'm not sure an average user is going to know to do or know why using the documentation and quickstart, and if their drives already have media on them--aka not blank or brand new--there are some things are going to be baffling as shit--though super easy to fix--but I'll save that for my write-up.

Verification/Validation

It's an Okay/Apply system. You do an action, click OK, then you have to hit Apply before you do anything else. And almost everything requires it. The first registers the change; the second applies it to the system.

I am not fond of these, but I get why they exist. Most other systems that make me do an OK and Apply is to save time and resources; you can make several changes and click OK for each to store then, and then hit Apply so the system will do all of them at once. On my DD-WRT routers, it was a time saver since each action would take a while individually but massed together much less.

Which I thought this was at first because there's a variable pause between OK and Apply. Long enough for me to want to leave the page and it won't let me and a banner appears at top with Apply. Like, the pause is just long enough that you're ready to go and then BANNER APPLY. Argh.

Then--new and frustrating--after Apply, there's a third check "Do you really want to..." and seriously????? I can get a legal gun* in Texas with less hassle than wanting to have SMART notifications sent to me.

* That is hyperbole, but honestly, not very much. And the fact I have to say its hyperbole demonstrates that.

In Closing

I got it up and running, scrubbed Plex and added all my media from new home NAS, and gotta give credit, Plex plays smoother, faster, with a lot less hiccups than playing from my external attached as a share on my router. This is not a bad alternative to buying a NAS; I'll do a price breakdown when I do the write-up, but not including hard drives, I'd say around $250 or less.

School

We're a little over two thirds through the semester; in Intro to Computing, provided I finish at least three more of the four assignments and get full credit on each, I should have an A (if I do all of them and get full credit, I also get an A along with a glow of accomplishment).

Programming Fundamentals is chancier; I have an A right now, but that only includes my first four projects and my first exam; there are two projects ungraded, one I'm doing now, four more projects in the future, and two more exams. My first exam was an 83.75, which was upsetting (I studied for that one), but provided I get a perfect score on all my projects, I can afford a minimum of 67 on each of the other two exams. Which, hopefully, it won't come to that, but I seriously studied for that test (I took notes and reviewed them, even) and as he hasn't yet released the test for us to review what we missed, I still don't know what all I got wrong and that's haunting me. And not making it easy to prepare for the second exam, either.

Finished registering for the summer semester for six hours and fighting myself not to try for nine hours until fall. I mapped out my degree assuming nine hours a semester spring and fall with six in summer, but I want to try and go to 12 per semester within the next eighteen months.

It's not the workload that worries me, actually; I can do it and pass (very probably), but this time, I want to do it with As, and not just an A, but a dramatic A, like a 96-100 in each class across the board.

Educationally Speaking

When I was in high school and college the first (and second) time around, I was never sure that I could do it and was constantly surprised when I did, and not surprised at all when I got a B or even a C; I didn't like it, but the ways of the grades and my brain were mysterious and I had no idea why I couldn't just sit and study and have that actually work and instead have to depend on my ability to learn fast in gulps and short bursts of short term memorization. Back then, I couldn't even take good notes: I either reproduced the book or lecture (until I literally couldn't concentrate a second longer, which was often) or all the wrong things; I could not work out the alchemy of how you decided what mattered and for that matter, how the fuck anyone could stare at that Wall of Text Textbook and learn anything.

Truthfully, until now, I really genuinely did not realize the extent of a.) my ADHD and b.) the effects of medication. Back in 2007 when I went back for a semester, I noticed a difference--this was right after I was medicated--but I got an incredible promotion after one semester and learning that job took all my attention for a while.

When I started this semester, it was pretty much how I started every semester; hopeful but resigned to a best 'better than last time maybe?' I downloaded a program for notetaking (and eventually started using it, but that's skipping ahead), and as these classes are pure online without online or RL class times, read my syllabus carefully, got my online text books (I love love love online textbooks now), and settled in to read productively or die trying. Honestly, I half-expected the latter to become a real possibility, because sometimes, textbooks are really fucking boring.

Now, an ADHD Sidebar )

So yeah, this time, I want A's; I want to turn in projects that exceed not just minimum but maximum requirements and involve many bells and whistles; I want to perpetually have read a chapter or two ahead before class and be overprepared for any assignment; I don't just want to get through class but learn and I mean learn everything.

I mean, I always wanted those things, but now, I think I can actually do them. I live in hope, anyway, and that's new, too.
Home Assistant Blue

My Home Assistant Blue shipped and will arrive by April, and I'm trying to work out when I'll have time to transfer Home Assistant from the Pi to it.

Taking a backup of HA on the Pi and moving it to the new device is the easiest method--with Home Assistant, you can genuinely just do that and not lose data or crash--but years of computer and tablet upgrades (and regular nuke-and-scrub of my Ubuntu Server) have taught me the value of starting with a clean slate when it's feasible. There's always extra customization I no longer need or code I refactored but commented out the original or updates to the base code that mean some code no longer works.

See, the thing is, until I finalize, I almost never, ever delete code.

If it's inconvenient or makes a script nightmare long or confusing, I'll move the original to backup, just in case. If it's a minor update, I comment out the old code for at least a few runs or until I forget why the hell I'm keeping it. If it's new code or a minor refactoring, I create a backup first. If it's a full refactoring, I usually create a copy of the original, give it a name like codeName_Refactor or something, and keep the original clean and working until I'm done testing, then rename the original to codeName_old or codeName_orig, rename codeName_Refactor to codeName, and move the old code into a folder. And in some cases, I'll just move all the old code or experimental code that won't quite work to the bottom of the script and just comment it out because there's a chance I'll need it back and it's really annoying to paste code between multiple nano terminal windows.

(In VBA in Excel or Word, I move it all to a module named OldModule and add an 'x' to every sub or function name. In Googledocs, I do the same with Javascript. There is code in both older than two thirds of my nieces and nephews. It's like the code version of hoarding or something IDK.)

A clean slate is maybe the one time I can do housekeeping. After doing all the necessary basic configuration and adding in all my integrations, add-ons, etc into the new device, I can move code over either in entire pages or a piece at a time and reload to make sure it does what I think it does (or work out what the fuck I wrote it for).

Fortunately, Home Assistant makes that incredibly easy; the last time when I got a second Pi to run Home Assistant on, after I finished configuration of the second Pi and it was ready to run, I disabled the integrations that couldn't be run on two HA instances at the same time on the old Pi, then just left them both running while I went through all my custom yaml and python and moved it over sometimes a single function or script at a time.

This, by the way, is my idea of the Best Friday Night Ever.

Depending on time, I'm going to try to write up a detailed step by step tutorial on how to set up Home Assistant on the HA Blue. One of the biggest advantages of buying it--other than supporting open source development and the cool blue case--is that Home Assistant ships on the HA Blue already installed, so it's very much plug and play; you literally plug it in, add ethernet cable, then go to your computer, open a browser, and go to homeassistant.local:8123. That's it. The only things you need to do is if you need z-wave or zigbee functionality is buy either usb sticks or a compatible hub, but if everything in your house is wifi, that's pretty much it for hardware. Now its just onboarding, adding your integrations, and trying out all the different theme colors on your dash.

School

Intro to Computing

We're now in Week 5 of School. I'm currently about a week behind in the Intro to Computing self-paced course but while that was mostly due to work + winter storm + other things, honestly it was also because it was the class I could fall behind without penalty. The class is a basic catch up to current technology and the internet and how to use Office; it's shockingly useful for someone who may be coming back to the workforce or needs an non-terrifying intro into current tech and current internet.

Also, it's the one that is ironically both the most work and also the one that's probably easiest to pass without a super amount of effort, which follows the course's purpose. All you really have to do is do all the activities and also create for yourself an Excel spreadsheet to keep a running calculation on the lowest grade you can afford in each activity and still get an A (or B).

But it is a lot of work. For the first six weeks, each week is
1.) one (1) or two (2) book chapter on something about technology (there are six total chapters)
2.) one (1) graded skills test for each chapter
3.) one (1) graded practice exam for each chapter
4.) one (1) or two (2) of three modules on how to use a Microsoft Office Product (Word, Powerpoint, Excel, Access). (There are three to five modules per office product in the course.)
5.) one (1) graded project for each module

On top of that:
1.) One (1) Capstone Project for each Office Product: total of 4
2.) One (1) Exam for every two chapters: total of 3\

Except for the practice exams and two-chapter exams, to get an A you really just need to follow the instructions to do the projects like "Create a Flyer" or "Create a Powerpoint Presentation" or "Create a Business Letter". It's auto-graded so you know immediately your grade, you get a report on EXACTLY WHAT IS WRONG AND HOW TO FIX IT, and you get to submit three times and it takes your highest grade. The graded skill test is a graded review; I'm not sure it's possible not to get a perfect score.

The exams are--not so simple. They aren't exams; they're thirty five to a hundred questions, shown one at a time, you cannot stop until you're done and you cannot change your answer once you go to the next question. No, I'm not kidding; I've never been this stressed by testing in my life.

Now, because of the number of activities and the weighting: you can, actually, get a zero on every single exam and as long as you get a perfect grade on all the projects, capstones, and skills test, you can get a D. With the Skills test, perfect scores are built in; with the projects, you get three attempts; my lowest grade on a project is a 97/100 with one attempt left (that I can still do until the end of the semester) but just didn't feel like fighting footnotes for those last three points. THe lowest grade I got on an attempt was an 88 before I fixed the problems; this is not undoable at all.

Right now, for me to get a B, as long as I nail every project and capstone, I can fail every remaining exam (I have two two-chapter exams and three one chapter exams left) with a 52 out of 100 or 14 out of 25 (52%) with an extra two points to spare.

For an A, however, I have to average an 80 on each exam and get a perfect grade on every single project and Capstone that remains, though I have an eight point buffer. The lowest I've gotten on an exam is an 84 out of 100; I shouldn't be worried. I read the chapters; I take notes; I study. It autogrades when you're done and you get a full report with every question and your answer and whether its' right or wrong; you can take the exam up to twice.

But. When you start an exam, you cannot stop; each page has only one question and when you answer it, it goes to the next page and question and you cannot change it; there are many questions, which is good for grade weight but very bad for what is already low-grade paranoia. And I say this as someone who tests insanely fucking well; I have answered questions in ways that baffle even me on wtf I was thinking. I have to pause and think about obvious questions like 'what is a CPU'. It's--something.

I had to stop short in horror because I was asked the question "Which of these represents a billion bytes?" and for the life of me could not work out if it was megabytes, gigabytes or terabytes even though a.) I literally do know this, I spend a lot of my free time doing video editing and ratioing sizes, and b.) If I didn't, all had to do was fucking divide by a 1000 to get kilo, divide again to get mega, divide again and if the answer was greater than 999, tera, otherwise, giga. I can literally do that in my head instantly.

I spent three minutes staring at that question without any idea how to math.

I am not in love with those exams.

Programming Fundamentals

Incredibly fun. Well, for me: for my professor, maybe not.

There are ten projects and three exams, one project for each chapter, each project one to five or so scripts to write to do a thing; we just finished chapter four this week, and as it's an online class without class meetings but with hard deadlines, its' one I can't put off.

But also, it's not one that I really have any ability to put off; this is like falling into a few fandom and reading all the fic. The only reason I'm not reading ahead is spoilers; so far, the only way to keep me on pace is taking notes. Most of it is stuff I know already from writing python, but there's a lot of very basic stuff I skipped that I'm learning now and lots of generalized concepts, so it's great.

Then there's the projects.

The project exercises start with me following the instructions to the letter; that part is fine. But that takes me maybe an hour or two. Projects are assigned on Monday; I'm done reading by Tuesday and have my project done by Wednesday at teh latest. Due date is the next Monday; I have free time.

This time is spent methodically going through my scripts and adding bells and whistles. I challenge myself by trying each time to use every single element in every single chapter and preceding chapter in every script and where there's a will there's a way. Then I start adding bells and whistles. Chapter Three was If/Else, and conditionals are my jam, but at least I couldn't trap you in a script forever; it would, eventually end.

Chapter Four was Loops.

Which make my feelings for conditionals look like vague liking; I adore loops. My C++ class I'd trap people in elaborate loops in that horrifying tic-tac-toe game where the only way out was to work out what character I secretly designated for the only escape. I nest loops like Russian dolls and left to my own devices it would never end.

To be fair, I (mostly) restrained myself in the first two exercises; they're optional repeaters but not horrifying. But my resistance crumbled when it came to the third.

I got to ask the user for input three times. That is Christmas.

Short story: it's now four times longer than the first working draft, lets the user correct their answers as many times as desired, run the program indefinitely, and when they're done output their statistics on how many times they ran the program, how many times they corrected their data during all iterations, and how many times they corrected their data during this iteration before saying goodbye. I spreadsheeted test data to validate all conditions and possibilities. The only reason you can escape is we haven't reached error control yet and I can't use it until we do or that's cheating; right now, they can escape by just entering a string instead of a number and killing the program if they get desperate.

The exercises for Project 3 were all overkill, sure, but they're nothing to Project 4 Exercise 3.

And I can tell you now, it will only get worse from here. I mean, for other people: this is how I have fun on Saturday nights.
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.

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 Apr. 23rd, 2025 06:48 am
Powered by Dreamwidth Studios