Saturday, February 4, 2017

Stuff I'm reading, early February edition

It's raining.

That's good.

And, also good, the rain doesn't keep me away from duh 'netz...

  • Unexpected Consequences of Self Driving Cars
    [1] Interestingly, many pedestrians reward good behavior by drivers. Getting on the main street or off of the main street from or onto a small side street can often be tricky for a driver. There are often so many people on the sidewalks that there is a constant flow of foot traffic crossing the exits or entrances of the side streets. Drivers have to be patient and ready for a long wait to find a break. Often pedestrians who have seen how patient a driver is being will voluntarily not step into the cross walk, and either with a head or hand signal indicate to a driver that they should head through the crossing. And if the driver doesn’t respond they make the signal again–the pedestrian has given the turn to the driver and expects them to take it.

    ...

    [2] This is one for the two (autonomous) car family. Suppose someone is going to an event in the evening and there is not much parking nearby. And suppose autonomous cars are now always prowling neighborhoods waiting for their owners to summon them, so it takes a while for any particular car to get through the traffic to the pick up location. Then the two car family may resort to a new trick so that they don’t have to wait quite so long as others for their cars to get to the front door pick up at the conclusion of the big social event. They send one of their cars earlier in the day to find the closest parking spot that it can, and it settles in for a long wait. They use their second car to drop them at the event and send it home immediately. When the event is over their first autonomous car is right there waiting for them–the cost to the commons was a parking spot occupied all day by one of their cars.

  • How Google fought back against a crippling IoT-powered botnet and won
    In September, KrebsOnSecurity—arguably the Internet's most intrepid source of security news—was on the receiving end of some of the biggest distributed denial-of-service attacks ever recorded. The site soon went dark after Akamai said it would no longer provide the site with free protection, and no other DDoS mitigation services came forward to volunteer their services. A Google-operated service called Project Shield ultimately brought KrebsOnSecurity back online and has been protecting the site ever since.

    At the Enigma security conference on Wednesday, a Google security engineer described some of the behind-the-scenes events that occurred shortly after Krebs asked the service for help, and in the months since, they said yes.

  • How Is 'Non-Literally Copying' Code Still Copyright Infringement?
    The notion of "non-literal copying" as applied to code is a weird one, and casts a light on how weird code copyright is to begin with. If copyright isn't supposed to cover functional choices, how can it be infringing to create new code that accomplishes the same function in a slightly different way? Are juries supposed to determine which "non-literally copied" aspects of the code were aesthetic, and which were purely functional? This sort of idea-expression divide question is muddy in the worlds of art and literature, but it should be simple in the world of code: what a program does is not covered by copyright, nor are any purely functional elements of how it achieves that.
  • The Zenimax vs Oculus trial is over
    There are objective measures of code similarity that can be quoted, like the edit distance between abstract syntax trees, but here the expert hand identified the abstract steps that the code fragments were performing, made slides that nobody in the courtroom could actually read, filled with colored boxes outlining the purportedly analogous code in each case. In some cases, the abstractions he came up with were longer than the actual code they were supposed to be abstracting.

    It was ridiculous. Even without being able to read the code on the slides, you could tell the steps varied widely in operation count, were often split up and in different order, and just looked different.

    The following week, our side’s code expert basically just took the same slides their expert produced (the judge had to order them to be turned over) and blew each of them up across several slides so you could actually read them. I had hoped that would have demolished the credibility of the testimony, but I guess I overestimated the impact.

    Notably, I wasn’t allowed to read the full expert report, only listen to him in trial, and even his expert testimony in trial is under seal, rather than in the public record. This is surely intentional -- if the code examples were released publicly, the internet would have viciously mocked the analysis. I still have a level of morbid curiosity about the several hundred-page report.

  • Back-to-Basics Weekend Reading - Bloom Filters
    Bloom Filters, conceived by Burton Bloom in 1970, are probabilistic data structures to test whether an item is in a set. False positives are possible, but false negatives are not. Meaning, if a bit in the filter is not set, you can be sure the item is not in the set. If it is in the set, the mapped item may be in the set.

    This is a hugely important technique if you need to process and track massive amounts of unique data units, as it is very space-efficient. From Dynamo and Postgresql, to HBase and Bitcoin, Bloom Filters are used in almost all modern distributed systems.

  • Addressing 2016
    Obviously, the device population of the Internet continues to grow but it appears that most of the growth of the network is occurring behind various forms of IPv4 Network Address Translators (NATs). These devices are then largely invisible to the public network, so efforts to track their population are challenging. The deployment of these devices behind NATS places very little in the way of pressures on address consumption. While the Internet may have absorbed in 2016 a production quantity of some 270 million personal computers, 1.8 billion smart phones and a further 1.8 billion connected devices, that does not mean that there has been a demand for some 4 billion additional IP addresses. Part of this volume has replaced older equipment, and almost all these additional devices find themselves positioned behind NATs, making only minor demands on the overall address structure. The total drain on the remaining unallocated IPv4 address pool was just 22 million addresses for 2016.

    This was the issue that IPv6 was primarily intended to solve. The copious volumes of address space were intended to allow us to uniquely assign a public IPv6 address to every such device, no matter how small, or in what volume they might be deployed. Why this has not happened so far, and why we are still concentrating a significant proportion of our efforts on stretching IPv4 to encompass ever larger population of attached devices is a critical question.

  • Top ten pull request review mistakes
    Diffs are really great for showing you what has changed. But that’s the thing! By definition they don’t show you what hasn’t changed. Be on the lookout for changes which should have been applied more widely, like a find/replace that maybe didn’t cover the entire codebase.

    Or a change that only hit a subset of the components it should have.

  • About <Programming>
    The International Conference on the Art, Science, and Engineering of Programming is a new conference focused on everything to do with programming including the experience of programming. We’ve named it <Programming> for short. Papers are welcome from any part of the programming research lifecycle, as are papers on programming practice and experience.
  • Things Every Hacker Once Knew
    This document is a collection of facts about ASCII and related technologies, notably hardware terminals and RS-232 and modems. This is lore that was at one time near-universal and is no longer. It’s not likely to be directly useful today - until you trip over some piece of still-functioning technology where it’s relevant (like a GPS puck), or it makes sense of some old-fart war story. Even so, it’s good to know anyway, for cultural-literacy reasons.
  • What's with the "programming test"!?
    knowing how to implement a file copy function without an understanding of why you would implement a file copy function is where the red ink is set free. I’m appalled that companies still see the “programming test” as a viable way to vet talent. In fact, unless the job you’re going for involves writing software that directly talks to the file system as part of its core capabilities, then the correct response from a candidate should be, “Um, I’d just use a framework”. That’s why development communities far and wide have frameworks; it’s so you don’t have to give a toss about System.IO.File blah blah blah during a job interview!
  • Stupid Interview Questions
    Look, I’m sorry if you feel put-upon here, please don’t get hostile. I’m just trying to get a clear picture of the specs I need here. Obviously if I’m going to write a file copy method, instead of using one of the many extant file copy routines in various libraries and frameworks, it’s going to be fulfilling a specialized set of requirements, and I’m going to need to have good answers for these questions. If you want, I can hack something together in a minute, but I’d have to note that there were many unresolved issues as to requirements and purposes.
  • The Trillion Internet Observations Showing How Global Sleep Patterns Are Changing
    The new database also allowed the team to study global sleep patterns. They did this by assuming that the switch from a device being online to offline corresponds with a person going to sleep (and vice versa). “The association need not be exact, instead a systematically leading or lagging relationship carries the required information,” say Ackermann and co. They then crunch the data for people in more than 600 cities around the world (having calibrated it against data gathered by the American Time Use Survey).

    The result is the first global estimate of overnight sleep duration in 645 cities over seven years, and it makes for interesting reading. “In general, major cities tend to have longer sleeping times compared to surrounding satellite cities,” say the team.

    But they say there is evidence that sleep patterns are changing, perhaps due to technology use. “Whilst North America has remained largely static over the study window, Europe sleep duration has declined, and East Asian sleep duration has grown,” they say. By this reckoning, global sleep patterns are converging. Exactly why is a fascinating open question.

  • Sinking Millennium Tower safe to live in, city report concludes
    The report, based on inspections on Dec. 2, 2016, and Jan. 11, found “visual evidence of the effect of settlement on some electrical wiring support systems.”

    The report noted that electrical “raceways” — large tubes that serve as conduits for wires and cables — are under stress in an area of the basement where the 58-story high-rise part of the structure meets the adjacent 12-story podium. Inspectors also found “evidence of water intrusion” in the fifth level of the basement “affecting installed electrical wiring and electrical components.”

    The report concluded that electrical systems were “working adequately” and that the deficiencies were “not inherent to the electrical systems installed but represent the need for an engineering solution to the building settlement issues.”

  • Canada Will Not Go Gently
    None of this is new to us. Racial intolerance and ethnic hatred lies at the very foundation of Canadian democracy. We are not strangers to it. Far from being untouched by it, its scars run deep and are still raw. Our nation was founded by white men of property who restricted the franchise to others like them. In the early years of this province, these same men kept themselves in power through violence and fear. They jailed dissenters, hanged traitors, and worked to exclude others from the protection of the law. As explored in this recent piece in The Walrus, as the nation grew up, the same brutal, racist tendencies that motivated Canada to engage in a cross-generational genocide of its First Nations peoples visited indignities on the Irish, blacks, Eastern Europeans, Chinese, Japanese, Sikhs, Jews, and Tamils who tried to settle here. We had our share of racial fear-mongering and riots, of racist bans and head-taxes. We worked to keep the others out. We made it hard for immigrants to succeed and thrive.

    But, having just opened my third pint, I am now going to self-righteously assert that this has always been a country that was founded on a set of core legal principles, on strong institutions and a deep and stubborn commitment to the rule of law. Maybe it is the cold, but unlike the warmer climes to the south, we’ve tended to draw together to survive, to work to heal our wounds over time. And while our courts, our governments, our civic institutions, our public schools and our citizens, have had their weak moments, they’ve come to lead the charge against intolerance. They’ve been at the frontlines of fighting racism. I’m not saying its perfect here. I’m not saying we don’t have issues with racism and intolerance. I’m not saying there do not remain some painful and unresolved legacies. But we’ve developed the habit of working through them. Slowly, sometimes too slowly, but we work through them.

And, finally: alas, Schrodinger's Cat Carrier is sold out.

No comments:

Post a Comment