Email explained from first principles
Modern email is a patchwork of protocols and extensions. Here is one article to understand them all.
Crockford Objects in JavaScript
The example that Crockford gave in his presentation on how to create objects is the way developers should use for creating objects. It does not require the 'class' keyword or the 'prototype' property for defining an object. It also does not require using the 'new' keyword for instantiating a new object.
function createThing(name) {
function getName() {
return name;
}
return Object.freeze({
name,
getName
});
}
const myThing = createThing('My Thing');
Kent C. Dodds’ .filter() Trick Will Change How You Use JavaScript | by Dr. Derek Austin 🥳 | Coding at Dawn | Jun, 2021 | Medium
Kent C. Dodds’ .filter() Trick Will Change How You Use JavaScript. This one-liner uses the Boolean constructor to magically remove all falsy values from an array ✨.
https://twitter.com/kentcdodds/status/1009918457394225152
const plugins = [
isProd ? optimizePlug : null,
isProd ? prodOnlyPlug : null,
!isProd ? testingPlug : null,
usefulPlug,
].filter( Boolean );CS50: Harvard’s Most Popular Course is Free, Online | by Frederik Bussler | CodeX | Jan, 2021 | Medium
This introductory computer science course covers algorithms, data structures, resource management, security, software engineering, and web development.
One great, free option is “CS50’s Introduction to Artificial Intelligence with Python.” This course recommends CS50x as a pre-requisite, so this is a great next step if you’re interested in AI.
The Architecture of Open Source Applications
In these two books, the authors of four dozen open source applications explain how their software is structured, and why. What are each program's major components? How do they interact? And what did their builders learn during their development? In answering these questions, the contributors to these books provide unique insights into how they think.
If you are a junior developer, and want to learn how your more experienced colleagues think, these books are the place to start. If you are an intermediate or senior developer, and want to see how your peers have solved hard design problems, these books can help you too.
These Modern Programming Languages Will Make You Suffer
Elixir receives two awards.
Its resiliency, functional-first approach, and amazing ecosystem makes it the Best Language for Building Web APIs.
OTP and the actor model make Elixir the Best Language for Building Concurrent and Distributed Software. Unlike its imperative cousin Go, software written in Elixir can scale horizontally to thousands of servers, and comes with fault tolerance out-of-the-box.
An attempt to make a font look more handwritten
OpenType lets you replace characters based on context
I started out being extremely confused about what OpenType even is. I still don’t know much, but I learned that you can write extremely simple OpenType rules to change how a font looks, and you don’t even have to really understand anything about fonts.
Here’s an example rule:
sub a' b by other_a;
What sub a' b by other_a; means is: If an a glyph is before a b, then replace the a with the glyph other_a.Go is Boring...And That’s Fantastic! | Capital One
The best way to think about Go is to think about all the things that it doesn't have.
- Go doesn’t have a virtual machine or an LLVM-based compiler.
- Go doesn’t have exceptions.
- Go doesn’t have user-defined implementation inheritance.
- Go doesn’t have overloading for functions, methods, or operators.
- Go doesn’t have immutables.
- Go doesn’t have enumerations.
- Go doesn’t have generics.
- And Go hasn’t added any major features since Go 1 was released in 2012.
The one exciting thing that Go has is built-in concurrency support via goroutines, channels, and select. However, it is based on ideas from CSP, communicating sequential processes, which was first described in 1978.
HackerRank
I started preparing for Google interviews using HackerRank and its Interview Preparation Kit. I highly recommend it -- it's really close to what happened at the interview.
Stevey's Blog Rants: Programming's Dirtiest Little Secret
For starters, non-typists are almost invisible. They don't leave a footprint in our online community.
When you talk to them 1-on-1, sure, they seem smart. They usually are smart. But non-typists only ever contribute a sentence or two to any online design discussion, or style-guide thread, or outright flamewar, so their online presence is limited.
If you are a programmer, or an IT professional working with computers in any capacity, you need to learn to type! I don't know how to put it any more clearly than that. If you refuse to take the time, then you're... you're... an adjective interjection adjective noun, exclamation.
JavaScript Design Patterns - Better Programming - Medium
The underlying concept of design patterns has been around in the software engineering industry since the very beginning, but they weren’t really so formalised. Design Patterns: Elements Of Reusable Object-Oriented Software written by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides — the famous Gang of Four (GoF)—was instrumental in pushing the formalised concept of design patterns in software engineering. Now, design patterns are an essential part of software development and have been so for a long time.
The Language Agnostic, All-Purpose, Incredible, Makefile | Mindlessness
How to develop a Makefile
They key to successfully writing a Makefile is to just write down the commands you need at the moment. Ran a new command? Put it in the Makefile. Over time, the Makefile will grow to include even those rare commands you rarely run and can’t remember what they were. Patters with emerge, and these will help guide the prerequisites that may otherwise not be obvious.
GitHub - lydiahallie/javascript-questions: A long list of (advanced) JavaScript questions, and their explanations
I post multiple choice JavaScript questions on my Instagram stories, which I'll also post here! Last updated: December 24th
From basic to advanced: test how well you know JavaScript, refresh your knowledge a bit, or prepare for your coding interview! muscle rocket I update this repo regularly with new questions. I added the answers in the collapsed sections below the questions, simply click on them to expand it. It's just for fun, good luck! heart
Writing effective problem reports – BI Polar
Problem: Concise description of problem behavior
Steps to reproduce problem:
- First step
- Second step
- Third and subsequent steps, as necessary
Desired or expected behavior:
- What I wanted to happen
Observed behavior:
- What actually happened, including the full details of any error messages
50 Things You Should Know Before Going to a JavaScript Developer Job Interview
The 10:1 rule of writing and programming
The 10:1 rule of writing and programming
Good software and good writing requires that every line has been rewritten, on average, at least 10 times.
First, it looks like similar 10:1 rules show up in film, journalism, music, and photography! How cool is that?
TDD Changed My Life – JavaScript Scene – Medium
What is TDD?
TDD stands for Test Driven Development. The process is simple:
- Before you write implementation code, write some code that proves that the implementation works or fails. Watch the test fail before moving to the next step (this is how we know that a passing test is not a false positive — how we test our tests).
- Write the implementation code and watch the test pass.
- Refactor if needed. You should feel confident refactoring your code now that you have a test to tell you if you’ve broken something.
28 Relevant Javascript Interview Questions Part I - The first 4
For the past 12 years, I have been on both sides of the Front End Interview table. Sadly though, the emphasis is always put on Javascript during those rounds and the two other important languages - HTML and CSS - are not usually given the same weight.