Shared posts

16 Jan 19:48

I told you so, 2021 edition

by jwz
Cinnamon-screensaver got popped, again.

If you are not running XScreenSaver on Linux, then it is safe to assume that your screen does not lock.

The latest:

Previously:

You will recall that in 2004, which is now seventeen years ago, I wrote a document explaining why I made the design trade-offs that I did in XScreenSaver, and in that document I predicted this exact bug as my example of, "this is what will happen if you don't do it this way."

And they went and made that happen.

Repeatedly.

Every time this bug is re-introduced, someone pipes up and says something like, "So what, it was a bug, they've fixed it." That's really missing the point. The point is not that such a bug existed, but that such a bug was even possible. The real bug here is that the design of the system even permits this class of bug. It is unconscionable that someone designing a critical piece of security infrastructure would design the system in such a way that it does not fail safe.

Especially when I have given them nearly 30 years of prior art demonstrating how to do it right, and a two-decades-old document clearly explaining What Not To Do that coincidentally used this very bug as its illustrative strawman!

These bugs are a shameful embarrassment of design -- as opposed to merely bad code.

This same bug keeps cropping up in these other screen lockers for several reasons.

  1. Writing security-critical code is hard. Most people can't do it.

  2. Locking and authentication is an OS-level problem. And while X11 is at the heart of the OS of a Linux desktop computer, it was designed with no security to speak of, and so lockers have to run as normal, unprivileged, user-level applications. That makes the problem even harder.

  3. This mistake of the X11 architecture can never, ever be fixed. X11 is too old, too ossified, and has too many quagmire-trapped stakeholders to ever make any meaningful changes to it again. That's why people keep trying to replace X11 -- and failing, because it's too entrenched.

As always, these bugs are terrible because bad security is worse than no security. If you knew for a fact that your screen didn't lock, you would behave appropriately. Maybe you'd log out when you walked away. Maybe you wouldn't use that computer for certain things. But a security placebo makes you behave as if it's secure when in fact it is not.

One of the infuriating parts of these recurring bugs is that the screen-locker part of XScreenSaver isn't even the fun part! I do not enjoy working on it. I never have. I added it in response to demand and necessity, not because it sounded like a good time. I started and continue this project as an outlet for making art. I'd much rather be spending my time pushing triangles.

Sigh.

And in not-at-all-unrelated news:

Just to add insult to injury, it has recently come to my attention that not only are Gnome-screensaver, Mate-screensaver and Cinnamon-screensaver buggy and insecure dumpster fires, but they are also in violation of my license and infringing my copyright.

XScreenSaver was released under the BSD license, one of the oldest and most permissive of the free software licenses. It turns out, the Gnome-screensaver authors copied large parts of XScreenSaver into their program, removed the BSD license and slapped a GPL license on my code instead -- and also removed my name. Rude.

If they had asked me, "can you dual-license this code", I might have said yes. If they had asked, "can we strip your name off and credit your work as (C) William Jon McCann instead"... probably not.

Mate-screensaver and Cinnamon-screensaver, being forks and descendants of Gnome-screensaver, have inherited this license violation and continue to perpetuate it. Every Linux distro is shipping this copyright- and license-infringing code.

I eagerly await hearing how they're going to make this right.

Previously, previously, previously, previously, previously.

07 Jan 02:47

Amazon turns Victorian industrialist with $2bn building project to house workers near new headquarters

Welcome to the digital 1800s

In a striking parallel to model villages created by Victorian industrialists for their workers, Amazon on Wednesday announced it would spend $2bn building affordable housing near its three new headquarters.…

02 Jan 20:39

The Problem with the Inconsequential Quest

by slaporte
Mahmoud

i've noted this, too, most recently with this one: https://www.grubstreet.com/2020/12/2020-bucatini-shortage-investigation.html

only halfway through reading this article, but i'm thinking people like a "street-level" story every now and again, even if it's kinda personal blog-tier media.

30 Dec 01:02

Wikipedia's in trouble

by slaporte
Mahmoud

OK where does this guy get off

29 Dec 22:48

DNA Lounge: Wherein Brexit's going really well, too.

by jwz
It looks like musicians in the UK have finally noticed that the ongoing Brexit foot-gun disaster has turned "Europe" into a distant, foreign land that requires work visas. In other words, it will now be as difficult for a British band to play Paris or Berlin as it is for them to play San Francisco.

Welcome to The Colonies, you guys! We've been dealing with this shit forever. You have our sympathy.

Brexit will be "catastrophic" for British touring artists, music industry warns:

On fears that the state of play could become similar to that with the US, which recently increased visa costs by 50% with another potential 24% rise looming, Pritchard added: "The American touring model is interesting because it shows us just how costly touring can be for just wanting to play in one country.

"If you want to play a 10-date tour in five different countries across the continent and the costs are anything like what they are in the States, then you're looking at costs of £7,500 per person before you've even left the country. For a minimum touring party of four of you in the band and three in the crew, you're looking at about £45,000. You aren't going to cover that in fees and t-shirt sales." [...]

"If you take t-shirts to sell, then you'd be importing them into the EU and have to report what sold and what hasn't. There were tales from the pre-EU days where you'd take out four pairs of drumsticks, bring back three and they'd charge you for the pair that you'd broken at your gig in Belgium."

But they have a petition, so uh, good luck with that.

For those of you who don't realize what a nightmare it is for small, non-US bands to tour here, here's how it works... Or used to work. In the Before Times, when tours were a thing that still existed.

Option 1:

  • Show up on a tourist visa, without instruments. Tell customs you are "visiting friends". Don't even think about bringing a box of t-shirts to sell. Borrow gear, rent a van.

  • Hope that every venue and/or promoter is willing to commit tax fraud by paying you in cash and not asking for your IRS form W9 or O-1B Visa.

  • Hope that no one at Customs googles your name, because if they do, you get deported and can't enter the US again for any reason for (I think) a minimum of 5 years.

