863 Matching Annotations
  1. Nov 2022
    1. Kids used computers to make things in 1983! There was complete gender parity.

      What happened?

      Is the cause some association of computers with antisocial lifestyles? The curt and difficult personalities of many people who work with software? The reputation of "gamers"?

    1. “the computer being used to program the child.”

      This feels like today's reality - we don't have computing agency!

    1. “The highest purpose is to have no purpose at all,” Cage wrote.

      Doing things is good actually

    2. “4’33” ” reframes the ambient sound around us as beautiful music that’s worthy of attention, whatever it is, even the sound of people grumbling or the leaves rustling overhead.

      4'33" isn't a minimalist work because it contains so little deliberate sound. It is minimalist because it encourages the listener to focus on the ambient noise around them.

    1. If linking were truly at the heart of the web’s design, a user (not just a developer) could supply their own preferred editor easily, but such a feat is almost always impossible.

      If we have control over the browser, it should be possible at the window management level to render some native text box instead of the textarea provided, injecting keystrokes and activating the properties necessary, but adding some modal editing functionality to the corresponding area.

      I think it makes sense to bundle the browser with the window manager; the browser can't be given privileges, but it can be run with the same level of expressiveness. ChromeOS' web-first philosophy is one step towards this idea, but doesn't provide cool enough customizability or native tools to make it an OS for forever

    1. class Program { public static void Main()

      Is it wrong for me to refuse to use this language because of this...

    1. Concatenative languages have a much simpler basis—there are only functions and compositions, and evaluation is just the simplification of functions.

      This is an oversimplification; the semantics are still concerned with a stack machine, and the user of the system has to hold the entire stack - this external system - in their context. The lambda calculus is only concerned with the current expression.

    1. you, too, have structures on one side of your head representing what you know about, say, Neil Armstrong, and a smaller structure on the other side of your brain encoding the name “Neil Armstrong,” and cognitive mechanisms allowing you to fetch the former given the latter.

      Brain is expressive query system that, given some constraints about some information, is able to retrieve lots of associated information from context. It's notably fairly difficult to demand precisely the information you want to receive.

    1. For any given problem, PL has its own powerful solution that can’t be replicated in other disciplines.

      A lot of the time some problem can be expressed as a query in some expressive database system more optimally

    1. I wouldn’t bother wasting time with lexer or parser generators and other so-called compiler compilers. They’re a waste of time. Writing a lexer and parser is a tiny percentage of the job of writing a compiler. Using a generator will take up about as much time as writing one by hand, and it will marry you to the generator (which matters when porting the compiler to a new platform). Generators also have the unfortunate reputation of emitting lousy error messages.

      Why are there so many of them? It's okay to roll your own recursive descent parser. It's probably possible to abstract such a system, but not in such a way that uses another file format, specification or other, external system. Such a library should be native to the language it's expressed in.

    1. Prefixes in Frink are just multipliers. I can write kilofeet and it automatically knows that means “1000 feet”. Frink also knows common terms like half and square.

      optimized for usability!

    2. That’s a good design choice for F#’s goals. It adds boilerplate but keeps your software from going haywire. This is appropriate for industrial software where a lot of people could be affected by a bug.

      Create a wrapper type for every measurement, then implement conversion functions to and from some measures A and B that untag and retag the values with types; units are implicitly enforced by constructors

    1. Shel wrote Mailman in C, and Customer Service wrapped it in Lisp. Emacs-Lisp.

      What.............

    2. it's so easy to write a C compiler that you can build tools on top of C that act like introspection

      ...that adheres to GCC's "spec"?

    3. you choose a language for day-to-day programming based on its libraries, documentation, tools support, OS integration, resources, and a host of other things that have very little to do with how computers work, and a whole lot to do with how people work.

      tools don't matter; people do

    1. '90s personal webpage (complete with ~).

      isnt.online/~jake/

    1. Compiler error messages are an important tool that a language offers its programmers, and for novices their feedback is particularly critical. It is not possible to continue development until a program compiles, and these messages are often the primary source of feedback on the errors students make.

      Interactive programming provides the same benefits - compiler errors are better studied, sure, but interactive programming provides very real benefits - they mirror the experimental reasoning of the real world! Unclear what's better here.

    2. A number of experiments have been performed that show a positive impact of static type systems over dynamic type systems. This benefit was found in situations where developers had to use an API that was new to them.

      This is the context in which static typing is good, sure, but dynamic typing is far more agile when producing incomplete and buggy programs. Incomplete and buggy programs are wonderful because it's important to test programs in the real world and allow non-programmers to use them before they are complete; formalizing types is a lot of the work.

    1. Heap allocations are much slower than stack allocations

      Answer: Estimate upper bound for stack space and work with this in mind. It's a "virtual stack" - in that we don't get the same benefits as using an L1 or L2 cache or something - but it's far faster than dynamically allocating memory as needed if we can do it all up front.

    1. I hand letter everything.

      This is beautiful! I should try working in this way; can handwrite everything, then convert to SVG or similar for a scalable, compact web representation.

    1. had to be accompanied by opportunities for consumers to network and participate in experiences. So, we developed mindstorms.com, LEGO Mindstorms Centers and FIRST LEGO League.

      What was the impact of this program? Probably on the order of tens of thousands of engineers - right?

    2. MIT Media Lab who had been working closely with LEGO Dacta for several years, worked on a concept they called the “intelligent LEGO brick”

      Why Legos in particular?

    1. Final, that is, until I discovered Webster:

      Consult multiple dictionaries. Learn more about the words you're using to explain yourself!

    2. seeing this awful difference, evidence of a crime that kept piling up in my mind, the guilt building: so many people were getting this wrong impression about words, every day, so many times a day.

      trust a dictionary. explore your words!

    1. To become a leader in the Black King organization, you had to go to college.

      This is wild - requires long-term thinking and official credentials? There is some merit to these organizations.

    2. Maybe Elizabeth Holmes pushing her vision was just like one of those management techniques where you tell an engineer “I bet you can make that code 10x faster” even though you have no clue if it's possible

      ;_;

    3. Holmes wanted it to be awesome, so she declared to the world that it was awesome and told her employees that it was awesome. If people dissented, they were done.

      super epic- believe in the vision!!!!!!!!!!!!!!!!!

    1. The downside to Animal Crossing is that there are still barriers to entry.

      Only barrier to entry to anything should be owning a smartphone

    1. existential types

      Learn more about these!

    2. learning how to translate problems and solutions into type theory should be a core skill of any senior developer. Instead of looking at the industry and seeing a churning sea of novelty, one sees but a polishing of old wisdom. Learning type theory, more than any other subfield of programming languages, fulfills the spirit of the Gian-Carlo Rota quote above, that one should pick a theorizer for a good education.

      Type proofs are powerful - reasoning about progress and preservation motivates understanding of state and transformations.

    1. “work” makes you wait to reap the rewards of your labor until the end, where “play” simply comes with much tighter, often immediate feedback loops

      Making work into play is creating immediate satisfaction. There is no reason for programming to be this miserable buildup of types and functions when we can run something, see it work, and build on it. Make more things feel like games!

      This is why mathematicians say Lean is addictive or why people enjoy the REPL so much, or why tracking things more continuously matters. Smaller dopamine spikes closer together make things feel so much better and continuously motivate future results.

    1. The people who wrote this are morons. They just wrote a simple linear search here. This thing's ordered, so they could have done a binary search. They could have used a hash table here. Why are they doing a linear search?" Well, because a linear search worked. And when the other programmer looked at the linear search, she understood it in a minute.

      Yup. Making easy things works. Hard things may not.

      Stream fusion optimizations are coming that eliminate a lot of constant factors, which are all that are relevant for most programming anyways.

    1. the Lisp Curse still holds.

      Why don't we optimize for the lisp use case? We don't have enough tools to help these programmers working by themselves expand into other worlds. Ideas include: - Function stores with searchabililty, autocomplete, etc. to augment the mind while typing - Contract systems to make it easy to hand off some structured, typed interface to users of the code from other languages while allowing infinite iteration on the coder's side of the fence - Stronger interactive REPL tools and image-based development practices to satisfy those who thrive with immediate feedback

    2. the C/C++ approach is quite different. It's so damn hard to do anything with tweezers and glue that anything significant you do will be a real achievement.

      Lisp, by contrast, is just re-rolling everything

    3. Lisp is so powerful that problems which are technical issues in other programming languages are social issues in Lisp.

      Code reusability and standards; everyone rolls their own libraries because everyone thinks in a different way, so there is no library continuity, but this is okay because the core standards are so expressive that being able to generate effectively is far more important than anything else.

    1. I know Forth is the best language so far.

      After taking courses with John McCarthy himself?

      Forth feels like a language that decays in usefulness in age; the biggest semantic strength of the stack machine paradigm, to me, is the ability to understand exactly what's in your program - and in memory - at any time. As the power of computing improves, there is less and less reason to care.

    2. The file holding the interpreter was labeled FORTH, for 4th (next) generation software - but the operating system restricted file names to 5 characters.

      This is why! Insane.

    3. I left Stanford in 1965 to become a free-lance programmer in the New York City area. This was not unusual, and I found work programming in Fortran, Algol, Jovial, PL/I and various assemblers. I literally carried my card deck about and recoded it as necessary.

      I can't imagine what this looked like. Briefcase of punch cards that could be recorded and reordered?

      Everyone should be able to cultivate their own garden of functions and carry them

    4. Although Stanford was building its computer science department, I was interested in real computing. I was impressed that they could (dared?) write their own Algol compiler.

      What''s "real computing"? Lisp? Spaceships?

    5. Compile took 30 minutes (just like C) but limited computer time meant one run per day, except maybe 3rd shift.

      I can't imagine what this is like. Our feedback loops are so fast that it's insane to me that we're using the same tools. As Jack Rusher said: we should be leveraging machine feedback, not using "punchcard languages"!

    6. October, 1957 was Sputnik - a most exciting time. I was a sophmore at MIT and got a part-time job with SAO (Smithsonian Astrophysical Observatory, 14 syllables) at Harvard.

      So cool. A dream to live in that era and be in such a position at the time.

      Most people didn't have these opportunities though.

    1. The programmers with the WhyLine were 4 times more successful than those without, and worked twice as fast. A couple years ago, I tried to use the Java Whyline. It crashed when faced with modern Java bytecode.

      : ')

    1. In graduate school, I developed an online online-news-reading addiction.

      I remember initially reading this before following the same path myself. Oops! I'll do better now that I feel so much shame.

    1. all optimizations performed by the compiler can be limited (e.g. by limiting the fuel), so when we suspect the optimizer is misbehaving, we binary search to find the maximum amount of fuel we can give the compiler before it introduces the bug. We can then inspect the offending optimization and fix the bug. Optimization fuel is a feature of the new code generator, and is only available if you pass -fuse-new-codegen to GHC.

      Novel!

    1. I have, in developing my argument, characterized programmers as an elite, and have stressed the very special nature of programming and the far-reaching demands it makes upon limited human ability. In winding up I would like to return to this issue and to view it differently. When I was last in the United States, in 1970, I was very much impressed by the new ideas in the education of children developed by Marvin Minsky and Seymour Papert of M.I.T. Minsky and Papert threw overboard the cliché that children learn subconsciously by imitation. They proved that men learn best when they form flow-charts of action in their heads, when subroutines are separated out and informational connections traced. Using the problem of juggling with two balls, and appealing to my abilities as a programmer, Professor Pap- forces is impossible without taking myself wouldn't be able to learn in several hours, thus converting me to his faith forever. This shows that man can greatly strengthen his intellect, if he is able to integrate into his nature the habit of planning his actions, of working out general rules, and of applying them to concrete situations: to organize rules; to express them in a structured way; in other words, to program.

      Thinking systematically and with structure is programming; formalizing thoughts is no different from preparing them for a machine.

    2. Some say that only a tiny part of presently working programs are of lasting value; others say that OS/360 is already an immortal system of programs.

      Looking back, most of it's been thrown away. But it's important for prototypes to exist - we learn from them (sometimes).

    3. A programmer's personal push-down stack must exceed the depth of 5-6 positions, which psychologists have discovered to characterize the average man, his stack must be as deep as is needed for the problem which faces him, plus at least 2-3 positions deeper.

      This is an interesting way of evaluating a discipline: considering how many items must be remembered and recalled in active thought during the performance of a task. Machines can only get so far; holding the whole program in your head is the best way to go.

    4. I begin with the following remark: the present is a time of difficulty for programmers. The volume of work to be done is increasing; wages less so. The romantic aura surrounding this inscrutable occupation is, if it ever really existed, beginning to fade. Software houses are melting like snow in spring.

      In 1972! How are we doing now? Techno-optimism is so, so important.

    1. Antifennel takes Lua code and parses[1] it, then walks the abstract syntax tree of Lua and builds up an abstract syntax tree of Fennel code based on it.

      Reverse compiler to reconstruct the compiler again? Brilliant!

    1. That’s how we think about our philanthropy, too.

      I admire the writing here: it's cute, but straightforward and relatively un-embellished - a bit like simple English - to communicate with the most broad audience possible. The videos! The translations! The "mocking" notes in the margins! The little touches of accessibility are just as important as the messages conveyed throughout the passage.

    1. So one aspect of the struggle is motivational: I have to pay the upfront cost of learning language complexity, but can only take on faith that this complexity ultimately serves me.

      I think this payoff makes sense in large teams with verified software. If I'm at home, though, and want to get from 0 to working product as fast as possible, I want a simple tool that just works.

    1. This example is bitterly sad: The code is absolutely beautiful, but it adds matrices slowly. Therefore it is excellent prototype code and lousy production code. You know, you cannot write production code as bad as this in C.

      The difference between an ergonomic system and a stubborn, difficult one is how easily it is to write super readable, super elegant, super inefficient code in the system: the idea being that the readability of the entire system can be honed while the system is developed, while the optimization of the system can be honed when the system is maintained, after test cases have been accumulated and we can evaluate correctness for an optimized system by using the same interface as the prototype system.

    2. Unix and C are the ultimate computer viruses.

      this is so based

    3. It is more important for the implementation to be simple than the interface

      Whoever said this needs to rewrite Unix in purgatory

    4. Today there is Common Lisp (CL), which runs on all major machines, all major operating systems, and virtually in every country. Common Lisp is about to be standardized by ANSI, has good performance, is surrounded with good environments, and has good integration with other languages and software.

      they were saying this in 1991 that's what's up

    1. parallel computation as something imminent for at least 20 years, and it hasn't affected programming practice much so far.

      Parallel computing died when javascript only had singlethreaded semantics; webworkers aren't enough. it lets us do beautiful thing with ml models and software on someone's server, but we're definitely not leveraging them in userspace on personal computers in any meaningful way.

    1. popcount has become so pervasive that both GCC and Clang will detect an implementation of popcount and replace it with the built-in instruction.

      Why not tell the user to fix their code rather than getting it out of the way with the compiler!

      We can do both...

    1. the disappearance of the public web in favor of mobile and web apps, walled gardens (Facebook pages), just-in-time WebSockets loading, and AMP decreases the proportion of the web on the world wide web

      Interactive apps are good: why would I want something to be text when I can interact with it?

    1. Follow us on Instagram for digital accessibility tips and event announcements.

      Is this ironic?

    1. Your code is your understanding of the problem you're exploring. So it's only when you have your code in your head that you really understand the problem.

      Code is proof of itself; the ability to write code to compute some solution is proof by construction of a solution, and its behavior can be observed by demonstrating the code.

    2. Mathematicians don't answer questions by working them out on paper the way schoolchildren are taught to. They do more in their heads: they try to understand a problem space well enough that they can walk around it the way you can walk around the memory of the house you grew up in.

      From what I've read about the process of Feynman and others, this isn't entirely true. Though there is power in being able to hold all of math in your head, the work is also on paper, or in the theorem prover, a symbiotic relationship that can track much more than the conscious mind.

    1. “How do we keep the master branch stable?” The answer is: you don't.

      Consider a case in which person A writes code that breaks the entire app but is on the way to some solution and they'd like to back it up digitally. Person B wants to receive updates from C's work on master, but they don't want A's to crash their thing and have to deal with all of A's garbage in a way that also respects their feature.

      What gives? Turns out having that branch is good.

    1. running through drills

      spaced repetition, if you deal in ideas

    2. When someone tells you something is wrong, they’re almost always right. When someone tells you how to fix it, they’re almost always wrong.

      Critique, and offer suggestions, but not solutions

    1. There is no single development, in either technology or in management technique, that by itself promises even one order-of-magnitude improvement in productivity, in reliability, in simplicity.

      I like the framing of the article I read just prior to this - that productive engineering is making all of the correct tool decisions before approaching the problem, multiplying productivity by combining the net benefit of each tool.

      Making these assessments and choosing to use these technologies is difficult. In particular, I disagree with the use of "architects" to administer some large-scale map of software that must be used to box in the product. I don't believe that these architects have the technical experience using the products to understand the impact that they have, and I don't believe that you can abstract this away as a series of bullet points on a slide - the ergonomics of a system and design patterns a system permits are difficult or impossible to express to someone who has no knowledge of software engineering paradigms.

    1. Reading them may be enjoyable, but it’s an enjoyable waste of time.

      I don't like the "do what you enjoy" mindset because I can find many things enjoyable; what's enjoyable doesn't tell me what's important, what matters, what I should care about or what I should work on. Make sure you're receiving new information from the right places.

      Example: Hacker News is not a good place to receive new information. You will be swayed by startup juice and "cool tech" rather than ideas that matter to real people that exist in the real world.

    1. These are echoes of the same voices in a positive feedback loop, growing louder and less coherent with each cycle—garbage in, garbage out, a thousand times over.

      The folllowing paragraph is brilliant! Contributes demonstrably to the message of the piece

    2. Go takes away so much “individuality” of code. On most teams I’ve been on with Python and Java I can open up a file and immediate tell who wrote the library based on various style and other such. It’s a lot harder with Go and that’s a very good thing.

      I don't think that this is good - I love that programming is expressive and indicative of a style of a programmer! It's absolutely not the case that different programming styles are necessarily better or worse - obviously there are good and bad design decisions, but some tradeoffs are just different.

    3. “programs must be written for people to read, and only incidentally for machines to execute” (Abelson et al. 1996). We do not write code for our computers, but rather we write it for humans to read and use.

      I'm not sure I completely buy this anymore... consider low-level programming. If I'm structure packing and writing to optimize, I don't expect most of this information to actually matter to the reader of the code, aside from the function names.

    1. minute with a synth, wit

      Does it make sense to give up on sight and start training with a synth or one of those word passing things on the screen? This idea that ideas can be absorbed and communicated faster than reading on paper or in conversation is fascinating to me - seems like a superpower.

    1. Why wouldn't everyone pay a ton more money to hire the most senior engineers?

      Again, unclear how well seniority correlates with contribution!

    2. cost as function of productivity seems to be a sub-linear function

      Of course - because it's impossible to really identify a "10x engineer", nobody's going to throw you 10x the salary; the whole market will hedge bets and pay under market.

    1. Once we learn how to create abstractions, it is tempting to get high on that ability, and pull abstractions out of thin air whenever we see repetitive code.

      Bigger picture - it doesn't matter. It's not worth a workplace dispute or a re-evaluation. The code runs and it looks maintainable.

    1. Your career path is planned from the top. If something is not within your title responsibilities you won’t get the opportunity to pursue it. Or if you are, you won’t get much credit for it.

      Yup... the prospect of planning a "career path" is kind of absurd to me. I don't want to play some game for promotions. I want to ship lots of things that help real people that sometimes correlate with adding value to the business. I don't think it's naive to say that focusing on making lots of real impact will make this happen.

    2. Around 7-10 ICs can communicate and work together without needing much coordination.

      Why did [last company] need so much orchestration for so few developers? Was this to mediate with contractors? We totally could have "hacked things together" without more expressive planning.

    1. focused on making sure the team is building what their boss thinks should be built.

      PMs/POs are supposed to mediate externally, but at [last company] they just seemed to mediate conversations and expectations internally. It's important for people to talk to each other - and it's important for the person building the product to be able to speak directly to their end user ad-hoc!

    2. Agile teams that truly iterate with the customer can often avoid these problems because the customer is there the whole way through and the team continuously pivots to close gaps discovered by the customer throughout the project, thereby building something the customer actually needs and wants.

      This is the biggest problem I've seen with previous companies I've worked with: they'll identify some customer need, then plan out some product without looping in the customer at all, push out the solution, and claim that this solves their problem. No iteration is involved, and bug fix requests or new associated features are put off for months. It's incredibly demoralizing.

    1. MFA programs create a context in which you're creating while reflecting on it. For example, you write poetry while reading and critiquing other poetry, and while working with mentors who are looking at what you're doing, helping you think about what you're doing and working with you on your revisions. Then you go into writers' workshops and continue the whole process, and write many, many poems under supervision in a critical context, and with mentorship. We don't do that with software.

      This is what makes the software development course I took at Northeastern (https://felleisen.org/matthias/4500-f21/) so valuable. Software development was treated almost as a creative discipline - every class had critiques, wherein the creators defended their work in front of a panel that critiqued the work and attempted to find flaws, in the spirit of improving the code - together making software better.

    2. We've only been building software for 50 years, and almost every time we're creating something new.

      Is this still true today? I look at Java, or the React app, and I see all of these design patterns and boilerplate that are getting in the way and preventing me from quickly developing code. Most of this is shared between devices.

    1. reasoning of all kinds should take place in a lab, not a church.

      Don't assume. Doubt, then understand. Only when you have a formal understanding (Could I throw it in Lean?) do you have an interesting result. Wonder how formal methods can be applied to thinking in this way.

    2. adjusts each component’s conclusions as new information comes in.

      updating priors everyone does this lol

    3. For the theologian puzzlers, the starting rules of the game were, “Fact: the Earth began 6,000 years ago and there was at one point an Earth-sweeping flood,” and their puzzling took place strictly within that context. But the scientists started the game with no rules at all. The puzzle was a blank slate where any observations and measurements they found were welcome.

      preconceptions bad

    4. After emerging from the 1990s dotcom party with $180 million, instead of sitting back in his investor chair listening to pitches from groveling young entrepreneurs, he decided to start a brawl with a group of 900-pound sumo wrestlers—the auto industry, the oil industry, the aerospace industry, the military-industrial complex, the energy utilities—and he might actually be winning.

      Hero worship isn't the best attitude - but it's hard to look at what's been accomplished and say that there wasn't a predominantly positive impact made. Products aside, we're poring tons of money into battery optimization and large-scale sustainable manufacturing that we weren't before - key components of a future that requires clean energy to sustain.

      (Others would argue that we need to give up on this world and reduce electronic consumption and waste - but this is an overly pessimistic (yet also overly optimistic?) view. Our lives are unsustainable in part as a result of consumption but innovation may be able to change this).

    1. When it is summer (like now) and the sun sets here around 10 pm, my son can put his head on the pillow for 5 mins, get up, see there is light outside (by leaving his room, as his rooms is dark) and exclaim: "It is now morning!". He is not always convinced that we are not lying to him when saying that is still evening / night.

      This is interesting in two ways! The will to question everything and the perception based on some observations that are fairly clear.

    1. When Alex ran into this phenomenon, his response was ingenious. He doesn't use the motor to make anything "turn," but to make his robot (greatly stabilized by its flat "wheel shoes") vibrate and thus "travel." When Alex programs, he likes to keep things similarly concrete.

      Insane! Toss the instruction manuals. Let kids play.

    2. . Robin explains that she masters her music by perfecting the smallest "little bits of pieces" and then building up. She cannot progress until she understands the details of each small part. Robin is happiest when she uses this tried and true method with the computer, playing with small computational elements as though they were notes or musical phrases.

      Computing is natural bottom-up. Top-down programming, by contrast, is an entirely different skill; poking around existing abstractions and developments to extract some relevant glue.

      But it's clear that no matter what language you're using, you are programming with an abstraction - the computer is running your program, after all - so the framing of this writing isn't really the problem. The abstraction that the user interacts with just has to be better - it has to feel natural, like a part of the language, and not accomplish too much or too little so as to distract from the point. The building blocks should provide you help without getting in your way.

    1. Cultural imprinting is the mechanism whereby an ad, rather than trying to change our minds individually, instead changes the landscape of cultural meanings — which in turn changes how we are perceived by others when we use a product. Whether you drink Corona or Heineken or Budweiser "says" something about you.

      I'm reminded of Oglivy's perspective on advertising (who pioneered data-driven advertising techniques, and whose opinion very much concurs with this): advertisements are plain and designed to sell something. There is no secret trick - your brain is just satisfied in a simpler fashion than you think it is.

    2. Like Pavlov's dogs, who learned to associate the ringing of a bell with subsequent food delivery, humans too can be trained to make more-or-less arbitrary associations.

      When folk rumors are echoed, people start to believe them - even if they're completely baseless!

    1. our three housemates, who all have JD degrees, work 90 hours a week, eat only Blue Apron meals and Whole Foods hot-bar boxes, and always leave the granite kitchen counter dirty and covered in IPA empties.

      Do not end up here.

    1. Using lambda in Python is a good idea because it shows others you have a CS degree and understand the "Lambda Calculus".

      Has the author written code before? Of course lambda is good. (Not as much in python, because multiline lambdas aren't allowed... but I wonder if the author has ever used modern javascript).

    2. Steve Jobs was successful because, not in spite of being a jerk.

      Both in some ways, but only Woz has enough historical context to know

    1. Everybody tries to protect this vulnerable two three four five six seven eight year old inside, and to acquire skills and aptitudes for dealing with the situations that threaten to overwhelm it.

      This writing is just as beautiful and elegant as the message. The inner child matters. Live in a world of your own making.

  2. hraew.autophagy.io hraew.autophagy.io
    1. Over the last 1096 days, it has tracked 797h19m (859 logs) of productive work, of which 394h13m (481 logs) were spent on project specific tasks.

      Track my time with better granularity!

  3. Oct 2022
    1. Just how to design the interface abstraction boundaries is a hard problem

      It sounds as if, code reusability be damned, there is room for some compositor solution that refuses to interoperate with other programs but "just works" as a complete system in a single compositor ecosystem.

      I assume that this is what systems like GNOME try to do, but they compromise when trying to allow GTK to work anywhere; I'm perfectly okay with hardcoding all the programs I use at the WM level if it gets us these performance benefits.

    2. he biggest motivation to use the compositor extensively is stitching together diverse visual sources, particularly video, 3D, and various UI embeddings including web and “native” controls. If you want a video playback window to scroll seamlessly and other UI elements to blend with it, there is essentially no other game in town.

      Pro of coupling to Wayland: can use expressive free WM animation! Con: Nobody will ever be able to try your system on Windows or MacOS

    1. we might be tempted to think of mess and disorder as the mere absence of order. But we will see that mess cannot be present without the visual implication of a legible order.

      mess is the process of thinking trying to overprescribe order to something that doesn't yet have a conclusive order is useless it also says something about prioritization: some things are more important tthan others, and a mess left means that we extracted what's useful

    1. hire some people to build amazing infrastructure. Why not just buy it? Well, it simply didn't exist for purchase in the first place

      Oxide exists to build this good on-prem stuff!

    1. The defining characteristics of this hot new trend sweeping across Silicon Valley are: Bigger, bolder headlines Simpler more universal icons Extraction of color The result? The user interfaces of some of our favorite apps are starting to look more and more like they could all be housed under the same brand.

      This is bleeding into non-tech companies now, too... It's insane! Saw a video of the Staples logo re-unveiling from last week. Why are we getting rid of the cool L and replacing it with a somewhat curved U shape? You can't tell what it is!

      It's important for design to be cohesive, sure - but it's worse, IMO, to have slightly clashing designs than radically clashing ones. At least with the latter I can tell the difference between my apps.

    1. Harrison’s Monday residency (before he got promoted to Thursdays) was the only thing that made me feel ok about starting the week.

      Takes a few years

    2. He said that work should feel “like drinking from a firehose.”I soon found out that I was not reporting on cancer research at all. “I have no interest in medical studies,” the CEO liked to say. He just wanted clickbait.

      ;_;

    1. trustless, decentralized expertise that often equals or outperforms official sources.

      How do we know that they outperform? + Surely they can be easily manipulated if relied on? I don't understand how letting more people throw money behind ideas is important - any financial prediction market allows for voting proportional to wealth, which skews all opinions towards those who own more.

    1. Lisp allows you to just chuck things off so easily, and it is easy to take this for granted.  I saw this 10 years ago when looking for a GUI to my Lisp (Garnet had just gone West then).  No problem, there were 9 different offerings.  The trouble was that none of the 9 were properly documented and none were bug free. Basically each person had implemented his own solution and it worked for him so that was fine.   This is a BBM attitude; it works for me and I understand it.   It is also the product of not needing or wanting anybody else's help to do something.

      I am definitely doing this too... this is probably a bad idea. I should put in the extra effort to polish things and make them accessible to others - something the Clojure community does right - and this starts with some sort of type system or other boundary.

    2. He ends on a soda fountain or doing yard work, but all the time reading and studying because a good mind is always hungry.

      Do not

    3. his low threshold of boredom. He'll pick up on a task and work frantically at it, accomplishing wonders in a short time and then get bored and drop it before its properly finished.  He'll do nothing but strum his guitar and lie around in bed for several days after. That's also part of the pattern too; periods of frenetic activity followed by periods of melancholia, withdrawal and inactivity.   This is a bipolar personality.

      I hate that I relate to this. I need to fix my work!

    1. poor technical design of the registration system made it incredibly difficult to get the set of classes I wanted. I developed automated registration software that would detect open slots in the full courses, and notify me via text message. While my friends were spending hours every day refreshing course schedules hoping to get into a full class, I was just waiting for a text message.

      Leverage holes and difficult processes! Make them easy and elegant and seamless. Automate human effort away so people do things that only people can do and that people can do best.

    1. If the world is increasingly software and advertising and online social networking and, good Lord, the metaverse, then the crypto financial system doesn’t have to build all the way back down to the real world to be valuable. The world can come to crypto.

      just has to meet us where our abstractions are; doesn't have to ground to reality

    2. That’s just a comment that he wrote on Reddit; later a whole business model grew out of it.

      Imagine having this level of mind-share

    3. I plan to go to my grave not knowing what “the metaverse” is

      I know this is a bit of a snarky, offhand comment, but I love this deference of responsibility - saying "I have no desire to learn about this thing" is powerful

    4. Not very much of it, though. Most of it is going to me, haha, thanks!

      Again with the quips - and a break of the fourth wall! Brilliant outlook.

    5. The 12 of you all know one another and built the system, so your consensus is good enough without any further proof. You can just vote on it.

      Private blockchains are useful insofar as they are linked lists with data that can be exported as a transaction log; that's all. You trust everyone involved via traditional business relationships.

    6. The problem is that houses can’t live on the blockchain. They live in the real world. They can burn down and stuff.

      So true.

      Also - love that the author knows how to bring definitions in without a second thought, knows when to interject with casual thoughts to make the reader feel more comfortable. This piece reads like a smooth, continuous river of knowledge; definitions enter your mind seamlessly and are brought with you as you continue to read the piece, and the right words comfort you - meet you with the correct level of technical knowledge and casual attitudes - is a wonderful approach to writing. This is, honestly, the best "pseudo-technical" document I've read - it's a deep dive, not pop science, but it's accessible enough to communicate complexities that need to be understood.

    7. Why would you want to do this? One reason we already talked about: You can make up an arbitrary token that trades electronically. If you do that, people might pay a nonzero amount of money for it. Worth a shot, no?

      don't try to make this work ;_; bad idea in most cases, unless transaction occurs in eth

    1. "Information Processing Language" of Shaw, Newell, Simon, and Ellis [24

      A precursor to Lisp. What happened?

    2. Implicit in the idea of man-computer symbiosis are the requirements that information be retrievable both by name and by pattern

      Astute observation. We still don't do this well today! We need better ways of inputting patterns; currently we have drawing and writing text, but how can we consider this process of thinking of information to fill in the gap in a more interesting way?

      Lean's "library search" tool, most recently, blew me away with its ability to leverage all of lean's mathlib to fill in proof holes for free, replacing what would be an incredibly painful procedure of redundant, clerical work with a single computer command that summons the power of all of mathematics to finish your proof for you. Insane. What happens if we add synthesis?

    3. About 85 per cent of my "thinking" time was spent getting into a position to think, to make a decision, to learn something I needed to know. Much more time went into finding or obtaining information than into digesting it. Hours went into the plotting of graphs, and other hours into instructing an assistant how to plot. When the graphs were finished, the relations were obvious at once, but the plotting had to be done in order to make them so.

      The point of technology is to reduce this waste of time: if we have some gap in knowledge, we should be able to fill it immediately, by conjuring up information - not just some nominal text, but a structured data representation or visualization that helps me discern information from that text. Innovations in computation to help the brain think all involve reducing the barriers to these thinking tools as much as possible.

    4. Newell, Simon, and Shaw's [20] "general problem solver"

      What is this? Look into it.

    5. Man-computer symbiosis is probably not the ultimate paradigm for complex technological systems. It seems entirely possible that, in due course, electronic or chemical "machines" will outdo the human brain in most of the functions we now consider exclusively within its province. Even now, Gelernter's IBM-704 program for proving theorems in plane geometry proceeds at about the same pace as Brooklyn high school students, and makes similar errors.

      Interesting! Licklider here reminds me of Patrick Collison's thoughts on fusing natural language systems as boundaries between companies and similar things. There is a world in which we leverage artificial intelligence to continue to automate boundaries between people and machine as boundaries between machines - removing the work people need to do to communicate. Most process improvements today, I think, involve replacing human communicative "glue" with machines talking to one another; removing a human from the loop in so many (of the correct) processes will drive success.

      By "correct" process, I mean that secretarial or clerical jobs should be eliminated - they're just humans performing these pure data transformations that software is already great at. Causes that require moral reasoning, such as lawsuits and principle development, should never be automated or left to computers. We should all be able to do the latter!

    1. starting college with personal writing makes far less sense for the technologies and culture of the 21st century. We’re no longer bucking a man-in-the-grey-flannel-suit conformist culture. The U.S. is oversaturated with personal narrative. We swim in selfies.

      In other words - we don't need to use the classroom to fight to escape uniformity anymore. Social media lets us express ourselves as wide as we can to whoever we want, however we want, so providing an additional outlet for self-expression doesn't feel any more agentic than crafting an instagram feed. Rather, social media keeps us from navigating our local communities - and this is a practice that can stimulate friendship and growth, inside the classroom and out, to motivate students.

    1. Provide daily feedback showing the programmer more or less exactly what he or she has accomplished, plus a graph for the preceding few months showing the trend.

      The other things that this article touches on are handled well, but I haven't seen any good projections or mentions provided for productivity graphs. This is far too hard to measure; the best measure is found in the people who use the product.

    2. The first few that they build, during the course of the problem sets, are not necessarily elegant or optimal, but by the end of the semester they've become remarkably proficient, especially when you consider that each student is taking three or four other classes.

      I really appreciate this approach to software development - in stark contrast to accumulating debt over the course of a large software project. If we had a software engineering degree, this should replace OOD or something - some "rapid development" course.

    3. Programmers don't have the same need for wood-paneled expensive plushness that, say, corporate lawyers or investment bankers might. However, the office has to be aesthetically satisfying or it will be tough for anyone to take seriously the idea that the company values aesthetic internal design of computer programs.

      aesthetic of performance, of efficiency, of effectiveness. it's different than the senseless luxury and social conventions that people expect otherwise. big tech is tilting towards the latter. i really don't care for free food, but give me a building that i can route myself effectively through and surroundings i can enjoy interacting with

    4. Your business success will depend on the extent to which programmers essentially live at your office. For this to be a common choice, your office had better be nicer than the average programmer's home. There are two ways to achieve this result. One is to hire programmers who live in extremely shabby apartments. The other is to create a nice office.

      I have the former mindset... it's okay to have a terrible apartment if you can afford to be out all the time!

    5. the easiest way to divide the work was to give a programmer total responsibility for one project. The programmer owned that customer. If the project went well and the customer wrote us a big check, we gave nearly all of the money directly to the programmer.

      I love this way of working. If you're effectively operating like an individual consultant, you're held directly accountable for exactly what you accomplish.

      Direct accountability isn't practiced as much in software anymore because people don't understand the consequences of making changes to the systems they're working on. This is stupid. Creating accountability is synonymous with codifying expected behavior and assessing deviance from it. It's good to test, actually.

    6. If the student finishes a PhD thesis, he or she is positively reinforced by being given a 3-7X pay raise.

      ;_;

    7. that a deadline just gives someone an excuse to procrastinate and do nothing until the very end.

      Negative reinforcement with deadlines doesn't work - it doesn't push or provide enough opportunities to learn more. It's safe to assume that students have a natural compulsion to learn, but they're also presented with tempting opportunities; how do you provide a stimulating positive reinforcement cycle that sets students on the right path?

    8. Once you give Joe MBA a title and ask him to coordinate eventually he will be making decisions that have engineering implications. Thus many of the best programmers are eventually forced at least to assume project leadership and mentoring responsibilites.

      In other words: it's unclear whether ceding management positions to MBAs is relevant because real technical decisions have to be mad,e but the alternative is losing the productivity of an extremely effective engineer to do so.

    1. As killing buffalo (a man’s job) takes much less time than skinning and tanning (women’s work), rates of polygamy skyrocket, with successful men taking on multiple wives, essentially as at-home laborers.

      This is wild! Modern technology radically changes the way the Lakota live, independent of any sort of colonization/

    1. One of the things I do professionally is teach the C programming language to Caltech undergraduates.

      I am so sorry. Is this useful?

    2. These days I'd rather write programs and teach programming languages than write opinion pieces.

      Aren't both of these ways of conveying opinions too? : )

    1. if you aren’t in meetings, everything you do can be reproduced as a series of clicks and drags and keystrokes. what are those up to?

      This is cool! I want to be able to mimic and record and reproduce all of my movements and work.

    2. when i meet someone who does something completely foreign to me, im usually interested in the mechanics of their work. what are you physically doing during the day and looking at?

      Why? Is there some interest in improving the way they interact with their work on a physical level [like improving the ergonomics of sending an email or joining a virtual meeting or browsing the web]? How do we measure different types of thinking?

    1. They used a manual someone had written which showed how to extend Emacs, but didn't say it was a programming. So the secretaries, who believed they couldn't do programming, weren't scared off. They read the manual, discovered they could do useful things and they learned to program.

      Progress in bridging the gap between programming a computer and using a computer. If we offer higher level customization facilities, people will be able to learn how to use these tools to accomplish gooooood things! Such as making their computers fit them.

    1. a large part of me also wanted the approval of my peers and parents by getting into a school like MIT

      I wonder if this kind of social pressure is overall productive. Driving smart people to elite institutions rather than pursuing (maybe arbitrary) personal passions might be sort of "globally" useful for progress - but it does build the prestige of these institutions, centralizing knowledge and ability, which is a questionable effort.

    1. the protocol can be encoded as remote procedure calls

      It's important to build an interface with semantics that make sense in any medium. Can we network it? Can we share it with a friend? Can we write it on paper? Can we understand with names alone? If these are true, it's probably a good library.

    1. These streaming dis-services are malicious technology designed to make people antisocial. (If you don't have a copy, you can't share copies.)

      Everyone deserves the right to share. Simply and beautifully put.

    2. I adore Stallman's writing style. Sentences are brief, uncomplicated, and straightforward. He uses very simple English except when he specifically defines terms and uses the terms he defines, so every sentence has a single, unambiguous meaning. The writing isn't entertaining in and of itself, but that's okay; the principles are quite simple, and from his strict principles come a wealth of wonderful ideas.

    1. no FAT table, just an allocation bitmap

      So you can just pass pointers? Insane. Brilliant!

    1. Profit Sharing - Bet On Us Succeeding This is very much a work in progress, but as an alternative to a bounty, you may instead opt to invest in a “profit sharing” model of our total net income.

      Holy shit what

    2. Your bounty will be paid in the following installments, via check, wire, and/or crypto, based on a typical VC vesting schedule.

      Absolutely insane

    3. Both Mati and I are loving and empathetic people, who highly value open communication, generosity, and sharing.

      That's what someone who isn't would say : 0

    4. Mati and I are both part of rationalist communities, and are quite aligned on our approaches towards life, growth, partnerships and relationships.

      The self-identifiation with this "rationalist" community and a corresponding traditional mindset is a bit confusing to me - to what end is saying "i am a rationalist" as a series of views part of their identities? Is this an abbreviation for some broad spectrum of views, or does it mean something slightly different to each person?

      More importantly, how and why does it prompt all of these dating posts on and pages on the internet?

    1. I consider myself a theorist in the broad sense: I like to consider compelling-but-vaguely-specified problems, find formal statements that carry some of their essence, and then attack the formal questions with the tools of mathematics, computer science, physics, philosophy, etc.

      Jalex is a character. I'm not sure what to think of them, but I like the layout of their website. What's a theorist?

    1. When the real world failed to diagnose his talents, he went looking for a second opinion. The Internet offered him as many opinions as he needed to find one he liked. It created the opportunity for new sorts of self-perceptions, which then took on a reality all their own.

      How can we re-architect our approach to primary schooling in the real world to bring these talents out? Social skill development is by definition punitive: you're hurt for not knowing rather than encouraged to develop. The internet gives people such incredible spaces to thrive, but still shuts people out of the real world!

    2. ''Where do you find books about the law?'' I asked.''I don't,'' he said, tap-tap-tapping away on his keyboard. ''Books are boring. I don't like reading.''So you go on legal Web sites?''''No.''''Well, when you got one of these questions did you research your answer?''''No, never. I just know it.''

      Insane but totally possible that a human is born with a brain that functions exactly like the US legal system

    3. He now viewed school not so much as preparation for a future legal career as material for an active one.

      School should be subverted as a tool to reference while practicing; it's a shame that it's not. Taking classes after working in industry gives me both an immense appreciation for the work I do in class, and better informs me of what is most important to spend my time on while I'm still a student.

    4. Perris was one of those nonplaces that America specializes in creating. One day, it was a flat, hazy stretch of sand and white rock beneath an endless blue sky into which recreational skydivers routinely plunged; the next, some developer had laid out a tract of 10,000 identical homes; and the day after that, it was teeming with people who were there mainly because it was not someplace else.

      I love how this "stanza" is written; the narrative of progression here is incredibly clear.

    1. Twitch streamer Tyler Blevins (Ninja) films himself playing video games for people to watch fo

      Is this good? Noble? Should I livestream myself working and living like this?

      I'm not sure I like that the experience is, to a degree, performative and uncurated. I like having the ability to ruminate and collect information before broadcasting it.

    2. Inequalities are also found on Wikipedia, where more than 99% of users are lurkers. According to Wikipedia's "about" page, it has only 68,000 active contributors, which is 0.2% of the 32 million unique visitors it has in the U.S. alone.

      I would love to be a wikipedia contributor, but I'm honestly not sure how or where to start!

      One other thing I've noticed: the more active I am on the internet, the less active I tend to be in real life, and consequently the less happy I am (for some small happiness delta; this is a portion of the 'social satisfaction' happiness category, not the whole pie).

    1. Activism

      People like Knapp are seriously heroes. There is no tool better than knowledge and no role nobler than spreading it. I have nothing but admiration with his societal position.

    1. users would have to pay a fractional amount of the cryptocurrency Dogecoin to post or retweet

      is this insane?

    2. In a novel-length text, Döpfner laid out his “#Gameplan” for the company, which started with the line item: “1.),, Solve Free Speech.” He alluded to vague ideas such as making Twitter censorship resistant via a “decentralized infrastructure” and “open APIs.” He’s similarly nonspecific with his suggestion that Twitter have a “marketplace” of algorithms. “If you’re a snowflake and don’t want content that offends you pick another algorithm,” he wrote Musk.

      This is very high level, but it's absolutely feasible; Mastodon is a technology that exists, and using a different recommendation system is not unreasonable. This says more about the knowledge of the author of this article than of the texts.

    1. . In painting and sculpture, in music, and in literature I am ever on the alert for the new and promising geniuses of tomorrow. I feel the future of the arts is in the journey toward finding Beauty.

      I hope you do, Grady : )

    1. Location 672-674

      Use of source spans rather than page, word, verse or something similar is so powerful here. True programmer fashion

    2. The internet itself will load balance users to the nearest instance using BGP as the load balancing substrate.

      So sick. Turns out that we don't have to rebuild abstractions that already exist if we leverage the right infrastructure.

    3. Enter MrBeast. This youtuber has reached new levels of content purely by making capitalism itself the content. With his crew of people and their peculiar views on life, they do a good job at making some quality content for this hyper-capitalist world that they have found themselves in.

      Capitalism is the content! Turns out that it's fun to buy things and throw around money!

    4. A lot of the problems are actually structural problems in how companies do the science part of computer science. Structural problems cannot be solved overnight. These things take time, effort and patience to truly figure out and in the process you will fail to invent a light bulb many times over. Devops is probably a necessary evil, but I really wish that situations weren't toxic enough in the first place to require that evil.

      Software development is a mess!!!

    5. While the HolyC compiler builds things, it internally keeps a sourcemap (much like webapp sourcemaps or how gcc relates errors at runtime to lines of code for the developer) of all of the functions it compiles.

      Insane! Can interactively browse the code like a UI

    6. ll ram is identity-mapped too, so sharing memory between tasks is as easy as passing a pointer. There's a locking intrinsyc too. It has full documentation (with graphical diagrams) embedded directly in source code.

      Insane mode

    7. This page lists my salary for every job I've had in tech. I have had this data open to the public for years, but I feel this should be more prominently displayed on my website. Other people have copied my approach of having a list of every salary they have ever been payed on their websites, and I would like to set the example by making it prominent on my website.

      I love this transparency!

    1. Since Paper Mario: Sticker Star, it’s no longer possible to modify Mario characters or to create original characters that touch on the Mario universe. That means that if we aren’t using Mario characters for bosses, we need to create original characters with designs that don’t involve the Mario universe at all, like we’ve done with Olly and the stationery bosses.

      Why?

    2. If you don’t want to solve the puzzle, there’s always capitalism! Pay the toads you’ve saved up to 999 coins and they’ll solve the whole puzzle for you, heal you and sometimes give you an item too.

      hmmm.....................

    1. There's something obviously different about people in the Bible compared to people today -- God talked!

      Terry posits that many of our issues stem from this idea that we can no longer talk directly to God, so to heal society and to heal himself we must develop some computing system that allows us to have a conversation with God through the machine - no different from the other conversations with history we're allowed to have with computers.

  4. Sep 2022
    1. A busy Wednesday night. Grumpy at Sundown. Panik Flower at the Sultan Room. But you know me—I follow the money. And the only place offering me money was Baby’s All Right.

      The Money? From where?

    2. Got caught in the rain talking to Marcus, Avi, Joey, and Maraya

      name friends. love this writing style. a little gonzo, a little punk, a little personal, a little "in-group", but not enough to not get a slice of their life

    1. The most important thing is to know that rs exists.

      Insane! Entire articles are written to remind us of long-forgotten Unix commands to perform obscure tasks.

      It should be trivial for me to write a search query, browse a list of pure functions that does something like this, then invoke the function with an argument and receive a result - without having to explicitly install or touch anything.

      The fact that these CLI programs are so difficult to find and have no real searchable docs - and, if you dig into the manpages or something, that you have to then figure out how to install the program - is absurd. All of this should be available in one place and installable in an instant, with a system like the nix-shell system.

    1. Given that we spend most of our waking hours in an alienated, desperate grind to obtain or maintain a life-sustaining job, blaming ourselves for every snag along the way, gospels of reassurance and self-care are precious cargo.

      Work doesn't have to be this way - and, to my knowledge, most work isn't. Work is working with people to accomplish a goal, and when people work to build a culture in which everyone acts in good faith, there is no problem.

      So of course there are problems...

    2. Siegfried Kracauer, one of the eloquent theorists of pop-culture associated with the Frankfurt School, frowned upon the cinema with its velvet drapes and plush seats, calling it “distraction raised to the level of culture.” In his dour view of things, the urban working masses were lulled into sitting in the dark and gawping at mesmeric light projections while sinister forces shifted the world under their feet.

      Is this wrong?

      Smartphone culture seems to directly connect adrenaline to observation, encouraging memes and satire and passive liking and sharing over legitimate class organization and action.

    1. The average PhD student of the mid 2000s forwent the easy money of finance and law (now slightly less easy) to live on a meager stipend in order to pursue their passion for Norse mythology or the history of Afro-Cuban music.

      Similar arguments are why I'm so skeptical of grad school without practical motivation.

    2. By keeping us focused on ourselves and our individual happiness, DWYL distracts us from the working conditions of others while validating our own choices and relieving us from obligations to all who labor, whether or not they love it.

      Doing what you love means forgetting about everyone who has it worse than you. Efforts to protest, uplift poverty, share resources, and leverage equity from positions of privilege are easily forgotten if we find out about cool puzzles in haskell or something or start giving out crystals. There is this clear ignorance of the ability to identify and solve real problems rather than declaring, then making, what you "know" people want.

    1. If Donald Trump has a chance in November, it is because the knowing will dictate our strategy.

      Bingo - democrats "knew" Hillary would win, so nobody voted or cared.

    2. These days it is difficult for anybody in a position of liberal power — whether in business, or government, or media — to avoid having openly gay colleagues, colleagues whom they like and whom they'd like to help.

      I'm missing the point here. People are gay and comfortable enough with their identities to talk about it. Is this a problem?

    3. It's a shame. They might be receptive to his concerns about poverty.

      This is such a great piece of criticism - incredibly well-researched and well-intentioned. Things aren't this simple, but American liberalist canon reduces things to trivialities and dismisses a group's opinions, perhaps having some legitimacy, as nothing.

    4. The smug recognize one another by their mutual knowing.

      This is very reminiscent of the conservative chime of "facts don't care about your feelings" - if it is known how to vote, then an ingroup is constructed and the enemy is ignorant, so they're easy to dismiss.

    1. The continuing physicalization of the UI, which Matas helped along by designing iPhone OS 1.0 while at Apple, is important for making computers usable.

      Looking back on this in the next decade, design is now staunchly against this! We've been vying for flat designs, without shadows, with easier glyphs that might not be intuitive from 0, but that speak to users who have had access to iphones for 15 years at this point. We've incorporated physics simulation into buttons and such, sure, but 'realism' is far away from what we have today.

    2. Steve Jobs’ remark that design was “how it works” had achieved what seemed like widespread comprehension, and recruiting wars for top designers rivaled those for top engineers.

      Design is good! Where is innovation?

    1. How many of you use call/cc and continuation objects (rather than mimicing continuations with lambda's) in large programs? Do "we" really use it to implement coroutines and backtracking and threads and whatever?Is call/cc necessary for Scheme? [Don't shoot. I wrote many papers on all aspects of call/cc but now that we're building large systems we should revisit these questions. I'd love to be wrong here.]

      Good observation from Matthias - it's just better to pass a lambda callback and mimic the behavior than to implicitly steal the continuation. Right?

    2. The primitive call/cc is a bad abstraction -- in various meanings of `bad' shown below, -- and its capture of the continuation of the whole program is not practically useful. The only reward for the hard work to capture the whole continuation efficiently is more hard work to get around the capture of the whole continuation. Both the users and the implementors are better served with a set of well-chosen control primitives of various degrees of generality with well thought-out interactions.

      Against elegance?

    1. Aggressive hiring is often counterproductive. I don’t mean this on a relative basis. I mean on an absolute basis. Your company might make less progress on your most important thing after your hiring spree.

      This is the classic result of "The Mythical Man-Month" - you can't just hire. You need to iteratively hire, re-hire, and re-organize to build a strong organization that's always leveraging its resources in the best way it can.

    2. Make a list of the best people in your company. Note whether they are a manager or individual contributor. Write down what they are working on. Confirm that those people are working on the most essential thing in your company and are overloaded with responsibility. Don’t worry about burning them out. Worry about depriving them of the joy of working on the most important thing and the steepest possible learning slope.1 Tell these people they are your stars.2 Pay them like it too. These first three points help ensure you are optimizing what you are getting from the current team before you look elsewhere for the solution.

      Make sure your current team is optimised before starting to look elsewhere. It doesn't make sense to hire externally if a developer is bogged down in some silly work.

    1. every trace of the future seems to have been vanished from popular media.

      Why don't we dream anymore? Our futures seem to be more present and less aspirational. We don't have big, visual, concrete missions to work towards like NASA.

    1. s enthusiastic as I am about more tech wealth pouring into cultural initiatives, the regranting programs that are now so popular are just like software platforms: they outsource your own agency to some imagined future actors.

      I'm actually in favor of this. To me, this is what makes capitalism work: someone with a valuable resource to provide (time, expertise) can trade this for a goal and vision, as provided by someone with money and passion.

      Alternatively, someone with passion can be provided with money to make things happen. This resembles the US venture system and has become increasingly federated with the continued development of microgrant programs.

    2. hy I’m obsessed with brands. The answer is that brands are things made out of belief.

      Brands are levers that founders wedge onto employees, and that employees use to craft a world for others to unite behind

    3. With its focus on existential AI risk as a chief cause area, EA even has an eschatology—a theory of the end of the world. As far as newly designed cultures go, EA is the closest thing we have to a new religion.

      blah blah basilisk cult

    4. Julie Rice said “we realized that connection should be its own product. We are modern medicine for the loneliness epidemic.”

      Cycling therapy? To what end do companies need to facilitate this and attempt to craft community brands?

    5. “The State”, he wrote, “has an interest in the primary school as a civilising agent.”

      The "civilising agent" was applied throughout the British empire to subjugate native populations, replacing their culture with British state-administrated education, because state and education can be used to define culture.

    6. After the DTC era, brands have become present in every part of our lives, ambient, diffuse, meaning things to us. Sports, music, health, sleep, and person-to-person communication have become interpenetrated with brands.

      Many of these products construct inclusive communities wherein access and ownership are the same, explicitly attempting to craft a culture around their product or convert a culture to their social system. You own a fitbit, or a whoop strap, or an oura ring, or some apple fitness device, and are now a member of this exclusive community - some 'ingroup' defined entirely by device ownership or paying for some subscription model.

    7. Before Stripe, you had to forge relationships with payment networks. Before Alibaba and Shopify, you had to think about logistics. Now with these platforms, it was becoming easier than ever to start a brand.

      The federation of branding, empowered by platforms, is becoming the federation of culture itself - where brands strive to create culture and subculture is, in part, defined by brands (as brands signal taste, and taste defines such a subculture).

    8. If Uber could disrupt cabs and Twitter could disrupt the New York Times, why couldn’t Allbirds disrupt shoes?

      This model was taken to absurdity, and to a degree still is - do we need more consumer goods and services? Convenience and marketing sell Allbirds, sure, but do they contribute?

      The dropshipping, federated consumer economy needs a restart. Why can't we have shoe repair programs like applecare? Clothing repair programs? People like applecare.

    1. Inevitably, codes get passed from one cluster of friends to another. One code traveled from an old friend to a tattooed and multiple- pierced crowd to the women's crew team at Mills College before it eventually fell into disuse.

      Social permission floating through the inheritance of access codes. This is really interesting!

    1. Catastrophe requires multiple failures – single point failures are not enough..The array of defenses works. System operations are generally successful. Overt catastrophic failure occurs when small, apparently innocuous failures join to create opportunity for a systemic accident.

      This is what makes model checking for complex systems so important... we can't prove them or model them, but we can create high level specifications, ensure with some level of confidence that these specifications align with a real-life model, and that that real-life model has some integrity.

      Should learn more about how software systems with multiple complex components are modeled - like airplanes and pete.

    1. after all of that, after everything, predator drones .-. _, .-. ,_ .-. '-._'--' \_| |_/ '--'_.-' '-._ \ | | / _.-' `-.^| |^.-' `\=/` ` run linux

      This is the kicker - despite the will of pretty much everyone involved in the free software movement, software is now - instead of used to promote the access of people to personal computing - near-universally used to further profit and state-building (a proxy for profit) incentives.

    2. i refused to use discord for years - but instead of furthering freedom, i hurt myself. the severence of many meaningful relationships. most of my old friends simply moved on without me. if you don't have vocal chords, people forget that you exist.

      I tried this as well - as principled as you'd like to stay, isolating yourself from products motivated by profit and venture funding today really just means isolating yourself from others who prefer to use products with network effects that are presented as easy to use. These are the products people use, and these are the social networks people use to stay in touch with one another, like it or not; if you're impossible to find, nobody will talk to you anymore.

    1. Why does the website still look the pretty much the same today as when you founded it? There’s even a new CEO. What’s going onBecause that serves people better. I've learned that people want stuff that is simple and fast and gets the job done. People don't need fancy stuff. Sometimes you just want to get through the day.

      life goal how do we make software as simple as possible today

    2. I don’t like banner ads. They slow things down, and they’re often kind of dumb. That’s a decision I made at the end of ‘97. 

      slay

    3. I allow myself to buy as many books as I want. But I have no car.

      as life should be

    1. “I don’t respect the stock market at all,” he said. “Once you’re public, you’ve lost control over the company, and you have to maximize profits for the shareholder, and then you become one of these irresponsible companies.”

      This is what makes venture funding a death trap. Losing equity means sacrificing principles.

    2. As a pioneering rock climber in California’s Yosemite Valley in the 1960s, Mr. Chouinard lived out of his car and ate damaged cans of cat food that he bought for five cents apiece.Even today, he wears raggedy old clothes, drives a beat up Subaru and splits his time between modest homes in Ventura and Jackson, Wyo. Mr. Chouinard does not own a computer or a cellphone.

      This is how life should be lived. Why are my clothes new and sensitive [in particular, shoes]? They should be hardy and last forever.

    3. they didn’t get a charitable deduction for it. There is no tax benefit here whatsoever.

      fire

    4. unconventional spin on capitalism

      In what way is Patagonia's structure an 'unconventional spin on capitalism'?

    1. the most cohesive teams are not only the most prolific, but also the most satisfied. And all the work I was doing with teams laddered up to the same purpose–cultivating more of that “we’re all in this together feeling.”Because for ambitious organizations that pride themselves in cultures of autonomy and distributed ownership, that feeling is fuel.

      Sure - but what is the best way to cultivate this?