cellio: (Default)

I realized, while doing some digital housekeeping, that Stack Overflow Inc. is using some of my writing, without attribution, in violation of the Creative Commons license under which they obtained it. To correct it, I would have to file a DMCA takedown demand, which would require me to be in contact with them and their lawyers, which is icky quite aside from any retaliation they might engage in. I don't currently have the will to deal with that, so they get away with violating my copyright and license.

I'd likely be ok with them using it, at least on the public sites, with the required attribution, and if they do so for other people's work they've taken, too. (I know I'm not the only one, because one of mine is in turn built on something by someone else.) I think they're banking on the fact that engaged users don't tend to mind and people they've driven out don't want to take on the burden of securing a correction. Such things do a lot more damage to the individual than to the corporate behemoth, after all. In their younger days they would have readily done the honest and ethical thing, but these days?

They can get away with it because they can make things unpleasant. But having noticed it, I can also note it here.

cellio: (Default)

On the way to Thanksgiving dinner we found ourselves wondering what happens to the turkey that the US president pardons each year. We were both under the impression that the president is presented with two turkeys, one of which gets pardoned and one of which becomes dinner. I said I thought the pardoned bird went to a zoo or some such, and that it would be wrong for it to go back to the farm where it could become somebody else's dinner.

We talked about the similarity to the two goats on Yom Kippur, one of which becomes an offering and the other of which is sent to Azazel. I pointed out that neither of those goats gets out alive (though they at least serve a holy function), and said I didn't think the turkeys worked like that.

