thirty things tagged “tech hell”
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.
“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.
And here’s 2018. I don’t even want to start on the state of the mobile web, especially news websites.
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.
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. ↩︎
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.
- It tries (poorly) to be something other than a damn TV remote1.
- There’s no way to tell which end is up.
- There’s no accidental tap detection when you pick it up.
- It’s way too small.
- It’s way too slippery.
- I use Siri to skip forward and backward because the edge clicks are unmemorable and dysfunctional.
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.
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.
Do quite a bit more, good and invisible things, than required for the MVP for the bloody “sprint”. You will then smile a lot and sleep quite well indeed. Excellence is a habit.
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.
@fuckit def buggy_function(): problem_solved @fuckit class BuggyClass(object): def __init__(self): everything_works_now
This module is like violence: if it doesn’t work, you just need more of it.
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.
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.
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.
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.
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.”
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-jsis 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-runtimehas it in its deps. Oopsie.
And returning to the starting point,
cliuses only 3 (trivial) methods from common-tags —
oneLine. Oopsie daisy.
In order to use these 3 methods
node_modulesneeds 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.
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
margin: 0; padding: 0; ... margin: 0 !important; padding: 0 !important; ... sudo margin: 0 !important; sudo padding: 0 !important
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.
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…