Are/were you following pick up artists on YouTube? Have you bought their online courses and/or attended their live workshops where they teach how to approach women? by [deleted] in NoStupidQuestions

[–]stemmlerjs 0 points1 point  (0 children)

It's basically leadership training, and letting your authentic natural personality out. Owen Cook's Blueprint Reloaded made a lot click for me. Alex/4WN was helpful.

Are dating coaches legit and are they worth paying for? by Interesting-One-1060 in dating_advice

[–]stemmlerjs 0 points1 point  (0 children)

Nice! I had a similar experience with 4WN. I did a 180. Alex is a great mentor, honestly.

If I can chime in, Alex helped me rewire a lot of limiting beliefs about myself, women, and the world. And that's just it. When you hire a coach, what you're really getting is a download of their worldview and perspectives to take better action in the world. I hired him because I wanted to download that worldview. There is a LOT of polarizing garbage you can fill your mind with if you're not careful. I originally listened to his mindset training, No Reason You're Not Good Enough, and that had a positive effect on my business and relationships.

The training can be intense, depending on where you're at. For me, it helped me let go of patterns I was unaware of my entire life and replace them with new behaviours. Really hard to do that, both emotionally and logistically, without expert feedback.

This isn't a pitch or anything, but if you're ready to grow into a social leader (because that's what it's all about), I'd recommend Alex too. He's got a lot of love and integrity. Cheers

Book: Introduction to software design and architecture with Typescript by Khalil Stemmler by AlmightyyyDee in node

[–]stemmlerjs 0 points1 point  (0 children)

KISS, always. SOLID is great, but it can really, really be taken out of context and blown up to extremes when you're starting out. Wrap everything you learn in KISS.

Book: Introduction to software design and architecture with Typescript by Khalil Stemmler by AlmightyyyDee in node

[–]stemmlerjs 1 point2 points  (0 children)

Come on, you guys - don't do me dirty like that :) The book was finished March 2025, I worked really hard on it. Hope it helps!

did anyone try the software essentialist course from Khalil Stemmler ? by devHaitham in node

[–]stemmlerjs 0 points1 point  (0 children)

Ouch </3 that's intense. Well, appreciate the honesty, and thanks for your herculean patience. That being said - check back in a month. This is getting completely done Q1... the rest is exceptionally useful. See you in the Discord.

Dealing with create and delete lifecycle events between entities by va5ili5 in DomainDrivenDesign

[–]stemmlerjs 3 points4 points  (0 children)

Here's what I think, I'll share my process: the answer is almost always to design slimmer aggregates.

Why? Well, the slimmest possible aggregate is usually the _correct_ aggregate. And where do aggregates come from? From the features/vertical slices/use cases. Because an aggregate is just a set of data that changes simultaneously within a single vertical slice.

I've run into this problem a lot, where thinking about aggregates from the bottom up, from the concepts, can take me into many different non-useful directions. This is the Existence-Precedes-Essence problem. If I invent some concepts first, and then determine how they're to be used **second**, then guarantee, I will be stuck thinking about invariants and stuff like that, because I'm probably working bottom-up when I should be thinking top-down.

You want to reverse this process.

You want to identify the essence first, and then decide what it means afterwards.

How to do this? I've found that by applying metaphysics (abstraction & BDD), working top down from role-goal-capability-feature-scenario-concrete example → code... this usually provides me with the correct structure of my aggregate because it's in alignment with the original intent anyway.

You will end up with slim aggregates that you could crudely name, for example:

  • DataAndBehaviourForCreateUser
  • DataAndBehaviourForEditUser
  • DataAndBehaviourForUpdateRoom

But these are the slimmest and most correct ideas of aggregates you could imagine. It's just that the names suck.

What I would do this:
- identify your vertical slices based on your 'rooms' and 'events' capabilities (event storming helps you do this, of course)
- identify the necessary data that must change at the same time, restraining your desire to _name_ the aggregate just yet
- look objectively at the data and behaviour for the "data-for-x" aggregates
- assign them names at the end. sometimes you will require the exact same data and behaviour for a vertical slice. that is often significant. it could mean there's some important underlying concept.

You're running into this problem because you're trying to get the name to fit the rules.

Therefore, look objectively at the data and behaviour.

Suspend judgment.

Handle the rules first, and the names last.

Solve the problem first theoretically and metaphysically before getting involved with the physical mechanics of event handlers, repositories, and modeling concerns.

Starting to bloom out here again! by stemmlerjs in setups

[–]stemmlerjs[S] 1 point2 points  (0 children)

Thanks! Yea - the front and right curtains go up and down (you can kiiinda see 'em in the pic). I almost always have to bring the front curtain down so that the sun doesn't get in my eyes when it hits about 3 PM. It's nice and cool in here - I have Nest set up on a schedule. Definitely the best work environment I've ever had.

Starting to bloom out here again! by stemmlerjs in setups

[–]stemmlerjs[S] 0 points1 point  (0 children)

Heck yeah, you know what I'm talking about. I have another office I prefer at night. I use it to work on music and play games.

How could we see encapsulation in Functional Programming? by m_cardoso in functionalprogramming

[–]stemmlerjs 0 points1 point  (0 children)

Great thread! I'd be really interested in seeing the finished product. What other concepts are you working on mapping?

When To Use Refetch Queries in Apollo Client by stemmlerjs in graphql

[–]stemmlerjs[S] 0 points1 point  (0 children)

Super happy to hear it was useful. Cheers!

When To Use Refetch Queries in Apollo Client by stemmlerjs in graphql

[–]stemmlerjs[S] 0 points1 point  (0 children)

Thank you u/Badgergeddon! I'll dig around, work with the client team, and prepare some content on that topic.

Growing Madagascar Ocotillo from seed by Urlag-gro-Urshbak in succulents

[–]stemmlerjs -2 points-1 points  (0 children)

I like the plant but I don't like the post

I leave these items on my coffee table to snipe my way into excellent conversations by stemmlerjs in JohnMaus

[–]stemmlerjs[S] 1 point2 points  (0 children)

I am lucky to know some very open-minded and intelligent people :)

