One observation working in AI-heavy organization: having a large and rich context is your competitive advantage. Same was before but now it’s doubled with the fact that code generation is not such a valuable skill.
But there is an interesting twist here: for software products codebase is still the biggest and richest source of the context. Codebase is context of present. Change log is context of past. Product vision is context of the future. And you need all 3 to be efficient.
The thing I started to try out #gpui by @zeddotdev is finally shaped into something not too embarrassing to show. I called it Probee and it lets you run custom prompt on a screen selection. Here, for example, how it assists me in learning new Finnish words.
You can customize the model's output using your own prompt in a highly personalized way. Then, bind it to a shortcut and use it for frequent, repetitive tasks, like refining speech or studying a new language.
AI is here, but without form, we won’t see its full potential.
Chat is the beginning, but not the final destination. We still need great interfaces to guide and set the context.
linear.app/blog/design-for-t…
I mean we already have v0.dev and I think it can be just a beginning: I imagine to my request to book a hotel AI just build the booking UI on the fly with my preferences preset.
The challenge here is determinism of UI: I don’t want to look for submit button every time in new place. But in general this doesn’t sound such a crazy idea as it gives so much flexibility.
Problem: React's useEffect only specifies when code should run. It doesn’t document why it should run or what it should do. This makes useEffect hard to read, debug, and maintain.
Solution: Use a custom ESLint rule to require using a named function.
Here’s a custom rule from @pkerschbaum
Here's the result:
ALT "no-restricted-syntax": [
"error",
// Require naming the function passed to `useEffect`.
{
selector:
":matches(CallExpression[callee.object.name='React'][callee.property.name='useEffect'], CallExpression[callee.name='useEffect']) > :matches(ArrowFunctionExpression, FunctionExpression:not([id]))",
message:
"Functions passed to `useEffect` must be named to document intent. More info: https://x.com/housecor/status/1750980809874436431.",
},
],
Not as a criticism but purely as a challenge to achieve the same result with minimal amount of code did a single html version of Minimalist CV by Bartosz Jarocki
github.com/antonKalinin/cv
i created a print-friendly, minimalist cv page. if you're like me and need a CV, it's a pretty good way to generate PDF or just have a simple website. built with @nextjs@shadcn UI and @tailwindcssgithub.com/BartoszJarocki/cv
I do share the idea that you should use any tools that make you productive if it doesn't harm the DX & UX, but here I couldn't resist and just wrote old good index.html which was very satisfying
antonkalinin.github.io/cv/
This INSANE, 💯 real video of the @SpaceX Inspiration4 launch is made of multiple telescope tracking shots, created by the talented MARS Scientific group — perfectly showcasing what a #Falcon9 rocket launch looks like after sunset.