skysight-inc/HackerNews huggingface dataset:
While that's more reassuring than no statement at all, I'd suggest keeping in mind that claims and actions don't always align and that leadership changes -- as when a startup folds in new investors or gets sold whiledale -- can and do exploit exactly the kind of trust you're investing here.

What you like about a small brand like this today could change tomorrow, or could have already changed in way that someone conveniently "forgot" to reflect on the website.

Everybody's got their own standards for risk tolerance and due diligence, but in historically shady markets like nutritional supplements and growth-chasing startups, soft skepticism and ongoing vigilance have some place.
Thanks for your comments. All very insightful.

Re lack of morals: if I’m not mistaken YC explicitly asks for instances where the founders have succeeded to "break the rules of the system" or similar. So you could even argue if anything they prefer founders that tend to bend the rules of required.

On the other hand, pg seems to have strong moral views on certain political topics.
> Honestly, I think the idea of having tests have shared state is bad to begin with

I blame this partially on our notions of code reuse. We conflate it with several other things, and in the case of tests we conflate it with state reuse.

And the availability of state reuse leads to people writing fakes when they should be using mocks, and people not being able to tell the difference between mocks and fakes and thus being incapable to have a rational discussion about them.

To my thinking, and the thinking of pretty much all of the test experts I’ve called Mentor (or even Brother), beforeEaches should be repeatable. Add a test, it repeats one more time. Delete a test, one less. And if they’re repeatable, they don’t have to share the same heap. One heap is as good as another.

Lots of languages can only do that segregation at the process level. In NodeJS it would be isolates (workers). If you’re very careful about global state you could do it per thread. But that doesn’t happen very often because “you” includes library writers, language designers, and your coworker Steve who is addicted to in-memory caching. I can say, “don’t be Steve” until I’m blue in the face but nearly every team hires at least one Steve, and some are rotten with them.
That sounds very interesting. Then again, if it's any good, it'll probably be in the hands of a foreign company within the decade.

British industrial policy is basically summed up by "ew, making things is rather infra dig, get it sold ASAP". I've never worked for any company that wasn't eventually sold off abroad.
A free and complete E-commerce Store Builder powered by AI
I never understood point 1. Your PhD thesis will almost definitely be on a very specific topic, you don't have the time or knowledge to cover multiple distinct fields.
I'll swallow the bait and try asking some sceptical questions here.

My understanding of Rust memory management is that move semantics and default lifetime-checked pointers are used for single threaded code, but for multi-threaded code Rust uses smart pointers like C++, roughly Arc = shared_ptr, Weak = weak_ptr, Box = unique_ptr.

My question is: what extra static checks Arc has over shared_ptr? Same for Weak over weak_ptr, and Box over unique_ptr.
This was a very fun article to read. It was so much like my own story. I grew up in rural USA with very limited access to the Internet. A teacher introduced us to Linux, I saved money and built a computer, and had a wonderful (though sometimes frustrating) experience installing Gentoo from CDs and printed handbooks.
Definitely will take the Pepsi challenge on 'go doc' with 'cargo doc'.

Go doc had a bunch of, puzzling things going on / barely working, Rust doc is pretty much as described in the book and reference.

Although in the C ecosystem, Doxygen is pretty nice, the docs there have to be 3d to account for the way C code bases can work.
Mining affects a limited local area. CO2 emissions affect the whole planet.
Watching letters: a history of Latvian orthography
https://archive.ph/2022.05.06-222419/https://www.wired.com/1...
> I think the issue with these low end devices are that the duopoly on operating systems

Evidence going back over 30 years now points to the consumer computing market as only being able to support 2 platforms.

The dev costs otherwise are just too high. Heck as it is cross platform toolkits are a huge deal, because hiring 2 dev teams for 2 very different platforms is too much of a cost for most companies to bear.
Wildfires in many areas of the West is not a particularly new thing.

B&B Complex Fires in Oregon in 2003 https://en.wikipedia.org/wiki/B%26B_Complex_fires

Yellowstone Fires in 1988
https://en.wikipedia.org/wiki/Yellowstone_fires_of_1988

And I'm sure I could find many other older examples.
and a very low-effort way to get a sense of superiority over others... literally anyone can learn in a few hours.

I agree that it is a skill that is easy to learn. The same is true of IDEs. This isn't about skill or superiority, but comfort. Some folks are more comfortable being closer to the machine or the road, as it were. Others are more comfortable having some automation between them and the machine. I think that the better to consider this a matter of personal preference.

