1,266 karma · joined November 4, 2017
I was looking at this a little while ago, and used some of The Pudding's data on makeup/foundation shades (https://pudding.cool/2018/06/makeup-shades/) and plotted it into the Oklab colorspace (https://observablehq.com/@55th/foundation-shades). The shades form themselves into that same crescent as seen in the article.
Is this addressed in EU5 with its new population/culture system https://eu5.paradoxwikis.com/Population / https://eu5.paradoxwikis.com/Culture? I have not played it yet.
I did not assume that OP got the images. That's why I explicitly called it out. In my first sentence. And again in my second last sentence. Jesus.
> (I do agree that it's bad that there were no images preserved and that component of the post is justifiable)
Obviously Photobucket completely failed to properly monetize, and was sold to Fox and then offloaded to some no-name startup called Ontela (https://en.wikipedia.org/wiki/Photobucket). The service could have been shutdown completely and the harddrives fed into the shredder. Instead some former PE vulture did the math and figured out that preservation might make some money. You _can_ access old Photobucket images (when it works) that would otherwise get a median of 0 hits a month, while the rest of the internet succumbs to linkrot. Seems like a win-win for everyone involved.
> The web of Rube Goldberg devices that recycles floating animal waste on the space station has already cost twice its weight in gold and there is little appetite for it here on Earth, where plants do a better job for free. [...] I would compare keeping primates alive in spacecraft to trying to build a jet engine out of raisins. Both are colossal engineering problems, possibly the hardest ever attempted, but it does not follow that they are problems worth solving. [...] Humanity does not need a billion dollar shit dehydrator that can work for three years in zero gravity, but a Mars mission can’t leave Earth without it.
Why are we doing human spaceflight again?
The generators of T, typically called an Arbitrary<T> can be constrained, e.g Arbitrary<number> could generate any float or just non-negative integers. Ideally we would define an Arbitrary<float64> or Arbitrary<u64>.
A sufficiently expressive type system makes it easier to narrow the gap between what is generated and what is assignable to type T, making it clearer what the valid input domain to the SUT is.
It is a stylistic convention to always add this number to any reference to a function, even if there is only one definition.
> All this would be inexplicable enough if, indeed, AVCOAT was the only known material from which heat shields could be built. But while Lockheed continues to soak the US taxpayer and play chicken with the lives of NASA’s astronauts with this “flight proven” (but completely different) design, Lockheed happily built a PICA heat shield for JPL’s large Mars rovers Curiosity and Perseverance, and SpaceX’s Dragon capsule also uses PICA-3.
> If a crate doesn’t implement serde’s traits for its types then those types can’t be used with serde as downstream crates cannot implement serde’s traits for another crate’s types.
You are allowed to do this in Scala.
> Worse yet, if someone publishes an alternative to serde (say, nextserde) then all crates which have added support for serde also need to add support for nextserde. Adding support for every new serialization library in existence is unrealistic and a lot of work for crate authors.
You can easily autoderive a new typeclass instance. With Scala 3, that would be:
trait Hash[A]:
extension (a: A) def hash: Int
trait PrettyPrint[A]:
extension (a: A) def pretty: String
// If you have Hash for A, you automatically get PrettyPrint for A
given autoDerive[A](using h: Hash[A]): PrettyPrint[A] with
extension (a: A) def pretty: String = s"<#${a.hash.toHexString}>"
> Here we have two overlapping trait impls which specify different values for the associated type Assoc. trait Trait[A]:
type Assoc
object A:
given instance: Trait[Unit] with
type Assoc = Long
def makeAssoc: instance.Assoc = 0L
object B:
given instance: Trait[Unit] with
type Assoc = String
def dropAssoc(a: instance.Assoc): Unit =
val s: String = a
println(s.length)
@main def entry(): Unit =
B.dropAssoc(A.makeAssoc) // Found: Playground.A.instance.Assoc Required: Playground.B.instance².Assoc²
Scala catches this too.But fonts with good CJK support have wider Latin letter-forms, even when not in `font-variant-east-asian: 'full-width'` mode. I write about this here: https://maxbo.me/subordinate-latin.html (and cite "the peculiar case of Japanese web design")
I recently caught a glimpse of her Facebook and I was shocked to discover a version of the website that seemed to be the platonic ideal of exactly what all the Facebook PMs intended. Her feed was filled with the photos of her friends and coworkers international trips and holidays, posts in groups for planning activities in her most frequented cities. But I discovered that my mum was also a frequent "poster" of the photos of her various trips around the world, and the comments sections were filled with with some beautiful messages from her many many friends and family.
From this I learned that there is a subset of the population that Facebook works perfectly for and meaningfully improves their real-world social relationships. And perhaps Facebook has been hyper-optimized for that kind of use case through relentless A/B testing. But I fear my mum is quite privileged to have this kind of experience.