This blog is about Simon, a young gifted mathematician and programmer, who had to move from Amsterdam to Antwerp to be able to study at the level that fits his talent, i.e. homeschool. Visit https://simontiger.com
I added the export button! It’s under the “export” folder. Clicking it will show you a serialized version of your path. It’s just in JSON format, so you can read/use it quite easily.
The Bézier curve is made out of multiple “segments”, also called “cubic curves”. It turns out that if you write down the equation for such cubic curve, you actually get a cubic polynomial. I derived these equations:
I started with the equation of a linear curve, worked up to a quadratic curve and the to a cubic curve. Maybe there’s a mistake in these, because there’re a lot of steps and I was a bit inconsistent. If you watch my previous video about Bézier curves, you’ll see how a cubic curve is derived.
Yes, Simon had already made another video about Bézier curves, see our earlier blog post. It’s funny how back then I had no idea what Bézier curves were, and by now, after I have started studying motion design, béziers have become my daily thing. And I’m learning so much from Simon! This is the power of the homeschooling lifestyle!
Simon enjoyed the informal interaction during the live session, even though he had been a little critical about the course. He always tunes in better once it gets less formal. The new World Science Scholars cohort seems to be more responsive, too. Everybody stayed after the session for some more chit-chat.
Yesterday, we have received Professor Cumrun Vafa’s new book as gift upon finishing the course. A very generous gesture!
As a suggestion on a Coding Train thread on GitHub in which Daniel Sghiffman was asking for ideas on how to keep poll votes after restarting the server, Simon has created another library for Node.js: a node package published on NPM (Node Package Manager). This summer, while we were in Amsterdam, he had already made another Node package that computes the GCD (greatest common divider) and LCM (least common multiple).
Now I made another super-basic Node package that just spins up a database. It’s a really short piece of code (about 50 lines) but it creates a database that’s super-profound. Like if you have a bunch of entries and each entry has a name, I can access each entry by their name.
The new cohort of World Science Scholars (a World Science Festival program for young math talents from across the world) seems to be more active than last year’s group. Or maybe it’s just that more people are used to online education and live video interaction. Last year, there wasn’t much interaction between the kids and hardly anyone kept their video connection on during the whole session (that’s why Simon was wearing his pyjamas — we hadn’t expected him to be on video). Luckily, things seem to have changed in the new world: the students even stayed to hang around and chat to one another after class! Simon would really like a separate Discord server for all the scholars, then they could probably really talk without the limits of the official platform. We’re going to suggest this to the coordinators.
Below are the questions Simon had typed for Professor Greene in the chat but didn’t get a chance to discuss anymore as they had run out of time:
Making Benji’s question on Length Contraction a bit more specific, how fast would a meter-wide object need to go to length-contract to the size of an atom?
(Answer: 99.99999999999999999% the speed of light. I have used the formula for the Gamma factor.)
As you said previously, Quantum Teleportation is with Entanglement. Entanglement isn’t faster-than-light information transfer, because the results are random. But there is the information just THAT one particle has been measured, does that travel faster than light?
Fun Fact: the graph of 1/gamma for different speeds looks like a quadrant of a circle!
The deadline for submissions was September 1, and Simon was responsible for writing the pitch, so the last few days leading up to the deadline were brutal. There was a huge lesson on project management to be learned, because very late into the project Simon suddenly discovered many important features didn’t work (like the else-if statements) and his more experienced 13-year-old partner didn’t have the time to invest into debugging. Simon struggled between trying to repair the broken features on his own, sometimes sitting down and working on it for hours, sometimes procrastinating or breaking down in the face of the approaching deadline. Even though he realizes he most probably won’t win this jam, alongside many adult competitors, he has already won much more than the grand prize on offer: he has scored his first real life experience delivering a product as a team.
In July, Simon truly dove into server side programming, creating several more bots we’ve forgotten to blog about. He is now managing a whole bot playground on Discord where his peers can test their bots, too. Simon created command handling code, so that all his new bots would have the same main file. All the commands are organized in a folder. Each command is a separate file and it’s easy to add a new command.
Below are a couple of screenshots of Simon’s summer bots. The first screenshot is of a Twitch bot he made:
The second screenshot is of Formulamatic, a bot that can perform calculations if you type “!calculate”. It can calculate factorials, trig functions, roots, powers, logs and play pong:
Later, Simon also added a system to dynamically update the help command.
Previously, I had to laboriously update the help command each time I had a new command. Now if I have made changes to the command I can reload it so that the changes are accepted.
Simon has solved his first 4 kyu kata (programming assignment at a master programmer level) on CodeWars:
In our dojo, kata are real code challenges focused on improving skill and technique. Some train programming fundamentals, while others focus on complex problem solving. Each kata is crafted for and by the community.
Each kata on the site is set to a Kyu/Dan rank, based on its subject area and difficulty. The community collectively determines rank in the Beta Process.
Solved more of this level problems a couple days later:
Simon has also discovered that his ranking on CodinGame, a competitive programming platform, is quite high!
Simon is working on a clone of Tchisla, an absorbing number puzzle app from the (Russian!!) creators of Euclidea. The aim is to represent numbers as arithmetical expressions using only one of the digits from 1 to 9 and the shortest way possible. (For example 96 = 99 – √9 or 96 = 4 * 4! or 96 = 2 * 2 * (22 + 2) are all valid representations of 96).
It’s true what the makers say: “You suddenly discover that you know a lot of numbers and their properties: factorials, squares, cubes, prime numbers, roots and others. Tchisla imperceptibly helps you to improve your calculating skills.”
Simon doesn’t like the fact that you can currently only find Tchisla as an app while he wants to screenshare with his friends in a browser, so he has decided to develop his own version. So far he has completed these steps in Glitch: