A summary of my 2021 Google Internship and how I grew as a programmer this summer.
Some appreciation for my hosts, mentor, and all of the people I've gotten to meet so far during my internship.
Design document progress! And then a story of learning how to think about meetings, and prepare for them effectively.
Updates on my past two (very busy!) weeks, and a discussion of the best feedback method.
I introduce by 2021 internship project: Project Cereal, a new serialization system for Blockly.
The story of creating a graph visualization for the book A Pattern Language. Explores the struggle of finding the raw text, processing it using python, and finally visualizing it using gephi.
An explanation of an algorithm for finding the lowest common ancestor of two nodes in a directed acyclic graph. Includes pseudo code and gifs!
A summary of my 2020 GSoC project, and how I grew as a programmer this summer.
Progress update on my GSoC project (decisions are getting made!) Then a discussion of Finnish Lessons by Pasi Sahlberg, and my theories about the reasons for America's stagnant educational system.
A small update on GSoC progress as I wait for code review. Then a discussion of gamification, and how I think it can actually be de-motivating.
Progress on actually building the thing! Then some thoughts on the fundamental unreformability of school, and "How Children Fail" by John Holt.
Design document feedback, and some thoughts about thinking. Specifically knowledge, understanding, and productive thought.
A discussion of visual programming and some of the scientific papers I've been reading related to it.
I introduce my GSoC 2020 project: Operation Options, Enum Blocks for MIT App Inventor.
A visual, interactive explanation of rotational matrices and rotating points in 2D space.
We design a new Mutator API for Blockly. This post primarily focuses on how I would design a developer-facing API that is both useful and extensible. There is also a short discussion of implementation at the end.
An exploration of an alternative (read superior) exponent, root, and log notation.
We create a new renderer for Blockly that renders connections and fields in lines, like a text editor. Includes a demo workspace and lots of code samples.
How to use Blockly's type checking system to define the order of statement blocks. Includes information about how Blockly's type checks work in the back-end, as well as many examples of how to use type checks to achieve specific behavior.
The final level of shadow customization. With a special focus on custom angle, number, colour, and text fields. Plus some downloads to help you get started using custom shadows.
We design a new serialization system for Blockly. This walks you through what I think about when I design a new system. As well as the specific challenges that come with refactoring serialization.
How to create a shadow block. Plus why you should customize them, and how you can.
The difference between fields, inputs, and inputs with shadows. Plus the problems with and use cases for each.