MurphyA/hacker-news huggingface dataset:
by foobarian | 2025-05-27 21:33:17+00:00
As undergrad students in the 90s we couldn't forage after moveout day, but we did get tons of cool stuff from the CS building loading dock outbound trash heap. My God they were getting rid of some really strange 70s gear. One time we grabbed an old rackmount tape drive - it was enormous. We disassembled it for fun and the thing I remember the most was the cooling fan. It was a squirrel cage blower driven straight from mains power and it blew so hard you could not keep your hand on the exhaust. On. A. Tape. Drive.
by freetime2 | 2025-05-27 21:33:20+00:00
When I moved, I sold some furniture with a local consignment shop [1]. I sent them pictures, and they gave me estimates. They even sent a truck to pick up the furniture, with the transportation cost coming out of the final sale proceeds.

It couldn’t have been simpler, and they mailed me a check when the items finally sold after about a month.

[1] https://thehomeconsignmentcenter.com/location/
by Earw0rm | 2025-05-27 21:33:25+00:00
Copyright law has never clearly and adequately defined the boundary between copying and measuring.

If I measure the length of a song? Not copyright infringement. If I take even a very short sequence of PCM samples, copyright infringement.

But the practical thresholds appear to be different, there's a bunch of ways you can extract kbs' worth of information from a song, some are considered copying (ripping the melody to midi with a converter, say), some are not.

And in the case of "AI", depending on the model it could be extracting and encoding almost anything, because it's a catch-all term encompassing dozens of architectures and methods.
by simonw | 2025-05-27 21:34:39+00:00
Sorry about that! Presumably you're updating via Homebrew? That blows away your virtual environment, hence why the plugins all go missing.

I have an idea to fix that by writing a 'plugins.txt' file somewhere with all of your installed plugins and then re-installing any that go missing - issue for that is here: https://github.com/simonw/llm/issues/575
by slibhb | 2025-05-27 21:35:06+00:00
> Second, why not just put on the street so that other people can come and collect items? This is very common for example here in Switzerland - you put unwanted things ranging from old kid toys to books to furniture on the sidewalk with a sign saying „gratis - zum mitnehmen“ (free to take with you) and people who want/need come and collect them. Only if anything is really unwanted, you take back and throw away.

It's common in the US too.
by avhception | 2025-05-27 21:35:12+00:00
I guess we'll learn in a few years time how that will turn out. Let's hope I'm overly pessimistic.

Keep up the great writing, and don't be afraid to use the words that come to your mind, whether they're "flowery" or not. :)

P.S. I still sometimes think about that phone from the 90s when I'm taking a walk in those woods. It's gotta be in there somewhere! Haha.
by amalcon | 2025-05-27 21:35:22+00:00
> First, why do people throw away tennis shoes, unopened food etc? Why not take with them on to their next destination?

It's very possible for the cost of transport to exceed the value of the goods, especially if one is flying to one's next destination.

> Second, why not just put on the street so that other people can come and collect items?

This I can't help with. As far as I have seen, this is a common practice everywhere in the northeast US. The police don't always love it, but that doesn't really prevent people from doing it.
What's your "coworker didn't lock screen" procedure?
by vonunov | 2025-05-27 21:35:27+00:00
1. Screenshot the desktop

2. Make it the wallpaper

3. Hide icons

4. Autohide the taskbar and move it to the top

5. win+R "control mouse", cursor size all the way up, cursor speed all the way down, mouse trails all the way up

6. ctrl-alt-down
by roadbuster | 2025-05-27 21:35:54+00:00
Undergraduate tuition at Duke starts at $65,000 USD/year. It shouldn't come at any surprise that a lot of spoiled kids who are funded by the International Bank of Mommy & Daddy are apathetic and wasteful.

From: https://www.nytimes.com/interactive/projects/college-mobilit...

"The median family income for a Duke student is $186,700. A significant portion of Duke students, 69%, come from families in the top 20% of earners, according to the Chronicle of Higher Education. Additionally, only 1.6% of students come from low-income backgrounds"
by TallonRain | 2025-05-27 21:36:18+00:00
Yes, pen and paper. The approach is to pseudocode the solution, minor syntax errors aren’t punished (and indeed are generally expected anyway). The point is to simply show that you understand and can work through the concepts involved, it’s not being literally compiled.

