From late 2012 to the present I have been writing backends (server-side code) for web applications. This document summarizes many aspects of how I write these pieces of code.
I’m writing this lore down for three purposes:
- Share it with you.
- Systematize it for future reference and improvement.
- Learn from your feedback.
What exactly is a software architect, anyhow?
A software architect is a software expert who makes high-level design choices and dictates technical standards, including software coding standards, tools, and platforms. (Source: Wikipedia: Software Architect)
If that’s something you’d like to do (or are doing, but want to do it better), then this is a great resource for you. It covers the levels of architecture, important skills to obtain, books to read, and a technology roadmap.
If Chris Fox had it his way:
- the keyword would be removed from all languages that use it
- only the language runtime and operating system would be allowed to raise exceptions
Click through to find out why he has this beef and what he thinks we should do about it.
Linode Kubernetes Engine (LKE) is a fully-managed container orchestration engine for deploying and managing containerized applications and workloads. LKE combines Linode’s ease of use and simple pricing with the infrastructure efficiency of Kubernetes. You can now get your infrastructure and workloads up and running in minutes instead of days. If you’ve been following along with the Changelog infrastructure, you’ll be pleased to know we’re rolling out LKE as we speak. We love what we’ve seen so far! Oh and be sure to use the code changelog2019 or changelog2020 (whichever works) to get our special pricing.
This is not my normal beat, but I thought it might help those of us (most of us, right?) fighting fatigue. Knowing why, after all, is half the battle.
To understand more about the different types of fatigue, I spoke to Dr. Jaclyn Tolentino, a primary care physician at Parsley Health, as well as Dr. Richard Firshein, a general practitioner and insomnia specialist who runs the Firshein Center in Manhattan. Here are the most common culprits of exhaustion, and how to treat them.
I would imagine many of us fall victim to more than one of these, but the ones we likely share are #3 (stress tired) and #5 (bad sleep hygiene). Maybe a Brain Science episode on this subject is in order?
We’ve logged enough awesome lists by now that you know exactly what to expect from this repo. So instead of describing what’s inside, I will say that Emma and I will be talking Fullstack D3 with Amelia Wattenberger on January 30th. Join us for the live show or subscribe to JS Party to listen when the episode ships.
A failed docking attempt, a dramatic reentry, and a first genuine fender-bender in orbit—what does it all have to do with modern web development? Andrey Sitnik is about to tell you…
A severe security vulnerability impacted all popular npm package managers: npm, yarn and pnpm and even triggered a release for Node.js 12.4.0. What is behind this vulnerability and why is it so important for us to understand? I wrote about it in a post that also explains how npm handles executables.
Mihai on the value of automating as many of your project’s Quality Gates as possible.
For instance, in my projects, I have rules ranging from cosmetic matters like naming or indentation to architectural rules such as “Classes are either abstract or final” or “All variables, of any kind, should be final”.
This episode from Heroku’s Code[ish] podcast features Johnny Boursiquot, Ed Muller, and Rishabh Wason talking about Go at Heroku, how they roll out buildpack updates, and being concurrent with Go releases.
Playwright is focused on enabling cross-browser web automation platform that is ever-green, capable, reliable and fast. Our primary goal with Playwright is to improve automated UI testing by eliminating flakiness, improving the speed of execution and offering insights into the browser operation.
From the Microsoft Edge team.
I love how much is squeezed into this truly tiny library.
import calendarize from 'calendarize'; // Week = [Sun, Mon, Tue, Wed, Thu, Fri, Sat] const view = calendarize(new Date('2019-12-20')); //=> [ //=> [ 1, 2, 3, 4, 5, 6, 7], //=> [ 8, 9, 10, 11, 12, 13, 14], //=> [15, 16, 17, 18, 19, 20, 21], //=> [22, 23, 24, 25, 26, 27, 28], //=> [29, 30, 31, 0, 0, 0, 0], //=> ]
Check out the demo to see it in action.
Side note: the demo “reimplements” jQuery in one line:
const $ = document.querySelector.bind(document);
if I were merely doing JS sprinkles I’d probably just write a few ‘ergonomics’ functions around querySelector and friends.
The web really has come a long way in a short time.
The Lumen Project is an alternative implementation of the Erlang VM, more known as the BEAM. It is designed to work in WebAssembly with the specific goal of bringing Elixir and Erlang to the browser with minimal overhead, tightly compiled rather than porting a full VM. Can it replace JS for some developers?
If you’ve been following along in the open source news cycle lately, you’ve probably heard that Red Hat has dropped the docker container runtime engine from both its Red Hat Enterprise Linux (RHEL) and CentOS Linux distributions.
I must not be following along, because that’s news to me.
That being the case, what do you do when you need to deploy containers? Fortunately, they’ve created a near drop-in replacement for docker, called Podman.
Podman is a rename from kpod, sorta. The new thing is actually called libpod, and Podman exists as the CLI for that library. It’s all a bit confusing, but what’s cool is none of this requires a daemon like the Docker Engine.
If you’d like to give it a go, this walk-through by The New Stack will get you started.
JAMstack, myself, but I think the
Ajax analogy he quotes is an apt one. Aside: if this trend continues, Chris and the team might need to rename the site to “Jamstack-Tricks” soon.
Oh, and while we’re here: It’s Changelog not ChangeLog 😄
Here’s a new acronym for you: Generative Teaching Networks (GTN)
GTNs are deep neural networks that generate data and/or training environments on which a learner (e.g., a freshly initialized neural network) trains before being tested on a target task (e.g., recognizing objects in images). One advantage of this approach is that GTNs can produce synthetic data that enables other neural networks to learn faster than when training on real data. That allowed us to search for new neural network architectures nine times faster than when using real data.
Fake data, real results? Sounds pretty slick.
YC touches so many companies that it is in effect an index on the entire early stage venture capital industry, like the Dow Jones Industrial Average for public stocks.
Lots to ponder in this post. Developer tools, AI, education, and health care are all trending right now in YC investment while hardware and fintech sectors are slowing.
LOOK, THE LATENCY FALLS EVERY TIME YOU CLAP YOUR HANDS AND SAY YOU BELIEVE
PyTorch3d is designed to integrate smoothly with deep learning methods for predicting and manipulating 3D data. For this reason, all operators in PyTorch3d:
- Are implemented using PyTorch tensors
- Can handle minibatches of hetereogenous data
- Can be differentiated
- Can utilize GPUs for acceleration
Get started with tutorials on deforming a sphere mesh into a dolphin, rendering textured meshes, camera position optimization, and more.