The Changelog The Changelog #381  – Pinned

The dawn of sponsorware

Caleb Porzio is the creator & maintainer of Livewire, AlpineJS, and more. His latest open source endeavor was announced as “sponsorware”, which means it lived in a private repo (only available to Caleb’s GitHub Sponsors) until he hit a set sponsorship threshold, at which point it was open sourced.

On this episode, we talk through this sponsorware experiment in-depth. We learn how he dreamt it up, how it went (spoiler: very well), and how he had to change his mindset on 2 things in order to make sustainability possible.

JS Party JS Party #115

All the stale things

Divya leads a deep discussion with Jerod, KBall, and Nick on what’s stagnating in browsers. What has remained the same in browser tech over the last 20 years that remains a pain point in working with browsers? For example - Focus in browsers hasn’t changed much in 20 years. Why is that and how do we go about making all the stale things in browser tech better?

Go Time Go Time #118

Quack like a wha-?

Interfaces are everywhere in Go. The basic error type is an interface, writing with the fmt package means you are probably using an interface, and there are countless other instances where they pop up. In this episode Mark, Mat, Johnny, and Jon discuss interfaces at length, exploring what they are, how they are using them in their own projects, as well as tips for how you can leverage them in your own code.

CockroachDB openmymind.net

Migrating from Postgres to CockroachDB

This is a nice lessons learned post from one engineering team making a database switch.

Overall, I’m happy with how the effort turned out and with CockroachDB in general. Because it uses PostgreSQL’s wire protocol, existing PostgreSQL drivers should work as-is. But we did run into some challenges that are worth pointing out. Here’s a list of things you might want to consider…

I like the update at the end, which emphasizes the important of tests for making a switch of this magnitude:

The system that was migrated has solid tests and good coverage. While a lot of the differences we ran into are obvious (like lack of range types and triggers), others were more subtle (especially the odd on conflict behavior). Test coverage made a pretty significant impact in the speed of the migration and our confidence in pushing live.

Stream Icon Stream – Sponsored

Styled Components vs. CSS Stylesheets

The never ending and very contentious debate around standard CSS stylesheets vs. “CSS-in-JS” continues with this pros and cons comparison between Styled Components (CSS in JS) and CSS Stylesheets (CSS in, ummm…CSS). Over the last few years, CSS-in-JS solutions have become prevalent across the front-end landscape with many offerings such as styled-components, and emotion that provides a way to colocate your components and style definitions. While there are many advantages to using a “CSS-in-JS” solution, naturally, it’s quite a polarizing topic among front-end developers. I’m going to lay out some of the essential pros and cons of styled-components vs. more “traditional” CSS stylesheets that affect the way I code in React on a day-to-day basis.

read more

logged by @logbot permalink

Brain Science Brain Science #11

Competing for attention

Mireille and Adam discuss the mechanism of attention as an allocation of one’s resources. If we can think of attention as that of a lens, we can practice choosing what we give our attention to recognizing that multiple things, both externally and internally, routinely compete for our attention. Distraction can also be useful when we utilize it intentionally to manage the focus of our attention.

JavaScript github.com

An extremely fast JavaScript bundler and minifier

Why build another JavaScript build tool? The current build tools for the web are at least an order of magnitude slower than they should be. I’m hoping that this project serves as an “existence proof” that our JavaScript tooling can be much, much faster.

According to the author, esbuild is fast because..

  1. it’s written in Go
  2. much of the work is done in parallel
  3. it takes very few passes and avoids data transformations
  4. it was coded with performance in mind
An extremely fast JavaScript bundler and minifier

Heroku Icon Heroku – Sponsored

🎧 GraphQL's benefits and costs

This week’s episode from Heroku’s Code[ish] podcast covers the costs and benefits of GraphQL. GraphQL is a querying language with the aim of increasing the productivity of frontend and backend developers. It can make working with React easier, be used as an API for third-party clients, and allow for feature-rich applications to request precisely the data they need. Like any part of your stack, GraphQL isn’t a panacea. The language is still being developed, and has some limitations. Tanmai Gopal, the CEO of Hasura, guides us through the pros and cons of using GraphQL in your application.

