frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

Hidden interface controls that affect usability

https://interactions.acm.org/archive/view/july-august-2025/stop-hiding-my-controls-hidden-interface-controls-are-affecting-usability
446•cxr•11h ago•243 comments

Overthinking GIS (2024)

https://scottsexton.co/post/overthinking_gis/
26•todsacerdoti•2h ago•3 comments

MI5’s falsehoods in the case of neo-Nazi spy who abused women

https://www.bbc.com/news/articles/c3w4nwdwywno
67•_tk_•1h ago•18 comments

Local-first software (2019)

https://www.inkandswitch.com/essay/local-first/
706•gasull•20h ago•230 comments

Take Two: Eshell

http://yummymelon.com/devnull/take-two-eshell.html
32•nanna•3d ago•15 comments

July 5, 1687: When Newton explained why you don't float away

https://multiverseemployeehandbook.com/blog/when-newton-explained-why-you-dont-float-away/
50•TMEHpodcast•6h ago•39 comments

Eastern Baltic cod grow much smaller than they did due to overfishing

https://www.smithsonianmag.com/smart-news/these-cod-have-been-shrinking-dramatically-for-decades-now-scientists-say-theyve-solved-the-mystery-180986920/
195•littlexsparkee•15h ago•62 comments

What a Hacker Stole from Me

https://mynoise.net/blog.php
179•wonger_•12h ago•41 comments

Nothing's untestable

https://antithesis.com/blog/2025/bugbash_2025/mitchell_hashimoto/
9•zdw•3d ago•1 comments

How to Network as an Introvert

https://aginfer.bearblog.dev/how-to-network-as-an-introvert/
191•agcat•13h ago•77 comments

Are we the baddies?

https://geohot.github.io//blog/jekyll/update/2025/07/05/are-we-the-baddies.html
321•AndrewSwift•5h ago•191 comments

Development of a transputer ISA board

https://nanochess.org/transputer_board.html
27•nanochess•2d ago•2 comments

How Stablecoins Became the Digital Gold Standard

https://www.haebom.dev/archive?tl=en&post=943zqpmqrk14g2wnvy87
32•haebom•2h ago•26 comments

The Force-Feeding of AI on an Unwilling Public

https://www.honest-broker.com/p/the-force-feeding-of-ai-on-an-unwilling
74•imartin2k•4h ago•59 comments

Serving 200M requests per day with a CGI-bin

https://simonwillison.net/2025/Jul/5/cgi-bin-performance/
161•mustache_kimono•10h ago•113 comments

Volvo delivers 5,000th electric semi

https://electrek.co/2025/06/29/volvo-delivers-5000th-electric-semi-with-little-fanfare-sending-a-big-message/
153•JumpCrisscross•8h ago•68 comments

Europe's first geostationary sounder satellite is launched

https://www.eumetsat.int/europes-first-geostationary-sounder-satellite-launched
190•diggan•20h ago•40 comments

macOS Icon History

https://basicappleguy.com/basicappleblog/macos-icon-history
192•ksec•19h ago•75 comments

ClojureScript from First Principles [video]

https://www.youtube.com/watch?v=An-ImWVppNQ
72•puredanger•3d ago•15 comments

Optimizing Tool Selection for LLM Workflows with Differentiable Programming

https://viksit.substack.com/p/optimizing-tool-selection-for-llm
93•viksit•14h ago•34 comments

X-Clacks-Overhead

https://xclacksoverhead.org/home/about
233•weinzierl•4d ago•56 comments

"Swiss Cheese" Failure Model

https://www.bookofjoe.com/2025/07/swiss-cheese-failure-model.html
7•surprisetalk•3d ago•2 comments

What makes someone cool? A new study offers clues

https://www.nytimes.com/2025/06/30/well/mind/cool-people-traits-study.html
11•_tk_•1h ago•1 comments

Speeding up PostgreSQL dump/restore snapshots

https://xata.io/blog/behind-the-scenes-speeding-up-pgstream-snapshots-for-postgresql
120•tudorg•18h ago•29 comments

Show HN: a community for collaborating on sideprojects

https://relentlessly.no/
21•0dKD•3d ago•10 comments

Techno-feudalism and the rise of AGI: A future without economic rights?

https://arxiv.org/abs/2503.14283
153•lexandstuff•13h ago•123 comments

Yet Another Zip Trick

https://hackarcana.com/article/yet-another-zip-trick
60•todsacerdoti•3d ago•17 comments

Fast Code Is Easy. Measuring It Is Hard

https://www.architect.co/posts/how-fast-is-it-really
30•auc•3d ago•12 comments

Injection Rejection (2006)

https://thedailywtf.com/articles/Injection_Rejection
39•dontTREATonme•7h ago•16 comments

Atomic "Bomb" Ring from KiX (1947)

https://toytales.ca/atomic-bomb-ring-from-kix-1947/
75•gscott•3d ago•22 comments
Open in hackernews

ClojureScript from First Principles [video]

https://www.youtube.com/watch?v=An-ImWVppNQ
72•puredanger•3d ago

Comments

cjohnson318•8h ago
Thanks, I was just looking for ClojureScript material!
tekacs•7h ago
I was in the audience, asking the question at the end of the video!

