33 Matching Annotations
  1. Feb 2024
    1. 80/15/5. Spend 80% of your time on low-risk/reasonable-payoff work. Spend 15% of your time on related high-risk/high-payoff work. Spend 5% of your time on things that tickle you, regardless of payoff. Teach the next generation to do your 80% job. By the time someone is ready to take over, one of your 15% experiments (or, less frequently, one of your 5% experiments) will have paid off and will become your new 80%. Repeat.

      Should use this in concert with the Commitment Inventory exercise.

    2. Start projects by measuring the current state of the world

      This especially applies to performance related fixes. Very common to make a change that should speed things up, but without instrumentation it could easily end up slowing things down somehow.

  2. Aug 2023
    1. Arrows can be naturally combined. If the codomain of one map is the same as the domain of another then we can create a third map.

      A transitive property of arrows (of sorts)

  3. Jul 2023
    1. To me this gets to the heart of the teaching of mathematics. There are (at least) two distinct skills: The mechanical system of converting one thing to another using an array of symbols The translation system mapping those moves onto the world. We can emphasise the mechanical (the approach of most school systems) or we can emphasise the translation (the approach of Conrad Wolfram and others who argue that computers should do the calculation).

      Feels very similar to the skills required to model real-world systems in computer programs.

  4. Dec 2022
    1. There are other important costs you might have heard of. One is sunk cost, which really means money that was spent in the past. Sunk costs are generally ignored in most financial analyses, even if that's pretty painful.

      maybe it should still be accounted for in a break-even analysis?

    2. By definition, accounting is a set of rules that govern how a business records transactions

      of course, given that rules differ country to country

    1. You’re walking to work and you see a burning mansion. You’ve been in that mansion and know that there’s a Picasso worth $100 million. (Quick math: 100,000 lives saved.) You’re about to run into the mansion to save the Picasso…But right next to you, there’s a lake. And in that lake, there’s a drowning child.

      not all good actions can necessarily be quantified.

  5. Nov 2022
    1. Second, the range of the function must be efficiently computable, and it must be efficiently computable by you.

      taking too long to compute if a user is a good fit is the same as not being able to.

    2. And in business novices make a product nobody wants.

      sometimes even a group of non-noobs become a noob team in the aggregate.

  6. Oct 2022
    1. The seeds had a typical shelf life of about a year. While this limitation might have had some benefits (preventing inflation and encouraging spending, for example)

      minor benefits, trivialities really. /s

    1. Cutting Contexts by Architectural Need Bounded Contexts needn't be organized solely by the functional area of an application. They're very useful in dividing a system to achieve desired architectural examples. The classic example of this approach is an application that has both a robust transactional footprint and a portfolio of reports. It's often desirable in such circumstances (which might occur pretty often) to break out the reporting database from the transactional database. You want the freedom to pursue the right degree of normalization for developing reliable reports, and you want to use an Object-Relational Mapper so that you can keep coding transactional business logic in the object-oriented paradigm. You can use a technology such as Microsoft Message Queue (MSMQ) to publish data updates coming from the model and incorporate them into data warehouses optimized for reporting and analysis purposes. This might come as a shock to some, but it's possible for database administrators and developers to get along. Bounded Contexts give you a glimpse of this promised land. If you're interested in architectural Bounded Contexts, I highly recommend keeping tabs on Greg Young's blog. He's quite experienced with and articulate about this approach and produces a fair amount of content on the subject.

      This whole paragraph feels like it's accidentally been pasted here from another article. The title isn't even listed in the table-of-contents. :/

  7. Sep 2022
    1. These time windows are not usually enforced by the system(s) but instead are often a convention, documented elsewhere.

      ...and because it's a matter of documentation, it adds to the effort for onboarding. Further slowing down development.

    2. A common approach to this problem is to freeze source data formats or to add a change control process on all source data

      Architecture smell: If there's a the change-control processes are growing in complexity it means there's some aggregator(s) demanding very structured data

    1. requirements for a replacement system to support import and export of data can often have a root cause in this kind of workaround

      Another org-smell: The stakeholder's needs appear simple, but then they're insistent that there also needs to be a bulk-import / export feature. Typically they have some workaround-processes to handle the edge-cases that the simple process can't take care of.

    2. These larger projects then become magnets for all the small changes that weren't previously justifiable

      This is a kind of org-smell; if previously people were just shipping changes themselves but now they're starting to look for other projects to piggy-back off, it might be a hint that the cost of change is subtly starting to increase.

    1. Musk doesn’t believe in induced demand; he recently called it “one of the single dumbest notions I’ve ever heard in my entire life.”

      For a supposedly smart guy Musk really does say some really dumb things.

  8. Aug 2022
    1. After you’ve authenticated once, creating synced databases is as simple as pasting a link.

      If you've previously already authenticated Jira disconnect the account and re-auth it. Without this step the paste as database link doesn't appear

    1. But most of this research failed to take into consideration the associations between names on the one hand and race and social class on the other.

      Highlights the importance of not only good experiment design but also on the value of getting your analysis peer-reviewed

    2. Once a name hits a critical mass among females, its use for the male population declines precipitously. And feminine names never become masculinized.

      Names intersect with gender and other cultural forces as well

    3. "cocktail party" effect

      The ability of the brain to focus in on only particular auditory or visual stimuli and block out the rest, like hearing your name at a loud cocktail party.


  9. Jan 2022
    1. We can do that, using the @typedef JSDoc:

      By this point I might argue that just writing TS is less verbose ("cleaner", as the author mentions above) but I understand that preferences vary.

    2. Workable, but less than perfect.

      would've loved more detail on things like choice of IDE etc. Vscode has pretty decent TSC support. better than webstorm even, imo.

    3. In actuality, TypeScript is not one language. It’s an infinity of languages, each one slightly different, and each one “generated” by a specific configuration file.

      Really good point, and I really like this way of thinking about TS.

      I think this behaviour comes from the fact that TS is trying to bend itself to JS; there's infinite variability in the kinds of projects written in JS so of-course one would need a configuration space that's wide enough to accomodate that.

    4. everybody should move to dynamic typing

      I appreciate that later in the article the author realizes that they were falling into a black or white fallacy because this is another example of the same.

      clearly all software contexts are not the same. What's appropriate for an MVP is clearly different from what is needed for code deployed on a space-mission.

    5. my code was “clean”

      might be more accurate to say it was less verbose (compared to Java/C++).

      and having terser code is also important for sure, just that saying code is "clean" opens up scope for too much subjectivity imo

    6. This was because dynamic typing doesn’t give the safety net that static typing does. So you write more tests. Which is a good thing.

      Tests are a good thing, but not all devs are even aware of the loss of safety net and so there's no guarantee that using a dynamic language results in more tests.

      Using tests and static-types together would mean that there's whole categories of bugs that get eliminated while also getting more coverage for less lines of test-code.

    7. because you’re dealing with data, and not trying to abstract it away, then the design becomes simpler. Much easier to reason and deal with.

      this seems like more of a pro-FP argument than an anti-static-types argument.

      the destroy-all-software talk on "Boundaries" / "Functional core, reactive shell" illustrate this approach beautifully.


  10. May 2021
    1. but that we’re looking to science for answers that ultimately require human moral intervention

      science can provide the tools, but not the motivations to actual do something. For that we need philosophy, morals and ethics. Hume's Guillotine somewhat formalizes this distinction.

  11. Apr 2021
    1. There is such a thing as a price umbrella, but there's also one for customer happiness.

      I think this is meant to mean that Amazon sets the benchmark not only for price but also for customer-happiness. So if you're coming in as a new retailer, you need to either make an offering on the higher-end or the lower-end.

      and offering something on the lower-end of customer happiness is probably not a winning strategy.

    2. ex nihilo

      translates to 'out of nothing'

  12. Mar 2021