1. 3
    1. 2

      Why did it end?

      1. 3

        What makes you think it had ended?

        1. 1

          How many of us actually read these articles in a magazine-format nowadays?

        1. 1

          Unfortunately, while the headline is clever, it’s not true.

          Palantir’s worst is done with code written in house, with the same open source codebase we all start with. So long as there are people willing to work there, bad things are going to be written into code and deployed.

          1. 15

            One note, the specific company wasn’t Palantir, but was in a similar space.

            I agree that not serving this company has a very small effect on them, but it was better than the alternative. Additionally, if enough companies refuse to work with companies like Palantir, it would begin to hinder their efforts.

            1. 8

              not serving this company has a very small effect on them

              It has a big effect, instead. On the system. On their employees. On your employes and your customers…

              Capitalism fosters a funny belief through its propaganda (aka marketing): that humans’ goals are always individualistic and social improvements always come from collective fights. This contraddiction (deeply internalized as many other disfunctional ones) fool many people: why be righteous (whatever it means to me) if it doesn’t change anything to me?

              It’s just a deception, designed to marginalize behaviours that could challenge consumerism.

              But if you cannot say “No”, you are a slave. You proved to be not.

              And freedom is always revolutionary, even without a network effect.

              1. 1

                Sounds like it was https://www.wired.com/story/palmer-luckey-anduril-border-wall/ ? Palantir at least has some positive clients, like the SEC and CDC.

              2. 4

                But….that wasn’t his moral question? He was being offered a chance to be a vendor of services to a palantir-like surveillance outfit engaged in ethnic cleansing, not offered a job with a workstation. So yeah, the headline was absolutely true. It is up to individuals to refuse, and by publicly refusing to engage, not necessarily internally, they will inspire others to not profit by these horrors.

                1. 0

                  It wasn’t. But the quip implies that we can act like a village, when the sad truth is that the low barrier to entry in software development means we can’t really act like a village, and stop people with our skillset from putting vile stuff into code.

                  1. 3

                    yeah, not really understanding this from the original post. and for the record the low barrier to entry is absolutely not what is allowing people to put vile stuff in code. extremely talented, well educated, highly intelligent people do horrifying stuff every single day.

                    1. 1

                      This is the best attitude one can desire from slaves. Don’t question the masters. It’s pointless.

                      1. 1

                        We can act like a village, we just can’t act like the entire population. Choosing not to work at completely unethical places when we can afford it does at the very least increase the cost and decrease the quality of the evil labor. Things could even reach a point where the only people willing to work there are saboteurs.

                  1. 3

                    From this I got to Baugh and Altuntas, “Formal Methods and Finite Element analysis”…

                    Which is blowing my mind right now.

                    1. 3

                      That was pretty interesting. You should submit that Wednesday or Thursday if there’s a non-paywalled copy.

                      1. 3

                        There is, and I’m slowly working my way through it to write a blog post. THis is way more interesting as an introduction to model checking compared to the usual examples of the rower with the dog,duck, and sack of corn.

                    1. 11

                      Looks like I will be migrating off from Github onto something self hosted, for peace of mind.

                      1. 2

                        Yea, looks like I need to do that too.

                        1. 1

                          Until now I treated self-hosting with “well I know it’s best to control my own files and code, but I can probably vaguely trust BigCompanies.”

                          Thanks to the acquisition I finally got off my ass and got a DO droplet to use as my source of truth (didn’t take long to set up at all).

                          Gitlab is my primary mirror. I will keep GitHub as a source of truth for a handful of projects - namely the ones with contributions from other developers.

                          1. 1

                            Even though MIcrosoft hasn’t done anything egregious to irk me in about 8 years, I will also be doing that.

                          1. 3

                            A message veiled into a personal learning story to make it more palatable. I would not care much, but it scratches an itch.

                            We got a slight tests vs. type checking going in the middle of the lines. These subjects should not be dumped together because you may also do Python without any tools and get along just fine.

                            My opinion about types and type checking has changed as well, but it has grown to very different direction than the posters. I also have had some sort of enlightenment going along. I am a die-hard dynamic-typing proponent. I did not need a static type system, and I neither needed tests. The author had to work with something else than Python to form his opinion. I had to go into other direction, deeper into Python and finally into my own improved variation of Python.

                            If type checking is sound, and if it is decidable, then it must be incomplete. I’ve realized this is really important as the set of correct and useful programs that do not pass a type checker is large. Worse, often these are the most important sort of programs that spares a person from stupid or menial work.

                            “If it compiles, it works” and “type system make unit tests unnecessary” are hogwash. It doesn’t really matter how much you repeat them or whether you clothe them into a learning story. There was a recent post pointing out how difficult it is to construct a proof that some small program is actually correct. This means you cannot expect that program works or is correct despite that it types correctly in any language.

                            There is an aspect that is required for making computation and logical reasoning possible in the first place. That is in recognizing variant and invariant parts of the program. I’ve realized that spamming variants is the issue in modern dynamically typed languages. That cannot be solved by adding type annotations because you still have tons of variables in your code that could theoretically change. And you really have to check whether they do, otherwise you have not verified that your program is correct.

                            Statically typed languages commonly do better in keeping variances smaller, but they are also stupid in the sense that they introduce additional false invariants that you are required to satisfy in order to make the type checking succeed. And you cannot evaluate the program before the type checker is satisfied. This is an arbitrary limitation and I think people defending this for any reason are just dumb. Type checker shouldn’t be a straitjacket for your language. It should be a tool and only required when you’re going to formally verify or optimize something.

                            During working on software I’ve realized the best workflow is to make the software work first, then later validate and optimize. Languages like Python are good for the first purpose while some ML-variants are good for the middle, and for the optimization C and similar are good. So our programming languages have been written orthogonal, to cross with the workflow that makes most sense.

                            1. 20

                              the set of correct and useful programs that do not pass a type checker is large

                              If it’s large then you should be able to give a few convincing examples.

                              1. 5

                                I haven’t had the problem the quote implies. The basic, type systems were about enforcing specific properties throughout the codebase and/or catching specific kinds of errors. They seem to do that fine in any language designed well. When designers slip up, users notice with it becoming a best practice to avoid whatever causes protection scheme to fail.

                                Essentially, the type system blocks some of the most damaging kinds of errors so I can focus on other verification conditions or errors it can prevent. It reduces my mental burden letting me track less stuff. One can design incredibly-difficult, type systems that try to do everything under the sun which can add as many problems as they subtract. That’s a different conversation, though.

                                1. 1

                                  This set includes programs that could be put to pass a type checker, given that you put extra work into it, or use a specific type checker for them. Otherwise that set is empty: For every program you can construct such variation where the parts that do not type check are lifted outside from the realm of the type checker. For example. stringly typed code.

                                  The recipe to construct a program that does not pass a type checker is to vary things that have to be invariant for the type checker. For example, if you have a function that loads a function, we cannot determine the type for the function that is produced. If the loaded function behaves like an ordinary function, it may result in a dilemma that you may have to resolve either by giving it some weird different type that includes the idea that you do not know the call signature, or by not type checking the program.

                                  Analogous to the function example: If you define creation of an abstract datatype as a program, then you also have a situation where the abstract datatype may exist, but you cannot type the program that creates it, and you will know the type information for the datatype only after the program has finished.

                                  And also consider this: When you write software, you are yourself doing effort to verify that it does what you want. People are not very formal though, and you will likely find ways to prove yourself that the program works, but it does not necessarily align with the way the system thinks about your program. And you are likely to vary the ways you use to conclude the thing works because you are not restricted to just one way of thinking about code. This is also visible in type systems that themselves can be wildly different from each other, such that the same form of a same program does not type in an another type system.

                                  I think for the future I’ll try to pick up examples of this kind of tricky situations. I am going to encounter them in the future because in my newest language I’ll have a type inference and checking integrated into the language, despite that the language is very dynamic by nature.

                                  There is some work involved in giving you proper examples, and I think people have already moved to reading something else when I finish, but we’ll eventually resume to this subject anyway.

                                  1. 6

                                    Looking forward to seeing your examples, but until then we don’t have any way to evaluate your claims.

                                    About your function loading example, that may or may not be typeable, depending on the deserialisation mechanism. Again, can’t really say without seeing an example.

                                    1. 6

                                      When you write software, you are yourself doing effort to verify that it does what you want.

                                      That’s exactly why I find type systems so useful. I’m doing the effort when writing the code either way; types give me a way to write down why it works. If I don’t write it down, I have to figure out why it works all over again every time I come back to the code.

                                  2. 6

                                    A message veiled into a personal learning story to make it more palatable.

                                    Why do you think this is veiled message instead of an actual personal story?

                                    1. 5

                                      If type checking is sound, and if it is decidable, then it must be incomplete.

                                      Only if you assume that some large set of programs must be valuable. In my experience useful programs are constructive, based on human-friendly constructions, and so we can use a much more restricted language than something Turing-complete.

                                      1. 1

                                        If type checking is sound, and if it is decidable, then it must be incomplete.

                                        That’s not a bug. That’s a feature.

                                        If you can implement a particular code feature in a language subset that is restricted from Turing completeness, then you should. It makes the code less likely to have a security vulnerability or bug. (See LangSec)

                                      1. 3

                                        As much as Ted comes across as a cross between Grampa Simpson and the crazy cat lady, he has a lot of good ideas that would probably have been really successful if he’d applied them to source code rather than spending his life rallying against the WWW and fighting about patents and such.

                                        1. 2

                                          Yeah, he made a big mistake by not learning to code back in the 60s when he first had the opportunity.

                                          1. 2

                                            As a humanist, Ted Nelson is absolutely brilliant, and we would all benefit greatly if he could get his ideas implemented further.

                                            As a programmer or manager of programmers, unfortunately, he doesn’t seem to grasp just why his ideas are not easily feasible.

                                            1. 1

                                              There’s a few major problems:

                                              • The infrastructure he’s advocating is serious work to implement with any sort of performance, if it could be done at all on a world-wide scale.
                                              • Any user interface cooked up by his teams over the years has been, ah… “not great”
                                              • Most browsing / writing users will never need 99% of the functionality his structures give you, and will certainly never pay the price of the cognitive load those features bring with them.

                                              But, those features (tracking transclusions, advanced versioning and two-way links, etc) would be super-useful for source code, and programmers are the kinds willing to give up some ease of use for power- I mean, most of us use git, and some weirdos even like it.

                                              Edit: Additionally, when limited to an individual or limited group of codebases, the performance issues could be solved over time as the software was applied to larger corpuses (corpii? I dunno)

                                              1. 4

                                                I don’t think performance in infrastructure is much of an issue here. The basic structures are pretty easy to implement, once you understand them. (In fact, since leaving the project, I’ve done open source versions of several.)

                                                There are a couple things getting in the way of wider adoption.

                                                1. Ted still approaches the project like he’s running a software company in the 80s, although the developers are as far as I know all volunteers. So, technical details that might catch the imagination of developers are often kept secret or simply not publicized in useful ways.

                                                A lot of these technical details are things worked out decades ago that make the infrastructure side trivial and performance good.

                                                One of these days I’d like to give a conference lecture or something explaining the difference between outsider’s views of how certain xanadu concepts would naturally be implemented (often based on the web or based on an understanding of client/server or something) and how different internal prototypes actually work, because it would be eye-opening for a lot of people.

                                                1. Ted still thinks he can become a middle-man in this system and make a healthy profit. (Had things gone better at Autodesk, this probably would have been true. But, he’s in his 80s now.)

                                                Having open source & fully or mostly peer to peer implementations (using IPFS or another CAN/NDN for storage) would make everybody’s lives easier here, but would make it impossible to turn it into a subscription service, because nobody would need hosting.

                                                1. Demos don’t get circulated until they meet pretty high standards of UI polish, from Ted’s point of view – and Ted likes a lot of glitz and glamor, even when it’s tacky. (He wore a purple tuxedo to his own wedding, at which he sang show-tunes.)

                                                Results: (1) all public demos look tacky, (2) almost all internal work never gets released, (3) internal work that is more functional gets passed over for release in favor of less-functional stuff that makes use of 3d or translucency or has smooth animations.

                                                1. There are a lot of bad, confusing, & incomplete explanations of Xanadu concepts floating around, mostly because it was determined that (even in a book like Literary Machines) it was too much to throw at somebody at once. But, all the core concepts are deeply intertwingled in a way where implementing one of them in isolation without understanding how the others work with it is liable to produce an underwhelming result.

                                                For instance, transclusion is the basis for versioning and for remixing, and without it, transcopyright would be stupid; transclusion itself would fall apart if we didn’t use overlay/external markup, which itself is based on overlay links. So, at the very least, to implement any part of a transliterature system, you need to understand: transclusion, EDLs, and overlay links. All of that also relies upon permanent addresses with static content, etc.

                                                Somebody who sees some of these ideas in isolation will try to tack it on to web concepts like host-based URLs, embedded SGML-like markup, and view-based versus ownership-based micropayments, and will fail miserably because web tech is incompatible with hypertext on a fundamental level several times over & the limitations are awkward to work around.

                                                1. Ted wants creative control, but he’s not organized enough to be a good manager, and he’s working with volunteers.

                                                (He’s not a bad manager in the sense of being abusive or anything. He just misplaces spec documents on a regular basis and rewrites them from memory with tiny sometimes-accidental changes, is sometimes late for meetings or forgets about them entirely, gets side-tracked discussing Stanley Kubrick or cellular automata during meetings, forgets about previous instructions or forgets to send instructions, or other essentially ADHD-related issues.)

                                                Since he’s working with volunteers, he gets some pushback on the creative control angle, which can be upsetting when the person he’s working with also doesn’t have a strong understanding of the fundamentals of translit, because he often gets pushback in the direction of breaking translit and making it more like the web.

                                          1. 3

                                            Far too dad-brained to do anything ambitious this week. So my goal is simple: learn how to process errors in Rust when I write wrappers that get a Result and return a Result, without calling unwrap, and without discarding data from the Error structs.

                                            And of course it must build. I believe this translates to getting good with error-chain.

                                            1. 1

                                              With INRIA and INP in France, making so much progress on formal verification, I’d say this has a good chance of succeeding.

                                              1. 2

                                                I could be misunderstanding something, but wouldn’t any implementation of a two-way link system (where each link must be aware of another) require either (A) a centralized authority or (B) majority decentralized consensus, necessarily opening the door to censorship?

                                                Could Xanadu not be accomplished with some kind of file spec/protocol and rich transclusion rules (i.e. PDF but with a standard way to “refer” to other entities by hash)? Why are two-way links even necessary for the functioning of Xanadu as described?

                                                1. 5

                                                  Why are two-way links even necessary for the functioning of Xanadu as described?

                                                  Because Nelson thinks that the links should never get invalidated by a single end point, and because he thinks that nothing in the system should ever be copied, but always linked to or transcluded.

                                                  It’s an interesting thought. Think how the digital world would be if you could always find the original source of everything? What if the original creator would always get rewarded (even in a very small way) for being transcluded? It’s not necessarily a world I’d think is ideal, but interesting nevertheless.

                                                  1. 3

                                                    Because Nelson thinks that the links should never get invalidated by a single end point, and because he thinks that nothing in the system should ever be copied, but always linked to or transcluded.

                                                    When I was an undergrad, I relied on AFS and FrameMaker for a lot of assignments, and that was precisely how I collaborated with other students.

                                                    It worked for some things. BUt it’s part of why AFS didn’t become the Web.

                                                    1. 1

                                                      Content-addressed networks like IPFS make it straightforward without centralized coordination. We don’t care about linking to the “original source” in the sense of “original host” – just that we have truly-immutable associations between address and content.

                                                      (I should note that, last I heard, IPFS wasn’t being used internally in Xanadu projects except experimentally. I pushed for it hard when I was involved, and so did Brewster Kahle. Mostly, we relied on conventional HTTP caches of documents originally fetched by HTTP, either storing them ourselves or relying on the Internet Archive to ensure they didn’t change under us. But, everybody involved is aware of IPFS so I expect IPFS support to eventually appear – probably once we can figure out how to coordinate a guaranteed minimum number of pinned copies of any given document.)

                                                  2. 2

                                                    Two-way link systems don’t require either centralized authority or majority decentralized consensus. The sides don’t need to be “aware of each other” because they are together – the documents involved don’t need to know about the links they are associated by. (Consider something like RapGenius. The documents being annotated don’t know about the annotations. Nobody would see any annotations unless they checked for them. The same is true with hypertext.)

                                                    Two-way links are literally easier than one-way links. After all, you can create them without permission from any of the parties involved in the original documents, keep them secret and distribute them to only your friends, distribute “OJAS’s 100 BEST LINKS OF 2018” packs to show off how clever you are at connecting Proust to the Plan9 documentation, etc.

                                                    Meanwhile, since links usually refer to underlying source text in a transclusion (rather than the context in which the link was created), even the tail ends of links you yourself created can be meaningfully surprising & interesting when you read transcluded content in a different context.

                                                    1. 2

                                                      The documents being annotated don’t know about the annotations. Nobody would see any annotations unless they checked for them. The same is true with hypertext.

                                                      Thanks, this made it click.

                                                      1. 1

                                                        No problem. It’s a really common misunderstanding, probably due to how TBL did it in the web. (I think Enquire used a central database, which is only marginally better.)

                                                  1. 6

                                                    Since we have the law tag on this, I’ll be the one to suggest it:

                                                    Autonomous car designs should be required to have a sign-off from a licensed Professional Engineer.

                                                    1. 16

                                                      To quote another HN comment:

                                                      LIDAR aside, computer vision and a raw video feed is more than enough to have prevented this collision.

                                                      Exactly! Engineers designing autonomous cars are required to account for low-visibility conditions, even way worse than what this video shows (think hail, rain, dust, etc.). This was easy! And yet the car made no signs of slowing down.

                                                      EDIT: twitter comments like this pain me. People need to be educated about the capabilities of autonomous cars:

                                                      She is walking across a dark road. No lights even though she has a bike. She is not in a cross walk. Not the car’s fault.

                                                      Yes it was the car’s fault. This is shocking, extraordinary behavior for an autonomous car.

                                                        1. 9

                                                          In reality, both the pedestrian and the car (and Uber) share some responsibility. You shouldn’t cross a four lane road at night wearing black outside of a crosswalk. A human driver is very unlikely to see you and stop. Not blaming the victim here, just saying it’s easier to stay safe if you don’t do that. However, the promise of autonomous cars with IR and LIDAR and fancy sensors is that they can see better than humans. In this case, they failed. Not to mention the human backup was very distracted, which is really bad.

                                                          From the video I don’t think a human would have stopped in time either, but Uber’s car isn’t human. It should be better, it should see better, it should react better. Automatic collision avoidance is a solved problem already in mass-market cars today, and Uber failed it big time. Darkness is an excuse for humans, but not for autonomous cars, not in the slightest.

                                                          She should still be alive right now. Shame on Uber.

                                                          1. 18

                                                            You can’t conclude that someone would not have stopped in time from the video. Not even a little. Cameras aren’t human eyes. They are much much worse in low visibility and in particular with large contrasts; like say those of headlights in the dark. I can see just fine in dark rooms where my phone can’t produce anything aside from a black image. It will take an expert to have a look at the camera and its characteristics to understand how visible that person was and from what distance.

                                                            1. 9

                                                              From the video I don’t think a human would have stopped in time either, but Uber’s car isn’t human.

                                                              Certainly not when distracted by a cell phone. If anything, this just provides more evidence that driving while distracted by a cell phone, even in an autonomous vehicle, is a threat to life, and should be illegal everywhere.

                                                              1. 9

                                                                Just for everyone’s knowledge you’re 8 times as likely to get in an accident while texting, that’s double the rate for drinking and driving.

                                                                1. 6

                                                                  He was not driving.

                                                                  He was carried around by a self driving car.

                                                                  I hope that engineers at Uber (and Google, and…) do not need me to note that the very definition of “self driving car” is a huge UI flaw in itself.

                                                                  That is obvious to anyone who understand UI, UX or even just humans!

                                                                  1. 5

                                                                    She was driving . The whole point now of sitting in a driver seat for a TEST self driving car is for the driver to take over and overcome situations like this.

                                                                    1. 6

                                                                      No, she was not.

                                                                      Without this incident, you would have seen soon a TV spot precisely with a (hot) business woman looking at the new photos uploaded on Facebook by her family. With a voice saying something like: ’we can bring you to those you Like”.

                                                                      The fact that she was paid to drive a prototype does not mean she was an experienced software engineer trained to not trust the AI and to keep continuous control of the car.

                                                                      And indeed the software choosed the speed. At that speed the human intervention was impossible.

                                                                      Also the software did not deviate, despite the free lane beside and despite the fact that the victim had to traversate that lane, so there was enough time for a computer to calculate several alternative trajectories or even simply to alert the victim via light signaling or sounds.

                                                                      So the full responsibility must be tracked back to people at Uber.

                                                                      The driver was just fooled to think that he could trust the AI by an stupidly broken UI.

                                                                      And indeed the driver/passenger reactions were part of the Uber’s test.

                                                                      1. 2

                                                                        Looking at your phone while riding in the drivers seat is a crime for a reason. Uber’s AI failed horribly and all their cars should be recalled, but also the driver failed. If the driver had not been looking at their phone literally any action at all could have been taken to avoid the accident. It’s the responsibility of that driver to stay alert with attention on the road not looking at your phone or reading a book or watching a film, plane pilots do it every single day. Is their attention much more diminished? Yes of course it is. Should we expect literally 0 attention from the “driver”, absolutely no we should not.

                                                                        1. 5

                                                                          Do you realize that the driver/passenger reactions were part of the test?

                                                                          This is the sort of self driving car that Uber and friends want to realize and sell worldwide.

                                                                          And indeed I guess that the “driver” behaviour was pretty frequent among the prototypes’ testers.

                                                                          And I hope somebody will ask Uber to provide in court the recording of all the tests done so far to prove that they did not know drivers do not actually drive.

                                                                          NO. The passenger must not be used as a scapegoat.

                                                                          This is an engineering issue that was completely avoidable.

                                                                          The driver behaviour was expected and desired by Uber

                                                                          1. 4

                                                                            You’ve gotta stop doing this black and white nonsense. Firstly stop yelling. I’m not using the passenger as a scapegoat so I don’t know who you’re talking to. The way the law was written it’s abundantly clear that this technology is to be treated as semi autonomous. That does not mean that Uber is not negligent. If you are sitting in a driver’s seat and you’re watching harry potter while your car drives through a crowd of people you should be found guilty of negligence independent of any charges that come to both the lead engineers and owners of Uber. You have a responsibility to at least take any action at all to prevent deaths that otherwise may be at no fault of your own. You can’t just lounge back while your car murders people, and in the same respect when riding in the drivers seat your eyes should not be on your phone, period.

                                                                            Edit: That image is of a fully autonomous car, not a semi-autonomous car. There is actually a difference despite your repeated protestations. Uber still failed miserably here, and I hope their cars get taken off the road. I know better than to hope their executives will receive any punishment except maybe by shareholders.

                                                                            1. -1

                                                                              I guess you are not an engineer, Nor a programmer.

                                                                              This is simply an engineering view about UI and UX (that actually are part of my daily job).

                                                                              There’s no way that a human used to see a car drive correctly for hours will keep continuous control of the car without driving.

                                                                              The human brain notoriously does not work that way.
                                                                              If I drive I keep continuous attention and control of the car. If somebody else drive, I do not.

                                                                              Also I’m stating that Uber was trying to see if people can trust autonomous cars.
                                                                              I’m stating that the incindent was not the first time a tester was recorded while looking at the phone during self drive and that Uber knew that and expected that.

                                                                              1. 3

                                                                                I guess you are not an engineer, Nor a programmer.

                                                                                This isn’t the first time you’ve pulled statements out of a hat as if they are gospel truth without any evidence and I doubt it will be the last. I think your argument style is dishonest and for me this is the nail in the coffin.

                                                                                1. 0

                                                                                  I’m not sure I understand what you mean…

                                                                                  The UI problem is really evident, isn’t it?

                                                                                  The passenger was not perceiving herself as a driver.

                                                                                2. 2

                                                                                  If there is “no way” a human can do this, then we’ve certainly never had astronauts pilot a tiny spacecraft to the moon without being able to physically change position, and we certainly don’t have military pilots in fighter jets continuously concentrating while refueling in air on missions lasting 12 hours or more… or… or…. truck drivers driving on roads with no one for miles…or…

                                                                                  Maybe Uber is at fault here for not adequately psychologically screening, and training its operators for “scenarios of intense boredom.”

                                                                                  1. 0

                                                                                    You are talking about professionals specifically trained to keep that kind of concentration.
                                                                                    And even a military pilot won’t maintain concentration on the road if her husband is driving and she knows by experience that his trustworthy.

                                                                                    I’m talking about the actual Uber’s goal here, which is to build “self driving cars” for the masses.

                                                                                    It’s just a stupid UI design error. A very obvious one to see and to fix.

                                                                                    Do you really need some hints?

                                                                                    1. Remove the car’s control from the AI and turn it into something that enhance the driver’s senses.
                                                                                    2. Make it observes the driver’s state and forbid to start in case of he’s drunk or too tired to drive
                                                                                    3. Stop it from starting if any of its part is not working properly.

                                                                                    This way the responsibility of an incident would be of the driver, not of Uber’s board of directors (unless factory defects, obviously).

                                                                                    1. 4

                                                                                      You’re being adversarial just to try to prove your point, which we all understand.

                                                                                      You are talking about professionals specifically trained to keep that kind of concentration. And even a military pilot won’t maintain concentration on the road if her husband is driving and she knows by experience that his trustworthy.

                                                                                      A military pilot isn’t being asked (or trained) to operate an autonomous vehicle. You’re comparing apples and oranges!

                                                                                      I’m talking about the actual Uber’s goal here, which is to build “self driving cars” for the masses.

                                                                                      Yes, the goal of Uber is to build a self driving car. We know. The goal of Uber is to build a car that is fully autonomous; one that allows all passengers to enjoy doing whatever it is they want to do: reading a book, watching a movie, etc. We get it. The problem is that those goals, are just that, goals. They aren’t reality, yet. And, there are laws in which Uber, and its operators must continue to follow in order for any department of transportation to allow these tests to continue–in order to build up confidence that autonomous vehicles are as safe, or (hopefully) safer than already licensed motorists. (IANAL, nor do I have any understanding of said laws, so that’s all I’ll say there)

                                                                                      It’s just a stupid UI design error. A very obvious one to see and to fix.

                                                                                      So, your point is that the operator’s driving experience should be enhanced by the sensors, and that the car should never be fully autonomous? I can agree to that, and have advocated for that in the past. But, that’s a different conversation. That’s not the goal of Uber, or Waymo.

                                                                                      The reason a pedestrian is dead is because of some combination of flaws in:

                                                                                      • the autonomous vehicle itself
                                                                                      • a distracted operator
                                                                                      • (apparently) a stretch of road with too infrequent cross walks
                                                                                      • a pedestrian jaywalking (perhaps because of the previous point)
                                                                                      • a pedestrian not wearing proper safety gear for traveling at night
                                                                                      • an extremely ambitious engineering goal of building a fully autonomous vehicle that can handle all of these things safely

                                                                                      … in a world where engineering teams use phrases like, “move fast and break things.” I’m not sure what development methodology is being used to develop these cars, but I would wager a guess that it’s not being developed with the same rigor and processes used to develop autopilot systems for aircraft, or things like air traffic controllers, space craft systems, and missile guidance systems…

                                                                                      1. 2

                                                                                        … in a world where engineering teams use phrases like, “move fast and break things.” I’m not sure what development methodology is being used to develop these cars, but I would wager a guess that it’s not being developed with the same rigor and processes used to develop autopilot systems for aircraft, or things like air traffic controllers, space craft systems, and missile guidance systems…

                                                                                        Upvoted for this.

                                                                                        I’m not being adversarial to prove a point.

                                                                                        I’m just arguing that Uber’s board of directors are responsible and must be accountable for this death.

                                                                                        1. 3

                                                                                          Nobody here is arguing that the board of directors should not be held accountable. You’re being adversarial because you’re bored is my best guess.

                                                                                        2. 2

                                                                                          Very well-said on all of it. If anyone is wondering, I’ll even add to your last point what kind of processes developers of things like autopilots are following. That’s things like DO-178B with so much assurance activities and independent vetting put into it that those evaluated claim it can cost thousands of dollars per line of code. The methods to similarly certify the techniques used in things like deep learning are in the protoype phase working on simpler instances of the tech. That’d have had to do rigorous processes at several times the pace and size at a fraction of the cost of experienced companies… on cutting-edge techniques requiring new R&D to know how to vet.

                                                                                          Or they cut a bunch of corners hacking stuff together and misleading regulators to grab a market quickly like they usually do. And that killed someone who, despite human factors, should’ve lived if the tech (a) worked at all and (b) evaluated against common, road scenarios that could cause trouble. One or both of these is false.

                                                                          2. 2

                                                                            I don’t know if you can conclude that’s the point. Perhaps the driver is there in case the car says “I’m stuck” or triggers some other alert. They may not be an always on hot failover.

                                                                            1. 11

                                                                              They may not be an always on hot failover

                                                                              IMO they should be, since they are testing a high risk alpha technology that has the possibility to kill people.

                                                                      2. 4

                                                                        The car does not share any responsibility, simply because it’s just a thing.

                                                                        Nor does Uber, which again is a thing, a human artifact like others.

                                                                        Indeed we cannot put in jail the car. Nor Uber.

                                                                        The responsibility must be tracked back to people.

                                                                        Who is ultimately accountable for the AI driving the car?

                                                                        I’d say the Uber’s CEO, the board of directors and the stock holders.

                                                                        If Uber was an Italian company, probably the the CEO and the boars of directors would be put in jail.

                                                                        1. 3

                                                                          Not blaming the victim here

                                                                          People often say this when they’re partly blaming the victim to not seem overly mean or unfair. We shouldn’t have to when they do deserve partial blame based on one fact: people who put in a bit of effort to avoid common problems/risks are less likely to get hit with negative outcomes. Each time someone ignores one to their peril is a reminder of how important it is to address risks in a way that makes sense. A road with cars flying down it is always a risk. It gets worse at night. Some drivers will have limited senses, be on drugs, or drunk. Assume the worst might happen since it often does and act accordingly.

                                                                          In this case, it was not only a four lane road at night the person crossed: people who live in the area on HN said it’s a spot noticeably darker than the other dark spots that stretches out longer. Implication is that there are other places on that road with with more light. When I’m crossing at night, I do two to three things to avoid being hit by a car:

                                                                          (a) cross somewhere where there’s light

                                                                          (b) make sure I see or hear no car coming before I cross.

                                                                          Optionally, (c) where I cross first 1-2 lanes, get to the very middle, pause for a double check of (b), and then cross next two.

                                                                          Even with blame mostly on car & driver, the video shows the human driver would’ve had relatively little reaction time even if the vision was further out than video shows. It’s just a bad situation to hit a driver with. I think person crossing at night doing (a)-(c) above might have prevented the accident. I think people should always be doing (a)-(c) above if they value their life since nobody can guarantee other people will drive correctly. Now, we can add you can’t guarantee their self-driving cars will drive correctly.

                                                                          1. 2

                                                                            Well put. People should always care about their own lifes.
                                                                            And they cannot safely assume that others will care as much.

                                                                            However note that Americans have learned to blame “jaywalking” by strong marketing campaigns after 1920.

                                                                            Before, the roads were for people first.

                                                                            1. 2

                                                                              I just saw a video on that from “Adam Ruins Everything.” You should check that show out if you like that kind of stuff. Far as that point, it’s true that it was originally done for one reason but now we’re here in our current situation. Most people’s beliefs have been permanently shaped by that propaganda. The laws have been heavily reinforced. So, our expectations of people’s actions and what’s lawful must be compatible with those until they change.

                                                                              That’s a great reason to consider eliminating or modifying the laws on jaywalking. You can bet the cops can still ticket you on it, though.

                                                                          2. 3

                                                                            In reality, both the pedestrian and the car (and Uber) share some responsibility.

                                                                            I’ve also seen it argued (convincingly, IMO) that poor civil engineering is also partially responsible.

                                                                          3. 3

                                                                            And every single thing you listed is mitigated by just slowing down.

                                                                            Camera feed getting fuzzy ? Slow down. Now you can get more images of what’s around you, combine them for denoising, and re-run your ML classifiers to figure out what the situation is.

                                                                            ML don’t just classify what’s in your sensor feeds. They also give you numerical measures for how close your feed is to the data they previously trained on. When those measures decline,, it could be because the sensors are malfunctioning. It could be rain’/dust/etc. It could be a novel untrained situation. Every single one of those things can be mitigated by just slowing down. In the worst case, you come to a full stop and tell the rider he needs to drive.

                                                                          1. 17

                                                                            Trying to finish a long running project: my e-ink computer.

                                                                            1. 3

                                                                              Amazing! Please keep us posted!

                                                                              Are you documenting the project anywhere else besides sporadic tweets?

                                                                              1. 4

                                                                                Yes, I document everything along the way. I do not like to publish about ongoing projects as I tend not to finish them when I do that :).

                                                                                Both the code and the CAD designs will be open sourced once the project will be finished.

                                                                                I also plan to write a proper blog post about it. I still need to figure out the proper way to do partial refresh with this screen and it should be more or less done (the wooden case still needs some adjustments).

                                                                                [Edit] Typos.

                                                                                1. 1

                                                                                  Same, I would definitely be interested in following the project progress.

                                                                                2. 2

                                                                                  Nice! What screen are you using, and how are you controlling it? Have you written any blog posts?

                                                                                  1. 2

                                                                                    It seems to be this one, same marks on the bottom corners and the shield looks the same:

                                                                                    https://www.waveshare.com/wiki/7.5inch_e-Paper_HAT

                                                                                  2. 1

                                                                                    Is that a raspi it’s hooked up to? Where did you buy the screen?

                                                                                    There is another guy doing e-ink stuff on the internet recently. You should go search for him. He is researching how to get decent refresh rates too.

                                                                                    Instead of creating a laptop-like enclosure, you should make a monitor-like enclosure. It will look way better and more reusable.

                                                                                    1. 1

                                                                                      So, one of the thigns that annoys me about this world is how we don’t have e-ink displays for lots of purposes that nowadays get done with a run of the mill tablet. You don’t need a tablet for things like a board that shows a restaurant menu, or tracking buses in the area. So why can’t I find reasonably sized E-ink displays for such purpses?

                                                                                      1. 1

                                                                                        Entirely agree with you.

                                                                                        I guess it can be explained by the fact that LCD screens have a better brightness, they are better to catch human eye attention.

                                                                                        The eink technology is bistable on the other hand, making it highly energy efficient for such applications - when no frequent updates are needed.

                                                                                        Energy is cheap nowadays, we don’t really care about energy consumption anymore. But I guess this might change past the peak oil.

                                                                                        I guess these techs will start developing as soon as energy becomes scarce and expensive.

                                                                                    1. 8
                                                                                      1. Learning me a Haskell. I’ve no interest in programming in Haskell, but it’s interesting to see the origin of some of the idiots I see in Rust. And I want to proceed from there to Learn Me An Agda so I can get some formal methods chops.

                                                                                      2. My dormant github portfolio.

                                                                                      1. 4

                                                                                        Did you mean to say “idiots in Rust” ? 😛

                                                                                        1. 4

                                                                                          No. THe only idiot I see in Rust is me. I meant idioms.

                                                                                          1. 2

                                                                                            They’d be the ones out of habit trying to profile the garbage collection of their Rust app, gripe about standard library’s pervasive lack of referential transparency, or insist Simon Peyton Jones does a talk on every new feature. That I haven’t seen these people doesn’t mean they don’t exist. ;)

                                                                                          2. 3

                                                                                            If you’re interested in formal methods, may I recommend starting with Alloy? It’s a very simple, but very powerful, formal specification language in the style of Z or B.

                                                                                            1. 1

                                                                                              It’s on my laptop and I have Daniel Jackson’s book. Agda, Alloy and TLA+ are what I’m concentrating on.

                                                                                          1. 3

                                                                                            At work, looking into our task scheduling system and making aspects of it more resilient and scalable.

                                                                                            Outside work, I’m beginning the gardening season by starting some seedlings; I’m also considering building a space bucket, because I’m curious to try peppers produced under those conditions alongside those grown in a container on a porch. I’m also going to put together a second Nyquist keyboard… and I might start reading Chateaubriand’s memoirs.

                                                                                            1. 1

                                                                                              If the system is Luigi, I’d like to trade notes. If it isn’t, I’d like to trade notes.

                                                                                              1. 1

                                                                                                The system is not Luigi… it’s an ad hoc thing built around APScheduler… We need decide whether to invest more effort making that work for a bit or look into the best way to move toward something else. It’s an interesting problem!

                                                                                            1. 1

                                                                                              A set of traits in Rust to map standard REST semantics to different contexts, among them Flickr, the local file system, CIFS, et cetera.

                                                                                              At work I’m preparing a set of Python tutorials for co workers who want to cross the divide from R.

                                                                                              1. 5

                                                                                                More Rust work, specifically on Rustwell, which is a slow plod, but I just started on something reasonably interesting: defining a CRUD trait that can then be implemented against any resource with CRUD semantics.

                                                                                                Plan is to implement a CRUD trait for the local filesystem and CIFS share first of all, and then move to a few RUST-based resources. Once it’s written, compiled, and tested, I hope to troll other Rustaceans into defining it properly.

                                                                                                1. 4

                                                                                                  Keeping my children fed is something I find meaningful.

                                                                                                  (That said, my company assists in financing wind projects, so there’s that too.)

                                                                                                  1. 3

                                                                                                    Same as last week: Rustwell, a Rust REST front end to Gnome Shotwell.

                                                                                                    Progress is slow as this is what I do just after I put my kdis to bed and before I go to bed, so progress is dad-brain paced.

                                                                                                    The reasons for it are that I want not just to have a full catalog of all my photos and videos, with duplicates detected, I want to know exactly where I have duplicates of my pictures, and the ability to have a consistent policy about it.

                                                                                                    And that policy should enable me to say “oh, that picture of my whiteboard at work should not have been backed onto Flickr because of company policy, let’s delete,” or “that picture was of a document containing PII, so it should not exist anywhere”, with Rustwell knowing what to do.

                                                                                                    20 minutes of work going into it every night, and now that it builds and runs, the coding-without-fear thing is really kicking in.

                                                                                                    1. 5

                                                                                                      Working on Rustwell

                                                                                                      I have two NAS boxes, a Linux laptop, and large disorganized collections of family photos scavenged from drives long dead, relatives dropping by with cameras, SD cards and phones to back up, et cetera.

                                                                                                      I tried to use Gnome Shotwell to unite them all, but had a lot of frustrations. So I want to do as follows:

                                                                                                      1. Write a Diesel & Rocket front end for the Shotwell SQLite database (In progress)
                                                                                                      2. Add two object tables to the database: a. An Object Location table, listing copies of every entry in the Shotwell video and photo tables. b. An Object Store table, storing enough meta data to enable listing copies on an arbitrary collection of NAS resources, as well as sites like Flickr, Shutterfly, Piwego, Amazon S3, et cetera.

                                                                                                      Then populate my DB, by scanning all my storage locations, and detecting duplicates so the Object Location row keys to the right rows in PhotoTable and VideoTable.

                                                                                                      I am writing this in Rust in hopes of having my BeagleBone board do the grunt work in the background regardless of what my laptop is doing.