Introducing memoization, a technique to speed up computation by re-using previously computed results. Shows an exasmple using factorial and considers the time/space tradeoffs involved with memoization.
A full-featured, 5-part tutorial on creating a pixel art editor using JavaScript and HTML5 Canvas. Supports saving and loading images, color selection, transparent backgrounds, and more.
JavaScript is a fundamentally event-driven programming language. Learn about the event loop, adding handlers to events with listeners, and debouncing for limiting the number of times those handlers are called.
Introduces the Document Object Model view of a webpage, covering how we can use Selectors to select objects of interest on the page and manipulate them.
Closures allow a function to retain information about its context after the function has returned. We provide examples and cases where closures can be useful.
We create a weather application using the National Weather Service API to learn about Asynchronous code using Promises and Application Programming Interfaces (APIs).
Even though CBC is more secure than ECB, it is still vulnerable to attacks without taking additional precautions like using a Message Authentication Code (MAC). Cryptopals Set 2 Challenge 16.
Yet Another demonstration of why you shouldn't use ECB, even when some random-sized block of padding is prepended to the message. Cryptopals Set 2 Challenge 15.
Yet Another demonstration of why you shouldn't use ECB, even when some random-sized block of padding is prepended to the message. Cryptopals Set 2 Challenge 14.
We demonstrate how to perform ECB decryption one byte at a time, a good demonstration of why ECB should not be used in practice. Instead, use CBC! Cryptopals Set 2 Challenge 12.