Now that Node.js has built-in support for TypeScript, we can use it as the foundation of simple playgrounds that let us interactively explore TypeScript code.
Testing applications with Postgres presents a common challenge: how do you provide each developer and CI pipeline with isolated, consistent databases to test against? Docker Compose has emerged as the standard solution, offering containerized Postgres instances that can be spun up alongside your app...
Transform your passive users into active participants by gamifying your application with PubNub SDKs, Functions, and App Context. Learn how real-time engagement motivates your users to come back for more.
Transform your passive users into active participants by gamifying your application with PubNub SDKs, Functions, and App Context. Learn how real-time engagement motivates your users to come back for more.
Toptal parsed key hiring data to discover today’s most in-demand marketing agency roles and skill sets. Use the knowledge to inform your agency’s structure and recruit the bench of freelancers you need to grow your business.
Here's a way to create an in-memory cache in Elixir. Fun!Use caseI thought I needed Redis. But, like many other things, Erlang OTP can handle that for you. Simplify the stack!Erlang (and thus Elixir) has what's called Erlang Term Storage (ETS). It's an in-memory store. When you create a cache table ...
In this blog post, we explore how we can test that complicated TypeScript types work as expected. To do that, we need assertions at the type level and other tools.
Two weeks ago, the Washington Post reported that the U.K. government had issued a secret order to Apple demanding that the company include a “backdoor” into the company’s end-to-end encrypted iCloud Backup feature. From the article: The British government’s undisclosed order, issued last month, requ...
My four-year-old son has declared 36 to be the best number. His reason: 36 is the only number (he knows of) that is both a square and a staircase number AND an up-and-down-staircase number. “Staircase numbers” are what he calls triangular numbers (numbers that are the sum of the first $n$ integers)....
I love 3D printing. It feels like magic - we are able to design and create physical things in a matter of hours, in our homes. I understand the underlying technology, but it still blows my mind when I think about it. It makes me a bit sad that more people aren't fascinated by it. Let's see what my l...
The TypeScript handbook makes an interesting statement: “Often, the checks in a conditional type will provide us with some new information. Just like narrowing with type guards can give us a more specific type, the true branch of a conditional type will further constrain generics by the type we chec...
This blog post explains how to create Room DAOs specifically for your Android debug build. These debug-only DAOs enable you to implement developer-centric features without affecting your production app. Keeping your codebase clean is essential… Read more of Room Debug DAOs in Android: Streamlining Y...
This article was first published in the Clerk blog. Around 30,000 websites and applications are hacked every day*, and the developer is often to blame. The vast majority of breaches occur due to misconfiguration rather than an actual vulnerability. This could be due to exposed database credentials, ...
Years ago, I heard a stupid philosophy joke: a student taking an intro philosophy class asks the professor “but how do we know?”; then, when the professor gives an answer, the student asks “okay, but how do we know that?” This keeps on going until eventually the professor gets fed up and says “by lo...
The time is now: you can build voice AI apps that converse with humans using just a few API calls. With Vapi, you can create voice AI agents that don’t just understand users but also respond naturally and dynamically, just like a human. Check this recording out, where James schedules a plumber via S...
Discover how pushes boost eCommerce sales with real-time updates, personalized offers, and targeted messaging. Learn the best practices and key strategies
We’re excited to announce Neon Auth, a fully managed authentication solution tightly integrated into the Neon platform. It now takes seconds to provision an auth solution directly from the Neon console; once set up, your user profiles automatically sync to your database. The best part: if you ever ...