Writing a small algorithm with pen & paper on programming exams in universities of all sizes was still common when I was in uni in the 2010s and there’s no reason to drop that practice now.
by gnabgib | 2025-05-27 21:36:45+00:00
Related: Marked decline in semicolons in English books, study suggests (10 points, 6 days ago) https://news.ycombinator.com/item?id=44056344

Unrelated: The origin and virtues of semicolons in programming languages (46 points, 2024, 19 comments) https://news.ycombinator.com/item?id=40038712
by truemotive | 2025-05-27 21:37:48+00:00
If you're working from OpenAPI, ideally you want to be able to process any, potentially full of shit formatting spec file. I find that half the integrations I run into have some old weird version of Swagger, and the rest work like hell to stay up to date with the 3.x spec track.

I agree, I wish, it will be a solved problem eventually. Just feeding a complex data model like that to the paper shredder that is the LLM, for making decisions about whether DELETE or POST is used is just asking for trouble.
by HeyLaughingBoy | 2025-05-27 21:38:11+00:00
Depends on the trash. A co-worker and I would regularly grab prototype machines out of our dumpster. Thousands of dollars of quality electromechanical hardware (motors, precision linear slides, pneumatic cylinders, mini-compressors & solenoid valves, etc.) and big sheets of 6061 aluminum for the taking. Company had to throw it out and tell us not to take back out in order to take the write off.

At one point we upgraded to having an intern standing in the dumpster throwing stuff out to us as we directed him.
by perching_aix | 2025-05-27 21:38:24+00:00
It's always surprising for me to see people regard 60 Hz CRT as "flicker-free", or "minimal flicker", etc. Whenever I saw a CRT running at 60 Hz, I'd be immediately be able to tell. Always used at minimum 75 Hz but preferably 85 Hz at home (early 2000s, Windows).
by ufmace | 2025-05-27 21:38:52+00:00
In my opinion, never mind that stuff, it's enough of a hassle just getting good quality pictures of the thing, figuring out exactly what it is and what a wild guess of a "fair" price would be, writing up some sort of description, dealing with questions and appointments from potential customers. It makes it not worth the time and bother unless you're pretty sure you can get a few hundred bucks for it. Modulo of course how rich or poor you are right now and how much free time you have etc.
by ben_w | 2025-05-27 21:38:55+00:00
If you mean this one: https://www.msn.com/en-gb/news/uknews/why-was-lucy-connolly-...

Then no, she was jailed for calling for incitement to commit crimes.

If you mean this one: https://en.wikipedia.org/wiki/Twitter_joke_trial

Then I'd say essentially yes, despite it being a fine and not imprisonment and getting quashed later anyway, because most of us aren't lawyers and won't care about that kind of distinction — and that goes double for students on a visa.
by zbentley | 2025-05-27 21:39:32+00:00
It uses a huge amount of what I’m terming “getattr bullshit”: many/most fields of ORM objects are only determined at runtime (they’re technically determinABLE at early runtime during Django initialization, but in practice are often not actually visible via reflection until they are first used due to lazy caching).

What fields are present and what types they have is extremely non uniform: it depends heavily on ORM objects’ internal configuration and the way a given model class relates to other models, including circular dependencies.

(And when I say “fields” here, I’m not only referring to data fields; even simple models include many, many computed method-like fields, complex lazily-evaluatable and parametrizable query objects, fields whose types and behavior change temporally or in response to far-distant settings, and more).

Some of this complexity is inherent to what ORMs are as a class of tool—many ORMs in all sorts of languages provide developer affordances in the form of highly dynamic, metaprogramming-based DSL-ish APIs—but Django really leans in to that pattern more than most.

Add to that a very strong community tendency to lazily (as in diligence, not caching) subclass ORM objects in ways that shadow computed fields—and often sloppily override the logic used to compute what fields are available and how they act—and you have a very thorny problem space for type checkers.

I also want to emphasize that this isn’t some rare Django power-user functionality that is seldom used, nor is it considered deprecated or questionable—these computed fields are the core API of the Django ORM, so not only are they a moving target that changes with Django (and Django extension module) releases, but they’re also such a common kind of code that even minor errors in attempts to type-check them will be extremely visible and frustrating to a wide range of users.

