rdw's comments

rdw | 5 months ago | on: The quality of AI-assisted software depends on unit of work management

In the area I live, houses are often built one complete room at a time, over many years. They start out as a single-room shack, then the owner builds extensions as they have children or money. Often, they build a porch, and then decades later wall up the porch and turn it into a room of some kind.

I kind of like this analogy because it does help us reason about the situation. The one-room shack is basically an MVP; a hacky result that just does one thing and probably poorly, but it is useful enough to justify its own existence. The giant mansion built from detailed architectural plans seems like a waterfall process for an enterprise application, doesn't it?

There are many advantages to building a house one room at a time. You get something to house you quickly and cheaply. When you build each extension, you have a very good idea of how it will be most useful because you know your needs well. You are more capable of taking advantage of sales (my neighbor collects construction overstock for free/cheap and starts building something once he has enough quantity to do so). It's more "agile". The resulting houses are beautiful in their own bespoke ways. They last a long time, too.

The downsides are that the services and structure are a hodgepodge of eras and necessity. If you're competent, you can avoid problems in your own work, but you may have to build on shoddy "legacy" work. You spend more of your time in a state of construction, and it may be infeasible to undertake a whole-house project like running ethernet to every room.

It's all tradeoffs. I think it does in many cases make sense to build a house in this way, and it likewise makes sense to build software this way. It depends on the situation.

rdw | 6 months ago | on: US Intel

"We should do something to preserve leading-edge chip manufacturing in the US. This is Something, therefore we should do it."

rdw | 7 months ago | on: “The Bitter Lesson” is wrong. Well sort of

The bitter lesson is becoming misunderstood as the world moves on. Unstated yet core to it is that AI researchers were historically attempting to build an understanding of human intelligence. They intended to, piece-by-piece, assemble a human brain and thus be able to explain (and fix) our own biological ones. Much like can be done with physical simulations of knee joints. Of course, you can also use that knowledge to create useful thinking machines, because you understand it well enough to be able to control it. Much like how we have many robotic joints.

So, the bitter lesson is based on a disappointment that you're building intelligence without understanding why it works.

rdw | 11 months ago | on: Scaffold Level Editor

Thanks, Max! I've personally never been able to wrap my head around BSP; I appreciate your diagrams explaining everything, and I am optimistic about the new engine. It's crazy how much faster it can be; really drives home how much extra stuff Unreal is doing that your game may not need.

rdw | 2 years ago | on: Sony just spilled confidential Playstation information because of a Sharpie

It's a very risky industry. It's quite likely to sink a ton of money into a game and earn very little back, basically wasting everything. Game series that consistently make revenue are even rarer so they're extremely coddled while they last, though it is expected that eventually they will die, too. The rare successes cover the costs of the common failures.

rdw | 3 years ago | on: Builder's Remedy goes into effect in many California cities tomorrow

I used to believe this and then I got into the area. It depends on the area of course but it turns out that the cost of the house is quite significant. House construction costs are $200-500 per square foot, putting even a medium-sized house at around a quarter of a million dollars. When you look at the costs of empty plots of land versus similar plots of land with houses on them, you'll see that the housed plots of land cost the same as the empty plots plus the construction costs of a similar-sized house. In the areas where I looked, the costs of the house dominated, such that the land value is about 20% of the total value of the plot. Even the variance that occurs at that level can be further explained by the value of potential future plots of land on the space -- a plot of land that has one house but could hold a second (for whatever reason) is more valuable than an otherwise-identical plot that can only support one house.

rdw | 3 years ago | on: Godot 4.0 beta 16: Initial .NET 7 support

It has more to do with how game engines are built, making embeddability be the most important criteria.

Most game engines are written as a large chunk of C++ code that runs each frame's timing, and the big subsystems like physics, particles, sound, and the scenegraph. All the important engineers will be dedicated to working on this engine and it behaves like a framework. The "game logic" is generally considered to be a minority of the code, and because less-technical people generally author it, it gets written in a higher-level "scripting" language.

This creates some serious constraints on that language. It must be possible to call into the scripts from the main engine and the overhead must be low. The scripts often have to make calls into the data structures of the main engine (e.g. for physics queries) and the overhead of that should be low as well. It should also be possible to control the scripting language's GC because the main engine is pretty timing-sensitive. Memory consumption is pretty important as well.

All these requirements point towards two implementations specifically: Lua (and LuaJIT), and Mono. Those two runtimes go out of their way to make it easy and fast to embed. A third option which a lot of engines pick is to write their own scripting language where they control everything about it. Any other language you can think of (with the possible exceptions of Haxe) will have some major hurdle that prevents easy embedding. The fact that you can compile multiple languages to Mono bytecode pushes some folks in that direction; if you're planning to write a lot of code in the scripting engine (not all of them do! See: Unreal) that's nice flexibility to have.

rdw | 3 years ago | on: Reference count, don't garbage collect

You're right, and it's got more layers than that. C# does have value types, which are not boxed, and using them judiciously can avoid garbage. However, they are a more recent addition to the language (which started as a lame Java clone), and so the standard library tends to not know about them. Really trivial operations will allocate hundreds of bytes of garbage for no good reason. Example: iterating over a Dictionary. Or, IIRC, getting the current time. They've been cleaning up these functions to not create garbage over tiem, of course, but it's never fast enough for my taste and leads to some truly awful workarounds.

rdw | 3 years ago | on: Asus put out like 40 models of a laptop called the “Eee PC” (2021)

