12,994 karma · joined June 4, 2008
I have never, in around four decades of living, had an actual need to determine the mass of a given volume of water, or the volume of a given mass of water.
When cooking, I routinely need to split some quantity of an ingredient into thirds or quarters.
Yet I am also constantly told that I'm ignorant and backwards and irrational for preferring a system that optimizes for the latter, rather than for the former. Base 12 is genuinely better for many real-world applications than base 10, those applications are more common in the lives of non-scientists than the applications metric is optimized for, and I doubt you're going to be able to produce a rational argument otherwise.
For example, in 1991 a Boeing 737-200 crashed in Colorado with the loss of all lives on board. In 1994 there was another crash of a 737, in Pennsylvania, again killing everyone on board. In both accidents the investigation pointed to unexpected movement of the rudder.
Several other cases were identified where pilots claimed the rudder was moving unexpectedly, but they were able to land safely.
The follow-up took several years of investigative work, and eventually identified a situation where a servo could jam and deflect the rudder.
Despite two severe crashes and many other suspected non-fatal incidents, that generation of 737s was not grounded; the remedy, once the cause had been determined, was an order from the FAA to replace the servos, with a timeline by which the replacement had to be completed.
To be clear: you're suggesting that grounding an entire type of aircraft, either worldwide or even just within US airspace, is a common response to accidents?
I ask because the last general grounding of a type was in 2013 to remedy the 787 battery issues. Prior to that, the last such grounding was the DC-10 in 1979.
Even if there is real support available, the reputation for a horrible lack of it is so entrenched I don't see how they'll overcome it.
"Oops, the algorithm decided to wipe out your business. No, you can't talk to a human. No, you can't appeal it and there's no review, and we can't tell you why, because the algorithm said so" is something Google has gotten away with for years with many of their services. But it's going to wreck them as they keep moving into spaces where people expect a level of support commensurate with the amount of money they're paying. Even if there is real support available, the reputation for a horrible lack of it is so entrenched I don't see how they'll overcome it.
It has a lot to do with the desire to work around limits on the number of in-flight connections allowed to a single host, which is one of the primary things HTTP/2 is designed for.
I suppose that's one way of putting it.
Currently, the home page at www.google.com wants to do twenty-five requests in order to show me an interface consisting of a text input and two buttons. Google decided to fundamentally redesign HTTP to accommodate their own inability to impose any kind of discipline on their programmers. I don't see this as a good thing.
Do you believe that a poor black kid from Detroit is only different in "surface traits" as compared to a rich white kid from Orange County?
Or would you be willing to concede that there may be reliable correlations between some "surface traits" and diversity of life experiences and viewpoints? Demographic analysis of things like voting patterns in the US seems to suggest differences of such magnitude that I doubt you'd find another factor more strongly predictive.
3 of the last 5 full-time jobs I've had were in health care. Which comes with at the very least HIPAA and, depending on the exact type of health stuff you do, possibly other training, every year in order to show compliance with relevant laws and regulations.
I've never been told "if you don't do the training we penalize your performance review". I have been told "if you don't do the training, you don't work here".
Which is why Python uses a solution that ensures fixed-width data. There's never a need to worry if a code point will extend over multiple code units of the internal storage model, because the way Python now handles strings ensures that won't happen.
I really think a lot of your problem with this is not actually with the string type, but with the existence of a string type. You want to talk in terms of bytes and indexes into arrays of bytes and iterating over bytes. But that's fundamentally not what a well-implemented string type should ever be, and Python has a bytes type for you (rather than a kinda-string-ish-sometimes type that's actually bytes and will blow up if you try to work with it as a string) if you really want to go there.
Python strings are not iterables of characters. They're iterables of Unicode code points. This is why leaking the internal storage up to the programmer is problematic; prior to 3.3, you'd routinely see artifacts of the internal storage (like surrogate pairs) which broke the "strings are iterables of code points" abstraction.
e.g. functions to obtain substrings rather than array indexes
Strings are iterables of code points. Indexing into a string yields the code point at the requested index. While I'd like to have an abstraction for sequences of graphemes, strings-as-code-points is not the worst thing that a language could do. And all the "just use this thing that does exactly the same thing with a different name because I want indexing/length but also want to insist people don't call them that" is frankly pointless.
At one point his office was forced to actually investigate and look for fraud, and what they found... were wealthy people -- typically Republican voters -- who owned properties in multiple locations and were voting at each of those locations.
Absentee/mail-in ballots make that kind of fraud much easier, but despite it being the only fraud he ever found, Kobach never pushed for any kind of purge of multiple-property-owning voters from the rolls, or ID checks for mailed-in ballots. Wonder why...
This gets all the benefits people usually want from "just use UTF-8", and then some -- strings containing only code points in the latin-1 range (not just the ASCII range) take one byte per code point -- and also keeps the property of code units being fixed width no matter what's in the string. Which means programmers don't have to deal with leaky abstractions that are all too common in languages that expose "Unicode" strings which are really byte sequences in some particular encoding of Unicode.
And more: the argument consists of digging deeper and asking why, in the past decade, such a sudden, incredible, apocalyptically urgent need has arisen for in-person checks at polling places, with no equivalent need for ID checks with absentee/mail-in ballots.
Fraud with mail-in ballots would be orders of magnitude easier to pull off. Why don't states with draconian polling-place ID laws also have draconian ID laws for mailed-in ballots? Why, in those states, don't you need to bring multiple proofs of identity, residence and citizenship to a notary to stamp your ballot in triplicate before mailing it in? If fraud really was what they were worried about, they'd be consistent across these types of ballots. They aren't.
Also it's worth looking into the whole package of policies that usually comes with these rules. It's not just ID rules; it's a particular kind of ID, and a particular set of paperwork requirements, and closing down ID-issuance offices in certain locations, and closing down polling places in certain locations, and reducing hours for voting at the locations that remain open, and... well, let's just say meditate on that and you'll figure out what "problem" is being solved. If you're still not convinced, just go read the defenders of these policies, in their own words, in court filings, explaining why they're doing this.
Voting is fundamental enough that it should only be restricted in the event of pressing, urgent, demonstrated, proven issues, and only the absolute minimum restrictions should be put in place. Voter ID doesn't "solve" any such issue, and is not the minimum necessary restriction in any event (there are already mechanisms for challenging suspected fraudulent voting, if you're truly worried about that).
Nothing is stopping you from going out and putting together get-out-the-vote efforts for "independents". Nothing is stopping you from emulating this model in a way you feel is less distasteful. The only person stopping you is you. If you feel this is a major issue, why aren't you doing anything about it?
Have you considered being a better person? Rushing to "well actually" someone else over even the tiniest omission in something they say is not a positive character trait. What you should do is immediately and permanently and irrevocably stop doing it.
But then I decided I wanted to live in a world where people don't need to write a Ph.D. thesis with a hundred pages of footnotes covering every conceivable logically-possible eventuality just to make a simple point.
And that's without getting into the issue where you've just effectively rolled back CDA 230. Why shouldn't sites be able to make and enforce rules for the use of their platforms? And how small can a platform be and still have you put the government's gun to its head and force them to act the way you want? If I run a web site where people can discuss things, are you going to send a SWAT team to my house and have them shoot me unless I stop kicking out Nazis?
For all the hand-wringing you want to do over what is, in the end, an exercise of the right of free association (which includes the right not to associate), you seem completely unconcerned with the kinds of horrific consequences that would come from forcing everyone to provide a platform to the whole world. So maybe first you should practice what you preach -- start tithing in support of causes you hate, listening to lectures in support of those causes, and going out in public carrying signs and banners for those causes. After all, by not doing that, you're already censoring them, and that's horrible!
And that freedom includes the freedom to say "I don't want to be associated with you".
Any "anti-deplatforming" is, of necessity, forced unwilling speech. Which is sort of the opposite of what "free speech" people should be standing up for. If someone doesn't want to lend you their soapbox, the solution is not to put a gun to their head and order them to hand it over; it's to go build your own soapbox. And if enough people are unwilling to associate with you that it's becoming burdensome to maintain your soapbox (difficulty getting materials, etc.), perhaps that's a sign from the marketplace of ideas that your ideas aren't very good.
You're welcome to your humble opinion.
Your opinion is not generally accepted, though. The most common definitions of static versus dynamic typing boil down to whether both names and values have types and those types must be compatible (static) or whether only values have types and no checking for compatibility with names is required (dynamic). That is:
a = 3
a = 'foo'
The above probably fails in a statically-typed language, because 'a' will be a name of a type incompatible with the value 'foo'. In a dynamically-typed language it's perfectly OK.There are a few airlines that fly all-premium configurations on certain routes. Singapore does that on the Singapore-Newark route. British Airways does it on London City to New York. SAS used to on the Houston to Stavanger route.
But the moral of the story is it's not as simple as "selling the seat is always better".
As stated, you seem to be implying that selling a ticket for 1 cent is better than flying an empty seat. But that's not guaranteed to be true. If they put someone in that seat at a ticket cost of 1 cent, does it cost more than 1 extra cent in fuel to move the now-increased weight of the aircraft? If there's a free soda or something offered, does the extra one they serve cost more than 1 cent? Does the extra time it takes to board that passenger cost more than 1 cent? Does the sum of all of those things cost more than 1 cent?
There absolutely are circumstances in which flying the empty seat is better than selling that seat at the price the market would have borne. And we know this, because we know that airlines routinely fly planes that aren't full, instead of going to extreme lengths to auction off ever-cheaper tickets in hopes of getting someone in every seat on every flight.
(and that's without getting into the fact that not all seats, tickets, aircraft and routes are equal in terms of what they cost to operate and how much money they can make, and all the other things that go into the arcane art of airline yield management)
It makes perfect sense. Just not to a lot of HN readers.
The average HN reader is approaching this from a perspective of "I am a professional programmer who might occasionally dabble in scientific computing, and therefore I hate this thing because it's not a professional programmer's tool designed by and for professional programmers according to the best practices of professional programmers".
The people who are actually using notebooks, meanwhile, are not professional programmers. They're scientists who increasingly have to do programming as part of their science. And notebooks are a godsend for them. We don't need to drag them all the way into our world; we need to pay attention to what they actually want, need, and find useful, and accept that it's going to differ from what we want, need, and find useful.
Asking because people in these kinds of threads often seem to get suspiciously selective about when and why they decide to argue for stripping the right of free association -- and disassociation -- from others.
Those people, in turn, tend to believe that people like me should be forcibly rounded up into camps, gassed, and then cremated or dumped into mass graves.
Do you really and truly believe, deep in your heart of hearts, that these are exactly perfectly identically equivalent positions? That both of them consist of "eliminating" opponents? Because from where I'm sitting, only one "side" is advocating for actual literal violent mass extermination of the people they don't like.
Yes, that's what a suggestion algorithm is.
There is no pure Platonic ideal neutral objective suggestion algorithm. Every suggestion algorithm is going to have biases based on both its training data and the goals (explicit or otherwise) of its creators.
You've gotten as far as, apparently, noticing that tweaking the algorithm after the public has seen it constitutes a choice on the part of the designers about what they do and don't want to show you. Now take the final logical step, and observe that they already made choices about what they do and don't want to show you in the initial design, before the algorithm ever went public.
If you have a problem with the former, I don't see how you can be logically consistent while not having a problem with the latter.