Option 2:

  • Apply for a work visa. But that's easy! All you need is to show that you have "extraordinary abilities", and that "have received or been nominated for a significant national award in the field, or prove [you] meet three out of six criteria, including national or international recognition as shown by critical reviews in major newspapers or magazines, evidence of substantial remuneration as shown by contracts, and testimonials from recognized experts in the field in which [you] are engaged."

    It costs several hundred dollars, and you have to schedule an in-person interview at your nearest US Embassy.

    Oh, also this requires you to know the dates and details of every stop on your tour, a year ahead of time. "But," you say, "nobody books tours that far out." You are correct. Also, dates can't be modified after submitting.

  • You won't get a response from the State Department until long after it's time to buy your plane tickets.

  • Still no response. Panic. There's nothing you can do, so go ahead and keep panicking.

  • Oh, they might deny you because they don't like your t-shirt art. Your tour is cancelled.

  • You might not get a response at all before your flight leaves. Oops, now you're not getting on that plane. Your tour is cancelled.

  • This is probably where you start getting hate-emails from your fans assuming that you're idiots who fucked up their simple, simple visa paperwork. You probably just sat around getting high instead of filling out a form, you jerks.

Sing it with me, ♬♬ "Everyyyyyyything is terrrrrrible!!"♬♬

28 Dec 08:38

Systems design explains the world: volume 1

"Systems design" is a branch of study that tries to find universal architectural patterns that are valid across disciplines.

You might think that's not a possibility. Back in university, students used to tease the Systems Design Engineers, calling it "boxes and arrows" engineering. Not real engineering, you see, since it didn't touch anything tangible, like buildings, motors, hydrochloric acid, or, uh, electrons.

I don't think the Systems Design people took this criticism too seriously since everyone also knew that programme had the toughest admittance criteria in the whole university.

(A mechanical engineer told me they saw electrical/computer engineers the same way: waveforms on a screen instead of real physical things that you could touch, change, and fix.)

I don't think any of us really understood what boxes-and-arrows engineering really was back then, but luckily for you, now I'm old. Let me tell you some stories.

What is systems design?

I started thinking more clearly about systems design when I was at a big tech company and helped people refine their self-promotion employee review packets. Most of it was straightforward, helping them map their accomplishments to the next step up the engineering ladder:

  • As a Novice going for Junior, you had to prove you could fix bugs without too much supervision;
  • Going for Senior, you had to prove you could implement a whole design with little supervision;
  • Going for Staff, you had to show you could produce designs based on business problems with basically no management;
  • Going for Senior Staff, you had to solve bigger and bigger business problems; and so on.

After helping a few dozen people with their assessments, I noticed a trend. Most developers mapped well onto the ladder, but some didn't fit, even though they seemed like great engineers to me.

There were two groups of misfits:

  1. People who maxed out as a senior engineer (building things) but didn't seem to want to, or be able to, make it to staff engineer (translating business problems).

  2. People who were ranked at junior levels, but were better at translating business problems than at fixing bugs.

Group #1 was formally accounted for: the official word was most employees should never expect to get past Senior Engineer. That's why they called it Senior. It wasn't not much consolation to people who wanted to earn more money or to keep improving for the next 20-30 years of a career, but it was something we could talk about.

(The book Radical Candor by Kim Scott has some discussion about how to handle great engineers who just want to build things. She suggests a separate progression for "rock solid" engineers, who want to become world-class experts at things they're great at, and "steep trajectory" engineers, who might have less attention to detail but who want to manage ever-bigger goals and jump around a lot.)

People in group #2 weren't supposed to exist. They were doing some hard jobs - translating business problems into designs - with great expertise, but these accomplishments weren't interesting to the junior-level promotion committees, who had been trained to look for "exactly one level up" attributes like deep technical knowledge in one or two specific areas, a history of rapid and numerous bug fixes, small independent launches, and so on. Meanwhile, their peers who couldn't (yet) architect their way out of a paper bag rose more quickly through the early ranks, because they wrote reams of code fast.

Tanya Reilly has an excellent talk (and transcribed slides) called Being Glue that perfectly captures this effect. In her words: "Glue work is expected when you're senior... and risky when you're not."

What she calls glue work, I'm going to call systems design. They're two sides of the same issue. Humans are the most unruly systems of all, and yet, amazingly, they follow many of the same patterns as other systems.

People who are naturally excellent at glue work often stall out early in the prescribed engineering pipeline, even when they'd be great in later stages (staff engineers, directors, and executives) that traditional engineers struggle at. In fact, it's well documented that an executive in a tech company requires almost a totally different skill set than a programmer, and rising through the ranks doesn't prepare you for that job at all. Many big tech companies hire executives from outside the company, and sometimes even from outside their own industry, for that reason.

...but I guess I still haven't answered the question. What is systems design? It's the thing that will eventually kill your project if you do it wrong, but probably not right away. It's macroeconomics instead of microeconomics. It's fixing which promotion ladders your company even has, rather than trying to climb the ladders. It's knowing when a distributed system is or isn't appropriate, not just knowing how to build one. It's repairing the incentives in a political system, not just getting elected and passing your favourite laws.

Most of all, systems design is invisible to people who don't know how to look for it. At least with code, you can measure output by the line or the bug, and you can hire more programmers to get more code. With systems design, the key insight might be a one-sentence explanation given at the right time to the right person, that affects the next 5 years of work, or is the difference between hypergrowth and steady growth.

Sorry, I don't know how to explain it better than that. What I can do instead is talk about some systems design problems and archetypes that repeat, over and over, across multiple fields. If you can recognize these archetypes, and handle them before they kill your project, you're on your way to being a systems designer.

Systems of control: hierarchies and decentralization

Let's start with an obvious one: the problem of centralized vs distributed control structures. If I ask you what's a better org structure: a command-and-control hierarchy or a flat organization, most people have been indoctrinated to say the latter. Similarly if I ask whether you should have an old crusty centralized database or a fancy distributed database, everyone wants to build the latter. If you're an SRE and we start talking about pets and cattle, you always vote for cattle. You'd laugh at me if I suggested using anything but a distributed software version control system (ie. git). The future of money, I've heard, is distributed decentralized cryptocurrency. If you want to defeat censorship, you need a distributed social network. The trend is clear. What's to debate?

Well, real structures are more complicated than that. The best introductory article I know on this topic is Jo Freeman's The Tyranny of Structurelessness, which includes the famous quote: "This apparent lack of structure too often disguised an informal, unacknowledged and unaccountable leadership that was all the more pernicious because its very existence was denied."

"Informal, unacknowledged, and unaccountable" control is just as common in distributed computing systems as it is in human social systems.

The truth is, nearly every attempt to design a hierarchy-free, "flat" control system just moves the central control around until you can't see it anymore. Human structures all have leaders, whether implicit or explicit, and the explicit ones tend to be more diverse.

The web depends on centrally controlled DNS and centrally approved TLS certificate issuers; the global Internet depends on a small cabal who sorts out routing problems. Every blockchain depends on whoever decides if your preferred chain will fork this week, and whoever runs the popular exchanges, and whoever decides whether to arrest those people. Distributed radio networks depend on centralized government spectrum licenses. Democracy depends on someone enforcing your right to vote. Capitalism depends on someone enforcing the rules of a "free" marketplace.

At my first startup, we tried to run the development team as a flat organization, where everyone's opinions were listened to and everyone could debate the best way to do something. The overall consensus was that we mostly succeeded. But I was shocked when one of my co-workers said to me afterward: "Our team felt flat and egalitarian. But you can't ever forget that it was only that way because you forced it to be that way."

Truly distributed systems do exist. Earth's ecosystem is perhaps one (although it's becoming increasingly fragile and dependent on humans not to break it). Truly distributed databases using Raft consensus or similar algorithms certainly exist and work. Distributed version control (like git) really is distributed, although we ironically end up re-centralizing our usage of it through something like Github.

