HN user

joek1301

75 karma

www: https://kerrigan.dev

Posts9
Comments29
View on HN

One hypothetical approach I could imagine, is that a dependency major-version release of a package can ship with AST-rewriting-algorithm code migrations

Jane Street has something similar called a "tree smash" [1]. When someone makes a breaking change to their internal dialect of OCaml, they also push a commit updating the entire company monorepo.

It's not explicitly stated whether such migrations happen via AST rewrites, but one can imagine leveraging the existing compiler infrastructure to do that.

[1] https://signalsandthreads.com/future-of-programming/#3535

I actually wasn't aware of this either.

Z3 is fine with it--its job is to find any satisfying model. The possible outcomes are "the puzzle is solvable and here's a solution" or "the puzzle isn't solvable."

It defines a new infix data constructor. So if `it` and `ct` are values of type `ITerm` and `CTerm` respectively, `it :@: ct` is a value of type `ITerm`. (It could have been written using a prefix operator like `ITerm`'s other data constructors.)

Does the distinction between sharing VA mappings and copying buffers to/from kernel matter from a security perspective? (I assume it does, but I don't know why.)

[dead] 4 years ago

Also, in many cases, implementation details like cache locality mean that asymptotically inferior algorithms can in practice outperform those with a lower theoretical runtime complexity.

As an aside, there was an interesting recent episode of the AWS FM podcast where a guest was rendering dynamic HTML from Lambda functions and seemed incredibly satisfied with the results. (Unfortunately the recent episodes lack transcripts and I cannot easily verify, but I think it was Episode 17 with Brian LeRoux.) This is a use case I haven't seen get a lot of love, but it is at least similar in premise to HTML Over the Wire [1].

[1] https://hotwired.dev/

Hi HN! I'm the author of this blog post.

I was stuck in quarantine with COVID, and I became absolutely obsessed with WORDLE. There were a few great technical articles posted here, and I became inspired to write my own WORDLE solver based on Knuth's algorithm for the codebreaking game Mastermind [1].

It's fun to ride the WORDLE trend; it also happens to be a great application for the minimax decision rule.

This is my first blog post, ever! I'm trying to spend a little more time writing and reflecting (on things technical or not). I would be happy to receive feedback if you have anything to say.

[1] https://stackoverflow.com/questions/62430071/donald-knuth-al...

Obviously switching away from Cloud Functions does away with the architectural limitation of processing requests serially, but from my (limited) understanding of Node.js internals, Express applications are single-threaded anyway.

Do you have any idea of where your performance gains are coming from? Is there a lot of async, non-blocking waiting happening in the process of fulfilling requests against your API?

I agree wholeheartedly. "Best practices" suggested by AWS, GCP are to architect these services with one function per endpoint, with API gateway handling the routing. Sounds good but if you need reasonable tail-end response latencies in the event of a cold start, you need to forget all about the serverless abstraction and go back to a single container with all of your functionality.

On the other hand I can see the appeal of one instance, one request. I don't know if the answer is to enable (optional) request parallelism or to optimize cold start times down further, but OP's requirements feel like they are way too modest to basically force them out of the serverless paradigm.

I just popped open DevTools on an SPA I made using create-react-app with default settings. Sure enough the minified production JavaScript uses shortened variable names. This is default configuration for Webpack, which is pretty widely used throughout (and outside) the React ecosystem.

Interestingly you can still view the unminified source, since create-react-app generates source maps by default.

do you have any advice for "bootstrapping" your SSB experience as a new user? The original post inspired me to go download Patchwork and join a public pub, but I'm having difficulty finding real interesting conversations to join in on.

Yet another similar story. A side project of mine was building a rudimentary neural network whose weights were optimized via a genetic algorithm. The goal was operating top-down, 2D self-driving cars.

The cars' "fitness" function rewarded cars for driving along the course and punished them for crashing into walls. But evidently this function punished a little too severely: the most successful cars would just drive in tight circles and never make progress on the course. But they were sure to avoid walls. :)