Thursday, August 1, 2019

Stuff I'm reading, mid-summer edition

Here you go, stuff you might or might not find interesting, too.

  • DMV Strike Team Final Report
    the DMV is facing historic and unprecedented surges in demand. This increased demand has been primarily driven by the following:
    • Stringent federal identification requirements to obtain a REAL ID, which require an in-person visit to a DMV field office.
    • Motor Voter opt-out requirements, which have greatly increased the workload of DMV staff.
    The Strike Team focused its efforts on improving the processes surrounding REAL ID, with the expectation that increased efficiencies in REAL ID transactions would then translate to other areas of the DMV.

    It is clear that changes are essential if the DMV is to meet its most immediate challenge: successfully meeting increased demand for REAL ID driver licenses before the October 1, 2020 federal deadline

  • The Best Refactoring You've Never Heard Of
    We did a four step process to go from the recursive to the iterative version. First, we made it CPS so these functions appeared. And then we defunctionalized those functions. So now we have these two mutually recursive functions passing around this continuation object. We inlined one to the other. Now it's tail recursive; it becomes a loop. But, of course, the inlining is just kind of moving things around, so we can do the tail-recursion elimination. The big insight that made this all possible, the real workhorse of this transformation, was to defunctionalize the continuation!
  • Cryptographic Attacks: A Guide for the Perplexed
    Over the years, the landscape of cryptographic attacks has become a kudzu plant of flashy logos, formula-dense whitepapers and a general gloomy feeling that everything is broken. But in truth, many of the attacks revolve around the same few unifying principles, and many of the interminable pages of formulas have a bottom line that doesn’t require a PhD to understand.
  • Operating a Large, Distributed System in a Reliable Way: Practices I Learned
    This post is the collection of the practices I've found useful to reliably operate a large system at Uber, while working here. My experience is not unique - people working on similar sized systems go through a similar journey. I've talked with engineers at Google, Facebook, and Netflix, who shared similar experiences and solutions. Many of the ideas and processes listed here should apply to systems of similar scale, regardless of running on own data centers (like Uber mostly does) or on the cloud (where Uber sometimes scales to). However, the practices might be an overkill for smaller or less mission-critical systems.
  • Distributed Locks are Dead; Long Live Distributed Locks!
    For the impatient reader, here are the takeaways of this blog post:
    • FencedLock is a linearizable distributed implementation of the java.util.concurrent.locks.Lock interface with well-defined execution and failure semantics. It can be used for both coarse-grained and fine-grained locking.
    • FencedLock replicates its state over a group of Hazelcast members via the Raft consensus algorithm. It is not vulnerable to split-brain problems.
    • FencedLock tracks liveness of lock holders via a session mechanism that works in a unified manner for both Hazelcast servers and clients.
    • FencedLock allows 3rd-party systems to participate in the locking protocol and achieve mutual exclusion for the side-effects performed on them. This is the “fenced” part of the story.
    • FencedLock is battle-tested with an extensive Jepsen test suite. We have been testing its non-reentrant and reentrant behavior, as well as the monotonicity of the fencing tokens. To the best of our knowledge, FencedLock is the first open source distributed lock implementation that is tested with such a comprehensive approach.
  • Making Containers More Isolated: An Overview of Sandboxed Container Technologies
    The main difference between a virtual machine (VM) and a container is that the VM is a hardware-level virtualization and a container is a OS-level virtualization. VM hypervisor emulates a hardware environment for each VM, where the container runtime emulates an operating system for each container. VMs share the host’s physical hardware and containers share both the hardware and the host’s OS kernel. Because containers share more resources from the host, their usages of storage, memory, and CPU cycles are all much more efficient than a VM. However, the downside of more sharing is the weaker trust boundary between the containers and the host.
  • Testing the CP Subsystem with Jepsen
    Running a Jepsen test on a distributed database is like sneaking up on Superman with kryptonite while he is trying to overcome his biggest challenge. Jepsen subjects the database to various system failures while running a test case and checks whether the database is able to maintain its consistency promises. It can create chaos in many ways: make a single node or multiple nodes crash or hiccup, partition the network, or even make clocks go crazy.
  • BPF Performance Tools
    This is the official site for the book BPF Performance Tools: Linux System and Application Observability, published by Addison Wesley (2019). This book can help you get the most out of your systems and applications, helping you improve performance, reduce costs, and solve software issues. Here I'll describe the book, link to related content, and list errata.
  • Why the dockless scooter industry is going after a repossessor and a bike shop owner
    On July 1st, the City of San Diego implemented new regulations to address the scooter complaints. The regulations will require scooter companies to obtain insurance policies, free the city from all legal liability, cap speeds on the boardwalk, and obtain permits for every scooter in circulation. It’s still too early to tell whether the new regulations will make a difference.

    “We are aware that people are still riding on sidewalks, we are aware that people are colliding into people and then taking off,” San Diego Police Department Lt. Shawn Takeuchi says.

  • The Near Impossible 20-Year Journey to Translate 'Fire Emblem: Thracia 776'
    Take one common problem with fan localizations: the sheer efficiency of Japanese. You can say a lot more with fewer characters in Japanese than English. Naturally, the game’s dialogue boxes were specifically programmed with Japanese in mind, not English. When a localizer drops the dialogue translated into English, there A) might not be space for the dialogue to fit, and B) if you go over the programmed character limit, the game could crash.
  • One giant ... lie? Why so many people still think the moon landings were faked
    t took 400,000 Nasa employees and contractors to put Neil Armstrong and Buzz Aldrin on the moon in 1969 – but only one man to spread the idea that it was all a hoax. His name was Bill Kaysing.
  • The 100 Best Movies of the Decade
    Cinema is in a constant state of flux, but it’s never mutated faster or more restlessly than it has over the last 10 years. And while the decade will no doubt be remembered for the paradigm shifts precipitated by streaming and monolithic superhero movies, hindsight makes it clear that the definition of film itself is exponentially wider now than it was a decade ago. Places. Products. Mirrors. Windows. Reflections of who we are. Visions of who we want to be. A way of capturing reality. A way of changing it. If the most vital work of the 2010s has made one thing clear, it’s that movies have never been more things to more people than they are today. And our week-long celebration list of the Best Films of the 2010s has us more excited than ever about what they might be to you tomorrow.
  • Billie Eilish and the Triumph of the Weird
    Eilish has conquered the music world in part by doing everything she’s not supposed to. Her music is darker and weirder than that of most teen pop stars, with a gothy, punkish, vaguely sinister edge and nary a hint of bubblegum. For her core teen-girl fan base, she’s like the cool senior in art class who dresses and acts the way they wish they could: stylish, outrageous, maybe a little dangerous. (As her hit single “Bad Guy” puts it, “I’m the bad type, make-your-mama-sad type. . . might-seduce-your-dad type.” You get the sense that she’d love to be a “Parents Beware” segment on the 11:00 news.) Her vibe is both semi-nihilist and joyously defiant, a perfect soundtrack for a generation facing a half-dozen existential threats before first period. But she’s also playful, mischievous, vulnerable, alienated, melancholy — in other words, a teen.
  • The Ham of Fate
    What he honed in his Brussels years is the practice of political journalism (and then of politics itself) as Monty Python sketch. He invented a version of the EU as a gigantic Ministry of Silly Walks, in which crazed bureaucrats with huge budgets develop ever more pointlessly complicated gaits. (In the original sketch, the British bureaucrats are trying to keep up with “Le Marché Commun,” the Common Market.) Johnson’s Brussels is a warren of bureaucratic redoubts in which lurk a Ministry of Dangerous Balloons, a Ministry of Tiny Condoms, and a Ministry of Flavorless Crisps. In this theater of the absurd, it never matters whether the stories are true; what matters is that they are ludicrous enough to fly under the radar of credibility and hit the sweet spot where preexisting prejudices are confirmed.

No comments:

Post a Comment