Redesigning my circle diagrams, part 2 #

In the previous post I described how I redesigned some of the diagrams on my circle drawing page. I found that I had been reusing code in ways that made the diagrams worse. I switched to more copy-paste programming to make the diagrams better.

Old outline diagram

Labels:

Redesigning my circle diagrams, part 1 #

Linus Arver's post about circle drawing reminded me that I wanted to add circle outlines to my circle fill page. My page is focused on circle fill rather than outline, but one of the fill algorithms can be adapted to generate outlines instead. I added a section on circle outlines, reusing the code from the circle fill diagrams. Unfortunately … I didn't like the result.

Diagram illustrating the circle outline algorithm

Labels:

Learning by writing #

I've been learning about the mathematical modeling of predator-prey relationships. The idea is that as the population of a prey animal (like mice) increases, the population of a predator animal (like foxes) will increase because they have lots of food. But then the mice will be eaten so their population will decrease, and then the population of foxes will decrease, and the cycle will start over again.

This blog post isn't about predator-prey though. It's a peek at how I learn things with note taking (see my previous blog post) and small projects. You might have seen some of my many lightweight explanation pages (examples: noise, hexagons on a sphere, organic cave maps) but they often don't start out that way.

My personal information workflow, part 2 #

In part one I described the kinds of things I asked myself when deciding on how to manage my personal information — bookmarks, references, notes, tasks, contacts, etc. The answer is: I don't have a single consistent system that I use for everything. I use many incompatible systems depending on where I am and what my goal is.

My personal information workflow, part 1 #

Several people have asked me how I organize my projects. There are various systems out there like David Allen's Getting Things Done, Taiichi Ohno's Kanban boards (e.g. Trello), Ryder Carroll's Bullet journal, Niklas Luhmann's zettlekasten (e.g. Roam Research), Dave Seah's Emergent Task Planner, and many more.

There's a danger in spending too much time organizing my projects instead of working on my projects. Questions I asked myself:

Hex diagram labels #

A few weeks ago a reader suggested the labels on my hex diagrams for the "cube" coordinate system could be improved. I took a look at what I had:

Old labels on the pointy hex grid Old labels on the flat hex grid
Old labels are inconsistent across grid rotations

Labels: ,

What I did in 2020 #

It's time for my annual self review. This has been a weird year. It was already turning out to be a weird year for me before the pandemic hit. In last year's annual review I wrote:

What are my goals for 2020? Unfortunately, I don't have any strong goals. After working on big projects in 2018, I ended up working on small projects in 2019. I would like to work on something bigger, but I think my focus will be on learning new things rather than explaining things I already know. I'd like to work on projects that last a month or two rather than a week or two, to really dig into them and learn a topic deeper than I can do in a week. Other than that, I feel kind of aimless right now. I'm ok with that. I'm in a wander-and-explore phase of my life.

Note the I feel kind of aimless right now. I had decided not to focus on tutorials in 2020. I was going to spend more learning things, traveling, and visiting friends. Then the pandemic arrived. So I dove into learning things, but put the rest on hold.

Labels:

Pathfinding diagram improvements, part 2 #

In the last post I described improving the diagrams on my Tower Defense page. Once I finished that, I moved on to my other pathfinding pages, starting with the A* page.

inline legend
inline legend

Labels: , ,

Pathfinding diagram improvements, part 1 #

Back in April I wrote about some pathfinding diagrams I was unhappy with. Last month I wrote about reimplementing the diagramming code.

I started with the Tower Defense page. It's smaller than the A* page and I wanted to try out some ideas there before adopting them on the more popular page.

old diagram shows numbers
old diagram shows numbers

Labels: , ,

Reimplementing my pathfinding pages #

Back in 2018 I wrote about rewriting my hexagonal grid page. I had said “I'm generally not a fan of rewrites that have no end-user benefits”. I had started that rewrite because the code was making it hard to make diagram improvements that I wanted to make. As a side effect of the rewrite, I also made some performance improvements.

I've been wanting to make some diagram improvements to my A* page. While looking through the code I realized I was in the same situation as with the hex page. It was hard to make the changes I wanted to make because of the abstractions I had chosen. I decided to rewrite the most problematic abstraction, the Diagram class.

As a side effect of rewriting the Diagram class, I've improved page speed:

Before: speed score 83/100; After: speed score 97/100
Before and after page load speed

Labels: , ,