I didn't quite get the question across and got an answer to a different question, so to re-state my actual question (that I asked David later), I was curious how heavy a lift it would be to preserve enough information in production ClojureScript compilation to allow re-hydrating. The aim being to re-hydrate enough in production that e.g. in the event of issues or errors, you might attach a REPL to that production build and poke at it.

The answer (which I mostly knew/expected) is... quite a heavy lift. I can imagine some possible solutions, but I'm mostly-Rust nowadays, so no solution from me soon. :)

I also really recommend the other [1] talks [2] from this event!

[1]: https://youtu.be/8K4IdE89IRA (Aaron, on using lenses, this sorta stuff [3])

[2]: https://youtu.be/fcSJAuUGVs8 (Ben, on a core.async error handling strategy that I had totally missed and totally changes the ergonomics of using c.a!)

[3]: https://github.com/tekacs/factor/blob/master/src/factor/lens...

billfruit•7h ago
What do you mean by re-hydrate?
geokon•4h ago
https://en.wikipedia.org/wiki/Hydration_(web_development)
ethan_smith•39m ago
Shadow-cljs offers partial solutions to this with its runtime code reloading capabilities and source-maps in production, though true REPL attachment to production builds remains challenging due to the optimization/debug information tradeoff.
diggan•27m ago
I'm not sure what "REPL attachment to production build" would look like in terms of a client-side program like this?

Usually what I do in my ClojureScript programs is saving all the actions the user do into localStorage, offer a "Report Issue" button that shows a form with a description input, and submitting that form also submits the data from localStorage. Sometimes I also include the full app-state in there too, but often isn't even needed if the application is simple enough.

If you're using libraries like re-frame or similar, you basically get that for free, just need to persist the events somehow and associate them with a session/user.

So replicating issues that happened in the production build is a matter of replaying those same actions locally. Don't remember having any issues with this approach, and if you end up in the scenario where the same actions only trigger an error in the production build, then run that build locally but with sourcemaps and you'll be able to track down the issue quickly enough.

chamomeal•7h ago
This is such a good intro to clojurescript in general. I’ve dabbled in clojure for a few months, and CLJS seems really cool but also really confusing to get into. It’s got a whole ecosystem to itself.

Now I’m SUPER excited to try cljs!! It’s crazy how modern it is despite being kinda old in webdev terms

ingen0s•1h ago
Deffinitly cool, I am sold (100 years later...)
amadeuspagel•1h ago
The way he shows off his REPL in VS code that controls the browser just reminds me how absurd this workflow of constantly switching between the browser and the IDE is, and it's even more absurd since VS code is an electron app, so you're really switching between chrome and chrome.
fud101•49m ago
Right? I'm waiting for that vscode with a browser built in to making crud apps a bit easier. Not yet another stochastic parrot which adds nothing to the heap.
diggan•33m ago
Back in 2016 (holy shit, ~ten years ago?!) when Atom was the editor of choice, I built a small extension that let you preview and interact with React components inside of the editor: https://github.com/victorb/atom-react-preview

I don't use Atom or Visual Studio Code today, nor much JavaScript, and my most-used language kind of gives me this for free nowadays (ClojureScript) but I expected there would be entire businesses today offering the functionality I built back in 2016, but as a all-in-one package with even more bells and whistles. There is so much we could do to make the experience better.

It seems to me like "interactive development" is just a thing for some section of programmers. Personally I couldn't live without my repl-connected editor, but judging by the amount of people who live and swear by the "edit -> compile -> view -> repeat" loop they spend all day doing, it seems like not everyone is wired the same.

dustingetz•29m ago
a problem with a repl-centric approach to crud apps is that the repl is not reactive. It is a good fit for request/response pure function backend programming. But UIs are not pure functions, they have a deeply effectful nature, and being reactive all those effects are highly “situated” if you will (to use Rich Hickey’s word). IMO this is a severe impedance mismatch at the core of Clojure’s design. We simultaneously want to write small functions that can be explored in the REPL and we also want to write in-situ functions with complex dependencies in scope. ClojureScript users are running in circles for a decade trying to turn the latter into the former to make the REPL work again but it’s a mirage, the REPL is just not a fit for a deeply situated problem domain. An example of this impedance surfacing in backend programming is a nontrivial map/reduce pipeline. What is the shape of the document at stage six? How do I manifest one to play at the REPL? Clojure doesn’t have great answers to this.
diggan•24m ago
> But UIs are not pure functions

Most of us (developers using ClojureScript) are using React or similar "view-as-a-function" libraries, where the UI is essentially built from pure(-ish) functions.

I'm using the REPL as effectively with ClojureScript + Reagent as I would with any Clojure program. The only thing that matters is how you structure your application, and it's certainly possible to iteratively develop frontend applications with ClojureScript just like what we do with Clojure.

dustingetz•18m ago
UI is not just DOM it is also network connections, events from the user, and local state. React only datafies the DOM orchestration. The UI=f(state) composition model fails at all of these points, most vividly at the network boundary, but does not include answers for the other domains I listed as well.
diggan•11m ago
Right, but when actually working on UIs, do you need to replay the actual side-effects of those things, or just whatever happened before/after of that?

Personally I split those things up into two parts, and only iterate on the UI with "static data" that either exists before, during or after. So testing/iterating on things like "Click button, loading animation plays while network request is in flight, show success/failure" is essentially 4-5 "static" states, and you don't really have to care about what happens in-between much except for corner-cases.