In Defence of the Single Page Application
Trenchant, brilliant stuff by William Kennedy 💯
(Cached)
Trenchant, brilliant stuff by William Kennedy 💯
(Cached)
Just as terror, even in its pre-total, merely tyrannical form ruins all relationships between men, so the self-compulsion of ideological thinking ruins all relationships with reality. The preparation has succeeded when people have lost contact with their fellow men* as well as the reality around them; for together with these contacts, men lose the capacity of both experience and thought. The ideal subject of totalitarian rule is not the convinced Nazi or the convinced Communist, but people for whom the distinction between fact and fiction (i.e., the reality of experience) and the distinction between true and false (i.e., the standards of thought) no longer exist.
Here are two meditations in the form of Jordan Klepper’s excellent interactions with the deluded. I just wish that every supporter were as candid as the woman Jordan spoke to in this first one (starting 00:40) without resorting to shameless and awkward sophistry and whataboutism.
This is a fucking clown.
The most pathetic position, however, is one where you will readily admit to all of your Orange Leader’s “cruelties, collusions, corruptions, and crimes” but sigh and support the thrice-indicted buffoon’s second go at authoritarianism (with or without issuing a weak “both sides”). Consider this solemn Solomon from my home state:
It’s either malice or delusion. Either way, the Truth does not matter when they’re hurting the right people.
I have never given Jeff Bezos a moment’s thought before this week. I am always interested in extraordinary achievement and often admire it. I am fascinated by what extraordinary achievers understand, and how evolved they are as people.
Looking at him in his astronaut costume, and his cowboy hat, and his omega speedmaster moon watch, coming out of his penis craft, being greeted by his ling cod lipped girlfriend, dripping in oversized diamonds, I saw a man completely without a sense of irony. Not a man aware that he had been entrusted with the greatest fortune in human history to benefit all of humanity, but a small narcissistic buffoon, unaware that the universe is 10,000,000,000 light years wide and he had just spent $5,000,000,000 to fly sixty miles through it, so the whole world could look at him at once and see what a truly small man he is, and hear his Kermit the Frog voice declare that his big plan is to pollute space.
Molly White asks if Web3 is bullshit. Short and excellent talk.
Definitely the future of television I had in mind was me having to google every movie I want to watch to see if it’s currently in one of its one-month windows on any of the seven streaming services I pay for. This is way easier than buying a DVD. I love it.
Jira is middle-management-ware, a term I made up for software that serves the needs of middle management, or, at least, the needs middle management thinks it has, which comes to the same thing as long as you’re selling to them. (link)
Jira is a tire fire. It should be condemned and officially designated a superfund site. My goddamn ticket tracker shouldn’t spin up my fans when I try to do something as austere as access the backlog, but, as we all know, it’s impossible to display tickets withou 21 MB of JavaScript and 164 HTTP requests. (Yes, those are real numbers.) (link)
and finally,
JIRA makes it dangerously easy to implement overly bureaucratic processes. A certain kind of organization is drawn to it for that reason. Even a healthy organization switching to JIRA can get carried away with the tools now at its disposal. JIRA is a software product but also a social institution, an organizational philosophy. Sure, you can have the software without the attitude or vice versa, but use of JIRA is still a (weak) negative signal about the quality of an employer.
Turns out that the main thing protecting employee autonomy is the logistical difficulty of micromanagement. JIRA “solves” that problem. (link)
Amil Niazi in a sobering article about ambition, COVID, women, mothers, and late-stage capitalism.
It’s what all the Patagonia-clads are raving about. They tell me it solves all perf problems in a snap.
Update
Here’s an NPM package. And, of course, Java if you’d like to deploy this in an Enterprise™ setting.
I don’t know whether to laugh or cry. This really got me:
My job is to keep our code running while other packagers are changing theirs.
Lord have mercy. NPM continued use and existence is proof that (Almost) Every Day is a Miracle ✨
Software is and has been engaged in an endless race to the bottom.
Wrong. The Achievements of the software industry over the last thirty years are astonishing. They’ve managed to entirely negate several orders of magnitude of performance improvements provided by the hardware industry.
Here’s Bryan Cantrill’s classic assessment of Oracle Corporation (taken from this talk.)
On Twitter, a year after that video:
If you were an enterprise database customer who hadn’t heard of the Nazis, might it be easiest to explain them with Oracle allegory?
I know people who’ve worked there (none of whom are with the company, mercifully) and have heard nothing but fascinating tales of dysfunction, fiefdoms, sinecures, overwork, and bureaucracy. One engineer told me that, of all the bad places he’d worked at, he felt his “soul dying slowly” at Oracle. It’s a generic and very real Evil Corporation™, and probably the company the protagonists in Office Space work at.
And this wouldn’t be too far-fetched a thought. Consider that the producers of Terminator: Genisys, who are an Oracle Co-Founders’s own children, based “Cyberdyne Systems, the fictional defense company responsible for the creation of the evil AI Skynet” on their dad’s company. Amazing.
Excellent stuff, particularly the mechanical keyboard envy1. There’s a Nikhil in it too! 💁♂️
I don’t think I’ll get into them. Got myself one of these (brown switches) about three years ago after outsourcing the research to a highly enthusiastic and helpful co-worker. The “L” key sticks sometimes but zero complaints so far, even after spilling beer on it once 😬 ↩︎
Because we don’t simply write non-annoying and non-creepy software that respects you and does the thing you want it to do anymore. Gotta deliver Value™ to all key stakeholders. By which we mean ourselves and the Market. Not you. You are nothing more than Data that taps “Purchase” to us.
Old stuff, but always immensely satisfying to read ♥️
The speedup gained from running a program on a parallel computer is greatly limited by the fraction of that program that can’t be parallelized.
Augustine’s Second Law of Socioscience
For every scientific (or engineering) action, there is an equal and opposite social reaction.
Adding manpower to a late software project makes it later.
When a distinguished but elderly scientist states that something is possible he is almost certainly right. When he states that something is impossible, he is very probably wrong.
The only way of discovering the limits of the possible is to venture a little way past them into the impossible.
Any sufficiently advanced technology is indistinguishable from magic.
Any piece of software reflects the organizational structure that produced it.
There is a general tendency toward size increase in evolution.
The most ineffective workers are systematically moved to the place where they can do the least damage: management.
Ellison’s Law of Cryptography and Usability
The userbase for strong cryptography declines by half with every additional keystroke or mouseclick required to make it work.
Ellison’s Law of Data
Once the business data have been centralized and integrated, the value of the database is greater than the sum of the preexisting parts.
As the rate of erroneous alerts increases, operator reliance, or belief, in subsequent warnings decreases.
The more highly adapted an organism becomes, the less adaptable it is to any new change.
The time to acquire a target is a function of the distance to and the size of the target.
There does not now, nor will there ever, exist a programming language in which it is the least bit hard to write bad programs.
Bandwidth grows at least three times faster than computer power.
As an online discussion grows longer, the probability of a comparison involving Nazis or Hitler approaches one.
The cost of computing systems increases as the square root of the computational power of the systems.
Hartree’s Law
Whatever the state of a project, the time a project-leader will estimate for completion is constant.
Heisenbug Uncertainty Principle
Most production software bugs are soft: they go away when you look at them.
The time to make a decision is a function of the possible choices he or she has.
Inside every large problem is a small problem struggling to get out.
A task always takes longer than you expect, even when you take into account Hofstadter’s Law.
Jakob’s Law of the Internet User Experience
Users spend most of their time on other sites. This means that users prefer your site to work the same way as all the other sites they already know.
smart(employees) = log(employees), or “No matter who you are, most of the smartest people work for someone else.”
In cryptography, a system should be secure even if everything about the system, except for a small piece of information — the key — is public knowledge.
Given enough eyeballs, all bugs are shallow.
People under time pressure don’t think faster.
In network theory, the value of a system grows as approximately the square of the number of users of the system.
The number of transistors on an integrated circuit will double in about 18 months.
If there are two or more ways to do something, and one of those ways can result in a catastrophe, then someone will do it.
Software is a gas; it expands to fill its container.
The first 90% of the code accounts for the first 90% of the development time. The remaining 10% of the code accounts for the other 90% of the development time.
The explanation requiring the fewest assumptions is most likely to be correct.
Osborn’s Law
Variables won’t; constants aren’t.
Postel’s Law (the second clause of the Robustness Principle)
Be conservative in what you send, liberal in what you accept.
Pareto Principle (a.k.a. “The 80-20 Rule”)
For many phenomena, 80% of consequences stem from 20% of the causes.
Work expands so as to fill the time available for its completion.
Pesticide Paradox
Every method you use to prevent or find bugs leaves a residue of subtler bugs against which those methods are ineffectual.
In a hierarchy, every employee tends to rise to his level of incompetence.
The utility of large networks, particularly social networks, scales exponentially with the size of the network.
The cost of a semiconductor chip fabrication plant doubles every four years.
Sixty-sixty Rule
Sixty percent of software’s dollar is spent on maintenance, and sixty percent of that maintenance is enhancement.
The time it takes your favorite application to complete a given task doubles with each new revision.
For just about any technology, be it an operating system, application or network, when a sufficient level of adoption is reached, that technology then becomes a threat vector.
Ninety percent of everything is crud.
Tesler’s Law of Conservation as Complexity
You cannot reduce the complexity of a given task beyond a certain point. Once you’ve reached that point, you can only shift the burden around.
Weibull’s Power Law
The logarithm of failure rates increases linearly with the logarithm of age.
Software gets slower faster than hardware gets faster.
Every program attempts to expand until it can read mail. Those programs which cannot so expand are replaced by ones which can.
Once men turned their thinking over to machines in the hope that this would set them free. But that only permitted other men with machines to enslave them.
Low resolution but enough to make the point.
See also: Every Website in 2019 and 2018. The mobile web is a garbage nightmare shitshow (especially if you want to read any fucking news.)
Just some quick notes about a piece of shit from the hit machine that is Conservative Tech.
The Freedom Phone is another grift for those inside the Sphere of Shit who are upset that their Orange Daddy got censored by Facebook (that mighty ethical paragon of Silicon Valley) and Twitter (they aight.) It’s about empowering Conservatives, and is a fine device for Newsmax-lobotomized patriots who proactively disregard their own digital safety and well-being in the interest of sticking it to the Libs as much as possible.
It’s a skinned Umdigi A9 Pro you can pick up from AliExpress for $120 but which is sold through the website for $500 (plus $20 shipping because the grift never stops.)
It’s manufactured in Shenzhen, China, although you can totally ignore this like the good Conservative you are and lie about how it’s actually made in Hong Kong (which is a part of China) and hence supports the good democratic anti-China people there with zero fucking evidence.
It runs FreedomOS, of course, which is a “blend of AOSP, LineageOS, GrapheneOS, and our personal development.” Because you have total and complete Freedom of Choice, it has preloaded Conservative-friendly apps like MeWe, Parler, Newsmax, and Rumble (a YouTube competitor that will definitely be around two years from now.)
Need more Conservative-friendly apps? You can get them from the uncensorable “PatriApp Store.” Yes, that’s the actual name. Who needs Liberal creatives when you can just ask your Aunt Sally to smush some shit together? And no more Big Tech censoring you! ‘Uncensorable’ also absolves the PatriApp store of any responsibility apropos terrible exploitative or neo-Nazi content. Freedom is freedom is freedom.
It’s a fucking nightmare. But it’s not a problem if you’re willing to give up on personal liberty, safety, ethics, humanity, and data if you’ve just had it with anyone who hurts your Daddy’s fee-fees and doesn’t love him as much as you do.
It’s Erik Finman. He has, in his own words, “made it in Silicon Valley and accomplished a lot in my life already.” How, you ask? He invested in BitCoin when he was a wee lad and his investment is now worth some millions.
That’s it.
But winning the lottery makes this Discount Bin Steve Jobs completely trustworthy and eminently capable of dealing with supply-chains, ISPs, regulatory bodies, software and hardware engineering, and the few thousand moving parts needed to create a modern phone and ecosystem worth a shit. It’s not his fault though. As Conservatives like to say, the problem isn’t tech oligopolies… it’s regulation bro 🧐😡
Enjoy. Plucking MLK’s “I Have A Dream” speech out of its context is totally appropriate here.
Absolute fucking morons aside, a few Conservative people with large followings did express a lot of interest in this horror but appear to still spew their bile onto the internet with their iPhones and Androids.
The entire infotainment system is a HTML 5 super computer,” Milton said. “That’s the standard language for computer programmers around the world, so using it let’s [sic] us build our own chips. And HTML 5 is very secure. Every component is linked on the data network, all speaking the same language. It’s not a bunch of separate systems that somehow still manage to communicate.
Note that the company still had a market cap of $5B at the time of this writing.
The key takeaways in no particular order.
<noscript>
. If you are using it, use it a lot more.I’m omitting CDN uptime (can’t do anything about this) and Browser compatibility (supporting 5+ year-old browsers is not something I care about doing given the work I do.)
Finally, not every fucking thing needs to be an App. For instance, your Terms of Service page can actually be a document on the Internet 😱
And not just the ones you install. I know of situations where a Chrome plugin was mandated by Corporate IT security (not my current employer.) ↩︎
If you’ve ever installed a program using “
curl XYZ | sh
” don’t worry about what’s in the vaccine
♥️♥️♥️
The point is, some products are sold directly to the end user, and are forced to prioritize usability. Other products are sold to an intermediary whose concerns are typically different from the user’s needs. Such products don’t HAVE to end up as unusable garbage, but usually do.
Jira and Confluence, which I use at work, come to mind as formerly amazing products which have gone down the shitter with unnecessary Enterprise™ feature-bloat over the past few years. I wonder if there’s a way out of this mire (maybe start saying “No”?) Until then, #jobsecurity I guess.
My university just announced that it’s dumping Blackboard, and there was much rejoicing. Why is Blackboard universally reviled? There’s a standard story of why “enterprise software” sucks. If you’ll bear with me, I think this is best appreciated by talking about… baby clothes!
There are two types of baby outfits. The first is targeted at people buying gifts. It’s irresistible on the rack. It has no fewer than 18 buttons. At least 3 people are needed to get a screaming baby into it. It’s worn once, so you can send a photo to the gifter, then discarded.
Other baby outfits are meant for parents. They’re marked “Easy On, Easy Off” or some such, and they really mean it. Zippers aren’t easy enough so they fasten using MAGNETS. A busy parent (i.e. a parent) can change an outfit in 5 seconds, one handed, before rushing to work.
The point is, some products are sold directly to the end user, and are forced to prioritize usability. Other products are sold to an intermediary whose concerns are typically different from the user’s needs. Such products don’t HAVE to end up as unusable garbage, but usually do.
OK, back to Blackboard! It’s actually designed to look extremely attractive to the administrators (not professors and definitely not students) who make purchase decisions. Since they can’t easily test usability, they instead make comparisons based on… checklists of features. 🤦🏽♂️
And that’s exactly what’s wrong with Blackboard. It has every feature ever dreamed up. But like anything designed by a committee, the interface is incoherent and any task requires at least fifteen clicks (and that’s if you even remember the correct sequence the first time).
Software companies can be breathtakingly clueless when there’s a layer of indirection between them and their users. Everyone who’s suffered through Blackboard will have the same reaction to this: try having less functionality! edscoop.com/how-canvas-cam…
The grumbling about Blackboard has finally gotten loud enough that schools are paying a modicum of attention to usability when evaluating alternatives. Blackboard’s market share has dropped dramatically and this will probably continue. Good.
Here’s the kicker, though. It’s extremely likely that whichever vendor emerges on top will fall into the same trap. The incentives almost guarantee it. Once profs and students put down the pitchforks, committees will go back to their checklists, and feature creep will resume.
Blackboard is 20 years old. If Twitter is around in 20 years, let’s see how this prediction holds up. And now I have to go rescue a three-month old from an extremely cute and equally uncomfortable outfit.
Estimate | Actual Time |
---|---|
Very Easy | 1 Hour |
Easy | 2 Hours |
Quite Easy | 4 Hours |
Looks Quite Easy | 6 Hours |
Average | 8 Hours |
Looks Average | 12 Hours |
No Clue | 16 Hours |
Seems Complex | 24 Hours |
Complex | 30 Hours |
Very Complex | 40 Hours |
Can Take Some Time | 48 Hours |
Fuck | 60 Hours |
Yeah Looks Pretty Easy | 80 Hours |
Combine: “No Clue. Can take some time, but yeah… looks pretty easy” = 16 + 48 + 80 = 144 hours.
Source Unknown. See also: “Midwest Distances”
No. It’s just a fucking operating system1. A giant program on a computer. What weird, disconnected, embarrassing bullshit ‘spiritual’ techbro nonsense.
“We made a website full of memes you can search through, powered by Bitcoin and Machine-Learning (of course), and are changing the world.” No. Stop it.
I think I’m cranky because I’m hungry 🍕
me, a software engineer: large scale production systems are complex and require teams of experts to keep running. It’s near impossible to get right 100% of the time
me, when an app I use goes down once: these fucking clowns, what the fuck
Uber in 2016: “We have thousands of microservices.”
Everyone: “That sounds insane."Uber in 2020: “It turns out that was insane.”
“For all that we’ve been able to achieve while many of us have been separated, the truth is that there has been something essential missing from this past year: each other,” [Tim Cook] said. “Video conference calling has narrowed the distance between us, to be sure, but there are things it simply cannot replicate.”
[…] “For now, let me simply say that I look forward to seeing your faces,” he said in closing. “I know I’m not alone in missing the hum of activity, the energy, creativity and collaboration of our in-person meetings and the sense of community we’ve all built.”
“Come back or get fired. We didn’t build this giant spaceship for nothing. And how’s our overpaid middle-management supposed to micro-manage you?”
One of the most disheartening charts I’ve seen about the current hyperpartisan political climate. We fear each other so much more.
– Source
I suppose all’s fine and dandy if you’re in news or social media and are spiritually obligated to deliver Value™ to stakeholders via those almighty engagement metrics that do nothing more than sow rancor among people who have a lot more in common than they’re led to believe. All Facebook does is hold a mirror up to society. All the news media does is report. Ethics and responsibility are for the Value™-illiterate. The only thing that matters, as the society and country you and your children live in devours itself, is making gobs of cash.
Here’s some Buzzword Bingo based on these words by the same company.
This is for children under 13. Because children over 13 engage with Social Media in very healthy and fruitful ways.
“They are also simply too young to navigate the complexities of what they encounter online, including inappropriate content and online relationships where other users, including predators, can cloak their identities using the anonymity of the internet,” the letter reads.
[…] “Without a doubt, this is a dangerous idea that risks the safety of our children and puts them directly in harm’s way,” New York’s attorney general, Letitia James, said in a statement Monday. “There are too many concerns to let Facebook move forward with this ill-conceived idea, which is why we are calling on the company to abandon its launch of Instagram Kids. We must continue to ensure the health and wellness of our next generation and beyond.”
What AG James fails to understand is that cradle-to-grave engagement greatly enhances Shareholder Value. This is the only thing in the world that matters. Here’s the Plastic Shithead Overlord who runs the sordid business:
“I think helping people stay connected with friends and learn about different content online is broadly positive,” Zuckerberg said. “There are clearly issues that need to be thought through and worked out, including how parents can control the experience of kids, especially of kids under the age of 13 but I think that something like this could be quite helpful for a lot of people.”
And why should Value be affected by the few tens of thousands of children who may not enjoy the the “broadly positive” effects of our product which has issues to be worked out?
You see, Value cannot (and should not) be shackled by the kind of careful research and measured approach that considers a target audience’s well-being. If such research by the so-called-experts establishes that our venture is, indeed, harmful to children, it will (and ought to be) brushed aside against their remonstrations. All Facebook does is “hold a mirror up to society”1 and extract Value from whatever it finds ♥️
A shithouse company run by terrible human beings. But I hear the compensation is… *chef’s kiss*.
I’ve heard this lovely sentiment from quite a few Facebook employees. ↩︎
Because the only thing that matters is delivering Value to shareholders. (cached)
Incidentally, and to the “huh” of many Value-illiterate people, defending totalitarian governments is exactly how one gives “people the power to build community and bring the world closer together.”
I love this more than I can describe.
“Every program attempts to expand until it can read mail. Those programs which cannot so expand are replaced by ones which can.” Coined by Jamie Zawinski (who called it the “Law of Software Envelopment”) to express his belief that all truly useful programs experience pressure to evolve into toolkits and application platforms (the mailer thing, he says, is just a side effect of that). It is commonly cited, though with widely varying degrees of accuracy.
I’m not a great developer, I’m just really good at finding the magic one-liner fix on the 14th page on a repo’s GitHub Issues
Well… not really. Maybe. Brian Will examines the history of the OOP way of thinking and it’s over-application as a panacea to every problem domain, particularly in The Enterprise™
This is what it takes to view a read a bloody article with a PiHole to block ads. I don’t even want to get started on the AMP nonsense. First, a focus-stealing popup asking if you’d like to subscribe to some bullshit.
.
.
.
followed by another popup asking you’d subscribe to more bullshit.
.
.
.
after which you can finally see what you came for… which helpfully occupies the bottom 20% of the viewport 💯
See also: Every Website in 2019. Nothing will change.
Dear web developers, The answer is zero. Zero. Get it through your thick skulls. Zero is the number of times anyone has EVER wanted something to autoplay on your site and start making noise. I’d honestly rather you mine crypto-currency in my browser than use my speakers. #kthxbye
“Our hip product designers all agree: Adding significant noise via tiny profile pictures allows our users to tell, at a glance, who is online and who isn’t.”
“And no, you cannot opt out. Because fuck you. What’re your options? MatterMost? 🖕😂🖕”
to the House Committee on Energy and Commerce on Facebook’s engagement practices and likens them to time-tested strategies used by Big Tobacco before they were somewhat regulated.
And he would know. Kendall was the former “Director of Monetization” at Facebook and is currently the CEO of Moment, a company that seeks to help people “build healthier relationships with their phones.” Which I suppose is one way to atone.
The software industry is currently going through the “disposable plastic” crisis the physical world went through in the mid-20th century (and is still paying down the debt for). You can run software from 1980 or 2005 on a modern desktop without too much hassle, but anything between there and 2-3 years ago? Black hole of fad frameworks and brittle dependencies. Computer Archaeology is going to become a full-time job.
– Source
Source. See also: Every website in 2018
Being a satirical take on the state of enterprise software development, and authored by smart people who presumably like to watch the world burn. The issues are highly entertaining as well.
On tech culture’s obsession with quantifying and optimizing every single moment of one’s existence1:
I hate this framing. It is pressuring, dehumanizing as it contextualizes human endeavor in transactional terms, usually in a market.
I know this goes against the ethos of high-tech, but humans don’t have an imperative to be as productive as possible. They don’t have to make the most use of their time. They don’t have to get as efficient as they could. These are metrics that work fine for our machines, our code. But humans are not machines. Sure, we shepherd the machines, and sure sometimes we are in rivalrous dynamics that increasing efficiency has a payoff, but it is never the goal in itself.
The real “currency” we have, if we are using the term in the sense of denoting essentialness, is our humanness, our mortality, our psyches, our connection with other people and seemingly mundane but meaningful parts of our lives. I mean, look how many of us started baking their breads and enjoying it. It is not a wise use of the “currency of time”, but it is part of life very well spent, as our internal reward mechanisms have been telling us.
– @acituan on HackerNews, commenting on this article
With corroboration via sophomoric interpretations of stoicism and objectivism, all aimed at summoning this latent, dispassionate übermensch whose sole purpose is to “leverage” and deliver value. ↩︎
I’ve usually heard this phenomenon called “incidental duplication”, and it’s something I find myself teaching junior engineers about quite often.
There are a lot of situations where 3-5 lines of many methods follow basically the same pattern, and it can be aggravating to look at. “Don’t repeat yourself!” Right?
So you try to extract that boilerplate into a method, and it’s fine until the very next change. Then you need to start passing options and configuration into your helper method… and before long your helper method is extremely difficult to reason about, because it’s actually handling a dozen cases that are superficially similar but full of important differences in the details.
I encourage my devs to follow a rule of thumb: don’t extract repetitive code right away, try and build the feature you’re working on with the duplication in place first. Let the code go through a few evolutions and waves of change. Then one of two things are likely to happen:
- you find that the code doesn’t look so repetitive anymore, or,
- you hit a bug where you needed to make the same change to the boilerplate in six places and you missed one.
In scenario 1, you can sigh and say “yeah it turned out to be incidental duplication, it’s not bothering me anymore.” In scenario 2, it’s probably time for a careful refactoring to pull out the bits that have proven to be identical (and, importantly, must be identical across all of the instances of the code).
Whatever. I say we continue to abstract away and make better and better hammer factories and beam at our sophistication in creating unnecessary complexity #jobsecurity
Dec 9 It’s so bad a Swiss company made a much saner substitute that sells for ~$20.
Nov 16 Looks like you can use the old remote with the new AppleTV.
I’m annoyed every time I have to use the infernal thing.
I use the iPhone app when I can and, while I can’t stand the terribly implemented inertial scroll, still find it better than the hardware.
Inertial scrolling does in fact exist on the Siri remote, but the effect is muted. The on-screen movement doesn’t accurately reflect your swiping — scrolling is staggered and it often stops abruptly, when you don’t intend to stop. This makes aspects of navigation, like manual search or entering your email address or password, extremely cumbersome.
– Dave Smith, “My biggest problem with the new Apple TV remote”
See also: Steve Brykman of ArsTechnica’s thoughts on “the nightmare horrorshow” that’s the remote.
“You’re basically getting a giant iPad game that you have to play with a tiny remote” ↩︎
I absolutely love Dustin Curtis’ splendid explanation of “AppleTV” branding that’s making making the rounds on HN. For posterity, I stole this handy color-coded transcription off Michael Tsai’s blog.
See also: The intractably stupid AppleTV Remote.
When I was little — and by the way, I was little once — my father told me a story about an 18th century watchmaker. And what this guy had done: he used to produce these fabulously beautiful watches.
And one day, one of his customers came into his workshop and asked him to clean the watch that he’d bought. And the guy took it apart, and one of the things he pulled out was one of the balance wheels. And as he did so, his customer noticed that on the back side of the balance wheel was an engraving, were words.
And he said to the guy, “Why have you put stuff on the back that no one will ever see?” And the watchmaker turned around and said, “God can see it.”
Now I’m not in the least bit religious, neither was my father, but at that point, I noticed something happening here. I felt something in this plexus of blood vessels and nerves, and there must be some muscles in there as well somewhere, I guess. But I felt something. And it was a physiological response. And from that point on, from my age at the time, I began to think of things in a different way. And as I took on my career as a designer, I began to ask myself the simple question: Do we actually think beauty, or do we feel it?
I want it to be as beautiful as possible, even if it’s inside the box. A great carpenter isn’t going to use lousy wood for the back of a cabinet, even though nobody’s going to see it. When you’re a carpenter making a beautiful chest of drawers, you’re not going to use a piece of plywood on the back, even though it faces the wall and nobody will ever see it. You’ll know it’s there, so you’re going to use a beautiful piece of wood on the back. For you to sleep well at night, the aesthetic, the quality, has to be carried all the way through.
Do quite a bit more, good and invisible things, than required for the MVP or for the bloody “sprint.” You will then smile a lot and sleep quite well indeed. Excellence is a habit. It is yours. Nobody steals this from you.
Saved here via Stephanie Harcrow’s post.
No Code is the best way to write secure and reliable applications. Write nothing; deploy nowhere.
Start by not writing any code.
Brilliant. I love both the presence and contents of the Dockerfile
in that repo. As is always the case with such projects, the issues and pull requests are 💯
And if one is tempted to go against the tenets of No Code, there’s always my beloved fuckitpy, a (strangely well-thought-out) “Python error steamroller”1:
@fuckit
def buggy_function():
problem_solved
@fuckit
class BuggyClass(object):
def __init__(self):
everything_works_now
And:
This module is like violence: if it doesn’t work, you just need more of it.
See also: The Fuck, another Python-based utility that addresses CLI frustrations.
Back in the second century BC, Cato the Elder ended his speeches with the phrase ‘Carthago delenda est,’ which is to say, ‘Carthage must be destroyed.’ It didn’t matter what the ostensible topic of the speech was: above all, Carthage must be destroyed.
My opinion towards JavaScript is much like Cato’s towards Carthage: it must be rooted out, eliminated and destroyed entirely. I don’t know if I’d go quite so far as to say that the fundamental challenge of mass computing is the final destruction of JavaScript — but I want to say it, even though it’s false.
JavaScript is a pox, a disaster, a shame. It is the most embarrassingly bad thing to become popular in computing since Windows 3.1. Its one virtue (that it’s on every client device) is outshone by its plethora of flaws in much the same way that a matchstick is outshone by the sun, the stars and the primordial energy of the Big Bang added together.
JavaScript is the XML, the Yugo, the Therac-25 of programming languages. The sheer amount of human effort which has been expended working around its fundamental flaws instead of advancing the development of mankind is astounding. The fact that people would take this paragon of wasted opportunity and use it on the server side, where there are so many better alternatives (to a first approximation, every other programming language ever used), is utterly appalling.
JavaScript delenda est.
I don’t know what my newfound affection for it says about me. Via HackerNews.
At least in Civilization:
[. . .] Gandhi tends to be the first to use nuclear weapons, and spares no expense on wiping your civilization off the map. You probably always thought you were crazy — how could a series that prides itself on historical accuracy portray Gandhi so wrong? Well, you’ll be happy to know that both your sanity and Civilization’s historical integrity aren’t at fault. Instead, a bug’s to blame.
In the earlier Civs, leaders are given a set of attributes that dictate their behavior. One such attribute is a number scale associated with aggressiveness. Gandhi was given the lowest number possible, a rating of 1. However, when a civilization adopted democracy, it granted a civilization -2 to opponent aggression levels. This sent Gandhi’s rating of 1 into the negative, which swung it back around to 255 — the highest possible rating available, and thus, the infamous warmonger Gandhi was born.
– Geek.com, What caused Gandhi’s insatiable bloodlust in Civilization
And they just left it in there as an homage:
This cyclical aggression scale was fixed in later versions of the game, but Gandhi wasn’t totally cured of his bloodlust. The team fixed Gandhi’s aggression rating, but as an Easter egg paying homage to the earlier aggressive versions of Gandhi, ramped his nuke rating through the roof. So, while it may be difficult to push Gandhi over the edge, he goes from zero to nuclear option once you do.
Via MS.
OOP to me means only messaging, local retention and protection and hiding of state-process, and extreme late-binding of all things. It can be done in Smalltalk and in LISP. There are possibly other systems in which this is possible, but I’m not aware of them.
– Dr. Alan Kay on the Meaning of “Object-Oriented Programming”
So… Erlang? (RIP Joe Armstrong 🙏) And that was before this
(I’m not against types, but I don’t know of any type systems that aren’t a complete pain, so I still like dynamic typing.)
Indeed, Dr. Kay.
A great complement to the book.
When I think of Theranos, I really think that there were two entirely different worlds. There was the carpeted world and there was the tiled world. In the carpeted world where Elizabeth was a goddess. Everyone, you know, almost worshipped the ground she walked on. She could do no wrong. She was the next Steve Jobs. Theranos was changing the world. And then you go into the tiled side and nothing works. We’re on a sinking ship. Everything is a lie. Reconciling the differences between those two worlds was really hard for me to do.
[…] I would leave the tiled world thinking, ‘Oh man, sinking ship.’ And I would go have one conversation with Elizabeth. And I would be so motivated to go back and work and I felt like I was changing the world again. And I would go back into the tiled world and I would go, ‘Wait, what just happened?’ You want it to be true so badly and even for me, I was working with these devices every single day and she could still kind of convince me. When I think back on those conversations, I just think ‘How did she do that?’
In programming, it is also common to refer to the “NIH syndrome” as the tendency towards reinventing the wheel (reimplementing something that is already available) based on the belief that in-house developments are inherently better suited, more secure, more controlled, quicker to develop, and incur lower overall cost (including maintenance cost) than using existing implementations. In-house developments are often collaborative with each other. When two in-house developments come together, it is informally known as “computer incest.”
Found when I was looking for a dependency-free XML-to-JSON parser wherein the author notes the “fine NIH tradition of JavaScript developers everywhere.” Reminded me of this
Shturmovshchina was a common Soviet work practice of frantic and overtime work at the end of a planning period in order to fulfill the planned production target. The practice usually gave rise to products of poor quality at the end of a planning cycle.
It has three very, very familiar stages
- Spiachka (hibernation) – this is the first third of the planned period. Nobody’s doing anything, mostly because there are no orders to do anything
- Raskachka (buildup) – at this stage it is more or less known what should be done, but there is too much time ahead, and during that time the requirements may change, as well as the management;
- Goriachka (fever) – this is the last stage of the planned period; by the end of this stage the product is supposed to be ready, or the management may be reprimanded; everybody works like crazy, with the bright future being so near.
For a single project I made the mistake of working on in my Dropbox folder:
Wonder what the downsides are to hardlinking by default. And, fundamentally, why creating an amazing, Python-like standard library is such an intractable problem in the first place.
[. . .]
core-js
is also utils library, quite a big one honestly! It has so many functions inside I bet a lot of other packages will be using it!Not really. Only
babel-runtime
has it in its deps. Oopsie.
And returning to the starting point,cli
uses only 3 (trivial) methods from common-tags —stripIndents
,stripIndent
,oneLine
. Oopsie daisy.In order to use these 3 methods
node_modules
needs 1826 files. And that’s just 4 of mentioned 976 installed packages.
– Mateusz Morszczyzna, What’s really wrong with node_modules and why this is your fault
🤦♂️ The portion of the article that listed functionally similar packages and is-*
packages was particularly dismaying. As he points out, there’s a good reason why jQuery and lodash are as immensely popular as they are1.
Was wondering if we’ll ever get back to the magic of hand-crafted web pages and found this article which led me to this modern Geocities clone 💖 ↩︎
In addition, engineers have commoditized many technical solutions that used to be challenging in the past 15 years. Scaling used to be a tough challenge, not any more for many companies. In fact, part of my daily job is to prevent passionate engineers from reinventing wheels in the name of achieving scalability. It’s not because we don’t need to solve scalability problems, but because the infrastructure is good enough for most of companies. Building and operating so called “big data platform” used to be hard, not that hard any more. Building machine learning pipeline used to be hard, not that hard any more for many companies. Of course, it’s still challenging to build a highly flexible and automated machine learning pipeline with full support of closed feedback loop, but many companies can get by without that level of maturity.
– via Hacker News (emphasis mine)
Saw this minor dis by Safari
and then this video on the history of Java. Also by the author: something of a tribute to Flash (RIP.)
margin: 0;
padding: 0;
...
margin: 0 !important;
padding: 0 !important;
...
sudo margin: 0 !important;
sudo padding: 0 !important
via @thebarrytone
What’s going on is that without some kind of direct experience to use as a touchstone, people don’t have the context that gives them a place in their minds to put the things you are telling them. The things you say often don’t stick, and the few things that do stick are often distorted. Also, most people aren’t very good at visualizing hypotheticals, at imagining what something they haven’t experienced might be like, or even what something they have experienced might be like if it were somewhat different.
and
When people ask me about my life’s ambitions, I often joke that my goal is to become independently wealthy so that I can afford to get some work done. Mainly that’s about being able to do things without having to explain them first, so that the finished product can be the explanation. I think this will be a major labor saving improvement.
XKCD. Add to the mix
Then there’s Python’s packaging and distribution kerfuffle…