This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!doctype html> | |
<html lang="en"> | |
<head> | |
<meta charset="utf-8" /> | |
<title> | |
Detecting Rendered Line Breaks In A Text Node In JavaScript | |
</title> | |
<link rel="stylesheet" type="text/css" href="./main.css" /> | |
</head> | |
<body> |
- What do you like best about working there?
- What do you like least?
- How would you describe this company's culture? engineering culture?
- What causes the most conflict among employees here?
- What would you change if you could?
- How has the company changed in the past five years? How do you think it will change in the next five?
- How long has the longest serving team member been there?
- What's the average or median tenure?
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* Using a JavaScript proxy for a super low code REST client */ | |
// via https://dev.to/dipsaus9/javascript-lets-create-aproxy-19hg | |
// also see https://towardsdatascience.com/why-to-use-javascript-proxy-5cdc69d943e3 | |
// also see https://github.com/fastify/manifetch | |
// also see https://github.com/flash-oss/allserver | |
// and https://gist.github.com/v1vendi/75d5e5dad7a2d1ef3fcb48234e4528cb | |
const createApi = (url) => { | |
return new Proxy({}, { | |
get(target, key) { |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { useRef, useState, useEffect } from 'react'; | |
function Stopwatch() { | |
const timerIdRef = useRef(0); | |
const [count, setCount] = useState(0); | |
const startHandler = () => { | |
if (timerIdRef.current) { return; } | |
timerIdRef.current = setInterval(() => setCount(c => c+1), 1000); | |
}; |
Free to read online: exploringjs.com/impatient-js/
- The exercises now run as native ESM modules on Node.js. Previously, they were run via the
esm
package. - Material on new ES2021 features:
String.prototype.replaceAll()
Promise.any()
- Logical assignment operators
- Underscores (
_
) as separators in number literals and bigint literals
- Zoom abuses the installer flow on MacOS to bypass permissions dialogs (source)
- Zoom sends identifying device info to Facebook, even when users don't have a Facebook account (source) (fixed)
- A bug in Zoom sent identifying information (including email addresses and profile pictures) of thousands of users to strangers (source)
- Zoom claims that meetings are end-to-end encrypted in their white paper and marketing materials, but meetings are only encrypted in transit, and are available in plaintext to Zoom servers and employees. (source)
zoomAutenticationTool
can be used to escalat
The always enthusiastic and knowledgeable mr. @jasaltvik shared with our team an article on writing (good) Git commit messages: How to Write a Git Commit Message. This excellent article explains why good Git commit messages are important, and explains what constitutes a good commit message. I wholeheartedly agree with what @cbeams writes in his article. (Have you read it yet? If not, go read it now. I'll wait.) It's sensible stuff. So I decided to start following the
NewerOlder