Ameo
I'm sure that AI made this speedup work much easier and quicker; probably just access to the monorepo and a prompt of "make the launcher boot up faster while changing no functionality. Keep track of before/after benchmark numbers" would be fine as long as you can get your co-workers to approve whatever diff gets spat out the end.
But either of these companies, presumably with dev teams of dozens-hundreds of SWEs, could have pointed to one of them 5 years go and said "spend the next 2 months optimizing the performance of the launcher" and would probably have gotten similar results.
I make my software fast and efficient mostly because I enjoy it. Absolutely nothing stopping web apps, Electron, everything else from being efficient, slim, and performant. It's just that the modicum of effort required to set that up was outweighed by the convenience of just importing and parsing the full 16MB icon cache and 13 unused analytics SDKs every pageload and not worrying about it.
I find it unlikely that there's some fundamental property of OpenAI's models' "personality" or style which Anthropic (or any other serious AI firm) wouldn't be able to match if they wanted to.
Copyleft and the whole software licensing ecosystem only matter when producing that software actually requires serious human effort and dedication.
If this is the kind of thing you can do in the open as a "reputable" company with VC investment, I can only imagine the kind of horrific industrial-scale social media spam+slop botnets for hire that exist less publicly.
Now he works at Google doing quantum computing research lol
There have been lots of cool technical challenges through the whole process of building this, and a very nice variety of different kinds of work.
I'm working towards using the outputs from this language to build out levels and assets for a browser-based game I've been dabbling with over the past few years.
I've fixed that issue with the `set_default_material` problem; tyvm.
> maybe a wireframe "type" material
I have that actually; it's bound to the W key. Invaluable for debugging and inspecting stuff for sure. N switches to normal texture too
I might have to make the docs for keybinds a bit easier to find
> Change the Normal Map, Roughness Map, and Metalness Map XY scales
Yeah these are all currently controlled by a single "texture scale" param in the material editor. I could definitely see situations where adjusting them individually would be valuable; I'll add that to the TODO list
Anway, tyvm for checking out the project in such detail and for the feedback; I genuinely appreciate it very much
There have been lots of cool technical challenges through the whole process of building this, and a very nice variety of different kinds of work.
I'm working towards using the outputs from this language to build out levels and assets for a browser-based game I've been dabbling with over the past few years.
I''m personally a big fan of Wasm; it has been one of my favorite technologies ever since the first time I called malloc from the JS console when experimenting with an early version of Emscripten. Modern JS engines can be almost miraculously fast, but Wasm still offers the best performance and much higher levels of control over what's actually running on the CPU. I've written about this in the past.
The only way it really fell short is in the way that a lot of people were predicting that it would become a sort of total replacement for JS+HTML+CSS for building web apps. In this regard, I'd have to agree. It could be the continued lack of DOM bindings that have been considered a key missing piece for several years now, or maybe something else or more fundamental.
I've tried out some of the Wasm-powered web frameworks like Yew and not found them to provide an improvement for me at all. It just feels like an awkwardly bolted-on layer on top of JS and CSS without adding any new patterns or capabilities. Like you still have to keep all of the underlying semantics of the way JS events work, you still have to keep the whole DOM and HTML element system, and you also have to deal with all the new stuff the framework introduces on top of that.
Things may be different with other frameworks like Blazor which I've not tried, but I just find myself wanting to write JS instead. I openly admit that it might just be my deep experience and comfort building web apps using React or Svelte though.
Anyway, I strongly feel that Wasm is a successful technology. It's probably in a lot more places than you think, silently doing its job behind the scenes. That, to me, is a hallmark of success for something like Wasm.
I was reading a writeup on this history of Tailwind[1] made by Adam Wathan (who created Tailwind).
It seems like he was working on a variety of different business ideas including "Reddit meets Pinterest meets Twitter" and "a developer-focused, webhook-driven checkout platform". He created the basis of Tailwind just to help him build these projects, but it kept getting attention when he would post about his progress building them online.
Here's an important quote from the doc:
"Now at this point I had zero intention of maintaining any sort of open-source CSS framework. It didn’t even occur to me that what I had been building would even be interesting to anyone. But stream after stream, people were always asking about the CSS"
It seems like Adam's main goal was to start a software business, and Tailwind just happened to get popular and became what he pivoted his efforts into. There's obviously nothing wrong with wanting to start a business, but trying to take an open-source CSS framework and turn it into a multi-million dollar business feels unnatural and very difficult to maintain long-term.
To his credit, he did pull it off. He built a seemingly quite successful business and hired a sizable team, and apparently made a decent amount of revenue along the way.
But now, for AI reasons or otherwise, that business is struggling and failing to sustain the scale it was before. To me, it seems like the business is more or less completely separate from the open-source Tailwind project itself. It's, as far as I can understand, a business that sells templates and components built with Tailwind, and it uses Tailwind's popularity to bootstrap customers and sales.
If it were me who ended up building Tailwind, there's no way I would have pursued turning it into a big business. Maybe I would have tried some kind of consulting style, where I'd offer my time to companies evaluating or integrating Tailwind.
Now that Tailwind is getting hundreds of thousands (millions?) of dollars a year in sponsorships, it feels weird to have this for-profit business on the side at the same time.
Maybe it's just my own sensibilities and worldview, but I feel like Tailwind should just be what it is: an extremely popular and successful open-source CSS framework.
[1] https://adamwathan.me/tailwindcss-from-side-project-byproduc...
A Modern Recommender Model Architecture
A Modern Recommender Model Architecture
The kinds of sites that go down when receiving unexpected traffic are usually built in such a way where they're making multiple DB requests to render each page. Or they have a dozen poorly configured perf-expensive WordPress plugins running. Or likely all of the above
That's not to say performance doesn't matter anymore or that blog posts on niche topics don't matter anymore.
It's more that there are 30 opponents on all sides fighting to minimize the impact of this kind of post. CPUs are still getting faster even now despite Moore's law being dead. The business or career impact of choosing between an associative list vs hashmap in a garbage-collected language like Guile Scheme is so minimal that it's hard to quantify.
If it's in a hot enough path that it matters, it's likely that there are at least 3 things you can do within 20 minutes of work (or 5 minutes of GPU time) that will solve the problem as effectively or better.
I remember the very specific period of time when blog posts talking about functional programming for React developers were en vogue. You can speed up you Scheme app by 15%, or you can build and deploy a completely new service from scratch in Node.JS in the same amount of time.
It used to feel like code had some kind of meaning or value. Now, it's just an artifact produced as a side effect of work. But that's been a trend for a decade or so now, AI is just the latest (and most significant) iteration of it.
Reverse Engineering a Neural Network's Clever Solution to Binary Addition (2023)
It's largely finished and functional, and I'm now focused on polish and adding additional builtin functions to expand its capabilities. I've been integrating different geometry libraries and kernels as well as writing some of my own.
I've been stress-testing it by building out different scenes from movies or little pieces of buildings on Google Maps street view - finding the sharp edges and missing pieces in the tool.
My hope is for Geotoy to be a relatively easy-to-learn tool and I've invested significantly in good docs, tutorials, and other resources. Now my goal is to ensure it's something worth using for other people.
I wasn't (and still am not) the biggest fan of the new Runes syntax, but I've gotten used to it, and it doesn't really hurt my productivity or get in my way that much.
There's definitely an ecosystem gap compared to React, but there are still lots of really good components and frameworks out there. For example, there's a native Svelte version of IBM's Carbon Design[1] which I've used and found to be very high-quality.
And as for arguments that React will keep winning due to LLMs not having enough corpus to learn less-popular frameworks, I've anecdotally had good success with using LLMs to edit and generate Svelte code. There are occasionally some issues (like it generating pre-runes syntax or using deprecated stuff like stores) but it works well enough to be useful, and definitely better than I expected.
The order of conditions in a WHERE definitely does matter, especially in cases where the conditions are on non-indexed columns or there are CPU-intensive search operations like regex, string ops, etc.
I just ran this test locally with a table I created that has 50 million rows:
``` » time sqlite3 test.db "select count() from test WHERE a != 'a' AND a != 'b' AND a != 'c' AND a != 'd' AND b != 'c' AND d != 'd' AND e != 'f' AND f = 'g'" sqlite3 test.db 5.50s user 0.72s system 99% cpu 6.225 total » time sqlite3 test.db "select count() from test WHERE f = 'g' AND a != 'a' AND a != 'b' AND a != 'c' AND a != 'd' AND b != 'c' AND d != 'd' AND e != 'f'" sqlite3 test.db 1.51s user 0.72s system 99% cpu 2.231 total ```
The only difference is swapping the `f = 'g'` condition from last to first. That condition never matches in this query, so it's able to fail fast and skip all of the work of checking the other conditions.
I just ran this test locally with a table I created that has 50 million rows:
``` » time sqlite3 test.db "select count() from test WHERE a != 'a' AND a != 'b' AND a != 'c' AND a != 'd' AND b != 'c' AND d != 'd' AND e != 'f' AND f = 'g'" sqlite3 test.db 5.50s user 0.72s system 99% cpu 6.225 total » time sqlite3 test.db "select count() from test WHERE f = 'g' AND a != 'a' AND a != 'b' AND a != 'c' AND a != 'd' AND b != 'c' AND d != 'd' AND e != 'f'" sqlite3 test.db 1.51s user 0.72s system 99% cpu 2.231 total ```
The only difference is swapping the `f = 'g'` condition from last to first. That condition never matches in this query, so it's able to fail fast and skip all of the work of checking the other conditions.
It might be the case that SQLite has a simpler or less sophisticated query planner than other databases like Postgres or MariaDB, but in my experience those DBs struggle a lot with good querying planning as well. I’ve spent many hours in the past with issues like Postgres suddenly starting to ignore an index entirely because its computed table data distribution statistics got out of balance, or having to add manual annotations to MariaDB queries like STRAIGHT_JOIN in order to get a query to run faster.
I’m guessing that this is a really hard problem since it doesn’t seem to be really “solved” by any major DB vendor I’ve seen. A lot of modern DB engines like Clickhouse tend to just work around this problem by being so fast at full table scans that they don’t even need any sophisticated indexing set up at all.
For me, so much of the value and enjoyment in programming comes from getting locked in and grinding out some feature or fix solo based on a spec or description. I also feel like programming without listening to music is way less enjoyable.
Again, no flame at all for people who work this way. It just doesn't match at all with my own sensibilities and work style to the point where it's hard for me to imagine doing it at all.