Cat
![](/assets/media/cattimus.png)
This project was created to test out rust while I was considering making a fully memory-safe game engine. One of the projects I keep returning to is JSON parsing. I've never really come up with a good solution that will work for low-level code, but I think I've come close here. jsafe is the culmination of my years of experience as a programmer. It is the project I am currently the most proud of.
jsafe is written fully in rust with C bindings. It can be compiled as a rust library, a dynamically linked C library, or a statically linked C library. The C bindings were written to allow general memory-safe ease of use from any programming languge. They may also be used from any langauge that has a FFI such as C#, python, and lua.
Skills Required:
This project was spawned in my brain when I was doing research into how to run C code from C#. C# is one of my favorite langauges, but I always felt like it wasn't very useful for certain categories of projects because you are fully dependent upon random 3rd party libraries. Much to my surprise, C# has an incredibly robust FFI library that makes it relatively easy to call functions from C.
One of the major hurdles when developing a game engine is integrating a scripting langauge to handle things like AI logic and short snippets of dynamic code. In my previous experiments, I used lua for a scripting language. This was alright, but it left a lot to be desired, since every in-engine object had to have lua bindings written for it. The better solution I came up with is to make the engine in a lower level language, and call it from a higher level one.
This works really well, because it is language-agnostic. If your client language has FFI, it will work. This allows the user to control how much dynamic code they want, while making the engine itself simpler.
Skills Required:
This project was created specifically for this website! I knew that I wanted to create a static site, but quickly ran into a roadblock in how to implement a header at the top of the page. I decided the solution was to create an advanced copy-paste machine, so that I didn't have to copy-paste the header on every change. Of course, it would've also been possible to use javascript for this, but I wanted a site that did not need javascript enabled.
I cobbled this project together in a day so that I could start working on my website, but I made a critical mistake that I didn't realize at the time. I really should have used regular expressions for the text processing instead of processing the text by hand. Rewrite/rework coming soon!
Skills required:
This project is written from scratch in C. It is able to decode PNG files and transcode them into bitmaps. This involves working with huffman trees, reading RFCs, Data compression (decompression), and more!
Skills Required:
JDPL is the successor to my original project x_to_json. I have been trying to implement my own JSON API that is usable from any language for a long time. JSON is everywhere, and the ability to interact with it is often a make or break for your project. There are many existing implementations of JSON libraries that exist, and I could just use one of those.
But that's not very in the spirit of exploration is it?! Instead I decided to implement my own library, first in C++(x_to_json), and later from scratch in C(JDPL). Ultimately, I think this project did not meet my expectations, since my implementation leaves a little to be desired. It works, it will parse and print JSON just fine. The problem is accessing data is a little obtuse.
This project has been made obsolete with the new jsafe!
Skills Required:
This project was a personal project of mine due to annoyance at having audio playing in only one side of my headphones. I thought to myself "this seems like a problem somebody should've solved by now!". It was then that I realized I had the power to solve this problem!
This project involved a heavy amount of reading into win32api to figure out exactly how I could manage to fix audio while it is playing. The end result is still a bit of a hack, but it works!
Skills Required:
This project was suggested to me by a friend. He was having a problem with his friends. They were linking each other very loud videos in an attempt to bait people into clicking on them. The problem was, this was very annoying, and also driving people away from the friend group. So, rather than deal with things by talking to his friends and working things out, like all good software developers, I suggested a technical solution!
This program will attempt to detect loud audio in a number of ways. If the limits are exceeded too many times, the video/audio will be flagged as "loud". This will allow a heads-up before you actually click on the video and blow out your eardrums.
Skills Required: