Let and const in Javascript ES6
This article highlights the quirks of JavaScript's var
statement, and the clarity that ES6's let
and const
declarations provide. LET me in →
This article highlights the quirks of JavaScript's var
statement, and the clarity that ES6's let
and const
declarations provide. LET me in →
The header navigation here on this site is built using a somewhat complex custom UI component that mimics the functionality of a native select
component. Making this navigation component accessible and functional for screen readers and keyboard users posed a challenge. Keep reading →
React components let you split the UI into independent, reusable pieces, and think about each piece in isolation. This is a collection of commonly-used patterns to keep React components modular. Show me the patterns →
A hike through the tea fields of Ningbo's Fuquan Shan, ending at picturesque Hanling Old Street.
Keep reading →As history teachers, we are the generals in the vanguard. The students are on the front line. The battle is against disinformation.
Students in many countries have been taught a history that has been revised several times over, and state control of media can make it even more challenging to take a critical approach to the curriculum students have been fed their entire academic lives. There is all too often a thin line between history and propaganda, often indistinguishable for impressionable young minds. There are some things we can do to endow our young troops with the weapons to make it easier for them to make the distinction. Keep reading →
Here in China, perceptions of the United States are at the lowest since I first came here almost 20 years ago. More recently, the reputation of the US and the democratic order it presides over has been tarnished by the legitimate election of a dangerous leader to national office and the massive failure of the Covid-19 response, reviving the old questions of the Thucydides Trap, clash of civilizations, and a Second Cold War. Keep reading →
Your old, tired, stale, rotting, useless, vapid necro-accounts on the internet may be a personal security threat were the account to be breached. A great tool for deleting those accounts is justdelete.me. It's even open source!
On a related note, I recently made the switch from LastPass to Bitwarden. Keep reading →
This is, I think, the best way to get Flask up and running on a Windows machine. Keep reading →
Recently I had the urge to test out some of the amazing stuff I was learning in React on some real data from a side-project. I wanted to use hooks and JSX, and I just wanted to load the React engine via <script>
tags in the browser, then have the browser compile the JavaScript and JSX. This is obviously purely for development purposes, since the expense to compile is totally unsuitable for production.
To get React with hooks and JSX up quickly and easily, do the following →
When pushing your app to github, it's so easy peasy to also have your app automagically tested with Travis CI and deployed to Heroku. Instructions →
In Design Machines: How to survive the digital apocalypse Travis Gertz discusses the precarious future of web design and how we as designers can use editorial design to inspire the rich reactions and connections that magazines make on readers. Keep reading →
I've gotten so used to using CSS hacks like positioning and floating and clearfixing over the years that it was at first hard for me to wrap my head around the magnificent simplicity of CSS Flexboxes. Here are my notes -- the properties listed and explained along with some examples that helped me understand. Keep reading →
From the Sass documentation:
There are often cases when designing a page when one class should have all the styles of another class, as well as its own specific styles. The most common way of handling this is to use both the more general class and the more specific class in the HTML. Keep reading →
Redis is pretty great! Here are some examples of the data types in action. Keep reading →
Node.js is primed for asyncronous operations. Although there are syncronous operations available like fs.readFileSync
, synchronous functions should only be used during startup, or when your module is initially loaded, and never after that. Keep reading →
Here are some sweet NPM tricks. Show me the tricks! →
Hello 世界! About this blog →