1,128 karma · joined May 2, 2021
What makes you think she hasn't done this? The point of the article is that "tools for thought" as presented by Ken Iverson and others are a narrow focus in a much broader subject. Since her aim is to zoom out it makes sense to defer mention of Iverson. It's not indicative that she hasn't engaged with or understood his work.
It can't be. Using "markdown" for config really means building a shitty ad hoc configuration language and embedding it in markdown. I've seen this a few times and it's always a disaster.
The only way I've found to make configuration tolerable is to go in the opposite direction and turn it into code with a declarative eDSL. For example Pulumi's typescript API is an absolute godsend after years of toiling away on HCL and YAML.
>but that doesn't mean anyone can say "the workplace is rigged" against them.
You absolutely can. "X is rigged against them" is the social model of disability in a nutshell. Workplaces with rigid early schedules are rigged against people with sleep disorders and late chronotypes the same way buildings with no ramps or elevators are rigged against people in wheelchairs and on crutches.
Once everyone is out of college the biological differences become a bit more noticeable. Most people will "fix" their sleeping relatively easily. Others will struggle at first but eventually make it work by adopting strict sleep hygiene and routine. Then a few will find that no amount of sleep hygiene gets them into a good cycle for the standard working day. For some of them the issue will be severe enough to qualify as a clinical disorder like DSPD. DSPD is known to be extremely difficult to treat.
1. Crosses and squares being used instead of check marks.
2. Circles being used as containers instead of boxes.
3. Toggle switches being presented as checkboxes.
Maybe 5-10 of these are good inspiration for checkboxes.
FWIW this idea has been losing some ground to the double empathy problem. People who aren't on the spectrum have corresponding poor theory of mind and empathy towards those who are. The problem is at least partially symmetric.
I've noticed a form of cultural cringe in developer communities where we assume that developers tend to be on the spectrum, have uniquely poor communication and social skills and cause social problems more than other working professionals. It's contrary to what I have seen in real life which is that dev teams socialize effectively and form cohesive and healthy cultures as much as any other field. That developers are usually the ones promoting better written norms and more thoughtful and thorough written communication.
The "assumed context" problem is common everywhere. Poor communication, anti-social and toxic behavior are common everywhere in most organizations. Developers are self-conscious of our poor social skills to an extent that is not matched elsewhere.
Problems seem to begin when product management is externalized from the product teams, put into dedicated teams or departments. The role is seen as something like "telling the devs what to build and making sure they build it."
Thinking that managers are bad in general is only a sign of inexperience because it implies someone has never worked in a place with good management before. I've seen plenty of "fuck management" types completely chill out after moving to a better workplace.
Where the "double absence" issue comes up in practice, it's usually in a context where it does make sense to represent and handle the first type of absence separately from the second type.
What I'm wondering is how people who have an issue with different representations of absence would approach (or avoid?) situations requiring them.
{"foo": null} and {}
Because they are different, right?
The main issue I have seen in startups is premature architecture complexity. Lambda soup, multiple databases, self-managed message brokers, unnecessary caching, microservices etc. Whether you use K8s or not, architectural complexity will bite your head off at small scales. K8s is an enabler for overly complicated architectures but it is not problematic with simple ones.
>Did users ask for this?
Not an argument. Users don't ask for implementation details. They don't ask us to use Git or build automation or React. But if you always opt for less sophisticated workflows and technologies in the name of "just getting stuff done right now" you will end up bogged down really quickly. As in, weeks or months. I've worked with teams who wanted to email source archives around because Git was "too complicated." At some point you have to make the call of what is and isn't worth it. And that depends on the product, the team, projected future decisions and so on.
Depends on your health insurance, financial standing and free time. If you're an affluent tech worker you probably would go to a dentist for a toothache. Most people I know would not.
I wouldn't compare mental health to broken bones. We've been successfully treating broken bones for thousands of years. Seeking treatment for depression or generalized anxiety is more similar to seeing a doctor for some poorly understood malady like ME/CFS or IBS. No one really understands what's going on or why. You might try some medication or treatment and it might work, do nothing or make things worse.
It's worth a try but it's not a silver bullet. If your life sucks and your future prospects are bad then therapy is really just helping you cope.
>In addition to prototyping, Dan put together a reference card for users. If we couldn't figure out how to explain a feature on the reference card we would change the program. The original method for copying formulas was too complicated so we just changed the design rather than try to explain it.
Sounds like the reference card came after prototyping and was used as feedback in an iterative prototyping process. Pretty standard. This isn't "write before you code."
The OP is just content marketing for some proofreading software. No one actually thinks this stuff is an epiphany unless they are completely unfamiliar with the history of the field.
Generation of legible diagrams could be accomplished on a domain or framework basis where code is subject to local patterns and can be structured "for" generation. We see this with things like OpenAPI schema generation.
Ultimately I think diagramming isn't prioritized because diagrams themselves aren't that valuable. They're just a medium for the actually valuable thing: high level representations.
So the fallacy behind the fake polymath is not the idea that being smart makes you better at analyzing information. It's the idea that being smart is a substitute for information and expertise. This mistaken assumption can lead smart engineers to beliefs that subject matter experts consider religious or delusional. Mars colonization is a great example in Elon Musk's case.
Btw most of the general training you mentioned isn't part of STEM and is historically associated with humanities subjects like law and philosophy instead. In STEM you typically work with set epistemic frameworks with unambiguous correct and incorrect answers. In this sense, engineers actually learn the opposite of critical thinking and discourse.
There seems to be a "pseudo-polymath" personality type among some engineers. Based on an unexamined but deeply held philosophical belief that engineering concepts and ways of thinking neatly generalize to all fields. The pseudo-polymath engineer is an instant expert in anything he bothers to turn his mind to and subsequently systematize.
Engineers who think they have unique outsider insight into an unrelated field like medicine or cognitive science should tread very carefully. If you can, try to validate your ideas and assumptions with a subject matter expert. Don't underestimate the large stock of knowledge and discourse that already exists in these fields.
Thinking you have an I-told-you-so moment with static typing and dynamic languages only shows you don't understand the details and tradeoffs in the design space. For example TypeScript's approach to static typing is very different to Java's and these differences reflect consideration of the problems being solved, JavaScript's specific use cases, its history and the path dependence of its design. Because these details are invisible to you the whole thing is simplified in your mind to "everyone is switching to static typing just like I said they should!" In fact this type of prognostication was never useful or meaningful. The hard part wasn't deciding to build static typing onto JavaScript. The hard part was determining specifically what that should look like, how it would fit nicely with the language and then doing the work of building it and driving adoption.
TypeScript is successful not because it is static typing but because it is a form of static typing that's exceptionally well suited to JavaScript and its use cases. If people like you had their way it would have been a failed attempt to bolt a Java style type system onto JavaScript, worsening the design debt in a language and ecosystem that is already loaded with it. This already happened on a smaller scale with classes in ES6 which were driven by Java devs writing JavaScript and wanting something familiar instead of trying to understand the language.
You might be right that adding pattern matching to Java isn't a great idea but at the moment your disagreement is based in ignorance. You've been given ample explanations of pattern matching in this thread. Put down the ego and take some time to learn on your own.