When we got home I looked it up, and found that we were both wrong on several points. (I blame that West Wing episode, though perhaps my mistaken impression predated it and I shouldn't.)

The president is presented with one turkey, not two. There is a backup turkey, in case something unfortunate happens to the first one. (Still on the goat theme: like the backup wife for the high priest on Yom Kippur? Topic for another day...)

This turkey is presented by the National Turkey Federation. (Today I learned that there is a national turkey federation.) This started in the 1940s, apparently as tribute. They ate the turkeys until sometime in the 70s, when presidents started sparing them. The regular ceremonial pardon started with Bush the First (though it also says Reagan pardoned one).

I hadn't thought about this at all, but there is a selection process where a pool of candidate turkeys is filtered on not only size and appearance but also tolerance of loud noises, flashes, and large crowds.

And yes, the turkeys end up at various places where they will not become food.

Filkcast

Nov. 24th, 2021 10:09 pm
cellio: (Default)

[personal profile] ericcoleman hosts a weekly filk podcast, FilkCast. He wrote me recently to ask if it was ok to include On the Mark's music. Twist my arm, I said. :-)

Today's episode includes our recording of "Flowers for Algernon", written by Kathy Mar. It also includes one of my favorite Bill Sutton songs, "The Pilot's Eyes", and a bunch of other songs both classic and modern. I'm glad that this music is getting heard beyond filk circles at SF cons, and glad that I got to be a small part of it.

cellio: (Default)

Back at the beginning of the pandemic, someone shared a link to a blog post from Zoe Chant, who -- because we were all suddenly in lockdown and dealing with extra stress -- offered a free e-book of hers to anyone who asked. I asked, she described a few options, and I chose Dragon of Glass, the first book in what would be the Fae Shifter Knights series. I loved it and got each of the following books as they came out. The fourth and final book just came out a few weeks ago, so I'm finally getting around to writing about them.

As implied by "fae", the knights (one per book) are from another world or realm. They're transported, one at a time, into modern-day Earth, and have to learn about magical cooling boxes and lights without flames and smartphones and television -- and social conventions. I enjoyed the fish-out-of-water aspect, laughing not infrequently. It would be easy for this to be overdone, but it's not.

The knights were one fighting band on the other side, where their world fell to evil magical beings. Somehow, during their final battle, they were frozen in glass and sent into our world. (That's explained, but it would be a spoiler.) Each knight has a corresponding person in our world, a "key", who can help unlock that knight's magic (which is greatly diminished in our world). Each of the four books focuses on one of the knights while contributing to the overall story. When I started reading Dragon of Glass I thought I was getting some light-hearted fluff, but there's more depth to the series and I found the larger story engaging.

As implied by "shifter", each knight has an alternate, magical form -- dragon, unicorn, gryphon, firebird. (When they were frozen in glass, it was in those forms, at the size of tree ornaments. The set got broken up; part of the quest for the knights and keys already here is to find the other ornaments.)

Aside: There is a whole genre of "shifter romance" that I was largely unaware of two years ago. These books, and many of Zoe Chant's other books, are in this genre. There are definitely romantic elements (and some sex scenes), but as someone who's not really into romances, I didn't find it overdone or intrusive. It was just part of the story -- not the reason for the story like (as I understand it) with some mainstream romances.

The knights have a leader and mentor, a "fable" -- not a fairy, as the character keeps insisting. (At a foot tall and with wings, you can understand the confusion.) As a reader I had more trouble connecting with this character than with the knights and keys, though the fable does get some funny, snarky lines. (Part of my problem is a personal one: the number mismatch of singular "they" trips me up as a reader, every time, even when I know who the referent is. My brain treats it as a runtime exception or something. I've tried to overcome it, but have not yet succeeded.)

The final book, Firebird of Glass, was heavier than the others (as was the end of the third book). The series has been building toward a final confrontation (the forces that took over the knights' world want ours too), and at times the book is sombre and grim. When I started the book I had predictions, expectations, of how this final confrontation was going to end; partway through the book I developed different predictions -- and in the end the author surprised me with something I never saw coming but that felt right.

I enjoyed the series, and I think some of you would, too.

cellio: (Default)

Stack Overflow (Stack Exchange) has been faltering for a while for a variety of reasons that boil down to "still don't know how to work with rather than against their communities and power users". Even so, I'm surprised to see three corrupted moderator elections in a span of two weeks, one of them on the one site they actually kind of care about, Stack Overflow.

First up is a Stack Overflow election. I became aware of this incident when I noticed an extreme spike in view stats for Dear Stack Overflow, we need to talk on one day and looked around to see what might be causing it. During the voting stage of the election (the second week, after a week for nominations), the moderators and community managers (SO employees) jointly decided to remove a candidate. They did not suspend the user, so this is already on very shaky ground -- the community is supposed to choose its moderators from candidates who meet the eligibility requirements, which this candidate still did. Now, this candidate had done something problematic, and if they had suspended him for it then his candidacy would have been revoked legitimately, but they decided it wasn't bad enough to suspend over.

They didn't stop there, though. They announced on their meta site that the candidate had been removed, they talked about the allegations, and they did all of this before talking with the candidate. Their reasoning was that they had to make a prompt announcement so that people who had already voted would know to review their votes. Except, no -- they didn't need to do that. SO is fully capable of pausing an election; they only needed to announce a pause (without removing anyone), discuss it with the candidate, and reach a resolution -- like letting the candidate gracefully withdraw. SO recently restarted an election on another site, so there's already precedent for intervening in the timeline for extraordinary reasons.

I would think that "we'd like to avoid smearing a user in public" would count as extraordinary reasons, but apparently not. The candidate returned a day or two later, having suffered a local Internet outage in his part of the world. Imagining getting back online, going to a site you care enough about to want to lead, and seeing that. Cringe.

It was completely avoidable, had the community managers running things cared to avoid it.

and then two more incidents )

cellio: (Default)

Here in Pittsburgh, voting by mail in 2020 and in this year's primary was smooth for me. Ballots were mailed in time, the process was smooth, tracking worked. Naturally I assumed that for the minor off-year election today, the same would be true. Boy was I wrong.

My ballot was spoiled on arrival. It had my name printed on it (uh, secret ballot anyone?) along with a bar code. It was printed across part of the ballot, obscuring some candidate names. There were no return envelopes, neither the secrecy envelope nor the outer one with identifying info (the one you mail). Just this misprinted ballot in an envelope sent to me.

I visited the URL printed on that envelope and submitted a support ticket. Crickets. Later I called the phone number listed there. When I finally reached a human, the person said "oh you've reached the state; you need your county". So I tried to track them down. No luck.

It was now a week before the election. No time for a replacement ballot to arrive and be received back. I looked up how to vote in person (and confirmed their Covid protocols).

I want to interject that the people at my polling place today were great. This isn't their fault. They did everything they could to deal with this problem not of their making.

I learned this morning that this ballot misprinting happened to other people too. Mine was the first case in my precinct at my polling place, so they had to look up the instructions for handling a surrendered mail-in ballot. I had brought everything I received, as instructed. I filled out the form. Then they saw in their documentation that I had to hand over the ballot and the two return envelopes. The return envelopes I never got. We all agreed that my name being printed right on the ballot ought to confirm my ID for validation purposes (that's why they want the outer envelope, where my name should have been printed), but we didn't feel safe relying on logic. This is government, after all.

They offered to escalate so I could vote now but said that could take a while -- how long could I wait? I was on my way to work (I now go to the office one day a week). Fortunately my workplace is flexible that way, but I still didn't have another hour to spend on this at the time. I considered leaving and coming back after work, but figured anybody who could help worked 9-4 or something like that and wouldn't be available anyway.

So I cast a provisional ballot. I'm assured it will be counted some days hence. I have a tracking number. This still feels very wrong.

Even though my vote will probably be counted, even though it probably doesn't make a difference this time, I feel disenfranchised. What happens in the mid-terms next year when people are more motivated to place hurdles in front of voters? What happens to voters who are likely targets (like immigrants) or have mobility challenges or who lack confidence in standing up for their rights? I'm a white professional in the heart of a very blue city (albeit in a purple state) who had the time and perseverance to try to chase this down after the bad ballot arrived. I have way more advantages than many, and I failed. What hope did others have?

The problem wasn't at the state level where most of the attention is, and it wasn't actual election tampering as far as I can tell. It was an error made by the county that affected an unknown number of people. Nobody's watching counties in all the election shenanigans. I'm in Allegheny County, not voter-suppression-ville. This was an accident, but I couldn't get it corrected.

Brr.

picture behind cut )

cellio: (Default)

As the whole Internet knows, Facebook and other stuff they own were all down for several hours a few days ago. They were off the network entirely: DNS couldn't resolve their host names. A post from Cloudflare describes what happened from the outside, including explaining how some of the key parts work (like BGP and Autonomous Systems, terms I learned this week), and a post from Facebook explains what happened inside.

From Cloudflare:

Due to Facebook stopping announcing their DNS prefix routes through BGP, our and everyone else's DNS resolvers had no way to connect to their nameservers. Consequently, 1.1.1.1, 8.8.8.8, and other major public DNS resolvers started issuing (and caching) SERVFAIL responses.

But that's not all. Now human behavior and application logic kicks in and causes another exponential effect. A tsunami of additional DNS traffic follows.

This happened in part because apps won't accept an error for an answer and start retrying, sometimes aggressively, and in part because end-users also won't take an error for an answer and start reloading the pages, or killing and relaunching their apps, sometimes also aggressively.

[...] So now, because Facebook and their sites are so big, we have DNS resolvers worldwide handling 30x more queries than usual and potentially causing latency and timeout issues to other platforms.

Also, today I learned that Cloudflare owns 1.1.1.1. They don't seem old enough to have been issued that; did they buy it from someone?

From Facebook:

When you open one of our apps and load up your feed or messages, the app’s request for data travels from your device to the nearest facility, which then communicates directly over our backbone network to a larger data center. [...] The data traffic between all these computing facilities is managed by routers, which figure out where to send all the incoming and outgoing data. And in the extensive day-to-day work of maintaining this infrastructure, our engineers often need to take part of the backbone offline for maintenance — perhaps repairing a fiber line, adding more capacity, or updating the software on the router itself.

This was the source of yesterday’s outage. During one of these routine maintenance jobs, a command was issued with the intention to assess the availability of global backbone capacity, which unintentionally took down all the connections in our backbone network, effectively disconnecting Facebook data centers globally. Our systems are designed to audit commands like these to prevent mistakes like this, but a bug in that audit tool prevented it from properly stopping the command.

This change caused a complete disconnection of our server connections between our data centers and the internet. And that total loss of connection caused a second issue that made things worse.

To ensure reliable operation, our DNS servers disable those BGP advertisements if they themselves can not speak to our data centers, since this is an indication of an unhealthy network connection.

And then the measures that protect their data centers from tampering kicked in when engineers tried to fix it.

They don't say, and I don't know, what the command was that was meant to query the network and actually shut it down. Yes they had (faulty) auditing, but I have more fundamental questions, like: was there no "this will take down the network; are you sure? (Y/N)" check in that command?


Edited to add: I just came across a good explanation by [personal profile] mdlbear.

cellio: (Default)

Trope Trainer is a software package for working with Hebrew cantillation (trope). You can use it to view, listen to, or print the weekly Torah reading (or parts thereof), weekday readings, holiday readings, etc. As the "trainer" in the name implies, one of its purposes is to teach the cantillation system -- or, I should say, systems, because there are regional and other variations.

I didn't use it for that because I already know (my community's) cantillation system; while occasional curiosity might lead me to ask it "hey, how does the Lithuanian tradition chant this?", in practice I haven't. No, what I use Trope Trainer for is to print legible copies with the vowel markers and trope markers. These are useful for practicing and, when I know in advance so I can print it, for checking the reader during the service, because the scroll used for readings does not have vowels and trope marks. (There is always somebody following along during a Torah reading to correct the reader in case of mistakes.)

Back in August, somebody in my minyan asked me to be his checker the following Shabbat, so I launched the program to print a copy. But the program was stuck at "checking for updates", a state that had previously passed so quickly that I wasn't used to seeing it. If I cancelled, the program crashed. Repeatedly. A little digging revealed the probable cause: the company went out of business and their domain isn't there any more. Presumably the software is checking a now-dead URL and the programmers didn't handle failures. (There are other reasons the service might not be available, so this isn't just "didn't consider the company might die".)

I asked on Judaism Codidact about alternatives and people made some useful suggestions, but cutting/pasting text from elsewhere into Google Docs, while it works, is inelegant and also produced some formatting glitches.

My too-clever hind-brain said to me: hey, if the software is trying to reach a particular URL, you could intercept it (edit the hosts file) and then try to figure out what to send back (though you would have to learn how to write a web service, but hey, that seems doable?). This is the point where people who know more than I do say things like "Wireshark", which I installed but couldn't figure out how to use to identify what it was trying to contact. I asked for clues on Power Users, where someone helpfully asked what the program does if it's not connected to the Internet. Bingo -- the programmers didn't anticipate "our site is down" but did anticipate "not connected", presumably because some in the observant world do avoid the Internet.

But this required pulling the network cable, because apparently there's no way on a Mac to say "yes I know you have an Ethernet cable right there, but please humor me and ignore it". I don't want to pull the cable every time I need Trope Trainer; that's too coarse a solution. This is a job for a firewall, but the firewall built into Mac OS only intercepts inbound traffic (or responses to it). I needed to block initiation of outbound traffic from one specific application. Power Users led me to Lulu, which does the job nicely -- and seems useful anyway as an additional layer of defense against malware that phones home (which is most of it, right?). Also, I don't mind having to authorize Java updates and stuff like that.

I didn't want to rely on a hobbled Trope Trainer forever, so I started working my way through the weekly portions, saving PDFs. In the future I can print from those, after all, and can let the software die.

And then I moved to a new machine that can't run the software, which dealt the final blow to Trope Trainer. But going through all this did lead me to that useful firewall, so I don't mind.

cellio: (Default)

I have a new Mac Mini (yay!). My old one was running OS 10.12 (Sierra); the new one is running 11.6 (Big Sur). Some things are different and some parts of the transition were just bizarre,1 but it wasn't as jarring as I thought it would be.

Except for installed applications. Back in Catalina (what was that, 10.15?), 32-bit applications stopped working. I don't know of a way to take inventory (one of several reasons I didn't update the OS on that machine). I used Migration Assistant to bring my existing stuff over to the new machine and then walked through the applications to see which ones would still run. Some, like Emacs and Paintbrush, I needed to download new copies of. Some I would need to buy new copies of (but nothing important enough to do so). Some are just plain dead -- no 64-bit version is available. In this last category are Trope Trainer, which I already had reasons to abandon that I should write about separately, and Encore, the music-typesetting program I use(d). The latter came as a surprise.

