8,175 karma · joined November 14, 2010
It's really a rapid "how do to <x> the solveit way" for a variety of x. Each of those x is likely to become a full course in the future.
(We actually built the tool for ourselves, and only decided to make it publicly available when we realised how much it's helping us. We're a PBC so our mission is not entirely financial. We're not trying to compete with existing tools, but provide an alternative direction.)
Sorry it is a bit confusing tbh!
The course is about a methodology, not a product. It's the ideas Eric Ries and I have been working on for decades. 5 weeks is a crash course that can only touch on the ideas. And it covers learning data structures and algorithms, foundations of web programming, system administration, startup creating, and much more.
It's really a rapid "how do to <x> the solveit way" for a variety of x. Each of those x is likely to become a full course in the future.
Whilst most folks seem focused on how to remove humans from the loop entirely and make AIs do all the work, we've concentrated 100% on how to make humans part of the loop in a way that makes us more and more capable and engaged.
I've enjoyed building and using our tool, "solveit", for the last year, and do basically all my coding, writing, reading, research, etc in it nowadays. I use small fast iterative steps and work to maximize my learning at each step.
Historically a great many diseases that medical research had not understood, have been widely assumed to be imaginary.
For instance: “fakers disease” which you’ll now know by its medical term: “multiple sclerosis”.
So "rank polymorphism" means being able to write expressions that work correctly regardless of how many dims the arrays involved have.
For example, in numpy you can write a function that handles both lists and matrices automatically, by taking advantage of broadcasting. (The J language takes this idea a lot further -- numpy is a fairly minimal implementation of the idea.)
This seems similar to the situation where x.com claimed that their ML algo was in github, but it turned out to be some subset of it that was frozen in time and not synced to what's used in prod.
I've found it's often easier to just whip up something for my specific needs, when I need it.
""" A well-known URI is a URI [RFC3986] whose path component begins with the characters "/.well-known/", and whose scheme is "HTTP", "HTTPS", or another scheme that has explicitly been specified to use well- known URIs.
Applications that wish to mint new well-known URIs MUST register them, following the procedures in Section 5.1. """
Having said that, this won't work for llms.txt, since in the next version of the proposal they'll be allowed at any level of the path, not only the root.
llms.txt is a description for an LLM of how to find the information on your site needed for an LLM to use your product or service effectively.
(I'm the creator of the llms.txt proposal.)
But since the direct 1:1 mapping to html returns a python object, you can build up rich component hierarchies using plain python, mapping to plain html. And thanks to MonsterUI it looks pretty good too.
You seem to be arguing that more complexity, moving further from the foundations of the web, is a good thing. The fasthtml philosophy is the opposite — sticking close to the fundamentals is good.
FastHTML moves back closer to the foundations of the web. The functional components are a direct 1-1 mapping of m-expressions to HTML tags (i.e children are positional parameters, attributes are named parameters). There's nothing new to learn there if you know HTML already. I've been using functional components for web apps for >25 years, including building Fastmail with them -- they work very nicely for me at least, and are standard in most functional programming communities. I like being able to treat my components directly as plain objects directly in python (including using the python debugger, profiler, etc, and using IDE standard python navigation), rather than having to switch to a separate templating language with its own way of doing things.
MonsterUI is mainly a FastHTML wrapper around FrankenUI -- a pure js/css/html version of shadcn. I like using native components like this, instead of needing special react/vue/svelte/etc framework libs. FastHTML's functional approach make server-rendered components feel a lot like jsx in react (jsx behind the scenes is a wrapper over a similar data structure to FastHTML's, but js doesn't natively provide the needed m-expression syntax, hence the need for jsx).
For newer devs that never really learned native HTTP/HTML ways of developing for the web, and have lived in the react/nextjs/etc world, FastHTML will seem very odd. But for anyone that grew up with Perl, PHP, etc, writing plain server handlers that deliver HTML directly to the server, FastHTML will feel quite natural. They are two different approaches, each with their pros and cons. At Answer.AI we've written a lot of useful apps in FastHTML now, including SSE and websockets, rich client interactions, etc, and it's been working nicely for us.