Thinking back to my early math education, it felt like there was a single day dedicated to the three basic properties of numbers (associative, commutative, and distributive), but more than a week for “FOIL”. In retrospect, this feels backwards—like it foiled the learning process.

FOIL is a trick for multiplying two sums: (a + b)(c + d). It’s an acronym that stands for First, Outer, Inner, Last. All you have to do is follow the rules and not think too much about it:

FOIL - first, outer, inner, last

which gives us:

FOIL result - ab + ad + bc + bd

Unfortunately, there’s no understanding with FOIL. It’s unclear why it works and if you encounter something a little different—like (a + b + c)(d + e)—then you don’t have the tools to handle this curveball.

However, going back to our three basic properties of numbers and looking specifically at the distributive property, we can come up with a generalized approach that doesn’t require remembering any tricks.

With the distributive property “multiplication distributes over addition”, but more simply it looks like this:

a(b+c) = ab + ac

If we step back to our multiplication of sums (a + b)(c + d) and we imagine (a + b) as one variable, then we suddenly see something that looks exactly like the distributive property! Essentially, we just apply the distributive property twice:

distributive property applied twice, instead of FOIL: (a + b)(c + d) = (a + b)c + (a + b)d = ac + bc + ad + bd

By building an understanding for the distributive property, we don’t need to learn FOIL, and even better, we understand why FOIL works. When you’re able to apply an abstract concept in math, it suddenly shifts from being a tricky set of rules to follow, to becoming an empowering tool to think through and solve problems that you haven’t even seen before!

More so, you can see flavors of the distributive property in other tricky concepts taught in early math. For example, in long division, you end up working you way down the digits of the number being divided in a way that ends up looking like the distributive property in reverse. With 435 / 5, you extract 80 and 7, to get 87, which means we can represent 435 as: 5 * 87 = 5 * (80 + 7) = 5*80 + 5*7.

I think more of a focus on abstract concepts would help a lot of kids crack higher levels of math and feel more empowered in the classroom. FOIL should be a brief mention, while the basic properties of numbers should be many weeks of instruction. Obviously, I’m not a teacher, have no education in teaching, and have not been put in the position to try and teach a classroom of elementary school students or middle schoolers how to multiply sums of numbers. Also in my first go at thinking through this, I thought the distributive property was the first really abstract concept students encounter in math, but I quickly realized that order of operations (Please Excuse My Dear Aunt Sally) is a surprisingly abstract concept that is really fundamental to all of this (and I can excuse the dear acronym in this situation). On top of that, instruction on this material must be way more nuanced in practice and ultimately require way more individualization for different types of learners, and I’d love to hear ideas from actual math teachers on when FOIL might be helpful and when it can be dumped.

unSAFE revisions

The YC SAFE is designed to be super simple and to streamline the process of raising capital for an early stage company. If you receive a document for one from an investor, it’s good to compare it with the standard YC one for changes. If there are any major changes, then things might be… unsafe. Stick to innovating on the product, not the financing.

Here’s how to diff the file in Google Docs using the Compare Docs feature:

  1. Open the file in Google Docs, if it’s a docx file then you’ll need to go to File > Save as Google Docs before proceeding
  2. Download the associated official YC SAFE docs
  3. Upload those files to Google Docs and convert from docx again
  4. In the YC file, go to Tools > Compare documents, find your investor’s doc, set “Attribute differences to” to the name of the VC, and continue
  5. Run through the edits and approve all the ones that are “Format”, “Add/Delete space/tab/paragraph”, while making sure you leave the ones that are “Replace”, “Delete paragraph”, and anything else

Hopefully an automated solution will be developed for step 5 will be rolled out (you can ignore formatting in Microsoft Word), however the file is short so it shouldn’t take long.

Now you can easily see any differences and repeat these steps if you received a pro-rata side letter too. While problems shouldn’t come up, this is still a great way to make sure you’re not making any unsafe moves, but do still get a lawyer to review things before you sign.

A simple JavaScript decorator for wrapping functions in a call, so console.log calls within it are neatly grouped together. This can be helpful for debugging complicated execution of a program. read full post…
A quick example of how to combine and compress PDFs from the command-line using pdfunite and Ghostscript. read full post…

30 May 2021


Some notes from my experience taking the MIT class “21M.361: Composing with Computers” with Peter Whincop. read full post…

Peter Coles

Peter Coles

is a software engineer who lives in NYC who is working on Superset and also GoFullPagemore »

github · soundcloud · @lethys · rss