Hacker News new | past | comments | ask | show | jobs | submit login

I admire your work. Can I ask how you deal with upkeep? I can't possibly keep updating software to deal with new JavaScript versions, and fielding reports like, "It fails on xx browser running on yy platform" are a real impediment to progress.



I've been thinking about how to solve this problem, which Konrad Hinsen calls "software collapse". I think we can define an "archival virtual machine" specification that is efficient enough to be usable but simple enough that it never needs to be updated and is easy to implement on any platform; then we can compile our explorable explanations into binaries for that machine. Thenceforth we only need to write new implementations of the archival virtual machine platform as new platforms come along: JavaScript, WebAssembly, PostmarketOS, or whatever.

Here are some of the things I've written about this in the recent past, though I seem to be suffering from profoundly pathological levels of analysis paralysis:

https://dercuano.github.io/notes/uvc-archiving.html

https://dercuano.github.io/notes/archival-vm.html

https://derctuo.github.io/notes/veskeno-outline.html

https://news.ycombinator.com/item?id=32218329

I think there will always be a hard core of explorables that really need the performance of a modern computer to express what you want to express, but I think there are a huge number that aren't, and for which the penalty of running 10x or 100x slower than they would in JavaScript with WebGL is worth the benefit of lasting forever without any maintenance.

For things that have some direct real-world applicability, like solving a sparse linear system (that isn't too large) or estimating the transmittance spectrum of a slice of the atmosphere, this kind of reproducibility seems even more important to me than for tutorial material.


I think that it was this kind of thinking which led to the Java Virtual Machine. Not for the specifical problem of archiving, of course, but for portability, which is almost the same problem. Archiving is just porting to a future platform.


Archiving is porting to platforms that are created after you die, which makes it harder to test on them, which in turn can make the porting task harder in some ways.

I did mention the JVM in two out of four of the notes I linked there, and it was certainly an influential step in the direction I'm going, but I'm aiming for deeper levels of reproducibility than the JVM tries to offer.


I'm surprised by how little attention I/O has gotten in the posts you linked.


I haven't much upkeep or compatibility issues. There are a few people that have started working on translations. I imagine they might need some help. In general though, it's a simple site with no server communication, running on github pages, with almost no libraries.

I use the site for my own students when I teach physics, and they catch a few typos and bugs each semester.


Thanks.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: