skysight-inc/HackerNews huggingface dataset:
> Now, it reads like you' think I'm saying you shouldn't care about a method if it's only 1% of your runtime. I definitely don't believe that.

Nor do I. I make a lot of progress down in the 3% code. You have to go file by file and module by module rather than hotspot by hotspot down here, and you have to be very good at refactoring and writing unit/pinning tests to get away with it. But the place I worked where I developed a lot of my theories I kept this up for over two years, making significant perf improvements every quarter before I had to start looking under previously visited rocks. It also taught me the importance of telegraphing competence to your customers. They will put up with a lot of problems if they trust you to solve them soon.

No I’m saying the jitter is a lot more than one percent, and rounding errors and externalities can be multiples of the jitter. Especially for leaf node functions - which are a fruitful target because it turns out your peers mostly don’t have opinions about “clever” optimizations if they’re in leaf node functions, in commits they could always roll back if they get sick of looking at them. Which is both a technical and a social problem.

One of the seminal cases for my leaving the conventional wisdom: I’d clocked a function call as 10% of an expensive route, via the profiler. I noticed that the call count was way off. A little more than twice what I would have guessed. Turned out two functions were making the call with the same input, but they weren’t far apart in the call tree, so I rearranged the code a bit to eliminate the second call, expecting the e2e time to be 5% faster. But it was repeatably 20% faster, which made no sense at all, except for memory pressure.

About five years later I saw the most egregious case of this during a teachable moment when I was trying to explain to coworkers that fixing dumb code >> caching. I eliminated a duplicate database request in sibling function calls, and we saw the entire response time drop by 10x instead of the 2-3x I was expecting.
... and then maintainers having to come up with "style manuals" to codify a project's preference and avoid this ping pong ...
DeepSeek-v3 Technical Report [pdf]
>> I find it a sad thing that often great achievements and ruthlessness go hand in hand. “Hard times create strong men and strong men create good times” is a famous quote.

I wonder if this applies to computing where in the early days RAM and clock cycles were limited so programmers and engineers had to be more creative and do more for less, where now it's just buy another GB RAM stick for $50USD and try again.

I remember a youtube video with bwk (Brian Kernighan) and he was saying that when they were doing UNIX and computing in the 70s it was easy for them as they had all the low hanging fruit to pick where now you have to climb higher to get the fruit?
> The resulting breakages will be discovered by automated QA

It's a bold move, Cotton.

Wiping `Cargo.lock` and updating within semver seems sort-of reasonable if you're talking about security updates like for a TLS lib.

"Massaging" `Cargo.toml` and hoping that automated tests catch breakage seems doomed to fail.

Of course this was 3 years ago and this person is no fool. I wonder what I'm missing.

Did this ever go into production?
There are extensions/plug-ins to the standard Java server, allowing Bedrock players, and xbox accounts to join:

https://geysermc.org/

(Plus Floodgate so they don't need a Java account)

I just setup a new family minecraft server last week and have successfully hosted java and bedrock players simultaneously (one coming in from a Nintendo switch, another from their phone and several from Java clients).

There are also plug-ins allowing older (or newer) client versions to connect to your server as well (ViaVersion, ViaBackwards).
Instead of, say, 10 functions in a file that are all individually meaningful, you now have maybe 50 functions that are mostly tiny steps that don't make much sense on their own. Good like finding the "real" 10 functions buried amongst them. It's certainly higher cognitive load in my (painful) experience.
The idea is that for the non-active mode, the current/end pointers are equal, signifying that the buffer is exhausted. This forces entering the slow path, where the mode can be switched.

I don't think an implementation with two active, non-empty buffers is all that useful because you can't tell which buffer's progress should be used for the file pointer adjustment in ftell.
I’m in a similar situation and hadn’t thought of it that way. My take on the email I receive is that they fall into one of these categories: a) genuinely intended for me (and not spam), b) spam, c) genuinely intended case of mistaken address (they forgot to include another character), d) someone using mine as their throwaway (site sending verification email), and e) someone using mine as their throwaway (no verification process, ergo not altogether different from spam).
Tell them they can just call it "Luanti" now ;-) [1]

