Thanks to @notion.com for the $6,000 donation!
Amazing to see companies supporting their dependencies in such a big way ๐
Thanks to @notion.com for the $6,000 donation!
Amazing to see companies supporting their dependencies in such a big way ๐
The other day I asked cursor to check my code for memory improvements and it told me that process.memoryUsage.rss() did not exist so the entire code would crash.
I told it it was wrong and to its credit it did download the API docs and corrected itself.
I have taken to call these people "agentic middlemen".
They are an absolute pain but usually pretty easy to spot when either their iteration on your comment is slop, or they respond to your comment with obvious LLM written text.
I guess if I was one of the vibers I'd have just gone "full ralph" and fired off agents on each task and then only really wasted tokens, rather than time on the useless leads...
There's definite value here as a tool in the toolchain, but I still think human-first is hard to beat
Pro: I got some (okay) recommendations for work, quickly. The good leads mostly just confirmed suspicions I had, but it felt good to get a 2nd opinion.
Con: Many of the recommendations were obviously flat-out wrong -- if I wasn't as experienced I might have wasted a lot of time!
Pro: I didn't have to learn the profiling tools or analyse the data
Con: I didn't learn anything about the tools
I know I can read the history to see what it did -- but it doesn't help me learn the steps. EG It wrote a python script to analyse the dump from the tools... but why?
Used an agent for profiling for the first time today.
It was pretty cool to let it just run some tools and try to find some potential improvements.
It came up with some vague suggestions I was able to grow and iterate on for some decent wins!
You can do now! It's doe "properly" as a first class option in the rule!
When I have time I plan on adding some more fixers (eg unused catch variables)
We added a fixer for unused imports to no-unused-vars! By default it's a suggestion fixer - but you can swap it to an autofixer (for autofix-on-save or --fix).
Please try it out today!
๐ New blog post: Revamping the `ban-types` rule.
For many years, ban-types was one of our more prominent rules. We split it into targeted rules that better addressed common user needs. Read on for how it came to be & what those new rules do better!
typescript-eslint.io/blog/revampi...
github.com/tmikov/imgui...
Tzvetan had already done it as part of this toy example!
Screenshot of github's contribution dot visualisation where almost every square is muted green meaning "less contributions" except for one week which is bright green meaning "more contributions". The visualisation is meant to work like a heat map, but because the number of contributions in that week was many hundreds of times greater than the other weeks, it's colours ruined the scale making everything else the same, indistinguishable colour.
If you look closely and squint you can just barely make out which week I landed several hundred PRs to migrate some of Canva's codebase to isolatedDeclarations
I have setup my first "home lab" with proxmox!
For my first VM I setup a remote devbox! It took waaaay longer to get it working than I'd care to admit... But I can connect to it via vscode and everything!
Now to spin up a few more VMs for things I've always wanted to run...
So I needed to generate an SSH key and add it for my local user and then it let me connect.
Then I had a doozy of a time getting my remote ssh key uploaded cos I didn't have any file upload or ssh connection. I had to upload it via CURL ๐ฑ
But it's uploaded now and I have vscode connected!
I wish it were that simple - I was getting public key errors even when doing `ssh localhost` ๐ญ
So there's some other stuff with keys I need to setup.
Has anyone got a good guide to setting up a Ubuntu machine to accept (local) SSH connections?
Configuring the base image from scratch is not super easy when you've never done it before :harold:
But we have the same amount of types (possibly more...?) in the estree union and I haven't noticed the bad perf.
But maybe our codebases are just small enough that the cost at scale hasn't hit us bad enough to notice.
That's not to say megamporphism wouldn't come into play in, say, an ESTree codebase - but I feel like things would probably trend towards each kind having its own hidden classes?
I dunno would require some investigation to analyse and understand of course.
I also feel like the TS codebase was a bit weird with how it did disjoint unions given it mostly passed around `ts.Node` which was not a union type and then relied on type guard fns and type assertions to change the type.
It wasn't really a "standard" disjoint union usecase.
I can't find anything specifically citing alcoholism and a number - that was an incorrect extrapolation on my part.
On researching it appears I have misremembered numbers. At least in the US "heavy drinking" is categorised as 7 or 8 or more per week for women and 14 or 15 for men (depending on source).
And those classed as heavy drinkers have a "marked increased" likelihood of "alcohol related harms".
Which is why you don't be a silly billy and you use a switch instead ;) then it gets optimised into a jump table by e engine for fast perf!
It is my understanding that hidden classes and megamorphism shouldn't apply to tagged unions so long as you're not actively mutating the objects to add properties to them.
AIUI the HC can still be created so long as the object shape per tag is consistent and unchanging.
6 pints a week isn't "that much" for a lot of people. Many people will have eg a glass of wine each night with dinner without batting an eye or realising that's technically alcoholisim.
So the average isn't that surprising to me.
Okay I just got a Beelink SER9 for use as my remote devbox and server host.
Now to figure out how to install linux on it... boy it's been a long while since I've done this.
I remapped it to "option+tab" on macos and my life has been so much better since.
No more fighting between (correct) IDE autocomplete and (incorrect) AI autocomplete.
We don't want your contribution if you're just a middleman!
We could tag copilot on issues and let it run and create a PR without you in the middle pretending to be part of the process.
Don't pretend you're contributing. Do the work (with the AI sure) and learn and contribute!
This isn't just limited to PR either - we've seen the same behaviour with issues.
I recently saw one user file a few issues that were clear and obvious output from asking the agent to plan out a piece of work.
They filed an issue with well over 1000 words!
And the responses...
We've seen a number of people that are literally just acting as an agent middleman.
They're asking an LLM to file a PR and then when we leave review comments they're copy pasting our comments into a chat window and copy pasting the responses.
It's disappointing, honestly.
If I ever see someone's comment and it says "you're absolutely right" I now automatically assume that they are either an LLM bot or that they're copy pasting from one.
It's such a shame that we have to deal with this slop contribution in our opensource projects.