CAP theorem is perhaps the best-known statement of the tradeoffs in distributed systems, between consistency, availability, and "partition tolerance." Normally we think of the CAP theorem as applying to databases, but it applies to all distributed systems. Centralized databases do well at consistency and availability, but suck at partition tolerance; so do authoritarian government structures.

In systems design, there is rarely a single right answer that applies everywhere. But with centralized vs distributed systems, my rule of thumb is to do exactly what Jo Freeman suggested: at least make sure the control structure is explicit. When it's explicit, you can debug it.

Chicken-egg problems

Another archetypal systems design question is the "chicken-egg problem," which is short for: which came first, the chicken or the egg?

In case that's not a common question where you come from, the idea is eggs produce chickens, and chickens produce eggs. That's all fine once it's going, but what happened, back in ancient history? Was the very first step in the first iteration an egg, or a chicken?

The question sounds silly and faux-philosophical at first, but there's a real answer and that answer applies to real problems in the business world.

The answer to the riddle is "neither"; unless you're a Bible literalist, you can't trace back to the Original Chicken that laid the Original Egg. Instead there was probably a chicken-like bird that laid a mostly egg-ish egg, and before that, there were millions of years of evolution, going all the way back to single-celled organisms and whatever phenomenon first spawned those. What came "first"? All that other stuff.

Chicken-egg problems appear all the time when building software or launching products. Which came first, HTML5 web browsers or HTML5 web content? Neither, of course. They evolved in loose synchronization, tracing back to the first HTML experiments and way before HTML itself, growing slowly and then quickly in popularity along the way.

I refer to chicken-egg problems a lot because designers are oblivious to them a lot. Here are some famous chicken-egg problems:

  • Electrical distribution networks
  • Phone and fax technologies
  • The Internet
  • IPv6
  • Every social network (who will use it if nobody is using it?)
  • CDs, DVDs, and Blu-Ray vs HD DVD
  • HDTV (1080p etc), 4k TV, 8k TV, 3D TV
  • Interstate highways
  • Company towns (usually built around a single industry)
  • Ivy league universities (could you start a new one?)
  • Every new video game console
  • Every desktop OS, phone OS, and app store

The defining characteristic of a chicken-egg technology or product is that it's not useful to you unless other people use it. Since adopting new technology isn't free (in dollars, or time, or both), people aren't likely to adopt it unless they can see some value, but until they do, the value isn't there, so they don't. A conundrum.

It's remarkable to me how many dreamers think they can simply outwait the problem ("it'll catch on eventually!") or outspend the problem ("my new mobile OS will be great, we'll just subsidize a few million phones"). And how many people think getting past a chicken-egg problem, or not, is just luck.

But no! Just like with real chickens and real eggs, there's a way to do it by bootstrapping from something smaller. The main techniques are to lower the cost of adoption, and to deliver more value even when there are fewer users.

Video game console makers (Nintendo, Sony, Microsoft) have become skilled at this; they're the only ones I know who do it on purpose every few years. Some tricks they use are:

  • Subsidizing the cost of early console sales.
  • Backward compatibility, so people who buy can use older games even before there's much native content.
  • Games that are "mostly the same" but "look better" on the new console.
  • Compatible gamepads between generations, so developers can port old games more easily.
  • "Exclusive launch titles": co-marketing that ensures there's value up front for consumers (new games!) and for content producers (subsidies, free advertising, higher prices).

In contrast, the designs that baffle me the most are ones that absolutely ignore the chicken-egg problem. Firefox and Ubuntu phones, distributed open source social networks, alternative app stores, Linux on the desktop, Netflix competitors.

Followers of this diary have already seen me rant about IPv6: it provides nearly no value to anyone until it is 100% deployed (so we can finally shut down IPv4!), but costs immediately in added complexity and maintenance (building and running a whole parallel Internet). Could IPv6 have been rolled out faster, if the designers had prioritized unwinding the chicken-egg problem? Absolutely yes. But they didn't acknowledge it as the absolute core of their design problem, the way Android, Xbox, Blu-Ray, and Facebook did.

If your product or company has a chicken-egg problem, and you can't clearly spell out your concrete plan for solving it, then investors definitely should not invest in your company. Solving the chicken-egg problem should be the first thing on your list, not some afterthought.

By the way, while we're here, there are even more advanced versions of the chicken-egg problem. Facebook or faxes are the basic form: the more people who use Facebook or have a fax machine, the more value all those users get from each other.

