No. Genetic diversity and natural selection have created many intricate, beautiful, and useful structures. Unless someone is willing to argue that Darwinian selection is sentient, it's clear that theres at least one non sentient process that is creative.
I agree. I think the problem is shared context. A good human writer estimates their audience's understanding and writes close to their level. The llm doesn't know this for any particular audience and falls back to a static trained baseline or some other incorrect level.
I hope we'll have some kind of good paradigm to do lora style learning or maybe an output subagent or something so we can better calibrate the output style in a fuzzy way. In context learning (instructions, memories) doesn't currently seem that effective.
I think so too. I'll quote myself from [1] (at excessive length, as if oblivious to the context of how much time anyone else was spending on this, ironically / funnily / hypocritically enough):
> But I suspect it goes deeper. Why does it seem to begin sentences with "Additionally" a bit too much? My guess is that it's because humans would tend to base their writing much more on, I don't know, maybe an underlying narrative structure of sorts, such that the relevance of things and the connections between them can more often be implied.
> Meanwhile AI has little or none of this kind of context, so it needs to use a lot more explicit connectors, and it's forced to risk being mildly patronizing for lack of a nuanced reader persona to write for. It doesn't encapsulate opinion in the subtext and details of factual statements, there is nothing to be found between the lines, and no arcane divination is needed to see what the angle is.
Scattered throughout the section before that (by which I mean that the next quotes weren't contiguous) is some tracing around the core problem that I later realized is a lack of qualia. Is it that the bot has no capacity for qualia? I mean, I would think so. I'm not sure if that's strictly compatible with the concept of qualia, since I'm under the impression that they're supposed to be ineffable anyway, so how would we really know? But either way, it obviously lacks direct knowledge of the qualia of a lot of things it pretends to have experienced. This also shows in its attempts at metaphor and analogy (but bear in mind this is all from early 2025).
> You might also find some detached or glossed-over metaphors. Is this "[I'm just a normal person, not some] superhero with a secret morning routine" really a particularly meaningful concept to you? It feels empty to me. Who has a "secret morning routine"? Who would have been thinking of such a thing before it was forced into the frame by the writer? There will often be a lot of this kind of disingenuous pretending at human experience.
> The scenario . . . where someone is having fully articulated, coherent, and civil self-talk about their alarm while it is still going off, seems unrealistic to me.
> Oh, you sat wrapped in a hoodie with the morning's hot drink to watch the sunrise? Were you also cradling the mug in both hands? It's a good thing you included such a relatable and human detail by dropping in a reference to "that soft morning light". . . . Thanks!
> "It felt kinda magical in a chill way." Seriously?
> "It's like my brain worked better without all the usual distractions." If you pause again and contemplate this bit, as well as the one from earlier about the "texts" and "chaos" that used to make his mornings so hectic, is it not empty? . . . It's alluding to things without actually talking about them. It is using many words to say nothing. It's essential to be able to notice this.
--
I was curious about whether one of the count bits instructions can help. Of course I'm lazy now and asked an llm to check... The llm noticed that the articles solution includes a floating point subtract in the end. This is fine since the target is wasm which has fsub/fadd, but was initially odd to see in a floating point emulator.
Apparently a ctz solution is a bit longer, but doesn't cross from the floating to integer domain at all, so might be better in the overall algorithm. There are hidden implicit floating to int convert instructions.
> This is fine since the target is wasm which has fsub/fadd, but was initially odd to see in a floating point emulator.
For more context, I'm emulating a full-feature FPU (with exceptions, rounding modes, etc.) over a basic FPU (just the five basic operations or so).
> Apparently a ctz solution is a bit longer, but doesn't cross from the floating to integer domain at all, so might be better in the overall algorithm.
That's what I tried originally, in fact I left this snippet in comments:
let exp = (x.abs().to_bits() >> 23).max(1) as i32 + 125; // max(1) for subnormals
let ctz = (x.to_bits() | (1 << 23)).trailing_zeros();
exp + ctz as i32 - 23
The problem with this approach is that you need quite a lot of wiring to handle subnormals and powers of two correctly. `max(1)` in particular requires `cmov`s or equivalently slow bit tricks. I quickly found out that using FP subtraction is significantly faster on modern hardware.
There is also another reason why I preferred the FP-based solution, and that's vectorization. The brute-forced algorithm can be easily vectorized on all major platforms, but `trailing_zeros` is only vectorizable with AVX-512 on x86, and even then it's not even available in WASM. So, in a twist of fate, I actually think emulating CTZ with floating-point is a more interesting avenue than the other way round. I don't want to self-promote, but you can find a recent relevant article on my blog.
Ah, the silly tradeoffs the ISAs expose us to. The CTZ/CLZ is fundamentally faster than floating point subtraction; but that doesn't mean that the CLZ/CTZ instruction will be faster than the FSUB. It could be but the vendors may as well decide to make it as slow as (or even slower than) FSUB.
Fwiw on the compiler front, I used to work on the msvc tool chain. It has been doing lto (aka ltcg) for a very long time at reasonably good throughput. That tool chain also has done incremental compilation on a per function basis for about 7 years. Sharing header parsing across translation units has been possible through PCH for decades. Even without PCH, inline header functions only get codegened once in ltcg mode (not counting inline expansion).
In a large multi-dll build like Windows or Office, the import/export information across modules is computed without doing codegen, so ltcg codegen can be done in parallel regardless of the module dependency graph.
I never worked deeply in the build systems for Linux based OSes or other unixes, but I gather that some symbol visibility choices make the build situation worse in Unix systems than Windows.
The first 4 years are basicaly worthless. I remember reading that the best doctors got their initial BS in engineering which has nothing to do with medicine. It simply shows they have a higher IQ than average and would have made superior doctors whether they got that engineering degree or not.
That leaves the only real difference (other than degree inflation) as being 3 years of residency, but most of the older generation of doctors effectively did the same thing entering into an existing practice or working in a hospital under an experienced physician.
If you climbed the ladder (like a lot of nurse practitioners do), the ADN+BSN took 5 years with 3-4 more years for the MSN or 4-5 years for the DNP.
Put another way, that nurse practitioner has MORE applicable years of schooling than a doctor who got some random degree with the handful of med prereqs then went to med school, internship, and residency. Lots of nurse practitioners also work in the field all the while they are in school which further increases their actual experience.
The real takeaway is that all these extra years, loans, and interest combined with fewer years to practice medicine translate into more expensive care without improving outcome.
Author here. Glad you liked it. Claude has been used to help me structure the post, but not the writing itself (except maybe proof-reading it). All the techniques I use are pretty standard tricks to retain someone's attention (in particular easily-bored students in class).
This is surprisingly apt to me. Fertilizer is apparently one of the fundamental geopolitical dependencies on capital and access to petrochemicals. Solving fertilizer would unlock a huge amount of human potential in the Global South.
Disallowing smc is a significant perf/power win. For cpus that run a large variety of large code (e.g. a web browser or ux stack), being able to cache a large instruction footprint and fetch/decode it quickly is important. Having to have the icache snoop data writes and entangle the i-fetch with the store buffer machinery would be a huge penalty to pay for a niche use case. Unlike loads, which are a small fraction of instructions to disambiguate with stores, you'd have to disambiguate every single instruction.
JIT is important to Apple platforms, and they seem to manage to make it work well enough even with the need for explicit invalidation.
FWIW if you look at WebKit/JavaScriptCore, the trend has been towards less-frequent code modification, e.g. inline caches are mostly no longer repatched inline. Whole-function reoptimization is still worth the overhead of sys_icache_invalidate() + `ISB`'ing everyone involved, but at smaller granularities not so much.
So that is only true because we do it, there is a world where we optimize differently and that self modifying version works better, reread the synthesis kernel thesis(one, it is super easy, two they did this), we could have hardware that does this. Because we don't have hardware that does this we don't
I agree with what you're saying. It's called: https://en.wikipedia.org/wiki/Object_slicing. Clearly a footgun in c++. You have to return a pointer to something that is not locally allocated.
reply