frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

LLM from scratch, part 28 – training a base model from scratch on an RTX 3090

https://www.gilesthomas.com/2025/12/llm-from-scratch-28-training-a-base-model-from-scratch
189•gpjt•6d ago•31 comments

Show HN: AlgoDrill – Interactive drills to stop forgetting LeetCode patterns

https://algodrill.io
52•henwfan•2h ago•35 comments

The Joy of Playing Grandia, on Sega Saturn

https://www.segasaturnshiro.com/2025/11/27/the-joy-of-playing-grandia-on-sega-saturn/
80•tosh•4h ago•39 comments

Transformers know more than they can tell: Learning the Collatz sequence

https://www.arxiv.org/pdf/2511.10811
24•Xcelerate•5d ago•2 comments

Why frozen test fixtures are a problem on large projects and how to avoid them

https://radanskoric.com/articles/frozen-test-fixtures
12•amalinovic•1h ago•6 comments

ZX Spectrum Next on the Internet: Xberry Pi ESP01 and Pi Zero Upgrades

https://retrogamecoders.com/zx-spectrum-next-on-the-internet-xberry-pi-esp01-and-pi-zero-upgrades/
18•ibobev•2h ago•0 comments

Icons in Menus Everywhere – Send Help

https://blog.jim-nielsen.com/2025/icons-in-menus/
629•ArmageddonIt•18h ago•263 comments

Epsilon: A WASM virtual machine written in Go

https://github.com/ziggy42/epsilon
72•ziggy42•1w ago•23 comments

A deep dive into QEMU: The Tiny Code Generator (TCG), part 1 (2021)

https://airbus-seclab.github.io/qemu_blog/tcg_p1.html
27•costco•1w ago•1 comments

The universal weight subspace hypothesis

https://arxiv.org/abs/2512.05117
309•lukeplato•13h ago•106 comments

Kroger acknowledges that its bet on robotics went too far

https://www.grocerydive.com/news/kroger-ocado-close-automated-fulfillment-centers-robotics-grocer...
195•JumpCrisscross•13h ago•186 comments

Manual: Spaces

https://type.today/en/journal/spaces
82•doener•13h ago•9 comments

No ARIA is better than bad ARIA

https://www.w3.org/WAI/ARIA/apg/practices/read-me-first/
90•robin_reala•6d ago•56 comments

Show HN: I built a system for active note-taking in regular meetings like 1-1s

https://withdocket.com
107•davnicwil•15h ago•91 comments

Jepsen: NATS 2.12.1

https://jepsen.io/analyses/nats-2.12.1
386•aphyr•19h ago•143 comments

Brent's Encapsulated C Programming Rules (2020)

https://retroscience.net/brents-c-programming-rules.html
11•p2detar•2h ago•6 comments

Constructing the Word's First JPEG XL MD5 Hash Quine

https://stackchk.fail/blog/jxl_hashquine_writeup
5•luispa•1w ago•1 comments

Strong earthquake hits northern Japan, tsunami warning issued

https://www3.nhk.or.jp/nhkworld/en/news/20251209_02/
332•lattis•23h ago•152 comments

Microsoft increases Office 365 and Microsoft 365 license prices

https://office365itpros.com/2025/12/08/microsoft-365-pricing-increase/
411•taubek•1d ago•481 comments

Has the cost of building software dropped 90%?

https://martinalderson.com/posts/has-the-cost-of-software-just-dropped-90-percent/
320•martinald•18h ago•493 comments

AMD GPU Debugger

https://thegeeko.me/blog/amd-gpu-debugging/
263•ibobev•21h ago•49 comments

Let's put Tailscale on a jailbroken Kindle

https://tailscale.com/blog/tailscale-jailbroken-kindle
299•Quizzical4230•21h ago•73 comments

Launch HN: Nia (YC S25) – Give better context to coding agents

https://www.trynia.ai/
121•jellyotsiro•20h ago•77 comments

Trials avoid high risk patients and underestimate drug harms

https://www.nber.org/papers/w34534
140•bikenaga•18h ago•46 comments

IBM to acquire Confluent

https://www.confluent.io/blog/ibm-to-acquire-confluent/
413•abd12•1d ago•333 comments

Horses: AI progress is steady. Human equivalence is sudden