The next level up is a two-sided market, such as Uber or Ebay. Nobody can get a ride from Uber unless there are drivers; but drivers don't want to work for Uber unless they can get work. Uber has to attract both kinds of users (and worse: in the same geographic region! at the same time of day!) before either kind gets anything from the deal. This is hard. They decided to spend their way to success, although even Uber was careful to do so only in a few markets at a time, especially at first.

The most difficult level I know is a three-sided market. For example, UberEats connects consumers, drivers, and restaurants. Getting a three-sided market rolling is insanely complicated, expensive, and failure-prone. I would never attempt it myself, so I'm impressed at the people who try. UberEats had a head start since Uber had consumers and drivers in their network already, and only needed to add "one more side" to their market. Most of their competitors had to attract all three sides just to start. Whoa.

If you're building a one-sided, two-sided, or three-sided market, you'd better understand systems design, chickens, and eggs.

Second-system effect

Taking a detour from business, let's move to an issue that engineers experience more directly: second-system effect, a term that comes from the excellent book, The Mythical Man-Month, by Fred Brooks.

Second system effect arises through the following steps:

  • An initial product starts small and is built incrementally, starting with a low budget and a few users.
  • Over time, the product gains popularity and becomes profitable.
  • The system evolves, getting more and more hacks on top, and early design tradeoffs start to be a bottleneck.
  • The engineers figure out a new design that would fix all the mistakes we know about, plus more! (And they're probably right.)
  • Since the product is already popular, it's easy to justify spending the time to "do it right this time" and "build a strong platform for the next 10 years." So a project is launched to rewrite everything from scratch. It's expected to take several months, maybe a couple of years, and a big engineering team.

Sound familiar? People were trying this back in 1975 when the book was written, and they're still trying it now. It rarely goes well; even when it does work, it's incredibly painful.

25 years after the book, Joel Spolsky wrote Things you should never do, part 1 about the company-destroying effect of Netscape/Mozilla trying this. "They did it by making the single worst strategic mistake that any software company can make: they decided to rewrite the code from scratch."

[Update 2020-12-28: I mention Joel's now-20-year-old article not because Mozilla was such a landmark example, but because it's such a great article.]

Some other examples of second system effect are IPv6, Python 3, Perl 6, the Plan9 OS, and the United States system of government.

The results are remarkably consistent:

  • The project takes longer than expected to reach feature parity.
  • The new design often does solve the architectural problems in the original; however, it unexpectedly creates new architectural problems that weren't in the original.
  • Development time is split (or different developers are assigned) between maintaining the old system and launching the new system.
  • As the project gets increasingly overdue, project managers are increasingly likely to shut down the old system to force users to switch to the new one, even though users still prefer the old one.

Second systems can be merely expensive, or they can bankrupt your company, or destroy your user community. The attention to Perl 6 severely weakened the progress of perl; the work on Python 3 fractured the python community for more than a decade (and still does); IPv6 is obstinately still trying to deprecate IPv4, 25 years later, even though the problems it was created to solve are largely obsolete.

As for solutions, there isn't much to say about the second system effect except you should do your utmost to prevent it; it's entirely self-inflicted. Refactor your code instead. Even if it seems like incrementalism will be more work... it's worth it. Maintaining two systems in parallel is a lot more expensive than you think.

In his book, Fred Brooks called it the "second" system on purpose, because it was his opinion that after experiencing it once, any designer will build their third and later systems more incrementally so they never have to go through that again. If you're lucky enough to learn from historical wisdom, perhaps even your second system won't suffer from this strategic error.

A more embarrassing related problem is when large companies try to build a replacement for their own first system, but the developers of the first system have left or have already learned their Second System Lesson and are not willing to play that game. Thus, a new team is assembled to build the replacement, without the experience of having built the first one, but with all the confidence of a group of users who are intimately experienced with its surface flaws. I don't even know what this phenomenon should be called; the vicarious second system effect? Anyway, my condolences if you find yourself building or using such a product. You can expect years of pain.

[Update 2020-12-28: someone reminded me that CADT ("cascade of attention-deficit teenagers") is probably related to this last phenomenon.]

Innovator's dilemmas

Let's finally talk about a systems design issue that's good news for your startup, albeit bad news for big companies. The Innovator's Dilemma is a great book by Clayton Christensen that discusses a fascinating phenomenon.

Innovator's dilemmas are so elegant and beautiful you can hardly believe they exist as such a repeatable abstraction. Here's the latest one I've heard about, via an Anandtech Article about Apple Silicon:

A summary of the Innovator's Dilemma is as follows:

  • You (Intel in this case) make an awesome product in a highly profitable industry.
  • Some crappy startup appears (ARM in this case) and makes a crappy competing product with crappy specs. The only thing they seem to have going for them is they can make some low-end garbage for cheap.
  • As a big successful company, your whole business is optimized for improving profits and margins. Your hard-working employees realize that if they cede the ultra-low-end garbage portion of the market to this competitor, they'll have more time to spend on high-valued customers. As a bonus, your average margin goes up! Genius.
  • The next year, your competitor's product gets just a little bit better, and you give up the new bottom of your market, and your margins and profits further improve. This cycle repeats, year after year. (We call this "retreating upmarket.")
  • The crappy competitor has some kind of structural technical advantage that allows their performance (however you define performance; something relevant to your market) to improve, year over year, at a higher percentage rate than your product can. And/or their product can do something yours can't do at all (in ARM's case: power efficiency).
  • Eventually, one year, the crappy competitor's product finally exceeds the performance metrics of your own product, and promptly blows your entire fucking company instantly to smithereens.

Hey now, we've started swearing, was that really called for? Yes, I think so. If I were an Intel executive looking at this chart and Apple's new laptops, I would be scared out of my mind right now. There is no more upmarket to retreat to. The competitor's product is better, and getting better faster than mine. The game is already over, and I didn't even realize I was playing.

What makes the Innovator's Dilemma so beautiful, from a systems design point of view, is the "dilemma" part. The dilemma comes from the fact that all large companies are heavily optimized to discard ideas that aren't as profitable as their existing core business. Any company that doesn't optimize like this fails; by definition their profitability would go down. So thousands of worker bees propose thousands of low-margin and high-margin projects, and the company discards the former and invests heavily in the latter (this is called "sustaining innovation" in the book), and they keep making more and more money, and all is well.

But this optimization creates a corporate political environment (aha, you see we're still talking about systems design?) where, for example, Intel could never create a product like ARM. A successful low-priced chip would take time, energy, and profitability away from the high-priced chips, and literally would have made Intel less successful for years of its history. Even once ARM appeared and their trendline of improvements was established, they still had lower margins, so competing with them would still cannibalize their own high-margin products, and worse, now ARM had a head start.

In case you're a big company reading this: the book has a few suggestions for what you can do to avoid this trap. But if you're Intel, you should have read the book a few years ago, not now.

Innovator's dilemma plots are the prettiest when discussing hardware and manufacturing, but the concept applies to software too, especially when software is held back by a hardware limitation. For example, distributed version control systems (where you download the entire repository history to every client) were amusing toys until suddenly disks were big enough and networks were fast enough, and then DVCSes wiped out everything else (except in projects with huge media files).

Fancy expensive databases were the only way to get high transaction throughput, until SSDs came along and made any dumb database fast enough for most jobs.

Complicated database indexes and schemas were great until AWS came along and let everyone just brute force mapreduce everything using short-term rental VMs.

JITs were mostly untenable until memory was so much slower than CPU that compiling was not the expensive part. Software-based network packet processing on a CPU was slower than custom silicon until generic CPUs got fast enough relative to RAM. And so on.

The Innovator's Dilemma is the book that first coined the term "disruptive innovation." Nowadays, startups talk about disrupting this and disrupting that. "Disruption" is an exciting word, everybody wants to do it! The word disruption has lost most of its meaning at this point; it's a joke as often as a serious claim.

But in the book, it had a meaning. There are two kinds of innovations: sustaining and disruptive. Sustaining is the kind that big companies are great at. If you want to make the fastest x86 processor, nobody does it better than Intel (with AMD occasionally nipping at their heels). Intel has every incentive to keep making their x86 processors better. They also charge the highest margins, which means the greatest profits, which means the most money available to pour into more sustaining innovation. There is no dilemma; they dump money and engineers and time into that, and they mostly deliver, and it pays off.

A "disruptive" innovation was meant to refer to specifically the kind you see in that plot up above: the kind where an entirely new thing sucks for a very long time, and then suddenly and instantly blows you away. This is the kind that creates the dilemma.

If you're a startup and you think you have a truly disruptive innovation, then that's great news for you. It's a perfect answer to that awkward investor question, "What if [big company] decides to do this too?" because the honest truth is "their own politics will tear that initiative apart from the inside."

The trick is to determine whether you actually have one of these exact "disruption" things. They're rare. And as an early startup, you don't yet have a historical plot like the one above that makes it clear; you have to convince yourself that you'll realistically be able to improve your thing faster than the incumbent can improve theirs, over a long period of time.

Or, if your innovation only depends on an existing trend - like in the software-based packet processing example above - then you can try to time it so that your software product is ready to mature at the same time as the hardware trend crosses over.

In conclusion: watch out for systems design. It's the sort of thing that can make you massively succeed or completely fail, independent of how well you write code or run your company, and that's scary. Sometimes you need some boxes and arrows.

28 Dec 08:22

Google, Facebook Agreed to Team Up Against Possible Antitrust Action

by jwz
I feel like there's a term for this.

Facebook and Google agreed to "cooperate and assist one another" if they ever faced an investigation into their pact to work together in online advertising, according to an unredacted version of a lawsuit filed by 10 states against Google last week. [...]

A Google presentation said if the company couldn't "avoid competing with" Facebook, it would collaborate to "build a moat." [...]

For years, criticism of Google's online advertising empire has focused on how the company leveraged its powerful consumer-facing platforms, such as Google Search and YouTube, to take over another lucrative but less visible business: the software that acts as a middleman for buying and selling ads across the web.

The Facebook allegations add a new wrinkle -- that Google cut a deal with a competing middleman, one that the states describe as Google's "largest potential competitive threat."

They also represent a potent legal risk. Under U.S. law, agreements to fix prices can be easier to prove than the states' other accusations -- namely that Google is maintaining an illegal monopoly.

In addition to the suit filed in Texas, Google was hit last week in a separate antitrust lawsuit joined by 38 attorneys general, which alleged that it maintained monopoly power over the internet-search market through anticompetitive contracts and conduct.

Previously, previously, previously.

29 Nov 01:54

I should have loved biology

by slaporte
Mahmoud

hehe i've given half these books to my dad, but not biology for computer scientists. Minecraft of biology has also occurred to me! nice post :)

24 Nov 07:05

Can I work for a bad company and still be a good person?

Mahmoud

interesting! wonder if this is why he left google...

No.

11 Nov 06:12

Today in Dunning-Krugerrand news

by jwz
Bitcoin and Ethereum use the same amount of energy as the whole of Austria:

And then there's the environmental problem. The environmental problem? Aren't we talking about digital coins? Yes, which makes it even stranger. Solving all those complex puzzles requires a huge amount of energy. So much energy that the two biggest blockchains in the world -- bitcoin and Ethereum -- are now using up the same amount of electricity as the whole of Austria. Carrying out a payment with Visa requires about 0.002 kilowatt-hours; the same payment with bitcoin uses up 906 kilowatt-hours, more than half a million times as much, and enough to power a two-person household for about three months.

And the environmental problem is only going to grow. As miners put more effort into solving the puzzles (ie, building more of those dark server caves in Alaska), the puzzles will automatically become more difficult, requiring more calculation power. It's an endless, pointless arms race in order to facilitate the same number of transactions with more and more energy.

Previously, previously, previously, previously, previously, previously, previously, previously.

08 Nov 20:41

DNA Lounge: Wherein the vile prohibitionists at ABC are up to their usual skullfuckery.

by jwz
San Rafael restaurant Shiro Kuma Sushi is -- was -- doing to-go cocktails, as so many of us are. ABC ran a sting on them, and because an employee of Grubhub, not of the restaurant, didn't check ID when delivering, ABC is threatening the restaurant with a liquor license suspension.

Grubhub faces no consequences at all.

Oh, did I say "Grubhub employee"? I meant "independent non-employee contractor."

And Uber, Lyft, Instacart and Doordash spent $200 million to buy their own legislation to keep it that way. For comparison, Bernie Sanders spent $160 million on his 2020 national campaign for President. Uber spent $200 million on Prop 22 just in California, and they're coming for other states next.

Restaurant, GrubHub driver in trouble after undercover operation:

"I guess there was an order picked up by Grubhub that contained alcohol that was actually meant for an ABC sting," said Shigeyoshi.

The California ABC confirms the order was placed by an undercover decoy and that the Grubhub delivery driver delivered the alcohol from Shiro Kuma Sushi to a minor without carding that minor. [...]

"We received a complaint that delivery services were not checking identifications and as a result alcohol deliveries were going to places where there were minors," said California ABC Spokesperson John Carr.

"We received a complaint" is ABC's usual dodge, because their supposed policy is that "they only respond to complaints", so they just manufacture those as desired. Note that they don't even pretend here that the complaint was against this restaurant: just against "delivery services" in general.

The restaurant was given the option of a one year probation or hearing to determine the validity of the claim. Shigeyoshi says he agreed to the one year probation. "If something happens within one year we face a 15-day suspension and potentially fines," said Shigeyoshi.

"For ABC to conduct a sting like that not just targeting myself but targeting other restaurants especially during the pandemic is wrong," he continued. [...]

Subsequently, he says, "We took all the alcohol off any third party delivery service." "I can't trust that every single delivery driver will ID the customer," Shigeyoshi continued. [...]

While both the delivery driver and restaurant face consequences in a California ABC delivery decoy operation, the delivery app does not.

"We don't license the delivery services if we did they would be the ones held responsible but they don't have an alcoholic beverage license to sell," said Carr.

This quote is golden:

The California ABC says it prefers education over enforcement and posted industry advisories to its website in April and June. Also that it had conference calls with delivery companies.

"Prefers education." What a fucking lie. What a bunch of fucking vampires.

ABOLISH THE ABC.

I have nothing but sympathy for this restaurant, or anyone having ABC target them for abuse for no reason. We've gone through our own share of that over the years, and I can assure you, my vitriol toward that agency is white-hot and without bound. They are monsters. They are an abusive gang of thugs, propped up by prohibitionist, fundamentalist nutjobs like The Marin Institute and MADD, and are actively hostile to everyone in the industry that they supposedly regulate.

It's as if the Egg Council had a nakedly anti-egg agenda.

All that being said, please order our cocktails!

Pictured above: the Sazerac, Black Manhattan and Betelgeuse! They are delicious, and available for pick-up and delivery from DNA Pizza, every day from 4pm to 10pm.

No ABC agents, please.

15 Oct 04:52

Stare into the Sun

by jwz
08 Oct 19:18

Cosmic Thing

by Dorothy
08 Oct 19:10

Saturday Morning Breakfast Cereal - Phosphine

by tech@thehiveworks.com
Mahmoud

#ben



Click here to go see the bonus panel!

Hovertext:
Also known as VD for Venereans Detected!


Today's News:
28 Sep 01:03

This is a pretty dire assessment of Mozilla

by jwz
Firefox usage is down 85% despite Mozilla's top exec pay going up 400%

Mozilla recently announced that they would be dismissing 250 people. That's a quarter of their workforce so there are some deep cuts to their work too. The victims include: the MDN docs (those are the web standards docs everyone likes better than w3schools), the Rust compiler and even some cuts to Firefox development. Like most people I want to see Mozilla do well but those three projects comprise pretty much what I think of as the whole point of Mozilla, so this news is a a big let down. [...]

One of the most popular and most intuitive ways to evaluate an NGO is to judge how much of their spending is on their programme of works (or "mission") and how much is on other things, like administration and fundraising. [...] Mozilla looks bad when considered in this light. Fully 30% of all expenditure goes on administration. Charity Navigator, an organisation that measures NGO effectiveness, would give them zero out of ten on the relevant metric. [...]

Mozilla now thinks of itself less as a custodian of the old Netscape suite and more as a 'privacy NGO'. One slogan inside Mozilla is: "Beyond the Browser".

Regardless of how they view themselves, most of their income comes from helping to direct traffic to Google by making that search engine the default in Firefox. Google make money off that traffic via a big targeted advertising system that tracks people across the web and largely without their consent. Indeed, one of the reasons this income is falling is because as Firefox's usage falls less traffic is being directed Google's way and so Google will pay less.

There is, as yet, no outbreak of agreement among the moral philosophers as to a universal code of ethics. However I think most people would recognise hypocrisy in Mozilla's relationship with Google. Beyond the ethical problems, the relationship certainly seems to create conflicts of interest. Anyone would think that a privacy NGO would build anti-tracking countermeasures into their browser right from the start. In fact, this was only added relatively recently (in 2019), after both Apple (in 2017) and Brave (since release) paved the way. It certainly seems like Mozilla's status as a Google vassal has played a role in the absence of anti-tracking features in Firefox for so long.

Honestly, I've given very little thought to Mozilla since I left, but two thoughts I have often had are:

  1. Firefox is kind of crappy, actually;
  2. They have an entire building full of people. What do all of those people do???

And I've asked! Before lockdown, I used to regularly have lunch with a friend who is a current and long-time Mozilla employee, and I've asked "what do all of those people do?" and I have never gotten an answer that I either understood or was able to retain.

(I have the same question about multi-building companies like Pinterest too -- how does it take more than 300 people to run that entire fatuous business? But I digress. And also don't really care.)

Back to Mozilla -- in my humble but correct opinion, Mozilla should be doing two things and two things only:

  1. Building THE reference implementation web browser, and
  2. Being a jugular-snapping attack dog on standards committees.
  3. There is no 3.

And they just completely threw in the towel on standards when they grabbed their ankles and allowed W3C to add DRM. At this point, I assume Mozilla's voice on the standards committees has all the world-trembling gravitas of "EFF writes amicus brief."

By the way, one dynamic that the cited article missed is that a huge part of the reason for Google's "investment" in Mozilla was not just to drive search traffic -- it was antitrust insurance. Mozilla continuing to exist made Chrome not be the only remaining web browser, and that kept certain wolves at bay.

Google has decided that they don't need to buy antitrust insurance any more. Wonder why.

Previously, previously, previously, previously, previously, previously.

21 Sep 00:31

master class

19 Sep 20:46

PG&E

by jwz
This electrical transmission tower has a little problem. can you spot it? Actually, it's not a small problem -- it cost us 16.65 *billion* dollars and caused the deaths of 85 people. [...]

Remember that worn C hook? How long was it rubbing against the hangar bracket? The answer is that we don't know. we think it is about 97 (!) years old, but we're not sure because PG&E didn't keep records about it.

After the fire, many of the pieces were taken to the FBI lab's metallurgical unit at Quantico, and they determined that the C hook was made of cast iron. Not all the C hooks on these 100-year old towers were made of cast iron -- many were made of steel. But again: no records.

PG&E knew that this was a problem because at some point they bolted on L brackets and moved the C hooks onto the new brackets, probably concerned that the old bracket hole had mostly worn through. we don't know when they did this because they kept no records.

And yes, PG&E is legally required to inspect these towers periodically. We don't know exactly when, because (you guessed it) no records from before the year 2000.

The investigating team interviewed troublemen (inspectors for PG&E) to find out exactly how they did the inspections. They were done mostly from helicopters. and despite having official procedures, here's what they did:

☑️ Is the tower still standing?

Previously, previously, previously, previously.

19 Sep 20:38

"What, Me Partisan?"

by jwz
AnandWrites: This is Bloomberg saying it. Plute-on-plute violence, and true. "Facebook is a red state."

If you're a Democrat in elected office and you haven't yet been as tough on Facebook's existential threat to democracy, regardless of whether a child of yours worked there, wake up and don't be outflanked by Bloomberg.

I mean, Mike Bloomberg is a threat to democracy also. So when he calls someone else a threat to democracy, they're really, really a threat to democracy. It's like squaring a number.

Your occasional reminder that the path to a freer and more just America runs through more plute-on-plute beefing and less beefing among the rest of us.

Previously, previously, previously, previously, previously.

03 Sep 06:55

Amazon Drivers Are Hanging Smartphones in Trees to Get More Work

by jwz
Beg For Scraps Or You Will Starve:

Drivers in on the plot then sync their own phones with the ones in the tree and wait nearby for an order pickup. [...] Much the way milliseconds can mean millions to hedge funds using robotraders, a smartphone perched in a tree can be the key to getting a $15 delivery route before someone else. [...]

An Uber-like app called Amazon Flex lets drivers make deliveries in their own cars. For many with other jobs, it's a way to earn extra money in their spare time. But with joblessness rising and unemployment payments shrinking, competition for such work has stiffened, and more people rely on it as their primary income source. Adding to the pressure, fewer people are using ride-hailing services like Uber and Lyft, so more drivers have to deliver online shopping orders to make money. As a result, some Whole Foods locations have come to resemble parking lots at Home Depot Inc., where day laborers have long congregated to pick up home repair gigs. [...]

What's happening at Whole Foods in the Chicago area is different. Drivers are competing for fast-delivery Instant Offers, which require an immediate response and typically take between 15 and 45 minutes to complete. Instant Offers are dispatched by an automated system that detects which drivers are nearby through their smartphones. When drivers see an Instant Offer, they have only a few minutes to accept the delivery or lose it to someone else.

The system can detect a smartphone's location to within about 20 feet. That means a phone in a tree outside Whole Foods' door would get the delivery offer even before drivers sitting in their cars just a block away. [...]

The phones in trees seem to serve as master devices that dispatch routes to multiple nearby drivers in on the plot, according to drivers who have observed the process. They believe an unidentified person or entity is acting as an intermediary between Amazon and the drivers and charging drivers to secure more routes. [...]

One reason Flex contractors do this is to get around the requirements for being a driver, such as having a valid license or being authorized to work in the U.S.

Previously, previously, previously, previously, previously, previously, previously, previously, previously, previously.

13 Aug 05:55

Just a thought

by Unknown

Sam Smith - I find it interesting that we as a culture ignore multiple ethnicity. For example, 17% of new marriages are bi-ethnic but you don't hear anything about it and Harris and Obama are both identified as black despite their mixed heritage. Obama even spent more time at Harvard Law than he did with a black father. If we are more accurate in describing the complexity of ethnic backgrounds, it would help diffuse false, simplistic conclusions.

09 Aug 08:03

Svelte <3 TypeScript

Typernetically enhanced web apps
09 Aug 07:53

LFO - LFO (Official Video)

by Warp Records

Official video for LFO's self-titled anthem, released 26 July 1990.

“That was the one that turned us into a “real label”. We just weren’t really prepared for what would happen with that record. It was at the time when a single could come out and keep sneaking up and up; at first it was just into the top 40, next week it was in the top 20, then it was 12. We sold 130,000 12"s, which was just unbelievable, you’d get the same position now from selling 3,000.” – Steve Beckett (2007)

→ warp.net/artists/91279-lfo
07 Aug 06:34

Study Results: Changing How Wikipedia Represents Africa With Photo Recruitment Campaigns

by slaporte
Mahmoud

nice!

20 Jul 08:35

​STOCK PILE "Date Night" | adult swim smalls

by Adult Swim
Mahmoud

a bit of classic construction

Created by Nick Gibbons
https://www.instagram.com/nicknickgibbons/

SUBSCRIBE: http://bit.ly/AdultSwimSubscribe

About Adult Swim:
Get your Adult Swim fix whenever and wherever you want at www.adultswim.com, or by downloading the Adult Swim app. Binge marathons or watch selected episodes of many of your favorite shows including Rick and Morty, Robot Chicken, Venture Bros., Aqua Teen Hunger Force and many more. And check out the Live Stream, our block of live, interactive shows every weekday: www.adultswim.com/streams

Connect with Adult Swim Online:
Download the APPS: http://www.adultswim.com/apps/
Visit Adult Swim WEBSITE: http://www.adultswim.com
Like Adult Swim on FACEBOOK: http://bit.ly/ASFacebook
Follow Adult Swim on TWITTER: http://bit.ly/ASTweet
Follow Adult Swim on INSTAGRAM: http://instagram.com/adultswim
14 Jul 15:48

CPU Esq Outline 0.14

by slaporte
Mahmoud

"CPU, Esq. explodes the idea that law can solve its problems by turning into software."

cute writing or revealing typo?

28 Jun 18:50

Coping | Off The Air | adult swim

by Adult Swim
Mahmoud

they were supposed to be on hiatus but i guess they got bored of that.

created by Dave Hughes  

Hitting My Head On The World
Short by Anna Vasof

Lars Andersen: A New Level of Archery
Short by Lars Andersen

Welcome To Youth Team Enterprises
Song by Youth Team

Stand There
Song by P’tit Belliveau

Video by Vincent Bilodeau

Stay Home 04
Animation by Arnaud Laffond
Music by Tite

Men In Chairs 2
Animation by Cool 3d World

Window Advice
Video by Alan Resnick

0% Food
Animation by Lukas Vojir
Music by Resonate

Everybody Isolates
Video by Snuff Puppets

The State
Song by Youth Team

Pizza Challenge
Video by Ernest Doty

The Rest of My Days
Music video by S.C.A.R.R

First Contact
Animation by Douwe Dijkstra

I Have Heard The Signal, I Am Waiting For The Call
Song by Youth Team

Editing and graphics by Dave Hughes

sound mix and design by
Brent Busby


SUBSCRIBE: http://bit.ly/AdultSwimSubscribe

About Adult Swim:
Get your Adult Swim fix whenever and wherever you want at www.adultswim.com, or by downloading the Adult Swim app. Binge marathons or watch selected episodes of many of your favorite shows including Rick and Morty, Robot Chicken, Venture Bros., Aqua Teen Hunger Force and many more. And check out the Live Stream, our block of live, interactive shows every weekday: www.adultswim.com/streams

Connect with Adult Swim Online:
Download the APPS: http://www.adultswim.com/apps/
Visit Adult Swim WEBSITE: http://www.adultswim.com
Like Adult Swim on FACEBOOK: http://bit.ly/ASFacebook
Follow Adult Swim on TWITTER: http://bit.ly/ASTweet
Follow Adult Swim on INSTAGRAM: http://instagram.com/adultswim
16 Jun 06:38

Burn ES&S to the ground

by jwz
County Election Office Denied Access to Election Database

The Supervisor of Election, as defined by Florida statutes, is the custodian of all election documents and records, from voter registration to candidate filings and election results. So, you can imagine my surprise when a senior election office official acknowledged that while they maintain custody of the Microsoft SQL Server database where all votes are recorded, no one in the office can log into the database or query its data.

Election Systems & Software, the company who owns the election management system software the county uses, refuses to give them a user account. The company says it is a preventative measure to reduce the risk of record tampering, whether intentionally or accidentally. ES&S also issued a mob-like warning: if the election office accesses the database through a backdoor, or other means, the company will automatically revoke all results pending certification and terminate the contract immediately. [...]

ES&S clients find themselves locked into a system and contract that equates secrecy with security and views data sharing as a high risk threat. What ES&S is doing is nothing short of unethical and runs counter to industry practices regarding data collection systems.

For years, the company has hidden behind the veil of proprietary rights and patents, when asked to share even the most basic components of their software. But a software company can't have proprietary rights to a user's data, and any patented rights surely do not extend to a user's data.

ES&S is based in Omaha, Nebraska and has nearly 500 employees. The company is owned by the McClatchy Group, a private equity firm, which means their financial records aren't public. Conservative estimates say the company controls nearly 50% of the U.S. election system market, which equates to approximately 70 million votes processed using any combination of the company's hardware and software.

The company has a well-earned reputation for routinely filing lawsuits against competitors and election officials when they don't win contracts or has them taken away. They have even gone so far as to sue voting jurisdictions and groups advocating for greater election security.

Not looking to push the issue or make any enemies, Wolf dropped the reporting project and focused on other areas.

Previously, previously, previously.

13 Jun 23:31

WWTBBD?

by jwz
13 Jun 23:28

Who Are the Biggest Corporations That Kept Their PPP Loans?

by jwz
"The answer may surprise you."

Today I learned that:

  • RealPlayer still exists;
  • RealNetworks is valued at $70 million;
  • They got a $2.8 million Payroll Protection Program loan that they did not give back.

The worst gamers of the PPP system are companies you've never heard of. Something called Staffing 360 Solutions, who make $500 million a year, somehow got $19 million in PPP loans. Other $10 million loans went out to a video company called Quantum Corporation (valued at $143 million), Universal Stainless & Alloy Products ($69 million valuation), and Independence Contract Drilling ($23 million).

Though in RealPlayer's case it should have been a Point-to-Point Protocol loan, amirite?

Previously, previously, previously, previously.

01 Jun 17:27

ADULT SWIM COMMENCEMENT SPEAKER SERIES – Eric Andre

by Adult Swim
Mahmoud

this is good

The Commencement Speaker Series kicks off with the calming presence of Eric Andre.

SUBSCRIBE: http://bit.ly/AdultSwimSubscribe

About Adult Swim:
Get your Adult Swim fix whenever and wherever you want at www.adultswim.com, or by downloading the Adult Swim app. Binge marathons or watch selected episodes of many of your favorite shows including Rick and Morty, Robot Chicken, Venture Bros., Aqua Teen Hunger Force and many more. And check out the Live Stream, our block of live, interactive shows every weekday: www.adultswim.com/streams

Connect with Adult Swim Online:
Download the APPS: http://www.adultswim.com/apps/
Visit Adult Swim WEBSITE: http://www.adultswim.com
Like Adult Swim on FACEBOOK: http://bit.ly/ASFacebook
Follow Adult Swim on TWITTER: http://bit.ly/ASTweet
Follow Adult Swim on INSTAGRAM: http://instagram.com/adultswim