Blog
Articles written by friends and alumni of the UPL. Learn something new about technology, and maybe even yourself.
I Made a Million Dollar Product from My Dorm Room
The story of the nicenano; a wireless Pro Micro-compatible microcontroller board I made in my freshman year of college.
Nick Winans | 2025-03-23
Abstracting over Futures and Options
In Scala, two interesting concepts you’ll often work with are Futures and Options. A Future is an abstraction for some value that might not be available yet. An Option abstracts over the possibility...
James Ma | 2025-03-19
eCommerce Automations
Sharing my Shopify store's automations after 3 years of optimization
Nick Winans | 2025-02-23
Beyond Language Wars
Exploring when language rewrites make sense and when they actually mask deeper problems.
Nico Salm | 2025-02-15
Configuring external storage devices for Jellyfin
This post serves as a personal guide to running a Jellyfin server locally using an external hard drive. The following assumes: Debian GNU/Linux 12 I’m using a Raspberry Pi 4 External hard drive ...
James Ma | 2025-02-15
Adding Giscus Discussions to Astro
I've wanted to add discussions on my blog for awhile, and they're great for ya know getting people to talk about your post and interact with them. I was looking for something that I didn't have to ho...
David Teather's Blog | 2025-02-11
InkLink
Real-time Collaborative E-Paper Canvas
Nick Winans | 2025-01-26
A gallery of randomly generated art
In a paper from CMU, security researchers describe a nifty algorithm used to generate random images known as RandomArt. In a nutshell, the algorithm takes as input a seed to a pseudo-random number gen...
James Ma | 2025-01-18
Learning the NATO phonetic alphabet with the Web Speech API
and they told me "video games can't teach you anything"
Andrew Moses | 2024-12-29
List of WISCERS 2024 Faculty Mentors
I participated in Wisconsin Science and Computing Emerging Research Stars WISCERS as part of the 2022-23 cohort and really enjoyed the experience. Even if you’re uncertain, you should definetly ap...
Blog on Michael Noguera | 2024-12-09
In defense of bad grammar
From the moment we begin formal education we are drilled with the idea of “proper grammar.” “My friend and I,” not “me and my friend.” “A large number of people,” not “lots of people...
James Ma | 2024-11-30
Currying C functions using a heap-based trampoline
Suppose you are implementing some sort of system that dispatches jobs to workers. You have a function, and with it some arguments, that you would like to send off to a worker thread to be completed in...
James Ma | 2024-11-27
Obligatory Meta First Post About Creating This Blog
Visit post for details.
ben.enterprises Blog | 2024-11-24
Adding Interactive Charts to Astro
If there's one thing I consistently do, it's start writing a blog post, want a new feature for it and then spend the rest of the time adding that feature and then writing a blog post about it. This o...
David Teather's Blog | 2024-10-30
Revamping the UPL's people counter
who knew figuring out the lab's occupancy would be so much work?
Andrew Moses | 2024-10-14
CLI Productivity
I describe my minimal, focused, keyboard-centric workflow where I do my best work.
Nico Salm | 2024-10-10
Adding UML Diagrams to Rehype in Astro
I just recently added UML diagrams for my blogs, since in the future I want to create blog posts and youtube videos about system design and wanted to define UML diagrams in markdown and have them ren...
David Teather's Blog | 2024-10-07
Simple backpropogation in Python and numpy
In our previous post, we introduced backpropogation as a means for efficiently training neural networks. Here we’ll attempt to implement a simple Python framework to train a fully-connected neural n...
James Ma | 2024-09-28
Deriving backpropogation from scratch
Most sizable neural networks today rely on backpropogation to make the training process more efficient. While backpropogation is pretty ubiquitous in libraries such as torch.autograd, I was curious ho...
James Ma | 2024-09-10
Is Web Scraping Ethical?
For better or worse, we live in a world where data is power. This has been our reality for years, but the recent emergence of mainstream AI has only made this more publicly apparent from companies ab...
David Teather's Blog | 2024-08-23
Preserving My Future Self
Ergonomic overhaul to improve health and reduce strain.
Nico Salm | 2024-08-18
Traversing dependency trees in Bazel
At my job we use Bazel as our primary build system. Bazel is great for managing large projects with millions of lines of code spanning thousands of dependencies, as it has an efficient caching system...
James Ma | 2024-08-01
Adding an Astro Search Bar
I recently reworked my portfolio website to focus heavier on blogs, and this included adding a search bar to search across across my site. In this blog post I'll walk you through how you can add your...
David Teather's Blog | 2024-07-26
Astro Optimized Images With Markdown
I recently upgraded my site to a newer version of Astro that supported image optimization and I wanted to use that feature. I'll walk you through it, and it's a fairly quick change to improve the loa...
David Teather's Blog | 2024-07-26
Overview of the x86 call stack
I had mostly forgotten how the x86 call stack works, and many things continue to confuse me, so join me and my scattered thoughts as I attempt to clarify my understanding. In this post, we will look a...
James Ma | 2024-07-11
False sharing in practice
Over the past years, the trend in storage speed can be summarised as: faster CPUs with DRAM unable to keep up, resulting in a widening CPU/memory gap. Even as clock speeds have mostly steadied by 2003...
James Ma | 2024-05-28
IMC Prosperity 2
I recently competed in the IMC Prosperity 2 competition and I wanted to write a blog post about my experience as a first time competitor in a trading competition in addition to writing about some of...
David Teather's Blog | 2024-05-03
My UW Madison Course Tier List
I'm about to graduate from UW Madison and I thought I'd share my thoughts on the classes that I've taken. I'm a Computer Science major with a certificate in Entrepreneurship, which I'll talk about in...
David Teather's Blog | 2024-04-25
GitHub Field Day NYC 2024 Organizer
I had the pleasure of helping organize GitHub Field Day NYC 2024, and it took a lot of planning and coordination to make it happen. I had a lot of fun at the event and wanted to detail some of the th...
David Teather's Blog | 2024-03-15
Battlecode 2024 Finalist
I was dragged into Battlecode 2024 by one of our teammates. I had never heard of Battlecode before, but I was excited to try it out. I had a lot of fun and I'm glad I did it, and we ended up qualifyi...
David Teather's Blog | 2024-01-28
MIT IQuHACK 2024
We secured a Top 3 finish at MIT's quantum hackathon
Nico Salm | 2024-01-21
Organizing MadHacks Fall 2023 Reflections
I was one of the lead organizers for MadHacks Fall 2023, a 24-hour hackathon at the University of Wisconsin-Madison. The amount of effort and time that went into planning and executing this was absur...
David Teather's Blog | 2023-11-11
Making My Blog 3x Faster
Optimizing fonts to slash load times
Nick Winans | 2023-06-27
Exploring the Anshel-Anshel-Goldfeld Key Exchange System
Final project for CS 642 Information Security at UW-Madison, Fall 2022 sophomore year. Two UPL friends and I implemented the Anshel-Anshel-Goldfeld key exchange protocol and wrote our term paper a...
Blog on Michael Noguera | 2022-12-28
LINK.social Exposed Users' Sensitive Information & Mass Account Hijacking
On July 9th I was able to access sensitive information from every account on link.social'shttps://www.link.social/ app. This information includes: phone number, last location accurate to...
David Teather's Blog | 2022-07-14
A CS Course Map for Incoming UW-Madison Students
Visit post for details.
Blog on Michael Noguera | 2022-06-07
YikYak Is Exposing Millions of User Locations
I was able to access the precise GPS coordinates accurate to within 10-15ft of all posts and comments on the YikYak platform, this leaves at least 2 million usershttps://twitter.com/YikYakApp/st...
David Teather's Blog | 2022-05-09
Exploiting GitHub Actions
Finding a way around GitHub's build matrix limits with GitHub Script
Nick Winans | 2022-03-17
Hugo Shortcode: License Badges on Code Blocks
One of my favorite features of the static site generator Hugo is “shortcodes”, which allow you to abstract away chunks of website content and invoke them from your markdown posts. The Hugo communi...
Blog on Michael Noguera | 2021-12-22
Mysterious Broken Bootloader
Investigating and fixing the bootloader woes of ZMK
Nick Winans | 2020-10-03
AP Chem: Spectrophotometric Mixture Analysis
To determine the composition of a mystery mixture consisting of various types of food coloring, I wrote this program that works with Vernier’s Spectral Analysis software.
Blog on Michael Noguera | 2020-01-14
Zybooks Autoplay
Zybooks online textbooks include animated activities that you must watch to completion. This script makes them auto-play at double speed when you load the page.
Blog on Michael Noguera | 2019-10-04
TJCTF 2019: All The Zips
Forensics - 20 points 140 zips in the zip, all protected by a dictionary word. This was the first zip file challenge that I attempted. Afterwards, I have noticed that almost every CTF competition has...
Blog on Michael Noguera | 2019-04-06
Reverse Engineering the Wisconsin Driver Practice Test
Note from a future me, after I took the test: It’s pretty easy but it tries to trick you. Glance over these questions because they were good to know. The Problem I am currently taking Drivers’ Ed,...
Blog on Michael Noguera | 2019-04-04
Hack This Site: Basic Challenges
Basic 1: HTML Comment This level is what we call “The Idiot Test”, if you can’t complete it, don’t give up on learning all you can, but, don’t go begging to someone else for the answer, that...
Blog on Michael Noguera | 2018-12-03
How To: Blind SQL Injection, HSCTF 2018: Password
Here are some rudimentary notes on how I solved the challenge ‘Password’ for HSCTF 2018. The puzzle gave a mock-up social media website with a login form, and asked that you retrieve Keith’s pas...
Blog on Michael Noguera | 2018-07-19
Making backups of hard drives using the bash utility “dd”
I had an old corrupted hard drive that I needed to back up so that it could be reused.
Blog on Michael Noguera | 2018-07-18