https://andyljones.com/posts/horses.html
464•pbui•13h ago•383 comments

Paramount launches hostile bid for Warner Bros

https://www.cnbc.com/2025/12/08/paramount-skydance-hostile-bid-wbd-netflix.html
342•gniting•23h ago•361 comments

Hunting for North Korean Fiber Optic Cables

https://nkinternet.com/2025/12/08/hunting-for-north-korean-fiber-optic-cables/
265•Bezod•21h ago•103 comments

Cassette tapes are making a comeback?

https://theconversation.com/cassette-tapes-are-making-a-comeback-yes-really-268108
114•devonnull•5d ago•202 comments

A thousand-year-long composition turns 25 (2024)

https://longplayer.org/news/2024/12/31/a-thousand-year-long-composition-turns-25/
28•1659447091•6h ago•5 comments
Open in hackernews

Why frozen test fixtures are a problem on large projects and how to avoid them

https://radanskoric.com/articles/frozen-test-fixtures
11•amalinovic•1h ago

Comments

radanskoric•30m ago
Author here, thanks for posting. :)
jrochkind1•25m ago
factories definitely are the cause of my test suite being slower than I'd like, I've been thinking of switching to fixtures. Good to see some context of what challenges I might be dealing with instead if I do.
radanskoric•8m ago
Author here. I'm a big fan of factories but the slowness is a real drag on large test suites. If you're considering switching, remember that you can do it gradually, there's no law against using both fixtures and factories in the same project, in some cases (mostly on very complex domain data models) even makes sense: fixtures for the base setup that all tests share, factories for additional test specific records.

Btw, I also have an article with some of my learnings using factories and I make a remark on how it helps with test speed: https://radanskoric.com/articles/test-factories-principal-of...

RHSeeger•23m ago
Example 1 bothers me. It says

> This test has just made it impossible to introduce another active project without breaking it, even if the scope was not actually broken. Add a new variant of an active project for an unrelated test and now you have to also update this test.

And then goes on to test that the known active projects are indeed included in what the call to Project.active returns.

However, that doesn't test that "active scope returns active projects". Rather, it tests that

- active scope returns _at least some of the_ active projects, and

And it does not test that

- active scope returns _all_ of the active projects

- active scope does not return non-active projects

Which, admittedly, is only different because the original statement is ambiguous. But the difference is that the test will pass if it returns non-active projects, too; which probably is not the expected behavior.

I prefer to set things up so that my test fixtures (test data) are created as close to the test as possible, and then test it in the way the article is saying is wrong (in some cases)... ie, test that the call to Project.active returns _only_ those projects that should be active.

Another option would be to have 3 different tests that test all those things, but the second one (_all_ of the active projects) is going to fail if the text fixture changes to include more active projects.

radanskoric•12m ago
Author here. Thanks for writing up your thoughts on this!

The "doesn't include non-active projects objections is easy", please check the Example 1 test again, there's a line for that:

``` refute_includes active_projects, projects(:inactive) ```

Hm, if you missed it, perhaps I should have emphasised this part more, maybe add a blank line before it ...

Regarding the fact that the test does not check that the scope returns "all" active projects, that's a bit more complex to address but let me let tell you how I'm thinking about it:

The point of tests is to validate expected behaviours and prevent regressions (i.e. breaking old behaviour when introducing new features). It is impossible for tests to do this 100%. E.g. even if you test that the scope returns all active projects present in the fixtures that doesn't guarantee that the scope always returns all active projects for any possible list of active projects. If you want 100% validation your only choice is to turn to formal proof methods but that's whole different topic.

You could always add more active project examples. When you write a test that is checking that "Active projects A,B and C" are returned that is the same test as if your fixtures contained ONLY active projects A,B and C and then you tested that all of them are returned. In either case it is up to you to make sure that the projects are representative.

So by rewriting the test to check: 1. These example projects are included. 2. These other example projects are excluded.

You can write a test that is equally powerful as if you restricted your fixtures just to those example projects and then made an absolute comparison. You're not loosing any testing power. Expect you're making the test easier to maintain.

Does that make sense? Let me know which part is still confusing and I'll try to rephrase the explanation.

Tknl•21m ago
This makes me think of https://github.com/AutoFixture/AutoFixture