Month: August 2020

Connections Academy – Planner UI/UX Issues and Learning Module Voices

I was surprised at the voices used for the cartoon characters in Connections Academy’s learning modules. Anya paused her maths lesson to tell me the lion is shrill. And proceeded to mimic the voice. I had her play a little of it for me and, yeah, it’s awful. The ladybug in the language arts module is better, but that’s a terribly low bar. I’d expected there to be a few voices from which we could select — not just because someone may well find a voice objectionable, but also because some people have frequency specific hearing loss — someone with trouble hearing high frequencies isn’t going to be able to use these modules. I set up an in-browser audio equalizer and dropped out high frequencies. Makes it usable, but I’ve still submitted feedback with my observation.

Then there’s the planner. I’ve noticed a few UI problems in the Planner —

  1. I am frequently unable to save an event – in cases where something is not populated, the missing item is highlighted in red. That’s not what I’m talking about – I’ve got all of the required fields populated, nothing is highlighted when I click ‘save’. It just stays on the item creation form. I am able to cancel item creation, try again, and get an event created.
  2. When the purpose is set to “Enrichment”, items cannot be opened/edited/deleted.
  3. When creating a new item, expanding the “Recurrence” section produces an overlap between the “Description” field and the top line of the recurrence selection. The description field is on top, which renders the top half of the check-boxes unusable.

And more of a UX issue … while the event items can include half-hours, the credit hours field appears to be an integer value. It is auto-populated with a float. Which leads me to expect

School Starts and a Math Game

It’s back-to-school time — at least for Anya! The local district put off starting school until mid-September in what I assume is an attempt to let other districts see how bad SARS-CoV-2 spreads … but we decided to try Connections Academy instead. It’s a dedicated online school, rather than a few local teachers using a third-party online platform (and going into school was right out). She’s bummed about “missing out” on a month of summer vacation … but August classes in our air conditioned house are a lot more pleasant than classes in the massive concrete block 60’s building with windows that open.

The school sent out info to use https://www.prodigygame.com — a wizard adventure game that Anya absolutely loves (even if casting spells requires solving math problems).

So far, I think Connections Academy are a little unorganized. They’ve got a calendar, but few of the meetings get populated into it. They’re using the first week or two of school for everyone to get themselves sorted — log in, learn the platform, make sure they’ve got their materials. The actual education platform is starting out the same place 1st grade did — using manipulatives to add. The teacher said Anya would take a placement assessment in early September and the education modules would be jumped to whatever is reasonable for the kid based on their assessment. Hopefully!

She’s been going through the educational modules quickly, so I’ve come up with a few experiments. I also signed her up for a Scratch class on Outschool — and I’m thinking about teaching more advanced Scratch classes since none seem to exist … essentially teaching programing concepts like variables — what they are, what scope is, data typing and loosely typed languages, and debugging by watching variable values. She’s really enjoyed the class, and she’s certainly learned to write her own game. We’ve also talked about the scientific method — using spontaneous generation as an example and designing an experiment to prove that mice magically pop out of rotting straw. Which points out something I’ve always liked about science. We’re medieval scientists who want to prove this generally known fact, we design a really good experiment, we meticulously carry out our experiment … and no mice. Even though our experiment failed to prove our hypothesis … we’ve still made an amazing discovery.

Real Chickens!

We picked up our little babies yesterday — had a little confusion because the order hadn’t gotten marked as ready for pickup, and the office staff is working from home so they couldn’t just pop out to the hatchery and see. But they eventually confirmed all five little guys were hatched and ready to come home.

We’ve got Sunshine, the Buff Orpington, who is undoubtedly Anya’s fav.

We’ve got Joyce, the Austra White, who Anya says is Sunshine’s best friend (and she is).

And Moonlight, the Black Jersey Giant … well, I’m about 90% sure about that. She’s got dark legs

And then we’ve got … well, I don’t know. And totally understand why they put leg bands on the ‘rare breed’ birds. There are a whole lot of gray and yellow balls of fluff. I think this is the Green Queen, Queenington.

