Software Development
Desktop and Full Stack Web Development
Full Stack Web
Back End
- Python
- Django
- Django Ninja or Django Rest Framework for JSON APIs
- NginX
- Docker & Compose
- Go
- AWS, DigitalOcean, Google Cloud
- Wagtail for CMS
- Linux
Databases
- Postgres
- SQLite
Front End
- JavaScript
- HTML5
- CSS3
- HTMX
- Tailwind
- Bootstrap5
- Svelte
- Hyperscript
- React
- Vue
Projects
Desktop
Most of my desktop tools and GUI applications are written in Python, though I am increasingly moving toward C# for cross-platform desktop GUIs.
GUI Tech
- Python
- Qt
- Tkinter
- Progressive Web App
- .NET MAUI
Projects
- Criticus: A collection of GUI apps for managing textual data from transcription to collation to analysis and for improving interoperability between the best existing tools. A few (of many) features:
- Convert TEI transcriptions into JSON files suitable for the ITSEE Collation Editor
- Configure and launch the Collation Editor.
- Provide a GUI interface for the open-cbgm
- Export a TEI XML collation file as a Microsoft Word DOCX file print apparatus.
- Convoy: Resumeable file copying and directory diff'ing for many large files when unexpected interruptions are likely.
- C# and .NET MAUI
- This was created because I was having trouble transferring irregular and large directories to a RAID over WiFi. Network issues caused the transfer to fail, or worse, to silently drop one or two small files.
- Redub: Rename a directory of images according to a previously generated Excel spreadsheet. It has options for renaming in place or copying to a different directory.
CLI
- MarkdownTEI: Converts a specified superset of Markdown to TEI XML transcriptions.
- Python library for creating a text adventure: I created this so that my kids could practice Object-Oriented programming.
More projects on my GitHub
Criticus
Criticus is a suite of (currently) eleven discrete tools related to the creation, editing, and analysis of ancient manuscript textual data. Several modules are for working with TEI, which is an international transcription format. It is nearly impossible to use any modern computer tools for textual processing without using TEI.
- Plain Text to Json. A relatively simple module for converting plain text files of a particular structure into JSON files that are accepted by the ITSEE Collation Editor. The input files for the Collation Editor must be single verse files, so Criticus will create many JSON files from a single input file and place them into the appropriate directory structure.
- Get Plain Text from JSON. A convenience module that essentially reverses the above module. A tokenized JSON file is parsed, and the plain text transcription is returned.
- Markdown to TEI. Converts a superset of Markdown markup language into TEI XML.
- TEI to JSON. Converts an entire TEI transcription file into many verse-length JSON files and distributes them into one directory per witness along with necessary metadata files. This is a difficult task because of how flexible the TEI format can be. It is becoming increasingly reliable, but unexpected nestings in the TEI can lead to errors.
- Combine Collation Files. The ITSEE Collation Editor is best used one verse at a time, which results in the creation of many single-verse collation files. This module safely combines the XML collation files into a single chapter or book length file more suitable for analysis.
- Reformat Collation File. In order to use an XML collation file with the open-cbgm, output from the ITSEE Collation Editor must be reformatted. A few other niceties are performed by this module, such as automatically marking textual flow from parent readings to subreadings, and assigning unique names to readings (which the ITSEE Collation Editor does not enforce).
- View TEI Transcriptions. TEI transcriptions are not very human readable. The IGNTP and ITSEE have created stylesheets that allow TEI transcriptions to be viewed in a browser. This module adds a stylesheet to the user's transcription directory and starts a local web server for browsing and viewing transcriptions locally.
- Configure Collation Editor. The ITSEE Collation Editor requires a JSON configuration file to be set correction prior to collation. This module provides a convenient graphical user interface for setting the configuration. This module can also start the Collation Editor, which must be run using a local web server.
- Analyze Collation. This module returns lists of readings that meet the search criteria. There are three optional fields available: (1) All of the indicated witnesses must agree; (2) Any of the indicated witnesses must agree; and (3) None of the indicated witnesses may agree.
- open-cbgm Interface. Joey McCollum's open-cbgm has made the CBGM available to anyone who has collected their own input data. The open-cbgm is a command line interface, so Criticus has provided a graphical user interface for some of the open-cbgm's modules.
- Export Collation to DOCX. Criticus can export a TEI XML collation file as a Microsoft Word DOCX file suitable for print. The output resembles an ECM-styled critical apparatus.
Apatosaurus
Apatosaurus is a web app for creating, editing, visualizing, and analyzing a digital critical apparatus.
For more about Apatosaurus, please see its "About" pages.