Tom
Punihaole

Software Engineer // Web Developer

Background

I started my professional coding career contributing to open source projects in geosciences, operating systems and mesh networking. In my first job I learned how to write C++ apps that could scale up from ordinary desktop computers all the way to massive and interconnected super compute clusters.

Recently I've been building web apps and backend infrastructure, mostly in Python.

Technologies

Python Data
JavaScript Web Dev
C++ Systems
PostgreSQL Databases
Elasticsearch Search
00

About This Site

This website is a playground for web technologies and project documentation. Built using modern tools and deployed in a containerized environment on FreeBSD Kobold.

Feel free to explore the projects and experiments hosted here.

Stack

Django Framework
PostgreSQL Database
TailwindCSS Styling
Bastille Deployment
01

Selected Projects

Weaversolver

Word Game Solver

Weaver is a cool web game for Lewis Carroll's Word Ladder. I decided to build a simple program that solves word ladders. There's probably a leetcode question for implementing this already.

My approach is pretty straightforward. The general idea is you take the starting word and get the list of words that differ by one letter (hamming distance 1) and greedily pick the one with the lowest hamming distance from the goal word. You keep doing this until you reach the goal word -- in other words, Dijkstra's algorithm.

Interactive web interface for both playing and solving word ladder games.

Wordlesolver

Strategy Game Helper

We all know about Wordle by now. If not, check it out!

Sometimes the Wordle is too hard, so I built a tool that lets you input your current game state and it will suggest the next legal word you can play. The algorithm doesn't do anything particularly smart. It just finds the words that don't break the rules and picks one at random. Usually this helps me get my next guess on the board if I'm stuck.

You could take the guesses the program spits out, input them into wordle, and enter the feedback into the program to get the next guess until you win the game, but where's the fun in that?

Simple rule-based approach with randomized selection from valid candidates.

Farberisms

Legacy Project

A collection of Dave Farber quotes. Originally built as a system integration test for web server, database, and CGI gateway functionality.

The three blind mice are leading the blind.

Mic Check

Diagnostic

Minimalist microphone testing utility for performing a quick sound check. Uses vanilla javascript and no fancy filters or noise cancellation that might interfere with normal browser audio input functionality.

Is this thing on?

Morse Code

Educational

Want to learn morse code?

.... . .-.. .-.. ---

Project Archive

Archive

There's a bunch of stuff in the archive. You might be able to find documentation on github, IRC and other random corners of the net to help you get these things working...

02

Contact

Contact information available through the navigation links.