I’m a new reader of Jeremy Kun’s Math ∩ Programming blog. However, it didn’t take much scrolling before I read a post mentioning a tool I’ve wanted to find for quite a while and hadn’t even realized it.
In “Contextual Symbols in Math” post, Kun shared a link to Detexify. This tool guesses the names of symbols based on drawings of them. I’ll admit that when I first visited the site, I was pretty skeptical about whether the tool would work for me. I wondered how well the tool would perform if the drawing input was messy, because I find it tedious to try to draw well on a computer screen. So, I tried it out by quickly drawing a few symbols that I already knew the names of. I was impressed to discover that it was able to correctly guess the identities of the symbols based on my chicken-scratch-style drawings. Next, I made my drawings a little bit worse and was surprised that the tool still offered correct guesses.
This is exactly the kind of tool I find useful when I’m reading papers in areas of math and science that I’m less familiar with. Sure, I can often figure out what an unfamiliar symbol means by looking around online or asking researchers in the field, but this tool could cut down a lot of time. The tool does spit out multiple options for the same drawing, but at least that narrows down the list (and based on the symbols I tried, it seems pretty simple to identify which one is the match).
In addition to the main content on the blog, Kun’s site has an extensive list of primers on math and computer science topics, including ones from abstract algebra, computing theory, topology, coding theory and more. I think this section would be useful to students or anyone who would like to brush up on certain topics.
Many of his posts are also tagged as “general” and cover a wide range of topics. I enjoyed reading “Math Versus Dirty Data,” in which Kun provides a snapshot of his experience working as an engineer at Google. He wrote that the hard part of his job isn’t working on large optimizing problems:
The real hard part is getting data. Really, it’s that you get promised data that never materializes, and then you architect your system for features that rot before they ripen.
There’s a classic image of a human acting as if they’re throwing a ball for a dog, and the dog sprints off, only soon to realize the ball was never thrown. The ball is the promise of freshly maintained data, and recently I’ve been the dog.
When you don’t have good data, or you have data that’s bad in a known way, you can always try to design your model to accommodate for the deficiencies. As long as it’s clearly defined, it’s not beyond our reach. The math is fun and challenging, and I don’t want to shy away from it.
He goes on to describe in detail how bad or inadequate data affect his work in myriad ways and what he has been doing to counteract some of those effects. I think this post is particularly relatable now, as we have been seeing on a large scale the impacts that inadequate data have had on the world in the context of the pandemic.
Kun ends the post by stating “We let dirty data interfere with our design and architecture, now we’re paying back all that technical debt, and as a consequence there’s no time for our human flourishing. I should open a math cafe.” Which left me dreaming of visiting a math cafe. Are those a thing? (The first several results Google gave me with those search terms related to online math learning games for kids that let them run their own imaginary coffee shops.)
I was intrigued by “Bezier Curves and Picasso,” although it’s definitely on the longer side of posts. After enjoying this post and deciding to mention it here, I realized that Brie Finegold also wrote a post on this blog about that post back in 2013. I guess it goes to show that posts about the intersection of math, art and dogs have long-lasting appeal.
Want to share feedback or ideas for blogs we could cover in the future? Reach out in the comments or on Twitter (@writesRCrowell)!