CV of Jelte Jansen
Personal Information
- Name: Jelte Jansen
- Date of Birth: February 7th, 1979
- Sex: Male
- Nationality: Dutch
Profiles
- LinkedIn: Jelte Jansen
- Twitter: @twitjeb
- GitHub: tjeb
- Website: tjeb.nl
Experience
-
Programming languages
- C, C++, Go, Python, Perl, Ruby, Java, Javascript, Lua
-
Hands-on experience in protocol implementation
- DNS, DNSSEC, TCP/IP, HTTP(s), AS2, AS4, PEPPOL, SMTP, S/MIME, PKCS#11
-
Operating Systems developed for
- Linux, BSD, Solaris, Windows, OS X
Employment History
-
2018-present: Ionite
- Description: Consultancy, technology development, and services regarding electronic invoicing
- Function: Freelance
- Tasks: Consultancy, protocol development, services development
- Specifics:
- Advice and technical support for Simplerinvoicing, regarding AS2, PEPPOL, EN-16931, NLCIUS, SMP, SML
- Advice and technical support for the NPa, regarding AS4, PEPPOL, EN-16931, NLCIUS, SMP, SML
- Developed the NLCIUS Schematron validation files
- Developed and maintains the NPa Peppol Test Tool
- Developed and maintains the NPa Senders Directory
-
2013-present: Stichting Internet Domeinregistratie Nederland
- Description: Foundation that administrates the .nl country-code top-level domain
- Function: Research Engineer
- Tasks: Technical Advisor, Internet protocol research and development
- Specifics:
- Technical project lead of SPIN
- Technical project lead of SIDN Valibox
- Involved in protocol design and standardization (IETF, RIPE)
- Technical Lead SimplerInvoicing (SI-UBL and PEPPOL transport) (2017-2018)
- Prototype Development for new protocols and services, this ranges from brand new services, such as the Domain name Surveillance system (www.sidn.nl/a/internet-security), to extensions of the PEPPOL Transport network (www.peppol.eu)
- Member of the Privacy Board at SIDN, as a technical expert
- Editor for Privacy & Informatie (www.uitgeverijparis.nl) (2016-2018)
- Program Committee Member for RIPE Meetings (meetings.ripe.net) (2015-2017, 2018-2021)
- Member of the Board of Advisors for SIDN Fund (https://www.sidnfonds.nl/excerpt/)
-
2009-2013: Internet Systems Consortium www.isc.org
- Description: Non-profit public benefit organization that produces and distributes quality Open Source software, and provides professional services based on that software.
- Function: Software Engineer
- Tasks: Software design, Software development, Protocol engineering, Scrum Master, member of Best Practices board
- Specifics:
- Design and development of the http://www.isc.org/bind10 software.
- Involved in standards work at the Internet Engineering Task Force http://www.ietf.org
- Scrum master. Since ISC is a very distributed company, with small teams consisting of people working all over the world, this involved applying the Scrum methodology as befits our team, which posed a unique set of challenges.
- Represented my engineering team at a best practices board, where common practices from different teams were combined and formed into a set of company-wide best practices for software engineering.
-
2004-2009: NLnet Labs NLnetLabs.nl
- Description: Foundation to develop, implement, evaluate, and promote new protocols and applications for the Internet.
- Function: Developer
- Tasks: Research, development, protocol engineering, application testing, systems maintenance
- Specifics:
- One of the two original developers of the ldns DNS library, a C library
to simplify DNS programming. It supports RFCs like the DNSSEC documents
(RFC4033-4035). Apart from being a general library, this contains several
specific tools, amongst which:
- Simple Resolver and debugging tool (drill)
- DNSSEC signer (ldns-signzone)
- DNSSEC validator (drill)
- DNS traffic analyzer (ldns-dpa)
- DNSSEC zone walker (ldns-walk)
- With ldns, created an example and interoperability testing implementation for the DNSSEC extension NSEC3 (http://www.rfc-editor.org/rfc/rfc5155.txt)
- Involved in the creation and validation of several RFCs, most notably RFC4033-4035, RFC4648 and RFC5155.
- Developer and maintainer of a second iteration of NLnet Labs' and RIPE NCC's DISTEL Testlab, a test setup for performance and regression testing of DNS authoritative servers. Created a way to do basic classifications of differences between server implementations. Reimplemented the control and configuration tools of the testlab in Python.
- Provided assistance with the design and code reviews of NSD 3, an authoritative name server.
- Provided assistance with the design and code reviews of Unbound, a validating recursive name server
- Involved in the first iteration of the OpenDNSSEC software suite. Mainly responsible for the initial signing engine, and transparent abstraction from HSM devices.
- One of the two original developers of the ldns DNS library, a C library
to simplify DNS programming. It supports RFCs like the DNSSEC documents
(RFC4033-4035). Apart from being a general library, this contains several
specific tools, amongst which:
-
2000-2004: First8 B.V. www.first8.nl (part-time)
- Description: ICT Company specialized in creating inter- and intra-net applications
- Function: Software Engineer
- Tasks: Design and development of Java-based Internet applications
-
1998-2000: InterNLnet B.V. www.internlnet.nl (part-time)
- Description: Internet Provider
- Function: Helpdesk for an Internet provider.
- Tasks: Provide technical help to customers with their network and Internet connections
Other Functions
- 2019-present: RIPE Programme Committee
- Description: Planning and presentation selection for RIPE meetings
- Function: Member
- 2017-present: __SIDN Fonds Advisory Board
- Description: Review project proposals and funding requests, general advice for SIDN Fonds
- Function: Member
- 2016-2018: Editor for Privacy & Informatie (www.uitgeverijparis.nl)
- Description: Review submitted articles on Privacy in the information sector, write news and opinion articles
- Function: Editor
Publications
- Protecting Home Networks From Insecure IoT Devices
- Whois-data; domeinnamen, persoonsgegevens en de openbaarheid daarvan
- Resilience of the Domain Name System: a case study of the .nl domain
- SPIN: A user-centric Security Extension for In-home Networks
- Ervaringen met privacybeheer voor DNS-‘big data’-toepassingen
- Experiences with privacy management for DNS 'big data' applications (Translation of original article)
- A privacy framework for ‘ DNS big data ’ applications (translation of original paper)
- Een privacyraamwerk voor ‘DNS big data’-toepassingen
- RFC 5702
- DNSSEC Key maintenance
- An Introduction to the use of HSM
- Measuring the effects of DNSSEC deployment on query load
Education
- High school: Gymnasium Beekvliet
- University: University of Nijmegen (now known as Radboud University)
- Master's degree in Computing Science
- Graduated on Security and Development
- Aia Master award for master thesis Slicing Midlets
Other
- Several personal projects can be found on http://tjeb.nl/Projects and http://www.tjeb.nl/blog
- One notable personal project is Mailbox Alert (AMO link), an addon for Thunderbird with over 16.000 daily users.
- 1999 - 2001: Chair of Thalia, the student association for Computing Science at the University of Nijmegen
- 2000 - 2001: Treasurer of 'Stichting Beet', a student association encompassing the technology studies at the University of Nijmegen
- 2001 - 2002: Chair of 'Stichting Beet'
CV of Jelte Jansen, short version
Personal information
- Name: Jelte Jansen
- Date of Birth: February 7th, 1979
- Sex: Male
- Nationality: Dutch
Employment History
-
2018-present: Ionite
- Description: Consultancy, technology development, and services regarding e-invoicing
- Function: Freelance
- Tasks: Consultancy, protocol development, software development, e-invoicing services
-
2013-present: Stichting Internet Domeinregistratie Nederland
- Description: Foundation that administrates the .nl country-code top-level domain
- Function: Research Engineer
- Tasks: Technical Advisor, Internet protocol research and development, Privacy board member
-
2009-present: Internet Systems Consortium
- Description: Non-profit public benefit organization that produces and distributes quality Open Source software, and provides professional services based on that software.
- Function: Software Engineer
- Tasks: Software design, Software development, Protocol engineering, Scrum Master
-
2004-2009: NLnet Labs
- Description: Foundation to develop, implement, evaluate, and promote new protocols and applications for the Internet.
- Function: Developer
- Tasks: Research, development, protocol engineering, application testing, systems maintenance
-
2000-2004: First8 B.V. (part-time)
- Description: ICT Company specialized in creating inter- and intra-net applications
- Function: Software Engineer
- Tasks: Design and development of Java-based Internet applications
-
1998-2000: InterNLnet B.V. (part-time)
- Description: Internet Provider
- Function: Helpdesk for an Internet provider.
- Tasks: Provide technical help to customers with their network and Internet connections
Other Functions
- 2019-present: RIPE Programme Committee
- Description: Planning and presentation selection for RIPE meetings
- Function: Member
- 2017-present: __SIDN Fonds Advisory Board
- Description: Review project proposals and funding requests, general advice for SIDN Fonds
- Function: Member
Education
- High school: Gymnasium Beekvliet
- University: University of Nijmegen (now know as Radboud University)
- Computing Science
- Graduated on Security and Development in 2004
Awards
- Aia Master award for master thesis, Slicing Midlets
Other
- Several personal projects can be found on http://www.tjeb.nl/Projects and http://www.tjeb.nl/blog
- 1999 - 2001: Chair of Thalia, the student association for Computing Science
- 2001 - 2002: Chair of 'Stichting Beet', a student association encompassing the technology studies at the University of Nijmegen
- 2000 - 2001: Treasurer of 'Stichting Beet'
Publications
- Protecting Home Networks From Insecure IoT Devices
- Whois-data; domeinnamen, persoonsgegevens en de openbaarheid daarvan
- Resilience of the Domain Name System: a case study of the .nl domain
- SPIN: A user-centric Security Extension for In-home Networks
- Ervaringen met privacybeheer voor DNS-‘big data’-toepassingen
- Experiences with privacy management for DNS 'big data' applications (Translation of original article)
- A privacy framework for ‘ DNS big data ’ applications (translation of original paper)
- Een privacyraamwerk voor ‘DNS big data’-toepassingen
- RFC 5702
- DNSSEC Key maintenance
- An Introduction to the use of HSM
- Measuring the effects of DNSSEC deployment on query load
Selecting alerts for folders
When Mailbox Alert has been installed, the folder context menu (opened by right-clicking on any folder) will have a Mailbox Alert submenu.
In this submenu you can select one or more alerts that are to be fired when new mail arrives in this folder.
By default, there are two types of alerts, a popup message, and a sound to play. You can add your own alert types by selecting 'Edit Mailbox Alert alerts', see TODO.
The default alert should look a little something like this;
If you have upgraded from Mailbox Alert 0.14 or lower, there may be more alerts to choose from, as any configuration from older version should have been converted to the current version.
Apart from the alerts to select, there are two other options:
-
Alert for child folders (if they have no alerts themselves)
Once one or more alerts are set, you can select this so that these alerts fire for all child folders of the current folders
-
Don't let parent folders alert for this one
If this folder has no alerts configured, but the previous option is set to the parent of this folder (or the parent of that folder, etc.), you can select this to suppress those alerts for this specific subfolder
You can change, add, or delete alerts from the window you get after clicking 'Edit Mailbox Alert alerts':
Running from filters
Since Mailbox Alert 0.15, it is also possible to run an alert as a Thunderbird filter action; simply select 'Mailbox alert' and the desired alert as the filter action:
Adding an alert
You can also edit the list of alerts from the tools menu. The tools menu also has an option to suppress al audio alerts.
When you create or edit an alert, you are presented with the alert configuration screen:
First of all, you need to give the alert a name. This is the name that will show up in the alert lists and menus. The name has no effect on the actual alerts themselves.
After that, you can specify one or more actions for this alert;
-
Show a message
A configurable popup message to display.
-
Play a sound
A configurable sound to play.
-
Execute a command
A system command to run.
For 'Show a message' and 'Execute a command' you have a number of macros to use: * %server
The name of the server where the mail folder resides
-
%folder
The name of the mail folder the alert was set on
-
%originalfolder
The name of the mail folder where new mail arrived
-
%count The number of unread messages in the folder where new mail arrived
-
%countall
The number of unread messages in the folder where the alert was set and all of its subfolders
-
%sender
The sender of the last unread message
-
%sendername
This is replaced by the name part of the sender's address (up to the first <<). Surrounding quotes are stripped.
(If the address does not contain << and >>, this value is the same as %sender)
-
%senderaddress This is replaced by the address part of the sender's address (between the << and the >>).
(If the address does not contain << and >>, this value is the same as %sender)
-
%subject
The subject of the last unread message
-
%charset
The character set of the folder
-
%messagebytes
The size of the message in bytes
-
%messagesize
The size of the message in human readable format
When you select 'Show a message', you can specify a display effect (None, slide or fade), as well as a position.
Note that the 'slide' effect is only supported if the position is one of the four screen corners
Apart from the four corners of the screen, you can select the center, or 'custom'.
When selecting 'custom', then 'Select a position', a new window pops up:
You can drag this window to the desired position, then click on one of the buttons in the window. The location of the popup alerts is then anchored to that position.
Note: If you do not see an alert when one of the corner positions is chosen, chances are that Mailbox Alert is not able to calculate you screen size correctly. Try 'Custom' position in that case.'
For 'execute', if you toggle the 'Use HTML codes' checkbox, the following characters are replaced within macro expansions:
- " is replaced by "
- & is replaced by &
- ' is replaced by '
- < is replaced by <
- > is replaced by >
Characters you put in the command line yourself are not replaced. Use these codes directly in those cases.
Be sure to escape arguments if they contain spaces. Spaces are read as argument separators so, for instance, if you want the string "My Mail" to be 1 argument, the space in that string must have a \ in front of it. Quoting them does not work. Spaces in macro expansions are automatically escaped.
If you set the value 'browser.dom.window.dump.enabled' to true, and start thunderbird from a terminal, debug messages are printed to that terminal. Don't edit prefs.js while thunderbird is running, because it gets overwritten on exit. I hear that this does not under windows, if someone knows how to do this, please let me know :).
Some example screenshots
Here you can find some small stuff like little scripts that can make life just that bit easier, but that weren't big enough to have their own pages.
randommp3
Here's a little script that randomly chooses mp3 files from a directory tree and copies them to another directory (or for instance your mp3 player).
It defaults to 230 megabytes but you can give another value if you want.
There is not really much in the error-checking department (like existence of directories) but i think you'll survive :)
gwallscript
Running munin, or mrtg? Want to be able to see their graphs on your desktop?
Yesterday i discovered Telak, but i had some problems integrating it with my gnome setup;
- The images don't show through transparent terminals
- Nautilus Icons and images don't mix
- It takes a LOT of resources (my Xorg went up to 60-80% cpu time, with telak taking the rest...
So i had the idea to download the images once every interval, and integrating them in the background image itself. An (unfortunately not so quick) update with gconftool-2 should then do the rest.
The result is gwallscript, you can specify a base image, and a set of images to put on top of it (and of course sizes and locations).
So if you want to try it out, you can download gwallscript.pl, and a sample .gwallscriptrc config file.
The base image is copied/downloaded once, and every
By the way, you need wget installed, as well as the convert and composite tools from ImageMagick.
Screenshot:
This is a page just like the normal DNSSEC test page, only here the test tree is signed with NSEC3.
Note that this does not contain NSEC3-specific errors, the only difference is that NSEC3 is used for denial of existence.
Test Tree
I created a complete tree to test your chaser/tracer/verifier/whatever with. At the moment it goes down 4 levels from nsec3.tjeb.nl.
The address of the server is the same as this webserver.
Every zone has 6 delegations:
- ok
these are signed correctly.
- nods
A zone, but without the DS RR for the child zone
- bogussig
the RRSIGs of zones starting with this name contain bad signature data.
- sigexpired
the RRSIGs of zones starting with this name have an expiration date in the past.
- signotincepted
the RRSIGs of zones starting with this name have an inception date in the future.
- unknownalgorithm
the RRSIGS of zones starting with this name are signed correctly (with a known algorithm), but have the algorithm field set to another value.
The result is that you can test your programs with a range of domains, for example:
- ok.ok.ok.nsec3.tjeb.nl
- ok.ok.nods.ok.nsec3.tjeb.nl
- ok.bogussig.ok.nsec3.tjeb.nl
- ok.ok.ok.nsec3.tjeb.nl
- ok.bogussig.ok.ok.nsec3.tjeb.nl
- ok.unknownalgorithm.ok.sigexpired.ok.nsec3.tjeb.nl
- signotincepted.bogussig.sigexpired.bogussig.nsec3.tjeb.nl
- bogussig.nsec3.tjeb.nl
- sigexpired.nsec3.tjeb.nl
- signotincepted.nsec3.tjeb.nl
- unknownalgorithm.nsec3.tjeb.nl
Next Page »