The DEMON realtime engine is open source. The hosted service has a number of integrations with popular audio tools. (I'm on the team)
2,122 karma · joined March 27, 2010
Currently working on:
otpguard.com - multi-factor authentication for Github PRs
ephemeralpostal.com - disposable E-mail for developers
The DEMON realtime engine is open source. The hosted service has a number of integrations with popular audio tools. (I'm on the team)
Ah that's probably correct, I mis-read.
Unlike WebSockets, browser SSE also has a built-in recovery mechanism so you don't miss events across reconnects (`Last-Event-ID` header), although this does require explicit support from the server-side app.
Given that the WebSocket handshake has an additional round-trip, SSE would typically be faster in terms of time-to-first-byte.
> you’re still travelling through an entire HTTP stack implementation rather than the incredibly simple WebSocket protocol
Both protocols have their own minimal framing, but "an entire HTTP stack" is a stretch. It's hard to argue that `data:value\n\n` is more complex than the WebSocket binary protocol. Simplistic, sure (no binary payloads), but also simple enough to, say, pipe through a regex. Good luck doing that with WebSocket.
Another benefit is that you get to exercise those disaster recovery mechanisms regularly as part of the normal functioning of the system, rather than a specialized path that is only rarely exercised (and thus may be broken when you need it the most).
Would this API have helped?
With the "cloud password manager" angle there is some hope of being user friendly, although we're certainly not there yet for most folks.
Just curious, what do you use for this?
I built OTP Guard [1] a few years ago for exactly this problem, although I haven't seen any alternatives in the space. Does GitHub have something built-in now?
The original framing was more "local malware compromising your GitHub account" ... it never occurred to me that the malware could be a LLM. I really should update the page.
If you know a $100 item will probably cost $102 later then you're more likely to buy it now. But if that item will cost $98 in a deflationary environment, then maybe you'll wait to buy it later. Wages also tend to fall in deflation, which makes it harder to pay back debt, so lending slows down - people won't buy houses or cars, etc. Businesses hold back on capital spending. The economy slows to a standstill: if no one is spending money, how can anyone make money?
When I'm starting to read a non-English novel, the process of deciding which translation to use is half the fun. The Kent and Berbera (revised Garnett) version of Anna Karenina was mesmerizing.
There's a lot of low-density sprawl in San Diego county which makes effective transit difficult, and because you have to drive everywhere, sentiment trends anti-bicycle. The previous CEO of SANDAG tried to push a mobility-centric vision but left because of intense pushback from folks who wanted more funding for roads and freeways, rather than transit and bike paths.
On-chain transactions are still not free. x402 isn't settled in batches or rolled up anywhere AFAIK, so large volumes of tiny payments are still not cost-effective. Facilitators such as Coinbase only subsidize transactions up to a point: https://docs.cdp.coinbase.com/x402/core-concepts/facilitator
There are ways around this, but with tradeoffs.
Refresh tokens don't solve anything in this case; they just shuffle the problem around, and introduce other complications of their own.
What you want are capability scoped credentials that are enforced on the backend. That is agnostic to credential issuance mechanism, although passkeys are the best.
Using these credentials effectively still presupposes hygiene that might not exist in a typical developer environment, eg no root credentials (or access to such) sitting anywhere. There's probably a good product and market for whoever can solve this in a low-friction way.
Then the LLM slurps up your refresh token. What's next?
We actually talk more now which helps, but it is still hard to keep up when everyone is barreling ahead doing their own thing. In addition to more talking, there needs to be a semblance of strategy that everyone is aligned on and understands their role in.
A high-agency, high-functioning team has always been a superpower, but mastering this capability is what will make or break organizations that are trying to run lean with AI. It's a "people problem" at its core, and no amount of technology can fix that.
YMMV but let expressions are one of the nice things about OCaml - the syntax is very clean in a way other languages aren't. Yes, the OCaml syntax has some warts, but let bindings aren't one of them.
It's also quite elegant if you consider how multi-argument let can be decomposed into repeated function application, and how that naturally leads to features like currying.
> Also, you need to end the declaration with `in`?
Not if it's a top level declaration.
It might make more sense if you think of the `in` as a scope operator, eg `let x = v in expr` makes `x` available in `expr`.
> Then, semicolons...
Single semicolons are syntactic sugar for unit return values. Eg,
print_string "abc";
is the same as let () = print_string "abc" in let x = v in expr
`x` is now available for use in `expr`In essence, an OCaml program is a giant recursive expression, because `expr` can have its own set of let definitions.
In the REPL, this is where the double semicolons come in, as a sort of hint to continue processing after the expression.
Everything I read about Linear screams over-engineering to me. It is just a ticket tracker, and a rather painful one to use at that.
This seems to be endemic to the space though, eg Asana tried to invent their own language at one point.
> It’s worth noting that DoH (DNS-over-HTTPS) traffic remained relatively stable as most DoH users use the domain cloudflare-dns.com, configured manually or through their browser, to access the public DNS resolver, rather than by IP address.
Interesting, I was affected by this yesterday. My router (supposedly) had Cloudflare DoH enabled but nothing would resolve. Changing the DNS server to 8.8.8.8 fixed the issues.
Just checked and it's:
Dashboard home > Zero Trust > Networks > Tunnels > [tunnel] > Public Hostname
And if it ends up provisioning a new DNS record, I always have to remember to go back to the domain's DNS screen and label it with the tunnel.
In general I use a tiny silver of Cloudflare's capabilities; it would be nice if the primary dashboard could bubble up the parts that I do use.
If they were born deaf, or lost hearing as a young child during the language development stage, then it would probably be a long adjustment. Things would just be noise and it would take a lot of training to distinguish sounds, speech, etc. And unlike a cochlear implant, you couldn't just take it off to give your brain a rest.
If they had hearing loss later in life, or some residual hearing, then they probably have a better chance of re-adjusting to hearing.
Somewhat ironically, Hock's "chaordic" management philosophy has strong parallels with ethos of decentralization held by some crypto idealists.