The IDE adds a layer of abstraction, and abstraction can be leaky. If you are comfortable with the abstraction, and with the opinionated choices the IDE makes, that's fine. If you are not, that's also fine. All that I ask when I'm bootstrapping a project with a team is that projects be arranged such that they are IDE / editor agnostic. Use standard build configuration / build tools that have appropriate plugins for IDEs, and can also be run in the terminal / command-line. Then, the individual developer can choose to use whichever editor or IDE that developer is comfortable using.
Kara Swisher is an emotional activist type of journalist and not to be taken seriously. It’s not surprising to see manufactured outrage here.
This looks incredible, thank you for creating it! I have been looking for something exactly like this for a while now
The problem with nil in Go is that there's no ergonomic way to deal with it. Neither the language nor the type system are amenable to anything better. The lack of the ternary operator or any other conditional value expressions means that handling nil properly always adds at least three lines of code for every dot in an expression. Even generics don't help much because "nil" is actually 5 different things (nil pointer, nil slice, nil map, nil channel, nil interface) none of which are interchangeable. And strings can't be nil, which probably seemed like a cool idea at first but now just means you see *string all over APIs even though string is a fat pointer under the hood.
It only matters insofar as it has the potential to cause people some annoyance down the line which they'd likely prefer to avoid.

People don't tend to want to have to actively maintain their old tech any more than they absolutely have to.
Generate tags for your blog posts using AI
Tabby: Self-hosted AI coding assistant
The obvious thing C should do since its syntax is already too rich and complex: create a µC or C- syntax profile which would remove tons of this complexity.

https://news.ycombinator.com/item?id=42657591
:))) Not helpful, but funny I have to admit!
When did you pee or sleep?
> "Have you done what some women are wont to do? They take a live fish and put it in their vagina, keeping it there for a while until it is dead. Then they cook or roast it and give it to their husbands to eat, doing this in order to make the men be more ardent in their love for them. If you have, you should do two years of penance on the appointed fast days."

I'll stick with microplastic-laden seafood, thanks.
> File IO was extremely hard on the early home computers

Speaking as someone who was there at the time: no, it wasn't. Opening a file, reading/writing data to it, and closing it was a straightforward set of operations on the C64 I had. The I/O was slower, of course.
As mentioned in the article all MD’s are back since mid 2023 so zero.
https://archive.ph/rjIbg
> First of all, fuck anyone who is for what Zuck is up to, and may god give you blood to drink.

My least favorite style of polemic writing. Very common with progressives. Immediately assumes no one can have reasonable disagreements about anything in this topic, or they are some sort of blood-drinking satanic sociopath
Hey sex robot, im gonna need some variation in that pitch please lol
This is the linux I remember and loved. I can tolerate it today. In rare cases I configure it back to normal, but only if it’s a great obstacle (like coloring ls output to the background color of a terminal).
How did you find this? Do you inspect element every article you read? I wonder how you would test if this works because I would add it to my website if it does.
> Rust is basically a bag of sensible choices.

Mostly yes. In C/C++, the defaults are usually in the less safe direction for historical reasons.
It sounds funny but it didn't seem to actually have an impact in the ~half dozen LLMs I gave the raw HTML content and asked for a summary with (and that's not even preprocessing the HTML for bits that would make sense to send to the LLM context first). Maybe there are a rare few which decide to interpret such a thing the next task instruction but "ignore all previous instructions" and "print ${thing} >100 times" will typically result in refusals to comply anyways. Particularly because the first is the most basic way to try to avoid a model's "safety" training.
On my personal site (also built with Hugo) I post images of food I have eaten and media I have consumed. I could use Instagram, Bluesky or X but I want the content to be mine and stay mine. And I am doing it because I like to blog things not because I want the interaction on social media.

https://www.planetjones.net/food.html

https://www.planetjones.net/reviews.html
Not my downvote, just the opposite but I think you can do a lot in an office already if you start early enough . . .

At one time I would have said you should be able to have an efficient office operation using regular typewriters, copiers, filing cabinets, fax machines, etc.

And then you get Office 97, zip through everything and never worry about office work again.

I was pretty extreme having a paperless office when my only product is paperwork, but I got there. And I started my office with typewriters, nice ones too.

Before long Google gets going. Wow. No-ads information superhighway, if this holds it can only get better. And that's without broadband.

But that's besides the point.

Now it might make sense for you to at least be able to run an efficient office on the equivalent of Office 97 to begin with. Then throw in the AI or let it take over and see what you get in terms of output, and in comparison. Microsoft is probably already doing this in an advanced way. I think a factor that can vary over orders of magnitude is how does the machine leverage the abilities and/or tasks of the nominal human "attendant"?

One type of situation would be where a less-capable AI could augment a defined worker more effectively than even a fully automated alternative utilizing 10x more capable AI. There's always some attendant somewhere so you don't get a zero in this equation no matter how close you come.

Could be financial effectiveness or something else, the dividing line could be a moving target for a while.

You could even go full paleo and train the AI on the typewriters and stuff just to see what happens ;)