Which would make this our Columbian Wyandotte, Tilly. Anya says we cannot call them by their names until their feathers come in and we actually know who is who. Which makes sense — I’d be awfully confused if I was called one name for a few years and then my family randomly started calling me some other name.

 

 

Discourse Censored Words List

It took an unexpectedly long time to find the censored word list in Discourse. I finally resorted to searching the PRs until I located one where the censored word list was replaced with ‘watched words’ … although there wasn’t any readily apparent watched word list in the configuration either. I was able to locate the meta post regarding the watched word implemented under that PR. It’s hiding under logs?! Under each action (block, censor, require approval, flag), there is a “show words” checkbox that displays the configured words.

ADO Notifications

I’ve been underwhelmed with the notifications I get from Azure DevOps – there are a lot of build-centric notifications, but I don’t use ADO for builds or deployment apart from playing around. And I really don’t care if the silly test project I set up to build and deploy a website worked, failed, or whatever. I was thinking about hooking whatever they’re calling Flow this week up to ADO and building notification workflows.

Fortunately, a coworker mentioned that you can customize notifications in ADO … which, I’d spent a few seconds poking around and didn’t see anything. But I spent more than a few seconds this time and happened across this little ellipsis on the card that pops up when I click the circle with my initials in it. More options!

A new menu flies out; and, look, there’s “Notifications”

Exactly as I’ve observed, there are a lot of build-centric alerts. So I created a new subscription.

Here’s a subscription that I hope will notify me when items assigned to me have updates to activity or comments.

Ohio Remote Ballot Marking System Expansion Request

Email to Secretary of State DeRose, my Ohio State Senator, and my Ohio State Representative:

 

There appears to be a remote ballot marking system available if you have a qualifying disability under ADA. I would like to see the availability of this 11-G absentee request be expanded to anyone with COVID-like symptoms or asked to quarantine for potential exposure. This would allow such individuals to remotely mark their ballot and ensure their vote is counted. It’s not the resource strain that offering in-person pick-up akin to RC 3509.08 would be, and it allows people to ensure their vote is counted without risking heir health or the health of community members.

Ohio Absentee Balloting Nuances

Ohio RC 3509.05 lists approved relatives who are able to deliver a ballot on behalf of another individual (spouse of the elector, the father, mother, father-in-law, mother-in-law, grandfather, grandmother, brother, or sister of the whole or half blood, or the son, daughter, adopting parent, adopted child, stepparent, stepchild, uncle, aunt, nephew, or niece of the elector). So I cannot deliver the ballot for my neighbors, but their kids can. That’s a firm ‘no’ on dropping off ballots for anyone who is not related to you a way listed in RC 3509.05 at the Board of Elections. I won’t get into the probability of enforcement — that’s something an individual would need to decide for themselves. If the ballot isn’t getting submitted any other way, might be worth the risk having an unauthorized person drop it off and having your vote invalidated. To me, the law precludes a mass effort to get people driving around and collecting ballots for a neighborhood and dropping those off at the Board of Elections. Same with dropping off bunch of ballots over at the Post Office closest to the Board of Elections — “elector shall mail” isn’t the same as “elector shall cause to be mailed”.

Ohio RC 3509.08 option where the Board of Elections drops off the ballot and picks it up is currently only for those confined to nursing homes and jails. So if you know someone who is in a nursing home or jail … they totally can request the Board of Elections bring them a ballot, wait while it is filled out {even fill out the ballot if the person is unable to do so themselves — I’m thinking of my great-grandmother who could barely write an “X” in the signature line near the end of her life} and bring that ballot back to be counted. That’s a pretty awesome level of service. And I get that they don’t have anywhere near enough staff to broaden that service.

What you *can* do is drop off a ballot for parents, grandparents, aunts/uncles, siblings, children, and nieces/nephews. So if you’ve got family members who don’t have time/resources/mobility/health to drop off the ballots in person, you can certainly collect *their* ballots and drop them off at the appropriate Board of Elections.

