14 ms·
Everything I built with Claude Artifacts this week
- swah 2y agohttps://news.ycombinator.com/item?id=41904595 https://news.ycombinator.com/item?id=41904595 https://news.ycombinator.com/item?id=41913378 https://news.ycombinator.com/item?id=41913378 Not sure why no discussion at all - maybe the design is underwhelming.
- mvdtnz 2y agoMaybe because we're all exhausted by these kinds of demos. I'll be interested in AI when I can integrate it with a large codebase and it provides any benefit. I'm happy for you that you can stand up little toy apps that pull down an NPM library and call it, but it's not useful in my professional life.
- mattnewton 2y agoIf you have one of those larger codebases you aren't afraid of Cursor Co. getting a copy of, I would really try out Cursor. The indexing of medium sized mono-repo I've been working in is pretty flawless (contains code for a static web page, a singe page web app, and some python services along with deployment configs)
- sigh_again 2y agoThat's not a medium sized repo, that is a baby you can entirely memorize in your own head. Cursor is also dreadful at anything that isn't Javascript and Python.
- stonethrowaway 2y agoThat doesn’t sound like a medium sized repo?
- mvdtnz 2y agoThere's absolutely no way I'd share my codebase with some fly-by-nighter ~crypto~ AI company, but the codebase I work on is upwards of 60 million lines of code so I doubt any "AI" solution would come close to being useful.
- ben_w 2y agoAt 60 Mloc? Sure, for now I'd agree. An AI needs to use other tools to handle that kind of size, it doesn't (practically) work so well if you try to hold the whole thing in context. And while tool use is being worked on, the results I've seen are are the "that's an interesting tech demo" level rather than the mind-blowing change when InstructGPT demonstrated the ability for a language model to generate any meaningful code at all from natural language instruction.
- riku_iki 2y ago> I work on is upwards of 60 million lines of code so I doubt any "AI" solution would come close to being useful. that's what rag is supposed to solve: they chunk your 60M loc, and then retrieve and process only relevant depending on your inquery.
- bloopernova 2y agoExactly. When the LLM can create valid tests that cover all branches, then it will be useful to me. I use copilot every day, but it's only so good. The LLM hype feels like it's been driven by FOMO.
- jkaptur 2y agoI had a pretty cool experience with that the other day. I wrote some production code (LLM had no idea what was going on), then I measured the coverage and determined a test case that would increase it (again, just using my brain), BUT when I typed "testEmptyString" or whatever, the LLM filled in the rest of the test. Not a massive change to the way I work, but it certainly saved me a bunch of time.
- NitpickLawyer 2y agoI swear half the people in this thread have spent 5 minutes with the first chatgpt, pre 3.5, wrote it off and are so convinced of their superiority that they won't spend the time required to even see where it's at. Ever saw someone really bad at googling? It's the exact same thing with LLMs (for now). They're not magic crystal balls, and they certainly can't read everyone's minds at the same time. But give them a bunch of context, and they'll surprise you.
- IggleSniggle 2y agoSshhh, we've still got like a year of advantage over the folks that haven't learned about searching the Internet and still have to drive to their local university library...don't squander it!
- NeutralCrane 2y agoEngineers are also notorious for having hit and miss soft skills. The interface for LLMs is natural language. I wouldn’t be surprised if much of the variance in usefulness boils down to how effectively you can communicate what you want it to do.
- unshavedyak 2y ago
- deleted 2y ago[deleted]
- williamcotton 2y agoMy duties as a data scientist and forensic investigator involve writing lots of "little toy apps" for ETL and analysis. BTW, why the disparaging reference to "little toy apps"?
- mvdtnz 2y agoHow would you refer to the example apps in the OP's link? They are almost definitionally toy apps, and definitely little (a handful of pages of code including all of the HTML).
- skydhash 2y agoIt's related to this: https://xkcd.com/1205/ https://xkcd.com/1205/ As a programmer (which is the requisite to build such tools even with LLMs), I have a plethora of tools to do the tasks, what I choose and how much time I invested in in that depends on something similar to this chart, but with an added dimension: interest. Take for example the URL extraction. For one single occasion, I'd probably use VIM and macros to quickly do it. If it were many pages, I'd write a script. If it were infrequent, but recurrent, I'd take the time to write a better script and would only write a web page if the use case was shared with other people or if I wanted a cross platform solution. I believe the first question one should ask before building is why. That leads you to find a better UX than shoehorning everything inside a web app.
- IggleSniggle 2y agoI 100% agree with the point you are making. The only aspect that obscures it is that paying employers will happily pay to support interests that are, on inspection, a waste of time. In that aspect, I am hopeful. Maybe if "waste of time" activities are commoditized, "professionals" can instead focus on "what is important," whatever that might be.
- skydhash 2y agoI don’t mind if my employer bought a subscription. But my personal motto if that if I have to do something multiple time, it should take less and less time. I reuse code heavily (which is why I learned vim as it makes that fluid). And that’s where LLMs becomes useless because they need the entire context to generate something. Which means I have to type it out for them in addition to what I want. And the whole thing becomes a drag. Maybe Cursor and the likes could help, but the code is only half the story, there are things like protocols, messages format, specs,… What LLMs promise is endless drag. I try to structure my work to ensure that the final velocity is high.
- infoseek12 2y agoIt’s extraordinary! Perhaps how quickly we become jaded should be taken as evidence of how quickly the world is changing right now. When I looked at the examples they seemed like the kind of one off scripts, of limited complexity, that we’ve seen many times in the last year or so.
- yen223 2y agoTo have discussions people need to be able to see your post, and on HN it can be a matter of luck.
- rtzand 2y agoPerhaps people want to read other blogs once in a while. We are at a stage of AI glut. If people pump out so much content in such a short time, no one can read it all (or is interested to read it).
- ttepasse 2y agoApart from chance HN seems rather time dependent – those posts seem to be posted still early in the day (I assume UTC from the timestamps) when the mostly US-American visitors doesn’t seem yet in the slacking-of mode.
- tessierashpool9 2y agoi love the design ... especially because it is underwhelming as opposed to overwhelming! cause i care for the _content_ and not the _design_!
- sourcecodeplz 2y agoIt's just not a big deal.
- M4v3R 2y agoIt'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.
- tomrod 2y agoIt's still not great at complexity. Though autocompletion does have some cool outputs.
- thierrydamiba 2y agoRuntime complexity or complex as in difficult problems?
- onion2k 2y agoIt's still not great at complexity. That's a feature, not a bug. Complexity is something to avoid.
- 7thpower 2y agoSometimes great products require bugs, I guess. Being able to tackle complex tasks is still a real challenge for the current models and approaches and not all problems can be solved with elegant solutions.
- mvdtnz 2y agoHow would you suggest writing something like.... say... Photoshop or Chrome, without introducing any complexity? How about an optimising compiler or better yet something behind the firewall like a medical imaging device or financial trading software? Complexity is inherent in many problem spaces.
- curtisblaine 2y agounnecessary completely is something to avoid. Inherent complexity is something to embrace. We're trained to remove unnecessary complexity so much that sometimes we think we can remove all complexity. That's a fallacy. Sometimes, things are just complex.
- foobarqux 2y agoI 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 curl -sL $URL | htmlq 'a' -a href
- cpursley 2y agoYeah, sure - if you have the memory that allows that sort of recall. For the rest of us, LLMs are like Alzheimer’s medication or eye glasses. Believe it or not, these types of esoteric commands are very difficult for some of us to remember - but AI is amazing at this sort thing (Unix commands, etc as well as trouble shooting them).
- sureglymop 2y agoI mean they may also make your memory worse if you always go straight for the llm instead of trying to remember.
- ben_w 2y agoI can't remember, was it Aristotle or Plato who said that about writing?
- IggleSniggle 2y agoI'm pretty sure it was Socrates but I might be hallucinating
- svieira 2y agoIt was Socrates - and he was correct. When was the last time you met someone who could recite The Iliad from memory? But more to the point ... in Phaedrus he's not talking about "who will memorize the Iliad now that we have the written word", he's talking about "can the written word _teach_". And the answer (as always) is "no and yes". > and now you, who are the father of letters, have been led by your affection to ascribe to them a power the opposite of that which they really possess. For this invention will produce forgetfulness in the minds of those who learn to use it, because they will not practice their memory. Their trust in writing, produced by external characters which are no part of themselves, will discourage the use of their own memory within them. You have invented an elixir not of memory, but of reminding; and you offer your pupils the appearance of wisdom, not true wisdom, for they will read many things without instruction and will therefore seem [275b] to know many things, when they are for the most part ignorant and hard to get along with, since they are not wise, but only appear wise. https://www.perseus.tufts.edu/hopper/text?doc=Perseus%3Atext%3A1999.01.0174%3Atext%3DPhaedrus%3Apage%3D275 https://www.perseus.tufts.edu/hopper/text?doc=Perseus%3Atext... and https://www.gutenberg.org/files/1636/1636-h/1636-h.htm#link2H_4_0002:~:text=The%20specific%20which,without%20the%20reality https://www.gutenberg.org/files/1636/1636-h/1636-h.htm#link2....
- ConanRus 2y ago[dead]
- throwup238 2y agoThe 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? At this point their limited output limit is far behind o1/o1-mini. I really hope they significantly improve that next.
- StickyRibbs 2y agoi'll start panicking when it can productionalize an app and deploy it to GCP without any errors.
- shishy 2y agoI used cursor to manage spinning up and deploying a full stack app in AWS last week. Took me one afternoon.
- trhway 2y agoI think you've just gave an idea to somebody's next startup, and we'll probably see it is being done in half-a-year. In general all that tedious YAML/etc. is ripe for the "autocompletion AI".
- skydhash 2y agoAnd then you'll find out a node was deployed with no backup strategy while there are multiple useless ones burning money.
- sigh_again 2y ago"Don't look at your Kubernetes configuration, trust our AI to do it well" sounds like a psyop straight out of GCP or AWS to charge you four times what they need to before telling you "no, you absolutely need that $500 charge for your 1RPS static website, yes yes absolutely."
- trhway 2y agoAnd for auditing your config and for reviewing your cloud provider's [autogenerated by AI] offers and suggestions will be another AI which will also be able to chat with their customer support AI.
- CptFribble 2y agountil it hallucinates a config and rings up a $10,000 AWS while you're asleep
- 2y ago
- corytheboyd 2y agoJust in case you need it: https://github.com/gchq/CyberChef https://github.com/gchq/CyberChef I was just trying to be helpful, since it was relevant to content in the post…
- burgerquizz 2y agoif i want to just paste an url, of full page of HN, and extract all comments in a json format. would that tool work?
- deleted 2y ago[deleted]
- sigh_again 2y ago[...document.querySelectorAll(".commtext").values().map((it) => it.innerText)] Works in every single web browser. No calls to OpenAI needed, and I'm rusty on Javascript. Make it a bookmarklet, and you don't even need to run a dedicated webpage on your machine for that.
- corytheboyd 2y agoYou already know the answer to that. This is just a very helpful interface for arbitrary data conversions, that I thought passers by might like to know about. It’s not an LLM, but it does what some of the examples in the article does, and more.
- xster 2y agoAnthropic 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. Since Elon is so interested in that model, if xAI had Claude's capabilities, they would surely go with that angle
- skydhash 2y agoI don't know if I'd take less time, but I would definitely type less.
- ToJans 2y agoI fully agree. I think Claude offers me 10x productivity, especially for all these helper apps and technical POCs that I typically create during the week. And that's without even mentioning mail chain replies, analysis of legal or financial documents, helping my kids with their math assignments,... It's a huge enabler for me, and it's getting better every month. 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.
- djoldman 2y ago@simonw: jina is getting cranky: https://tools.simonwillison.net/jina-reader https://tools.simonwillison.net/jina-reader? {"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."}
- flakiness 2y agoTIL Jina Reader API has (low rate limit) API key free option. https://jina.ai/reader/ https://jina.ai/reader/
- rty32 2y agoI'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.
- salviati 2y agoHave you tried https://aider.chat https://aider.chat ?
- kridsdale3 2y agoCan those kinds of things work in monorepos with 50 million files?
- salviati 2y agoI believe they can as long as you're able to identify a contained task that touches no more than a handful of files. Still very useful to automate some tedious work or refactoring if you ask me.
- deleted 2y ago[deleted]
- jprete 2y agoThat's effectively an answer of "no".
- sthatipamala 2y agoI used to work in a monorepo of that size. All of the PRs I ever submitted touched a handful of files in my project’s subdirectory.
- varelse 2y ago[dead]
- v3ss0n 2y agoNone of them worth writing home about
- nichochar 2y agoWe 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. Currently also on the front page https://news.ycombinator.com/item?id=41926067 https://news.ycombinator.com/item?id=41926067
- thimabi 2y agoI 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.
- kevinmerritt 2y agoI learn so much from you. Thank you.
- deleted 2y ago[deleted]
- yapyap 2y agowish there was an option to hide all chat AI related topics on HN
- thimabi 2y agoMaybe it’s time to create a new HN client with this feature. Ironically, an AI can be of assistance in filtering AI-related submissions or comments.
- GaggiX 2y agoAsk Claude to write the browser extension for you so you can stop whining.
- tomrod 2y agoHN has always had a focus on what will change the world 5 years out. Chat-based AI is a remarkable set of functionalities to build with. It isn't the only improvement in Tech, let alone AI/ML, but it is massive. I quite enjoy learning more about it from dedicated folks like simonw.
- neom 2y agoI 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: https://funds.ascent.ca/ https://funds.ascent.ca/ - 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.
- adriand 2y agoA friend of mine said to me a few months ago, “all existing software is technical debt”. Meaning that owning software now is, in many cases, a burden not an asset since you can spin up new greenfield software using the latest tech so quickly.
- neom 2y agoThat's a super interesting way to look at it. Got my wheels spinning, I guess you can in a way then say... the person who makes super easy click in persistence is very winning. For example, lets say I want to make an app that hosts all the docs the founders in my "funds" accelerator thing above. I probably want to spend a week once a year upgrading that front end with the AI tools, new coat of paint if you will, but I want it to "just work" on top of however the data it's pulling is persisted on. At that point, I really could do anything I think... at that point, people are gonna build some cool stuff I'd imagine.
- williamcotton 2y agoSoftware is definitely an asset. "Becoming less valuable over time" is called depreciation, or in the case of IP, amortization. Poorly written software amortizes at a higher rate.
- xhrpost 2y agoSoftware is more than just the code to make a computer do something. It is the auditor's log of rules that were painstakingly researched and decided on over months, years, etc. A lot of time goes into deciding what the program needs to do and only after some decision is made is it written down as code. "Do we ship the customer order after payment is authorized or after the funds settle? Depends what we're selling maybe? What does the finance department think? Oh we have regulatory rules to follow, better make sure those are there too. Oh we need to be able to back-wipe PII on-demand as well. But maybe we need to retain certain attributes, let's schedule a meeting." Etc. This is where a lot of the value lies.
- fHr 2y agoif 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
- bongodongobob 2y agoNo you don't understand. My programming is so advanced that LLMs cower and shut themselves down when I try to use them. I am a senior developer! Clearly you don't know what you're doing and all the code it writes is bad and you'll never be able to maintain it. LLMs can't invent cutting edge, never before seen code that I do everyday because the problems I solve are so advanced even god himself can't understand my codebase. /s
- deleted 2y ago[deleted]
- freediver 2y agoA 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.
- harry8 2y agoAnyone got a "best practises" or even a few "my workflow" blog posts on how to best use LLM's with a local code base? Just saw someone recommend: https://aider.chat/ https://aider.chat/ Thought there might be more worth exploring from this community. ;-)
- alphan0n 2y agoThat’s pretty slick.
- paradite 2y agoI wrote one: https://prompt.16x.engineer/blog/ai-coding-workflow https://prompt.16x.engineer/blog/ai-coding-workflow
- ripley12 2y agoI've written a bit about how I use Aider: https://www.reillywood.com/blog/how-i-use-llms-sep-2024/ https://www.reillywood.com/blog/how-i-use-llms-sep-2024/ It's not magic, but it is very useful. I find that it works best if you have a commit-sized piece of work in mind; something that might take you half an hour but can be described in a few sentences.
- bravura 2y agoIs the realtime audio API now open to everyone?
- simonw 2y agoI'm not using the Realtime audio API here - I'm using the Chat Completion API, which added support for audio files a few days ago: https://simonwillison.net/2024/Oct/18/openai-audio/ https://simonwillison.net/2024/Oct/18/openai-audio/
- pluc 2y agoand you didn't learn a goddamn thing
- jcgrillo 2y agoI just tried the following prompt: > 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. 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. 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. 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. 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. 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.
- throwup238 2y agoDid you feed it the simple8b paper along with your prompt?
- jcgrillo 2y agoNo, that's an interesting idea though. Hard to imagine how that would help with the code correctness issues, though. I haven't even dug into algorithmic correctness yet so I have no real idea whether there's room for improvement there--although I sure do suspect there is! EDIT: Oh my. After digging into the code I found this gem: fn encode_rle(&self, value: u64, count: usize) -> u64 { let selector = Simple8bSelector::RLE as u64; (selector << 60) | ((count as u64) << 30) | (value & 0x3FFFFFFF) } And this one: fn try_rle(&self, input: &[u64]) -> Option<(u64, usize)> { if input.is_empty() { return None; } let value = input[0]; let mut count = 1; for &x in input.iter().skip(1) { if x != value || count >= 0x3FFFFFFF { // Max 30-bit run length break; } count += 1; } Some((value, count)) } What even is going on here? Compare to an actually sane implementation like[1] or[2]. [1]https://github.com/lemire/FastPFor/blob/master/headers/simple8b_rle.h https://github.com/lemire/FastPFor/blob/master/headers/simpl... [2]https://github.com/timescale/timescaledb/blob/403782a5899c754db67c41ea859cf34611fa5bde/tsl/src/compression/simple8b_rle.h https://github.com/timescale/timescaledb/blob/403782a5899c75...
- almog 2y agoFor the majority of these, a simple google search would have lead to an existing program/website that does the same thing. 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.
- simonw 2y ago"For the majority of these, a simple google search would have lead to an existing program/website that does the same thing." That's what's so wild about this: that's true, and yet in most of those cases it's still faster and more productive for me to ask Claude to build me a brand new tool _from scratch_ than it is for me to try and find an existing one via Google. The problem with trying to Google for these kinds of things is that you have to evaluate the results that come back and figure out which one of them correctly solves your problem. That's a few extra steps. It's genuinely faster to prompt something like this instead: > Build an artifact (no react) where I can paste text into a textarea and it will return that text with all HTML entities - single and double quotes and less than greater than ampersand - correctly escaped. The output should be in a textarea accompanied by a "Copy to clipboard" button which changes text to "Copied!" for 1.5s after you click it. Make it mobile friendly Done: https://claude.site/artifacts/46897436-e06e-4ccc-b8f4-3df90c47f9bc https://claude.site/artifacts/46897436-e06e-4ccc-b8f4-3df90c... In this case I knew exactly what I wanted: it had to do less than, greater than, ampersand, double quotes AND single quotes. I know from past experience that many tools like this forget about single quotes, so I'd have to evaluate any tools I found to check that they do that. And I was on my phone so I wanted a "copy to clipboard" button.
- almog 2y agoSimon, all these example are great and on a side note I've learned a lot through your writing. However, as so many other AI for low/no code examples, it starts feeling like trying to perform a dexterity intensive task such as knotting while wearing thick gloves. All these examples are great on their own. What to me feels so wrong about seeing so many of these on HN front page is that my experience has been that even after almost 2 years from when ChatGPT was initially introduced, all models that I've been using improved a lot in accuracy, speed, input/output size but still more often than not fail to be useful when used with even a small _existing_ code base and an evolving set of tasks that aren't the busy work / boiler plate type.
- joeevans1000 2y agoThese 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.
- bilsbie 2y agoWhat’s the best and easiest way to host and share these artifacts? GitHub html?
- simonw 2y agoEasiest is to use the "publish artifact" button, but that wraps them in a giant blob of obtuse React code which means they load slowly and view source is pretty much useless, e.g. https://claude.site/artifacts/46897436-e06e-4ccc-b8f4-3df90c47f9bc https://claude.site/artifacts/46897436-e06e-4ccc-b8f4-3df90c... Second easiest is to take the code and paste it in a Gist - like this: https://gist.github.com/simonw/14a2c3ef508839f26377707dbf5dd329 https://gist.github.com/simonw/14a2c3ef508839f26377707dbf5dd... And then take the Gist ID and add it to this URL: https://gistpreview.github.io/?14a2c3ef508839f26377707dbf5dd329 https://gistpreview.github.io/?14a2c3ef508839f26377707dbf5dd... That gives you a URL you can load in your browser. My preferred route is to host the generated HTML directly myself. I mainly use that via GitHub Pages - I can drop an extract-urls.html file into https://github.com/simonw/tools https://github.com/simonw/tools and about 20 seconds later it becomes available at https://tools.simonwillison.net/extract-urls https://tools.simonwillison.net/extract-urls Those last two options only work for Artifacts that didn't use React (that's why I use "no react" in most of my artifact prompts). If you DID use React you can turn that into a standalone HTML and JavaScript app that you can deploy using https://github.com/claudio-silva/claude-artifact-runner https://github.com/claudio-silva/claude-artifact-runner - I wrote some notes on using that here: https://simonwillison.net/2024/Oct/23/claude-artifact-runner/ https://simonwillison.net/2024/Oct/23/claude-artifact-runner...
- bilsbie 2y agoI had no idea gistpreview existed! That’s really easy. I guess you can’t host static files like images though? Do you do anything special to make the tools directory work like that?
- simonw 2y agoI have some note on that here: - https://til.simonwillison.net/github/custom-subdomain-github-pages https://til.simonwillison.net/github/custom-subdomain-github... - https://til.simonwillison.net/github/github-pages https://til.simonwillison.net/github/github-pages
- ks2048 2y agoSimon, (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? 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. 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. To clarify, I’m not talking about “usefulness” or accomplishing some business objective, I’m talking about the joy and satisfaction of programming.
- simonw 2y agoIf anything, it's the opposite. LLMs are making programming even more fun for me, because I can choose what and when I delegate to them. Looking up how to accept a drag and dropped file (and then implementing it) in a JavaScript application isn't really that fun to me - certainly not for the tenth time. I thrive on variety and building interesting things. LLMs let me incorporate WAY more tools into my work - I can build with Go and AppleScript and Bash and ffmpeg and jq, all things I have never climbed the learning curve enough to feel confident using in the past.
- ks2048 2y agoYeah, that makes sense. But I wonder, going forward, what is the relationship between "building abstractions/libraries" vs "Using LLMs"? For your example, "How do I accept a drag and dropped file in JS?" - An LLM can spit out 100 lines that does what you want, OR someone writes a nice library that does what you want in a single function call (say, for the common case. More complicated usage requires more arguments, etc.) (Of course, another option is LLMs are the ones writing these library functions). I guess I am one of those programmers who is allergic to boilerplate (for better or worse), so having LLMs split out lots of code bothers me.
- 2y ago
- rtpg 2y agoI 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! Lots of TUI interfaces try to approximate this, but I think I really just need to build out something a bit like https://anvil.works/ https://anvil.works/
- psadri 2y agoYou should try SkyMass. You can put up a web ui in as few as 10 loc. and something actually useful in around 50. Contact me if you need some help getting going…
- simonw 2y agoThere are a bunch of comments in this thread along the lines of "these are just toys" and "anyone could build these without an LLM". I need to update my post to emphasize this, but that's kind of the point. 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. ... but not as quickly as I did with an LLM, because they almost all took less than 5 minutes from idea to finished implementation. 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. 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.
- sogen 2y agoYes, exactly my thoughts. I needed a RSS converter from JSON to XML, and was able to quickly made one. I'm not a programmer. It's life-changing.
- harisec 2y agoThese are toys but in 2 years they will probably be full projects and 2 years later people will ask "why do i need a software developer?"
- simonw 2y agoI just don't think that's true. If all someone does is write code based on specifications handed over by someone else then yes, they have cause to be worried - but in my career as a software engineer the "typing code into a computer" bit has only ever been 10-20% of the work that I do. The big challenge of software development has always been turning human needs into working software. That requires a great depth of experience in terms of what's possible, what isn't possible, how software works and how to architect and design software to deliver value today while still staying flexible for future development. LLMs can accelerate that process a bit, but I don't think they can replace it. Someone still has to drive the LLMs. I think people with software development skills are best placed to do that.
- rahimnathwani 2y agoHere's one I built with Claude last week: https://news.ycombinator.com/item?id=41855594 https://news.ycombinator.com/item?id=41855594
- lgessler 2y agoI'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: https://lgessler.com/files/towers.html https://lgessler.com/files/towers.html 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.
- lemming 2y agoThis is interesting, I also tried this with my daughter after we had been talking about Towers of Hanoi, and like you it worked really well. Then we tried to get it to implement a little version of the game where you have a farmer, some corn, a chicken and a wolf and you have to get them across the river in only one boat (actually Wiki says goat and cabbage, but whatever https://en.wikipedia.org/wiki/Wolf,_goat_and_cabbage_problem https://en.wikipedia.org/wiki/Wolf,_goat_and_cabbage_problem). I wasn't trying to get it to solve the puzzle, just give us a UI to play the game. We gave up after an hour or more of going in circles. I wonder if there's a lot of Towers of Hanoi implementations out there it can use as references.
- jjcm 2y agoOne 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. 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. Some examples of outputs: https://image.non.io/cd90cc33-4a6a-41d8-abd2-045d3a272010.webp https://image.non.io/cd90cc33-4a6a-41d8-abd2-045d3a272010.we... https://image.non.io/5a0c3fc7-37f8-4e72-aba9-cd61f3c18517.webp https://image.non.io/5a0c3fc7-37f8-4e72-aba9-cd61f3c18517.we... https://image.non.io/920adf7c-a554-41bd-a29c-77bebed1cdad.webp https://image.non.io/920adf7c-a554-41bd-a29c-77bebed1cdad.we...
- markusw 2y agoAre there any particular models you’re using for this, or are they equally good at this in your opinion?
- jjcm 2y agoFlux is infinitely better than the others from what I've found, but I haven't tried SDXL 3.5 yet as that just launched. The output you're seeing above is a combination of two LoRAs I've trained for this purpose. Other things that are important are img2img and inpainting flows to give the model more context for generation.
- soutong 2y ago[dead]
- Eliezer 2y agoMeanwhile, 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: https://www.tumblr.com/necessary-disorder/765064008182235136 https://www.tumblr.com/necessary-disorder/765064008182235136.)
- SamDc73 2y agoThese things give me a weird fuzzy feeling when looking at !
- synthoidzeta 2y agoTry running this from the CLI (you'd need to install gifsicle first): gifsicle --unoptimize input.gif '#-1-0' > reversed.gif
- deleted 2y ago[deleted]
- fragmede 2y agoask it to install ffmpeg and have it use that to reverse the gif.
- ainiriand 2y agoHey some time ago I needed this at work: https://www.jsoncomments.com/ https://www.jsoncomments.com/ 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.
- purple-leafy 2y agoWild that people lap this up. Absolutely wild
- galaxyLogic 2y agoI think there is a commonly accepted rule of thumb that it is easier to write new code than modify existing code. Right? 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. 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.
- te_chris 2y agoThis is an underrated point. And it’s not just an old code base. I find AI generated changes can lead to messy debugging when they don’t work as I didn’t write it first off.
- berkes 2y agoThe hard part about writing code, isn't writing the code. It's writing code that can be read, changed, understood. Today, next month, after ten years of random freelance engineers abusing it. By caffeinated me, tired me, bored me, that way too smart junior and that boneheaded senior.
- danielovichdk 2y agoNo. That's not how it works. Reading code towards refactoring it is harder than writing new code. Lots of fine literature has been written about this, it's all psychology and cognition. What you are trying to propose is that computer generated code should somehow make a programmer feel better about one self because they are given the opportunity to improve something that no one knows where is coming from and without a context. I think you are forgetting that computers can not generate context aware systems or programs. Look at the list by the author - useless in a different context than the one the author lives in. It does not improve anything, it simply adds more things someone else potentially has to worry about. Furthermore it adds to the same cognitive load than any other code - one needs to read it before one can change it, and changing it is really the first step to fully understanding it. You are not fixing anything old with AI generated code. Ask yourself also, where is the upstream you are trying "to fix".
- tomcam 2y agoI love love love that the transcripts are included.
- sfmike 2y ago[flagged]
- wraptile 2y agoMost 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.
- vasco 2y agoHow many google results amount to this level of complexity though? How many phone apps? Anyone taking bets on how many years till the operating system doesn't install any software anymore, and just dynamically generates whatever software you need on the fly? "Give me a calculator app" is doable today "give me an internet browser" isn't but it should be a matter of time.
- hshshshshsh 2y ago> Give me a calculator app" is doable today "give me an internet browser" isn't but it should be a matter of time. Based on what? Magical thinking?
- wraptile 2y ago> "Give me a calculator app" is doable today "give me an internet browser" isn't but it should be a matter of time. I just don't see that as being a sound solution. If the user requesting to solve a solved task then using an existing tool will always be a more efficient path. What I do see as a desired option is where AI could take an existing tool and personalize it to your specific use case. In this example it takes web browser as a GUI lib and wraps it around generic solutions like library that quotes HTML entities which is kinda this just very poorly done so far. I'd imagine that future programs will be much more component driven with AI connecting components to produce personalized solutions as this is really the only viable option until AI can reason at least in some reasonable capacity to fix its own mistakes.
- dev0p 2y agoA useful prompt to quickly generate this kind of website is "generate an index.html for {idea}". 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.
- deleted 2y ago[deleted]
- deleted 2y ago[deleted]
- gcanyon 2y agoThis 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! The parsing was terrible, but it worked at all, 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." 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. So: pluses and minuses.