Shadow Blocks Pt. 1: Fields vs Inputs vs Shadows + Inputs
The difference between fields, inputs, and inputs with shadows. Plus the problems with and use cases for each.
Where Beka writes about things she cares too much about.
The difference between fields, inputs, and inputs with shadows. Plus the problems with and use cases for each.
How to create a shadow block. Plus why you should customize them, and how you can.
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.
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.
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.
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.
An exploration of an alternative (read superior) exponent, root, and log notation.
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.
A visual, interactive explanation of rotational matrices and rotating points in 2D space.
I introduce my GSoC 2020 project: Operation Options, Enum Blocks for MIT App Inventor.
A discussion of visual programming and some of the scientific papers I've been reading related to it.
Design document feedback, and some thoughts about thinking. Specifically knowledge, understanding, and productive thought.
Progress on actually building the thing! Then some thoughts on the fundamental unreformability of school, and "How Children Fail" by John Holt.
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 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 summary of my 2020 GSoC project, and how I grew as a programmer this summer.
An explanation of an algorithm for finding the lowest common ancestor of two nodes in a directed acyclic graph. Includes pseudo code and gifs!
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.
I introduce by 2021 internship project: Project Cereal, a new serialization system for Blockly.
Updates on my past two (very busy!) weeks, and a discussion of the best feedback method.
Design document progress! And then a story of learning how to think about meetings, and prepare for them effectively.
Some appreciation for my hosts, mentor, and all of the people I've gotten to meet so far during my internship.
A summary of my 2021 Google Internship and how I grew as a programmer this summer.
A visual explanation of the relationship between limits and derivatives.
We want our software to be modular. We want it to be decoupled, well defined, etc. Right? Not exactly...