It's also becoming more and more "not just Minecraft". For instance this entry from the latest GameJam, which is a nice little shooter [2]

[1] https://www.luanti.org/

[2] https://content.luanti.org/packages/Sumianvoice/extra_ordina...
(The comments before 2022 are all the same; the newest comment is only on Github.)
Is it just me or is ChatGPT down?
how do you define "golden age"? personally, I still love those kind of riddles, I don't care who's cheating or not. It's like sudoku. and I bet I am not alone.
Golang on OpenWrt MIPS (2020)
In jest but this is a good example of how spending a bit of time on APIs and metrics and so on is buying an option on creativity in the future
I use Tailscale for a bunch of self hosted services on a raspberry pi in my house. Port numbers and TLS certs are my current main problems with this setup but it's not annoyed me quite enough yet to do anything about it.
An ELF, and almost in time for Christmas!
someone is having a bad day at Microsoft

many of our VMs are down, and I'm seeing reports from others that theirs are as well
In my experience, the more convoluted code is more likely to have performance issues.
>What's wrong with ladybird?

Honestly all of these x/y names just imply that they are knockoffs of firefox. Which is fine if you want your browser to just be firefox±some feature firefox doesn't include, but not so great if you're wanting to stand on your own branding wise.

Plus ladybird is the less popular name of the ladybug and if you aren't aware of that, it just seems like some weird needlessly gendered name, which doesn't make sense for a browser to have. Plus a bunch of ladybug type branding with red and black dots and such seems cringey.

Just a complete all around fail to consider branding.
China's new long range stealth aircraft makes appearance
So back of the sticky note math, 1,000 ton/yr, at $7.37/ton carbon credit resell value per Google "AI" header thing, that's $7,370/year profit. Hopefully that covers the boat, employee salaries, and fuel. Good job team.
Because Amazon sent them am email. When questions go unanswered, Amazon emails some of the prior purchasers asking them the question. These emails are constructed to look like they are personally being asked for help.

So, why? Courtesy, believe it or not. Blame Amazon.
In 2025 it is going definitely to be ChromeOS.

Web is driven by Google nowadays, so a standards body that only puts a signature into whatever Google decides, is naturally worthless.
Related:

Finland investigates Russia 'shadow fleet' ship after cable damage - https://www.bbc.com/news/articles/cr56l7prj2mo
With respect, the first half of the sentence sounds more like waffling than a clear warning to your peers. I bond with other engineers over how badly the industry as a whole handles the scientific method. Too many of us can’t test a thesis to the satisfaction of others. Hunches, speculation, and confidently incorrect. Every goddamn day.

Feynman said: The most important thing is not to fool yourself, and you’re the easiest person to fool.

That’s a lot more than 1/10, and he’s talking mostly to future scientists, not developers.
Twisted: The dramatic history of twisted-pair Ethernet [video]
Another use case for cryptocurrency: working around international sanctions.
If you like Lua, see Terra, https://terralang.org/

> Terra is a low-level system programming language that is embedded in and meta-programmed by the Lua programming language.. Like C/C++, Terra is a statically-typed, compiled language with manual memory management. But unlike C/C++, it is designed from the beginning to be meta-programmed from Lua.. In Terra, we just gave in to the trend of making the meta-language of C/C++ more powerful and replaced it with a real programming language, Lua.. Terra programs use the same LLVM backend that Apple uses for its C compilers. This means that Terra code performs similarly to equivalent C code.

From Pat Hanrahan's research group at Stanford, https://amturing.acm.org/award_winners/hanrahan_4652251.cfm

