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.
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.
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.
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. Posted at Dreamwidth: https://seperis.dreamwidth.org/1087124.html. | You can reply here or there. | comments