Friday Frontend: Post Thanksgiving Edition

View this email in your browser

Hey there,

This last week was my birthday, as well as yesterday being the Thanksgiving holiday, and for both I took the excuse to think back through the last year, look back at goals I had set myself, and look forward to the new year.

You know what? Looking back at my 2020 goals, I have achieved almost NONE of them. One early year goal I finished in February, but other than that it’s a big fat goose egg. The pandemic and all of the other shit that came up this year completely obliterated every goal I was aiming at.

I think this is a good highlight that we don’t have control over outcomes, all we have is control over what we do ourselves and our process. The big lesson I’m taking away from this year is to focus on process over outcomes. Figure out what is going to take me in the direction I want to go, and keep investing in that process over and over again. And that’s helped me be at peace with the fact that all of the things I intended to achieve this year didn’t happen, because turns out a massive pandemic + family health issues + political turmoil means that just surviving and keeping things moving forward is a massive achievement.

I hope you too are able to give yourself some grace this year for anything that you’ve struggled with. We’re coming to the end of it. We have news of multiple working vaccines for COVID-19, and while it will take a while yet to manufacture them, distribute them and get this under control, the timelines I’ve seen indicate we’re closer to the end than the beginning.

Best,

KBall from ZenDev

 

CSS & SCSS

 

Under-Engineered Responsive Tables

The beauty of this article is it takes a topic that sometimes feels overly complex -- How do you make a table for data that works responsively on all devices and doesn’t break for screen reader users -- and bring it down to the simplest possible solution with a few lines of HTML and CSS.

Building Flexible Components With Transparency

Super useful approach for creating components that work well across a range of backgrounds, so that you can reuse them in multiple contexts.

Thinking Outside the Box with CSS Grid

Three beautiful layout examples that highlight different ways you can push CSS grid to create less boxy web pages.

 

JavaScript

 

console.log({ myVariable });

Super quick hit, simple debugging tactic, but makes for a quick route to some very readable console logs.

Creating UI Components in SVG

I love SVGs. So much so I even quite a while ago published an intro course on them. And as this article highlights, with JavaScript frameworks like React and Vue it is now super easy to create dynamic SVGs that fit naturally right into your application. 

A Thoughtful Way To Use React’s useRef() Hook

When I first started using React again, I had a habit of thinking of refs purely as a way to reference elements in the DOM. But it turns out, they are much more flexible - they are a way to create storage consistent across renders that does not force rerendering in the way state does. This dramatically increases the usefulness of the tool. This article will get you started, though honestly the examples are pretty trivial. Think of things like incrementing to create unique ids across duplicated components, tracking mouse and keyboard movements, and more.

How React Uses Closures to Avoid Bugs

Buried within this generally interesting article is another usecase for refs -- refactoring class components where there are complex instance values. But even outside of that, this is well worth reading through to think about the benefits of moving to functions over classes as a model for our UI code.

The case for Weak Dependencies in JS

Super interesting article (and below in the comments discussion) about a pattern that is not currently supported in JavaScript, but that could make for better progressively enhancing libraries. I think this is a must read for folks who maintain libraries, but a good read for everyone else because it will expand how you think about the language and what it could do.

 

Other Awesomeness

 

How to Load Fonts in a Way That Fights FOUT and Makes Lighthouse Happy

I love web fonts today compared to when I started doing web development -- so many more options and so much easier to use. But the naive ‘drop the Google fonts snippet in the head’ approach does still have substantial performance drawbacks. This article does a nice job walking through a more performant approach.

Relax Into Structure in Your Day

The approach highlighted in this article -- creating structure in your day and blocking off time for important things that get neglected -- is something that I wish I’d learned earlier. For me, the way to creating these structured blocks in an effective way actually came from shifting my schedule. I now wake up super early (~5am) and work from 5:30 until 2:00. This both helps with some pandemic related childcare complications (I take the kids after 2), but also creates a natural block in my calendar every morning from when I get started until other folks start coming online more around 8:30 or 9:00am. It’s not perfect; we do have some spread across timezones so there are other people awake too. But generally speaking, every morning I get a solid block of concentrated heads down time from 5:30 until 8:30 or 9:00, and it has skyrocketed my productivity.

The Evolution of GraphQL at Scale

My use of GraphQL has not evolved beyond the ‘glorious monolith’ stage, but I can see how it is going to end, and I love that there is a lot of innovation and thinking going into how we can scale up GraphQL in a world of many different services.

Copyright © 2020 ZenDev, LLC, All rights reserved.
You are receiving this email because you opted in at our website, zendev.com.

Our mailing address is:
ZenDev, LLC
922 San Leandro Ave., Unit C
Mountain View, California 94043

Add us to your address book


Want to change how you receive these emails?
You can update your preferences or unsubscribe from this list.

Email Marketing Powered by Mailchimp

Older messages

Friday Frontend: November 20th Edition

Friday, November 20, 2020

I am totally slammed with work right now - new project starting up, some new direct reports, and roadmapping for next year. Consequently this week' View this email in your browser Hey there, I am

Friday Frontend: Friday the Thirteenth 2020 Edition

Friday, November 13, 2020

Hope you all had a good week! I'm not sure what to expect today -- Friday the thirteenth is traditionally an unlucky day, and living through 2020 View this email in your browser Hey there, Hope you

Friday Frontend: Election Week Edition

Friday, November 6, 2020

Voting and counting votes in a pandemic was always going to be weird, but I don't think any of us had understood how weird it would be View this email in your browser Hey there, Voting and counting

Friday Frontend: Pandemic Halloween Edition

Friday, October 30, 2020

It's another wild and crazy time in the year of 2020: Figuring out how to let kids celebrate Halloween safely in a pandemic. View this email in your browser Hey there, It's another wild and

Friday Frontend: Almost Halloween Edition

Friday, October 23, 2020

We're getting close to Halloween, which is also often my signal for getting close to the end of the year. I certainly hope that when we put 2020... View this email in your browser Hey there, We

You Might Also Like

Import AI 399: 1,000 samples to make a reasoning model; DeepSeek proliferation; Apple's self-driving car simulator

Friday, February 14, 2025

What came before the golem? ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏

Defining Your Paranoia Level: Navigating Change Without the Overkill

Friday, February 14, 2025

We've all been there: trying to learn something new, only to find our old habits holding us back. We discussed today how our gut feelings about solving problems can sometimes be our own worst enemy

5 ways AI can help with taxes 🪄

Friday, February 14, 2025

Remotely control an iPhone; 💸 50+ early Presidents' Day deals -- ZDNET ZDNET Tech Today - US February 10, 2025 5 ways AI can help you with your taxes (and what not to use it for) 5 ways AI can help

Recurring Automations + Secret Updates

Friday, February 14, 2025

Smarter automations, better templates, and hidden updates to explore 👀 ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏

The First Provable AI-Proof Game: Introducing Butterfly Wings 4

Friday, February 14, 2025

Top Tech Content sent at Noon! Boost Your Article on HackerNoon for $159.99! Read this email in your browser How are you, @newsletterest1? undefined The Market Today #01 Instagram (Meta) 714.52 -0.32%

GCP Newsletter #437

Friday, February 14, 2025

Welcome to issue #437 February 10th, 2025 News BigQuery Cloud Marketplace Official Blog Partners BigQuery datasets now available on Google Cloud Marketplace - Google Cloud Marketplace now offers

Charted | The 1%'s Share of U.S. Wealth Over Time (1989-2024) 💰

Friday, February 14, 2025

Discover how the share of US wealth held by the top 1% has evolved from 1989 to 2024 in this infographic. View Online | Subscribe | Download Our App Download our app to see thousands of new charts from

The Great Social Media Diaspora & Tapestry is here

Friday, February 14, 2025

Apple introduces new app called 'Apple Invites', The Iconfactory launches Tapestry, beyond the traditional portfolio, and more in this week's issue of Creativerly. Creativerly The Great

Daily Coding Problem: Problem #1689 [Medium]

Friday, February 14, 2025

Daily Coding Problem Good morning! Here's your coding interview problem for today. This problem was asked by Google. Given a linked list, sort it in O(n log n) time and constant space. For example,

📧 Stop Conflating CQRS and MediatR

Friday, February 14, 2025

​ Stop Conflating CQRS and MediatR Read on: m​y website / Read time: 4 minutes The .NET Weekly is brought to you by: Step right up to the Generative AI Use Cases Repository! See how MongoDB powers your