cjlarose

Joined 13 years ago

Karma
30
Submissions
22
Member since
Jun 19
Software Engineer, San Diego, CA https://github.com/cjlarose
View on Hacker News

Recent submissions

Comment · 2 years ago
I could be wrong, but my impression of the post was that it is not meant to be a novel solution for a hard problem, but rather a demonstration of an interesting technique on a simple enough problem that the problem doesn’t distract from the technique itself.
Comment · 2 years ago
Comment · 9 years ago
Comment · 10 years ago
Comment · 10 years ago
FWIW, if you configure AWS RDS for Multi-AZ support, you essentially get a black box "cloud database" with synchronous replication and automatic failover. You're right, though, in that you're still essentially being allocated a fixed-sized single-node deployment of your favorite RDBMS.

I think the "obvious solution" is just not super easy to implement. If you want ACID compliance as with traditional RDBMSs but in a auto-scaling, distributed setting, it's not going to happen. Early RDMSs were built with a single node in mind, and any database-as-a-service will have to make some compromises. DynamoDB gives you the flexibility of not having to worry about scaling, and even offer strongly consistent reads, but without support for transactions, for example.

Comment · 10 years ago
Comment · 10 years ago
Comment · 10 years ago
I understand that macros are both the mechanism to generate code at compile-time as well as for generating code at runtime. But it doesn't look like the linked project does the latter. In fact, there are mentions in the README that indicate that there is no runtime for LISP/c at all:

> The way that LISP/c works is sort of tricky. It utilizes a lot of string manipulation and interpretation. It doesn't need to be insanely fast, though, because it's just dealing with code; the compiled result will not suffer from any slowness.

In other words, it seems that this project just allows you to generate C code from a LISP-like syntax, but doesn't allow you to `eval` during the execution of the resulting C program. There is no runtime representation of code as data as with other lisps.

Comment · 10 years ago
I feel like besides powerful macro generation, the other big selling point of a lisp is that you can dynamically generate code at runtime, either by providing hooks into the compiler itself or by running the generated code through an interpreter. This project doesn't seem to do that at all. Does anyone know of any similar projects that do?
Comment · 11 years ago
Comment · 11 years ago
I stumbled upon gamma when I first starting looking into shaders--it's pretty incredible what it's doing. mikekchar is exactly right, I think, in thinking that lisp is a good candidate for creating what's described as embedded domain-specific languages (EDSLs). When I first explored writing my own shader for this project, I opted for doing it myself just so I could get a better understanding of what's happening under the covers, with the intention of maybe introducing gamma later. It ended up that my shader was super simple--just a for loop and some basic trig math, so it wasn't super necessary to migrate. But, from what I've heard, even mildly complex shaders can get out of hand quickly, so gamma and projects like it are super promising.
Comment · 11 years ago
Comment · 11 years ago
Uh oh. I don't have a VM up and ready, but I'll check it out when I do. Thanks for letting me know!
Comment · 11 years ago
Yeah, so the application state is captured in the URL with throttling. The behavior isn't too different from Underscore/Lodash's throttle function (https://lodash.com/docs#throttle). Basically, you can click and drag the range sliders to update the visualization pretty rapidly. If I updated the URL with windows.history.pushState every time the state changed for a single keyframe, it would overload the history and be a pain to hit the "back" button. So instead, I throttle calls to pushState so it fires no more than every 500ms.

I think it might be too to do a write-up. I definitely learned a lot doing it!

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton