Hugo

Hugo

@codewithhugo.com

Senior Developer - Building alpinedevtools.com Wrote jesthandbook.com + ×3 books with Packt. Thoughts at codewithhugo.com

43 followers98 following54 posts

Quadratic runtime complexity (nested loops) is really nasty since it's fast over small datasets/test cases but under real-world usage it breaks. In this case, the Alpine.js Devtools data panel would freeze.

One of those productivity/flow tips is to leave something half done so you can get going the next time LLMs/agents give you that in the cases where they don't one-shot your request. Even just firing up the dev server and testing the output still gets you closer to flow even in the one shot case.

Fed a repro into a coding agent (Jules) and it actually fixed the underlying bug Can we make a plan to solve it but in a way that i can take over from Jules if you cant solve it? (So probably include a reproduction, make sure it fails eg. automation tests, submit that code, then try to fix it)

Hugo reposted

The AWS News Feed is currently without funding 😢 Meanwhile development of new features continues, the site's numbers are consistently growing, and with the pre:Invent season about to fire up we expect only more visitors and subscribers in the coming months! Will you become a sponsor? Send me a DM!

Started using jules.google.com Async development agent, you grant it access to GitHub repositories, it clones them in a VM and runs tasks (including scripts etc). Not bad for small tasks, stubbing/poc attempts or while on the go (slow to type code on mobile).

Hugo reposted

Big news! I'm available for hire! If you have JavaScript/TypeScript you want written, and you have budget for an ambitious and highly skilled practitioner with over 20 years of experience doing that, including leading teams, communities, and execs, hit me up. izs.me (RT please)

izs.meIsaac Z. Schlueter

Was struggling to find a free product screenshot generator for Alpine Devtools Chrome extension For the Chrome Webstore you need to capture 1280x800 and I'm just not that accurate with drag and drop screenshot.rocks seems to do the basics of what I need (browser frame config, padding/background)

screenshot.rocksScreenshot.Rocks | Create beautiful mobile or browser screenshots and mockupsCreate mobile or browser mockups from screenshots in seconds. Screenshot.rocks turns ordinary browser screenshots into beautiful mockups

Funny story I keep hitting this "I want to select elements where attr starts with *prefix*" Eg. Detect HTMX I need hx-* or data-hx-*

Hugo@codewithhugo.com

Yeah so I didn't want to borrow the v-bind/x-bind shorthand because I explicitly am not doing a reactive binding Re why it's `data-s-attr="attrName=contextValue"` 1. The querySelectorAll is simpler (select for data-s-attr), I'm not even sure how I would use querySelect for "attrs starting with :"

I'm not one to admit when I'm being stubborn But working on the Alpine Devtools in the evenings means I finally felt the "why no dark mode" pain This vindicates the time I spent wiring Tailwind (v4) properly the other day (devtools v1 is on Tailwind 1)

Free Extension (re)available on Chrome webstore: - manifest v3 compatible (rewrite to @solidjs.com) - component inspect/data edit - performance fix for larger components (instant updates, tested on 10k data properties) - state/sync reload fixes (no more close/reopen, works on page refresh etc)

One of the first times I've ever been bitten by Big O ``` data.map((d) => { prevState = oldData.reduce() }) ``` When data and oldData are ~10k entries, you're doing a 100 million iterations. Move the reduce out of the loop (.map here) and you're doing 20k...

No build Tailwind - use `@tailwindcss/browser` via CDN (but only on local) in your app - run `copy(document.querySelector('style').innerText)` (depending on whether you've got other styles you might need to mess with the selector) - paste into your .css file

Trying something new (or maybe reviving an old project) I was part of the original crew that worked on Alpine devtools. Chrome has obsoleted the extension (granted, it has had no updates since Sept 24) with Manifest v3

Using Windows as a dev machine (temporarily) professionally for the first time after ~ a decade of being on Mac I started leaning into the IDE to run things, shell is just a minefield with backslash in paths, slow and bad auto complete Keyboard navigation muscle memory for VSCode letting me down

Been trying to get my first newsletter issue in a while sent out, more on that at the end of the thread A lot has happened since I was regularly sending this out. I'm intending for it to still a place to learn about JavaScript/TypeScript and Node.js in the real world.

View full thread

I'm changing jobs in the new year so there may be a set of new posts about what the job search was like this time round Buttondown, which powers the newsletter has changed pricing tiers (stopping my send) and UI (hiding away a setting Ineed to toggle) let's see when the newsletter makes it out.

Been trying to get my first newsletter issue in a while sent out, more on that at the end of the thread A lot has happened since I was regularly sending this out. I'm intending for it to still a place to learn about JavaScript/TypeScript and Node.js in the real world.

Both are ESM native, "no build" and "copy-paste into my project" friendly Examples with actual web components coming at some point. Note: I haven't tackled interactive forms, they don't have reactivity, they don't deal with event handlers

An example of Hyrum's law in JavaScript I encountered this week (or is it?) A `divide(numA, numB)` function implemented partial application `if (numB == null) return n => divide(numA, n)`

Now that's ok I guess, until I found a callsite when it was being used `divide(undefined, undefined)` which instead of throwing or returning a number... would now return a function The code doing that would subsequently try to do some arithmetic on it, so it would end up producing NaN

You are up to date.