But would you really be able to get the most out of it without the momentum of many decades of continuous improvement before capturing it at the peak of its abilities?
Can you work around it by massively overprovision by partitioning the drive and leaving half of it unallocated? The amount of space you need for an older system like this should be tiny compared to modern storage.
Damn, that's a nice Mustang.

Is a future generation gas-powered Mustang on Ford's plans or is this the last of the line?
I feel this, but with Typescript (coming from jQuery and then ES4/5). I love how it forces you to code well.

You can change your tsconfig to ignore the strictness but I don’t.
As an old person, I’m very much of the mindset, “Keep your mouth shut as much as possible, never air dirty laundry publicly, and don’t pick fights with your company who has infinitely greater legal budget than you do.”

However, I’ve come to seriously respect younger workers who don’t take shit from anyone and will gladly burn a company to the ground on social media if they feel like they are being abused in the workplace.
Traits as CS concept, are part of FP paradigm.

Reverse Uno!
Are you saying it's better for powerful people to make plans and develop ideas in secret? What about government?

At least to some significant degree, the grandstanding has nothing to do with the actual ideas and plans; it's part of the coverup; it's a distraction while the real plans are made. Grandstanders like Trump and Musk often say things they have no intention of following through on.

To the grandstanders, who are really propagandists, words are weapons and not information. And of course, everyone's words are some of each, but the grandstanders are far over toward one endpoint or axis on that graph.
Ok, so assuming for a moment it wasn't that problematic what he said (which it was actually).

So he's sending around angry company-wide memos as an IC which hits the news. And it's not just 100 people who can read it but a significant part of Google which has almost 200,000 employees. Sorry, but this is missing the point.

I've seen people getting fired for less. And it wasn't even related to DEI.

But back to the topic. The content of this memo seems to me a metaphor to what is wrong with "classic IT culture" when talking about DEI etc. I cannot see how implementing this memo would solve anything, on the contrary it would make things worse.
Don’t we all love it when the escape hatch only opens halfway.
Given the tiny filesizes of the games involved, if durability is a worry I’d just overprovision space. SATA SSDs are dirt cheap these days and it’d take ages for an OS 9 install to write to all the cells in a 256GB drive (assuming adequate RAM + disabled virtual memory), let alone with 500GB+ drives.
https://luckylionstudios.com has a ton of royalty-free music, it’s not free, but it’s cheap enough it basically is.
Strange that they do not actually disclose which brands have the high levels, and not sure I understand the logic in this statement:

“We do not disclose the names of companies we test in order to maintain fairness and consistency and to avoid potential conflicts of interest,” Bowen said.

Also note that later in their document (page 8) they do list brands that they certify as clean:

https://cleanlabelproject.org/wp-content/uploads/CleanLabelP...

One cynical take I read on this is that this is a way to get more companies to sign up for their certification.
Technically, the robot has been the human thus far (us). We tell them to point the gun here here and here and shoot.

Everyone's concerned about what AI will bring, but it's worth looking at what past things it shows. We have been robots for real.
I installed Slackware from floppies in a dorm room without Ethernet. Every time a disk turned out bad you had to restart. Down to the lab, make a new copy, back to my dorm, restart. I hated my life multiple hours before I got a clean boot. Jesus fucking Christ.

I think it was Debian that introduced an option to scan all the floppies before starting. I never went back.
Absolutely. Sounds like a slam dunk case. Which is why you sued them for trademark infringement, right? You had them dead to rights because if you google "wordpress hosting", WPEngine is the only site that comes up.

Oh, that didn't happen. Because you know you would lose that case.
Hydrogen isn't so great either.
I do understand the resistance. C is a simple, comfortable language, and its adherents want it to stay that way, warts and all.

But in the context of that, what baffles me is the additions to the C Standard, such as useless (but complicated!) things like normalized Unicode identifiers, things with very marginal utility like generic functions, etc. Why those and not forward declarations?
Love every bit of this type of stuff that mostly only the younger generations are doing. Maybe someday, our society will move away from slaving away in terrible environments to realistically only raise up a handful of humans.
That's amazing to hear super happy it resonates :)
For me it is the excellent tooling. Great package management, good compiler errors, automatic formatting and enforcing if guidelines etc.
Just flag it (probably spyware site) and move on.
Not saying you're wrong, but there is another possible reason. I often see this kind of thing on very local news websites in the USA.

I think it's possible that small-town newspapers simply doesn't believe their local news has any readership in the EU/EEA, but that there is some small chance they could be maliciously targeted for non-compliance with a faraway law.
The key adjective there is "small-scale". There are many more alternatives when size is not an issue. Flywheels are very useful but their energy density is too low to be the primary power source for a vehicle.
Probably better to do it on anonymous social media
Sean Carroll is not really an unbiased party. He has his entire reputation staked on him being right about his own theory, so he's going to simply disagree with anything else, and he's going to disagree with anything that's not a "standard" theory.