read more

logged by @logbot permalink

Erik Kennedy learnui.design

iOS 13 design guidelines, templates, and downloads

Erik Kennedy is back with an awesome resource for anyone doing iOS development.

Maybe you’ve never designed an iPhone app, and have no idea where to begin.

Maybe you’ve designed a dozen, but still want one place to reference best practices. Heaven knows Apple’s Human Interface Guidelines are awful to try and read.

Either way, this is the guide for you. I cover basically everything you need to know to create an iOS app that follows standard iOS 13 conventions.

Practices codeahoy.com

Tech debt developer survey results

Umer Mansoor’s Technical Debt is Soul-crushing made the rounds last month and he followed up by adding a survey.

117 software developers from all over the world took the survey. The majority were from the USA, followed by Canada, Australia, Germany, India, Russia , UK and other European countries.

Not a huge sample size, by any means, but the results are interesting and worth scrolling through. This pairs nicely with our episode on good tech debt.

Evan Czaplicki elm-lang.org

Teaching syntax with Elm 0.19.1

This release and associated announcement post came back in October, but a) I must’ve missed it, and b) it’s conceptually cool enough to share even now. Evan Czaplicki:

… with the release of Elm 0.19.1 today, I am excited to share the new and improved syntax error messages! My hope is that the new compiler feels more like a teacher, showing helpful and relevant examples when you get stuck.

The remainder of the post shows some examples of how this looks in practice. One aspect of this that is odd/interesting is the compiler uses first-person perspective. It says things like:

Declarations always start with a lower-case letter, so I am getting stuck here

I was partway through parsing a record type, but I got stuck here

Maybe it’s always done this, or maybe this is new? I dunno, but it definitely makes it feel a whole lot more personal and friendly this way. Evan and the Elm team are really pushing the world of language compilers in a great direction. I’m excited to see where it all leads.

Bash github.com

Dead simple testing framework for bash with coverage reporting

critic.sh exposes high level functions for testing consistent with other frameworks and a set of built in assertions. One of my most important goals was to be able to pass in any shell expression to the _test and _assert methods, so that one is not limited to the built-ins.

The coverage reporting is currently rudimentary, but it does indicate which lines haven’t been covered. It works by running the tests with extended debugging, redirecting the trace output to a log file, and then parsing it to determine which functions/lines have been executed. It can definitely be improved!

See a demo of critic.sh in action on asciinema 📽️

The Changelog The Changelog #380

Productionising real-world ML data pipelines

Yetunde Dada from QuantumBlack joins Jerod for a deep dive on Kedro, a workflow tool that helps structure reproducible, scaleable, deployable, robust, and versioned data pipelines. They discuss what Kedro’s all about and how it’s “changing the landscape of data pipelines in Python”, the ins/outs of open sourcing Kedro, and how they found early success by sweating the details. Finally, Jerod asks Yetunde about her passion project: a virtual reality film which debuted at the Sundance Film Festival in January.

CSS-Tricks Icon CSS-Tricks

Why JavaScript is eating HTML

Mike Turley for CSS-Tricks:

JavaScript developers have realized that by defining a page’s structure in JavaScript instead of in HTML (using frameworks such as React), they can simplify the development and maintenance of user interaction code that is otherwise much more complex to build. Of course, when you tell someone that the HTML they wrote needs to be chopped up and mixed in with JavaScript they don’t know anything about, they can (understandably) become frustrated and start asking what the heck we’re getting out of this.

I get this question occasionally and I often have trouble answering it. All of the materials I’ve found on this topic are written for an audience that is already familiar with JavaScript — which is not terribly useful to those who focus on HTML and CSS. But this HTML-in-JS pattern (or something else that provides the same benefits) will likely be around for a while, so I think it’s an important thing that everyone involved in web development should understand.

Podcasts from Changelog

Weekly shows about developer culture, software development, open source, building startups, artificial intelligence, and the people involved.

0:00 / 0:00