I’m a software developer at the University of Wisconsin - Madison and moonlight as a Wisconsin Master Naturalist, Volunteer, and Researcher.
-
Basic Docker Setup to show a waveform with scikit-maad
The basic setup for a Docker container that shows a waveform for an audio file using scikit-maad.
-
Basic Traefik proxy server setup
Recently, I came across a tool called Traefik. Traefik is a tool that takes care of routing HTTP requests to different Docker containers running on a server. This let's you focus more on your containers and projects and less on server maintenance.
-
Run Angular 18 Karma Unit Tests in Docker
Set up Karm Unit Tests for Angular v18 in a Docker container.
-
iNatural Image Download Python Script
A small project in an attempt to replicate the results in Justen et al. 2021.
-
Nesting Chickadees
This year we finally attracted our first family of black-capped chickadees since 2020.
-
Is that a tick? Engineering a human-in-the-loop Tick ID system
Samuel Nowak and I gave a talk about building a deep learning powered pipeline to identify Ticks in The Tick App at the University of Wisconsin – Madison’s IT Professionals Conference in May 2024.
-
Service-Action-Objects: A cross-platform method for logging interactions in digital systems
Are you interested in tracking usage across apps and websites? Then this might be the system for you.
-
Passing XML to Sql Server
One may want to pass an array of data to SQL Server. The most recent reason for me was so I could look for a specific record based on multiple criteria. There are several ways to pass XML to SQL Server. One of the simplest ways to pass the data is as a string. However other options are available such as creating an SqlXML object from a list using the following C# function.
-
Easy Pop-Ups with JQuery
Create a simple pop-up modal box with JQuery.
-
Wrapping HTML Elements with a Parent DIV using jQuery
One of our projects required us to add a target element to a parent DIV dynamically. In this example, we are targeting the "child" CSS class and adding any elements that have that CSS class to a DIV with the "parent" CSS class.
-
Export SQL Server Stored Procedures using Python
The following short Python 2.7 script creates an export of all the stored procedures and functions within a SQL Server database.
-
Overwriting the Browser Confirm pop up using jQuery
You can overwrite the default confirm function using the following snippet of code which combines jQuery UI and Bootstrap to create a nice looking confirm box that is easier to read.
-
Simple Cache Class in C#
A simple class that gets and sets Hashtables within a Session object in C#.
-
Caching the results of a PDO Query in Memcache
A quick example of code that will prepare a PDO statement and cache the results in Memcache in a LAMP environment.
-
Rijndael / AES (128 bit) in VB.net, PHP, Python
Being able to transport encrypted data is important in some of my projects at work. One-way hashes using MD5 usually suffice for most encryption purposes but Symmetric Encryption algorithms are important for encrypting and then decrypting data. For this, we use the Rijndael and AES algorithm in a few different languages.
-
Cosine Similarity in MS SQL
Cosine similarity measures the angle between two vectors and can be used to perform similarity between text strings. In the following code, the two input strings are vectorized and the similarity is returned as a floating point value between 0 and 1.
-
Multidimensional Scaling
Multidimensional Scaling (MDS) is a linear embedding method used when we only know the pairwise distances between data points. For linear systems, MDS works well with as little as 10 points and the system is 2 dimensional.
-
Applications of Particle Swarm Optimization
Particle swarm optimization can be used in a variety of different applications. A few examples involving nonconvex, multi-objective, discontinuous search spaces and applications in neural networks and support vector machines are mentioned.
-
In-depth details of Particle Swarm Optimization
I explain and show code to construct the Particle Swarm Optimization in Python. I conclude by optimizing on the Rastrigin function, a function that researchers use to test optimization algorithms on.
-
An Overview of Particle Swarm Optimization
Particle swarm optimization is often used to optimize functions in rather unfriendly non-convex, non-continuous spaces. The idea behind the algorithm involves a swarm of particles flying through a space both collaboratively and independently.
-
Estimating Lyapunov Spectra of ODEs using Python
Python code is shown that estimates the Lyapunov spectra for the Rossler and Lorenz systems. This code is written in a way that makes it adaptable for other continuous-time systems.
-
Modelling Chaotic Systems using Support Vector Regression and Python
Support Vector Regression is a technique in machine learning that can be used to model chaotic data. A program is shown to work on Delayed Henon Map data.
-
Lyapunov spectra of inverted discrete dynamical systems
One can estimate the lyapunov spectrum of dynamical systems and their inverted counterparts using local Jacobian matrices and Wolf's algorithm.
-
Automatically Link Text using VB.Net
Automatically add HTML to link any words with http:// or https:// within text using this VB.net script
-
Generating Poincaré Sections and Return Maps
Using the iterative 4-th order Runge-Kutta method, we can create low dimensional slices of the system’s attractor known as Poincare Sections, Return maps, or Recurrence maps.
-
Generating time series for Ordinary Differential Equations
We can produce a time series from ordinary differential equations by solving the equations using the iterative 4-th order Runge-Kutta method and plugging each of the solutions back into the equations.
-
Modelling Sensitivity using Neural Networks
Artificial neural networks can be applied to the delayed Henon map and shown to replicate the sensitivities of the map surprisingly well.
-
Inverted Delayed Henon Map
Inverting the delayed Henon map yields a repellor whose sensitivities can be explored.
-
Delayed Henon Map Sensitivities
Partial derivatives can be used to explore how sensitive the output of a function is to perturbations in each of the time lags.
-
Subgraph Centrality
Subgraph Centrality: Accounts for the participation of a node in all subgraphs of the network
-
Freeman's Approach to Degree Centrality
Freeman's Approach to Degree Centrality: Centrality is based on connections between nodes in the network
-
Closeness Centrality
Closeness Centrality: Nodes with short geodesic (shortest path between two nodes) distances to other nodes tend to have higher closeness
-
Bonacich's Centrality
Bonacich's Approach to Centrality (also known as Eigenvector Centrality): You are more central when there are more connections within your local network
-
Betweenness Centrality
Betweenness Centrality: The higher a node's centrality is the more "dependent" other nodes are on it
-
Estimate Henon Map's Largest Lyapunov Exponent in C
I have been experimenting with C since I have not had as much exposure to the language since college and I recently built a computer with a CUDA-enabled graphics card that I hope to use for my research.
-
Cross Correlation in 9 lines of code
One of the easiest ways to perform Cross-Correlation with Python is with the NumPy package.
-
Handling Default Values in Form Elements (with Javascript)
You can add some fancy Javascript functionality to your forms by handling how form elements behave when a user focuses and blurs focus on different elements.
-
Javascript Email Parser
A form and downloadable script that parses the emails from a list of email addresses and names (or any text actually).
-
Python Probability Distribution Program
A python script that creates a probability distribution for a list of time series files.
-
Lyapunov Spectrum for Invertible Maps
Python code to calculate the Lyapunov Spectrum for maps using the method proposed by Wolf et al. involving Gram-Schmidt reorthonormalization.
-
Creating a Drupal-like update system
During a recent project I was working on, I came across a problem which involves easily updating a web application and its database from a customer standpoint. I have rarely worked on a system that is used by others and requires an update path so this presented a unique opportunity to learn how one could develop a system that is relatively simple to update.
-
GPS Distances
A wrapper program that calculates distances from GPS coordinates in two files.
-
Tag That
Tag anything using a Google Suggest-like drop-down box