None of that should be taken as an indictment of the Django ORM’s design (for the most part I find it quite good, and most of my major issues with it have little to do with type checking). Just trying to answer the question as directly as possible.
by bryanlarsen | 2025-05-27 21:39:59+00:00
According to https://wiki.neogeodev.org/index.php?title=68k_instructions_... the 32 bit register add on the 68000 is faster (6 cycles) than the 16 & 8 bit register add (8 cycles).

Most 32 bit operations are slower than 16 bit operations because the external data bus is only 16 bits and most operations use the external data bus. But simple internal ops are faster at 32 bits, so that seems to indicate the 68000 is 32 bit internally.
by bluGill | 2025-05-27 21:40:30+00:00
There are several problems with that.

One, if everyone is doing something different from the spec it is hard to figure out what they are really doing and what they mean. Long term you have confidence things will continue to work even when someone else writes their own version which otherwise might also deviate from the spec.

Two, it is easier to modify the spec as more features are dreamed up if you have confidence that the spec is boss meaning someone else didn't already use that field for something different (which you may not have heard about yet).

Three, if you agree to a spec you can audit it (think security), if nobody even knows what the spec is that is much harder.

Following the spec is harder in the early days. You have to put more effort into the spec because you can't discover a problem and just patch it in code. However the internet is far past those days. We need a spec that is the rule that everyone follows exactly.
by dmurray | 2025-05-27 21:40:50+00:00
list[int | str] might usually be a mistake, but what about

my_list = [BarWidget(...), FooWidget(...)] ?

my_list.append(BazWidget(...))

my_list.append(7)

Wouldn't it be nice if the type checker could infer the type hint there, which is almost certainly intended to be list[Widget], and allow the first append and flag the second one?
by math_dandy | 2025-05-27 21:41:30+00:00
Cool, I had not heard about this. Adding this paper to my machine learning teaching bibliography.

