developers don't understand edge compute

Issue #112.August 7, 2022.2 Minute read.
Bytes

A big welcome to the 866 of you are new this week. In this issue we’ve got some beefy servers, some rebellion against traditional CS curriculum, and a new breakthrough at the Mark Twain School of Data Science.

Welcome to #112.


A really muscular dog

Who’s a beefy boy?

The truth about the edge

Fly.io went through the trouble of raising a series B just to get some coverage for their edge-y (😉) hot takes in TechCrunch (it worked).

Fresh off that high that only comes with $25 milli hitting the bank account, CEO Kurt Mackey looked that TC intern reporter straight in the eyes and declared that “developers don’t understand edge compute.” A little harsh, but he may have a point.

When we think of The Edge™️, most developers are talking about CDNs for static assets that have lightweight compute offerings. But even the most “cutting edge” compute offerings still have to go on a road trip to Virginia just to get some data. That’s where Fly wants to shake things up.

So what exactly does Fly do that’s different?

  • Runs your whole stack at the edge: No more round trips to us-east-1. You can host your database, server, and everything else at the edge.

  • Brings the beef: Most applications are too large to deploy on edge infrastructure, but Fly don’t care. Fly is buying the beefiest servers on the market to accommodate your apps (yes, even your node_modules).

  • Firecrackers: Relax dog owners, we’re talking about fast booting VM’s that allow Fly to spin up a server in a few milliseconds. You can even roll your own FaaS offering because goodness knows we don’t already have enough options.

  • Hosted Goodies: Fly has a hosted Postgres service, which is great since JavaScript developers and devops usually don’t mix.

Bottom Line: Fly is spending that new bread on the beefiest servers in the game so you can run your application at the edge and not have to half-app it. So far, the results are looking pretty impressive.


Gandalf on a mac

“I still think it needs more pop” [sponsored]

Bugherd will break you out of the infinite feedback loop

Dante’s 8th level of Dev Hell: trying to get feedback on a website from a big team.

You create the new landing page and send it to your manager, who gives you feedback and sends it to the VP, who also gives you feedback and “CC’s a few more stakeholders” who also give you feedback… for eternity.

Thankfully, there’s BugHerd:

  1. It lets your team pin feedback directly to website elements and automatically provides metadata about their specific URL, browser, OS, and screen resolution (no more messy spreadsheets and email 🙏).

  2. It consolidates all of that feedback into one place, so you can manage and track progress on bug fixes (no more switching between platforms 🙏).

It saves a lot of time and is our favorite way to work with QA teams, outside clients, or contractors.

Check it out – and see why over 10,000 companies use it.


A man in a half tuxedo

Business in the front…

Party in the back end

For years now, the JavaScript community has had an irrational love for NoSQL and document oriented databases. But, did you ever wonder…why? My running theory is that it’s our collective haphazard rebellion against anything found in traditional CS curriculum, but there might be another reason.

Why did relational databases go out of style?

When Node.js first came out, it specialized (lol) in fast I/O and was good at building things like chat apps. The problem, among others, was that traditional databases were limited to a small number of concurrent connections. In order to have more connections, you needed more memory (i.e. “scaling vertically”) and eventually scaling becomes an issue.

NoSQL databases have a more limited data structure, which enable them to scale horizontally (i.e. adding more database “nodes” to the “cluster”). But they come with their own tradeoffs.

NoSQL DB’s work well when you understand your app’s access patterns — but for many apps, they have multiple clients that have different data needs (something a SQL query can handle well).

So why are they making a comeback now?

  1. RAM has gotten cheaper: the cost of ram has dropped off a cliff over the last 10 years (so there’s a lot more room to scale vertically).

  2. Infrastructure as a service: most new databases are actually the same old databases as before, just with much better infrastructure for things like scaling, migrations, and connection pooling.

  3. ORMs: Solutions like Prisma, which abstract away the database, have become popular. They allow developers to write queries using TypeScript and generate type definitions directly from the database.

Bottom Line: Like everything in tech (and fashion), databases are coming full circle. The good news is that Database Design & Development course you bought on Udemy for $4.99 in 2015 is still up to date.


Jobs

Full-stack software engineer at Phantom

Phantom is looking for fullstack engineers who enjoy massive ownership and freedom, and who want to work with a variety of technologies, including React, TypeScript, Postgres, Docker, and more. You’ll be owning features on their web platform and working closely with the founders to improve the product. The role is fully remote.


JS Quiz — Sponsored by Stream

Stream is the #1 chat platform out there. It’s used by small startups and giants like Adobe, Soundcloud and Match-dot-com.

What order will this code log?

const arr = [7, 1, 4, 3, 2];

for (const elem of arr) {
  setTimeout(() => console.log(elem), elem);
}

Cool Bits

  1. Haoran Xu (from the WebKit team) wrote about how garbage collection works in JSC (WebKit’s JavaScript engine) in a way that mere mortals like you and me can understand — which is great because I love garbage.

  2. The New Relic team wrote about Building your own synthetic user testing, which will help you understand how to write tests that simulate the behavior of your users. [sponsored]

  3. Individual transform properties are here. Now you can use translate, scale and rotate without translate — but only if you promise to not to give me motion sickness (in which case we’ll have them removed from the spec).

  4. Electron version 20.0.0 just dropped, and it uses Node 16.15.0, Chromium 104, and V8 10.4. If all these numbers going up means my laptop doesn’t catch fire anymore when Slack is open, then let’s gooo.

  5. Lyra is an in-memory, full-text search written in TypeScript that’s “typo tolerant” — which is refreshing given how “typo intolerant” many readers of this newsletter are. (Still love you.)

  6. Marvin Hagemeister (Preact core team member) wrote about one of the most essential skills in DevRel: how to cook the books for your performance benchmarks. It’s nice to see a fellow graduate from the Mark Twain School of Data Science doing so well.

  7. React-Aria is showing off its summer bod with this latest release, which dramatically reduces its bundle size.

  8. Every great npm package name is taken, right? Wrongo! Steve Ruiz debunked that myth with his new reactive state management library - liquorstore. I haven’t felt this rebellious installing something since I downloaded Beer Hunt onto my TI-89 in high school.


JS Quiz Solution — Sponsored by Stream

What order will this code log?

const arr = [7, 1, 4, 3, 2];

for (const elem of arr) {
  setTimeout(() => console.log(elem), elem);
}

If you chose [7, 1, 4, 3, 2] because of how most run-times (used to) handle clamping, you are probably very smart and in this scenario, very wrong.

The answer is [1, 2, 3, 4, 7] – or as I like to call it, a really bad way to pass a sorting algorithm technical interview.

Shout out to the Doctor for the source.