There also appears to be a remote ballot marking system available if you have a qualifying disability under ADA. (Cuyahoga and Medina). I’m e-mailing DeRose’s office and my local Ohio Congresspersons (“Member Search” in the lower left-hand corner of http://www.ohiohouse.gov/ for the House, https://www.ohiosenate.gov/senators/district-map for the Senate) asking them to expand the availability of the 11-G absentee request. Anyone with COVID-like symptoms or asked to quarantine for potential exposure should be allowed to remotely mark their ballot too. It’s not the resource strain that offering in-person pick-up would be, and it allows people to ensure their vote is counted without risking heir health.

And if you request an absentee ballot but decide to vote in person instead, you can. You’ll need to submit a provisional ballot — this is to ensure you don’t both return an absentee ballot and vote in person.

Discourse in Docker on Fedora 32

I had to make a few tweaks in order to run the Discourse base Docker image. First, I got the following very clear error:

discourse docker this version of runc doesn't work on cgroups v2: unknown

I had to switch from cgroupv2 to cgroup

grubby --update-kernel=ALL --args="systemd.unified_cgroup_hierarchy=0"

At which point I was at least able to run through the configuration. This yielded an access denied error attempting to create /shared/postgres:

Configuration file at updated successfully!

Updates successful. Rebuilding in 5 seconds.
Building app
Ensuring launcher is up to date
Fetching origin
Launcher is up-to-date
cd /pups && git pull && /pups/bin/pups --stdin
Already up to date.
I, [2020-08-11T18:15:03.664400 #1] INFO -- : Loading --stdin
I, [2020-08-11T18:15:03.672609 #1] INFO -- : > locale-gen $LANG && update-locale
I, [2020-08-11T18:15:03.746912 #1] INFO -- : Generating locales (this might take a while)...
Generation complete.

I, [2020-08-11T18:15:03.747838 #1] INFO -- : > mkdir -p /shared/postgres_run
mkdir: cannot create directory ‘/shared/postgres_run’: Permission denied
I, [2020-08-11T18:15:03.754890 #1] INFO -- :

FAILED
--------------------
Pups::ExecError: mkdir -p /shared/postgres_run failed with return #<Process::Status: pid 21 exit 1>
Location of failure: /pups/lib/pups/exec_command.rb:112:in `spawn'
exec failed with the params "mkdir -p /shared/postgres_run"
d98ee8471413ad77ab27ed3506f12c5c94a2b6902622faf4d88d5dbb51a10f63
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.

Gut was that I encountered an SELinux problem. Turns out I was right. There’s a lot of reading you can do about SELinux and Docker — this, for one — but the quick and simple solution is to run the docker container in privileged mode (note: this may not be a good idea in your specific scenario. understand what privileged mode is and the risks it entails). To do so, edit the launcher script (/var/discourse/launcher in my case) and add  “–privileged” to user_args:

And finally (and this may well be a RTFM thing) — you’ve got to have your public DNS set up & whatever firewall rules to get traffic to the http:// website you are trying to build in order to use the LetsEncrypt SSL cert and configure HTTPS. It uses the file-based verification (i.e. create a file named xyz in /path/to/xyz.whatever on your web server, lets encrypt grabs the file and verifies it exists) which fails quite spectacularly when the Internet at large cannot access your about-to-be-a-discourse-server.

Changing Your Mind Due To New Information Is A Problem?!

Back in 2004, John Kerry was roundly derided for being a “flip flopper”. In the political context, I never thought the term meant simply someone who changed their mind but rather someone who lacked conviction and changed their mind to match the prevailing popular opinion. Now, even that meaning, I had trouble seeing as problematic in a representative democracy. If 80% of the people I represent thought X last year and now think !X … wouldn’t they want me voting a different way this year? While Kerry attempted to explain his votes — approving military action but not a funding source — nuanced discussion isn’t effective in American political discourse.

I’m reminded of this as people protest wearing masks. I questioned the advice not to wear a mask in March — it was illogical except from a scare resource allocation strategy (i.e. if you’re sheltering in place at home where drive-through grocery pickup is the totality of your exposure … save the mask for someone with more risk). There wasn’t any research to support wearing a mask because there wasn’t much research about SARS-CoV-2 at all. But, in March, there was research on the transmission of other virus. Maybe we didn’t know if aerosol transmission was possible, but it’s basic risk mitigation to take not-too-awful precautionary measures to prevent an unknown risk. Several months later, there is research. But the odd line of thinking that means a politician who changed their mind about a vote or had nuanced reasons that their vote for “the same thing” differed seems to mean that emerging scientific research does not warrant revising one’s initial opinion.

Some in the Republican party remind me of my daughter’s default defiance. I’ve heard her refuse to eat ice cream because one of her parents told her to (and her automatic response to just about any request is “No!” or “Why?!”). The Republican party is currently objecting to the NY DA preventing the NRA from continuing to misappropriate donor funds (i.e. how dare you charge the guy who robbed me!?), refusing to wear a mask that at worst does nothing and at best prevents the spread of an infectious disease because they’ve been told to do it.

On Biden

My reasons for voting for Biden — SCOTUS, slowing down environmental destruction, a minimal adherence to the Constitution, and an actual investigation into WTF has gone on the past four years. I don’t have faith that Biden will pick a *good* SCOTUS nominee. Neither do I think he will implement *good* environmental, health care, criminal justice, education, banking, consumer protection, etc policies. I think he will implement *less bad* ones.
 
It’s something I struggle with — Biden has a level of competency that Trump lacks. I could see Trump spending four more years issuing ludicrous EOs that even Republican-appointed judges have to strike down with specific instructions on what the exec office could have done within the system (and the Trump admin pretty routinely ignoring the court’s suggestions / dropping it to move onto the next ‘trigger the libs’ issues). The executive office will be staffed with people who have financial incentive to not enforce laws. Contracts steered towards friends. Million dollar purchases will materialize out of nowhere. Oval Office addresses will pause for a promo like the news anchors used to do.
 
I see not voting for Biden as the “burn it down” approach — which gives me a lot of appreciation for property destruction in the course of protests. Reagan told us how bad government could be, then spent eight years proving how bad you could make government if you just put a little effort into it. If we let Republicans make the government just as bad as they can, will it all self-destruct and some modern truly representative system could rise from its ashes. Or we’ll got the Greek city-state route and have 100’s of different authorities. Pretty much anything other than the current corporate-money driven non-representative system.
 
But then I tune in to one of Trump’s daily briefings and realize all over again how absurd he will get with the ‘proof’ that the country supports him (and that everything bad he’s encountered has really been some deep state conspiracy). I end up thinking not-as-bad-but-competent is probably better than the Trump alternative.
 
I’d love if Biden showed his love of compromise by compromising with progressives, or if centrists even approached this as an opportunity to make a sales pitch instead of threats. But it seems like it’s up to progressives to pitch Biden to other progressives. Because, seriously, what percentage of the country needs to support an idea before you can just accept it as-is? M4A is a great example — if 70% of Americans support an idea, why ensure no one is happy through compromise? Especially if the other party is negotiating in bad faith (they’re not going to vote for it with the concessions in place anyway, they’re going to manipulate the system to ensure their position is over-represented, etc).

It’d be great if some Biden supporters put effort into understanding what progressives want and articulated how Biden produces actual progress toward that goal (not ‘we will get back to where we were in 2010’). Because “you have to vote for him or fracking fluid will be dumped into the river” and “Trump is going to nominate reanimated Scalia and nominate the first zombie-American SCOTUS jutice”… probably enough to get me to check the box they want checked, I still want an “Any Competent Adult 2020” sign because *that’s* what I’m voting for. Not Biden. Literally whatever halfway competent >=35 year old native-born citizen the Dem’s put on the ballot.