Home Projects mdi-download Resume {{ theme.name }} mdi-github-circle mdi-linkedin mdi-stack-overflow
Updated: {{ updated }}

Welcome

I'm Jens Wagemaker, the man that 'gets things done'.

Quotes:
"Sometimes all the puzzle pieces fall in the right place; the result serves as a puzzle piece for the next bigger puzzle."
"If you understand it, it is quite fun!"

Problem solving and creating things are enjoyable and give me the challenge that I need. In work, I like to cooperate with ambitious people. I have a broad interest, but I direct my attention to exact science, ICT and business. Others value me for my kindness and because I can explain things in a clear and patient manner.

At the Vrije Universiteit Amsterdam, I did three bachelor degrees in the studies:

  • Mathematics
  • Computer-Science
  • Physics and Astronomy

You can reach me at: Jens (dot) Wagemaker (at) gmail (dot) com

Take a look at my projects to see what I'm up to.

Recent Activity

{{ k.title }} {{ k.description }}
Updated: {{ updated }}

Projects

{{ project.title }} {{ project.description }}
Updated: {{ updated }}

Blog

{{ blog.title }} {{ blog.description }}
Updated: {{ updated }}

Projects

{{ pub.title }} {{ pub.description }}
Updated: {{ updated }}

About me

I'm Jens Wagemaker, the man that 'gets things done'.

Quotes:
"Sometimes all the puzzle pieces fall in the right place; the result serves as puzzle piece for the next bigger puzzle."
"If you understand it, it is quite fun!"

Problem solving and creating things are enjoyable and give me the challenge that I need. In work, I like to cooperate with ambitious people. I have a broad interest, but I direct my attention to exact science and ICT. Others value me for my kindness and because I can explain things in a clear and patient manner.

At the Vrije Universiteit Amsterdam I did three bachelor degrees in the studies:

  • Mathematics
  • Computer-Science
  • Physics and AStronomy

You can reach me at: Jens (dot) Wagemaker (at) gmail (dot) com

Updated: {{ updated }}

Physics bachelor thesis: Finding and quantifying anthropogenic methane hotspots in the Middle-East and China

This thesis was a collaboration between the institutes SRON Netherlands Institute for Space Research and TNO.

Abstract:

In this research the aim is to find and quantify anthropogenic methane hotspots in the Middle-East and China. The atmospheric methane measurements were made with the SCanning Imaging Absorption spectroMeter for Atmospheric CHartographY (SCIAMACHY) instrument on board the European Space Agency’s environmental research satellite ENVISAT. The SCIAMACHY data showed hotspots and a selection was made. After correcting for elevation it was discovered that one hotspot was actually an elevation related xCH4 anomaly. Because uncertainty in the quantification was expected a calibration was done to the previously studied Four-Corners hotspot. The remaining two hotspots were quantified and showed high emission rates. The Emission Database for Global Atmospheric Research (EDGAR) v4.2 showed no indication of sources of these magnitude and for both of these hotspots the statistical significance has to be further investigated. However a draft version of EDGAR v4.3.2 did show a large emission hotspot coinciding with one of these SCIMACHY hotspots.

mdi-download Document

Datascience aspects

This project consisted mainly of datascience. I used Python for all the programming.

Combining information from multiple sources

I combined various sources of information: This data was combined using Google-Earth overlays. A Google-Earth overlay is an image that is laid over on google-earth's globe. Examples are shown below.

Geometrical data

Satellite data

Emission data

Flaring data

Elevation data

Oil and gas infrastructure data

Location selection and analysis tool

I build a location selection and analysis tool for Google-Earth so that each member of the team could select interesting locations directly on a google-earth overlay. This tool
  1. extracted the locations from Google-Earth's place markers (stored in a kml file),
  2. retrieved external data (satellite data, emission data, etc.) of interest for these locations,
  3. generated plots using that data,
  4. added the plots to the kml file for each location/place marker.
Examples of the place markers and the plots added to place markers are shown below.

Using Google-Earth's place markers we specify interesting points.

Plots generated at a location.

Elevation corrections using a linear regressions

The measurements were corrected for the elevation. This was done using linear regressions. Many linear regressions were performed, since we had multiple locations and we did multiple regressions for each location. So, I streamlined the process off
  1. selecting areas,
  2. retrieving external data for the selected areas,
  3. doing regressions using the retrieved data.

Area selection and analysis tool

This streamlining was done by creating another selection and analysis tool for Google-Earth that was capable of selecting areas (instead of individual locations). Now, instead of Google-Earth place markers I used polygons. This tool works by the steps:
  1. the user covers the area of interest by rectangle polygons (in Google-Earth),
  2. the tool reads out all polygons (stored in the kml file) and marks the area on a grid,
  3. data is retrieved for the selected area,
  4. regressions are performed using the data.
These steps are shown below.

Using Google-Earth's polygons we mark the area (the white planes).

