• 0 Posts
  • 17 Comments
Joined 1 year ago
cake
Cake day: March 24th, 2024

help-circle
rss


  • Mmm it sounds like you’re using it in a very different way to me; by the time I’m using an LLM, I generally have way more than a general feel for what I’m looking for. People rag on ai for being a “fancy autocomplete”, but that’s literally what I like to use it for. I’ll feed it a detailed spec for what I need, give it a skeleton function with type definitions, and tell the ai to fill it in. It generally fills in basic functions pretty well with that level of definition (ymmv depending on the scope of the function).

    This lets me focus more on the code design/structure and validation, while the ai handles a decent amount of grunt work. And if it does a bad job, I would have written the spec and skeleton anyways, so it’s more like bonus if it works. It’s also very good at imitation, so it can help to avoid double-work with similar functionalities.

    Kind of shortened/naive example of how I use:

    /* Example of another db update function within the app */
    /* UnifiedEventUpdate and UnifiedEvent type definitions */
    

    Help me fill in this function

    /// Updates event properties, and children:
    ///   - If `event.updated` is newer than existing, update as normal
    ///   - If `event.updated` is older than existing, error
    ///   - If no `event.updated` is provided, assume updated to be now()
    /// For updating Content(s):
    ///   - If `content.id` exists, update the existing content
    ///   - If `content.id` does not exist, create a new content
    ///   - If an existing content isn't present, delete the content
    pub fn update_event(
        conn: &mut Conn,
        event: UnifiedEventUpdate,
    ) -> Result<UnifiedEvent, Error> {
    

  • 100%. As a solo dev who used to work corporate, I compare it to having a jr engineer who completes every task instantly. If you give it something well-documented and not too complex, it’ll be perfect. If you give it something more complex or newer tech, it could work, but may have some mistakes or unadvised shortcuts.

    I’ve also found it pretty good for when a dependency I’m evaluating has shit documentation. Not always correct, but sometimes it’ll spit out some apis I didn’t notice.

    Edit: Oh also I should mention, I’ve found TDD is pretty good with ai. Since I’m building the tests anyways, it can often give the ai a good description of what you’re looking for, and save some time.


  • Reminds me, Malcom Gladwell’s “Outliers” book had a section about his interesting observation that pro hockey players’ birthdays are skewed to the earlier months of the year. He attributed that to a kind of butterfly effect:

    1. Youth hockey leagues set league cutoffs by age, and mostly all start at the same time.
    2. The early month kids are slightly older, bigger, and stronger
    3. Since they are better at the very beginning, they get more playing time, more encouragement, maybe visit more “all-star” events, where they might get extra coaching, etc.
    4. eventually those kids actually just become better, because they had a better environment to grow.

    I mean idk how accurate this exact instance is, but I feel it’s a good thought experiment in thinking of how seemingly insignificant parts of the environment (like when in the year all the youth hockey leagues start) can impact whatever talent is. The whole nature vs nurture thing.






  • Wish granted. Now management questions why everything “takes you so long”, and you were passed up for promotion in order to promote Jim (just last week, he did a presentation about his new feature that uses fancyAssDB).

    Don’t worry, though. They’ll need your help soon, in order to make Jim’s fancyAssDB pet project sync with the oldAssDB legacy server (which is a completely different User/id structure. TBH might need to refactor most of Jim’s code to fit. Have fun extending all of Jim’s hardcoded features). He quit the company to join a crypto startup. Still no promotion though, since you finish stuff kinda slow (I mean, Jim built it in 2 weeks, so it can’t be too complicated).

    EDIT:

    So now I hear you thinking “well at some point, they’ll notice how much better my code works, and that features are much easier to integrate”.

    But don’t worry, because the next month, your manager will be promoted to head of a new department and forget you exist. Meanwhile, the new head of your department doesn’t know you, and is thinking of promoting Frank.

    While you were fixing Jim’s code, Frank added some features to your old project using fancyAssLib3 to save some time. He’s doing a presentation on it tomorrow, and management is very interested, because they haven’t heard about this code yet. It’s Frank’s codebase, right? I mean, he’s doing a presentation on it.



  • Yo so question for y’alls: what’s your opinion on using custom domain (for portability) vs masked emails?

    Rn I have my main emails on my personal domain, and then I have masked emails going through xxx@fastmail.com for more anonymity + segmenting (err i mean just being able to disable a certain address individually) . But watching all this reminded me that if I decided to move away from fastmail, i’m much more locked-in this way. Do y’alls use a custom domain for masked email as well? The one thing I don’t like about that is that it’d be so easy to connect multiple accounts based on domain, so anonymity is probably kinda broken.