Even though the start of the deep learning renaissance is typically dated to 2012 with Alexnet, things were in motion week before that. As you point out, GPU training was validated at least 8 years previously. Concurrently, some very prescient researchers like Li were working hard to generate large scale datasets like ImageNet (CVPR 2009, https://www.image-net.org/static_files/papers/imagenet_cvpr0...). And in 2012 it all came together.
by ogoffart | 2025-05-27 21:41:59+00:00
I actually wrote Rust bindings for Qt a while back: https://github.com/woboq/qmetaobject-rs/. I'm curious to see how Qt's own take with Qt Bridges will work out. That said, I’ve since moved on and now work on Slint [https://github.com/slint-ui/slint]

Slint was created with the same idea as what drives "Qt Bridges". We made a UI toolkit that is language-agnostic from the start. Slint uses its own UI language (inspired by QML), and gives you first-class, idiomatic APIs in Rust, C++, Pyhton, and JavaScript. And a clean separation between UI and business logic.
by mjr00 | 2025-05-27 21:42:13+00:00
> Following the general stupidness of the post: they are now unable to do that because a security consultant said they have to enable and can not break RUFF rule ANN401: https://docs.astral.sh/ruff/rules/any-type/

Okay, then your function which is extremely generic and needs to support 25 different use cases needs to have an insane type definition which covers all 25 use cases.

This isn't an indictment of the type system, this is an indictment of bad code. Don't write functions that support hundreds of input data types, most of which are unintended. Type systems help you avoid this, by the way.
by Suppafly | 2025-05-27 21:42:31+00:00
>Whenever I saw a CRT running at 60 Hz, I'd be immediately be able to tell. Always used at minimum 75 Hz but preferably 85 Hz at home (early 2000s, Windows).

Same, I remember installing some program that would let you quickly change the display settings on basically every computer I ever interacted with. It was especially bad if the crt was in a room with fluorescent lighting.
by tibbar | 2025-05-27 21:42:45+00:00
> You cannot possibly know if your condensed version is accurate or sufficient if you can't point to the author of it and definitively state that they knew the original material well enough to summarize it.

I don't understand how this relates to the article. The author is not presenting himself as an expert on database indices, nor is the purpose of the article to educate people on database indices. If anything, he's illustrating techniques for dealing with technology when you're not an expert.

> I also continue to push back on the idea that [backend] devs shouldn't need to know SQL extremely well

The article isn't about any particular technology or type of software engineer, either -- this is just an example. We all have to use technologies that we're not world-class experts in, and part of being a professional engineer is learning ways to deal with that sad reality.

--

Edit to add: I do feel a certain sympathy/resonance for your claim that people should be really competent at the tools/tech they're using, and it's strictly "better" for everyone. But we also live in a world where the complexity and depth of software stacks is increasing rapidly, and developers often have to prioritize breadth over depth. (And yes I have seen a lot of people shoot their foot off with poorly-informed use of databases :/)
by monocasa | 2025-05-27 21:42:59+00:00
> First, why do people throw away tennis shoes, unopened food etc? Why not take with them on to their next destination?

At my wife's alma mater, the way move out in the dorms worked was that you had 24hrs after your last final and then had to be gone. That didn't really leave a lot of time for a lot of people that had maybe two checked bags and a carry on to work with, and had spent the previous time focused on studying for their finals.
by simonw | 2025-05-27 21:43:45+00:00
I have syntax highlighting for blocks of Python code - e.g. this one https://simonwillison.net/2025/May/27/llm-tools/#tools-in-th... - is that not visible enough?

This post has an unusually large number of code blocks without syntax highlighting since they're copy-pasted outputs from the debug tool which isn't in any formal syntax.
by layer8 | 2025-05-27 21:43:49+00:00
From the FAQ it sounds like it may take a few months:

“The first batch of selfies should be returning mid-summer and we will email you ahead of time. If you want to jump closer to the front of the queue and not wait a few months, please make sure you are an active CrunchLabs subscriber (Build Box, Hack Pack). Or, if you're an educator, send an email to help@crunchlabs.com and let us know that your selfie is a class photo and we'll take your selfie first!”
by bluGill | 2025-05-27 21:44:23+00:00
Have you ever seen something running at 30 Hz? Or even 15? The difference in flicker between 30 and 60 is much much larger than the difference between 60 and 120! Yeah 60 isn't flicker free, any finite number is not (there is probably quantum limits), but realistically you reach a point where you can't really tell. For most purposes 60Hz is close enough, though you can still tell.
by nikcub | 2025-05-27 21:45:15+00:00
There is a professional gambler in Australia[0] who has the betting companies _compete_ for his business and offer him rebates on volume. His firm is double-digit percentage of the Australian betting market and employs ~hundreds of professional traders, developers etc. (it operates no diff to a hedge fund).

As an aside - it was his firm that was responsible for the recent "breaking" of the Texas lottery[1]

[0] https://en.wikipedia.org/wiki/Zeljko_Ranogajec

[1] https://www.houstonchronicle.com/news/investigations/article...
by aerophilic | 2025-05-27 21:45:19+00:00
My kids have loved watching Mark Robers videos, have the subscriptions (one of both the backpack and crunchpack), and we uploaded our video for SatGus.

If you have young kids (6-15) these are perfect educational tools. Highly recommend. Only downside is some of them are a bit “mischievous”. For example a “Bobbie trap” that launches balls at whomever tripped the wire. Good times…
by echelon | 2025-05-27 21:45:38+00:00
Not necessarily!

These are the strong vs weak, static vs dynamic axes.

You probably want strong, but dynamic typing. eg., a function explicitly accepts only a string and won't accept or convert a float into a string implicitly or magically.

You're free to bind or rebind variables to anything at any time, but using them in the wrong way leads to type errors.

JavaScript has weak dynamic typing.

Python has strong dynamic typing (though since types aren't annotated in function definitions, you don't always see it until a type is used in the wrong way at the leaves of the AST / call tree).

Ruby has strong dynamic typing, but Rails uses method_missing and monkey patching to make it weaker though lots of implicit type coercions.

C and C++ have weak static typing. You frequently deal with unstructured memory and pointers, casting, and implicit coercions.

Java and Rust have strong static typing.
by DerekL | 2025-05-27 21:45:39+00:00
> When I heard that the image (Wall-e) of the fat people on board the spaceship, sitting, and consuming 24/7 (food, drinks, 'content' on their VR headsets).

The people in Wall-E don't use VR headsets, at least not most of the time. Instead, images are projected onto thin air in front of their faces.
by coderintherye | 2025-05-27 21:45:57+00:00
Will be interesting to see if these get pair up with Verifiable Credentials.

My real world use case for emblems would be to have an ability to place an emblem on a website that is verifiably provable as having been offered to the website by the emblem provider, for example a "Secured By Acme, Inc" emblem which Acme, Inc. only provides me use of the website is actually secured by their software.
by th0ma5 | 2025-05-27 21:46:51+00:00
"LLM was used to find" is not what they did

> had I used o3 to find and fix the original vulnerability I would have, in theory [...]

they ran a scenario that they thought could have lead to finding it, which is pretty much not what you said. We don't know how much their foreshadowing crept into their LLM context, and even the article says it was also sort of chance. Please be more precise and don't give into these false beliefs of productivity. Not yet at least.
by RyanOD | 2025-05-27 21:46:53+00:00
My older brother was a student at U of Michigan. Back in the late '80s, he salvaged a blue Gibson Destroyer copy from the end of the year purge. We're both still playing guitar to this day.

When I was in college at Michigan State, the local pizza joints (Hungry Howies and Gumby's) had a "collect 10 tabs, get a free pizza" promo going on. Every Wednesday, my roommate and I went to all our dorm dumpsters and came home with 40-50 tabs. We ate free pizza all year.
by pavon | 2025-05-27 21:46:57+00:00
The article didn't nail down an exact reason. Here is my guess. The quote from Andy Hertzfeld suggests the limiting factor was the memory bandwidth not the memory volume:

> The most important decision was admitting that the software would never fit into 64K of memory and going with a full 16-bit memory bus, requiring 16 RAM chips instead of 8. The extra memory bandwidth allowed him to double the display resolution, going to dimensions of 512 by 342 instead of 384 by 256

If you look at the specs for the machine, you see that during an active scan line, the video is using exactly half of the available memory bandwidth, with the CPU able to use the other half (during horizontal and vertical blanking periods the CPU can use the entire memory bandwidth)[1]. That dictated the scanline duration.

If the computer had any more scan lines, something would have had to give, as every nanosecond was already accounted for[2]. The refresh rate would have to be lower, or the blanking periods would have had to been shorter, or the memory bandwidth would have to be higher, or the memory bandwidth would have had to be divided unevenly between the CPU and video which was probably harder to implement. I don't know which of those things they would have been able to adjust and which were hard requirements of the hardware they could find, but I'm guessing that they couldn't do 384 scan lines given the memory bandwidth of the RAM chips, and the blanking times of the CRT they selected, if they wanted to hit 60Hz.

[1]https://archive.org/details/Guide_to_the_Macintosh_Family_Ha...

[2]https://archive.org/details/Guide_to_the_Macintosh_Family_Ha...
Ask HN: Possible or Fantasy?
by ge96 | 2025-05-27 21:47:33+00:00
Imagine if you sent an image with encoded info (steganography) and an LLM or CV model happened to get the command from that image, then this model happened to be connected to MCP/agents and could execute these embedded commands.

Realistic attack vector or not? It's not an original idea seen in shows like Ghost in the Shell SAC 2045 and latest Black Mirror Thronglets
by walterbell | 2025-05-27 21:48:09+00:00
Among other reasons, 2022 Section 174 tax changes require 15 years of depreciation for non-US software engineering ("R&D") expenses, vs 5 years for US workers, https://hn.algolia.com/?query=Section%20174. There's currently a proposal in Congress to restore US R&D tech worker salary depreciation to one year, for the 2026-2030 period.
by Suppafly | 2025-05-27 21:48:33+00:00
This happens at every university on move out day, especially if they have a lot of international students that need to fly out of the country.

>Second, why not just put on the street so that other people can come and collect items?

Often they are, but most of the people already have their own stuff and limited space for additional stuff. When I lived in a dorm, anything larger items you didn't want you could put on the 3rd floor lounge area and the school would donate or dispose of them. Any other students were free to take that stuff, but unless you had preplanned to have a truck or uhaul, you could only take so much.
by ValentineC | 2025-05-27 21:48:34+00:00
I donate my time and some money to my local hackerspace [1], and encourage everyone to make a recurring financial contribution to theirs whether they use it or not, especially if it's run as a non-profit/not-for-profit, because we need more Third Places [2] in this world.

[1] https://hackerspaces.org

[2] https://en.wikipedia.org/wiki/Third_place