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?
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.
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.
Whether you’re curious to know more about Kubernetes, just getting started, or have experience with it, this curriculum on DigitalOcean’s Community will help you learn more about Kubernetes and running containerized applications. You’ll learn about core Kubernetes concepts and use them to deploy and scale applications in practical tutorials. By the end of this curriculum you’ll be able to create your own Kubernetes cluster from scratch and run your own applications on it. You will also learn how to set up monitoring, alerting, and automation for your applications on Kubernetes. Oh, and if you’re creating a new DigitalOcean account head to do.co/changelog get $100 in credit to your account.
The Fyne toolkit provides the easiest way to develop beautiful, lightweight and user friendly native applications for desktop, mobile and beyond. In this post, I describe our design process and why we take a considered approach, moving slower than you might think.
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.
According to the author, esbuild is fast because..
- it’s written in Go
- much of the work is done in parallel
- it takes very few passes and avoids data transformations
- it was coded with performance in mind
Supports too many languages to list here, but all of the usual suspects are there. Maybe you’re hoping for a web-based demo? No 🎲
Do not run the Web UI on a port open to public traffic! Doing so would allow remote code execution on your machine.
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.
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.
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.
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.
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.
critic.shexposes 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
_assertmethods, 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 📽️
Destiny scans a folder and moves/renames files to a “prettier” structure. Definitely don’t try this unless you have a git history or a backup.
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.
Dan Abramov and Dave Thomas got me thinking. Why did DRY come to mean “Don’t cut and paste”? I have a few thoughts on the subject…
Mike Turley for CSS-Tricks:
KBall and Nick dive deep with Chris Manson and Jen Weber from the Ember core team. They talk about Ember.js: What it is, why it’s different, what’s new in the Ember Octane release, and what’s exciting in the future of the project.
Don’t use this, but do check it out if you want to learn more about how Git works. Or about how POSIX shell works. Or both!