Hanrahan and his students developed Brook, a language for GPUs that eventually led to NVIDIA’s CUDA. The prevalence and variety of shading languages ultimately required the GPU hardware designers to develop more flexible architectures. These architectures, in turn, allowed the GPUs to be used in a variety of computing contexts, including running algorithms for high performance computing applications, and training machine learning algorithms on massive datasets for artificial intelligence applications.

Papers: https://terralang.org/publications.html
Iraq Plans to Slash Gas Flaring
I guess one of the issues is that because Lua is tailored for embedded use case, it lacks appeal as a general purpose software development ecosystem and thus its usage is marginal.
Right (I mean, I'm saying "right" but really I should just say "I'm taking your word for it"), but even more fundamentally this is dimensionality reduction from an OpenAI embedding vector, which seems almost like the asymptotic limit of inscrutability.
A funny consequence of this is that there are people alive today that do not know (and never will know) their exact age in seconds[1].

This is true even if we assume the time on the birth certificate was a time precise down to the second. It is because what was considered the length of a second during part of their life varied significantly compared to what we (usually) consider a second now.

[1] Second as in 9192631770/s being the the unperturbed ground-state hyperfine transition frequency of the caesium 133 atom
Hormones, I think... I'm not sure exactly what the g.p. post is referring to, but in people there are a lot of non-direct interactions, too. The one's I'm (only slightly) familiar with are hormones. Maybe there are others?
Lua is nice but it being embedded in many different places means that there will often be environment specific context that's injected for you to interact with, but any editor tooling won't know what's injected
Not at all, given Facebook and Microsoft involvement into making CPython folks finally accept a JIT has to be part of the story, coupled by NVidia and Intel work on GPU JIT DSLs for Python.
I bought a rowing machine and just toss on some game of thrones and row for 35 mins. Good way to start the day.
Is Lua currently even faster than JS and PHP, after all the effort that went into those languages’ optimizations?
No. The problems begin because GP included the idea of saying "N <calendar units> in the future".

If the definition of a future time was limited to hours, minutes and/or seconds, then it would be true that the only hard part is answering "what calendrical time and date is that?"

But if you can say "1 day in the future", you're already slamming into problems before even getting to ask that question.
Stipulating that it's even possible to produce this kind of ranking, and that it would be meaningful, your answer: because reliably generating the data you would need to do it is a ludicrously expensive proposition. It is a little wild that people sort of automatically buy the idea that Richard Lynn had access to the data he would have needed to perform this analysis!
The web page for this project comes off as an LLM-generated troll.
My first Linux box ran 0.99.10. I was running SLS, which installed off of a dozen or so floppies. I eventually moved to Slackware a year or so later.
Show HN: I Built an Email Agent to Filter Emails Based on Your Knowledgebase
Looking for one user to test it out for me. ill provide the test credentials. you wont have to login using your own email. Please please please email me at murtazash123@gmail.com
I think it's a stretch to call it underrated. Isn't it the defacto language for embedded scripting stuff? I've seen it used as a mini language in production in game engines, databases, and trading systems.

On the other hand, if the article is saying that it deserves to be more highly rated in the non-embedded space, I think I would need more than a handful of syntactical niceties to explain why it deserves to be in the same conversation as Python, Ruby, etc...
> They use introversion as an excuse to not grow.

As if people who the author accuses of this sin have the same definition of, or feel the same about "growing" as the author...
and yet everyone recommends ssh keys over passwords. passkeys are just the ssh keys of the web
Write Your Own Virtual Machine (2022)
Thoughts on the Eve of AGI [X]
Hierarchy doesn’t make sense if you care about multiple dimensions, which I often do with notes.

Sometimes I want to look at all notes relating to c++, sometimes everything related to a personal project. Directories don’t support that without symlinking everything that mentions c++ into a folder for that.
Ask HN: Is there an AI benchmark for coding large apps such as word processors?
Also, what about an AI benchmark for coding games with novel game mechanics that won't be in the training data? Does it exist?
Nonvolatile electrochemical memory at 600°C using composition phase separation
Captured by who? This claim needs some backing up.
FDs really should have been opt-in for inheritability from the start, with the possible exception of stdio. Inheritability being an fcntl is definitely one of the worst bits -- if the APIs for fork()/etc were designed today it would probably take a list of FDs that would be dup2'd in the new child process.
if not for the work requirement, at 80gb you could likely do what I do: use syncthing to make there be a full copy of the files on your phone. I've got a media terminal, my laptop, and my phone each keeping each other up to date. it's never broken or been frustrating. it works offline perfectly.
Related:

https://www.bloomberg.com/news/articles/2024-12-26/iraq-plan... | https://archive.today/MiDH8

https://thedocs.worldbank.org/en/doc/d01b4aebd8a10513c0e341d...
I get that. One buffer that can be maximized by the path that most needs it (read or write). I'm just saying that notionally it's two independent buffers, which solves the problem of not having to force a buffer flush between mode change.

> I don't think an implementation with two active, non-empty buffers is all that useful because you can't tell which buffer's progress should be used for the file pointer adjustment in ftell.

Oh interesting. The other problem is that two buffers reduces memory utilization.
Also, 'they' let the drone operates for an hour despite been flagged?? What about data sent real-time. Shouldn't the drone been 'cancelled' as soon ad spotted?
It is definitely how it works in Python.

As if there is nothing else to chose from regarding Python performance issues and libraries used by folks.

Not everything is fashionable AI.
You can set your OS to any timezone you want to. If you want it to be 29 seconds off, go for it. The tz database is open source.
I was infected by the Lua mind virus 15 years ago and I have not recovered.

I simply don't see any reason not to use it .. for everything.

I've built games with it. I've built GUI's with it. I've built scientific analysis tools with it. I've used it as a total solution for previously-impossible embedded problems. I've used it for desktop applications and mobile apps. I've automated entire production lines with it. It has huge appeal as a general purpose software development ecosystem - but those who know how to do this, tend to keep it to themselves for some reason.

It can do everything.

There's just nothing I want to do with computers that I can't, legitimately do, with Lua - or its VM. Or, LuaJIT. Or, all of the above and a bit of luarocks built in. Throw some luastatic in while we're at it, bundle it all up as a .deb, and nobody needs to know a thing.

Its just so versatile. I hope someone builds an OS around it some day, making everything and anything the user wants to do, accessible through a Lua module, or some smart libffi wrappers around a handful of .so's, somewhere ..

In my retirement, I'll take antirez' LOAD81, turn it into a proper Lua editor, add integration with luarocks and luastatic and maybe a shit-tonne of IPFS, and then there won't be any need, ever again, to deal with anything else.
It looks like Lua's conditionals, for loops, and function definitions terminate with the "end" keyword. Is this considered more readable or does it bring some other benefits besides helping the interpreter parse code?

Many people love Lua, so I suspect there is a good reason for this.
I agree. I find this part of the article weird as it has contracting statements:

> No port/adapter terms to learn

and

> we gave it all up in favour of the good old dependency inversion principle

Both use interfaces, just in different ways. We use hexagonal (ports and adapters) pattern in my project. If you asked anyone on my team to define hexagonal architecture they'll have no idea what you're talking about. They just follow the project coding patterns. There's no additional complexity.

> If you think that such layering will allow you to quickly replace a database or other dependencies, you're mistaken

I think most people do not stay at companies long enough to see the price of not abstracting away these things. That's the next developer's problem. The code tends to be tightly coupled to the libraries and frameworks used. Eventually, the projects dependencies have to be upgraded (usually due to security issues) and the migrations are usually incredibly difficult, expensive, and fragile. The product's business logic is tightly coupled with the framework and libraries used at the time. Even if the company realizes that framework has no future, they're kind of locked into their initial decision made a decade ago. At least, that's been my experience.

We have two major products at my company. Both started with the same initial framework, but the project I architected that used hexagonal was migrated to a faster and more modern framework within 4 weeks. The other product had a multi-year migration to a newer version of the same framework (and by the time it was completed is already two major versions outdated). Both products are similar in scale and code size.
This needs to really be slowed down. Just like we need changes in the FDA for approval of food ingredients as opposed to the current process that allows ingredients by default, this needs to change to a process of examining what the impacts might be and gaining approval first. This will of course hurt innovation with startups by slowing things down and making it expensive, but I worry about irreversible consequences.

That said, I doubt any of this will be stopped in time. Our governments (state and federal) aren’t even quick enough to understand the impact of offshore wind farms on marine life. These geoengineering projects are far more complex and have less data available. So I think the default is that they’ll continue.
Which happens to have a JIT compiler, and contributed to standard PHP having one as well.
Go goes slightly further and opens all descriptors with O_CLOEXEC by default, so if you ever execute an external command you have to go out of your way to preserve any descriptors, which is really nice in my opinion
>but is there a reason you need to use chrome and jump through a bunch of hoops instead of just using a browser like firefox?

Not the other guy, but chrome is just feels so much better to use. Sure you can use something else and eventually get used to it, but a lot of things just feel off in firefox. I used firefox years ago and the switch the chrome immediately felt better, anytime I've tried to go back the switch immediately worse. I don't begrudge anyone not wanting to do that.
Germany, on bus or train, the same, many people now don't use headphones but just turn up their phone.
> I don't give a fuck if other people can't manage secure passwords.

I infer that you use a password manager.

Consider passkeys as a standardized interface for password managers.
I remember hearing at a conference about 10 years ago that Google does not make use of leap seconds. Instead, they spread them across regular seconds (they modified their NTP servers). I quickly searched online and found the original article [1].

[1] https://googleblog.blogspot.com/2011/09/time-technology-and-...
Yes, it is down for me (desktop & mobile apps)
especially with fennel on top, i can certainly see the uses and appeal!

coming from mostly python, i miss a robust stdlib.
Thing is, good documentation has to be part of the company's process. eg, a QA engineer would have to be responsible for checking the documentation and certifying it. Costs money and time.

You can't expect developers, already working 60 hour weeks to meet impossible deadlines, to spend another 15 hours altruistically documenting their code.
I'm sure you'll find the LLMs captured and manipulated as well
When it comes to languages, I was enlightended when I changed from {}; languages to Python. I could never go back.
i wish luajit has been actively evolving though
> Aside from the sheer size of the new aircraft, which we will address in a moment, the most striking thing about it is its planform and tailless configuration.

> Maybe the aircraft’s most unusual feature is its air intake arrangement. It appears to have an air intake on top of the fuselage, as well as twin intakes on either side of the lower fuselage.

The computing power required for coordinating flight control surfaces and power would be intriguing to look into. At this point ancient history, but the F-117 is what introduced me to the concept: "It is aerodynamically unstable in all three aircraft principal axes and thus requires constant flight corrections via a fly-by-wire (FBW) flight system to maintain controlled flight" [0]

[0] https://en.wikipedia.org/wiki/F117
I'd think logic bugs are the majority of CVEs, and rust doesn't magically make those go away
Not quite, MMTk was rewriten from Java into Rust.

So already something else from Jikes days.
I have really enjoyed working with Lua when it's come up and I think it's an extremely good language. In particular, as Noë says, its interface for embedding into C/C++ is clean and flexible. There are performance concerns, but considering how widely Lua is used for game logic in high performance video games clearly those concerns can be addressed.

That said, I think there are other warts that can be confusing and make the language difficult. The Nil-Terminated Arrays section points out one oddity about `nil` - but there are many others. There are a number of confusing corner cases (or were - I haven't used it in a while). As an example, if you have a list of values and you pass that list into a new table, the resulting table may be different than if you add each value in that list in order.

I also think that the flexibility of embedding means that you are often learning the Lua <=> C interface as much as you are learning Lua. So jumping from deploy to deploy is more confusing than most languages.

Nevertheless I fully agree the language is underrated!