David Sarver's banner


Isaac and I have played some D&D and have enjoyed watching Critical Role. This project helps users understand and visualize the probabilities involved in some of the more complicated skill checks like Matthew Mercer's resurrection ritual.
I dynamically draw and color the tree using the Raphaël JavaScript library. This allows the app to work for any number of dice rolls. The input form is responsive, but I couldn't visually figure out a way to squish the tree into a more vertical format. I used Google Analytics on some elements of the form and on interactions with the tree to get an idea of if and how people were using the single page app. Initially, I thought that several thousand people might be using this at one time; the app was built in time for an episode of Critical Role where one of the characters might die so I found a couple of CDN's for the two libraries that I was using and I stress tested the server to find that I could support around 1000 views per minute.

My brother asked me to make a project for him. And here it is the content should be fairly self explanatory with the videos to the side. It took a couple of days and it's a pretty solid project. The three columns collapse to make the app usable on smaller devices.

I was a freelancer for a time and was paid to make this site. The goal was to have a crowd-sourced site that was a database of all trails in Idaho. I created two custom post types in WordPress. One for trails and one for trips. A trip was a single outing that may have included multiple trails. This necessitated a many-to-many relationship between two custom post types. On the front-end of the site, users could create and edit trails and trips and search among them. It never really had much usage. The hope was that as users input content, it would perform well from an SEO perspective.

I'm on a podcast. We started by talking about silly things and now, we're over ten episodes into reviewing board games with over fifty episodes all together!

I got married! November 13th 2021. We had a three month engagement to put together a party. The website that we put together was an important part of the logistics. We had an FAQ page, RSVP form, and a registry and lots of pictures.

I currently host:


Broken Projects:

Because of server changes or Java being depricated, the projects below are broken.

I've been asked by Derek DeRooy to build something which facilitates play of the Formula Dé board game. This project is now on GetHub. As the xml branch is updated the content is pulled in automatically by my web server. I've worked on this a lot and have been generating a lot of code, but it has gotten out of hand. I've purchased "Learning JavaScript Design Patterns" by Addy Osmani to try to learn better how I ought to be structuring the project.

Time Spent: 72 hours Started: June 2013 https://sarverd.com/gravity/
I wanted to develop this for extra credit in my physics class. The concept was to design a page that would calculate the force of gravity on multiple free-floating objects excerted by the other objects. I've decided to use the GD php image library to create the force diagram and figured out how to encode the output so that server-side generated images could be inserted by javascript back into the page. Hitting the Rebuild button shows that I've got that part working. I haven't gotten much farther than that.
Time spent: 6 hours

I use Filezilla as my FTP server, but my users had to be at my computer to change their password because Filezilla doesn't have a web interface, but I found some code on Filezilla's forum and made a couple of fixes to it. This page now allows users to remotely change their passwords. (oh hey, and I just learned how to do https! Because of SNI I get to do TLS encryption for as many virtual hosts as I want. Test your client's support of SNI here.)
Yay! It's now working. I had a bad entry in the configuration file for Filezilla so that when the script told it to refresh it's configuration it would break. Debug time: 6 hours
Time spent
Filezilla page: 1 hour
Learning HTTPS: 4 hours

I was looking for a script that would dynamically generate thumbnails for large pictures and generate a gallery out of them so that I didn't have to, but I couldn't easily find one. I've borrowed The One-Page gallery and combined it with PHPthumb as the back-end to create semi-dynamic thumbnails. Update: I've now added a huge amount of features onto this including stateful AJAX(linkable and bookmarkable as well as forward and back arrow functionality), graceful degredation without JS, discrete settings for each gallery, an optional counter, a new class of gallery that is easier for presenting pictures where you expect most of them to be saved to the users computer, and optional buttons that advance only one picture at a time for galleries containing many pictures.
Time Spent: 15 hours
Status: I need to add some more format options.

This was a class project where we worked with some business students to create a web page based around a shoe. One of the other team members put a lot of good work into the CSS3 effects, but they didn't work at all in IE8. I found a JavaScript library called PIE and implemented it to add IE8 functionality.
Time Spent: 3 hours
Status: Got an A

Users can upload and download files from my MySQL database by signing into the user console. This page displays the last nine images stored in the database. Index.html is semi-dynamically created either when users upload a new document or when you click the reload button.
Time Spent: 2 hours
Status: Done.

One of my housemates has been wanting to work with wordpress for his website so I've installed it to make sure that I can support it on my server.
Time Spent: 1 hour
Status: I still need to familiarize myself with this more.

I wanted to copy the flash file and went a little overboard.
This was a bit of fun practice at using someone else's code.
Time spent: 2-3 hours
Status: Done; not messing with it anymore.

I host multiple websites with Apache from one IP address.
I tried to find a product that would track the usage of the different virtual hosts for me,
but I was unable to find one. So my brother and I built one.
Time Spent: 5 days
Status: This was a really pretty project and I wish it was still there to show people. The .exe kept crashing my computer so it's off until I learn C++ and debug it or get it all done in SQL and PHP.
Number crunching has been moved to a server-side C++ program instead of client-side JavaScript. Source code can be found at isarver.info.
I believe that the page should be viewable in IE 7,8,9, Chrome, Opera, Mozilla 3,4.
I should move more of the page creation over to PHP in the future.