Solving the Encore problem isn't urgent but it is important. I'm not doing a lot of music composition and arrangement these days, but I have years' worth of files in Encore's native binary format, or in that of its predecessor, Rhapsody. (Encore reads both.) I would like to not lose those source files. Encore can export MIDI, but exporting MIDI and then importing it into something else produces poor results, plus you lose all the typesetting cleanup and text.

This is the problem with closed file formats. If only one program (or suite) can read a format and that product line goes away, you're stuck.

I already re-bought Encore once, when I moved from Windows to Mac ages ago. I reluctantly checked their site to see what it would cost to get a modern version, and found that they punted with Catalina -- their site says "don't upgrade to Catalina if you want to run our software", which was practical advice a few years ago but isn't now. So Encore is dead, it looks like.

(And this is one of the reasons I don't make major OS updates on machines I care about. Had I updated the old machine to Catalina back when everybody was pushed to do so, I'd have been left hanging with no rollback option short of a brute-force recovery from backup.)

I don't know what my recovery options are for not having to do a lot of typesetting by hand again. I will of course export those MIDI files on the old machine (better than nothing), but I hope I can find something else that reads Encore format and can then be saved as something more portable (MusicXML?).

I can, of course, continue to use the old machine. As with the last time I migrated to a new machine, I've set up the old one with remote desktop. As with the last time, I suspect that will work for a while but not forever.

