[HN Gopher] Netflix's new player breaks the ability to modify th...
       ___________________________________________________________________
        
       Netflix's new player breaks the ability to modify the seeking of a
       playing video
        
       Author : spaceribs
       Score  : 276 points
       Date   : 2021-10-17 14:04 UTC (8 hours ago)
        
 (HTM) web link (plopdown.video)
 (TXT) w3m dump (plopdown.video)
        
       | gedy wrote:
       | It's cool the OP could figure workarounds and debug this, but I
       | fear web assembly will turn the web into a bunch of opaque binary
       | blobs that makes this impossible/impractical.
       | 
       | Neat tech but be careful what you wish for!
        
       | spaceribs wrote:
       | I want to thank the mods for changing the title of this article
       | posted here, my original title was a bit hyperbolic to say the
       | least but I am quite worried about where this path leads overall.
        
       | elcomet wrote:
       | Could someone explain better what this is about? I don't
       | understand what "seeking" means in this context.
       | 
       | I can still go back or forward manually in my video if I need to
        
       | Causality1 wrote:
       | Netflix's user-side software has always been garbage. The android
       | app forces you to keep a separate brightness slider from your
       | phone, so if you watch Netflix a lot you're constantly having to
       | adjust your screen brightness twice. It's also nearly 2022 and
       | you still can't reorder the profiles on the login screen. How
       | fucking hard can that possibly be?
        
       | pjmlp wrote:
       | The Web is just one decade away (tops) of being a synonym for
       | ChromeOS runtime anyway.
        
         | arpa wrote:
         | and that spells the end of personal computing.
        
         | bob1029 wrote:
         | I disagree. I think there is enough vested interest in keeping
         | the open web from turning into another google property. I
         | strongly believe that regulatory forces will take effect before
         | google owns the entire planet.
         | 
         | DRM-controlled media content covers just a tiny fraction of
         | what the open web offers and represents the only hard barrier
         | to entry in development of a new browser from scratch. Yes, the
         | technical challenge is extreme too but not impossible. There
         | are large organizations that are making serious headway in this
         | space right now:                 https://www.ekioh.com/
        
           | pjmlp wrote:
           | The people shipping Electron apps don't seem being interested
           | in keeping the Web open, rather adding value to Chrome OS
           | conquest of the Web.
        
             | renke1 wrote:
             | While I agree in general, no one is stopping Mozilla from
             | creating a viable alternative to Electron that's based on
             | open standards exclusively.
        
               | pjmlp wrote:
               | It won't matter, when the powers that be decide it is too
               | much work to write cross platform Web UIs.
        
             | bob1029 wrote:
             | What do you propose we do to fix this problem?
        
               | pjmlp wrote:
               | For starters, if Web technologies must be used, webviews
               | and console/daemons that start system browser.
               | 
               | But naturally having to actually ship a cross browser Web
               | UI is so much trouble. /s
        
         | Retric wrote:
         | Chrome browser share has slightly dropped over the last year.
         | Ex: https://gs.statcounter.com/browser-market-share
        
           | pjmlp wrote:
           | You are missing Electron apps.
        
           | mikeryan wrote:
           | Interesting chart it looks like Safari picked up some share
           | around the same time Chrome dipped. Clicking through by
           | platform it looks like most of that was on mobile. I'm
           | guessing some iOS change did that more than anything else.
        
           | cute_boi wrote:
           | are these numbers correct by wide margin? Because I know many
           | browsers like brave etc seems to use Google User Agent. And
           | the funny thing is I am on firefox and I use Google Chrome UA
           | so that skype etc works.
        
       | jstsch wrote:
       | You see this pattern in tons of web apps and sites. The browser
       | is slowly turning into some sort of virtual machine. A sensible
       | DOM structure with logical element naming seems to be a thing of
       | the past. I think it makes development more complicated and also
       | increases the barrier of entry for new devs.
        
         | foxfluff wrote:
         | It turned into that (more than) a decade ago.
         | 
         | I was still browsing the web with links2 and a tiny text mode
         | browser (similar to w3m) of my own writing until around the
         | time google said "let's kill IE6." Shortly after that, the web
         | at large started becoming unusable with simple browsers. It was
         | still reasonably usable with script blocking, but that ship
         | sailed too, and the vast majority of sites now absolutely
         | require some scripts before you can see the text and images or
         | navigate at all.
        
           | fouc wrote:
           | Sometimes I wonder if some sort of legislation could fix this
           | trend of abstracting users away from the web (and from
           | software, and from hardware).
           | 
           | Beyond just "the right to repair" we also need "the right to
           | access the web", and "the right to run old versions of
           | software and OSes", and so on.
        
         | toxik wrote:
         | The browser is becoming a TV. In the future, computers with
         | keyboards and actual user control will be specialty devices for
         | experts, quite separated from the content you can access today.
         | 
         | It is really sad to see what humankind is about to lose in the
         | name of copyright and content ownership. We really could have a
         | share everything utopia, but no, our societies are built on
         | adversarial competition and our politicians are unwilling or
         | simply unable to stop the unending barrage of overreaches.
        
           | selectodude wrote:
           | You're aware that is what people actually want though.
        
             | toxik wrote:
             | People want to consume their content, nowhere does that
             | dictate that they sign away their rights and actual
             | ownership of their devices that they buy with their own
             | money. The already existing DRM is user hostile, it is
             | about control and nothing else.
             | 
             | Users do NOT want these things, if you took the time to
             | explain what it means, and gave them another option.
             | 
             | The only reason the current set of DRM malware still exists
             | today is by artificial scarcity, and mafia-like bullying
             | through courts. Public opinion was largely in favor of peer
             | to peer sharing content, but that wasn't good enough for
             | the big boys. They wanted to be able to bring ALL other
             | parties to their knees: cable manufacturers, display
             | makers, computer makers, storage device makers, and of
             | course, users. EVERYONE is now under their control.
             | 
             | The general public is apathetic to the issue of DRM, they
             | certainly don't want it. But they are not given a choice.
             | You must have a HDCP certified computer, cable and display
             | - otherwise no content for you.
        
             | TeMPOraL wrote:
             | Which people? The ones that want to get rich at the expense
             | of others, or the ones the former bamboozle into believing
             | this is how tech should work?
        
               | selectodude wrote:
               | The vast majority of people who want to pull a television
               | out of the box, log into netflix, and watch their shows.
               | 
               | For them, technology is a means to an end. Nothing more.
        
           | arpa wrote:
           | I don't want to believe the battle is lost, but I don't see a
           | way to fight back aside from establishing a hacker
           | counterculture, which is kind of happening with tor and
           | internet alternatives.
        
         | btown wrote:
         | For the endgame of this, look no further than Figma. Their
         | entire engine is custom-built in C++ and has been since 2015:
         | https://www.figma.com/blog/building-a-professional-design-to...
         | 
         | > Instead of attempting to get one of [HTML/SVG/JS Canvas] to
         | work, we implemented everything from scratch using WebGL. Our
         | renderer is a highly-optimized tile-based engine with support
         | for masking, blurring, dithered gradients, blend modes, nested
         | layer opacity, and more. All rendering is done on the GPU and
         | is fully anti-aliased. Internally our code looks a lot like a
         | browser inside a browser; we have our own DOM, our own
         | compositor, our own text layout engine, and we're thinking
         | about adding a render tree just like the one browsers use to
         | render HTML.
         | 
         | For what it's worth, this isn't all that dissimilar from game
         | development on proprietary engines, and that hasn't stopped
         | indie game devs from experimenting. But it will be a huge
         | problem for accessibility.
        
         | ajdude wrote:
         | Even the website this post links to just displays a blank page
         | for me, with JavaScript disabled.
        
       | cnfernandes wrote:
       | Does this apply to Netflix Party (or Teleparty)
        
       | cnfernandes wrote:
       | Is Netflix party / Teleparty now broken?
        
       | gfodor wrote:
       | Netflix used to use Silverlight for their player. I wrote
       | something a while back that needed to drive it and ended up
       | writing code to click the scrubber to drive it. Guess we are back
       | there ;)
        
         | aaa_aaa wrote:
         | "Almost there". Silverlight was not working in Linux afaik.
        
           | rzzzt wrote:
           | For different values of "not working", there was Moonlight:
           | https://www.mono-project.com/docs/web/moonlight/
        
       | speeder wrote:
       | I have impression DRM vendors REALLY want you to buy a smart TV.
       | Except F1 that is just stupid.
       | 
       | I used to watch all stuff I wanted on a MacMini attached to a
       | dumb TV.
       | 
       | Suddenly, Netflix stopped working on all browsers except chrome.
       | 
       | Then F1TV did the same, not only that some people found out it
       | COULD work on other browsers, but after an specific update, they
       | added code where it detects what browser you are using, and if it
       | is not the browser and OS they want, the whole website refuses to
       | work.
       | 
       | I then decided to replace the aging MacMini with a Raspberri Pi
       | to see if I could solve this problem, but as I researched I found
       | out that it wouldn't solve it either, Google makes the Widevine
       | DRM, and seemly lately it has been notorious for doing silent
       | changes that break it on all platforms except official Chrome
       | versions on Windows, Android and Chrome OS, people using Pi for
       | media wrote a bunch of posts all over the internet with warnings
       | like: "Oh, Netflix will work on the Pi some 3 months per year, it
       | will start working after someone manages to make Widevine work
       | with Chromium, and then after some weeks working Google will make
       | a silent update and break it again for several months until
       | someone figure out how to make it work with Chromium again"
       | 
       | Also I am still bitter that the DRM race led to the death of 3D
       | sound cards and some cool stuff that was possible with analog
       | video on Windows versions before Vista.
       | 
       | EDIT: about F1 being stupid: most DRM streaming apps have a
       | SmartTV version. Formula 1 official doesn't. They want you to use
       | Chrome on a PC. I just cannot understand what is wrong with them,
       | why not allow people to watch Formula 1 on a TV like most normal
       | people would want to?
        
         | danShumway wrote:
         | > I used to watch all stuff I wanted on a MacMini attached to a
         | dumb TV. Suddenly, Netflix stopped working on all browsers
         | except chrome.
         | 
         | How is this possible? I was told that standardizing DRM
         | interfaces in the browser would stop Netflix from forcing users
         | to download native apps instead of using regular browsers and
         | open streaming technology.
         | 
         | > Google makes the Widevine DRM, and seemly lately it has been
         | notorious for doing silent changes that break it on all
         | platforms except official Chrome versions on Windows, Android
         | and Chrome OS
         | 
         | So wait, standardizing DRM _interfaces_ didn 't do anything to
         | increase platform/browser availability for the actual DRM
         | _implementations_ that are only licensed to be used with
         | certain browsers and on certain devices? No one could have
         | predicted this.
         | 
         | Utterly shocking. It's almost like the standardization process
         | for web DRM changed literally nothing about Netflix/Chrome's
         | plans, and really only existed to provide a PR boost and the
         | veneer of respectability to an outcome that they were always
         | going to pursue anyway regardless of what the standard was.
         | 
         | Oh well, live and learn. And by "learn", I of course mean make
         | the exact same arguments verbatim the next time we want to
         | standardize DRM interfaces on image tags and then accuse
         | critics of wanting the open web to die.
        
         | dgan wrote:
         | This is not only Netflix. French media do the same using
         | exactly the same Widevine DRM, which simply doesn't work on
         | Firefox. My sister couldn't watch some replays of her shows on
         | my laptop because she couldn't figure out why it wouldn't work
        
           | johnchristopher wrote:
           | Wait... I first heard of widevine last week when I tried
           | watching netflix on my work's laptop (debian), using firefox.
           | It didn't work so I googled, found out about widevine and
           | special settings. I tweaked some chrome/chromium parameters
           | but it didn't work.
           | 
           | All this in a private window.
           | 
           | Once I used Netflix in a normal window (Firefox or chromium)
           | it worked.
           | 
           | Worth a try ?
        
             | Anon_troll wrote:
             | I don't think Firefox and Chrome run extensions/plugins in
             | private windows without you first allowing them to run.
             | That might be the case here.
        
             | madeofpalk wrote:
             | Widevine is more or less the "industry standard" for in-
             | browser video DRM. Basically everyone uses it.
        
         | arpa wrote:
         | Netflix has made a significant dent in piracy, but DRM will fix
         | that...
        
           | whoopdedo wrote:
           | Did they, though? I never noticed a lack of availability of
           | torrents and NZBs for movies and TV shows.
           | 
           | Oh, I get it. They're using the same zero-sum definition of
           | "drop" that they used when calculating profits. With a
           | convenient and well-priced legal streaming option, new
           | consumers are less likely to seek out pirate copies. (This is
           | true.) If you count every subscription as a "lost" pirate
           | copy then you can describe pirating as having "fallen" from
           | this hypothetical maximum level to the current real rate of
           | piracy. You don't have to even bother looking at the actual
           | rate of piracy, which may have grown over the same period.
           | That's the kind of math they use to count how much money is
           | "lost" to piracy; assume every downloaded movie would have
           | been paid for if piracy didn't exist. So of course the same
           | formula would apply to describing how valuable their platform
           | is.
        
           | deadbunny wrote:
           | Netflix made a dent in piracy when they were the only game in
           | town. With the fracturing of streaming services leading to
           | the very thing Netflix solved piracy will be on the rise
           | again.
        
             | mrtranscendence wrote:
             | You mean you don't sign up for all of Netflix, Hulu,
             | Disney+, Paramount+, AppleTV+, HBO Max, Peacock, ESPN+, and
             | Amazon Prime?? You really should, it's so convenient
             | juggling subscriptions and apps for everything
             | individually.
             | 
             | But don't stop there. You want some documentaries? Throw in
             | Curiosity Stream, it's pretty cheap and you'll get Nebula
             | for free! You'll want BBC Select too, though. Oh, you like
             | Anime? Here's Crunchyroll. A horror fan? Don't forget to
             | sign up for Shudder!
             | 
             | Or you could just log into your VPN and go to Pirate Bay. I
             | mean, if you were a dirty awful criminal.
        
         | smolder wrote:
         | What do you mean about the death of 3D sound cards? Do you mean
         | surround sound, like 5.1, etc? That's still a thing, and not
         | incompatible with DRM.
        
         | chha wrote:
         | Not sure if this is valid in all cases; avid user of Netflix
         | and F1 fan here. I only use Firefox on Linux to watch them
        
         | Shorel wrote:
         | >Also I am still bitter that the DRM race led to the death of
         | 3D sound cards and some cool stuff that was possible with
         | analog video on Windows versions before Vista.
         | 
         | I share your bitterness about this same issue.
        
           | Sebb767 wrote:
           | Honest question, as someone who's (probably) too young: What
           | where these 3D sound cards and - just from the name - isn't
           | that what Dolby Surround (etc) does?
        
             | johnchristopher wrote:
             | In the 90's I chalked it up to "surround or 5.1 marketing"
             | but it might have been something else
             | https://www.pcmag.com/encyclopedia/term/3d-audio
        
               | chha wrote:
               | Yeah, there were several manufacturers who produced
               | soundcards that basically offered two channels of sound,
               | but where elements creating sound on-screen could be
               | positioned as in a 3-dimensional world. I had a Packard
               | Bell with an A3D[1] card, and I remember being fascinated
               | by the demos they supplied.
               | 
               | [1] -
               | https://en.m.wikipedia.org/wiki/Aureal_Semiconductor#A3D
        
               | detaro wrote:
               | And how did DRM get in the way of that?
        
       | londons_explore wrote:
       | What is the benefit to netflix of preventing a user
       | programatically seeking the video?
       | 
       | I can only imagine that perhaps netflix is trying to eliminate
       | bugs caused by third party plugins that (for example) seek the
       | htmlVideoElement, but don't trigger the network request to
       | preload the necessary video that would normally happen as the
       | user is dragging the scrubber.
        
         | avidiax wrote:
         | This could be step 1 of ad-supported Netflix. Create the
         | infrastructure to keep you from skipping embedded ads.
        
           | tomjen3 wrote:
           | They might do that as a much cheaper option, but whatever
           | streaming service forces their users to watch ads will just
           | see most of their users leave.
           | 
           | I haven't seen ads that can work around my hand covering them
           | up (but I am sure I will eventually), but if I am forced to
           | see ads, I won't consider paying for the service.
        
           | londons_explore wrote:
           | I'm not sure ads work out financially for netflix. They
           | currently get ~$120 per year per subscriber.
           | 
           | Even google only earns $130 per user, and their ads are worth
           | considerably more because they target the most valuable ads
           | on user purchase intent (for search at least, where they get
           | most revenue).
        
           | alisonkisk wrote:
           | Manually seeking works in Netflix and in ad video like
           | YouTube and Hulu. Automated seeking uses the same APIs unless
           | bugs.
        
       | sergiotapia wrote:
       | Do engineers on these teams not voice their concerns and refuse
       | to do stuff like this that actively hurts the web?
        
         | standardUser wrote:
         | If the tens of millions of people employed by carbon-emitting
         | industries don't risk their jobs to prevent the literal ruin of
         | the planet, not sure why anyone would think employees would
         | take that same risk to prevent some third-party plugins from
         | breaking.
        
         | geofft wrote:
         | You're asking if Netflix tolerates engineers not toeing the
         | party line about their product? Have you seen the news last
         | week? :)
        
           | sergiotapia wrote:
           | No what news, please share.
        
         | betterunix2 wrote:
         | I have been that engineer on occasion, though not specifically
         | with regard to DRM. The pushback has typically been something
         | like, "There is too much money on the line," or even, "If we
         | are not setting the standard on this, someone else will, and it
         | will probably be even worse."
         | 
         | In the end, work is not voluntary for the majority of engineers
         | involved in these things, and so you just have to accept that
         | you are not going to win the argument unless you have a good
         | argument that what you are being asked to build is not
         | possible. Engineers often speak of how DRM is basically
         | impossible, but that is only true in an ideal world; in
         | practice DRM is good enough to satisfy business needs and
         | concerns about web openness have yet to materialize (at least
         | in a way that would undermine the business case for it). The
         | relatively small number of hardware and software platforms one
         | must deal with now further weakens the arguments against DRM.
        
         | bosie wrote:
         | I get where you are coming from but to me this wouldn't make
         | sense given that they work there in the first place. Same goes
         | for the network team serving the content etc. You start working
         | there, it would be unprofessional to refuse to do this. Quit
         | (or never start working there) if it makes you feel uncomfy.
        
         | deadbunny wrote:
         | What incentive do they have? Some good feels don't compare to
         | that sweet remuneration package.
        
         | scrose wrote:
         | For every engineer that says no, there's thousands of other
         | engineers willing to do whatever's asked for $400k+/year
        
         | MattGaiser wrote:
         | At least where I have worked, by the time it gets to me the
         | decision has already been made that X feature will happen.
         | 
         | So you could voice concern there, but it wouldn't matter.
        
           | wpietri wrote:
           | That's circular reasoning. If you and your colleagues said,
           | "No, sorry, we're not implementing that", then that would
           | mean the decision hasn't in fact been made. Your decision to
           | give up your power as to the decisions is what makes it true.
        
         | wpietri wrote:
         | This points at a huge problem in software culture. A lot of us
         | don't see ourselves as professionals, with our own ethical
         | standards and responsibilities. We just do whatever a boss
         | orders us to do, like minions or mercenaries.
         | 
         | It's also an organizational problem, though. If you're, say, a
         | doctor or an actual engineer, there are professional
         | organizations that stand up for the professional standards and
         | that can have your back if you're being asked to violate them.
         | 
         | This is especially disappointing to me given the demand for
         | software developers. It's much easier for us to find news jobs
         | than most people, so the risk of taking an ethical stand is
         | much lower for us than most people. And we also have a lot to
         | gain! So many places are poorly run that businesses and
         | developers would all gain if we used our power to fix process
         | and organizational issues.
         | 
         | I've certainly done my best to use that power well. But I would
         | love to see cultural and organizational changes so that more of
         | us do that.
        
           | malloreon wrote:
           | 100% true.
           | 
           | If a software engineer writes software that hurts people,
           | they believe in hurting people and believe people should be
           | hurt.
           | 
           | If they didn't, they wouldn't write software that hurts
           | people.
           | 
           | The impressive amount of freedom tech workers have to choose
           | what they work on means the ethical and moral issues with
           | their production should fall on each person's shoulders, but
           | it doesn't.
        
             | standardUser wrote:
             | This attitude implies an unambiguous, black and white world
             | where such decisions are always clear. In other words, a
             | fantasy world which does not exist.
        
               | wpietri wrote:
               | I agree it's a bit hyperbolic. But it seems weird to
               | suggest that developers, who are hired for their
               | intellectual power and subtlety, are great at figuring
               | out the implications of complex decisions except when
               | ethics are involved.
               | 
               | I think it's more likely that their sudden inability in
               | this one aspect is related to Upton Sinclair's
               | observation: " It is difficult to get a man to understand
               | something when his salary depends upon his not
               | understanding it."
        
             | mdoms wrote:
             | It's a video scrub bar. Calm down.
        
         | Kiro wrote:
         | No, because employee shaming like this make people distance
         | themselves from the criticism and isolate in their work bubbles
         | where they can easily justify any wrongdoings.
        
       | fitzsim wrote:
       | Sort of meta, but why does plopdown.video require JavaScript?
       | Without JavaScript enabled it renders as a blank page. The actual
       | post is just text and images. Why put that behind a JavaScript
       | wall? Doing so excludes all non-JavaScript-supporting browsers
       | from viewing the site. That's also a type of open web failure,
       | another example of the type of problem the article does a good
       | job of dissecting.
        
         | krono wrote:
         | The percentage of visitors without JS likely doesn't make it
         | worth it for the developer to spend time handling this
         | nonstandard.
         | 
         | A site like this can definitely be created without JS, but it's
         | their site and therefore their choice.
        
           | detaro wrote:
           | The percentage of visitors with extensions like Plopdown
           | likely doesn't make it worth for Netflix to spend time
           | handling this nonstandard. ;)
        
             | krono wrote:
             | The ability to seek is the standard so you've got things
             | turned around I'm afraid :)
        
               | MarcellusDrum wrote:
               | But it's their site therefore their choice.
        
               | krono wrote:
               | Yes I believe so. Having said that, if I had a Netflix
               | sub I would seriously have considered canceling over
               | this.
        
         | spaceribs wrote:
         | In my case, the actual plugin doesn't work without Javascript,
         | and this was actually the cheapest option for hosting and
         | staying within what I already had in my Nx monorepo. (it
         | literally costs me $10 a year and I'm only paying for the
         | domain)
         | 
         | I'm looking into some options for this with cloudflare, but
         | it's been pretty low on my priorities for the above reasons.
         | I'm also one of those people that turns off javascript by
         | default, so I know your pain, but I'm also not a multi-billion
         | dollar company.
        
       | seanwilson wrote:
       | Tangential, but does Netflix have a reliable keyboard shortcut to
       | pause the video? On Chrome, it seems to break when you switch the
       | keyboard focus to some parts of the UI. You're also prevented
       | from seeking backwards at the credits without clicking a button
       | first (one is "watch next episode").
       | 
       | I can see why the second one might be a deliberate design choice
       | to push you to watch the next episode but I'm surprised the first
       | isn't caught in user testing unless there's another shortcut.
       | Youtube lets you press `k` to pause which seems to be reliable.
        
         | loeg wrote:
         | Have you tried space to pause?
        
         | mkr-hn wrote:
         | Not directly, but there is a pause function on HTML5 video
         | elements you could toss into a bookmarklet.
         | 
         | https://stackoverflow.com/questions/4155329/how-to-pause-a-h...
         | 
         | If you use Firefox, you can set a keyword for it, so you could
         | hit F6 to focus the address bar and type it in.
         | 
         | It really shouldn't take all this to get even close, but I've
         | never had much luck with space since it's focus dependent.
         | Maybe you could use something like AutoHotKey to click the
         | video area when you press a certain button/combo.
        
       | IceDane wrote:
       | Netflix's player has been awful for years now. It's soooo heavily
       | modified web UX that it just takes me back to the days of
       | websites being built entirely in flash.
       | 
       | I wish we just had a normal player and a normal website and not
       | this disgustingly over-engineered ad-delivery experience. But I
       | don't expect this to change every. Netflix will do everything
       | they can to control their content.
        
         | Sebb767 wrote:
         | Counter point: I really like the way Netflix is built. It's
         | great for discovery and the series I'm watching are right at
         | the top if I simply want to jump back in. Sure, they could
         | really do away with the autoplay and add some minor tweaks, but
         | overall I'm happy. In fact, I even went for a native app
         | instead of Kodi for my TV, just to get the original UI.
        
           | Zekio wrote:
           | Great for discovery? everyone I know use external sites to
           | know what content was just added on Netflix, because having a
           | `Recently added` that isn't a week behind is too hard
        
             | Sebb767 wrote:
             | That's not something I really care about, to be honest. I
             | don't have too much view time, to be fair, so it might be
             | this, but I don't need to know about what was just released
             | this moment; what I want is to find something I want to
             | watch right now. And at least for me, Netflix works quite
             | well in supplying that.
        
       | snthd wrote:
       | Does the inability to jump to a timestamp adversely affect blind
       | users?
        
         | bastawhiz wrote:
         | I'm not aware of any screen readers that reach into the dom and
         | call media element APIs directly. They essentially interact
         | with the controls on the page that sighted users interact with.
        
       | Shorel wrote:
       | New?
       | 
       | This error message has appeared since I first used Netflix.
       | 
       | It happens about one third of all times I pause the video and
       | then try to continue.
       | 
       | F5 will not fix it.
       | 
       | Only solution is to close the browser and open it again.
        
       | pickledcods wrote:
       | The rise of Trusted Computing where users are considered
       | untrusted and perhaps even criminal by default. It will only get
       | worse: playing any kind of media with a browser and OS you
       | dislike.
        
         | mindslight wrote:
         | I can't reproduce the problem under mpv or Kodi. We've already
         | passed the peak user experience of software bondage. Here's to
         | hoping the next big trend is popular adoption of user-
         | representing software.
        
         | arpa wrote:
         | RMS was right all along.
        
           | thesuperbigfrog wrote:
           | "Who controls your computer? Is it you?"
           | 
           | "Either the user controls the software, or the software
           | controls the users":
           | 
           | https://youtu.be/Ag1AKIl_2GM?t=57
        
           | mhh__ wrote:
           | As someone very unimpressed with RMS-the-human, he is just
           | bang on the money when it comes to software freedom. He is as
           | right on that as he is odd as a person, I think it's a real
           | shame (an inevitable one, but still) that the GNU concept
           | seems to be lost on many younger programmers e.g. the
           | GNU/Linux meme (there would be no kernel and no "Linux"
           | without GNU, GCC, and the GPL so I have no issues giving them
           | credit when due)
        
             | jhgb wrote:
             | > He is as right on that as he is odd as a person
             | 
             | We're continuously being told that we need different people
             | to come up with different ideas. Then the same people are
             | unimpressed that people with unconventional ideas are
             | unconventional. SMH.
        
               | mrtranscendence wrote:
               | Unconventional doesn't cut it. _I 'm_ unconventional. RMS
               | is a creepy weirdo and frankly kind of an asshole.
        
               | mandmandam wrote:
               | You're not unconventional, you're anonymous.
               | 
               | Why do you think it's okay to smear Stallman like this?
               | 
               | And for the people who apparently are supporting this
               | smear, please take a minute to educate yourself:
               | https://stallmansupport.org/
        
               | jhgb wrote:
               | > is a creepy weirdo
               | 
               | I'm positive we call them "autists" these days, not
               | "creepy weirdos", just like we don't call low-IQ people
               | "idiots" anymore, even though we did at some point.
        
               | chc wrote:
               | "Autist" is a term (usually pejorative these days) for
               | people on the autism spectrum, most of whom are not
               | creepy weirdos.
        
               | jhgb wrote:
               | Yes; objectively nobody is a creepy weirdo because it's a
               | cheap, nebulous, meaningless term. Yet for some reason
               | there seems to be no shortage of people using it to
               | designate people who are just different in some way.
        
         | foxfluff wrote:
         | Already the case with proprietary banking apps..
        
           | [deleted]
        
       | [deleted]
        
       | technogeek00 wrote:
       | The boolean tracking appears to be something like an asset state
       | machine / tracking running in the virtual player. Manually
       | seeking the video tag is likely an unexpected change triggering
       | an exceptional transition in the logic.
       | 
       | The thing to keep in mind here is that the seeking timeline of a
       | video tag element does not need to represent the actual media
       | timeline when you are using MSE. It can represent any time the
       | virtual player running in JavaScript wants to maintain and is
       | usually more related to the buffer timeline and ensuring pts
       | continuity across segment appends. Netflix has historically had
       | relatively simple streams which may have allowed this to be the
       | actual seek time, but looks like some deeper streaming changes
       | are landing. For a more complicated example take a look at how
       | multi-asset vod and live streams in a single video tag surface
       | times.
       | 
       | I don't work for Netflix, but do work in the field and since it's
       | relatively small know some of the folks over at Netflix. They
       | definitely aren't out to break things purposely, it's more likely
       | not a case they exercise and broken by a change like someone else
       | has said. If you want to patch the functionality it may be worth
       | exploring the dispatch of mouse clicks on the seek bar. That
       | probably does a translate to time and then calls the virtual
       | player seek API which would be the new hook point you want.
        
         | spaceribs wrote:
         | Yeah, I have a feeling it was due to optimizations deeper in
         | the stack, I'm just deeply unhappy that what essentially should
         | be an interoperable API via the <video> element was locked down
         | in such a spectacular fashion.
         | 
         | The edge cases of varying video providers has been really eye
         | opening when i've been doing this project, it hard to imagine
         | how screenreader software (or any meta-software that makes it
         | easier for the disabled) works at all.
        
       | Shouganai wrote:
       | Sorry, a little off topic gripe about the article itself. I have
       | gigabit internet and still noticed the two images for this
       | article loading line by line, top to bottom. Upon inspection I
       | see they are using massive (5.67mb & 3.6mb) .png images with a
       | resolution of 2832x1838. However, the maximum size they are ever
       | displayed is 836x546.
       | 
       | It took me less than 1 minute to do a quick and dirty
       | optimization bringing them down to less than 100kb each. Here you
       | go author:
       | 
       | https://i.imgur.com/WGk8dBS.jpg https://i.imgur.com/pHSFsCb.jpg
        
         | jacobobryant wrote:
         | Shoutout to https://images.weserv.nl/. e.g. given
         | https://example.com/foo.jpg, you can do <img src="https://image
         | s.weserv.nl/?w=100&url=https://example.com/foo....">
        
         | m_a_g wrote:
         | I love the HN community.
        
         | Waterluvian wrote:
         | Idea: a simple service that takes a URL and discovers stuff
         | like this and spits out optimizations.
        
           | eterm wrote:
           | Pretty sure Yahoo and google both had a service that did that
           | a decade or more ago.
        
           | mhh__ wrote:
           | Being in a forum with people in the middle of nowhere can
           | serve as a very immediate "service" e.g.
           | 
           | - hey guys look at my blog post
           | 
           | - I'm in [a village in Tibet or whatever] and it's still
           | loading after 30 seconds...
        
           | capableweb wrote:
           | Solution: This already exists, Google Lighthouse is one
           | (https://developers.google.com/web/tools/lighthouse) but many
           | non-Google alternatives exists too
           | (https://alternativeto.net/software/google-lighthouse/)
        
           | wongarsu wrote:
           | So Google's Lighthouse? Or more on-the-fly fixes by the
           | webserver like mod_pagespeed?
        
         | spaceribs wrote:
         | Thank you, I did this blog post rather quickly :(
         | 
         | Edit: updated the images, thanks again
        
           | Shouganai wrote:
           | You're welcome, have a great day friend.
        
       | standardUser wrote:
       | "When seeking the video to annotations in the plopdown timeline"
       | 
       | There has to be a way to phrase this that is comprehensible by
       | humans.
        
       | kissickas wrote:
       | Ironic from a website that requires me to allow javascript to run
       | before I can read a text-and-image blog post.
        
         | ajdude wrote:
         | Came here to say that.
        
       | amelius wrote:
       | Back to torrents then.
        
       | mankyd wrote:
       | Going to give a guess as to more pragmatic reason this came
       | about: they don't have a requirement or test for it.
       | 
       | Some engineer was asked to make a feature. That feature happened
       | to break 3rd party seeking. It probably wasn't intentional, just
       | incidental.
       | 
       | Because they have no internal requirement to support this, nor
       | anyone/anything testing for it, it silently broke.
       | 
       | It was probably not malicious, even if it feels like a step
       | backwards to this extension developer.
       | 
       | Whether it _should_ be fixed of course, is a different matter,
       | but when I see statements like "DRM vendors REALLY want you to
       | buy a smart TV"[1] I frown, as it is contains an assumption of
       | intent that I suspect isn't there.
       | 
       | [1] https://news.ycombinator.com/item?id=28896614
       | 
       | Edit: The title of the article (and original title here) is
       | "Netflix's new player is an open web nightmare". My response is
       | written in response to this sort of inflammatory language.
        
         | whoknowswhat11 wrote:
         | It's honestly better in some cases just to lock these types of
         | folks out - you can save yourself a ton of a headaches later.
         | 
         | Look for words like offended, nightmare, deeply upset, outraged
         | - if you see a lot of that - disengage!
        
         | arpa wrote:
         | We're jaded enough to assume the reverse of Hanlon's razor (for
         | me it was when google dropped their "don't be evil", hard).
        
         | DaiPlusPlus wrote:
         | > they don't have a requirement or test for it.
         | 
         | Automated and thorough testing of client-side JavaScript is a
         | huge, huge burden because you cannot simply run a script in
         | isolation in a headless V8 instance or something: you need the
         | entire browser and clone environment running.
         | 
         | Secondarily: the major tools for performing automated testing
         | of web-applications within modern browsers are all lacking in
         | some critical way, for example while Cypress automates Chrome
         | fine, for some reason it loads the entire SUT into an
         | <iframe>!!!! That alone will introduce massive differences from
         | production, top-level browsing (the project is full of hacks
         | that do things like re-write `window.top` so that the SUT can
         | almost believe it's not running in an iframe, but enough
         | differences leak through).
         | 
         | For all the effort Google put into Angular's Protractor, Chrome
         | does not make this easy.
        
           | margaretdouglas wrote:
           | The issue isn't that the testing is challenging. The ask here
           | is Netflix covers all third-party Chrome plugins that
           | manipulate the playback experience. Is it really Netflix's
           | job to ensure all changes are compatible with third party
           | tools like the one linked here, or others like Language
           | Reactor?
        
             | davidzweig wrote:
             | If they wanted to, it wouldn't be much work for them to
             | provide a stable API for such tools. Mostly it would
             | involve making certain functions/properties that are
             | internal to their modules/closures available on a global
             | object. For Language Reactor, it would be helpful to have a
             | handful of stable classes or ids on different HTML
             | elements, and an email when major changes are incoming.
             | Even just to have access to the new code early on in the
             | rollout would be nice. There is a frantic two weeks every
             | year where LR is breaking for users and we can't debug,
             | because we don't have the new code yet.
        
           | jefftk wrote:
           | I've been pretty happy with the WebDriver protocol:
           | https://developer.mozilla.org/en-US/docs/Web/WebDriver
           | 
           | Works across browsers and lets you simulate the user and
           | check anything you want.
        
             | muro wrote:
             | Sure, it's technically possible, just very unstable.
        
         | tyingq wrote:
         | I think that's true for many things Netflix does, but wrapping
         | the seeking event handler for HTMLMediaElement with private
         | state specifically to catch unexpected seek events seems like
         | it would be known to break 3rd parties. That's fine, of course,
         | they aren't claiming to support a public api. But it doesn't
         | seem accidental or some oversight.
        
           | surajrmal wrote:
           | Any change to frontend behavior will likely break someone at
           | Netflix's scale. They are likely desensitized to breaking
           | these things, otherwise they would never make any changes.
        
             | tyingq wrote:
             | That's roughly what I was saying. It wasn't an oversight or
             | accident.
        
         | PragmaticPulp wrote:
         | I agree. We ran into this issue all of the time at a past
         | employer with a lot of tech enthusiasts in the customer base:
         | We'd make harmless changes to our own code that broke someone's
         | community software that relied on undocumented APIs from time
         | to time. Without fail, someone from the community would jump to
         | conclusions and start stirring up controversy with claims that
         | we were deliberately breaking 3rd-party applications.
         | 
         | The strange thing was that people from all over the internet
         | wanted to get in on the controversy and anger, even when they
         | didn't use the software that broke. This created a weird
         | incentive for software authors to complain loud and wide about
         | any breaking changes because it became free advertising for
         | their software. We tried quietly helping some of them fix their
         | software with hints, but that quickly became an avenue for
         | "<company> caves to pressure from angry customers" stories that
         | only made our problem worse.
        
           | devwastaken wrote:
           | That's the problem, the company didn't publicly engage with
           | their users that needed it. A simple intent to ship with a
           | list of changes related to API's is a great start. The
           | employees should be using the most popular of the user made
           | software. That's how organic communities function. The
           | problems occur when company thinks theyre God and their
           | software is controllable - it's not. People are going to use
           | it as they see fit, and if you don't Shepard it that
           | community will find their owns reasons for why the company
           | ignores it.
        
             | wdb wrote:
             | There is typically a reason when APIs are not documented.
             | There are no guarantees given it will keep working etc
        
             | parineum wrote:
             | >A simple intent to ship with a list of changes related to
             | API's is a great start.
             | 
             | So the controversy can start sooner?
             | 
             | >The problems occur when company thinks theyre God and
             | their software is controllable - it's not.
             | 
             | This isn't some github project. This is proprietary
             | software owned by Netflix. This isn't "the community"
             | getting upset, this is a small group of people using closed
             | source software in a way that wasn't intended. Most people
             | using Netflix just use it the way Netflix wants them to.
        
           | ssivark wrote:
           | Fascinating. I'm curious what were the landscape of MOs
           | you/company evaluated. Eg: would it have been possible to
           | encourage a slightly more organized relationship with the
           | enthusiasts by communicating the challenges to them?
        
             | PragmaticPulp wrote:
             | It's tough. I engaged with the community a lot at first and
             | we made efforts to give them what they wanted.
             | 
             | Over time this created a weird, unhealthy dynamic where
             | parts of the community felt entitled to special treatment
             | from the company. Some of them felt like they were
             | stakeholders in the company and that we were obligated to
             | incorporate them into the development process.
             | 
             | At worst, it reminded me of some of the "parasocial"
             | relationships described in social media situations, where
             | the followers start to feel like they were owed much more
             | than regular customers due to their dedication as super
             | customers. Even worse, some of them had their own YouTube
             | channels, newsletters, or Discord communities for our
             | products and would often threaten to turn them against us
             | if we didn't do what they wanted. That part was especially
             | saddening.
        
               | ssivark wrote:
               | Hmmm, that's interesting in an unfortunate way that can
               | only be learned from experience. I have wondered about
               | why companies don't better engage with enthusiasts /
               | power users, and now I have a better appreciation for the
               | challenges. Thanks for sharing.
        
           | AnthonyMouse wrote:
           | The cause of the problem here is generally that you didn't
           | provide (or adequately document) a reasonable API to do that
           | thing.
           | 
           | If you did, and the third party was fishing through your
           | internals to do it instead, they're the assholes. That's
           | generally more work than reading API documentation so if the
           | API exists people are likely to use it, which should make
           | this rare.
           | 
           | But if fishing through your internals was the only way to do
           | it, maybe change that if your goal is to not hear from so
           | many angry people after you move things around.
           | 
           | Expect people to use the undocumented unstable interface if
           | the documented stable interface doesn't exist or doesn't
           | work.
        
             | phist_mcgee wrote:
             | But how do you do that with the web? If someone is digging
             | into the actual source of the site, that's on them. But
             | that doesn't mean our team has time to provide and support
             | an API for 3rd parties.
        
             | bastawhiz wrote:
             | Especially if the service is free, it's not reasonable for
             | companies to bend over backwards to build, support, and
             | maintain an API. One can expect users to build on
             | undocumented and unstable interfaces, but they shouldn't
             | expect the care one might receive if they had a contract to
             | support that functionality.
        
           | azinman2 wrote:
           | You're touching on a wider huge problem for society now:
           | people make assumptions that ascribe malice when there is
           | none (and/or vastly misunderstand something), and the
           | internet lets this amplify and morph into bigger issues than
           | should exist.
           | 
           | When social networking was nascent, there was this assumption
           | that decentralized voices would help get truth out faster
           | than could ever happen, and the principals of democracy would
           | flourish. While that sometimes happens, it seems more often
           | than not public opinion falls victim to conspiracy theories
           | aided by cognitive biases (especially confirmation bias) and
           | those who purposefully wish to distort.
           | 
           | What's saddest to me is that I've come to the conclusion that
           | the genie cannot be put back in the bottle. We cannot expect
           | that technology will go backwards, and the only viable option
           | is the China one of absolute information control, which
           | itself is scary. Those who do not adopt this will be
           | vulnerable to outside control and inside dark forces, and
           | those who do will create a censorship authoritarian state.
        
             | AnthonyMouse wrote:
             | > We cannot expect that technology will go backwards, and
             | the only viable option is the China one of absolute
             | information control, which itself is scary.
             | 
             | There is an obviously better alternative, which is non-
             | centralized moderation.
             | 
             | This is HN. It's moderated. It's not moderated by a
             | government or Mark Zuckerberg and it has no monopoly on the
             | dissemination of information, so if you don't like the
             | moderation here you can go somewhere else and there are in
             | actual fact other places to go.
             | 
             | That works.
             | 
             | The real problem right now is that the biggest platforms
             | are too big/centralized, which means you get chokepoints
             | that attract hamfisted bureaucratic censorship instead of
             | vigorous competition for high quality moderation.
        
               | azinman2 wrote:
               | Except it doesn't. It falls victim to all the same
               | things. I've seen things posted with all kinds of
               | conspiracy theories that I happen to have intimate
               | knowledge of from where I've worked, and those theories
               | are dead wrong. They're a combination of not knowing
               | about public information, not being able to understand it
               | (outside of skill set), not bothering to do research
               | before stating opinions and amplifying (upvoting) things
               | that sound right but are in fact not, incorrectly
               | connecting dots that are unrelated, bringing in false
               | "facts", stating opinions as facts that others assume are
               | then facts, and a host of other issues.
               | 
               | If all you're depending on is others to upvote and
               | downvote, then you information bubbles are easy to form.
               | Facebook is notoriously bad for exactly this reason, as
               | are forums that attract certain demographics /
               | ideologies.
        
           | semi-extrinsic wrote:
           | https://xkcd.com/1172/
        
             | vertis wrote:
             | We could save everyone a lot of time commenting on HN just
             | by auto categorizing by XKCD.
        
           | ferdowsi wrote:
           | At a previous company we had someone angrily call in with a
           | bug. We had moved a button several pixels and this broke some
           | automation they had built which relied on the pixel
           | coordinates of the button. It was exactly as dumb as it
           | sounded.
           | 
           | So I don't see much reason for Netflix have a deprecation
           | cycle for undocumented functionality that a third party
           | extension relies on. If you want to rely on internals, don't
           | be surprised when they change.
        
             | zmj wrote:
             | > At a previous company we had someone angrily call in with
             | a bug. We had moved a button several pixels and this broke
             | some automation they had built which relied on the pixel
             | coordinates of the button.
             | 
             | This is part of why Windows doesn't update the old Control
             | Panel screens - the UI is the API for automation like this,
             | and backwards compatibility matters more than consistency.
        
               | Cyphase wrote:
               | I don't find that particularly hard to believe, but do
               | you have a reference for this?
        
               | MaxBarraclough wrote:
               | A slight tangent: I know I'm not the only one who
               | considers the old control panels to be far superior to
               | the new ones, even if Microsoft disagrees.
               | 
               | The new UIs won't allow you to keep open the Bluetooth
               | config panel at the same time as the Windows Update
               | config panel, for instance, as they share the One True
               | Config Window. You can only view one at a time. A little
               | ironic for an operating system named for its ability to
               | run multiple UIs at once.
               | 
               | Fortunately many of the old config UIs are still there on
               | Windows 10, especially for more advanced points of
               | configuration.
               | 
               | I imagine the old UIs are also more resource-efficient,
               | for what that's worth, following the usual trend with UI
               | toolkits.
        
             | spaceribs wrote:
             | I'm specifically trying to avoid a bad integration though,
             | the API for <video> is quite clear for how to interact with
             | a <video> element hosted on a page, as defined by the HTML5
             | spec.
             | 
             | This is the issue I have with this change, I'm following
             | all the rules here and those rules apply to every video
             | provider on the web for rendering video.
             | 
             | While I don't think it was purposeful, it certainly needs
             | to be called out that crashing the entire page is certainly
             | nonstandard behavior for a <video> element.
        
             | syshum wrote:
             | At my company humans will complain if you move a button
             | because most people operate on their own muscle memory, any
             | time Microsoft, or some other software vendors moves a
             | button, no matter how small, we get ends less complains,
             | automation is not needed.
             | 
             | For automation, this is likely because you company did not
             | provide proper official API do to proper automation. Many
             | companies do not, nexflix does not. So people have to hack
             | around internals to make the things do what they want.
             | 
             | I am still at a loose why companies, and devs are such
             | control freaks they only want people to use their software
             | / hardware in the exact way they want them do, offering no
             | other control options, automation API;s or any other
             | "power" features". It is their way or the highway... and
             | screw you if you do not like it
        
               | x0x0 wrote:
               | To give you some perspective from a user:
               | 
               | The GSuite (or whatever they call it these days) google
               | groups UI is hot garbage. However, I finally figured out
               | how to open a group -- effectively a mailing list -- to
               | the public internet. This was carefully documented in our
               | internal wiki because, again, UI is hot garbage.
               | 
               | Google has too many PMs, so someone decided to go screw
               | with the UI. It is now not much easier, but it is
               | different, so I had to spend another hour figuring out
               | how to do the same thing. For your "convenience" as a
               | customer, the change has invalidated the vast majority of
               | help text on the internet helping users work around the
               | deficiencies in Google's UI.
               | 
               | And that is why users hate change: the previous UI might
               | not have been good, but we'd already figured out how to
               | use it. So a change creates work with zero benefit to us.
        
               | syshum wrote:
               | Yea, I love Microsoft Documentation [/s]. There has been
               | more than a few times I have been trying to do something
               | in azure, following the official Microsoft documentation
               | which says something like "Click this button, then in the
               | submenu choose X" except the button is not there, and the
               | submenu has been moved....
        
           | bob1029 wrote:
           | > that only made our problem worse.
           | 
           | This is the part of PR that I fail to grasp. At a certain
           | point, couldn't you just post "fuck you" on twitter and
           | disregard the noisy mess? Would 100% of everyones' customer
           | base _actually_ walk away from them if they don 't play "the
           | game" on social media just right?
        
             | toast0 wrote:
             | Been there. Basically, ignoring twitter and press pretty
             | much works. If you have a working customer service
             | mechanism, you need to be ready to respond there with a
             | brief note of something like 'this use is not supported by
             | us, bye', and once you have that note, you _might_ consider
             | responding to press with that.
             | 
             | You might want to engage with 3rd party developers, but
             | it's clear that it would quickly become much more work than
             | supporting in-house clients. When the server team
             | unintentionally breaks an in-house client, they don't start
             | a big distracting PR war about it; and when an in-house
             | client unintentionally breaks the server, there's leverage
             | to fix the client (or the server) and insight into how the
             | fixed client deployment is going.
             | 
             | It can also be difficult to fix sensitive or just complex
             | issues in a coordinated way when there's unequal access as
             | happens with in-house and 3rd party development. Being non-
             | transparent is easier; although certainly less desirable to
             | many.
             | 
             | If you have a compelling product, people often don't follow
             | through on their plans to drop it.
        
             | fighterpilot wrote:
             | What I'd be afraid of is fake review brigading causing
             | lasting damage to brand.
        
           | SahAssar wrote:
           | I tag those commits with "spacebar heating":
           | https://xkcd.com/1172/
        
         | nindalf wrote:
         | Comment sections are no fun if we're going to assume good
         | intent of people we don't know. I suggest we ignore this
         | reasonable explanation and start a frenzied campaign against
         | this obviously malicious change.
        
           | margaretdouglas wrote:
           | I feel like I'd find this comment more humorous if it wasn't
           | a parody of what is actually happening.
        
         | TeMPOraL wrote:
         | > _It probably wasn 't intentional, just incidental._
         | 
         | The reason people assume intent is because such things often
         | enough _are_ intentional. Making your product harder to
         | interoperate with outside of your control is a well-established
         | practice for SaaS companies, particularly the big ones[0].
         | 
         | The reason this blog post has a story is not because this
         | behavior is surprising, but because it's annoying, and because
         | it can be construed as an accessibility issue - accessibility
         | being the only excuse for having sane computing experience that
         | won't be dismissed as "silly power users with their silly
         | wishes".
         | 
         | --
         | 
         | [0] - See e.g. the lengths to which Facebook goes to make it
         | hard to work with its DOM.
        
           | Secretmapper wrote:
           | To be fair, Facebook has very deep incentives to do this (ie.
           | to prevent adblocking)
           | 
           | I'm not sure what such incentive is here for Netflix
        
         | spaceribs wrote:
         | I actually tend to agree with this take honestly. If I was an
         | Architect over at netflix implementing QoE, and all my minions
         | were making calls directly to the html element for seeking
         | instead of using the API I created, I'd want to catch that
         | regression quickly too.
         | 
         | That said, there is no public API for that functionality beyond
         | the DOM element for anyone else, so I'm not sure what was
         | expected for any sort of integration.
        
       ___________________________________________________________________
       (page generated 2021-10-17 23:01 UTC)