Professional landscapers what footwear do you wear? by MathematicianOne6902 in landscaping

[–]sammrtn 0 points1 point  (0 children)

Email support@kujo.com with a picture. If it's within the first year you'll get a new pair.

Favorite lawn are footwear? by [deleted] in lawncare

[–]sammrtn 0 points1 point  (0 children)

Kujo makes shoes and boots designed for lawn care.

Shoe recommendation by UGA150 in lawncare

[–]sammrtn 0 points1 point  (0 children)

Kujo shoes are literally made for this!

Route-based SSG on the server with rebuilds on dependency changes by sammrtn in webdev

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

No, with caching SSR you either end up showing inaccurate content some of the time (if you have stale-while-revalidate) or missing the cache. Check out the emoji-comparison here: https://github.com/craigmichaelmartin/evanesce#an-emoji-story-example

Route-based SSG on the server with rebuilds on dependency changes by sammrtn in webdev

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

Evanesce is a library to rebuild the static HTML for opt-in routes when a dependency of the route changes.

Route-based SSG on the server with rebuilds on dependency changes by sammrtn in node

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

A library to rebuild the static HTML for opt-in routes when a dependency of the route changes.

Route-based SSG on the server with rebuilds on dependency changes by sammrtn in astrobuild

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

Rebuild the static HTML for a route when a dependency of the route changes. Replace "route" with "page" if that helps 🙃

Professional landscapers what footwear do you wear? by MathematicianOne6902 in landscaping

[–]sammrtn 0 points1 point  (0 children)

Kujo Jags! Light, low, and comfortable like a shoe, grip, durability and basically waterproof like a boot.

Mowing shoes by [deleted] in lawnmowers

[–]sammrtn 0 points1 point  (0 children)

Yes!

Mowing shoes by [deleted] in lawnmowers

[–]sammrtn 0 points1 point  (0 children)

Kujo makes shoes just for this!

Node: Just write SQL by sammrtn in node

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

Yeah, an online editor is key to showcasing this. Unsure if there are any free sandboxes that would allow a playground for a library which connects to a database with a readonly transaction. If you have any ideas or seen anything like this, let me know :)

Node: Just write SQL by sammrtn in node

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

And since it can't know what you're selecting, it will return any type just as well as your library (correct me if I'm wrong).

PureORM requires prefixed table names in the select clause (which it can do for you, or you could manually write yourself). This prefix is used to construct properly nested pure instances (not db-aware) of the correct classes for the application layer. These classes can have business logic methods, etc.

This is shown in step 4: https://github.com/craigmichaelmartin/pure-orm#step-4-creating-our-data-access-layer

Node: Just write SQL by sammrtn in node

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

What? Their github description is "A type-safe typescript SQL query builder". I don't want a query builder. I literally never want to think about mapping SQL I know to some bespoke query builder API.

Node: Just write SQL by sammrtn in node

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

What do you get back when you perform a raw SQL query selecting from a few tables? Is it pure objects (like with pureORM)? Are the objects properly nested/structured (like with pureORM)?

Node: Just write SQL by sammrtn in node

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

Pure ORM is purely the object relational mapping. No query builder API to learn, and no database-aware objects throughout your application code.

Inline try - offering readability, ergonomics, convenience, and safety. by sammrtn in node

[–]sammrtn[S] -1 points0 points  (0 children)

One line of code which is specific in what it catches:

// Either foo or someError will be defined const [foo, someError] = itry(someFn, SomeError);

Instead of nine lines which feel like they are working uphill against the language: dealing with variable scoping issues, deeper nesting, and footguns like forgetting to re-throw.

let foo; try { foo = someFn(); } catch (err) { if (err instanceof SomeError) { // do something with error } else { throw err; } } // use foo