My future un-clawed-out eyes thank you in advance.
CSS tricks
I have a set of images of various sizes. I know their aspect ratios ahead of time. I want to lay them out horizontally such that they have the same height, and allocate horizontal space to them as needed to preserve their aspect ratios. That part's easy. Here's where it goes wrong: I would also like each of these images to have a uniform border, and also a uniform horizontal margin between each image.
Here's what I have now, from tonight's DNA Lounge front page, and you can see how it screws up:
Here's what it looks like if you turn off padding and border (those residual borders are burned into the images.) Things end up the proper height, but without a margin between them, it doesn't look great.
Gmail's absolutely horrific markup and how Chrome makes it worse
Line One
Line Three
Line Five
Line Eight
Line Nine
Line Ten
Copy that text from TextEdit or Notes. Compose a Gmail message inside desktop Chrome, paste, hit Send, and look at the HTML that Gmail produced. It's insane:
<div dir="ltr">
<p class="gmail-p1" style="margin:0px;font:12px Helvetica">Line One</p>
<p class="gmail-p2" style="margin:0px;font:12px Helvetica;min-height:14px"><br></p>
<p class="gmail-p1" style="margin:0px;font:12px Helvetica">Line Three</p>
<p class="gmail-p2" style="margin:0px;font:12px Helvetica;min-height:14px"><br></p>
<p class="gmail-p1" style="margin:0px;font:12px Helvetica">Line Five</p>
<p class="gmail-p2" style="margin:0px;font:12px Helvetica;min-height:14px"><br></p>
<p class="gmail-p2" style="margin:0px;font:12px Helvetica;min-height:14px"><br></p>
<p class="gmail-p1" style="margin:0px;font:12px Helvetica">Line Eight</p>
<p class="gmail-p1" style="margin:0px;font:12px Helvetica">Line Nine</p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Helvetica"></p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12px;line-height:normal;font-family:Helvetica">Line Ten</p>
</div>
So, first things first, if your application produces markup like that, please leave the software industry immediately. Your work is a net negative on everyone's lives. Tools down, walk away.
Second, here's where it gets fun. Copy that text from the Gmail message and paste it into any plain-text area, such as a <TEXTAREA> in a web page, or into TextEdit after having done Format / Make Plain Text. Or even into Emacs.
If you copy from Safari, what gets pasted is what you see.
If you copy from Chrome, what gets pasted is double- or triple-spaced. "Line Ten" is on line 19.
Line One
Line Three
Line Five
Line Eight
Line Nine
Line Ten
Line One
Line Three
Line Five
Line Eight
Line Nine
Line Ten
Line One
Line Three
Line Five
Line Eight
Line Nine
Line Ten
Ok but what's actually going on here? When you strip out all the redundant and useless bullshit, what does that markup actually say?
It says that each line is a paragraph, but one with no margin. In other words, a <DIV>. And then every paragraph break is actually its own paragraph, with one <BR> inside it.
I guess what's going on is, Safari looks at a node with no margin and says, "Aha, I shall copy the text with no extra spacing."
But Chrome looks at it and says, "That's a <P> tag! I know those! Those have a blank line after them!" And then it looks at that <P> with the single <BR> in it says, "That's also a <P> tag! I know those! Those have a blank line after them! I am very smart."
I see that monopolistic integration between the Gmail team and the Chrome team has really led to excellent cross-product interoperability, and consistent interpretation of how all of this crap is supposed to work.
(Firefox, meanwhile, somehow manages to split the difference, and I have no theory on what the hell is going on there.)
Anyway, great job everybody, no notes.
Rumors of Threads dot net federation have been greatly exaggerated
Of the 655 accounts I used to follow on Instagram, 268 (41%) now have Threads accounts. (And I am disappointed in all of them.) Of those 268, exactly ZERO can be followed from Mastodon dot social. If there's something they have to turn on to make it happen, zero of them have done so.
Not even @aoc or @therealelvira!
And yes, I pasted each of the account names into the search field by hand, like an animal.
Gravatar Dunning-Krugerrands
Today might be a good day to install my "Mirror Gravatar" WordPress plugin, before the mass exodus.
Gravatar blog: "Mastering Decentralized Identity for Business":
The internet is evolving into Web 3.0, with a shift that brings decentralized applications and services to the forefront. [...]
Blockchain technology is fundamental to decentralized identity systems. Here's why: [...]
For instance, Ethereum's smart contract functionality lets you create complex identity management systems that operate autonomously and transparently.
Previously, previously, previously, previously, previously, previously, previously, previously, previously.
"Modern web technologies"
Are you curious about what those "modern web technologies" are? As far as I can tell, the technology in question is a recent innovation known as "drawing your checkboxes in the right place", which as we know, only became possible within the last 6 years.
Here is your demo version of Energize for Solaris
Mozilla's Original Sin
Those are different things and are very much in conflict. They picked one. They picked the wrong one.
In light of Mozilla's recent parade of increasingly terrible decisions, there have been cries of "why doesn't someone fork it?" followed by responses of "here are 5 sketchy forks of it that get no development and that nobody uses". And inevitably following that, several people have made comments in the "Mozilla is an advertising company now" thread to the effect that it is now impossible for a non-corporate, open source project to actually implement a web browser, since a full implementation requires implementing DRM systems which you cannot implement without a license that the Content Mafia will not give you.
This is technically true. ("Technically" being the best kind of "true" in some circles.)
Blaming and shaming:
- It used to be that to watch Netflix (and others) in an open browser required the use of a third party proprietary plugin. That doesn't work any more: now Netflix will only work in a browser that natively implements DRM.
- That step happened because Mozilla took that license and implented DRM.
- That happened because: "it's in the W3C spec, we didn't have a choice."
- How did it get into the spec? Oh, it got into the spec because when the Content Mafia pressured W3C to include it, Mozilla caved. At the end of the day they said, "We approve of this and will implement it". Their mission -- their DUTY -- was to pound their shoe on the god damned table and say: "We do not approve, and will not implement if approved."
But they went and did it just the same.
"But muh market shares!" See, now we're back to the kitten-meat deli again.
If you were unable to watch Netflix in Mozilla out of the box, yes, that would have impacted their market share. You know what else would have happened? Some third party patch would have solved that problem.
When Netscape released the first version of the Mozilla source with no cryptography in it due to US export restrictions, it was approximately 30 minutes before someone outside the US had patched it back in. I'm not exaggerating, it happened that night. This is the sort of software activism at which the open source community excels, even if it is "technically" illegal. ("Technically", again, being the best kind of illegal in some circles.)
Mozilla had a duty to preserve the open web.
Instead they cosplayed as a startup, chasing product dreams of "growth hacking", with Google's ad money as their stand-in for a VC-funding firehose, with absolutely predictable and tragic results.
And those dreams of growth and market penetration failed catastrophically anyway.
(Except for the C-suite, who made out quite well. And Google, who got exactly what they paid for: a decade of antitrust-prosecution insurance. It was never about ad revenue. The on-paper existence of Firefox as a hypothetical competitor kept the Federal wolves at bay, and that's all Google cared about.)
Now hear me out, but What If...? browser development was in the hands of some kind of nonprofit organization?
As I have said many times:
In my humble but correct opinion, Mozilla should be doing two things and two things only:
- Building THE reference implementation web browser, and
- Being a jugular-snapping attack dog on standards committees.
- There is no 3.
Previously, previously, previously, previously, previously, previously, previously, previously, previously, previously.