Nik's CTL journal
nnyby@columbia.edu
portfolio
journal
github
2022
August 30
A MediaWiki CAS Setup with SimpleSAMLphp
2021
April 20
How to simulate gas particles with Matter.js
July 30
How to use and extend Mozilla's PDF.js Viewer
2020
January 17
Upstart to systemd
February 11
FOSDEM 2020
May 26
How to set up ModSecurity with nginx
2019
February 18
How to work with Planes in three.js
April 26
How to make a draggable dialog box in JavaScript
June 7
Adjustable noise data based on a curve
June 14
OpenTTD and SDL 2.0
July 18
How to back up your Vault secrets
July 26
SDL detective work
November 8
Cloning arbitrary Django objects
2018
January 11
My MINIX Nightmare
February 14
Intersecting functions with JSXGraph
February 26
MediaWiki's Visual Editor, and text editing on the web in general
April 9
A new web browser called Brave
May 4
How to use MediaWiki's API to export content
May 25
iptables and netfilter: a Linux firewall intro
July 27
How to animate graphical JavaScript programs
July 29
How to use your own Linux kernel
August 11
A reset button in ReactJS
August 23
A range input for scientific applications
September 27
How to make an analog clock (Part 1)
October 12
Thoughts on programming languages
December 31
The Internet's bright future?
2017
January 27
A reminder not to use bare except statements in Python
February 3
How to branch React libraries
February 16
Debugging volume with react-player
March 24
Sequenced activities in JavaScript
March 31
An integration of Django's bulk model editor
April 7
Outline of an ePub authoring system
July 28
A PHP/nginx/ubuntu configuration
August 4
Emacs for Vim users - the thrill of the unknown
August 18
JavaScript's #ifdef
September 1
How to render Vega visualizations in React
September 11
An interactive economics graphs in JSXGraph
September 21
An outline for developing embedded React applications
October 5
Adding unicode support to write
December 1
Notes on score submission with django-lti-provider and Canvas LMS
December 8
How to mock non-standard authentication in a Django view test
2016
January 8
Reliable Selenium Testing in Python - a work in progress
January 29
Using Django's FilteredSelectMultiple widget
February 5
A Daterange Mixin for Django Views
February 12
Reverse engineering GitHub's markdown toolbar
March 4
Lessons from Functional Programming
March 24
Using pipdeptree in a virtualenv
April 15
Using js-emoji in Django
April 29
A module import problem in commonmark.py
May 13
A Custom DOM Element Creator
May 27
Wordpress and Jekyll
June 17
Prototyping a Video Sequencer Tool for Mediathread
July 8
Overview of a React application
August 5
Physical and virtual environments in Python 2.6
August 19
How Not to use Feature Flags
August 26
A simple slideshow with React
September 23
Reflections on dotfiles
October 28
Using geckodriver with Travis CI
2015
May 15
May 22
May 29
June 5
June 15
June 26
Optimizing a slow Django view
July 10
Messing with Mediathread's Mustache.js code
July 17
A Mocha test runner for RequireJS
August 14
RequireJS, jQuery, and Node.js
September 4
Some thoughts on Backbone.js
September 11
Promises in jQuery
September 18
A JavaScript antipattern
September 25
Testing Mediathread's Chrome extension
October 9
Testing Graphical Simulations vs Django Applications
October 17
Creating a Django project template
October 23
Converting a Firefox extension from cfx to jpm
October 30
Making a SplitDurationWidget for Django
November 13
Managing Common Code in a Multi-Browser Extension
December 4
Django 1.9 library changes
December 18
Working around Firefox's window.open() Same-origin policy with port.emit()