The polygons are read by a Python script and each grid-cell in the area is covered by a blue marker.

Linear regressions are done using Python on external data belonging to the area.

Follow up

In 2017, my project received a follow up in the form of a master thesis by Han Chen. The title of this thesis is: Quantifying the Anthropogenic Methane Emission from Large Local Sources. It can be found here.
Updated: {{ updated }}

Computer-Science bachelor thesis: A Formally Verified Proof of the Mason-Stothers Theorem in Lean

This thesis was done at the Vrije Universiteit Amsterdam.

Abstract:

Although having computer checked proves has several advantages, the use of interactive proof assistants has not yet spread into the mathematical community. Problems that withhold mathematicians from using proof assistants include: lack of automation, libraries and expertise. Lean is a new proof assistant, developed towards use by mathematicians. I used Lean to formalize the Mason-Stothers theorem, which is a number theoretical result whose proof is short and yet contains many algebraic concepts. To develop the proof I created a reusable formal library including results on polynomials and unique factorization domains.

mdi-download Document

Contributions

My (co-author) contributions to the Lean mathematical components library:

  • mdi-github-circle unique factorizations domains
  • mdi-github-circle gcd domains
  • mdi-github-circle the association relation
  • mdi-github-circle polynomials

mdi-github-circle Mason-Stothers

The formal statement of the Mason-Stothers theorem in Lean

Updated: {{ updated }}

Mathematics bachelor thesis: Matrix Networks

This thesis was done at the Vrije Universiteit Amsterdam.

Abstract:

This thesis studies the linear algebra related to the back-propagation algorithm. We wanted to answer the following questions: (1) What is a matrix network? (2) Can a matrix network be represented by a single matrix? (3) To what extent is this representing matrix unique? (4) What happens to the representing matrix when we transpose the network? As a starting point we constructed a paradigm example of a matrix network based on study of the back-propagation algorithm. We found that it was built out of multi functions (a structure we introduced that combines a coproduct, morphism and product). It turned out that there is a canonical relation between multi functions and complete bipartite graphs (of morphisms). This relation allows us to construct representing matrices from complete bipartite graphs and is computationally interesting. To finally answer these questions we use the notion of a graph over a category. We concluded that a matrix network is a graph over the category of matrices. We concluded that a matrix network can be represented by a single matrix by constructing a multi function from the sum over the paths. This representation is far from unique. However, we formulated an equivalence relation that links these different representations. This equivalence relation is used in a hypothesis that describes what happens to the representing matrix when we transpose the network.

mdi-download Document

A multi function over the category of matrices.

Updated: {{ updated }}

Started a tutoring company: 'Bijles Studio'

In 2015, I started my tutoring company called Bijles Studio. The company is still in operation.

This company offers tutoring at high school and higher education level, mainly in math and science.

Growth

From 2016 onwards, I have hired other tutors. I have collaborated with 6 tutors.

Revenue

  • 2015 - € 1516
  • 2016 - € 2210
  • 2017 - € 6498
  • 2018 - € 6528

Creation of the webpage

There were two versions of the webpage. The first version was coded from scratch in HTML and CSS; it looked like a 90's webpage.
The second version was made using WordPress and is more modern.

Creation of the logo

For the logo I used my own hand to give it a personal touch. I took a picture and created an SVG image out of that using Inkscape.

Creation of legal documents

I created a 'Terms and Conditions' document ('Algemene Voorwaarden' in Dutch). For this, I got inspiration from multiple terms and condition documents from other companies. This is the resulting document (in Dutch): mdi-download Algemene Voorwaarden .


Updated: {{ updated }}

Build an administration system for my tutoring company.

To learn more about my tutoring company, you can visit this page.

Why?

There are some repetitive tasks (in my company) that are time consuming and prone to error such as:
  • keeping track of the lesson count (I work with packages of multiple lessons)
  • producing payment statements
  • producing invoices
  • mailing clients

What?

I build an application that performs the above tasks and more. Due to this application, my administration work is now for 70% automated, moreover, errors are greatly reduced.

This application is web-based. It is made using the technology stack: Ubuntu - Flask (Python server side) - Angular (client side) - MySQL (database). This is an overview of the components of the application:

How?

  • The course on databases I followed gave me the background knowledge to design a relational database for my company's administration.
  • The course on web technology gave me a useful introduction to the techniques that are used in modern applications.
  • I already had plenty of Python experience from earlier projects such as this project

For the first version of my system I consulted a friend who had good experience with building web-based applications. I chose to work with the technology stack mentioned before because my friend also used this stack.

A year after building and using the first version of the system, I build a second version. In this second version, I use a MySQL database in the cloud, whereas in the first version, I use a local SQLite database. Moreover, I refactored the application using the book: Flask Web Development, 2nd Edition.

Features

Customer database


Appointment planner


Lesson packages


Invoices overview


Tutor database


Tutor lesson package coupling


Automated invoices


Automated payment statements


Automated pre-composed email with attachments