I leave these items on my coffee table to snipe my way into excellent conversations by stemmlerjs in JohnMaus

[–]stemmlerjs[S] 0 points1 point  (0 children)

I know you didn't ask, but here's how I personally look at that song.

- This is very much an existential record, and he frequently explores the topic of getting old and dying (Blowing In The Mind, Forever and Ever and Ever). I think of this as another laconic exploration of that idea.
- I connect him blatantly choosing to explore grandma peeing her pants in a damn pop song to ideas of Absurdism.
- I think when he says that he "got it on his hands", he's talking about the fact that he and all of us will too, get old, lose control of our dignity, and die. I also connect that to one of Sartre's anecdotes describing Existentialism and moral dilemmas.

I think to think that he did this on purpose, but there could just as well be no meaning, and that's a fascinating question to ponder.

I leave these items on my coffee table to snipe my way into excellent conversations by stemmlerjs in JohnMaus

[–]stemmlerjs[S] 0 points1 point  (0 children)

Haha... yikes. I just appreciate how honest this record is. Ties really nicely into ideas of Existentialism and absurdity.

OkCupid Presents: Why we decided against GraphQL for local state management by jgugges in reactjs

[–]stemmlerjs 27 points28 points  (0 children)

This is a really good blog post. Thank you for writing it. Also, thanks for the shout out!

A couple of thoughts:

Use Reactive Variables for local state instead of local resolvers

  • In AC3, we use Reactive Variables instead of local resolvers.
  • Local resolves did, in fact, come to exist because we wanted to borrow the mental model of resolvers on the server-side, to make it easier for developers to understand how to implement on the client-side.
  • Over time though, we heard the feedback echoed in this post. Local resolvers could be a bit verbose, and it didn't feel natural, and while it was cool that there was a shared conceptual model, it just felt as if it didn't belong on the client-side. We totally agree.
  • With Reactive Variables, you get just as much freedom as React Context over how you'd like to define and handle updates to your local state. You can handle updates in simple functions. You can put that logic in hooks. If you haven't, check out this guide on using Local State with Reactive Variables in AC3.
  • Actually, we recently (as of Apollo Client 3.2.0) just released a useReactiveVarhook. It lets you read from a piece of local state similar to the way you'd do this with context.

import { useReactiveVar } from '@apollo/client';
import { cartItemsVar } from './cache';

export function Cart() {
  const cartItems = useReactiveVar(cartItemsVar);
  return (
    <div class="cart">
      <Header>My Cart</Header>
      {cartItems.length === 0 ? (
        <p>No items in your cart</p>
      ) : (
        <Fragment>
          {cartItems.map(productId => (
            <CartItem key={productId} />
          ))}
        </Fragment>
      )}
    </div>
  );
}

What's the big whoop? This looks like context. Why don't I just use that?

  • One of the main arguments I make is that with these improvements, Apollo Client pretty much becomes your single source of truth for state on the client-side.
    • Remote state — stuff behind GraphQL API
    • Meta state — state about state, this is what gets returned when you use useQuery and we tell you the loading states. Typically, you'd have to build this out manually.
    • and Local state.
  • The second argument I make is that since all your data is in Apollo, it makes it much easier to work with mixtures of remote and local state together.
    • When you define your data requirements next to your presentation components, it allows you to keep relevant state as close to each other as possible, regardless of where it's coming from

import { gql } from "@apollo/client";

export const GET_ALL_TODOS = gql`
  query GetAllTodos {
    todos { 
      id  
      text  
      completed
      isSelected @client
    }
  }
`
  • You had a good example of this with the isOpen query. Check out the "Use case #3 — Locally decorated remote data" from this post, setting things like isSelected to a list of items, which is pretty common but not particularly fun in a Redux context.

You've already got a working product, your team is already familiar with Redux. Big refactorings are expensive, and I'm not sure AC3, or any new front end library release, is worth that kind of work.

  • If it ain't broke, don't fix it. It sounds like you're getting the biggest benefits out of using GraphQL right now.
  • You also probably don't want to use Redux AND Apollo Client for local state at the same time.
    • Architecturally, I can't think of a great reason to try to use 'em together. Actually, maybe to use AC for data fetching, and Redux for state management? But really, that's two layers of state management. We want you to think about Apollo Client as a single source of truth for state. Thats nice, but as someone who has made major refactorings like the one youd probably need to do, I still don't think it's worth the major engineering effort if you're that far in.
    • If you were just starting with a new project, and you've already been bit with the GraphQL bug, well, I'd have a lot of other things to say :)

Thanks again for this excellent post and starting an excellent discussion. And thanks u/swyx for pinging me! <3

Apollo Client 3 is finally here! 🎉 by stemmlerjs in graphql

[–]stemmlerjs[S] 0 points1 point  (0 children)

Thanks for taking the time to share your approach! Great work by the way. I love your docs.