Jed Lang
Video game developer by day, loquacious geek and seasoned taco-eater by night.
Doesn't know how to adult, but has great hair, so that makes up for it.
Video game developer by day, loquacious geek and seasoned taco-eater by night.
Doesn't know how to adult, but has great hair, so that makes up for it.
Tools Breakdown:
In addition to their tool-specific functionality, most of the UI-based tools leverage my own client/server architecture to handle a variety of things that not only makes the user's life easier, but also serve to automate a variety of tasks to improve workflow on the development side of things:
- Automatic updates: Quickly check the server for any updates on startup, and in the case of an update, will prompt the user with a change log and the option to download or ignore the update.
- Manual bug reports: A menu is provided for the user to submit a bug report to the server, with options to automatically attach appropriate logs, as well as manual inputs about what the user was doing at the time, what they expected to happen, etc..
- Automatic bug reports: In the event of a crash, all efforts are made to automatically gather appropriate tool logs and automatically submit them to the server.
- Donation link: The ability to be forwarded directly to a donation page for the developer (as defined on the server).
Server Breakdown:
The server runs on custom code and handles a most of the asynchronous data persistence between user and developer:
- Tool versioning: All versions of all tools maintain a presence on the server, with the download links for each automatically referencing the "active" versions for each tool. This is all maintained via the Admin Tool.
- Bug reports: All bug reports sent by the tools are kept on the server, and maintain a connection to the specific tool and version that they were reported for. This is all viewed and consumed via the Admin Tool.
Admin Tool Breakdown:
This developer-only tool is used for functionality pertaining to publishing and consuming feedback:
- Publishing: New tools can be introduced, and existing tools can be updated. This includes the ability to upload new binaries/change logs to the server as a specific version, and setting any existing versions for a given tool as the "active" version for all public-facing download links and automatic updates to use.
- Metadata: Metadata, used for the automatically generated "downloads" webpage, for each tool can be updated, including whether the tool's download link should be public, a user-friendly name, a short description, a screenshot, and what category it falls under.
- Simulators: A built-in tool simulator can make all server calls exactly the same way as the tool itself would, allowing for sanity checks and quality assurance for all server-based queries (such as automatic update checks, bug reports, and donation links). Similarly, a website simulator allows tests against the public facing download and donation links present on the website.
- Bug report handler: Bug reports are listed (and have filtering options) with all user-input and download links for the attached logs, to allow the developer to search for and big bugs without having to rely on social media/email/etc.. On completion, bugs can be marked as "fixed" so they will no longer show in the bug report list (unless filters are set to show it).