Edited to add: I was wrong; Encore does export MusicXML, so that should give me a path forward. (I was looking in the wrong place.)


1 For example, my browsers retained their state, including tabs, but Chrome-based browsers (Chrome and Brave) lost their extensions. I had to look them up and reinstall them and then reconfigure them (and reauthorize all my userscripts). Firefox, on the other hand, brought its extensions over with no problems. All of this is data on disk; does Chrome actively disable migrating with extensions?

cellio: (Default)

My synagogue hired a cantor for the high holy days. (We don't currently have one otherwise.) He's a friendly fellow, obviously very experienced, and very "performative" -- which some people liked but isn't to my taste. (I felt like I was at the theatre.) Unfortunately it's not just a matter of taste; elaborate chazzanut that you can only listen to is fine in a traditional setting, where it's in the cantor's repetition of the central prayer, but the Reform movement did away with repetitions. When there's only one trip through the prayer, everyone saying it together, and it's being led in a way that precludes me saying it, that's a problem. After Rosh Hashana evening and morning were like that, I decided not to go back. (I later skimmed the video of the second-day Rosh Hashana service, which started as a minyan-style service but drifted, and it was more of the same.)

For Yom Kippur I went to Chabad, like I did last year. Night and day -- I felt included from the moment I walked in, I was able to focus on the kavanah, intentions, behind the prayers, the more elaborate melodies didn't impede my own prayer because they were separate from it, a lot of the singing was accessible even with unfamiliar-to-me melodies, and there was plenty of way-finding (page numbers, quick explanations, etc) so people didn't get lost.

All are welcome, all included, on Yom Kippur, the machzor (special prayerbook) says, even transgressors, even that guy. Even me. The incense burned in the temple had many nice-smelling ingredients and one bad-smelling one (forgot the name, haven't looked for it yet) -- and the incense was invalid without all the ingredients. A congregation that excludes someone on the day of atonement is doing it wrong.

In the Al Cheit (confession of sins, really more like errors or "missing the mark"), there's one the rabbi commented on that I think isn't in the Reform machzor -- "the sin I have committed before you with a confused heart". There've already been confessions about intentional and unintentional sins, but this one is a little different -- it's saying that we can act with the best of intentions but still miss the mark because of the information or context we (don't) have. Our increasingly-radicalized society (and I blame extremists at both ends here) will cast someone as a villain for stumbling or for being a little different, but God will understand and Jewish teachings are full of instructions to presume good intent and judge others favorably. It seems entirely fitting that the Yom Kippur prayerbook does so too, even in the midst of listing serious sins that are wilful and wrong.

We ask for relief from many things -- famine, war... mageifah, plague. Yeah, that jumped out at me again this year.

God wants praise from us messy, sinning humans more than from perfect angels, says the machzor.

The final service of the day, Ne'ilah, talks about the gates of prayer closing at the end of the day. The liturgy has this urgency to get one last prayer in before they close. The picture I've always had in my mind is of us petitioners standing outside, pushing our messages through as the gates close before us. The rabbi said that the Chabad interpretation (I don't remember who he said it in the name of, sorry -- long day) is that the people are inside the gates, which are closing so we can have some alone-time with God without the pressures of the world. Or something like that. I'm not sure this idea really matches up with the liturgy, but it's an interesting alternate framing and since the whole thing is allegorical anyway, having different perspectives 24-25 hours into a fast helped me.

Chabad sure does say a lot of psalms. I couldn't usually figure out why.

I felt so warm, so welcomed, so included. The rabbi knows my background, and he welcomes me anyway. Like the transgressor. Like the smelly incense. Like a member of his own community -- and maybe, someday, mine too. (There are barriers both theological and practical, but there are also barriers where I am now, so... who knows?)

cellio: (Default)

We recently visited Living Treasures Animal Park, right off the PA Turnpike. It's nearby for us, but we'd never heard of it until we got a recommendation. It's a family-run cross between a small zoo and a petting zoo, with care for the animals being a top priority.

They have typical domesticated animals that kids (and others) can interact with. I call this first one "pet me!" and the second one "feed me!":

friendly goat hopeful goat striking puppy pose

They also have some more exotic animals, like wallabies and bison, and some you definitely shouldn't treat as interactive, like brown bears and alligators. (According to their web site, their alligators winter in Florida.) Visitors can feed many of the animals; they sell appropriate feed, and exhibits are labelled with what you can feed them. For most animals they provide a chute (and a few can eat out of your hand); for the small primates they had a bucket on a rope with pulleys, so you could deposit food, send it over, and watch them take it. We didn't do any feeding ourselves, but there were some families there with kids who were very much enjoying this.

They had some miniature horses, which I've seen pictures of but haven't seen "live" before. They're proportioned differently from full-size horses and also from ponies. (They do pony rides for the kids, by the way.)

The enclosures were large and well-maintained, and the animals always had an "escape hatch". (And thus, there were some we didn't see, which is fine.) Even in late morning, those that wanted it found shade.

alpacas (?) in shade

There was also a large pond with ducks, geese, and two black swans. I took this picture at maximum zoom with no other adjustments. Yes, the water really was that color -- never did find out what plant life was doing that.

two black swans, one preening, one getting ready to dunk

cellio: (Default)

I am starting to think new-phone thoughts, and I'm looking for some meta-advice: advice about traits and how to research stuff more than specific models. (The latter are welcome too, but my questions are a litlte higher-level.)

One of my strongest concerns is about size, both physically and digitally. My current phone has the following stats:

  • Dimensions: 151.7 x 75 x 7.9 mm
  • Display size: 5.5 inches, 82.2 cm2 (~72.2% screen-to-body ratio)
  • Resolution (this is very unusual): 1440 x 2560 pixels, 16:9 ratio (~538 ppi density)

In recent years phones have reverted to worse-than-2:1 aspect ratios. They've reinvented candybars, dammit. But maybe that's ok, if I can still see stuff. So, can I?

I almost always use my phone in portrait mode, as I think most people do. I don't watch movies; I read text. Web pages, mostly. That text needs to be able to be wide enough to be comfortable to read, and for web sites to not break if (when) I need to zoom. For context, on my current phone I have Chrome text scaling at 110% (minimum size, starting from whatever their default is), and "force enable zoom" because some web developers are rude that way.

The aspect ratios I'm seeing on modern phones are generally in the range of 1080:2400, give or take a bit. That 1080 width is significantly smaller than my current width of 1440. I assume that just means that, for phones of equal physical width, my phone is just packing in a lot more pixels per inch, so the display is a little crisper. I don't think I've seen pixel densities that high on specs I've looked at.

Pixels, schmixels, maybe: I don't know why this matters. Does it? I would naively expect that lower pixel density means a little more blurriness, but since I have to zoom most things to see them at all, do I care?

But there's a wrinkle. In order to get that physical width, with the change in aspect ratios I'd need to accept a phone that's about a centimeter longer. I'm concerned about pockets. Women, especially curvy women, if you carry a larger phone in your pants pocket, what's the secret? I assume that "butt-dialing" is just a figure of speech and folks don't actually carry phones in back pockets, right? (I tried putting mine there and it felt both uncomfortable and unsafe.)

So at current aspect ratios, I need to either settle for a narrower phone, raising questions about whether that width can meet my vision needs, or accept a longer phone, and figure out how to test that with front pockets of my jeans and chinos, because buying a whole new wardrobe to accommodate a phone is ridiculous. Phone in pants pocket is a hard requirement: purses, belt pouches, backpacks, "on the desk next to you", and dresses are unacceptable solutions. I want the safety of having it actually on my person (harder to separate from me), and I want to be able to feel vibrations because most of the time the sound is turned off in public. (Granted, "in public" has been rare of late, but I hope my next phone outlasts the current restrictions.)

Other factors besides size:

  • I want this phone to last for a few years, so 5G seems prudent. All the 5G phones except iPhones seem to be huge?
  • I'm pretty solidly on Team Android. I'm not a fan of either Apple or Google when it comes to how they treat people, but I'm less of a fan of Apple and I'm already used to Android. (Also, my tablet is Android.)
  • I take pictures sometimes, and am even trying to learn to use the non-default settings on the camera, but "has a camera that doesn't stink" is likely to be good enough. Lots of phones these days hype their super-megapixel 4-lens cameras; I don't think I care. If I should care, please clue me in.

Does anybody make a phone that might meet my requirements with a more pleasant aspect ratio (and thus form factor for vision and pockets)? Short of reading specs for phones one at a time, how can I find out? Searching for things like "5g android 16:9 2021" isn't producing hits.

cellio: (Default)

In the late 1970s there was a BBC series, created by Terry Nation, called Survivors. A devastating plague has ravaged the world, killing almost everybody; the show follows small groups of people who survived that only to have to cope with the new state of the world. I enjoyed the show (much later, when I came across it on Netflix), though it started to meander as time went on. (I later learned that Terry Nation had left the show after the first season -- probably related.) Later there was a remake of sorts, with some significantly different plot points. Both versions ended before being resolved.

Terry Nation wrote a novel, presumably the story he had intended to tell. I read the book during this current pandemic, and yes, it's a much tighter story than the TV show. I enjoyed it. It has an ending. I will not spoil it in this post (no promises about comments).

A few months ago I learned that there was a sequel to that novel, not written by Terry Nation. Genesis of a Hero, by John Eyers, logically follows Survivors and shows other parts of this post-apocalyptic world. I thought some things in it happened too quickly and too tidily, that real people are more complex than some of the ones we saw in the novel, but it was worth reading -- I enjoyed spending time as an observer in the world it portrays. It ended in a good place.

Forty years passed. And then John Eyers wrote a sequel to that, called Salvation, published a few months ago. If you liked Survivors, and if you read Genesis of a Hero, then, I implore you in the strongest possible way, stop there.

I don't know what led the author to return to the series after such a long time. I don't know why he decided to, essentially, tell a related-seeming story in a different world -- a problem which did not become apparent until after the halfway point. Much of this latest book deviates far too much from the baseline, some key plot points just do not make sense, and the story, characters, and writing are nowhere near compelling enough for me to overcome those faults.

He should have stopped at one sequel. Since he didn't, I should have stopped reading this one at the first improbable left turn instead of reading on to see how he would resolve it because surely he would, right? Uh... if you do start reading this book (or if you already have), when you get to that left turn, I urge you to close the book and do something you'll find more rewarding, like scrubbing your kitchen floor.

cellio: (Default)

I have an open-source project I am very enthusiastic about (Codidact). Mostly my role does not involve the code directly: I'm the community lead (i.e. primary talker-with-people-who-use-it and triager of feature requests), and I do some design of features, workflows, wireframes, internal documentation, and stuff like that. And I beat up on the test server a lot when there's work in progress to poke at. We have infrastructure to support all that.

But sometimes I'd like to get a little closer to the code, mostly for my own education and partly so I can maybe help do smaller things because our team is pretty small still. And there was that one time that I really wanted to fix a front-end bug that I admitted was limited in scope; it was bothering me, but not something to drag a developer off of something else for. And it was in the Javascript code, which I can bumble my way through, so ok, I figured, I can do this. (And there was that weird thing about dates in Javascript, but I digress.) But I didn't have a dev environment to test it with, and ended up putting it in a userscript to test and then asking somebody else to plug it in for real, which meant I needed help from one of the developers after all, and I shouldn't be that lame.

My Mac with its older operating system is not compatible with some library or other that we use (details forgotten; I just remember the long setup sequence that ultimately failed). And people said "why not update your OS?" and I said "ha ha no" -- not going to break what's working on a machine I depend on. Clearly, what I need is an inexpensive dev environment somewhere, maybe something I could connect to remotely or maybe outdated-but-more-current-than-mine hardware that would be good enough for this purpose.

I went to the elves for counsel, and one suggestion was a cheap AWS instance (considered it), and then our team lead said "a Raspberry Pi would be fine". And lo, Raspberry Pis are cheap, but they're also aimed at the do-it-yourselfers, and to say that I am not a hardware tinkerer would be an understatement. I am not at al enamored of the "ooh, let's take a bunch of parts and build a fabulous machine!" project; I just want a working machine. I will spend money to keep more of my hair attached to my head. I said this to our lead, who said "here's a place that'll sell you all the stuff including a pre-loaded operating system, but you have to put it into the case yourself", and I said "deal".

My box of Pi stuff came, but did not include any assembly documentation and there were a few things I was mystified about. (I had a package of heat sinks but no clue what to do with them, for instance. They were three different sizes, so I thought it was a general package from which I was supposed to choose one. Got that sorted.) With some further help from the elves I was able to sort out what goes where, and this afternoon I assembled it all, pulled out a spare monitor that I knew spoke HDMI because it still had an HDMI cable dangling from it... and found that the other end of that cable was not HDMI but some older fatter connector type with pins (yeah I've lost track of video-connector history), and I do not in fact have a spare monitor with an HDMI port.

But wait, I said. Surely in the vast world of gadgets and connectors and adapters, there is a thingie that lets you plug in two HDMI cables, maybe because you need a longer cable (extension-cord style). And lo, this is a thing, and when my $5 part arrives I will be able to set all this up and see if it works.

It's always something, isn't it?

(I believe that, longer-term, I will be able to set this up so that I can connect to it remotely, from a few feet away, and it won't need its own monitor, keyboard, and mouse, at least most of the time. But for now, it can have a corner of the desk to get up and running until I learn how to do that.)

I see one more benefit to doing all this, one that's not about Codidact. Someday I will need to replace my primary machine, as all hardware goes the way of dinosaurs eventually, and I'm not sure I want to keep buying into the Mac ecosystem. I moved from Windows to Mac some time back (the Windows option at the time was Vista), and maybe I will move from Mac to Linux next time. I'm comfortable on the Linux command line, but am unfamiliar with the Linux GUI setup. This seems a way for me to explore that world some.

cellio: (Default)

Remember this tomato plant from the end of May, when I thought the cage was overkill but they didn't have the next size down?

tiny seedling, large pot

Yeah. About that...

almost to the top ring; also banana peppers in next pot

The actual tomato harvest so far has been five cherry tomatoes. I checked last year's pictures; this is definitely later. There are dozens of green ones on the plant, so I assume I'll have ripe tomatoes eventually.

The herbs are mostly doing well, except the cilantro and dill which are sad. Maybe they wanted bigger pots? That rosemary and basil, though... that's after a recent pruning!

abundant rosemary, basil, mint; ok oregano; sad cilantro, dill

cellio: (Default)

I received a (paper) letter today from a health provider I use routinely. It said that in an internal audit they found that they had overcharged me, and so were enclosing a check for the over-payment.

It was for $0.02.

Did crediting my account not even occur to them? Or is there some law that requires them to send a refund, even when it produces silly results?

There's probably some interesting psychology in my response. Charities (that spend more money on fundraising than on their stated causes) sometimes send physical letters with coins visibly taped to them, I guess to get people to open the envelope. I open the ones with nickels and dimes but toss the ones with pennies. But I scanned the check.

cellio: (Default)

Stack Exchange recently promoted someone to VP of Community, and he posted on Meta asking what to change and what is inviolate. It's too soon to tell if these are just empty words, as is the norm with Stack Exchange leaders in recent years, or if he intends to and will be allowed to work with the community. Someone pointed all this out to me, so I figured, hey, I'd log in for the first time in many months and accept his invitation (posted yesterday afternoon):


Today is Tisha b'Av, the date the ancient Jewish temple was destroyed. (I promise this is relevant.) According to our tradition, the second temple was destroyed because of baseless hatred, sinat chinam. Among all the problems of the time, one incident stood out as the precipitating event:

A wealthy man held a party and sent his servant to invite his friend Kamtza. The servant misunderstood and made the invitation to Bar Kamtza, whom the host hated. Bar Kamtza, thinking the man was offering an olive branch, attended. The host was furious and ordered him to leave. Bar Kamtza, trying to save face, repeatedly tried to make peace, offered to pay for his food, and even offered to pay for half the party. But the host expeled him in front of all his other guests, none of whom objected, setting in motion a chain of events that led to the destruction.

The host hated Bar Kamtza so much that he no longer saw him as a fellow human being deserving of basic decency and dignity. Presented with the results of a misunderstanding, the man in power escalated instead of de-escalating, harming everybody present (and, according to the account in the Talmud, the whole nation).

Philippe, your predecessors didn't destroy a whole people or a national treasure, but there has been a lot of baseless hatred and harm and pain to lots of people over the last few years. Some of that can never be repaired, but some still can be, even at this late date. What has been missing is not the ability to correct errors but the will.

What should you change as quickly as possible? This ongoing failure to make what amends and repairs can be made. It's the ethical thing to do, and -- to speak to the company's business-driven interests -- it would show the people who build Stack Overflow and the SE network that you're willing and able to correct mistakes. Everybody makes mistakes; we learn a lot about people and institutions by seeing how they handle their effects. Yes you have the power of the wealthy party host, but is that the kind of person you want to be?

What should you never touch? The community's goodwill. You have the potential for awesome partners in growth, people who still want to see Stack Overflow succeed despite it all, people who know a lot about how to do that on the community side. You've got lots of professional experience but you're new to SE and SE jettisoned decades of its CM expertise in January 2020. The previous people at upper levels not only didn't engage with the communities but shunned them. By coming to Meta and starting this conversation you've taken an important step. Keep that up and follow through: engage with the community, participate on some of the 170 communities, ask for feedback regularly, carefully listen to feedback (which is not the same as "do what we say"), don't spring disruptive changes on people -- treat the community as partners not enemies.

(I realize much of the previous paragraph belongs in the "what should I change" paragraph, because what needs to change is the corporate attitude, but the reason it needs to change is that somehow you still have a community here that cares, and you should work hard to maintain a good relationship with it.)

cellio: (Default)

I planted sweet banana peppers for the first time this year (one plant). The wisdom of the Internet (TM) says to harvest them when they're yellow. Some say not until they're turning red, but that seems to be about hot banana peppers, not sweet.

"Harvest when they're yellow" -- that sounds so straightforward. Nobody seems to be more specific. Bright yellow? Yellow with no hint of green? Mostly yellow? So yellow you can see the orange coming in? Is there a second measure I can use to disambiguate, maybe something about how it feels?

The oldest of these (the large one in the center) is more yellow than green but isn't boldly yellow, so I assume I should wait.

a few banana peppers on the plant

(Meanwhile, the cherry tomatoes that have been on their plant for a couple weeks are still green. This feels late, but it's probably not the same variety as last year. Labeling was off last year so I don't really know what I had.)

cellio: (Default)

When choosing a floor tile, it's important to consider contrasts with key components:

light floor, dark cat

cellio: (Default)

We're hiring, so I've had recent occasion to see a hiring "dark pattern". I don't know how widespread this is outside of the tech industry, but I see it a lot in tech and it needs to stop.

The pattern: asking for "number of years of experience in (insert tool, language, or skill here)".

Jobs are multi-faceted. I'm seeing people who don't know how to choose a number, and just as I see the ones that overshot, I know there must be ones who undershot and were filtered out. I saw a resume recently from someone with a broad role, who listed "N years experience" in something where N was the length of the job, even though the job involved many other things and wasn't primarily about that skill. That's "N years of experience" in the same way that I have "20 years of Java experience". Spoiler alert: I don't.

Recruiters and hiring managers put people in this position: we have this checklist, tell us how many years of each, and we need a number not an explanation. Maybe we're making you fill out a web form and you can't even add a comment or ask questions. In the absence of guidance about primary and secondary skills, people will apply different weighting factors. It's a mess.

I often don't know how to answer either. In the last four years I've gained four years of tech-writing experience, the focus of my job, and four years of git experience, meaning I have all the basics and can untangle a merge conflict (but I've never rebased successfully). Those "four"s don't mean the same thing; I don't spend all day using git. Tech writing is fundamental to my role and I'd have no qualms about fully claiming those four years, but for git I would want to say that I've used it as part of my job for four years. That's different. I don't have the same knowledge that an infrastructure person whose job revolves around maintaining git servers and stuff for the same amount of time has. "How many years of experience?" questions don't allow for that nuance.

People who are trying to be thoughtful and honest run the risk of getting filtered out, and people who count "everything" get filtered in. I wonder how the success rate (meaning "acceptable hire", since you'll never know if you got the "best hire") of this exercise compares to recruiters just not filtering on skill-specific numbers at all (just general experience) and having the hiring team evaluate more people. I'm fortunate enough to be sufficiently "long in the tooth" that I don't need to worry about this gatekeeping -- either you're looking for a top-notch tech writer with all that implies, or you aren't -- but this hurts early-career people where the difference between "2" and "4" can make or break a deal.

As for the Java: I spent years documenting and helping to design Java APIs, wrote some examples, but haven't written anything deep and complicated. Someone with a year or two of full-time actual Java development experience beats me. Would the recruiter be able to tell?

cellio: (Default)

These pictures are from Sunday:

tomato, getting tall pepper all the herbs

I've harvested some herbs since then. They're producing more quickly than I can use them fresh, but I know from last year's basil that if you don't prune you get spindly plants, so some drying is happening. I guess I only needed one rosemary plant after all. (You might be tempted to say that about basil too, but yum, basil!)

This is the tomato plant again today, two days later -- first small green tomatoes forming!

three small green tomatoes near the base

garden 2021

Jun. 6th, 2021 02:50 pm
cellio: (Default)

Last year's container garden was reasonably successful, so I decided to try again this year. I'd wanted to grow more vegetables, but didn't find container-suitable ones for the most part. If I find cucumbers that can grow in a pot I'm still up for adding that; I'd need to get another pot but I have potting soil left over so I'm good there.

This year's seedlings are: one cherry tomato (down from two last year, but with better planning for growth from the beginning), one banana pepper, two basil (larger pots than last year), two rosemary (in retrospect probably only needed one), and one each of oregano, cilantro, dill, and mint. The mint is in the substandard pot because my understanding is that mint will eek out a life in a mere patch of dirt and then try to take over the world from there. So I figure it can handle the not-as-good drainage in that pot -- maybe it'll see it as a challenge! -- and if not, I'm out three bucks. I've already made back the cost of the cilantro, basil, and dill seedlings (though not their potting soil), compared to grocery-store prices for little plastic containers of fresh(ish) herbs.

pictures )

cellio: (Default)

Yesterday Stack Overflow was bought by Prosus, a tech company based in the Netherlands, for a jaw-dropping $1.8B (yes billion). In the world of recent tech acquisitions that might be small change, but it's about three times what I thought their current valuation was. It's kind of a mystery what Prosus (yeah, I'd never heard of them before either) is getting out of this.

I might have more to say about this later, but for now I'm going to post here what I wrote on Reddit (which I joined for other reasons a couple months ago but hadn't posted on before), in response to a comment referring to "SO’s bonkers relationship with its moderator community" and suggesting that getting bought by a mega-corp would make that even worse.


I don't know how the sale will affect their disastrous relationship with the people they rely on to donate and curate content for their financial gain. Often a new owner doesn't understand what it's bought and makes things worse by meddling. On the other hand, the claim is that Stack Overflow will still operate independently and make its own decisions. In the acquisition of a successful company that would be good news (they can keep doing what they're doing), but in a declining company that shouldn't keep doing what it's doing because it's not working, pressure from the new owner could help, if Prosus will actually apply that pressure.

Stack Overflow and the Stack Exchange network have been in decline for several years (since at least 2017 by my reckoning, some say longer). Some of that decline is due to outside factors and a lot is due to the company's actions. The good news is that most of the architects of those bad decisions are gone now, so the company could take the opportunity to say "y'know, we've been doing it wrong and we need to fix that" without anybody still there having to eat crow. The bad news is that, historically, this is not what Stack does; they double down on bad decisions, I assume because admitting mistakes is embarrassing. Several people still there who weren't part of those decisions now appear to be endorsing them -- whether due to internal pressure or because they drank the kool-aid I don't know.

Thus, the future is pretty unclear to me when it comes to how Stack Overflow treats its moderators and users. If Prosus allows them to operate independently, I expect they'll keep mistreating people even though they no longer have to placate departed leaders. If Prosus takes a closer look at what they've bought, they could make things either worse or better depending on what they decide and how well they execute it. On the current trajectory, I would expect the community, people's willingness to become moderators, and the quality of content to continue their current decline, and the invasiveness of ads and promotion of their Teams and Enterprise products to accelerate. SO is the gateway to the company's for-sale products; it doesn't matter to them independently. The company doesn't need quality and it does need to overcome SO's reputation of hostility, so they're willing to sacrifice the former to attempt the latter. The sad thing is that they could end up with neither even though it's actually possible to get both.

cellio: (Default)

We have a widget on our site that displays the current Hebrew date. We're using HebCal's REST API to get the data, which comes back a month at a time -- JSON blob that has one entry for each day, with the secular date, the Hebrew date, and some other information. We use the Javascript Date class to get today's date, extract a string of the right format from that, and look up "today" in that returned collection. Easy, right? The API documentation for Date makes a point of saying that it uses local time, not UTC, which is what we want.

(Because the Hebrew day actually starts at sundown the previous day, we've got some "best effort" code in there that starts the day at 8PM. Not ideal, but we're not looking up local sunsets and suchlike... We also display something like "22 Sivan (Tuesday night and Wednesday)" to make it clear.)

Yeah ok, so we have the local date, and we need to look up an entry in the calendar data. Dates there use ISO format (YYYY-MM-DD). So we get our Date object, which is supposed to be local, and call toISOString() on it.

Guess what. Date.toISOString does not use the local time. FFS. I've been banging my head against a wall for two hours thinking it was something more esoteric, maybe having to do with that "start at 8PM" code (which I had actually commented out to eliminate that possibility). I finally went to an online Javascript tester, one of those sites where you can type in code and run it, and confirmed that right now today.toISOString() says it's June 2 but today.getDay() says it's June 1.

So now I have to write Google for code that constructs the proper format for the local time, which is down to padding numbers with leading zeros if the month or day number is less than 10 and string-munging and...ugh. (Found it easily enough, but sheesh!)

cellio: (Default)

We replaced out beat-up laminate kitchen counters with quartz. When I mentioned plans to do this, someone said "pictures or it didn't happen", so...

photos )

The result is very nice. The process of getting there started out ok but had some major aggravations in the middle, and I'm waiting to see how they resolve it before I file a review with the Better Business Bureau. The project was poorly managed, with key people not talking to each other at the right times and with some finger-pointing among the various folks involved, and it cost us extra money along with delays. Their ineptitude should not be our problem; this is why we hire a company and expect them to sort out the details. And I expected more transparency than we got; "they're on the way" seems to have really meant (multiple times) "we've sent them a text message that they might read eventually telling them to do your job next". Yeah, no.

Three of the five people who visited our house during installation (two installers and a plumber) did excellent jobs and went out of their way to clean up the mess caused by the first two installers and the inept managers.

Expand Cut Tags

No cut tags