He likely believes in the Big Bang too which is an absurd, and disproven theory. There are far too many mature galaxies that are far too old for the Big Bang theory to be correct.
There's a smattering of old Nokia hands at HMD, but in my experience you're likely to find at least a few ex-Nokia people in almost any tech company of note out here. For all its faults as a company it birthed a generation of truly exceptional electrical and embedded engineers, and they in turn have birthed a metric ton of startups in the last decade all over the place.

It looks like HMD Global's headquarters are in Espoo, which is kind of like the Long Island of Helsinki if that makes sense. So they definitely have access to a lot of that human capital if and when they need it.
Oh absolutely, do not disagree.

Though I do think that if one is using old tech, they should be aware of the pitfalls. There was a good run of the capacitor plague, for example. I avoid this equipment in general as I don't have soldering skills (but man oh man, I would love to have a working SE/30! People trying to sell repaired SE/30s on eBay for $1400USD!) to repair them. I know the VRM on my G4 Cube can potentially have issues, as can the power brick. Fortunately there are small batch available replacements should I need them.
> but for multi-threaded code Rust uses smart pointers like C++

That's not the whole story. There's also Send and Sync marker traits, move by default semantic also makes RAII constructs like Mutex<T> less error prone to use.
Toxic bosses are one of the most damaging things you can have in a company. It's counter-intuitive but smart leadership would be thanking these people for exposing the rot in their own companies.
> Match needs to be exhaustive.

When I see people mention C++ with MISRA rules, I just think -- why do we need all these extra rules, often checked by a separate static analysis tool and enforced manually (that comes down to audit/compliance requirement), when they make perfect sense and could be done by the compiler? Missing switch cases happens often when an enum value is modified to include one extra entry and people don't update all code that uses it. Making it mandatory at compiler level is an obvious choice.
HR and Legal work for the company and will often manipulate people and situations to reduce their risks and justify their actions. So this isn’t surprising. But also I think public discussion of issues is the only way for people to move towards defending workplace conditions.
Jamie decided that he gets more out of his vast workforce if they are on site and, given his tenure, he has the data that backs that up.
Best comment of them all.
Grok is X's chatbot that, I guess, he was arguing with about this.
>Few languages have equivalents. (C++ and D are exceptions).

I would say Rust is still better than C++ here, because in Rust const is default. In C++, people often either forget to write const, or intentionally don't write const because writing it everywhere clutters up the code.
> There are other ways to do it, but they are all worse, slower, and less versatile

I would disagree with this, personally. Due to being tacked onto the language after the fact, the design of Rust's async made a number of concessions in order to fit into the language (for example, it had to work around the pre-existing restriction that all types are moveable by default).

But you're correct that no current popular language has yet developed anything better.
I'd hire someone brave enough to stand up for themselves and against a toxic workplace. That's how you affect real change. Sometimes it pays to put ego out the window for something that's radically better.
Nitpick to your nitpick:

You've offered a linguistically prescriptive interpretation that ignores nuance and flexibility of language.

While it may be the case that the canonical "point" of parenthesis is what you've described, the purpose only remains for as long as we culturally accept that definition.

The usage of parenthesis as an aside to indicate a certain emotion somewhat playfully is not only acceptable, it's entered into the cultural zeitgeist. We all understand the meaning. The sentence is complete -- regardless of the rules you've cited -- because the reader doesn't eliminate the parenthesis from their context like a robot, and we have a common understanding of what the aside is trying to communicate.
It actually doesn't come from C++ and what C++ has is worse, the history is interesting.

The move assignment semantic you see in Rust was also retrospectively termed "destructive" move because after the assignment A = B not only is the value from B now in A - that value is gone from B, B was in some sense "destroyed". If we write code which does A = B and then print(B) it won't compile! B is gone now.

Programmers actually really like that, it feels natural (with appropriate compiler support of course) and it doesn't have unexpected horrors to be uncovered.

In C++ they couldn't make that work (without destroying compatibility with existing C++ 98 code) so they invented their own C++ 11 "move" which is this more fundamental move plus making a new hollow object to go in B. This new hollow object allows the normal lifecycle of C++ 98 objects to happen as before - B goes out of scope, it gets destroyed.

So in C++ A = B; print(B) works - but it's not defined to do anything useful, you get some ready to clean up object, if B was a string maybe it's the empty string, if B was a remote file server then... maybe it's an "empty" remote file server? That's awkward.

It's worth understanding that the nicer Rust move isn't a novelty, or something people had no idea they wanted when C++ 11 was standardized, the "destructive" move already existed and was known to be a good idea - but C++ couldn't figure out a way to deliver it.