Apps & Libraries

A phone waiting to be answered.
Just a reminder: you can Call Me

Libraries

Here are a few libraries that I've produced that I'm very proud of. These are libraries that I actually use often.

  • VCR.js: (View Controler) A real-deal front-end web application framework. It handles browser history and application state. This library is available on my GitHub
  • RMF.js: (Ready Made Form) This was very difficult to create. It is a library that accepts a declarative array of objects to define a form. The object are of the form:
    {
       name:'string - input name', 
       type:'string - type of input', 
       /*further configuration pertaining to the type of input*/
    }
    The data can be retreived as a JSON object with the function COLL, and then the function SET can be call with the return value of COLL to return to the form state later.

    Example Usage
    // the RMF library is ommitted, because the input type definitions are rather large.
    // Usage:
         
    var rmf=RMFORM(
       // html element to act as the target for the form
       document.body, 
       [ // input list
          {name:'title', labelText:'Title', type:'singleLine'},
          {name:'isPublished', labelText:'Is Published', type:'checkbox'},
       ],
       'myTestForm',// just a name for the form
       { // configuration. There are several
          collProc:function(c){
             // this function indicates what to do on submit. Here just as an example.
             // a simple ajax submission
             var fd=new FormData();
             fd.append('dat', JSON.stringify(c));
             fetch('yourAjaxEndpoint.php', {method:'POST', body:fd})
                .then(function(res){
                   return ret.text();
                })
                .then(function(txt){
                   alert('The response was '+txt);
                }).catch(function(e){
                   alert('Error');
                });
          } 
       }
    );
    
    // Then you can grab the form this way:
    var result=rmf.COLL();
    
    // result is something like this: {"title":"Your Title", "published":true}
    
    // If you save the object for later, you can return to the form state like:
    rmf.SET(result);
    
    
    // Using this, you can build large and complicated forms.


    You can find the whole front-end portion of RMF.js on my GitHub

Applications

Most of the applications I've built up until now (December 2023), have been geared toward tooling. Along with a few web pages to test the tooling, and a few video games for fun. Right now, I'm in the middle of rebuilidng everything. As I get things moved to their new home, I'll add links.

  • WebDev Suite: This is a group of tools I've created to assist in the production of web applications. I include many of these in the Tech Stack page, because they are part of a front-end or back-end framework (similar to Vue.js or React and Angular).
    • Site Generator: A program to configure and generate the file-tree of complete, correct and performant websites. This with VCR.js answers many similar problems as Angular.
    • Server Manager: A precursor to the Site Generator, the Server Manager can place files, edit or remove them from the server. It also features an application rendering engine, which allowed for the easy and flexible management and development of applications using VCR.js.
    • Ready Made Form (Database Manager): This is an ORM. It was extremely difficult to create. It took 3 years. It features a type-system, that is connected to a database editor. Once a table is created, the interface for interacting with the table is rendered at a click of button (meta-coding the MYSQL and php necessary for the basic CRUD interface).
  • Invoice to Inbox: This is turn-key invoicing software. Track your business's income, customers, jobs, expenses, and mileage. Emit email notifications, and send bills and receipts to your customers in PDF form.
  • P-Graph: A research tool. It graphs parametric equations which you provide.
  • The Daily Wizard:I created this tool to collect information about my life in the evenings, and schedule work for me in the mornings.
  • Games: I've made right many video games. Most of them I've only spent a day or two on. I make them as a reward to myself for reaching stopping points on the dry, terrible stuff. Hopefully, I'll have up-to-date links to these soon.
    • War Stars: A game where you control a blue star attacking a bunch of green stars. Fun for about 30 seconds.
    • Block Drop: A tetris clone. Pretty fun. It is very easy to add custom pieces.
    • Assault on Wayoon 7: This is the most fun game I've made. Just a short game loop, but the enemies are fun to destroy. It has an arcade feel to it.
    • Simply Checkers: I made this for a baby shower, during the pandemic, so family who were sick could interact with the family if they wanted to. It included networking online (playing another player live). And a messaging interface. I used polling to keep the state up-to-date, so it really isn't scalable from a server-perspective.
  • Math Programs:I have made an absolute ton of factoring programs, and other programs to explore patterns and ideas in the research of number theory. The best factoring program I've written was a single-threaded application written in C++ which was a combination of a quadratic sieve and an additive trial divisor. It reached the limits of 64-bit numbers. A simpler algorithm is featured in the Factoring Section

My Tech Portfolio

A in-depth breakdown of how all of this fits together can be found in my Tech Portfolio. Check it out! It was fun to make.

A man running toward his future, laid out for him by his computer.
Running to the Future

If you have an idea for an application, feel free to Contact Me. At the very least, I can present you with a pathway to actualizing your dreams.

Jump Around the Site

Music
Math
Software

(These buttons will take you to new sections)