I had one, and I wrote a lot of code on it. There was pretty much nothing else on the market that could do web browsing in that portable of a form factor, and at that price point. Steve was somewhat right to worry about them -- in an alternate history they would have taken over as the dominant form of computing, creating a whole evolutionary tree of tiny laptops, converged with keyboarded mobile phones, at all price points and build qualities.

The 11" Air I got to replace the Eee was much better in every single way. One note is that the thin-and-long of the Air was much more portable than the chunky but stubbier Eee. It just fits better into the kinds of bags we all have. The thinness wars started then.

rdw | 3 years ago | on: We don't have a hundred biases, we have the wrong model

Yes, I've heard this said many times about sales people. If they're not visibly wasting money, people are reluctant to hire them because they either aren't good (and thus have no money to waste), or won't be hungry (because they've saved the money they earned by not wasting it). So conspicuous consumption becomes a way to signal that the sales person is capable of reliably generating large incomes.

rdw | 3 years ago | on: Apple announces new flagship M2 processor

It's fun to be back in the age where every few years you want to upgrade your computer because the new ones are so much faster, not because the old one is worn out.

20% faster isn't enough to make me regret my M1 purchase, but after one or two more 20% speed gains I'll feel like upgrading to the latest is going to be worth it.

rdw | 3 years ago | on: How to get rid of gerrymandering: the math is surprising

The practice of using political party affiliation as a criteria at all for drawing district borders inevitably leads to gerrymandering. This part of the article does seem apparent, which is why the solution, to _not_ do that, seems mysterious in its absence.

rdw | 3 years ago | on: How to get rid of gerrymandering: the math is surprising

This is written in such a way that it seems like it makes sense, but it ultimately takes its conclusion as an axiom and is thus essentially meaningless.

Gerrymandering is to draw districts according to political party affiliations. So of course if you only divide up your districts by political party affiliation (in rather extreme ways) you will discover that doing so doesn't lead to stable political systems. No shit, that's the problem with gerrymandering.

Any serious analysis of this problem needs to confront the realities of geographical location and migration.

rdw | 3 years ago | on: Boston University Undergraduate Costs Reach $80k

Can someone explain to me how any schools are in danger of going out of business? Their expenses aren't going up, they're not paying professors more, they're not leveraging themselves into debt. What are the huge cost increases they're bearing that force them to raise tuition? The one institute I'm familiar with appears to have hired an absolute shitload of useless administrators, but that is an expense of choice that could be trimmed at any time.

rdw | 3 years ago | on: Lessons learned from the recent job hunt

> Code that runs slow over pathological input is nowhere near as dangerous as code that goes into an infinite loop over pathological input.

In my experience, these are not actually that different. Even in straightforward web development on smallish data sets, it's pretty easy to write something that runs "fast on my machine" but is so slow on production-sized data that it is effectively infinite.

rdw | 3 years ago | on: PiGlass v2: A wearable Pi Zero 2

Oooh, I have one. It is really amazing, in that there's really a usable display in a package the size of one's finger.

I've struggled to use it for anything practical, though, because of small issues with the mounting. It isn't quite adjustable enough so it's slightly out of focus. It's a too heavy so it's tilting the glasses and making them fall off if I tilt my head forward. The micro-HDMI cable interferes if I rest my head on anything. So I pretty much have to use it sitting or standing in free space, in which case, why not use a regular monitor?

I wonder if Thunderbolt makes it possible to take another crack at this design without the battery, hugely reducing the weight.

rdw | 3 years ago | on: Review: HP's smallest laser printer – M140w and Linux set up

Don't give up on the industry. I believe that HP is actually seeding the idea that no printer is better, because I've heard several people resignedly tell me that they're getting an HP because "they're terrible, but every printer is terrible and at least I recognize the brand". Some sort of endgame of marketing perhaps. But reliable and good printers are indeed available to purchase, as long as you can find them. I can recommend the Brother HL-2270DW I purchased nearly a decade ago which is still completely trouble-free (And prints duplex in a small footprint! Delightful.)

Making printers is not trivial. Paper is not as simple as it seems. It's super thin and light which is difficult for machines to handle at speed, and it also comes stacked in a near-solid block from which pieces need to be separated delicately but firmly. The materials science behind the rubber to grip with just the right amount of friction, time after time, accounting for wear and dirt, is mind-boggling. Paper is also noticeably affected by temperature and humidity, both of which change its properties nearly by the minute. This changing nature affects feeding, making the pieces floppier at times and liable to miss the handoff to the next set of rollers, or clingy at others and adhering to a plastic guide for longer than expected. Also the electrostatic properties vary which affects how much charge the drum needs to put on each piece to ensure the correct amount of toner particles adhere -- too much and you get squished smears, too little and the text is faint. And let's not forget the fixing process, which heats the paper to bake the toner into the crevices of the page, which may take twice as long due to extra moisture, but you wouldn't want to burn things if someone is sending through some extra thin paper for some reason. And of course as it's printing the printer is changing all of these variables with its heat and motion, changing the dimensions of every space in its interior. Every printer contains many environmental sensors so they can detect these changes and tweak their control mechanisms for each individual piece of paper. It's kind of akin to baking a perfect baguette every time.

Printers are miniature marvels, and there are still some wizards out there who know how to make them well. But we have to, like, patronize those wizards instead of the goblins of HP or else we will truly be buying our own way into the dismal future of crap that HP creates.

page 1