Thanks! Absolutely, dig in, the code is MIT :). I bet your previous experience would lead to significant speedups/quality improvements somewhere in the bowels of the pipeline. Contribs very welcome, too!
Can we use WebGPU to compute real-time global illumination with surface patches called surfels? Does it look good enough? Is it fast enough? And can we finally construct viable compute-heavy rendering pipelines right here on the open web? Join me on this journey and let's find out!
Hm, I'm not entirely sure if you're being sarcastic or not, but just in case, asking Bing about the menu I get this:
> Chez Panisse is a famous restaurant in Berkeley, California that serves seasonal and organic food1. The menu changes daily and is posted on their website2. Today’s menu for the restaurant (not the cafe) is:
> Fennel and leek salad with rocket, toasted almonds, and salsa verde
> Bomba rice cooked with clams and squid; with aïoli
> Becker Lane Farm pork loin roasted with Spanish paprika and green garlic; with > braised greens and wild mushrooms
> Meyer lemon sherbet with candied kumquats
> The price for this menu is $175 per person2.
Yes, but that's just because I think for simplicity they created one large CSS file that is used for all their components and example pages. That's not very realistic. You're not supposed to do it like this for your own project. Instead if you use Tailwind CSS and PurgeCSS I'm pretty sure you would end up with ~10 or 15 kB of CSS gzipped, maybe less.
I don't think that's it. Open https://tailwindui.com/css/app.css and Control-F for "placeholder-" -- are there really examples and component pages on this website that set the input placeholder text color to every single different color in the color palette, at every responsive breakpoint?
I've been reading awful takes like this since I started writing software.
"PHP is an awful language, superior developers write in Perl."
"Rails is bloated and slow, making it unfit for any real work."
"True developers don't rely on frameworks, writing all your own code is the only way to be performant."
If you wanna handicap yourself, be my guest.
I've written three or so projects in TailwindCSS, and it lets me create responsive designs quickly. It gives me a very sane set of defaults to build off of. And most importantly, it helps me get a product to production faster than writing raw CSS.
that may be so, but I think it's a valid point to bring up the tradeoffs you're making, including using a non-standard dsl that other designers/developers/hires will likely be unfamiliar with.
personally having written css since I was a teenager, my gut reaction is "eww", but if the team or stakeholders deem it to add value to a project and not affect productivity, sure why not?
I think it’s not for people who know CSS. It’s specifically for SPAs where site-wide changes are related to component changes and so having to change the html is not that different from changing the css.
I can not force myself to use something like this but I’ve been writing CSS for a long time.
I use BEM and predefined sets of colors and space values to ensure consistency and that’s efficient enough for me.
It seems to require so much CSS knowledge that you might as well just use regular class names and write the CSS components yourself as it requires you to understand how flexbox etc works anyway to use it's utility classes properly.
You're right. Don't use Tailwind if you don't know CSS well.
The use case is for creating Template Components with something like React, Vue, Hugo, Razor or another component template framework. Tailwind offers a large list of customizable variables to use to help keep your CSS consistent. You're still pretty much writing CSS though, just with shortcuts. I consider it Emmet CSS + Variables. I also highly suggest using a plugin for your editor that offers hinting on all the crazy names no matter what CSS framework you use.
If you want a higher abstraction, Bootstrap or Foundation provide that. There is now also this Tailwind UI that you can purchase that would also provide that to some degree.
I thought the anti-css crowd who use React etc generally preferred some form of Styled Components where the style is written in JS? It's a mixed up world of factions :)
Whether building a regular website or a web-app I generally just use component names (like .card) the same way. I'm more of a fan of defined components with limited variations though than people being able to change anything with a lot of utility classes. Sort of like having a succinct API with a constrained depth. I see css as an api to the original designs and Tailwind introduces too much freedom for my comfort! I will endeavour to give it an honest trial though and maybe I will meet you somewhere in the middle.
This is where I ended up with this framework. It requires so much css knowledge that it is for the advanced but not expert who would be bothered by a number of things.
> They come with all sorts of predesigned components like functions and structs that might help you move quickly at first, but cause more pain than they cure when it comes time to make your program stand out with custom behavior.
> Tailwind C is different.
> Instead of opinionated predesigned components, Tailwind provides low-level utility macros that let you build completely custom functionality:
And then every Hacker News discussion of Tailwind C would inevitably include a link to their "Why using Tailwind C is definitely not just as bad as writing inline assembler" documentation page.
Ooh, and then the creator of Tailwind C would start selling the Tailwind C Library, with like an implementation of memcpy that you just cut-and-paste into your program every time you need to copy memory.
Disagree. Dumb is doing the same thing over and over again and creating new tooling to do the same thing over and over but with added dependencies and frameworks. The fundamentals of web development have barely changed but the flavor of the month way of doing the same thing is constant.
HTML and css are way too low level to be productive in, in my opinion. Especially when dealing with wide ranges of screen sizes, browsers, and platforms. The only way I’m interested in touching the stuff is if there are tools to alleviate the pain.
Caveat: not a UI developer, I’ve mostly done backend work And DevOps for quite some time.
I base my comment on the effort required to make a simple web page that a) looks the same across different browsers and devices, b) is responsive, c) supports relatively basic concepts like dropdown menus, columnar layouts, etc...
It’s way too much effort for me to want to mess with, and then you have to repeat the same things for every site you make.
This kind of attitude, while totally relatable IMO as we grow frustrated with massive piles of crapware, is also how we wind up with NIH problems as organizations scale beyond just a few people. There is a very consistent theme by their creators across companies large and small - brilliant, productive, controlling, and eventually fired.
I'm kind of with you on this. We're rebuilding a large internal admin tool with all in house css and components, it's tiny and fast. We didnt want to bring in bootstrap or some other huge framework. Those were fine when I was a jr developer - not anymore
> We're rebuilding a large internal admin tool with all in house css and components,
Why would you have shared in-house css and components? Just write vanilla css right?
Tailwind is that shared in-house css and components for people/team that don't have shared in-house css and components. If you can afford to build one, sure use that!
This is made for prototyping too, this is to get to the MVP quicker. Again, if you have a shared in-house css and components library that does the same, sure use that instead, it makes much more sense!
> Those were fine when I was a jr developer - not anymore
That's a scary sentence. Why do you believe it matter whether you are junior or not to use that library? A library is made to avoid doing twice the works. If you already did that work, you don't need that library, that's for sure, but it's totally unrelated to your level as a developer.
The internet is in a perpetual state of beginner dev tutorials and junior developer tools. I am still waiting for the awesome stuff to come out but it all the same stuff.
Congratulations on leaving your bubble. And welcome to the developping world. 165kb is a pain in the ass over 3G, and when people buy loads for them sim card giving them a data amount still measured in megabytes, it matters a lot, even the big ones like facebook had to make lite versions because of it.
You're going to rediscover all kinds of other cool cool stuff you forgot you could do whle wasting resources in the last decades. With everyone going with bloated mess and electron apps, it is a really amazing time to be building snappy softwares now. So, again, welcome.
(the arrogant tone of your message was really misplaced)
"Be kind. Don't be snarky. Comments should get more thoughtful and substantive, not less, as a topic gets more divisive. Have curious conversation; don't cross-examine.
...
Please respond to the strongest plausible interpretation of what someone says, not a weaker one that's easier to criticize. Assume good faith."
165KB is still a lot of pretty-making text. Attitudes like that are why "webapps" eat hundreds of megabytes of memory for tasks where low-tens would be more than enough, even allowing for some slopping programming and lots of abstractions. That 165KB hangs around in memory in probably more than one form, and becomes part of future layout decisions on the page, if they come up.
>Did you know you can build and deploy an entire application without ever running a compiler or touching a physical machine now? We have REPLs were you can interact with your application live, in real time.
How do I interact with REPLs in real time without touching a physical machine?
Do these stylistic simple preview images have a name? I have been searching for these for a long time to use in my application without designing them all by my own. A free-to use pack of these would be really great.
All of these new frameworks look great, but there just isn't a good way to switch from, e.g., Bootstrap to a new one. I've never come across a framework that had any kind of conversion tool or even a guide on how to efficiently switch.
Right now I don't think CSS frameworks are intended to be a drop-in replacement; each one will also introduce a subtle change in style that you have to work with. In theory you can rebuild your application reusing functional components and only replacing visual ones, but it's still going to be a lot of work.
But I think a lot of people wouldn't just replace the CSS framework, they'll rethink the whole UI and everything that goes with it with a big operation like that.
<p class="piew1 piew2 piew3 Lorem ipsum dolor sit amet consectetur adipisicing elit. Nemo expedita voluptas culpa sapiente alias molestiae. Numquam corrupti in laborum sed rerum et corporis. Nemo expedita voluptas culpa sapiente alias molestiae" id="Lorem ipsum dolor sit amet consectetur adipisicing elit. Nemo expedita voluptas culpa sapiente alias molestiae. Numquam corrupti in laborum sed rerum et corporis. Nemo expedita voluptas culpa sapiente alias molestiae">
People interested in this might also be interested in the release notes for The Grove (a Blender tree gen plugin), as they describe a number of modelled behaviours of trees in nature: phototropism, gravitropism, forking, behaviour of sapwood and heartwood, etc.: https://www.thegrove3d.com/releases/the-grove-release-8/
I love that Blender is so programmable. As far as I'm aware, every action in Blender can be expressed in Python. The Grove in an absolutely beautiful representation of the power that comes with that.
A recall a undergrad project where I was helping write a C wrapper around an old FORTRAN library or potential energy calculations to make them accessible in Mathematica (and yes, I am aware of how wild that sentence is). We used Mathematica to generate some potential energy surfaces (they looked like the first picture here https://sav.blogs.unr.edu/3d/ ) and for an interesting visuals I exported the models to Blender. An interesting property of these graphs is that modeling a reaction is taking a point on that graph with some amount of energy and combining it with the gradient at that point. This is essentially the same as simulating a ball rolling around within the surface. So I simulated a ball in Blender, tracked it's motion, and compared it to real life data and "actual" simulations, and found them impressively similar.
I ended up winning some aware for presenting it, it was quite a lot of fun, and now I have a publication and conversation starter of an entry on my CV.
If you can get an event that needs a wave above a certain height to trigger, you can make a gate by having input of waves a fraction of that height that, when they constructively interfere, exceed the threshold.
If your logic is based on wave interference, you may be able to get a lot of interesting behaviors even more useful than primitive logic gates.
Fascinating! Thank you for sharing, OP! Having recently gone down a similar rabbit hole [1], having references and starting points is incredibly useful for further exploration, as this stuff is very hard to search for.
There does seem to be a direct computational link between information and the universe - and the way we’re using this link now , with classical computers, is highly abstracted and inefficient (the article also compares current energy cost of computing vs the much much lower theoretical limit). Quantum computers come closer to the nature of that link, but still require many abstractions.
I wonder if it will be possible to eventually compute without abstractions, directly on the substrate of the universe. Though that might be equivalent to real magic ;)
I don't think you need to bring quantum computing into the picture. For example "naturally" 3D printing a Mango takes a few years. Just drop a seed in the right place on earth and wait. Isn't that computing on the substrate of the universe?
Are you asking if nature can be coaxed into doing it in a few seconds or a day? Or maybe you are not bothered about time and want to drop in that seed and grow a chair? The answer is probably yes to both. It will just take some time to get there. I don't think quantum computing will be required but who knows...
Yeah, dropping a seed in and growing a chair very quickly sounds like it is in the same ballpark, or at least further along the spectrum of efficient computation. That seed (program) would very tricky to produce, though. Contrary to the current practice of writing programs relatively easily, but the machines to run them are incredibly complex, both to run and to manufacture. With the seed, though, the machine would be nature, 1=1.
I agree that there is no need to bring quantum computing into the discussions, but it is higher on the efficient computing scale. It also requires a lot of effort to come up with programs that make sense, and they use more of natural phenomena (superposition, entanglement, etc) compared to classical computers. It’s something to look at for inspiration, at least?
Recently wrote about how surprisingly computationally intensive typing in it is (https://juretriglav.si/what-happens-when-you-type-a-single-l...), so it’s doubly surprising that it also doesn’t work as expected. But text editing on the web _is_ hard, and hard to
get right on deploy 1, so I’m sure they’ll iron out the kinks soon.
That certainly wasn’t the intention, the title is a bit of a mix of: the initial intent to list all open source collaborative text editors, and then realizing, as I state in the post, that it wouldn’t add much value to have a long shallow list, then deciding to limit the scope significantly, but not wanting to redesign the headline illustration, as so much effort already went into the post (both content and the code behind it) that I just needed to stop working on it and ship it :) Hope that makes sense!
reply