I'm sure there are plenty of examples like this, but one thing that I find really hard to deal with is to integrate such tools into existing codebase -- you can make all these things as standalone pages, but for a professional developer, you have certain standards and conventions, and often it takes a lot of work to review/revise the code to make it work with existing codebase, so much that you end up using inline completion just to help with obvious stuff or boilerplate. I woule rather spend 20% extra amount of time to write the code myself yet have confidence, than spend time tweaking the prompt or giving follow up instructions.
It's funny how we went from "it's impossible for a computer to write meaningful code by itself" to "yawn, another one of these" in like 2 years.
I just tried the following prompt:<p>> please write a rust library implementing a variant of simple8b integer compression augmented to use run-length encoding whenever it's beneficial to do so.<p>Initially I was sort of impressed, it quickly generated a program which looked like rust code, and provided an explanation that, while not as technically detailed as I'd hoped, seemed to be at least related to the topic.<p>Then I tried to compile the program. Turns out the bot didn't quite actually write rust, it had written something closely resembling rust though, and the compiler errors helped me fix it.<p>Then I tried to run the tests--yes! the bot even wrote tests, although it did so in a totally bone-headed way by writing multiple distinct tests in one test function--not good. Panic on integer overflow trying to left shift a value. There were also multiple pages of compiler warnings complaining about dead code, unused functions, enum variants, etc. I always fail on warnings.<p>This is not a lot of code. 190 lines including tests. At this point, given that I already have concerns about its correctness, I don't think there's anything I can really use here. I'm worried the deeper I dig the worse it'll get, so better to cut my losses now, sit down and read the simple8b paper, and implement this from first principles.<p>Every time I try to use one of these things it's the same story. I cannot understand the hype. I'm genuinely trying but I just can't understand it.
One of the other things I've been noticing is diffusion models are starting to get quite good at UI design. They're still only well-tailored for landing pages (due to most of the training data being based on portfolio sites like dribbble), but still the output is at a point where I'd at least start with some AI riffs before jumping in myself on design.<p>Once these are at a point where we can automatically interpret them into usable workflows, it's going to be incredible how quickly you can develop your ideas. I'm really excited for it.<p>Some examples of outputs:<p><a href="https://image.non.io/cd90cc33-4a6a-41d8-abd2-045d3a272010.webp" rel="nofollow">https://image.non.io/cd90cc33-4a6a-41d8-abd2-045d3a272010.we...</a><p><a href="https://image.non.io/5a0c3fc7-37f8-4e72-aba9-cd61f3c18517.webp" rel="nofollow">https://image.non.io/5a0c3fc7-37f8-4e72-aba9-cd61f3c18517.we...</a><p><a href="https://image.non.io/920adf7c-a554-41bd-a29c-77bebed1cdad.webp" rel="nofollow">https://image.non.io/920adf7c-a554-41bd-a29c-77bebed1cdad.we...</a>
I think there is a commonly accepted rule of thumb that it is easier to write new code than modify existing code. Right?<p>Why that is there may be several reasons one being that when you try to improve existing code you would need to know all the untold dependencies in it to not break anything. Whereas when you write new code, there are no dependencies you don't know about.<p>But so, if you take an AI provided implementation, and try to fix it, you are basically doing just that, trying fix old code you don't know much about. You are working on a (AI-provided) legacy code-base in essence.
I stopped building web early 2000s to build web businesses instead, but I was pretty creative with the ol' LAMP back in the day, this whole thing is honestly just... it makes me giddy. I can build super fun stuff now without asking people, for example this took me... I dunno, from telling what I want to deploy... 15 minutes? And to ME, it's awesome: <a href="https://funds.ascent.ca/" rel="nofollow">https://funds.ascent.ca/</a> - I doubt it's well coded or w/e, but the fact that I could get a "cool" marketing property online in < 20 minutes basically exactly as I want... giddy is the right word.
I'll add mine to the pile: I needed a visualization of the classic Towers of Hanoi puzzle for a course I'm teaching and Claude banged it out (in pure JavaScript, no less) in like 3 minutes of me typing: <a href="https://lgessler.com/files/towers.html" rel="nofollow">https://lgessler.com/files/towers.html</a><p>The first stab was basically correct, but then I needed to prompt him several times to correct an issue where the disk that's currently picked up was being rendered as a vertical strip instead of as a disk, and then I just told him to convert the React into pure JS and IIRC it worked first try.
Simon, (if you’re reading), if you “like programming”, is there any point that you get depressed about LLMs doing all the fun stuff that you wanted to do?<p>I see some arguments about high-level languages, eg “I’d rather program in Python than assembly - this is just another step-up”. But I feel natural language is altogether different and obliterates any skill/knowledge you’ve built-up in programming.<p>I can think other things, for example music - I like playing guitar even though I’ll never create something totally original or do better than a machine could do. But for me, programming combines the fun of creation with the satisfaction of the end result - something you wanted to exist now exists.<p>To clarify, I’m not talking about “usefulness” or accomplishing some business objective, I’m talking about the joy and satisfaction of programming.
The new Sonnet version is pretty great at code but I keep hitting output size limitations in the Claude app when I usually didn't use to before. Anyone else experiencing "Claude's response was limited as it hit the maximum allowed length at this time" a lot more now?<p>At this point their limited output limit is far behind o1/o1-mini. I really hope they significantly improve that next.
<a href="https://news.ycombinator.com/item?id=41904595">https://news.ycombinator.com/item?id=41904595</a>
<a href="https://news.ycombinator.com/item?id=41913378">https://news.ycombinator.com/item?id=41913378</a><p>Not sure why no discussion at all - maybe the design is underwhelming.
Anyone got a "best practises" or even a few "my workflow" blog posts on how to best use LLM's with a local code base?<p>Just saw someone recommend:<p><a href="https://aider.chat/" rel="nofollow">https://aider.chat/</a><p>Thought there might be more worth exploring from this community. ;-)
There are a bunch of comments in this thread along the lines of "these are just toys" and "anyone could build these without an LLM".<p>I need to update my post to emphasize this, but that's kind of the point.<p>Every one of these 14 tools (with the possible exception of the OpenAI Audio debugger one, that one's quite hard) is something any web programmer could build relatively quickly.<p>... but not as quickly as I did with an LLM, because they almost all took less than 5 minutes from idea to finished implementation.<p>The key point is that if I didn't have Claude to help build these, I wouldn't have built them at all. None of them would justify even an hour of work - they weren't essential tools that I needed to get stuff done, they were just things I built because building them is now so cheap (in terms of time) that there was no reason not to.<p>That's the real magic here. The cost of knocking out a single page app that does something simple is often now lower than even the cost of spending a few minutes on Google trying to find an existing tool that solves the same problem.
Most of these are really just 10 lines of python code. The value of generating an entire HTML with GUI is great but then the overhead comes in when you need to modify it or fix something or god forbid add a dependency library and you end up spending more time than actually building the tool from scratch. It's getting close though.
Anthropic is so close to getting to a WeChat-esque store-less super-app state. It just needs a way to gather all your published artifacts and surface them easily in the sidebar like your favorited chats.<p>Since Elon is so interested in that model, if xAI had Claude's capabilities, they would surely go with that angle
if this aren't amazing times to be alive I don't know, this is insane, I also started to learn some rust on the weekend and it is nuts how good a chatgpt 4 can be as a teacher to support you on the fly
We built an open-source and local tool that allows you to take these even further. Highly recommend plugging in the latest model, but you can keep iterating on the apps.<p>Currently also on the front page <a href="https://news.ycombinator.com/item?id=41926067">https://news.ycombinator.com/item?id=41926067</a>
I just don't seem to find this stuff as useful to me as people are portraying. Take the "extract URLs" example: I would just do<p><pre><code> curl -sL $URL | htmlq 'a' -a href</code></pre>
Meanwhile, no luck getting it to build something that reverses a GIF. (Also, weirdly, no luck with finding a working GIF reverser online.) (Trying to reverse this: <a href="https://www.tumblr.com/necessary-disorder/765064008182235136" rel="nofollow">https://www.tumblr.com/necessary-disorder/765064008182235136</a>.)
@simonw: jina is getting cranky:<p><a href="https://tools.simonwillison.net/jina-reader" rel="nofollow">https://tools.simonwillison.net/jina-reader</a>?<p>{"data":null,"code":451,"name":"SecurityCompromiseError","status":45102,"message":"Your request is categorized as abuse. Please don't abuse our service. If you are sure you are not abusing, please authenticate yourself with an API key.","readableMessage":"SecurityCompromiseError: Your request is categorized as abuse. Please don't abuse our service. If you are sure you are not abusing, please authenticate yourself with an API key."}
I am a bit frustrated that I don't have a great "tool" environment to build out this stuff, because of having to futz with the I/O. Like most of that stuff is "well I know how to write the Python to do the last step, but wrapping it all up in a simple web UI is Too Much Work". That effort might be small, but it's still orders of magnitude larger than the snippet!<p>Lots of TUI interfaces try to approximate this, but I think I really just need to build out something a bit like <a href="https://anvil.works/" rel="nofollow">https://anvil.works/</a>
A very interested paradigm introduced here by Anthropic is that this content is hosted. And the output of LLM is amde a self-hosted app, ready for consumption by consumer. Not far away from build my own site kind of thing.
Here's one I built with Claude last week: <a href="https://news.ycombinator.com/item?id=41855594">https://news.ycombinator.com/item?id=41855594</a>
I fully agree.<p>I think Claude offers me 10x productivity, especially for all these helper apps and technical POCs that I typically create during the week.<p>And that's without even mentioning mail chain replies, analysis of legal or financial documents, helping my kids with their math assignments,...<p>It's a huge enabler for me, and it's getting better every month.<p>We are getting up the abstraction ladder faster and faster, and I cannot even imagine where we will end up within a few months, or a few years.
Hey some time ago I needed this at work:<p><a href="https://www.jsoncomments.com/" rel="nofollow">https://www.jsoncomments.com/</a><p>it is basically a tool to add some additional text to json text files and interpret it as comments for each line. I did it with ChatGPT.
A useful prompt to quickly generate this kind of website is<p>"generate an index.html for {idea}".<p>It's so much faster to just work within a single file. Of course, you have to be limited in scope, but for quick tools such as these it's excellent.
This is pretty amazing: I asked it to build a single-page app to accept and parse a PDF and give it back in a JSON structure I provided, and it did exactly that!<p>The parsing was terrible, but it worked <i>at all</i>, which is impressive. It suggested multiple next steps, one of which was to work harder on parsing, so I told it to do that. The resulting app showed a similar UI, but was non-responsive. I noticed it had output a message in small text that said "Claude’s response was limited as it hit the maximum length allowed at this time."<p>So I told it that it had gone over its own limits and to try again, making an effort to stay within its limits. It tried again, and this time the UI didn't even render beyond a text outline of the UI elements, and I got the same message.<p>So: pluses and minuses.
Just in case you need it: <a href="https://github.com/gchq/CyberChef">https://github.com/gchq/CyberChef</a><p>I was just trying to be helpful, since it was relevant to content in the post…
These LLMs create significantly useful code and they are getting better. Those professionals who deride their utility are putting themselves at risk of not strategizing well for their future.
For the majority of these, a simple google search would have lead to an existing program/website that does the same thing.<p>We're past the POC stage. LLMs can generate code for simple programs. It's when you try to tweak the requirements and point how a program introduces a bug that you eventually realize they still fail to take you through the last mile just as they did year and a half ago.
I take tools like these as an inspiration. All of us have at least some trivial tasks that can be automated. In the past, automating them might have been a hassle, but with LLMs, that’s no longer the case. I, for one, have a “scripts” folder with dozens of one-off mini-apps to handle specific tasks, and this folder keeps growing every day.