Jaan Tollander de Balsch

Do the math.

How to Implement Continuous-Time Multi-Agent Crowd Simulation

In this article, we discuss the mathematics on how to implement a continuous-time multi-agent crowd simulation. The article covers two agent models, circular, unorientable model, and three-circle, orientable model. We include extensive discussion about simulation objects, simulation mechanics, and implementation details and conclude by addressing the shortcoming and challenges of this type of simulation. We intended this article as a reference implementation for crowd simulation. We have experimented with the implementation in the crowddynamics library.

Computer Algebra with SymPy and Jupyter

In this article, we briefly discuss the benefits and challenges of present-day computer algebra systems. Our primary motivation is how to use computer algebra systems to automate the manipulating mathematical expressions instead of having to rely on tedious and error-prone manual methods. The article presents a practical guide on how to install and work with the open-source computer algebra system, SymPy, in the Jupyter notebook. We made an example notebook available as a GitHub gist.

How to Manage Tasks with Kanban

This article provides a quick overview of the Kanban project management system and how it can be used for managing tasks, increasing productivity, and visualizing workload. My introduction to Kanban came from John Sonmez as I was searching for tools for managing assignments in university. Since then, I have been using Kanban for managing university assignments, improving my blog, and managing work-related tasks. As an example, the article explains how to use KanbanFlow for managing school assignments. We chose KanbanFlow because it has a good set of features, and it’s easy to use and works both on desktop and mobile.

Exploring the Pointwise Convergence of Legendre Series for Piecewise Analytic Functions

In this article, we explore the behavior of the pointwise convergence of the Legendre series for piecewise analytic functions using numerical methods. The article extensively covers the mathematics required for forming and computing the series as well as pseudocode code for some of the non-trivial algorithms. It extends the research made in the papers by Babuska and Hakula (1, 2) by proving evidence for the conjectures about the Legendre series in a large number of points in the domain and up to very high degree series approximations. We present the numerical results as figures and provide explanations. We also provide the Python code for computing and recreating the results in LegendreSeries repository.

Noise Filtering Using 1€ Filter

This article explores the 1€ Filter, a simple, but powerful algorithm for filtering noisy real-time signals. The article focuses on the practical implementation of the algorithm, and it covers the mathematical basis, a pseudocode implementation, and simple, pure Python implementation of the algorithm. In order to understand why and how the filter works, we recommend reading the original article (1).

Tools and Methods for Reading Articles Online

The internet is full of written online resources for learning, such as blog articles, technical documentation, and encyclopedia. However, it can be challenging to manage all the resources we have read and then find them again at a later date. This article explores tools and methods for managing online text. It’s written for students, researchers, and people who are interested in reading or research.

Tools and Methods for Reading Books and Articles on E-Reader

This article delves into details on how to read and manage electronic books and articles in EPUB and PDF formats. It offers practical advice on which tools, software, and methods to use, based on my experience. We directed this article towards students, researchers, and people who are interested in a more systematic and organized way of managing and reading books and written material in electronic formats. The article continues from the article Reading and Managing Electronic Literature, which touched on the subject more abstractly.

Reading and Managing Electronic Literature

In our increasingly more electronic world where the internet is connecting people around the world, and we have greater access to information than ever before in history, the publishing of written word has changed. Even though physical books and magazines remain popular, electronic publishing has seen a significant increase, which has lead to the development of new technology for reading. To thrive in this new era, we have to adapt our old process for managing, reading, and understanding the written word by utilizing the capabilities of modern technology. In this article, we explain the reading process and go through these new technologies.

Scientific Writing with Markdown

This blog post covers how to use Markdown for scientific and technical writing, which often involves writing equations, code blocks, citations, and other unique features depending on the document in question. We have included software recommendations for writing and converting Markdown it into other formats such as HTML (blog posts, slides, documentation), PDF (essays, reports) or EPUB (books). For example, I wrote this blog post using Markdown.

Customizing Unity for Productivity

This blog post covers customizations that I have found useful for the overall feel and usage of the Unity desktop environment, the default on Ubuntu 16.04. We explain how to set up useful features such as workspaces, hiding the launcher, changing to a custom theme as well as modifying the date and time format of the clock and changing default user folder paths.

Mathematical Programming Workflow with Julia and Atom

One of the challenges at university, studying applied mathematics, has been finding tools for efficiently solving mathematical and algorithmic problems, and documenting them using a computer. This post covers how to improve your workflow for this kind of problem using the capabilities of modern code editors and programming languages. It increases your productivity and makes problem-solving more fun and documenting easier.

Ergonomic Workstation

In this post, we explain the importance of an ergonomic workstation for people who are working long hours on a computer. We cover the components of such a workstation and why they can improve health and productivity. For example, we can avoid back, neck, and wrist problems, improve typing speed, and work longer without discomfort.

Scala Programming using IntelliJ IDEA

This short article illustrates reasons for switching to IntelliJ IDEA as an alternative IDE for writing Scala as opposed to using Eclipse. We also show how to do the setup. IntelliJ IDEA is a Java IDE from JetBrains, which supports Scala. IntelliJ’s youtube channel contains more material and guides for those who are interested.