Hello! Recently I’ve been thinking about why I explain things the way I do. The usual way I write is:
Try to learn a topic
Read a bunch of explanations that I find confusing
Eventually understand the topic
Write an explanation that makes sense to me, to help others
So why do I find all these explanations so confusing? I decided to try and find out! I came up with a list of 12 patterns that make explanations hard for me to understand. For each pattern I’ll also explain what I like to do instead to avoid the issue.
Simple mathematical concepts such as counting appear to be firmly anchored in the natural process of thinking. Studies have shown that even very young children and animals possess such skills to a certain extent. This is hardly surprising because counting is extremely useful in terms of evolution. For example, it is required for even very simple forms of trading. And counting helps in estimating the size of a hostile group and, accordingly, whether it is better to attack or retreat.
Digital Signal Processing is one of the most powerful technologies that will shape science and engineering in the twenty-first century. Revolutionary changes have already been made in a broad range of fields: communications, medical imaging, radar & sonar, high fidelity music reproduction, and oil prospecting, to name just a few. Each of these areas has developed a deep DSP technology, with its own algorithms, mathematics, and specialized techniques. This combination of breath and depth makes it impossible for any one individual to master all of the DSP technology that has been developed. DSP education involves two tasks: learning general concepts that apply to the field as a whole, and learning specialized techniques for your particular area of interest. This chapter starts our journey into the world of Digital Signal Processing by describing the dramatic effect that DSP has made in several diverse fields. The revolution has begun.
It’s often said that the internet has democratized education: the sum of human knowledge is only a Google search away! And yet, having access to information is only half of the story; you also need to be able to convert raw information into usable skills.
For a lot of us, the gap between the two can lead to things like tutorial hell—getting stuck doing tutorial after tutorial without ever feeling like you’re making substantive progress.
Learning how to learn effectively is super important, especially as a software developer; learning new things is practically the whole gig! If you can learn to quickly pick up new languages/frameworks/tools, you’ll be able to be way more productive than the average developer. It’s sort of a superpower.
In this blog post, I’ll share what I’ve learned about learning, and show you how I pick up new skills lickety-split!
If you’re visualizing it, almost every textbook sentence provides you with an opportunity to create a new image in your mind. As you progress further through the textbook, it will call back to more and more earlier concepts. In biochemistry, it’s things like the relationship between Gibbs free energy, enthalpy, entropy, and electrostatic potential; the amino acids; the nucleotides; different types of lipids; and a variety of major enzymes (i.e. DNA polymerase) and pathways (i.e. glycolysis). If you can figure out what those concepts are, and memorize them, you’ll be able to picture them when it mentions them casually in passing. If you can’t remember glutamine’s abbreviation or chemical structure, then every time the book mentions G (or is it E?), you’ll miss out on an opportunity to practice recalling it, or else you’ll have to interrupt your flow to look it up for the umpteenth time. This is a role for flashcards and super-convenient reference charts. Some knowledge is most helpful if you can access it in five seconds or less.
I’m hoping that this blog post could be helpful to someone who has decided to work in the area of symmetric key crypto. During my symmetric-key cryptanalysis journey in my grad school I had a fair amount of zig-zag-ing. Here, I’ll try to distill the key steps that enabled me to be productive in this area.
By symmetric key cryptanalysis considered are attacks on schemes such as block ciphers, stream ciphers, hash functions and AEAD schemes. An attack would be a violation of security promises made by the primitive, in time or space complexity less than projected by the primitive authors. This is regardless of whether the attack is practical or not. An unpractical attack cannot be fully verified and it has happened indeed that whole classes of peer reviewed cryptanalysis papers turn out to not work at all, which is, well, another topic.
These are the tape recordings of Richard Feynman’s 1961-64 Caltech Introductory Physics lectures, which form the basis of the book The Feynman Lectures on Physics. The original recordings were made on 1⁄4” reel-to-reel tapes, now preserved in Caltech’s Archive. In 2010 the entire collection was digitized by media preservationist George Blood, at a sampling rate of 96 kHz with 24-bit samples, PCM-encoded in tiff files about 2 GB each in size. For this online publication we are serving more compact versions, downsampled to 48 kHz with 16-bit samples, reencoded as AAC-HE (mp4) and Opus (ogg) at a data rate of 48 kbps.
We present entire lecture tapes without any editing or enhancement, including the tape leader. Parts of some lectures edited out of the commercial versions of these recordings are preserved here intact. Recorded material outside the lectures, including discussions between Feynman and his students and/or colleagues, never previously published, can be found in this publication. Three entire lecture recordings never heard before outside Caltech, including two lectures on Quantum Mechanics Feynman gave in 1964, are also included in this publication.1
Cryptocurrency hype is at its peak, blockchains are on every lips. Since I started writing this, Bitcoin & assorted cryptocurrencies hit multiple all-time highs then crashed 50%.
Besides all the sound and fury, I think I have something interesting and nuanced to say about blockchains and cryptocurrencies.
I also believe that to understand the topic, one has to understand the basics of the technology, more precisely than most articles make allowance for.
Contrary to popular belief, blockchain technology is not that complicated. I dare say it’s even quite simple.
So, in this article I explain the technology. I will tell you what it does, but not what the practical applications are, nor whether I think the technology has a future, whether it’s a scam, or whether cryptocurrency prices are justified. I will, however, tackle all these topics in a follow-up article.
Fallacies are fake or deceptive arguments, “junk cognition,” that is, arguments that seem irrefutable but prove nothing. Fallacies often seem superficially sound and they far too often retain immense persuasive power even after being clearly exposed as false. Like epidemics, fallacies sometimes “burn through” entire populations, often with the most tragic results, before their power is diminished or lost. Fallacies are not always deliberate, but a good scholar’s purpose is always to identify and unmask fallacies in arguments.
One of the most interesting and useful things computers can do for us is cryptography. We can hide messages, validate identities, and even build entire trustless distributed systems. Cryptography not only defines our modern world, but is a big part of how we will build the world of the future.
However, unless you want to dedicate years and a PhD to studying the subject, the actual workings of cryptography can be hard to learn. It can involve a lot of pitfalls and if you dare build from scratch, you are bound to make a fool of yourself. Why?
In my opinion, it comes down to history. Cryptography has had centuries of methods that have been made, broken, and remade again. Most tutorials on cryptography focus on the what: do this, don’t do that, follow the rules. But they skip over the why: why do we do the things we do? What are we trying to avoid?
To understand the why, we need to understand how we got here in the first place. And to do that, let’s set computers to the side for the moment and delve into the world of classical cryptography.
Knowledge Graphs (KGs) have emerged as a compelling abstraction for organizing the world’s structured knowledge, and as a way to integrate information extracted from multiple data sources. Knowledge graphs have started to play a central role in representing the information extracted using natural language processing and computer vision. Domain knowledge expressed in KGs is being input into machine learning models to produce better predictions. Our goals in this blog post are to (a) explain the basic terminology, concepts, and usage of KGs, (b) highlight recent applications of KGs that have led to a surge in their popularity, and © situate KGs in the overall landscape of AI. This blog post is a good starting point before reading a more extensive survey or following research seminars on this topic.
Last month, we published a story in collaboration with the NPR podcast Rough Translation about nonnative speakers navigating the world of “good” and “bad” English. Dozens of readers wrote in with their own stories about how challenging — and frustrating and rewarding — it can be to learn and teach English.
We’re featuring three responses that we found especially insightful: an English professor from India shares an English word she’s used for years — not found anywhere in the dictionary; an author points out the politics behind terms like “native language” and “mother tongue”; and an engineering professor discusses why stereotypes about “accented English” are totally hypocritical.